Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Kryptologia XX wieku — maszyna Lorenza

II wojna światowa była okresem, który pochłonął kilkadziesiąt milionów istnień. Nie mniej, postęp techniczny, który został wymuszony przez trwający konflikt był ogromny. Najszybciej unowocześniano technikę zbrojeniową. Ale nie tylko – kryptografia, a zarazem kryptologia również cieszyła się niemałym powodzeniem. W tej dziedzinie prym wiodła III Rzesza. Brytyjczycy i Rosjanie starali się nie zostawać w tyle. Każda ze stron konfliktu marzyła nie tylko o odczytywaniu depesz przeciwnika, ale również o zabezpieczeniu swojego kanału komunikacji. Kilka miesięcy temu szczegółowo zajmowaliśmy się Enigmą. W tej części zainteresujemy się inną, mniej znaną niemiecką maszyną szyfrującą. Mimo tego, że była ona mniej znana, miała równie duży wpływ na przebieg działań wojennych jak Enigma.

Przesiębiorstwo C.Lorenz AG

Enigma, o której wspominałem wcześniej nie była jedynym wynalazkiem niemieckich inżynierów. Niemcy w czasie tego rozdziału historii ludzkości stworzyli co najmniej kilka niezwykle interesujących oraz mających duży wpływ na bieżące działania wojenne maszyn szyfrujących. Wynalazek Scherbiusa był używany na poziomie taktycznym. Za jej pomocą polowe oddziały mogły się bezpiecznie komunikować ze sztabem oraz między sobą. Niemcy wierzyli, że Enigma jest niemożliwa do złamania. Jednakże, to nie ona zabezpieczała komunikację na najważniejszym szczeblu – strategicznym. Do komunikacji między sztabami różnych armii, czy między armią a kwaterą główną, używana była inna, oferująca znacznie lepszą jakość szyfru, maszyna. Dalekopis Lorenza ze specjalną „przystawką” szyfrującą miał zapewnić 100% bezpieczeństwo. Historia firmy, która stworzyła tę niezwykłą machinę była nieco burzliwa. Aby prześledzić dzieje tej firmy, musimy cofnąć się do 1870 r.

Firma C. Lorenz AG była pionerem w wielu dziedzinach, takich jak telegrafia, telefonia czy radar. Powstała na długo przed nastąpieniem omawianych wydarzeń – w roku 1870. Wszystko zaczęło się od małego sklepu z elektroniką, żarówkami oraz małym warsztatem. Carl Lorenz rozwijał swoje dziecko. W 1880 udało się pozyskać kontrakt na stworzenie urządzeń telegraficznych dla kilku prywatnych spółek kolejowych. Tym samym firma wkroczyła na rynek telegrafów. Z czasem C. Lorenz AG stał się jednym z głównych dostawców tego typu urządzeń na rynek krajowy. W 1889 r. Carl Lorenz przedwcześnie zmarł na pospolitą chorobę – grypę. Brak odpowiednich leków nie pozwolił lekarzom uratować tego inżyniera. Biznes po zmarłym właścicielu przejął Robert Held – biznesmen, który do tej pory działał w całkowicie innej branży. Za 50000 marek kupił firmę C. Lorenz Telegraphenbauanstalt. Mimo zmiany szefostwa, firma dalej istniała pod nazwą Carla Lorenza. Zresztą, jego brat, Alfred Lorenz został mianowany dyrektorem technicznym. Wraz z rozwojem biznesu, C.Lorenz AG. wspinał się na kolejne wyżyny. Zatrudniano coraz większą liczbę pracowników. Najwyższy poziom zatrudnienia, około 3000 ludzi odnotowano przed pierwszą wojną światową. Konflikt, który „miał zakończyć wszystkie wojny” oraz kryzys ekonomiczny w Niemczech odczuł cały niemiecki biznes. Firma Lorenz AG znacznie zredukowała etaty. W związku z dużym impasem wycofano się z realizacji nowych projektów związanych z uzbrojeniem. Zresztą, traktat wersalski nakładał w tej kwestii na Republikę Weimarską wiele ograniczeń. Zajęto się projektami cywilnymi. Praca popłacała. Lorenz AG jako pierwszy skonstruował urządzenia służące do nadawania radia w Niemczech. Stworzono także pierwszy odbiornik – Liebhaber-Empfanger. Przeciętny niemiecki robotnik nie mógł sobie pozwolić na takie udogodnienie - urządzenie to kosztowało 250 marek niemieckich.

