One Time Pad


Jest to szyfr idealnie bezpieczny, nie istnieje metoda złamania go (wliczając w to metodę brute force czyli podstawiania każdego znaku w celu ustalenia poprawnej kolejności). Został stworzony w roku 1917 przez Gilberta Vernama. Obecnie istnieją dwie wersje szyfru - binarna oraz zwykła, znakowa. Różnią się one metodą szyfrowania tekstu - w jednej wykorzystuje się algorytm XOR, a w drugim Vigenere'a. To co sprawia, że hasło jest niespotykanie skuteczne to jego długość (taka sama, jak długość wiadomości), losowość oraz fakt, że może być użyte tylko jeden raz. Odpowiedź dla nadawcy jest generowana przy użyciu nowego klucza. Zarówno algorytm XOR jak i Vigenere'a są szyframi podstawieniowymi, jednak spełnienie trzech wcześniejszych warunków zapewnia całej metodzie szyfrowania bezwarunkowe bezpieczeństwo.

p q XOR
0 0 0
0 1 1
1 0 1
1 1 0

W celu zaszyfrowania wiadomości Kaspersky na początku musimy zapisać ją w systemie binarnym. Oczywiście w praktyce wiadomość (np. treść listu) byłaby dłuższa, a co za tym idzie bezpieczniejsza, biorąc po uwagę fakt, że klucz będzie równy długości informacji.

	K			a
	75(10)			97(10)
	01001011(2)		01100001(2)

	01001011  01100001  01110011  01110000  01100101  0110010  01110011  01101011  01111001

Mając już wiadomość w systemie dwójkowym, należy jeszcze wygenerować hasło. Musi ono jednak zostać stworzone w sposób całkowicie losowy, a wbrew pozorom nie jest to zadanie łatwe. Istnieją wprawdzie generatory liczb pseudolosowych, jednak - jak wskazuje nazwa - ich użycie nie daje całkowitej losowości i pozwala na wykrycie pewnych regularności, okresowości. Najlepszym rozwiązaniem jest użycie generatora bazującego np. na przypadkowości i zmienności temperatury podzespołów komputerowych (takich jak procesor). Dla naszego przykładu wygenerowane zostały liczby:

	01000001  01101110  01110100  01111001  01110111  01101001  01110010  01110101  01110011
     operacja XOR
	01001011  01100001  01110011  01110000  01100101  01110101  01110011  01101011  01111001
	01000001  01101110  01110100  01111001  01110111  01101001  01110010  01110101  01110011 XOR
00001010 00001111 00000111 00001001 00010010 00011100 00000001 00011110 00001010

Biorąc po uwagę fakt, że wygenerowane hasło byłoby użyte tylko raz, liczby są losowe a długość hasła odpowiada długości wiadomości szyfrowanej, mamy znamiona szyfrowania OTP (ang. One Time Password - hasło wykorzystywane jest tylko raz i traci ważność po wykorzystaniu). Próby łamania tego hasła zakończą się niepowodzeniem, ponieważ bez znajomości klucza nie da się odtworzyć wiadomości pierwotnej. Wynika to z faktu, że kryptogram jest tak samo losowy jak klucz. Znając wynik działania operacji XOR możemy jedynie przypuszczać i podstawiać kolejne znaki a z nich wyliczać hasło, jednak bez wiedzy, czy podstawiony znak jest prawdziwy nie zdołamy odgadnąć hasła, tym bardziej, że zostanie użyte tylko raz. Nie będzie więc można przeprowadzić kryptoanalizy na podstawie częstotliwości występowania pewnych symboli lub układów symboli (jak robi się to w przypadku szyfrów podstawieniowych). Będą się one zmieniały z każdą kolejną wiadomością.


| Do góry |