Blog (48)
Komentarze (382)
Recenzje (0)
@karol221-10Kryptologia XX wieku — Enigma — pierwszy sukces + konkurs!

Kryptologia XX wieku — Enigma — pierwszy sukces + konkurs!

18.01.2017 19:50, aktualizacja: 29.05.2017 15:19

Rok 1932 był w pewnym sensie „ciszą przed burzą”. Republika Weimarska po cichu rozbudowywała arsenał wojskowy. W parlamencie dosyć dużą reprezentację posiadała Narodowo-Socjalistyczna Niemiecka Partia Robotników. Co prawda, w wyborach prezydenckich, zorganizowanych na początku 1932 roku nie wygrał Adolf Hitler, a dotychczas sprawujący urząd weteran pierwszej wojny światowej, Paul von Hindenburg. Nie stanowiło to jednak końca kariery Hitlera i jego partii, a jedynie początek. Tymczasem w Polsce Marian Rejewski był niezwykle blisko odkrycia tajemnicy maszyny Scherbiusa.

Jak Enigmę złamać próbowano

Grudzień 1932 roku. Marian Rejewski jest bardzo bliski ostatecznego pokonania niemieckiej Ciffiermachine E Eins. Zadziwiające jest to, że równania opisujące ogólne działanie tego typu maszyn ułożył już podczas pracy w filii Biura Szyfrów w Poznaniu. Jednakże, cały czas te równania zawierały ogromną ilość niewiadomych, czyniąc je nierozwiązywalnymi. Podstawową kwestią na samym początku było nie tyle odczytywanie niemieckich depesz, ile zbudowanie kopii niemieckiej maszyny szyfrującej. Dokumenty od Bertranda stanowiły tu dość sporą pomoc. Dlaczego? Jak już wspomnieliśmy, pierwsza partia zawierała m.in. instrukcję obsługi Enigmy wojskowej. Znajdował się w niej bardzo ciekawy przykład, pokazujący przykładowy tekst jawny (nazywany przez Polaków klerem) oraz tekst poddany procesowi szyfrowania przy pomocy odpowiednich ustawień maszyny. Dodając do tego posiadaną maszynę w wersji handlowej, stanowiło to już całkiem spory punkt zaczepienia. Ponadto, dzienne klucze szyfrujące, które także dotarły do Rejewskiego, były niezwykle pomocne przy rekonstrukcji okablowania wirników. Pomógł tutaj pewien błąd, który dotyczył nie samej maszyny, ale niemieckich procedur szyfrowania.

Fragment instrukcji obsługi Enigmy
Fragment instrukcji obsługi Enigmy

Procedury przyjęte na samym początku użytkowania Enigmy w Wehrmachcie zakładały zmianę co kwartał ustawień wirników szyfrujących. Natomiast klucze szyfrujące były zmieniane codziennie i wydawane w formie specjalnych kart. Operator nadający wiadomość odczytywał klucz z karty i ustawiał Enigmę wg niego. Następnie wymyślał indywidualny klucz wiadomości i szyfrował go dwukrotnie. Potem maszyna była ustawiana wg wymyślonego przez szyfratora indywidualnego klucza wiadomości i szyfrowana była cała depesza. Jaki problem w tym miejscu zauważamy? Otóż, faktem, który ułatwił Rejewskiemu pokonanie Enigmy było właśnie to podwójne szyfrowanie klucza wiadomości. Załóżmy, że Grundstellung naszej maszyny to GHY, natomiast indywidualny klucz wiadomości to RFG. Po zaszyfrowaniu klucza otrzymaliśmy ciąg PAQCLZ. Co możemy z tego wywnioskować? Skoro wiemy, że indywidualny klucz wiadomości znajduje się na samym początku i są to trzy znaki szyfrowane dwukrotnie, to pierwsza litera przechodzi w czwartą, druga w piątą a trzecia w szóstą. Jeśli będziemy posiadali odpowiednią ilość depesz danego dnia, na podstawie tej własności i odpowiednich równań będziemy mogli zrekonstruować okablowanie wirników.

Gustave Bertrand - francuski generał związany z służbami kryptologicznymi
Gustave Bertrand - francuski generał związany z służbami kryptologicznymi