r   e   k   l   a   m   a

W 1935 r. opatentowano antenę magnetyczną, której modyfikacje do dziś są dosyć powszechnie wykorzystywane w radioodbiornikach. Niestety, przyszłość miała znowu zwrócić wysiłek firmy w kierunku branży militarnej.

Naród niemiecki zmierzał do kolejnego konfliktu. Pierwsze działania, podejmowane już przez Republikę Weimarską były nieoficjalne. Niemieckich żołnierzy i czołgistów szkolono na radzieckich poligonach (było to możliwe na podstawie traktatu w Rapallo, podpisanego pomiędzy RFSRR a Republiką Weimarską w 1922 roku). Po legalnym dojściu i umocnieniu się NSDAP u władzy, Adolf Hitler już oficjalnie zmierzał do wojny. Remilitaryzacja Nadrenii, zwiększenie liczebności Wehrmachtu, Anschluss Austrii. Wobec tego powstało zapotrzebowanie na różne urządzenia radiowe. Tym samym firma Carla Lorenza musiała powrócić do branży militarnej. Radary oraz różnego rodzaju radioaparaty wykorzystywane później w niemieckich czołgach i samolotach produkowane były w fabrykach należących do Lorenza, znajdujących się m.in. w Berlinie i kilku innych miastach III Rzeszy.

Pod koniec lat 30 XX wieku, kiedy świat stał na preludium wojny, Wehrmacht zgłosił do firmy C.Lorenz AG zapotrzebowanie na nową maszynę szyfrującą – bezpieczny dalekopis, który w pełni zabezpieczy komunikację między dowództwami armii. Przy projektowaniu tego typu maszyny istniało kilka problemów. Enigma była lekka. Jej ewakuacja lub zniszczenie (tak, aby nie wpadła w ręce wroga) nie była żadnym problemem. Dalekopisy z natury są ciężkie – ważą kilkanaście/kilkadziesiąt kilogramów. Wobec tego uznano, że znacznie lepszym rozwiązaniem niż tworzenie całkiem nowego urządzenia, jest zaprojektowanie jedynie „przystawki” która dodałaby możliwość zabezpieczenia transmisji. Standardowy dalekopis Lorenza, nawet jeśli zostałby przejęty przez wroga, nie dawał mu praktycznie żadnych profitów.

Inną, niezwykle ważną rzeczą, odróżniającą maszynę Lorenza od Enigmy, był mechanizm szyfrowania i zapisu wyników swoich działań. Enigma za pomocą żarówek informowała operatora o wynikach swojej pracy. Maszyna Lorenza zachowywała się jak zwyczajny dalekopis. Do zapisu informacji używała kodu Baudota – powszechnie stosowanego w tego typu urządzeniach.

Zastosowany szyfr był również całkowicie inny. Postanowiono wziąć na warsztat algorytm wynaleziony jeszcze podczas pierwszej wojny światowej. Gilbert Sandford Vernam, brytyjski inżynier opracował ciekawy szyfr. W teorii był on „nie do złamania”. Na czym polegała wynaleziona przez niego metoda? Była ona bardzo prosta. Wiadomość przesyłamy za pomocą kodu Baudota. Na taśmie perforowanej zapisany jest niepowtarzalny, losowy ciąg znaków, który swoją długością odpowiada długości wiadomości. Metoda szyfrowania jest niezwykle banalna – każdy znak jest dodawany do klucza, dając szyfrogram. Operacja deszyfracji jest operacją odwrotną – od kodu szyfrogramu odejmujemy kod klucza. W ten sposób uzyskujemy wcześniej zaszyfrowany tekst jawny.

Szyfr Vernama miał kilka poważnych wad, które utrudniały inżynierom opracowanie odpowiedniej maszyny. Podstawowym problemem była długość klucza i sposób jego generowania. W teorii, aby szyfrogram pozostawał bezpieczny, klucz używany do szyfrowania powinien mieć długość równą długości szyfrowanej wiadomości. Dodatkowo, powinien być całkowicie losowy. Jeśli te warunki zostałyby spełnione, żaden kryptolog nie mógłby ustalić, jaki tekst jawny zaszyfrowano, czy jakiego klucza użyto. Dlaczego? Na to pytanie odpowie matematyka:

Załóżmy, że klucz generujemy, rzucając zwykłą monetą. Jeśli wyrzucimy orła, na danym miejscu w kluczu będzie znajdowała się jedynka. W przeciwnym wypadku będzie to zero. Rzucamy pierwszy raz. Jakie jest prawdopodobieństwo „odgadnięcia wyniku”?

Szansa na zgadnięcie pierwszego bitu klucza jest stosunkowo duża – jeden do dwóch. Ale co będzie, jeśli dołożymy kolejny rzut? Jaka jest szansa, że zgadniemy dwa bity klucza?

W tym momencie, kiedy ciąg znaków używany do szyfrowania ma dwa bity, mamy jedynie 25% szans na to, że odgadniemy cały klucz.
Standardowa wiadomość może mieć około 50 bitów. Jak będzie wtedy wyglądała sytuacja?

Można powiedzieć, szyfr idealny. Ale powstaje pewien problem – jak wygenerować w pełni losowy ciąg znaków? Inżynierzy C. Lorenz AG znaleźli rozwiązanie tego problemu.

Tunny

Enigma była oznaczona przez angielskich kryptologów kryptonimem ULTRA. W przypadku maszyny Lorenza Anglicy byli nieco bardziej nowatorscy i użyli nazwy Tunny („tuńczyk”). Tunny, jak już wcześniej powiedzieliśmy, używał pewnej modyfikacji algorytmu Vernama. Zobaczmy, jak niemieccy inżynierowie zdołali rozwiązać kilka kluczowych problemów, o których wcześniej wspominaliśmy.

Podstawową trudnością, którą napotkano była odpowiedź na pytanie: W jaki sposób mechaniczna maszyna może wygenerować całkowicie losowy ciąg znaków?. Znaleziono bardzo proste rozwiązanie tego problemu. Podobnie jak Enigma, maszyna Lorenza używała zestawu wirników. W porównaniu do Enigmy, maszyna Lorenza posiadała ponad 4 razy więcej rotorów. Tunny operował na ówcześnie nowatorskiej, a obecnie szeroko wykorzystywanej logice Boole’a. Z tego powodu niemiecki wynalazek używał tylko dwóch liczb: 0 i 1. Wirniki Enigmy posiadały 26 pozycji, które odpowiadały kolejnym literom alfabetu. Rotory Lorenza miały różną ilość pozycji – od 23 do 61. Każdy rotor posiadał odpowiednie „piny” w miejscach, które stykały się z obwodem. Operator mógł je wciskać lub wyciągać, dzięki czemu jeszcze bardziej utrudniał złamanie algorytmu. Kiedy pin jest podniesiony, wirnik w danej pozycji generuje logiczną jedynkę. W przeciwnym wypadku kreowane jest logiczne zero.

Przeanalizujmy teraz zasadę działania tego urządzenia. Wbrew pozorom, jest ona nawet prostsza od tego, co widzieliśmy w Enigmie.

Maszyna Lorenza, posiadała 12 wirników. Abyśmy zrozumieli sam proces szyfrowania musimy dowiedzieć się, jak obracane były poszczególne rotory. Właśnie w tym miejscu pomiędzy Enigmą a tym urządzeniem istniała zasadnicza różnica.

Pierwsze 5 wirników oznaczono symbolem w (psi). Te rotory obracały się zawsze – za każdym razem, kiedy nacisnęliśmy jakiś klawisz na klawiaturze. Podobnie działał pierwszy z dwóch wirników µ. Ciekawszym działaniem charakteryzował się drugi z rotorów µ, a siódmy z kolei. Zmieniał on swoją pozycję o jeden tylko w wypadku, kiedy na pierwszym wirniku µ w chwili naciśnięcia znaku na klawiaturze znajdowała się logiczna jedynka. Z kolei ostatnie pięć wirników obracało się tylko wtedy, kiedy na drugim z wirników µ znajdowała logiczna jedynka w chwili naciśnięcia klawisza.

Dwa wirniki µ były remedium na problem generatora liczb losowych. Właśnie w taki sposób niemieccy kryptografowie rozwiązali bolączkę która nękała projekty Vernama. Rotory µ zapewniały „teoretycznie” całkowicie losowe obracanie ostatnich pięciu rotorów.

Wirniki w i x były wykorzystywane do tworzenia klucza. W tym celu używano logicznej operacji XOR. Wartości bitowe z rotorów w „xor’owano” z wartościami wirników x. Przeanalizujmy prosty przykład. Załóżmy, że stan wirników przed naciśnięciem jakiegokolwiek klawisza był następujący:

Ustalmy, jaką postać przyjmie ciąg znaków, kluczem zwany, którego użyjemy do zaszyfrowania wiadomości.

Wyliczyliśmy klucz. W tym momencie możemy zaszyfrować nr wciśniętego klawisza. Przyjmijmy, że nacisnęliśmy klawisz G, który ma kod binarny 01011. Jak zaszyfrować to, co wpisaliśmy? Ponownie wykonujemy operację XOR, tym razem między kluczem a numerem naciśniętego klawisza.

Otrzymany ciąg: 11101 odpowiadać będzie innej literze, np.: Q.
Taka sama operacja jest wykonywana dla każdej litery. Proces odszyfrowania jest identyczny z procesem szyfrowania. Zresztą, sam możesz to sprawdzić na powyższym przykładzie. Operacja XOR szyfrogramu z kluczem da numer klawisza, który został wciśnięty.

Procedury szyfrowania

Każdy szyfr, jeśli będzie nieumiejętnie stosowany, zostanie bez problemu pokonany. Tak samo było w przypadku maszyny Lorenza. Przez cały okres wojny powstało zaledwie około dwustu egzemplarzy maszyny Lorenza w dwóch wersjach – SZ40 i SZ42. Konflikt przetrwało jedynie 4 sztuki. Jeśli chodzi o samą zasadę działania, różniły się one w dość niewielkim stopniu. SZ40 był używany głównie wtedy, gdy istniało przewodowe połączenie między nadawcą i odbiorcą wiadomości. Takie działanie maszyny stwarzało kilka problemów. Niemiecka taktyka operacyjna – Blitzkrieg i szybka zmiana linii frontu często uniemożliwiała wykorzystanie istniejącej infrastruktury do komunikacji. Dodatkowo, na obszarach takich jak Rosja czy północna Afryka, kabli telekomunikacyjnych praktycznie nie było. Wobec tego szybko wprowadzono ulepszoną wersję maszyny Lorenza, która pozwalała komunikować się bezprzewodowo. Nazwano ją SZ42. Wersja ta zawierała lepszy nadajnik i odbiornik, który bezproblemowo radził sobie z zakłóceniami.

