Rozważmy poniższą depeszę, którą dostaliśmy od radiotelegrafisty. Na jej przykładzie możemy prześledzić proces deszyfracji oraz pewne słabości proceudralne, które były wykorzystane przez polskich i później brytyjskich kryptologów i łamaczy. Ta konkretna wiadomość pochodzi z 1938 roku, a więc jeszcze sprzed wojny i została odszyfrowana przez Polaków. W owym czasie zespół polskich kryptologów na bieżąco odczytywał niemieckie wiadomości. Z tego powodu Niemcy w trakcie wojny stale zmieniali i udoskonalali metody szyfrowania. Sytuacja przypominała zatem nierówną zabawę w kotka i myszkę. W szczególności wiadomości nadawane przez marynarkę wojenną (Kriegsmarine) były lepiej zabezpieczone. W ich przypadku procedura ustawienia wirników była znacznie bardziej złożona (zwłaszcza po 1941 roku). Spróbuję ją również opisać w innym przykładzie. Tymczasem mamy taką o to wiadomość:
Początek wiadomości stanowi nagłówek (preambuła), który nadawny był "otwartym tekstem" (bez szyfrowania). Z nagłówka wiadomości widzimy, że
- została nadana 21/09 o godzinie 17:50
- wiadomośc składa się z 3 części: 3 TLE (niem. das Teil - część)
- początkowe ustawienia wirników to: FRX (przesłane dwukrotnie)
- długość pierwszej z części to: 172 znaki (zakodowanego tekstu)
- reflektor B
- kolejność wirników II I III
- ustawienia pierścieni: (A) Z W D / (1) 26 23 4
- ustawienia łącznicy: EZ BL XP WR IU VM JO
W wyniku deszyfracji otrzymaliśmy ciąg 'AGIAG I', będący powtórzeniem dwa razy klucza AGI. Był to tzw. klucz wiadomości i stanowił ustawienia wirników dla dalszych bloków pierwszej części wiadomości.
Klucz ten początkowo był dobierany losowo przez szyfranta. Tutaj dochodzimy do dwóch słabości proceduralnych. Niemcy w obawie przed przekłamaniem w odbiorze wiadomości wysyłali ten klucz 2x po sobie. Wiedza, że pierwsze 6 zakodowanych znaków zawiera dwa te same trój-literowe bloki (tzw. trigramy) jawnego tekstu ułatwiała polskim kryptologom ustalenie pewnych zależności występujących pomiędzy literami szyfrogramu i na tej podstawie odtworzenie połączeń w wirnikach maszyny (tzw. teoria cyklów Mariana Rejewskiego). Niemcy w późniejszym czasie się z tego wycofali. Drugą słabością było to, że szyfranci często rutynowo wybierali te same ustawienia zamiast "wygenerować" inne (losowe). Na podobnej zasadzie jak my obecnie wybieramy hasła pokroju qweasd dla mniej istotnych serwisów internetowych ;). Wg informacji znalezionych w internecie, po 41 roku początek depeszy, stanowiący zaszyfrowany właściwy kod wiadomości, wysyłany był pojedyńczo i dobierany na podstawie książki kodów dla danej daty (identyfikator Kenngruppen + 2 losowo dobrane znaki).
Zatem znając już właściwy kod pierwszej części wiadomości, spróbujmy ją rozkodować. W tym celu wpisujemy pozostałe znaki pierwszej części wiadomości do naszej wirtualnej Enigmy (bez pierwszych 6 znaków, które stanowią zaszyfrowany kod wiadomości i bez identyfikatora AXPWT!).Tę samą wiadomość rozszyfrowaną przy użyciu androidowego emulatora Enigmy M3 przedstawiają rysunki na końcu tekstu.
Teraz musimy ustalić kod drugiej częśći wiadomości. W tym przypadku znowu, początkowe ustawienia wirników (Ringstellung), dla właściwej treści drugiej części wiadomości były zakodowane w jej pierwszych 6 znakach. Musimy znów przestawić wirniki w ustawienia zapisane w nagłówku wiadomości ((A)FRX) i rozkodowac pierwsze 6 znaków.W wyniku deszyfracji otrzymaliśmy ciąg 'YBEYB E', będący powtórzeniem dwa razy klucza YBE. Teoretycznie wartość tego klucza (YBE) była wybierana przez szyfranta losowo. W praktyce Niemcy rutynowo używali często tych samych kodów, albo, co też okazało się słabością - jako kod kolejnej wiadomości (kolejnej części) przyjmowali ustawienia wirników jakie widzieli w okienku maszyny, z ostatniego bloku poprzedniej części wiadomości. W tym ostatnim przypadku wystarczyło rozkodować tylko ostatnią część wiadomości, ponieważ jej kod był jednocześnie ustawieniem wirników z końca poprzedniej (a znając ustawienia wirników i liczbę znaków można było dojść do kodu poprzedniej wiadomości itd.) Zatem ustawiamy wirniki w położenie (A)YBE i rozkodowujemy dalsze znaki drugiej części wiadomości!
W wyniku deszyfracji otrzymaliśmy ciąg 'LUNLU N'. Zatem ustawiamy wirniki w położenie (A)LUN i rozkodowujemy pozostałe znaki z trzeciej części wiadomości:
Poniżej jeszcze raz w formie czysto tekstowej:
----------------------------------------------- 1TL: AUF BEFEHL DES OBERSTEN BEFEHLSHABERS SIND IM FALLE X Z X ZT X UNWAHRSCHEINLICHEN X FRANZOESISQEN ANGRIFFS DIE WESTBEFESTIGUNGEN JEDER ZAHLENMAESSIGEN UEBERLEGENHEIT ZUM TROTZ ZU HALTEN X 2TL: FUEHRUNG UND TRUPPE MUESSEN VON DIESER EHRENPFLIQT DURQDRUNGEN SEIN X ABS X DEM GEMAESS BEHALTE IQ MIR DIE ERMAEQTIGUNG ZUR PUFGABE DER BEFESTIGUNGEN ODER AUQ VON TEILEN AUSDRUECKLIQ 3TL: PERSOENLIQ VOR X ABS X AENDERUNG DER ANWEISUNG X OKH X GEN X ST X D X H X ERSTE ABT X NR X DREI DREI ZWO EINS X DREI AQT G X KDOS X VOM JULI EINS NEUN DREI AQT BLEIBT VORBEHALTEN X DER OBERBEFEHLSHABER DES HEERES -----------------------------------------------i po przełożeniu na normalny niemiecki
------------------------------------------------------------------------------------------------- Auf Befehl des Obersten Befehlshabers sind im Falle, zur Zeit unwahrscheinlichen, Franzoesischen Angriffs die Westbefestigungen jeder zahlenmaessigen Ueberlegenheit zum trotz zu halten. Fuehrung und Truppe muessen von dieser Ehrenpflicht durchdrungen sein. Dem gemaess behalte ich mir die Ermaechtigung zur Aufgabe der Befestigungen oder auch von Teilen ausdruecklich persoenlich vor. Aenderungen der Anweisung OKH/Gen/St/D/H Erste Abt Nr. 3321/38 G/KDos vom Juli 1938 bleibt vorbehalten. Der Oberbefehlshaber des Heeres. -------------------------------------------------------------------------------------------------
tłumaczenie na angielski
The Commander-in-Chief orders as follows: In the case of French attacks on the western fortifications, although unlikely at this moment, those fortifications must be held at all costs, even against numerically superior forces. Commanders and troops must be imbued with the honour of this duty. In accordance with orders, I emphasise that I alone have the right to authorise the fortifications to be abandoned in whole or part. I reserve the right to make changes to the order OKH/Gen/St/D/H 1. Abt. Nr. 3321/38 GKDos of July 1938. The Commander-in-Chief of the Army.
niektóre skróty używane przy pisaniu wiadomści
- X = spacja albo podział wyrazu
- ABS = nowy paragraf
- AQT = /
- Q = CH np. SQIFF oznaczało Schiff (łódź)
- ZXZT (z.Zt) = "zur Zeit" - obecnie / aktualnie
ustawienia wirników, pierścieni i łącznicy | wirniki ustawione w kod - AGI | rozszyfrowany tekst na dole ekranu zwróć uwagę na obecne położenie wirników |
pierwsza część wiadomości rozkodowana w emulatorze Enigmy pod Androidem
Bawiąc się aplikacją pod Androida możesz graficznie zaobserwować moment przeniesienia - inny dla poszczególnych wirników. Przykładowo wirnik III (tutaj występujący na pierwszej pozycji od prawej strony) powoduje, że sąsiadujący z nim wirnik I przesuwa się o jedną pozycję, w momencie przejścia wirnika III z litery V na literę W. Tutaj jest to oczywiście warunek programowy, natomiast w fizycznych Enigmach było to realizowane poprzez specjalne wyżłobienia występujące w różnych wirnikach na różnych pozycjach. W tabeli nr 1 przedstawiłem moment przeniesienia dla poszczególnych wirników.wirnik | moment przeniesienia |
---|---|
I | Q -> R |
II | E -> F |
III | V -> W |
IV | J -> K |
V | Z -> A |