ου γαρ εστιν κρυπτον ο ου φανερον γενησεται ουδε αποκρυφον ο ου γνωσθησεται και εις φανερον ελθη
Wersja PL ENG Version

Szyfr z automatycznym generowaniem klucza (ang. autokey cipher)

  • Ogólny opis
  • Algorytm
  • Implementacja
Został opisany w 1586 roku przez francuskiego dyplomatę i alchemika Blaise de Vigenère.
Wieloalfabetowy szyfr podstawieniowy
Szyfr ten był używany w Europie aż do dwudziestego wieku. Obecnie, jakkolwiek nie stosowany bezpośrednio, stał się bazą dla wielu współczesnych szyfrów, które stosują sekretne klucze bazujące na oryginalnej wiadomości zapisanej w tekście jawnym.
tabula recta
tabula recta

Podobnie jak w przypadku innych szyfrów wieloalfabetowych, algorytm tego szyfru polega na kodowaniu kolejnych liter tekstu jawnego, za pomocą kolejnych liter w słowach klucza. Każdą literę wiadomości przesuwa się o ilość pozycji w alfabecie, równą pozycji aktualnej litery klucza.

W celu uproszczenia algorytmu, często wykorzystywana jest tablica zawierająca w wierszach wszystkie alfabety przesunięte względem siebie o coraz większą liczbę pozycji, czyli tak zwana tabula recta.

W przeciwieństwie do większości szyfrów tego typu, po wyczerpaniu się liter klucza, nie wraca się do jego początku, ale zaczyna używać liter tekstu jawnego jako kolejnych znaków klucza.

Przykładowo, szyfrując tekst Opinio communis za pomocą klucza Ab ovo otrzyma się następujący wynik:

    Tekst jawny:    OPINIOCOMMUNIS
    Klucz:    ABOVOOPINIOCOM
    Szyfrogram:    OQWIWCRWZUIPWE

Siła szyfru z automatycznym generowaniem klucza

Dzięki uniknięciu cyklicznego powtarzania tych samych liter klucza, szyfr ten jest odporny na ataki bazujące na podzieleniu szyfrogramu na kilka części odpowiadającym poszczególnym znakom klucza. Natomiast jego słabością jest fakt, że znaki w kluczu tworzą całkowicie poprawne słowa i zdania, w dodatku takie same jak w tekście jawnym.

Atakując szyfrogram należy próbować odgadywać fragmenty tekstu jawnego (na przykład powtarzające się częste grupy znaków w danym języku). Następnie przez porównywanie ich ze znakami tekstu jawnego, można starać się otrzymać znaki sekretnego klucza. Trzeba próbować znajdować takie przypisania, które powodują powstawanie sensownych wyrazów wśród znaków klucza.

Strona w trakcie budowy.