Podstawowa zasada bezpieczeństwa była następująca – część szyfrująca, kiedy nie jest używana, powinna być zawsze odłączona od dalekopisu. Operacja ta była dosyć prosta i wymagała wykonania jedynie kilku czynności i trochę czasu.

Przed rozpoczęciem transmisji maszyna powinna być odpowiednio ustawiona. Procedury były tutaj o wiele bardziej rygorystyczne niż w przypadku Enigmy.

Największy wpływ na mechanizm szyfrowania miały ustawienia wirników. Jak już wspomnieliśmy, na ich brzegu były specjalne „piny” które zmieniały sposób działania wirnika. Wyróżniane były dwa rodzaje kluczy – tzw. Grundschlüssel – czyli klucz podstawowy, oraz Walzenschlüssel – klucz wirników. Klucz podstawowy to ustawienie „pinów” na wirnikach 1-5 i 8-12. Operacja ta była wykonywana raz na miesiąc. Natomiast klucz wirników dotyczył rotorów, które zapewniały „losowość” obrotu – 6 i 7. Był zmieniany codziennie. W późniejszym okresie wojny drastycznie zwiększono częstotliwość zmian klucza podstawowego.

W przypadku jakiegokolwiek zagrożenia ze strony wroga, które mogłoby skutkować przejęciem urządzenia, należało jak najszybciej wymontować i zabrać ze sobą/zniszczyć mechanizm szyfrujący. Nie była to skomplikowana operacja. Wystarczyło odkręcić kilka śrubek, zdjąć przednią pokrywę. W tym momencie można było wyjąć mechanizm szyfrujący, który składał się między innymi z wirników.

Zobaczmy teraz, jaka była procedura nadawania.
Zakładamy, że wirniki obydwu maszyn zostały ustawione w ten sam sposób wg dwóch wymienionych wyżej rodzajów kluczy. Nadawca wybierał teraz klucz wiadomości. Klucz wiadomości, podobnie jak w Enigmie, definiował startową pozycję wirników. Zapisany był za pomocą sześciu sekcji - po dwie litery w każdej. Instrukcja dawała wskazówki – klucz nie powinien być przewidywalny, nie może wiązać się z operatorem maszyny oraz nie powinien składać się z ciągu takich samych znaków. do przekształcania klucza na postać cyfrową służyła specjalna tabela. Tekst ten był nadawany jawnie. Odbiorca odczytywał klucz. Za pomocą odpowiedniej tabeli przekształcał go na numery wirników i ustawiał swoją maszynę. Następnie informował nadawcę za pomocą odpowiedniego sygnału, że wszystko przebiegło pomyślnie i można rozpocząć nadawanie.

Klęska tuńczyka

Obydwa urządzenia – zarówno Enigma jak i maszyna Lorenza miały ogromny wpływ na przebieg działań wojennych. Kwatera Główna mogła bardzo łatwo wysłać rozkazy do poszczególnych armii bez obawy o to, że ich treść przejmie przeciwnik. Enigma pozwalała na bezpieczną komunikację i synchronizację działań poszczególnych oddziałów na szczeblu taktycznym. To był właściwie gotowy przepis na sukces. Co więc poszło nie tak? Można powiedzieć, że do zwycięstwa aliantów w drugiej wojnie światowej niezwykle przyczyniło się kilku Polaków, studentów Uniwersytetu Poznańskiego. Można powiedzieć że to właśnie oni odmienili losy drugiej wojny światowej, gdyż dali aliantom wgląd w najtajniejsze informacje III Rzeszy. Ale o tym wszystkim dowiemy się w następnym odcinku.

Ciekawe linki

Cryptocellar.org - znajdują się tutaj ciekawe, oryginalne dokumenty dot. maszyny Lorenza SZ40/42, a także kilku innych urządzeń niemieckiej myśli technicznej

Symulator maszyny Lorenza SZ40 - pozwala zaobserwować zasadę działania tego wynalazku. 

hobby inne

Komentarze