Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz  

Prezentowane materiały są przeznaczone dla uczniów szkół ponadgimnazjalnych.
Autor artykułu: prof. Tony Sale
Tłumaczenie: mgr Jerzy Wałaszek

©2024 mgr Jerzy Wałaszek
I LO w Tarnowie

https://upload.wikimedia.org/wikipedia/commons/thumb/3/37/Enigma-logo.svg/1200px-Enigma-logo.svg.png

Komputery Colossus

Maszynowe łamanie szyfrów

SPIS TREŚCI
Podrozdziały

Nadeszła era maszynowego łamania kodu Fisha

obrazek
Max Newman

Teraz pojawił się na scenie matematyk Max Newman. Sądził on, iż jest możliwe zautomatyzowanie niektórych fragmentów procesu znajdowania ustawień użytych do każdej wiadomości. Zwrócił się zatem do TRE (Telecommunications Research Establishment - Przedsiębiorstwo Badań Telekomunikacyjnych) w Malvern w celu zaprojektowania maszyny elektronicznej, która realizowałaby wynalezioną przez Billa Tutte'a metodę podwójnej delty używanej do wyszukiwania ustawień początkowych bębnów szyfrujących. Maszynę zbudowano w Dollis Hill i nadano jej nazwę Heath Robinson po znanym rysowniku fantastycznych maszyn.

W maszynie Heath Robinson pojawiły się problemy z synchronicznym przesuwem dwóch taśm papierowych biegnących z prędkością tysiąca znaków na sekundę. Na jednej z taśm zostały wydziurkowane wzory bębnów maszyny Lorenz, które ręczni łamacze szyfrów pracowicie rozpracowali. Na drugiej taśmie znajdowała się zaszyfrowana wiadomość. Pomiar krzyżowych korelacji typu podwójnej delty był następnie wykonywany na całej długości taśmy z wiadomością. Wtedy względna pozycja taśm ulegała przesunięciu o jeden znak i pomiar korelacji powtarzał się. Łamacz szyfrów patrzył na względną pozycję, która dawała najwyższy wynik krzyżowej korelacji - a ta, jak dobrze poszło, odpowiadała poprawnej pozycji startowej bębnów szyfrujących maszyny Lorenz.

obrazek
Tommy Flowers

Heath Robinson działał wystarczająco dobrze, aby udowodnić poprawność koncepcji Maxa Newmana. Wtedy Newman wyjechał do Dollis Hill, gdzie skontaktowano go z Tommy'm Flowersem, błyskotliwym elektronikiem-inżynierem, pracującym dla Urzędu Pocztowego. Flowers zabrał się za projekt i budowę Colossusa, który miał spełniać wymagania Maxa Newmana dla maszyny przyspieszającej łamanie szyfru Lorenz. Wkładem Tommy'ego Flowersa była propozycja generowania znaków zasłaniających w sposób elektroniczny w obwodach pierścieniowych, co usunęłoby jedną z taśm i w efekcie problem synchronizacji przestałby istnieć.
 

obrazek

Projekt wymagał dużej liczby lamp elektronowych, lecz Tommy Flowers był pewien, że będzie on działał. Przed wojną zaprojektował ona dla Urzędu Pocztowego regeneratory sygnałów na lampach elektronowych. Wiedział, że na lampach można polegać pod warunkiem, że się ich nie włącza i wyłącza. Nikt inny mu nie wierzył!

Projekt Colossus wystartował w marcu 1943. Do grudnia 1943 wszystkie różnorodne obwody pracowały i zbudowany z 1500 lamp elektronowych Colossus Mark 1 został rozmontowany, przeniesiony do Bletchley Park, zmontowany w bloku F na Gwiazdkę 1943. Mark 1 rozpoczął działanie w styczniu 1944 i odniósł sukces na swoim pierwszym teście zawierającym rzeczywistą taśmę z szyfrem.

obrazek obrazek obrazek

Na początek:  podrozdziału   strony 

Wkład przy Inwazji

Colossus zredukował czas łamania wiadomości zaszyfrowanych maszyną Lorenz z tygodni do godzin. Pojawił się dokładnie na czas przy rozszyfrowywaniu wiadomości, co dostarczyło kluczowych informacji Eisenhowerowi i Montgomeryemu przed dniem Inwazji. Te rozszyfrowane wiadomości pokazały, że Hitler połknął haczyk przy kampaniach dezinformujących - armii duchów w Południowej Anglii, pozorowanym konwojom idącym na wschód wzdłuż kanału; że Hitler był przekonany o nadchodzącym ataku z Pas de Calais i trzymał w odwodzie dywizje czołgów w Belgii. Po Inwazji francuski ruch oporu wraz z brytyjskimi i amerykańskimi siłami powietrznymi dokonali bombardowań i uszkodzeń wszystkich lądowych linii telefonicznych oraz telegraficznych w Północnej Francji, zmuszając Niemców do porozumiewania się przy pomocy radia i nagle ilość przechwytywanych wiadomości wzrosła niesamowicie.

Do Mark 1 doszedł szybko Colossus Mark 2 w czerwcu 1944 i następne osiem maszyn zostało błyskawicznie zbudowanych w celu obsługi tego przyrostu niemieckich depesz szyfrowanych. Mark 1 został unowocześniony do modelu Mark 2 i w ten sposób w Bletchley Park pracowało do końca wojny w sumie 10 Kolosów. Do zakończenia działań wojennych rozszyfrowano 63 miliony znaków z niemieckich depesz na najwyższym szczeblu - całkowicie zbijający z nóg wynik pracy 550 ludzi w Bletchley Park, plus oczywiście znacząca liczba przechwyconych i rozszyfrowanych depesz w Knockholt ze wspomaganiem w Shaftesbury i Cupar w Szkocji.


Na początek:  podrozdziału   strony 

Komputer Colossus

obrazek
Replika komputera Colossus

Każdy z Kolosów zajmował duże pomieszczenie w Bloku F lub H w Bletchley Park. Stelaże miały wysokość 90 cali (2,3 m) i różną szerokość. Było osiem stelaży ułożonych w dwa rzędy o szerokości około 16 stóp (5,5 m) plus czytnik taśmy papierowej i podajnik taśmy (nazywany ramą łóżkową - bedstead). Przedni rząd stelaży odsunięty o 5 stóp (1,6 m) od tylnego rzędu składał się idąc z lewa na prawo ze stelaża J, zawierającego główny panel sterujący, tablicy z wtyczkami oraz bramek AND. Następnie był stelaż K, który zawierał bardzo duży panel głównych przełączników wraz z bardzo wyróżniającym z przodu się skośnym panelem, który był zdublowanym panelem sterowania pierścieniami tyratronowymi. Dalej przychodził stelaż S, który zawierał przekaźniki używane do buforowania wyjścia z liczników i zawierający obwody logiczne do sterowania drukarką. Stelaż po lewej stronie z przodu był stelażem C, który zawierał obwody logiczne sterujące licznikami z przodu oraz licznikami dziesiętnymi z tyłu.

Tylni rząd Kolosa składał się z czterech stelaży: ze stelaża R zawierającego moduł statystyki oraz panele delta do wyjścia z czytnika taśmy papierowej oraz wyjścia z pierścieni tyratronowych dla bębnów K i S, ze stelaża M zawierającego układ statystyki bębna M oraz logiki ruchu bębna S, z bardzo dużego stelaża W, który z jednej strony zawierał wszystkie tyratrony tworzące pierścienie bębnów, w sumie było ich 501, a z drugiej strony 12 paneli sterujących pierścieniami tyratronowymi. Również na regale W znajdowały się płyty połączeń bębnów oraz wybieraki pozycji startowych bębnów. Ostatni stelaż w rzędzie zawierał pakiety zasilania. Stosowane były jednostki Westat o napięciu 50V zebrane w grupach dających od +200 V do -150V. Całkowity pobór mocy był na poziomie 6 KW, z czego większość szła na żarzenie lamp elektronowych.
Obwody rozmieszczone były na metalowych płytach przymocowanych nitami do stelaży. Gniazdka lamp zamontowane były do nich powierzchniowo w równych odstępach. Taka konstrukcja była godna pochwały, ponieważ po pierwsze obie strony stelaża mogły być wykorzystywane, a po drugie łączenie kablami i naprawy były łatwe, a na koniec chłodzenie lamp było przyspieszone, ponieważ znajdowały się one w położeniu poziomym ze swobodnym opływem powietrza.


Na początek:  podrozdziału   strony 

Jak działał Colossus

obrazek
Taśma dziurkowana

Colossus czytał z taśmy papierowej znaki dalekopisowe w międzynarodowym kodzie Baudota z szybkością 5.000 znaków na sekundę. Znaki te pochodziły zwykle z przechwyconego tekstu szyfru, który był transmitowany przez radio. Taśma papierowa była sklejana w pętlę ze specjalnie wybitymi dziurkami na początki i na końcu tekstu. Najszerzej pojęta zasada pracy komputera Colossus była oparta na zliczaniu wzdłuż długości tekstu ile razy pewna skomplikowana funkcja logiczna pomiędzy tekstem a generowanym wzorem bitowym bębnów szyfrujących dawała wynik prawdy lub fałszu. Na końcu tekstu liczba ta z obwodów zliczających była zrzucana na przekaźniki przed wydrukowaniem na maszynie do pisania podczas następnego odczytu tekstu - to taka wczesna forma podwójnego buforowania.

Colossus posiadał dwa cykle działania. Pierwszy sterowany był przez optyczny odczyt perforacji wydziurkowanej pomiędzy ścieżkami 2 i 3 na taśmie papierowej. Sygnał perforacji był standaryzowany do szerokości 40 µs. Dane optyczne z taśmy papierowej były próbkowane na tylnim zboczu standardowego impulsu perforacji, co również tyczyło się wyjść z pierścieni tyratronów, które reprezentowały wzór bębnów szyfrujących maszyny Lorenz. Wynik logicznych obliczeń był próbkowany na przednim zboczu w celu umieszczenia go w obwodach zliczających.

Drugi cykl operacji występował na początku i na końcu tekstu wydziurkowanego w taśmie papierowej. Taśma była łączona w pętlę, a specjalne dziurki wybijano tuż przed początkiem tekstu pomiędzy kanałami trzy i cztery (zwaną startem) oraz zaraz za końcem tekstu pomiędzy kanałami cztery i pięć (zwaną stopem). Ten długi cykl operacji rozpoczynał się elektrycznym sygnałem z fotokomórki czytającej dziurkę stopu na taśmie. Impuls stopu przestawiał stan w pewnym dwustanowym obwodzie, który pozostawał niezmienny aż do pojawienia się sygnału optycznego z odczytu dziurki startu. Ustawienie tego dwustanowego obwodu trwało w ten sposób przez okres trwania pustego miejsca na taśmie, które służyło do sklejenia końców taśmy w pętlę, typowo 100 ms. Pierwszą operacją po impulsie stopu było zwolnienie wszystkich ustawień na przekaźnikach z poprzedniego cyklu zliczania. Następnie do przekaźników był wpisywany nowy wynik zliczania. Wtedy liczniki oraz pierścienie tyratronowe były czyszczone i ustawiane na następny punkt startowy do wypróbowania. Gdy dwustanowy obwód został wyzerowany przez impuls startowy, impulsy perforacji były zwalniane do obracania pierścieni tyratronowych, próbkowania danych odczytywanych z taśmy papierowej oraz przesyłania wyników z logicznych układów liczących do liczników.

Colossus złożony był z różnych elementów składowych: optycznego systemu czytnika taśmy perforowanej, głównego panelu sterującego, pierścieni tyratronowych wraz z ich obwodami sterującymi, układów dokonujących statystyki danych optycznych z taśmy oraz kalkulatorów delta, rejestrów przesuwnych, bramek logicznych i ich obwodów sterujących, bufora przekaźnikowego oraz logiki sterowania drukarką.

System czytnika optycznego

W celu złamania kodów maszyny Lorenz w rozsądnym czasie tekst szyfru musiał być wielokrotnie skanowany z bardzo dużą prędkością. Oznaczało to co najmniej 5.000 znaków na sekundę i w roku 1942 wymagało to zastosowania wysokopróżniowych fotokomórek do optycznego odczytu dziurek na taśmie papierowej. Najmniejsze z dostępnych fotokomórek opracowano dla zapalników zbliżeniowych w pociskach przeciwlotniczych. Sześć z nich w rzędzie oznaczało konieczność użycia systemu projekcyjnego, który powiększał obraz taśmy papierowej około 10 razy. Dr Arnold Lynch zaprojektował czytnik taśmy papierowej i użył szparek wyciętych w czarnym kartonie do utworzenia maski umieszczonej przed tymi fotokomórkami. Wyjście z kanałów danych szło do układów statystycznych oraz do obwodów delta.

Główny panel sterujący

Tutaj impulsy startu i stopu z czytnika optycznego ustawiały lub resetowały obwód bistabilny. Monostabilne układy opóźniające generowały impulsy napięciowe do zwalniania przekaźników, do wyznaczania statystyki liczników, do zerowania liczników oraz pierścieni tyratronowych oraz do obracania tych pierścieni. Obwody bramkowe sterowały przepływem impulsów perforacyjnych.

Pierścienie tyratronowe i ich obwody sterujące

obrazek

Te obwody były najbardziej skomplikowane w komputerze Colossus. Tyratrony są wypełnionymi gazem triodami, w których dochodzi do łuku wyładowania pomiędzy anodą i katodą, gdy napięcie siatki wzrasta do poziomu zezwalającego na przepływ elektronów. To wyładowanie, gdy do niego dojdzie, staje się zupełnie niezależne od napięcia siatki. W ten sposób tyratron zachowuje się jak jednobitowa komórka pamięciowa. Może być wyłączony przez wysterowanie anody i siatki napięciem ujemnym w stosunku do katody. Budowa rejestru przesuwnego z tyratronów wymaga, aby włączenie kolejnego tyratronu w pierścieniu również tłumiło poprzedni tyratron. Prowadzi to do dwufazowego obwodu z anodami naprzemiennych tyratronów połączonymi razem i napięciem siatki częściowo odchylonym przez napięcie katody poprzedniego tyratronu.

Komplikacja wzrasta, gdy bęben maszyny Lorenc zawiera nieparzystą liczbę końcówek sterujących. Sterownik pierścienia tyratronowego dla tej opcji wymaga kompletnego zbioru obwodów do obsługi tylko nieparzystego tyratronu, aby wrócić do dwufazowych obwodów w reszcie tego pierścienia. Tyratrony w pierścieniu przewodzą szeregowo w krokach synchronizowanych przez impulsy perforacyjne. Wszystkie katody tyratronów są wyprowadzone do panelu łączników, który pozwala impulsom katodowym przejść do wspólnej linii wyjściowej, gdy zostanie z nią utworzone połączenie na tym panelu. W ten sposób wraz z obrotami pierścienia na wspólnej linii wyjściowej pojawia się ciąg impulsów. Przez wybór pozycji połączeń ciąg ten może odtwarzać mechaniczne karby na bębnie szyfrującym w maszynie Lorenz. Wzdłuż panelu łączników jest przełącznik krokowy, który wybiera katodę tyratronu, do której przejdzie impuls włączający pierścień. Jest to pozycja startowa pierścienia, gdy impulsy perforacyjne nadchodzą na początku tekstu.

Wspólna linia wyjściowa biegła do układu statystycznego i do obwodów delta.

Układy statystyczne oraz obwody delta

Obwody te pobierały surowe sygnały z czytnika taśmy papierowej oraz pierścieni tyratronowych, próbkowały je na tylnim zboczu impulsu zegarowego (pochodzącego z dziurek perforacji na środku taśmy papierowej) i ustawiały je na standardowe napięcie ± 80V. Również na tych płytach znajdowały się obwody opóźniające o jeden impuls zegarowy. Osiągano to za pomocą całkujących kondensatorów, które "przechowywały" poprzedni sygnał danych wystarczająco długo, aby mógł zostać spróbkowany przy następnym impulsie perforacji. Ten opóźniony sygnał jest dostępny na wyjściu, lecz również na tej płycie znajdował się obwód sumatora, który tworzył sygnał delta, tj. "jeden", jeśli bieżące dane różniły się od poprzednich i "zero", jeśli bieżące dane były identyczne z poprzednimi.

Rejestry przesuwne

obrazek

Były to takie same obwody jak te, których używano na płytach delta, po prostu integratory próbkowane przy następnym impulsie perforacyjnym. Do 5 elementów przesuwających mogło być połączonych w kaskadę, dając w wyniku 5-cio bitowy rejestr przesuwający. Sądzi się, że jest to pierwsze zanotowane zastosowanie rejestru przesuwnego w historii. Niektóre z algorytmów obliczeniowych wykorzystywało ten wgląd w poprzednie dane w celu poprawienia pomiarów korelacji krzyżowych.

Bramki logiczne

Colossus otrzymał bramki AND i OR, które można było ze sobą łączyć w dowolnych kombinacjach.

Liczniki i obwody sterujące liczników

Obwody dekadowych liczników oparte zostały na przedwojennym projekcie Wynna Williamsa. Używały one obwodu dzielącego przez dwa, za którym następował pierścień pięciu pentod. Dla każdego z pięciu liczników potrzebne były cztery dekady, a każdy obwód sterujący pokrywał cztery dekady liczników. Sygnałami wejściowymi do obwodów sterujących były sygnały wyjściowe z bramek logicznych, impulsy perforacyjne do strobowania oraz impuls zerujący z głównego panelu sterującego. Również na panelach sterujących znajdowały się obwody komparatorów pomiędzy wyjściami z liczników dekadowych a przełącznikami na innym panelu. Przełączniki te można było ustawić na dowolną liczbę z zakresu od 0 do 9999. Sygnał wyjściowy z komparatora mógł być uwzględniany w obliczeniach logicznych, a w ten sposób przykładowo blokować wydruki wyników będących poniżej ustawionej wartości.

Liczniki zasięgu

Były to tego samego typu liczniki oraz obwody sterujące liczników z przełącznikami na innym panelu, które mogły być ustawiane w zakresie od 0 do 9999. Celem liczników zasięgu było udostępnienie możliwości ignorowania fragmentów tekstu szyfru, które były uszkodzone, prawdopodobnie z powodu zaniku sygnałów radiowych. Wyjście komparatora wykorzystywano do bramkowania impulsów perforacyjnych, które szły do sterowników głównych liczników, odcięcie tych impulsów zatrzymywało próbkowanie wyników obliczeń logicznych i w efekcie ignorowanie fragmentu tekstu pokrytego przez liczniki zasięgu.

Pamięć bufora przekaźnikowego i logika drukarki.

Przekaźniki zatrzaskowe przechowywały końcowy stan liczników dekadowych. Pozycje startowe pierścieni tyratronowych oraz wyniki obliczeń dla poprzedniego przebiegu przez tekst były wysyłane sekwencyjnie do drukarki przez układ sterowania logiką druku.


Na początek:  podrozdziału   strony 

Programowanie komputera Colossus

Programowanie algorytmu krzyżowych korelacji osiągano przy pomocy połączeń przewodami z wtyczkami telefonicznymi, kabli oraz przełączników. Główny panel wtykowy znajdował się na regale obok czytnika taśmy papierowej. Na panelu tym znajdowały się sygnały bezpośredni i delta z czytnika taśmy oraz z pierścieni tyratronowych. Zmiana z sygnału głównego na delta również mogła być osiągana poprzez przełączniki. Także znajdowały się tam gniazda wejściowe i wyjściowe bramek AND oraz tzw. gniazda "Q", które przenosiły wyjście obliczeń na główny panel przełącznikowy umieszczony na sąsiednim stelażu po stronie lewej.  Ten bardzo duży panel przełączników pozwalał kombinować sygnały z kolejnymi bramkami logicznymi, a wynik przełączać na dowolny z pięciu liczników końcowych.

Jako przykład weźmy prosty algorytm podwójnej delty, opracowany przez Billa Tutte'a. Wymaga on dwóch bębnów obracanych synchronicznie, więc weźmy K4 i K5. Najpierw wyjście delta z kanału 5 czytnika taśmy papierowej było łączone w bramce AND z wyjściem delta z pierścienia tyratronowego K5. Następnie wynik był znów łączony za pomocą AND z połączonym bramką AND wyjściem z kanału delta 4 oraz wyjścia delta z pierścienia tyratronowego K4. Ten wynik był podłączany do Q1 i na panelu przełączników Q1 było przełączane do licznika 1. Wyjście mogło być negowane przed zliczaniem, aby wynik mógł reprezentować albo liczbę razy, gdy rachunek podwójnego delta wynosił jeden, albo zero.


Na początek:  podrozdziału   strony 

Koniec komputera Colossus

Po zwycięstwie nagle wszystko się skończyło. Osiem z dziesięciu komputerów Colossus zostało zdemontowanych w Bletchley Park. Dwa przekazano do Eastcote w Północnym Londynie, a następnie do GCHQ (ang. Government Communications Headquarters - Kwatera Główna Rządowego Centrum Komunikacyjnego) w Cheltenham. Te dwa zostały rozmontowane około roku 1960 i również w tym roku spalono wszystkie schematy komputerów Colossus. Oczywiście sam fakt ich istnienia utrzymywany był w głębokiej tajemnicy.

W roku 1996, po wielu latach poszukiwań i zbierania fragmentów informacji, grupa naukowców angielskich wraz z prof. Tonym Salem  zdołała odbudować komputer Colossus, który obecnie jest główną atrakcją dla odwiedzających muzeum łamania szyfrów w Bletchley Park.


Na początek:  podrozdziału   strony 

Wszystkie zamieszczone w tym opracowaniu materiały zostały umieszczone na serwerze edukacyjnym I LO w Tarnowie za zgodą profesora Tony'ego Sale'a, kustosza muzeum w Bletchley Park.

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2024 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.