One Time Pad
Już od starożytności ludzie próbowali utajniać przekazywane informacje. Było to związane z próbami przekazywania kluczowych komunikatów. Jedne z pierwszych maszyn szyfrujących wywodzą się ze starożytnej Grecji, a ich zasadą działania było odwzorowywanie grubości laski, na którą była nawijana zaszyfrowana wiadomość. Innymi słowy, tylko człowiek posiadający laskę o takiej samej grubości, mógł odczytać zapisaną na pergaminie informację. Te urządzenia nazywane były Skytale.
Jednak nieporównywalnie najsłynniejszą maszyną szyfrującą w dziejach świata jest Enigma, stosowana przez wiele państ Osi już od lat 20' XX wieku. Jej metoda szyfrowania została złamana w 1932 roku przez Mariana Rejewskiego, Jerzego Różyckiego i Henryka Zygalskiego. Historia Enigmy zawsze owiana była pewnego rodzaju mityczną mgłą, jednak sposób działania tego urządzenia został szczegółowo opisany i jest łatwy do odnalezienia dla dociekliwych osób.
Każde z przedstawionych urządzeń miało swoje wady i zalety... A także sposób szyfrowania każdego z nich został złamany. Czy istnieje zatem jakaś idealna metoda szyfrowania? Metoda, w której zaszyfrowana wiadomość nie niesie ze sobą żadnej informacji na temat klucza szyfrowania lub oryginalnej wiadomości?
Odpowiedź na powyższe pytania brzmi w obydwóch przypadkach ?Tak?. Przykładem szyfru idealnego jest taki, którego klucz jest conajmniej tak samo długi jak szyfrowana wiadomość. Do tej kategorii zalicza się między innymi One-Time Pad, w skrócie OTP.
Na czym polega OTP? Wyjaśnimy to na przykładzie.
Aby złamać szyfrowaną wiadomość potrzebna jest pierwotna wiadomość lub klucz szyfrujący.
Przykład:
Udało się przechwycić wiadomość następującej treści: 9 8 7 6 3 5 1 0. Jak odszyfrować ją nie znając klucza? Widzimy, że żadna z cyfr się nie powtarza, różnice między każdą cyfrą są inne: 1,1,1,3,2,4,1. Trudno więc wskazać jakąś zależność, zwłaszcza, że przechwycona wiadomość jest krótka.
Jak działa więc klucz OPT? Mając losowo generowany klucz np. 2 3 7 4 9 1 0 3 oraz wiadomość zaszyfrowaną wykonujemy proste odejmowanie podanych wartości:
9 ? 2 = 7
8 ? 3 = 5
7 ? 7 = 0
6 ? 4 = 2
3 ? 9 = 4 (jeśli różnica jest ujemna, wybierana jest cyfra, której pozycja jest odpowiednio obliczona od końca ciągu {1,2,...,0}, w tym wypadku byłoby to 4).
5 ? 1 = 4
1 ? 0 = 1
0 ? 3 = 6
Dzięki powyższym obliczeniom możemy zaobserwować, że pierwotna wiadomość, nie zakodowana to: 75024416, klucz, który został wykorzystany do szyfrowania to: 23749103, natomiast zaszyfrowana wiadomość wygląda następujaco: 98763510. Aby utrudnić dodatkowo rozszyfrowanie naszej informacji, można do gotowej wiadomości dołożyć kilka znaków losowych.
Innymi słowy, mając oryginalną wiadomość, wystarczy do każdego jej znaku dodać wartość podaną w losowo generowanym kluczu ? padzie, aby otrzymać komunikat, który może rozszyfrować tylko osoba posiadająca klucz, a zatem wspomniany już w tym tekście szyfr idealny.
24 komentarzy
Rekomendowane komentarze