Szyfr Hilla

Z testwiki
Wersja z dnia 09:39, 25 maj 2023 autorstwa 194.209.11.13 (dyskusja) (Źle postawione przecinki)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacji Przejdź do wyszukiwania

Szyfr Hillaszyfr należący do grupy polialfabetycznych szyfrów podstawieniowych bazujący na algebrze liniowej.

Operacje

Każdą literę koduje się jako numer. Najczęstszy schemat korzysta z układu: A = 0, B =1, ..., Z=25, jednak nie jest to niezmienna zasada tego szyfru. Blok n jest przedstawiany w postaci wektora o n wymiarach. Następnie jest mnożony przez macierz o wymiarach n × n, modulo 26 (wartość wynika z liczby elementów w układzie). Cała tablica traktowana jest jako klucz. Należy sprawdzić, czy macierz jest odwracalna w 26n (by upewnić się, że deszyfrowanie będzie możliwe).

Szyfrowanie

Niech tekstem jawnym będzie 'ACT', a kluczem jest macierz (lub GYBNQKURP w postaci literowej):

(6241131610201715)

ponieważ 'A' jest 0, 'C' jest 2 a 'T' jest 19, tekst jawny jest wektorem:

(0219)

Wersja zaszyfrowana jest otrzymywana przez:

(6241131610201715)(0219)=(67222319)(15147)(mod26)

co można przedstawić w postaci liter 'POH'. Teraz przypuśćmy, że tekstem jawnym jest 'CAT' czyli:

(2019)

Tym razem wersja zaszyfrowana przedstawia się jako:

(6241131610201715)(2019)(31216325)(5813)(mod26)

co jest równoznaczne z tekstem 'FIN'. Każda litera została zmieniona. Kryptosystem zapewnia zatem dyfuzję

Deszyfrowanie

By odszyfrować wiadomość, zamieniamy zaszyfrowany tekst na wektor i następnie mnożymy przez odwróconą macierz stanowiącą klucz (istnieją metody wyliczania macierzy odwrotnej; zobacz wyznaczanie macierzy odwrotnej). Przy działaniu w 26n macierz odwrotna z przykładu wynosi:

(6241131610201715)1(85102182121128)(mod26)

wykorzystując wiadomość zaszyfrowaną 'POH', otrzymamy:

(85102182121128)(15147)(260574539)(0219)(mod26)

co daje nam w formie liter 'ACT', czyli tekst jawny.

Zobacz też