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

Proste szyfry podstawieniowe

  • Ogólny opis
  • Algorytm
  • Implementacja
Proste szyfry podstawieniowe zastępują każdy znak tekstu jawnego innym znakiem. Przekształcenie jest jednoznaczne i odwracalne.
Proste szyfry podstawieniowe
Pierwsze proste szyfry podstawieniowe stosowano już w starożytności. Były jednym z pierwszych, po steganografii, sposobem na zabezpieczanie przesyłanych wiadomości.

Proste szyfry podstawieniowe polegają na zastępowaniu każdego jednego znaku w tekście jawnym, innym dokładnie jednym znakiem. Dla odczytania szyfrogramu należy odwrócić ustalone podstawienie i zamieniać litery odwrotnie.

W celu zastosowania takiego prostego szyfru, należy najpierw ustalić jaką literą będzie zastępowana każda z liter alfabetu. Można to zrobić, na przykład zapisując litery alfabetu we właściwej kolejności w pierwszym rzędzie, a w drugim w pewnej losowej kolejności. Litery z górnego i dolnego rzędu utworzą pary używane podczas szyfrowania.

Przykładowo, rozważmy następujące dwa ciągi liter, które definiują szyfr podstawienowy:
 ABCDEFGHIJKLMNOPQRSTUVWXYZ
 TIMEODANSFRBCGHJKLPQUVWXYZ
Można zauważyć, że litera F jest kodowana za pomocą litery D, natomiast taka sama litera F w szyfrogramie oznacza literę J tekstu jawnego. Z kolei, litera Z odpowiada Z (nie następuje zamiana).

Mieszanie alfabetu można przeprowadzić przez ustalenie słowa kluczowego (ewentualnie kilku słów kluczowych), zapisanie go (z pominięciem powtarzających się liter) pod oryginalnym alfabetem i dopełnienie reszty pustej przestrzeni za pomocą pozostałych (niewykorzystanych) liter w kolejności alfabetycznej. Ułatwia to zapamiętanie użytych podstawień i przekazywanie sekretnego klucza pomiędzy komunikującymi się stronami.

W powyższym przykładzie zastosowano taki właśnie sposób. Słowami kluczowymi jest grecka sentencja timeo Danaos et dona ferentes.

Jedną z cech prostych szyfrów podstawieniowych jest prawidłowość, że dwie różne litery alfabetu w tekście jawnym będą zawsze zakodowane przy użyciu różnych liter w szyfrogramie. Nie jest możliwe, żeby dwie różne litery zostały zastąpione przez dwie identyczne litery.

Siła prostych szyfrów podstawieniowych

Z racji tego, że każda litera może być kodowana przez każdą inną literę, istnieje 26! możliwości przyporządkowania sobie par liter w alfabecie łacińskim o długości 26 znaków. Daje to w wyniku dość dużą liczbę wszystkich kombinacji i zapewnia bezpieczeństwo równe w przybliżeniu sile szyfru z sekretnym kluczem o długości 88 bitów.

O wiele efektywniejsza od bezpośrednich ataków siłowych na ten szyfr, jest analiza częstotliwościowa znaków występujących w badanym szyfrogramie. Z racji tego, że różne znaki występują różnie często w tekstach w danym języku, jest możliwe dużo szybsze odgadnięcie wybranego przyporządkowania, poprzez porównywanie często wystepujących znaków w badanym tekście i częstych liter w danym języku. Przyjmuje się, że zwykle wystarczy szyfrogram o długości około 50 liter, aby odgadnąć odpowiadające sobie pary znaków.