Kryptografia i kryptoanaliza to dwie strony tego samego medalu – razem tworzą kryptologię. Jeśli kryptografia to nauka o tym, jak skutecznie zablokować drzwi, to kryptoanaliza to nauka o tym, jak otworzyć je bez klucza.
Oto kompletny przewodnik po podstawowych pojęciach, które warto znać:
1. Podstawowy model komunikacji (Aktorzy)
Podstawowy model komunikacji to proces wymiany informacji między dwoma głównymi aktorami: nadawcą a odbiorcą. Całość opiera się na prostym przekazie za pomocą odpowiedniego kodu i kanału.
- Tekst jawny (plaintext): Wiadomość w oryginalnej, czytelnej formie (np. "Cześć").
- Tekst zaszyfrowany (ciphertext): Wiadomość po przekształceniu, nieczytelna dla postronnych (np. "X#5q!").
- Szyfrowanie (encryption): Proces zamiany tekstu jawnego w zaszyfrowany.
- Deszyfrowanie (decryption): Proces odtwarzania tekstu jawnego z zaszyfrowanego.
- Klucz (key): Sekretna wartość (ciąg bitów), która steruje procesem szyfrowania i deszyfrowania. To podstawa bezpieczeństwa – bez klucza nie da się (łatwo) odczytać wiadomości.
W kryptografii istnieje ścisła, umowna nomenklatura zaczerpnięta z literatury anglosaskiej, która zastępuje nudne "nadawca/odbiorca". Klasyczna trójka: Alicja, Bob i Ewa (Alice, Bob, Eve). To światowy standard w każdej książce o kryptografii gdzie:
- Alicja (Alice – A): Nadawca (osoba, która chce wysłać tajną wiadomość).
- Bob (Bob – B): Odbiorca (osoba, która ma ją otrzymać).
- Ewa (Eve – Eve/Eavesdropper): Podsłuchiwacz (osoba biernie przechwytująca wiadomość, tylko czyta, nie ingeruje).
Plus rozszerzona obsada w zależności od scenariusza
- Mallory (Malory – M): Złośliwy napastnik (aktywny przeciwnik). W przeciwieństwie do Ewy, Mallory modyfikuje, podmienia lub fałszuje wiadomości (atak typu man-in-the-middle).
- Trent (Trent – T): Zaufana Strona Trzecia (Trusted Third Party). Osoba/instytucja, która pośredniczy w wymianie kluczy lub poświadcza tożsamość (np. urząd certyfikacji).
- Victor (Victor – V): Weryfikator (Verifier). Osoba, która sprawdza podpis cyfrowy lub dowód tożsamości, nie będąc ani nadawcą, ani odbiorcą.
- Peggy (Peggy – P) i Victor (Victor – V): Używani w kryptografii zero-knowledge (dowody z zerową wiedzą), gdzie Peggy udowadnia Victorowi, że zna sekret, nie zdradzając go.
Jeśli nie chcesz używać imion, w dokumentacji technicznej i normach ISO stosuje się:
- Podmioty (Entities) – ogólne określenie na wszystkich uczestników.
- Strona inicjująca (Initiator) – ten, kto zaczyna komunikację (zazwyczaj Alicja).
- Strona odpowiadająca (Responder) – ten, kto odpowiada (zazwyczaj Bob).
- Źródło (Source) i Cel/Destynacja (Destination) – w modelu warstwowym (np. OSI).
- Zaufane strony (Trusted parties) – podmioty, które mają dostęp do sekretów (np. serwer uwierzytelniania).
Gradacja zagrożeń, w kryptoanalizie często dzieli się "złych aktorów" na:
- Podsłuchiwacz (Eavesdropper) – pasywny, tylko czyta (Ewa).
- Intruz (Intruder) – aktywny, wprowadza własne pakiety.
- Przeciwnik (Adversary) – termin ogólny, używany w dowodach matematycznych; oznacza każdą wrogą osobę o określonych możliwościach obliczeniowych.
Podsumowując: Jeśli rozmawiasz z kryptografem, zamiast mówić "nadawca i odbiorca", powiedz po prostu "Alicja i Bob", a na osobę trzecią "Ewa" (lub "Mallory", jeśli jest aktywnym wrogiem). To nie tylko skraca komunikację, ale od razu precyzuje, kto ma jakie uprawnienia w Twoim modelu zagrożeń.
2. Zasady Kerckhoffsa (1835 - 1903) (Święty Graal kryptografii)
- System kryptograficzny powinien być, jeśli nie teoretycznie, to w praktyce nie do złamania.
- System nie powinien wymagać tajności (poza kluczem), a jego ewentualne ujawnienie nie powinno wywołać negatywnych konsekwencji.
- Klucz powinien być: możliwy do zapamiętania bez notowania i łatwy do zmienienia.
- Kryptogramy powinny być możliwe do przesłania telegraficznie.
- Aparatura i dokumenty powinny być możliwe do przeniesienia i obsłużenia przez jedną osobę.
- System powinien być prosty – nie wymagający znajomości wielu reguł ani nie obciążający zbytnio umysłu.
Druga zasada, jest najważniejszą zasadą w kryptografii. "System nie powinien wymagać tajności (poza kluczem), a jego ewentualne ujawnienie nie powinno wywołać negatywnych konsekwencji." Oznacza to, że nawet jeśli atakujący zna dokładnie działanie Twojego szyfru (np. zna specyfikację AES), to bez znajomości klucza nie jest w stanie odczytać danych. Zasadę Kerckhoffs'a spełniają praktycznie wszystkie współcześnie stosowane algorytmy szyfrujące (DES, AES, ...), których specyfikacje są w pełni jawne. Algorytmy te są uważane za dobrze zbadane i bezpieczne. Bezpieczeństwo zaszyfrowanej wiadomości zależy tylko od jakości, bezpieczeństwa klucza szyfrującego. Ideę zasady Kerckhoffs'a wyraża również przypisywane Claude'owi Shannon'owi powiedzenie "Wróg zna system" (ang. The enemy knows the system), znane pod nazwą Maksymy Shannona (ang. Shannon's maxim).
3. Cele kryptografii (tzw. CIA + N)
Kryptografia służy nie tylko do ukrywania treści. Spełnia 4 kluczowe cele:
- Poufność (Confidentiality): Tylko uprawnione osoby znają treść (zapewnia to szyfrowanie).
- Integralność (Integrity): Wiadomość nie została zmodyfikowana w trakcie przesyłania (zapewniają to np. funkcje skrótu i podpisy cyfrowe).
- Autentyczność (Authentication): Mamy pewność, że nadawca jest tym, za kogo się podaje.
- Niezaprzeczalność (Non-repudiation): Nadawca nie może później zaprzeczyć, że wysłał wiadomość (zapewniają to podpisy cyfrowe)
4. Podział algorytmów kryptograficznych
- Kryptografia symetryczna (tajny klucz). Szyfrowanie i deszyfrowanie odbywa się tym samym kluczem. Jest szybka, ale problemem jest bezpieczne dostarczenie klucza odbiorcy. Przykładowo AES, DES, Two-Fish. Można ją podzielić na szyfry blokowe (szyfrują stałe bloki bitów) i strumieniowe (szyfrują bit po bicie, np. w transmisji na żywo).
- Kryptografia asymetryczna (klucz publiczny). Używa pary kluczy: klucza publicznego (do szyfrowania, może go znać każdy) i klucza prywatnego (do deszyfrowania, znanego tylko właścicielowi). Jest wolniejsza, ale rozwiązuje problem dystrybucji kluczy. Przykładowo RSA, ECC (kryptografia krzywych eliptycznych).
- Funkcje skrótu (haszujące): Jednokierunkowe funkcje matematyczne, które z dowolnej długości danych tworzą stałej długości tzw. odcisk palca (hash). Nie da się odwrócić hasha do oryginalnej wiadomości. Obliczenie hasza jest szybkie i proste, ale jego odwrócenie (deszyfrowanie) jest matematycznie niewykonalne. Przykładowo SHA-256. Starsze algorytmy, takie jak MD5 czy SHA-1, są już przestarzałe i podatne na tzw. kolizje (gdy różne dane generują ten sam hash), dlatego obecnie standardem są bezpieczniejsze algorytmy z rodziny SHA-2. Znajdują zastosowanie przy przechowywaniu haseł, tworzeniu sygnatur cyfrowych, są fundamentem technologii blockchain i technologii zapewniającej autentyczność dokumentów.

5. Podstawy kryptoanalizy (Sztuka łamania)
Kryptoanalitycy nie działają w ciemności. Ich metody klasyfikuje się według tego, co wiedzą na wejściu do zagadnienia.
- Atak z samym szyfrogramem (Ciphertext-only): Najtrudniejszy. Atakujący ma tylko zaszyfrowaną wiadomość. Próbuje np. analizy częstotliwości, w szyfrach klasycznych litera "a" pojawia się najczęściej, więc szuka wzorców, itd..
- Atak ze znanym tekstem jawnym (Known-plaintext): Atakujący zna zarówno tekst jawny, jak i odpowiadający mu tekst zaszyfrowany. Próbuje wydedukować klucz (np. atak "różnicowy" na DES).
- Atak z wybranym tekstem jawnym (Chosen-plaintext): Atakujący może zaszyfrować dowolny wybrany przez siebie tekst jawny, aby zobaczyć, jak wygląda szyfrogram, i na tej podstawie złamać system (np. atak na Enigmę).
- Atak siłowy (Brute-force): Próba odgadnięcia klucza poprzez sprawdzanie wszystkich możliwych kombinacji. Skuteczność zależy od długości klucza (np. klucz 256-bitowy jest w praktyce nie do złamania tą metodą, bo wszechświat skończy się wcześniej niż komputer go znajdzie).
- Atak typu "Meet-in-the-middle": Zaawansowana metoda ataku na szyfry symetryczne, która polega na atakowaniu ich z obu stron jednocześnie, aby skrócić czas łamania, znana np. z ataku na 2-DES.
6. Kluczowe pojęcia uzupełniające
- Entropia: Miara nieprzewidywalności danych. W kryptografii im wyższa entropia (np. losowy klucz), tym bezpieczniej.
- Szum (Randomizacja / Wektor Inicjalizujący (IV – Initialization Vector)): Losowa wartość dodawana na starcie szyfrowania, aby nawet dwa razy zaszyfrowanie tego samego tekstu jawnego dało zupełnie inny tekst zaszyfrowany (zapobiega to wykrywaniu wzorców).
- KDF (Key Derivation Function). Zamiast używać bezpośrednio głównego klucza (master key) do operacji kryptograficznych, systemy wyprowadzają i szyfrują unikalny klucz pochodny, co uniemożliwia atakującym odnalezienie zależności.
- Sól (Salt): Losowa wartość dodawana zazwyczaj do haseł przed ich zahaszowaniem. Jej głównym celem jest uniemożliwienie ataków przy użyciu tzw. tablic tęczowych (rainbow tables).
- Kanał boczny (Side-channel): Atak nie na sam algorytm, ale na jego implementację – np. mierzenie czasu trwania szyfrowania, szumu procesora, czy zmian w poborze prądu, aby wywnioskować, jaki jest klucz.
Enigma to fascynujący, a zarazem pouczający przykład z historii kryptologii. Można na jej przykładzie znakomicie zilustrować zarówno poprawne wdrożenie pewnych zasad, jak i fundamentalne błędy w innych. Odnosząc ją do wcześniej omówionych pojęć, wygląda to następująco:
7.1. Model komunikacji (Aktorzy) – idealnie odwzorowany. W przypadku Enigmy model z Alicją, Bobem i Ewą sprawdza się w stu procentach:
- Alicja (Niemiecki operator): Wpisywał tekst jawny na klawiaturze maszyny.
- Bob (Niemiecki oficer odbiorca): Odbierał zaszyfrowaną depeszę i, mając tę samą maszynę i te same ustawienia klucza, odtwarzał tekst jawny.
- Ewa (Alianccy kryptoanalitycy): Przechwytywała zaszyfrowane komunikaty (szyfrogramy) i bez znajomości klucza starała się odczytać ich treść.
7.2. Rodzaj kryptografii – symetryczna, ale z niuansem.
Enigma jest klasycznym przykładem kryptografii symetrycznej. Szyfrowanie i deszyfrowanie odbywało się za pomocą tego samego klucza – zestawu codziennych ustawień maszyny. Jeśli Alicja i Bob ustawili wirniki w tej samej pozycji wyjściowej, ten sam proces (przepuszczenie litery przez wirniki) szyfrował tekst, a powtórzenie go na drugiej maszynie deszyfrowało. Ciekawostką jest to, że w maszynie wojskowej zastosowano łącznicę wtyczkową (plugboard), która dodatkowo podmieniała pary liter przed i po przejściu przez wirniki, co znacznie zwiększało liczbę możliwych kluczy.
7.3. Zasada Kerckhoffsa – rażące naruszenie.
To tutaj Enigma popełniała kardynalny błąd, który ostatecznie przesądził o jej losie.Zasada Kerckhoffsa mówi, że bezpieczeństwo systemu powinno opierać się wyłącznie na tajności klucza, a nie na tajności algorytmu (czyli budowy maszyny). Niemcy byli święcie przekonani, że sama budowa maszyny jest tajemnicą. Okazało się to zgubne. Kluczowymi elementami algorytmu, które nigdy się nie zmieniały (od lat 20. do 1945 roku), było okablowanie wirników. Stanowiło to część "tajnego" algorytmu, a nie zmiennego klucza.
Konsekwencja: Gdy polscy kryptolodzy (Marian Rejewski, Jerzy Różycki i Henryk Zygalski) w 1932 roku złamali ten algorytm, czyli odtworzyli wewnętrzne okablowanie wirników, całe bezpieczeństwo Enigmy legło w gruzach. Od tego momentu alianci wiedzieli, "jak działa maszyna", a do złamania codziennych wiadomości potrzebowali już tylko złamać zmienny klucz (czyli dzienne ustawienia wirników i łącznicy).
7.4. Cele kryptografii (CIA) – spełnione tylko w połowie
- Poufność (C): To był główny cel Enigmy i w teorii był osiągany. Chroniła treść wiadomości przed wrogim odczytaniem. Jednak przez błędy konstrukcyjne i proceduralne, ochrona ta została przełamana.
- Integralność (I) i Autentyczność (A): Enigma nie zapewniała ani integralności (czyli ochrony przed modyfikacją wiadomości), ani autentyczności (potwierdzenia tożsamości nadawcy). Maszyna służyła wyłącznie do szyfrowania treści, nie do jej uwierzytelniania.
7.5. Kryptoanaliza – pole bitwy
Historia Enigmy to majstersztyk kryptoanalizy. Alianci, mając do dyspozycji jedynie przechwycone szyfrogramy, wykorzystali jej słabości:
- Atak z samym szyfrogramem (Ciphertext-only): To było główne wyzwanie. Polscy matematycy, nie mając fizycznej maszyny, złamali jej wewnętrzną budowę, używając wyłącznie matematyki (teorii permutacji i grup).
- Słabość proceduralna: Niemieccy operatorzy mieli procedurę, która nakazywała im na początku każdej wiadomości dwukrotnie zaszyfrować klucz szyfrujący (tzw. klucz wiadomości). Ta powtórka, w postaci np. ABCABC, stworzyła matematyczny wzór, który Rejewski wykorzystał do skonstruowania swojej metody.
- Atak z wybranym tekstem jawnym (Chosen-plaintext): Alianci stosowali również tzw. "kryptologię ogrodową", czyli celowo zrzucali miny morskie w określonych miejscach, wiedząc, że Niemcy będą musieli zaszyfrować i przesłać komunikaty o ich lokalizacji. Znając tekst jawny (miejsce min), łatwiej było złamać klucz.
Historia Enigmy jest doskonałym studium przypadku. Pokazuje, jak doskonała matematycznie maszyna (z ogromną liczbą kombinacji klucza) może stać się bezużyteczna z powodu naruszenia Zasady Kerckhoffsa i drobnych błędów proceduralnych. Jej złamanie było triumfem kryptoanalizy nad złą kryptografią i na zawsze zmieniło bieg historii.
Jaka była liczba możliwych kombinacji (kluczy) wojskowej Enigmy? Zależy to od konkretnego modelu i okresu wojny, najczęściej przytaczaną, liczbą dla modelu używanego przez armię niemiecką (Wehrmacht i Luftwaffe) od około 1938 roku wynosi: 158 962 555 217 826 360 000 czyli około 159 trylionów możliwych ustawień (≈1,59 × 10²⁰). Całkowita liczba kluczy to iloczyn trzech niezależnych elementów konfiguracji maszyny:
- Wybór i kolejność wirników (60 kombinacji): Maszyna miała trzy gniazda na wirniki. Dysponowano zestawem pięciu różnych wirników (oznaczonych rzymskimi cyframi I, II, III, IV, V). Liczba możliwych sposobów wybrania 3 wirników z 5 i ułożenia ich w określonej kolejności to: 5 x 4 x 3 = 60.
- Ustawienie pierścieni (17 576 kombinacji): Każdy z trzech wirników mógł zostać obrócony do jednej z 26 pozycji (odpowiadających literom alfabetu). Liczba możliwych kombinacji położenia wszystkich trzech wirników to: 26 x 26 x 26 = 17 576.
- Połączenia na łącznicy wtyczkowej (150 738 274 937 250 kombinacji): Łącznica (plugboard) zamieniała litery parami. W tym modelu używano 10 kabli, które łączyły ze sobą 10 par liter (czyli 20 z 26 liter alfabetu).Liczba sposobów połączenia 10 par liter z 26 to ogromna liczba: 150 738 274 937 250.
Mnożąc te trzy liczby: 60 x 17 576 x 150 738 274 937 250 przez siebie, otrzymujemy dokładnie podaną wyżej wartość: 158 962 555 217 826 360 000
Należy pamiętać, że Enigma była maszyna ewoluującą, wczesna wersja wojskowa (przed 1938 rokiem), używała tylko 3 wirników (do wyboru z zestawu 3) i 6 kabli na łącznicy. Liczba możliwych ustawień wynosiła wtedy 10 586 916 764 424 000. Morska Enigma M4 (Kriegsmarine od 1942 roku): Miała 4 wirniki, co dodatkowo zwiększało liczbę kombinacji, choć jej wirniki nie były w pełni wymienne.
Liczba ≈1,59 × 10²⁰ (około 159 trylionów) jest przyrównywana do klucza o długości 67 bitów. Sprawdzanie jednego ustawienia na minutę zajęłoby 302 biliony lat. Należy jednak podkreślić, że złamanie Enigmy przez Polaków nie polegało na sprawdzaniu wszystkich kombinacji, ale na wykorzystaniu słabości proceduralnych i matematycznych, co zredukowało liczbę możliwych do sprawdzenia kluczy do praktycznych rozmiarów.
Czytaj także:
-
Dlaczego nie powinieneś tworzyć własnej kryptografii – prawdziwy przypadek z testów penetracyjnych. {dostęp 26-06-2026]
Grafika z poz. 4 wygenerowana przez model AI OpenAI (ChatGPT / DALL·E).




