Szyfrowanie i algorytmy na kartach historii
REKLAMA
REKLAMA
Szyfr Cezara
REKLAMA
Jest to jeden z najstarszych znanych szyfrów, który jak nazwa wskazuje był stosowany przez rzymskiego wodza, Juliusza Cezara. Stosował on tę metodę zabezpieczania przed wysłaniem ważnych wiadomości, np. poprzez gońca. Miało to uniemożliwić lokalizację wojsk w przypadku przechwycenia informacji. Jego działanie polega na zastępowaniu litery właściwej, znakiem znajdującym się 3 miejsca dalej w alfabecie. Szyfry, których działanie polega na podstawianiu jednej litery w miejsce drugiej, nazywamy szyframi podstawieniowymi. Jedną z ich wariacji są szyfry monoalfabetyczne (do nich zalicza się szyfr Cezara) czyli takie, w których każda litera tekstu przed kodowaniem ma swój odpowiednik w literze tekstu zakodowanego.
ROT13
Jest to szyfrowanie polegające na przesuwaniu liter o 13 znaków w prawo w alfabecie, począwszy od szyfrowanej litery. Działanie szyfru było zatem bardzo proste i nie zapewniał on należytej ochrony. Obecnie stosuje się go raczej jako ciekawostkę lub do zakodowania mało ważnych informacji. Małe i duże litery nie są rozróżniane. Na poniższym przykładzie widać, że mechanizm jest bardzo podobny do szyfru Cezara i różni się jedynie wartością przesunięcia.
ADFGVX
Ten szyfr o dziwnie brzmiącej nazwie został użyty przez Niemcy w czasie I Wojny Światowej do szyfrowania rozkazów i wytycznych. Jest to udoskonalona wersja szyfru ADFGX. Zasada jego działania opiera się na nadaniu każdej literze tekstu szyfrowanego pary liter A, D, F, G, V lub X. Następnie tworzone jest słowo kluczowe, aby dodatkowo utrudnić kryptoanalizę. Całość zbudowana jest z tabelki, z literami i cyframi w środku. Osoba, do której wysyłano wiadomość musiała znać zarówno słowo kluczowe jak i rozmieszczenie liter w tabeli. Obrazuje to lepiej poniższy przykład.
Zaszyfrujmy słowo Kaspersky. W tym celu łączymy litery w pary:
K - FV
A - GX
S - AG
P - AV
E - VA
R - VD
S - AG
K - FV
Y - XF
Kolejnym krokiem jest wybranie hasła - my wybierzemy słowo SZYFR. Następnie przepisujemy w jednym ciągu do nowej tabelki, pary liter z tabeli znaków ADFGVX. Każda kolumna musi mieć tyle samo liter, zatem jeżeli będzie ich brakowało, należy je dopisać. Tak też i w tym wypadku, zatem dwa ostatnie znaki w tabeli to cyfra 0.
Ostatnim krokiem jest ułożenie kolumn z literami hasła w kolejności alfabetycznej.
Teraz możemy już przepisać zaszyfrowane słowo z ostatniej tabelki, w tym celu przepisujemy litery po w kolejności od lewej do prawej. Powstały ciąg znaków dla dodatkowego utrudnienia dzielimy po 6 pozycji (ADFGVX).
One Time Pad
REKLAMA
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. W przykładzie użyję metody binarnej, a więc z zastosowaniem operatora logicznego XOR.
XOR to inaczej kontrawalencja lub alternatywa wykluczająca. Jeżeli p lub q jest prawdziwe (posiada wartość 1) to całe wyrażenie jest również prawdziwe.
Zatem 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 miał taką samą długość jak wiadomość.
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 generatoryliczb pseudolosowych, jednak - jak wskazuje nazwa - ich użycie nie dajecałkowitej losowości i pozwala na wykrycie pewnych regularności,okresowości. Najlepszym rozwiązaniem jest użycie generatora bazującegonp. na przypadkowości i zmienności temperatury podzespołówkomputerowych (takich jak procesor). Dla naszego przykładu wygenerowanezostały liczby:
Teraz należy wykonać operację XOR:
Nasza wiadomość jest teraz zaszyfrowana w następującej postaci:
REKLAMA
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ą.
REKLAMA
REKLAMA