Właśnie metoda wspomniana powyżej niezwykle pomogła Rejewskiemu. Instrukcja i klucze dzienne od Bertranda stanowiły natomiast sprawdzian. Informacje pozyskane z tych źródeł pozwalały sprawdzić, czy ustalone za pomocą obliczeń okablowanie wirników jest rzeczywiście prawdziwe.

Jednakże, nie zawsze matematyka jest najprostszym i najskuteczniejszym sposobem rozwiązywania problemów. Często najlepszym rozwiązaniem jest po prostu zwykła intuicja. I tak też się stało w przypadku ostatniego z problemów.

Pomiędzy klawiszami Enigmy i łącznicą kablową, a wirnikami znajduje się jeden, bardzo ważny podzespół. To tzw. walec wstępny. Jest on nieruchomy i łączy elektrycznie wyżej wymienione podzespoły ze sobą. W handlowej wersji Enigmy litery na wirniku były umieszczone w kolejności zgodnej z układem znaków na klawiaturze. Rejewski wiedział, że w wojskowej wersji Enigmy musiało być to zmienione – wszak – stanowiłoby to niezwykłe uproszczenie procesu łamania szyfru. Przemyślał on wiele różnych opcji. Ogromnym problemem była ilość kombinacji, która wynosiła 26!. Układ liter na wirniku mógł być przecież całkowicie losowy.

Jakież było zdziwienie Rejewskiego, kiedy okazało się, że Niemcy zastosowali kolejność alfabetyczną! – to była ostatnia niewiadoma niemieckiej Enigmy. Teraz wszystko stało się niezwykle proste. Wcześniej ułożone równania permutacyjne pozwoliły ustalić wszystkie wewnętrzne połączenia niemieckiej maszyny szyfrującej. Posiadając te informacje, droga do odszyfrowywania niemieckich depesz stała otworem. Ale to był dopiero początek wojny o informację między niemiecką służbą kryptograficzną Chi‑Dienst a referatem BS‑4 polskiego Biura Szyfrów.

mjr Maksymilian Ciężki
mjr Maksymilian Ciężki

Pod koniec grudnia 1932 roku, tuż po świętach Bożego Narodzenia na biurko mjr Maksymiliana Ciężkiego trafiła pierwsza rozszyfrowana samodzielnie przez Rejewskiego depesza. Warto zauważyć ten fakt – przez kilka pierwszych miesięcy tylko Marian Rejewski pracował nad tajemnicą Enigmy. Pozostali kryptolodzy zostali przydzieleni do innych zadań. Dowództwo Oddziału II Sztabu Generalnego szybko zauważyło, że to nie inne szyfry, ale właśnie Enigma stanie się głównym źródłem wiadomości polskiego wywiadu. Toteż od stycznia 1933 Rejewski przestał pracować w pojedynkę. Dołączyła do niego dwójka kryptologów, o których wspominaliśmy wcześniej – Henryk Zygalski i Jerzy Różycki.

Pierwsze depesze zaczęto czytać „maszynowo” już w styczniu 1933 roku. Z powodu wydarzeń w Niemczech polskie stacje nasłuchowe dostarczały też o wiele więcej materiału. Niemiecka NSDAP, mająca większość w parlamencie, posiadała licznych konkurentów. 30 stycznia 1933 roku Adolf Hitler został kanclerzem Rzeszy.

Dramatyczne wydarzenia dla niemieckiej demokracji miały dopiero nadejść. Dzięki rozszyfrowaniu niemieckiej Enigmy, również Polacy wiedzieli, co się dzieje wewnątrz Niemiec – i była to informacja najpewniejsza, gdyż pochodząca od samych Niemców. W lutym 1933 Rzeszą Niemiecką wstrząsnęła straszliwa informacja – pożar symbolu demokracji de facto byłej Republiki Weimarskiej – Reichstagu. O podpalenie siedziby niemieckiego parlamentu oskarżono prominentnych komunistów. Pozwoliło to na zdelegalizowanie jednej z opozycyjnych partii i prześladowania jej członków.

W tym samym czasie, w Polsce, Biuro Szyfrów złożyło w wytwórni radiotechnicznej „AVA” zamówienie na 15 sobowtórów niemieckiej maszyny szyfrującej Enigma. Znając wewnętrzne połączenia maszyny można było zbudować identycznie działające duplikaty, które byłyby o wiele bardziej pomocne w odszyfrowywaniu niemieckich depesz wojskowych niż cywilna wersja Enigmy. Od tej pory przetwarzanie przechwytywanych przez nasłuch radiowy informacji miało iść tempem iście taśmowym.

