deszyfrowanie wiadomości


ostatecznie aby móc odszyfrować otrzymaną (lub przechwyconą) wiadomość należało znać następujące parametry:


Warto zauważyć, że pierwsze trzy pozycje z powyższej listy wymagały otwarcia pokrywy Enigmy i ustawienie to było przeprowadzane przez oficera (lub kogoś wyższego rangą) na podstawie zapisu z księgi kodów dla danego dnia bieżącego miesiąca. Następnie można było zablokować dostęp do wnętrza maszyny, umożliwiając szyfrantowi zmianę tylko ustawień podstawowych (Grundstellnung), zmieniających się przy każdej depeszy.

Poniżej przedstawiono parametry prawdziwego szyfrogramu odebranego przez łódź U-516 30 kwietnia 1945

przykładowe rzeczywiste parametry ustawień dla Enigmy M4

Radiotelegrafista w trakcie odbioru zaszyfrowanej wiadomości zapisywał jej znaki na kartce (niem. schluessel Zettel) w postaci 4-ro lub 5-cio znakowych bloków. Następnie arkusz z zaszyfrowaną wiadomością (szyfrogramem) przekazywał do szyfranta. Ten z kolei wprowadzał go do swojej Enigmy wpisując odpowiednie znaki na klawiaturze, zapisując jednocześnie litery zapalających się kolejno żarówek na osobnej kartce.

Niemcy jeszcze przed wojną przyjęli zasadę, że pierwsze dwa bloki szyfrogramu stanowił zaszyfrowany powtórzony kulcz wiadomości. W tej konkretnej wiadomości bloki z zaszyfrowanem kodem zostały dopisane także na końcu wiadomości. Klucz ten należało rozszyfrować, zgodnie z ustawieniami książki kodów dla danego dnia i przyjętymi z nagłówka wiadomości ustawieniami początkowymi (Grundstellung). Po rozszyfrowaniu pierwszych 6 znaków szyfrogramu otrzymywano powtórzony 2x klucz wiadomości. Dla omawianego przykładu - z bloku HCALNU po rozszyfraowaniu orzymano ciąg ASTVASTV.

Podwójny zapis tego kodu miał na celu zabezpieczenie przed ewentualnymi przekłamaniami powstałymi w drodze radiowego przesyłu wiadomości. Jak się jednak okazało - był to poważny błąd Niemców - rozpracowany później przez polskich kryptologów. Ci ostatni, ustaliwszy, że pierwsze 6 zakodowanych znaków szyfrogramu (np. HCALNU) zawierała zawsze dwa powtórzone trój-literowe bloki (jawnego tekstu), byli w stanie ustalić zależności pomiędzy znakami szyfrogramu (H-L / C-N / A-U) i na tej podstawie odtworzyć przebieg połączeń wirników w maszynie (tzw. teoria cyklów Mariana Rejewskiego).

W późniejszych latach wojny zrezygnowano z tej metody, gdyż Niemcy połapali się, że ich wiadomości najprawdopodobniej są odczytywane przez Aliantów. Wprowadzili wówczas coś, co nazywano grupy identyfikatorów (Kenngruppen). Więcej na ten temat opiszę w dalszej części.

Wróćmy jednak do rozszyfrowania tej wiadomości. W pierwszej kolejności szyfrant ustawiał wirniki i pozostałe parametry Enigmy zgodnie z książką kodów dla danego dnia bieżącego miesiąca (tutaj: Grundstellung: AMZI i Ringstellung: ASOD). Następnie rozszyfrowywał dwa pierwsze bloki, wprowadzając na klawiaturze sekwnecję HRQN i SMAD. Odszyfrowana wartość tych bloków to ciąg ASTVASTV.

Poniżej przedstawiam rozkodowanie tej wiadomości przy użyciu programu aenig4 (emulatora Enigmy):

marek@Enigma:~$ echo HRQNSMAD | /usr/local/enigma/bin/aenig4 -k "c gamma II I V 1 19 15 4 AMZI AD LR ZJ XI BU KV SW FH EN MY" --filter
ASTVASTV

Następnie jeśli powtórzony 2x kod zgadzał się (nie było przekłamań w odbiorze), operator zmieniał ustawienia podstawowe wirników na odczytaną wartość (tutaj ASTV). Przy czym zmieniano ustawienia samych wirników (Grundstellung) - pozostałych parametrów nie zmieniano. Dalsza część wiadomości została odszyfrowana jako

marek@Enigma:~$ echo "LVIODMMWJLKNGSRJVNLCIKGTMDRBIDAWYLIKIFIFCMCG" | /usr/local/enigma/bin/aenig4 -k "c gamma II I V 1 19 15 4 ASTV AD LR ZJ XI BU KV SW FH EN MY" --filter
DERFUEHRERISTTOTXDERKAMPFGEHTWEITERXDOENITZX

co możemy odczytać jako "Der Fuhrer ist tot. Der Kampf geht weiter Doenitz" (Führer nie żyje. Walka trwa dalej Dönitz).

Niemcy używali znaków X jako spacji, której normalnie w Enigmie nie przewidziano. Wiadomość ta została nadana przez Karla Dönitza oficera marynarki wojennej, naczelnego dowódcę Kriegsmarine w latach 1943–1945.
Na podstawie ustawień wirników możemy przypuszczać, że wiadomość została zakodowana w sposób umożliwiający odczyt także na maszynach M3 (Ringstallung dla wirnika gamma ustawiony na literę A oraz Grundstellung czwartego wirninka także ustawiono na literę A). Na potwierdzenie tej tezy na rysunku poninżej przedstawiłem wiadomość zdekodowaną w emulatorze Enigmy M3 dla Androida


Inna przykładowa (rzeczywista) wiadomość nadana przez Wehrmacht jeszcze przed wojną, w 39 roku Wiadomość została nadana zanim maszyny M4 w ogóle istniały, dlatego rozkodowując ją programem aenig4 musimy narzucić mu w tryb kompatybilności z M3. nagłówek wiadomości:

AN HEERESGRUPPENKOMMANDO 2 =
2109 -1750 - 3 TLE - FRX FRX - 1TL -172 =

Z nagłówka możemy dowiedzieć się, że wiadomośc została nadana 21/09 o godzinie 17:50. Składa się z trzech części (3 TLE). Pierwsza część (1TL - niem. Teil - część) zawiera 172 znaki. W nagłówku jawnym tekstem przekazano także ustawienia początkowe wirników (Grundstellung) - FRX, jakie należało ustawić aby odszyfrować klucz wiadomości. W późniejszym okresie zaniechano takich praktyk. Zatem mamy: