Colossus - Pierwszy brytyjski komputer

Autor: BitBlog.pl

W poprzednim artykule została opisana historia złamania szyfru Enigmy przez Mariana Rejewskiego. Przyczyniło się to do dalszych prac nad stworzeniem pierwszego komputera kryptologicznego na świecie o nazwie Colossus. Wpłynęło to również na późniejszy rozwój informatyki, także w Polsce. Była ona zgodna z abstrakcyjnym modelem maszyny Turinga.

Bomba kryptologiczna Turinga

Alan Turing po otrzymaniu od polaków dokumentacji i szczegółów działania cyklometru, bomby kryptologicznej, płacht Zygalskiego oraz kopii enigmy, rozpoczął pracę nad własnym urządzeniem do łamania szyfrów.

W 1939 roku niedługo po napaści Niemiec na Polskę, brytyjscy kryptolodzy z Bletchley Park posiadali już wystarczająca ilość bomb wg. projektu Rejewskiego. Alan Turing w miedzy czasie pracował nad zupełnie nową koncepcją, wykluczającą znaczną ilość kombinacji bębnów Enigmy wraz z ich pozycjami startowymi. Analiza niemieckich depesz w ruchu radiowym umożliwiła przewidywanie w ich partiach pewnych określonych tekstów dotyczących np. warunków pogodowych czy często umieszczanych tam zwrotów jak "Heil Hitler".

Turing doszedł do wniosku, że dzięki szybkiej maszynie sprawdzającej taką konfiguracje bębnów, które w wyniku mogły dawać przekształcenie zaszyfrowanych znaków w znaki przewidziane, można złamać szyfr. Wraz z głównym inżynierem brytyjskiej firmy BTM (ang. British Tabulating Machine Company) Haroldem Keen'em opracował nową bombę kryptologiczną. Kodową nazwą projektu był CANTAB. Firma BTM była mocno powiązana z jej amerykańskim odpowiednikiem, który później przekształcił się w IBM.

Podobnie jak w przypadku bomby kryptologicznej wg. projektu Mariana Rejewskiego, urządzenie zbudowane było na bazie szeregu połączonych ze sobą Enigm lecz w rezultacie była to bardziej zaawansowana i skomplikowana konstrukcja. Składała się z wielu obrotowych bębnów na tablicy testowej, wyposażonej w styki oraz szybkie przekaźniki w formie gazowych tyratronów.

Bomba Turinga działała jako symulator wielu Enigm w czasie rzeczywistym i posiadała inną charakterystykę analityczną. Pierwszy prototyp maszyny dotarł do Bletchley Park w marcu 1940 roku lecz okazał się zbyt wolny. Jego poprawiona i ulepszona wersja o nazwie Agnus Dei została przywieziona w sierpniu. Do końca wojny zbudowano i zainstalowano ponad 200 bomb.

bomba

Rys. 1 - Bomba kryptologiczna Turinga (panel frontowy)

bomba

Rys. 2 - Bomba kryptologiczna Turinga (wnętrze)

ENIGMA Kriegsmarine

Początkowo maszyna szyfrująca niemieckiej marynarki wojennej nie różniła się od maszyn dla wojsk lądowych i lotniczych, lecz zbiegiem czasu jej system kodowania uległ zmianie i wyposażono ją w większy zestaw wirników. ENIGMA M4 posiadała nawet czwarty wirnik. Spowodowało to trudności w jej dekryptażu i właściwie od roku 1937 kiedy pracowali nad nią jeszcze polscy kryptolodzy, Brytyjczycy nie zrobili żadnego postępu. Pomimo iż Alan Turing rozpracował znaczącą część jej sposobu kodowania i opracował metodę Banburismus w grudniu 1939 roku, przełom nastąpił dopiero po przechwyceniu niemieckich okrętów, Polares w 1940 r. oraz U-110 w maju 1941 r. Anglicy znaleźli tam tajną dokumentację, która umożliwiła im systematyczne łamanie szyfru. Metoda Banburismus pozwalała wykluczyć ustawienia wirników enigmy tym samym skracając czas pracy bomby kryptologicznej, została także wykorzystana w kryptoanalizie maszyny Lorenz'a.

Maszyna Lorenza (Lorenz SZ 40 i SZ 42)

Enigma była urządzeniem przenośnym używanym przez większość jednostek polowych w armii. Z czasem pojawiło się zapotrzebowanie na bezpieczne szyfrowanie korespondencji na wysokim szczeblu decyzyjnym, gdzie wykorzystywano dalekopisy i oddzielne łącza. W tym celu niemieckie dowództwo złożyło zamówienie na maszynę szyfrującą w firmie Lorenz, która miała być przystawką dla produkowanych przez nią dalekopisów. Celem priorytetowym było zapewnienie całkowitego bezpieczeństwa przesyłanych wiadomości.

Przedsiębiorstwo Lorenz zbudowało maszynę przypominającą Enigmę, ponieważ korzystała ona także z wirników ale zasada jej działania była inna. Wykorzystywała ona addytywną metodę szyfrowania tekstu dalekopisowego wynalezionego w 1918 roku przez Gilberta Vernama w Ameryce. Dalekopisy wówczas kodowały każdą nadawaną literę kodem Baudot'a, w formie pięciu bitów na 5-ciu kanałach (transmisja równoległa). Funkcją maszyny Lorenz'a było generowanie pięciu pseudolosowych bitów (tzw. znaków zasłaniających) i kombinacja ich z bitami tekstu jawnego przy użyciu logicznego operatora XOR.

Na początku 1942 roku Brytyjczycy po raz pierwszy przechwycili niemieckie wiadomości dalekopisowe, które były zaszyfrowane maszyną Lorenz. Angielskie stacje nasłuchowe badały wówczas różne sygnały (m.in telegraf bezprzewodowy), wysyłane z terenu Anglii przez potencjalnych szpiegów niemieckich. Zaciekawiło to w sposób szczególny Johna Tiltmana jednego z głównych kryptologów w Bletchley Park. Początkowo analitycy nie zdawali sobie sprawy, że wiadomości szyfruje maszyna Lorenza i nadano im nazwę kodową Fish. Następnie Tiltman odkrył, że wiadomości są kodowane metodą Vernama. Domyślał się, że ta metoda posiada pewną słabość polegającą na tym, że jeżeli otrzyma się dwa różne teksty zaszyfrowane z identycznymi ustawieniami początkowymi maszyny, to sumując ze sobą kolejno każdy zaszyfrowany znak z obu wiadomości, ciąg znaków zasłaniających zniknie.

Taka okazja nadarzyła się 30 sierpnia 1941 roku, kiedy niemiecki szyfrant w wyniku problemów technicznych popełnił krytyczny błąd. Wysłał po raz drugi tą samą wiadomość z identycznymi ustawieniami początkowymi maszyny a ponieważ była to wiadomość składająca się prawie z 4000 znaków w drugiej wiadomości użył pewnych skrótów, tym samym całkowicie zmieniając kolejność ciągu bitów. Kiedy przesłano Tiltmanowi pocztą ekspresową obie wiadomości zorientował się z czym ma do czynienia. Posługując się stosowaną do tej pory techniką addytywną dokonał znaczącego postępu i udało mu się zdeszyfrować oba teksty. Drugi tekst okazał się krótszy o około 500 znaków. Ponadto na podstawie tych wiadomości wygenerował cały ciąg znaków zasłaniających, nigdy nie widząc na własne oczy maszyny Lorenz'a.

John Tiltman dysponując taką wiedzą mógł rozpocząć intensywne badania nad sposobem generowania znaków zasłaniających przez maszynę Lorenz'a. W tym celu upoważnił młodego i zdolnego absolwenta chemii Billa Tute (nowego pracownika Bletchley Park) do wygenerowania ich z różnymi okresami powtarzalności. To ujawniło pewne prawidłowości, które pozwoliły w ciągu 2 miesięcy rozpracować strukturę logiczną maszyny. Na początku 1942 roku Laboratoria Badawcze Urzędu Pocztowego w Dollis Hill, wyprodukowały urządzenie o nazwie Tuńczyk (ang. Tunny), zgodnie z zaleceniami Billa Tutte. Urządzenie to było funkcjonalną repliką maszyny Lorenz'a SZ40/42 i pozwalało odszyfrować niemieckie wiadomości po ustaleniu ustawień początkowych bębnów szyfrujących. Proces ten zajmował od 4 do 6 tygodni.

dollis-hill

Rys. 3 - Laboratorium Badawcze Urzędu Pocztowego w Dollis Hill

tuńczyk

Rys. 4 - Maszyna kryptologiczna Tuńczyk (ang. Tunny)

W listopadzie 1942 roku Bill Tutte opracował metodę statystyczną nazwaną podwójną deltą, która miała ułatwić wyszukiwanie ustawień początkowych bębnów. Metodę uznano za wykonalną ale tylko wówczas jeżeli zostanie do tego celu użyta szybka maszyna analityczna. W tym samym czasie w Bletchley Park powstawał nowy dział o nazwie Newmanry, który objął nowy matematyk Max Newman. Pracował on nad próbą automatyzacji procesów łamania szyfru. Newman po zapoznaniu się z nową metodą statystyczną Billa Tutte, otrzymał zadanie zautomatyzowania procesów statystycznych szukających odchyleń od losowości.

Pierwszą maszyną zbudowaną wg. koncepcji Newman'a była Heath Robinson. Jej głównymi konstruktorami byli Tommy Flowers pracujący w Laboratorium Badawczym Urzędu Pocztowego w Dollis Hill oraz Charles Wynn-Williams z organizacji badawczo-rozwojowej TRE (ang. Telecommunications Research Establishment). Tommy Flowers był genialnym inżynierem elektronikiem odkrytym przez Alana Turinga.

Prototyp maszyny był gotowy do użytku w czerwcu 1943 roku. Działała ona na tyle dobrze aby udowodnić słuszność idei zautomatyzowania metody podwójnej delty. Problemem okazała się synchronizacja taśmy ze wzorami bębnów z taśmą na której znajdowała się zaszyfrowana wiadomość, spowalniało to cały proces. Maszyna nie do końca spełniała wymagania Max'a Newman'a. Problem synchronizacji rozwiązał Tommy Flowers sugerując, że znaki zasłaniające można wygenerować w sposób elektroniczny, eliminując tym samym problem synchronizacji. Opracował on projekt nowej maszyny o nazwie Colossus z tzw. obwodami pierścieniowymi, które zastąpiły jedną z taśm.

W lipcu 1942 roku Alan Turing opracował technikę zwaną Turingery pomocną w deszyfracji wiadomości pochodzących z niemieckich dalekopisów zaszyfrowanych maszyną Lorenz'a. Turing jako główny kryptolog w Bletchley Park wprowadził także Tommiego Flowersa pod przewodnictwem Max'a Newmana do zespołu "Tuny", pracującego nad złamaniem szyfru maszyny Lorenz'a. Metody Banburismus oraz Turingery niewątpliwie wpłynęły na sposób pracy z szyfrem dalekopisowym lecz Alan Turing nigdy nie był bezpośrednio zaangażowany w budowę komputera Colossus.

Colossus

Colossus pozwolił zredukować proces dekryptażu niemieckich wiadomości zaszyfrowanych maszyną Lorenz'a z tygodni do godzin. Prace nad projektem rozpoczęły się już w marcu 1943 roku i trwały około 8-siem miesięcy. Komputer został zbudowany z 1500 lamp elektronowych, przetestowany a następnie rozmontowany i przeniesiony do Bletchley Park. W styczniu 1944 roku rozpoczął działanie dekodując pierwszą rzeczywistą taśmę z szyfrem. Colossus przewyższał mocą obliczeniową amerykański komputer ENIAC zbudowany 2 lata później, lecz nie był kompletną maszyną Turinga a tym samym komputerem wszechstronnego zastosowania. Był pierwszym komputerem kryptologicznym zbudowanym w oparciu o lampy elektronowe.

Komputery Colossus zajmowały duże pomieszczenia w Bloku F lub H w Bletchley Park. W sumie zbudowano tam 10 takich maszyn. Ich konstrukcja opierała się na 8-śmiu stelażach o wysokości 2,3 m. Ustawione były w dwóch rzędach o szerokości 5,5 m tyłem do siebie. Dodatkowo posiadały czytnik taśmy papierowej i podajnik taśmy (nazywany ramą łóżkową). Przedni rząd stelaży był odsunięty od tylnego o około 1,6 metra i składał się m.in. z głównego panela sterującego, tablicy z wtyczkami, zdublowanego panela sterowania pierścieniami tyratronowymi, panela z przekaźnikami do buforowania wyjścia z liczników oraz obwodów logicznych, które sterowały licznikami.

Tylny rząd komputera składał się m.in. z modułu statystyki i paneli delta, tyratronów tworzących pierścienie bębnów (łącznie było ich 501), z 12 paneli sterujących pierścieniami tyratronowymi a także z płyt na których znajdowały się połączenia bębnów oraz wybieraków ich pozycji startowych. W sekcji zasilania pracowały układy Westat o napięciu 50V, które pracowały w grupach dających od +200V do -150V. Całkowita moc uzyskiwana przez komputer była na poziomie 6 KW, gdzie większość potrzebna była do pracy lamp elektronowych.

colossus

Rys. 5 - Brytyjski komputer kryptologiczny Colossus Mark II

mr.flowers of dollis hill

Rys. 6 - Tommy Flowers konstruktor komputera Colossus

Zasada działania Colossus

Maszyna kryptologiczna czytała znaki dalekopisowe z taśmy perforowanej, zapisane w kodzie Baudota. Szybkość odczytu wynosiła 5000 znaków na sekundę. Zaszyfrowane wiadomości zwykle pochodziły z transmisji radiowych, przechwyconych przez brytyjskie stacje nasłuchowe. Taśmy papierowe były sklejane w pętle i wielokrotnie skanowane. Posiadały specjalne markery początku i końca tekstu. Generalną zasadą pracy Colossus'a było zliczanie wzdłuż długości tekstu ile razy pewna skomplikowana funkcja logiczna dawała wynik prawdy lub fałszu, pomiędzy tekstem a generowanym wzorem bitowym bębnów szyfrujących. Następnie liczba ta z obwodów zliczających była buforowana na przekaźniki i drukowana podczas kolejnego odczytu tekstu.

System czytnika optycznego

Aby złamać szyfr maszyny Lorenz'a w sensownym czasie tekst zaszyfrowanej wiadomości musiał być wielokrotnie czytany z bardzo dużą prędkością. Oznaczało to minimum 5000 znaków na sekundę i wymagało użycia specjalnych fotokomórek do optycznego odczytu perforacji na taśmie papierowej. W systemie czytnika zaprojektowanego przez dr Arnolda Lynch'a użyto fotokomórek z zapalników zbliżeniowych używanych w pociskach przeciwlotniczych. Obraz taśmy papierowej był powiększony około 10 razy poprzez zastosowanie 6-ściu fotokomórek w rzędzie. Uzyskane w ten sposób dane przekazywane były do układów statystycznych oraz obwodów delta.

Główny panel sterujący

Miał za zadanie ustawianie lub resetowanie obwodu bistabilnego na podstawie impulsów start/stop otrzymywanych z czytnika optycznego. Generował sygnały do zwalniania przekaźników, obracania pierścieni tyratronowych, wyznaczania statystyki liczników a także zerowania pierścieni tyratronowych oraz liczników.

Pierścienie tyratronowe i ich obwody sterujące

Były najbardziej skomplikowanymi obwodami w całej maszynie analitycznej i służyły do generowania znaków zasłaniających w sposób elektroniczny, co pozwalało na usunięcie jednej z taśm. W myśl koncepcji Tommiego Flowersa umożliwiło to rozwiązanie problemu synchronizacji danych.

Tyratrony to wypełnione gazem triody, które pełniły funkcję elektronicznego przekaźnika. Zachodzi w nich zjawisko łuku elektrycznego pomiędzy anodą i katodą, gdy napięcie specjalnej siatki umieszczonej wewnątrz lampy wzrasta do poziomu pozwalającego na przepływ elektronów. Napięcie siatki zmienia potencjał powierzchni katody i osłabia wpływ napięcia anody tym samym umożliwia sterowanie momentem, kiedy tyratron zaczyna przewodzić. Gdy dojdzie do wyładowania, wówczas staje się ono zupełnie niezależne od napięcia siatki. Dzięki temu tyratron staje się jednobitową komórką pamięci. Może być ona wyłączona poprzez wysterowanie anody i siatki napięciem ujemnym w stosunku do katody.

Umożliwiło to budowę rejestru przesuwnego, który wymagał aby włączenie kolejnego tyratronu w pierścieniu tłumiło poprzedni. Tyratrony w pierścieniu przewodziły szeregowo w krokach synchronizowanych przez impulsy perforacyjne a ich katody posiadały wyprowadzenia do panela łączników. Wybierając pozycję połączeń na panelu, ciąg impulsów mógł odtwarzać mechaniczne karby na bębnie szyfrującym maszyny Lorenz'a. Przełącznik krokowy umożliwiał wybór katody tyratronu, do której przejdzie impuls uruchamiający pierścień. Wspólna linia wyjściowa biegła do układu statystycznego i do obwodów delta.

tyratron

Rys. 7 - Tyratron - Lampa elektronowa gazowana

Układy statystyczne oraz obwody delta

Funkcją układu statystycznego było pobranie surowego sygnału z czytnika taśmy perforowanej i pierścieni tyratronowych. Następnie spróbkowanie ich według impulsu zegarowego sczytanego z otworów perforacyjnych na środku taśmy i ustawienie pobranych sygnałów na napięcie ± 80V. W tej sekcji znajdowały się także obwody opóźniające o jeden impuls zegarowy. Ten opóźniony sygnał był dostępny na wyjściu. Znajdował się tam również 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.

Colossus ponadto posiadał jeszcze moduły rejestrów przesuwnych, bramek logicznych, liczników oraz pamięci bufora przekaźnikowego. Programowano go przy użyciu wtyków, kabli i przełączników na panelu wtykowym. Zaraz po wojnie komputery te zdemontowano. Dwie ostatnie sztuki przetrwały do roku 1960 w Kwaterze Głównej Rządowego Centrum Komunikacyjnego w Cheltenham (ang. Government Communications Headquarters), gdzie następnie również je rozebrano a dokumentację spalono. Fakt złamania szyfrów Enigmy oraz maszyny Lorenz'a był utrzymywany długo w ścisłej tajemnicy m.in ze względu na prowadzoną później zimną wojnę. Posiadał status Ultra Secret.

Tagi: Colossus, pierwszy komputer, bomba kryptologiczna Turinga