Awaryjna Enigma H
Awaryjna Enigma H

Przez kilka tygodni od otrzymania sobowtórów niemieckiej maszyny wszystko szło bez najmniejszych problemów. Lecz pewnego dnia odebrano depesze, będące korespondencją między sztabami wojskowymi w Królewcu i Szczecinie, których nie dało się złamać dotychczas znanymi metodami. Tajemniczego szyfru pojawiało się coraz więcej. Udało się ustalić, że za przyczyną takiego przebiegu wydarzeń stoi nowa wersja Enigmy, przeznaczona do komunikacji między sztabami armii – była to nowa Enigma H, w niemieckich wiadomościach oznaczana jako E Zwo. Posiadała ona aż 8 wirników. Dodatkowo zawierała w sobie maszynę do pisania, toteż nie wymagała ręcznego zapisywania wyników dekryptażu. Na szczęście dla polskich kryptologów, był to model niezwykle zawodny. Kilka tygodni po wprowadzeniu E Zwo Polacy bardzo często przechwytywali wiadomości o następującej treści, nadane już za pomocą zwykłej Enigmy: „E Zwo ausser Betrieb” – czyli E Zwo nie działa! Nowy wynalazek niemieckich inżynierów znikł tak samo szybko, jak się pojawił.

Codzienna praca

Wczesne metody znajdowania ustawień niemieckiej maszyny szyfrującej opierały się głównie na metodach ręcznych. Biuro Szyfrów, po otrzymaniu Enigm, mogło zatrudnić dodatkowy (lecz dalej jak najbardziej zaufany) personel. Zadanie matematyków w tym momencie sprowadzało się do odnalezienia używanego w danym dniu klucza podstawowego lub kluczy indywidualnych depeszy. Ta informacja była przekazywana do personelu deszyfrującego, który ustawiał Enigmy „made In Poland” wg obliczonych parametrów i odszyfrowywał odebrane tego dnia meldunki.

Łącznica kablowa Enigmy wojskowej
Łącznica kablowa Enigmy wojskowej

Wiadomość kodowana przez Ciffiermaschine E Eins posiadała kilka linii obrony. Pierwszą z nich była kolejność wirników. Ta była zmieniana w tym okresie raz na kwartał, toteż nie stanowiła wielkiego problemu. Drugą linią defensywy były połączenia wykonane na łącznicy kablowej. Ostatnią natomiast – indywidualny klucz depeszy.

Na początku każdego kwartału należało ustalić pozycję wirników w maszynie. Stosowana była do tego metoda „zegara” opracowana przez Różyckiego. Wykorzystywała ona nieświadomy błąd niemieckich konstruktorów maszyny. Jak wiemy z pierwszego artykułu tej serii, każdy wirnik posiadał specjalne wcięcia, które powodowały jego obrót w momencie, kiedy poprzedni rotor znajdował się w odpowiedniej pozycji. Założenie konstruktorów było poniekąd słuszne – miało komplikować szyfr. Np.: jeden wirnik powodował obrót następnego przy literze W, a inny przy znaku D. Jaką wadę mogło mieć takie rozwiązanie? Dostrzegł ją Jerzy Różycki.

Mówiliśmy już, że szyfr maszynowy Enigmy ukrywa niektóre cechy języka. Okazuje się, że nie do końca. Otóż, jeśli weźmiemy dwa fragmenty tekstu w języku niemieckim i zapiszemy je pod sobą, to okaże się, że (w znacznej większości przypadków) w pionie znajdują się takie same litery. Jeśli natomiast pod tekstem niemieckim zapiszemy przypadkowe znaki, okaże się, że takich par znajdziemy zaledwie kilka. Jak wykorzystywano ten fakt?

Spośród przechwyconych danego dnia depesz należało wychwycić takie, których indywidualny klucz wiadomości różnił się tylko na trzeciej pozycji. Następnie należało je zapisać z odpowiednim przesunięciem. Potem szukano, do którego fragmentu obydwu depesz liczba par liter odpowiada językowi niemieckiemu. Jeśli od którejś pozycji liczba par takich samych liter w górnej i dolnej depeszy zaczęła odpowiadać tekstowi złożonemu z losowych znaków, to znaczy, że w tym miejscu nastąpił przeskok drugiego wirnika. Oczywiście, nie dało się tego ustalić na podstawie analizy jedynie dwóch depesz. Trzeba było takich dedukcji wykonać co najmniej kilkadziesiąt. Czasami nawet więcej. Ale, jeśli ustalimy, w którym momencie następuje przeskok drugiego wirnika, to będziemy mogli jednoznacznie określić, jaki wirnik znajduje się na pozycji „szybkiej”, czyli skrajnej prawej.

Wirniki szyfrujące Enigmy
Wirniki szyfrujące Enigmy

Nie wiemy co prawda, jakie wirniki znajdują się na pozostałych dwóch pozycjach, ale to nie było w tej chwili najważniejsze. Bardziej istotne było ustalenie ustawień łącznicy kablowej, która zmieniana była codziennie. Służyła do tego tzw. metoda rusztu. Zresztą, przy jej zastosowaniu, niejakim skutkiem „pobocznym” było często odnalezienie rodzajów dwóch pozostałych wirników. Metoda ta była dość skomplikowana i opierała się na teorii permutacji, toteż poznamy jedynie jej ogólny zarys. Metoda rusztu w dużej mierze opierała się na zasadzie, że w początkowym okresie zamieniano zawsze sześć par liter, toteż dosyć znaczna część alfabetu mimo zastosowania łącznicy pozostawała niezmieniona.

W skrócie, opierała się ona na wykorzystaniu dwóch, odpowiednio skonstruowanych płacht. Musiały one być odpowiednio dobrane, w zależności od używanych w danym czasie wirników. Pozycję jednego z wirników, dzięki zegarowi Różyckiego już znamy. Toteż, w sferze rotorów zostało już bardzo niewiele kombinacji. Na wierzchnim arkuszu były zapisane permutacje, a na spodnim drugie potęgi tej samej permutacji.

Kartka znajdująca się na wierzchu miała odpowiednie otwory, przez które było widać to, co znajduje się pod spodem. Przesuwano te dwa arkusze w taki sposób, aby w miejscach otworów znalazły się pary liter niezmienione przez łącznicę. Przez odpowiednie przekształcenie wyrażeń matematycznych otrzymywaliśmy także rodzaj drugiego i pierwszego wirnika. Metody rusztu można było używać bez wcześniejszego skorzystania z „zegara” Różyckiego, ale stwarzało to konieczność przetestowania znacznie większej liczby kombinacji.

Schemat okablowania Enigmy (wikipedia.pl)
Schemat okablowania Enigmy (wikipedia.pl)

Pozostało odnalezienie ustawienia wirników (Ringstellung). Z wszystkich wyżej wymienionych metod ta była stosunkowo najmniej wyrafinowana. Otóż, opierała się na zasadzie, że znaczna większość niemieckich depesz zaczynała się od wyrażenia: „od”, czyli po niemiecku, w języku Enigmy, „ANX”. Załóżmy, że po zaszyfrowaniu ten ciąg znaków przyjąłby postać „BQR”. Teraz, oczywiście po ustawieniu wirników maszyny i ustawień łącznicy wg wcześniej wyliczonych wartości, wystarczy wciskać na maszynie literę „B” czyli pierwszy znak szyfrogramu. Jeśli po którymś naciśnięciu zapali się lampka oznaczająca literę A, to wtedy wciskamy drugą literę zaszyfrowanej depeszy – „Q”. Jeśli w rezultacie otrzymamy znak „N”, a kolejne litery tekstu zaszyfrowanego układają się w logiczny tekst, to znaczy, że znaleźliśmy odpowiednie ustawienie. Sposób ten nie był doskonały – w najgorszym wypadku wymagał wciskania tego samego klawisza 17576 razy. Aczkolwiek, dzięki lenistwu oraz niedouczeniu niemieckich szyfrantów można było ten czas mocno skrócić.

