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

Szyfr z kluczem bieżącym (ang. running key cipher)

  • Ogólny opis
  • Algorytm
  • Implementacja
Szyfr z kluczem bieżącym jest odmianą szyfru Vigenère'a. Kolejne litery tekstu jawnego są przesuwane o różne ilości pozycji w alfabecie w jedną z góry ustaloną stronę.
Wieloalfabetowy szyfr podstawieniowy
Podobnie jak inne szyfry wieloalfabetowe, szyfr z kluczem bieżącym był dość powszechnie stosowany aż do wynalezienia skutecznych ataków na niego w pierwszej połowie XX wieku.

Szyfrowanie z kluczem bieżącym polega na przesuwaniu kolejnych liter tekstu jawnego o tyle pozycji w alfabecie, na ile wskazują litery sekretnego tekstu szyfrującego (podobnie jak w przypadku innych szyfrów podstawieniowych). W celu ułatwienia znajdowania właściwych liter, do kodowania i dekodowania wykorzystuje się tabula recta, tak jak na przykład podczas szyfrowaniu Trithemius'a lub bazującym na nim szyfrowaniu Vigenère'a.

tabula recta
tabula recta

Zamiast wymyślania sekretnego słowa klucza, a następnie powtarzania liter klucza cyklicznie podczas szyfrowania wiadomości, w szyfrze z kluczem bieżącym używa się długich, publicznie dostępnych zbiorów liter - czyli książek i podobnych długich tekstów. Strony umawiają się wcześniej, jakiej dokładnie książki (i w jakim dokładnie wydaniu) będą używać podczas komunikacji i od jakiej dokładnie litery rozpoczną szyfrowanie. W tym celu mogą wymienić się informacją o początkowych numerach strony, wiersza na stronie i litery w wierszu.

Każdą kolejną literę tekstu szyfruje się za pomocą kolejnej litery znalezionej w książce. Po zakodowaniu pewnej ilości znaków, można przeskoczyć do innej, dowolnie wybranej pozycji w książce i kontynuować pobieranie liter klucza od tamtego nowego miejsca. Jednym ze sposobów może być zakodowanie w postaci kolejnych liter numeru strony, numeru wiersza oraz numeru litery w wierszu. Litery te następnie dołącza się do tekstu jawnego i szyfruje razem z nim. Druga strona, po natrafieniu na te litery i odkodowaniu ich, przeskakuje do nowej pozycji liter sekretnego klucza. W podobny sposób można przekazać informacje o zmianie książki używanej przez strony do szyfrowania.

Siła szyfru z kluczem bieżącym

Odkrycie szyfru ciągłego klucza wprowadziło pewną nowość w szyfrach wieloalfabetowych. Zamiast klucza o niewielkiej długości, który cyklicznie się powtarzał, w przypadku tego szyfru wykorzystywany był klucz o długości takiej samej, co długość tekstu jawnego. Gdyby znaki klucza były całkowicie losowe, szyfr ten byłby całkowicie bezpiecznym szyfrem OTP. Jednak w tym przypadku, zarówno tekst jawny, jak i sekretny klucz tworzą poprawne słowa i zdania, co znacznie ułatwia analizę szyfrogramu.

Atak na szyfrogram może polegać na próbach odgadywania fragmentów tekstu jawnego i dopasowywania ich tak, aby otrzymywane wtedy znaki sekretnego klucza tworzyły w miarę sensowne ciągi układające się, w trakcie stopniowych modyfikacji, w wyrazy.

W celu zwiększenia siły szyfru, strony mogą umówić się na pobieranie kolejnych liter tekstu szyfrującego nie w jednym ciągu, ale równoczesne i naprzemienne pobieranie znaków z kilku różnych strumieni. W ten sposób, póki napastnik nie będzie znał zasad rządzących zmianami strumieni, z których pobierane są litery klucza, będzie mógł jedyne w ograniczonym stopniu korzystać podczas łamania zabezpieczeń z faktu, że znaki klucza pochodzą od rzeczywistych słów.

Innym sposobem zaciemniania szyfrogramu jest przypisanie każdej literze alfabetu kilku słów, a następnie w miejsce liter w szyfrogramie, wpisywanie tych właśnie słów. Metoda ta ma głównie za zadanie utrudnić odróżnianie liter szyfrogramu od tekstu jawnego. Zwykle szyfrogram nie składa się ze słów, w odróżnieniu od tekstu jawnego i sekretnego klucza.

Skutecznymi i często stosowanymi metodami ulepszającymi ten szyfr było także posługiwanie się do generowania znaków klucza tekstami składającymi się z nietypowych wyrażeń (był to sposób stosowany między innymi przez KGB) lub zarzucenie używania tabula recta, zamieniając je na losowe kombinacje liter alfabetu.

Strona w trakcie budowy.