Techniki łamania kodów i szyfrów

Otwarta kłódka

W wielu (zwłaszcza amerykańskich) filmach widzimy sceny, w których to jakiś nastolatek łamie skomplikowane szyfry systemów informatycznych instytucji państwowych, banków lub jakichś przedsiębiorstw. Często zajmuje to stosunkowo mało czasu, kod programu to dosłownie kilka linijek połączonych z pięknym szablonem graficznym. Jednak w rzeczywistości to proces bez porównania bardziej skomplikowany i wymagający zaawansowanej wiedzy z zakresu matematyki.

Szyfry / kody można próbować złamać na najróżniejsze sposoby, oto trzy podstawowe:

Kradzież klucza – polega na przejęciu danych wysyłanych pomiędzy odbiorcą i nadawcą informacji. Przy tak zwanych algorytmach symetrycznych można podmienić klucz w momencie kiedy obie strony się nim wymieniają (po to aby przeprowadzić zaszyfrowaną wymianę informacji). W takim przypadku haker musi się ustawić dokładnie pomiędzy nadawcą a odbiorcą na linii telekomunikacyjnej i przeprowadzić wymianę kluczy z każdą ze stron (jednocześnie z nadawcą i odbiorcą wiadomości).

Metoda na siłę (ang. brute-force) – to najłatwiejsza pod względem merytorycznym i najbardziej znana technika łamania szyfrów. Polega ona po prostu na przetestowaniu po kolei wszystkich możliwych kombinacji. Jest to wykonalne dla każdego szyfru przy odpowiednio szybkim komputerze. Korzystając z takich algorytmów wymagana moc obliczeniowa wzrasta wykładniczo wraz z długością klucza. Tzn jeśli mamy np. klucz 32 bitowy to złamanie jego wymaga 232 kroków, dla kodu 128 bitowego złamanie wymaga 2128 kroków. Pierwszy kod byłby możliwy do złamania na zwykłym komputerze. Drugi w tym momencie jest praktycznie niemożliwy do złamania w ten sposób, nawet przy wykorzystaniu superkomputerów.

Dedukcja (na podstawie fragmentu lub całości treści) – ta technika polega na dedukcji, że szyfr zawiera w sobie znane elementy takie jak adres, nazwa firmy, imię, telefon, itd. Haker może pod tym kątem rozpracować algorytm lub złamać jego strukturę. Technika ta wymaga jednak sporej wiedzy na temat celu ataku.