W 1932 i na początku 1933 roku, kiedy Enigma była już „seryjnie” wykorzystywana w oddziałach niemieckich, zaczęły wychodzić na jaw błędy, które robią niemieccy operatorzy przy ustalaniu indywidualnego klucza depeszy. Często były to klucze w rodzaju AAA czy BBB, czyli trzykrotne powtórzenia jednej litery. Zwykli pracownicy obsługujący Enigmę, a być może nawet nadzorujący ich dowódcy początkowo tak wierzyli w bezpieczeństwo tej maszyny szyfrującej, że nie zwracali uwagi na pozorne niebezpieczeństwo. Po pewnym czasie Służba Bezpieczeństwa Łączności dostrzegła naganne praktyki swych szyfrantów i zakazało używania powtórzeń w kluczach. Zakaz ten był albo źle sformułowany, albo źle zrozumiany przez niemieckich operatorów, gdyż w rezultacie z eteru znikły jakiekolwiek depesze kodowane indywidualnym kluczem wiadomości, który zawierał chociaż jedną powtórzoną literę (np.: ABA). Po wydaniu nakazu, do którego dostosowali się operatorzy Enigmy, ci zaczęli używać kluczy opartych na układzie klawiatury, np.: QWE, ASD czy PYX. Kiedy i ta praktyka została zakazana, przerzucono się na klucze tworzone po przekątnej (dzisiaj tego typu hasła też są często spotykane, np.: sławny informatyczny ZAQ!@WSX :), np.: QAY czy WSX. Używanie tego rodzaju kluczy także zostało zakazane. Wbrew pozorom, tego typu czynności zamiast polepszać bezpieczeństwo, zmniejszały je, gdyż znacznie ograniczały maksymalną liczbę indywidualnych kluczy wiadomości. Dzięki temu użycie np.: metody anx dawało rezultat o wiele szybciej niż normalnie.

Koniec historii?

Polacy odczytywali coraz większą liczbę depesz niemieckich. Natomiast Niemcy nie wiedzieli, że ich najnowsze dziecko zostało pokonane. Niemniej jednak, niemieccy kryptolodzy nie spoczywali na laurach. Enigma była cały czas unowocześniana, co miało dać się we znaki polskim naukowcom już w najbliższych miesiącach. Ale szczegóły tych wydarzeń poznamy w następnej części.

KONKURS Z NAGRODAMI

Niektóre z metod, których używali Polacy do złamania niemieckiej maszyny szyfrującej możesz przetestować samemu. Z tej strony możesz pobrać bardzo dobry symulator Enigmy, który doskonale odwzorowuje jej działanie. Właśnie z tym będzie związane zadanie tego mini-konkursu: Jesteś kryptologiem w referacie BS‑4 Biura Szyfrów. Dostarczono ci właśnie trzy depesze, które masz odszyfrować. Metodą zegara Różyckiego oraz metodą rusztu udało się ustalić kolejność wirników w przypadku dwóch pierwszych depesz (dla ułatwienia, łącznicę kablową pomijamy. Metoda anx służyła do znalezienia Ringstellung, ty szukasz natomiast indywidualnego klucza depeszy). Trzecia natomiast została wysłana w innym terminie i w jej przypadku kolejność wirników nie jest znana. Ponadto wiadomo, że każda depesza zaczyna się słowem WIAD. Wirniki, w kolejności od lewej do prawej to: 2, 1, 3. (dla depeszy pierwszej i drugiej).

140877
140878

"Depesze", których szyfrogramy znajdują się powyżej zawierają wypowiedzi dwójki sławnych osób świata IT. Pierwsza (posiadająca konto) osoba, która poda w komentarzu tekst jawny tych "depesz", zostanie nagrodzona kluczem do Gwinta - Wiedźmińskiej Gry Karcianej Najcięższym orzechem do rozgryzienia będzie depesza III, która wymaga wypróbowania różnych kombinacji wirników. Dużym ułatwieniem może być fakt, że operator złamał w jej przypadku zasady dotyczące wyboru indywidualnego klucza depeszy.

613131

"Depesza" ta zawiera wypowiedź jednej z najważniejszych osób II Rzeczypospolitej. Osoba, która jako pierwsza poda w komentarzu tekst jawny, zostanie nagrodzona jedną z dwóch wybranych przez siebie nagród: kluczem do Gwinta - Wiedźmińskiej Gry Karcianej lub kluczem do Dirt Showdown. Na odpowiedzi czekam do 25 stycznia 2017 roku. Zadania te, wbrew pozorom, nie są trudne :) Jeśli mimo to nikomu nie uda się ich wykonać, podam poprawny tok rozumowania.

Wybrane dla Ciebie
Komentarze (20)