Colossus

 
Colossus oli koodimurdmiseks loodud arvutite kogum, mida britid kasutasid teise maailmasõja ajal sakslaste sõnumite dekrüpteerimiseks. Tänu Colossuse poolt dekrüpteeritud sõnumitele olevat sõda mitu kuud varem lõppenud ning hoidnud elus kümneid tuhandeid sõdureid. Colossus vähendas aega, mis kulus Lorenzi χ-ratta seadistuse leidmiseks.
Ajalugu.
Colossuse arvuteid kasutati raadioga kinnipüütud sõnumite, mis olid tundmatu seadmega krüpteeritud, lahtimurdmiseks. Luureinfo järgi kutsusid sakslased oma raadiosidesüsteeme Sägefischiks. Sellest inspireerituna hakkasid britid kutsuma sakslaste raadiosideliiklust Fishiks ja tundmatut seadet Tunnyks.
Enne, kui sakslased oma turvaprotseduure muutsid, suutsid briti krüptoanalüütikud aru saada, kuidas sakslaste tundmatu seade töötab, ja ehitasid sarnase nimega British Tunny.
1941. aasta augustis tegid Saksa operaatorid vea ja saatsid kaks versiooni samast sõnumist identsete seade parameetritega. Need sõnumid saadi brittide poolt kätte ja hakati Bletchley Parkis nende kallal töötama. Esimesena suutis krüptoanalüütik John Tillman sõnumitest välja töötada peaaegu 4000-sõnalise võtmevoo. Peale teda mõtles Bill Tutte võtmevoo põhjal Lorenzi masina loogikastruktuuri. Ta järeldas, et 12 ratast koosnevad kahest viiesest grupist. Esimese grupi nimetas ta χ ja teise grupi ψ, kaht ülejäänud ratast nimetas ta "motor" ratasteks. χ-rattad liikusid regulaarselt iga tähega, aga ψ-rattad liikusid irregulaarselt, "motor"-rataste juhtimisel.
Küllalt suvalise võtmevooga suutis Vernami šiffer eemaldada keelele omase ebaühtlase sümbolite jagunemise ja saada ühtlase sümbolite jagunemise šifritekstis. Tunny masin suutis seda hästi teha.
Saadud sõnumite dekrüpteerimiseks oli vaja sooritada kaks ülesannet. Esimene ülesanne oli nn "wheel breaking", mille eesmärk oli saada "cam" pinnide muster ratastel. Need mustrid seati Lorenzi masina peale ja lasti selle peale, kindla aja jooksul, krüpteeritud sõnumeid. Iga sõnumi tagant liigutati rataste alguspunkti.
Teise ülesande tegemiseks oli vaja teada õiget "cam" pinnide mustrit ja selle nimetus oli "wheel setting". Eesmärk oli leida χ-rataste alguspunkt. Selle ülesande jaoks oligi algselt Colossus loodud. Colossus võrdles kaht sümbolite jada, lugedes statistikat programmeeritud tõeväärtus funktsioonidest. Need kaks jada olid šiffertekst, mida loeti kiiresti. Üks jada oli perfolindil ja teist jada, võtmevoogu, genereeriti Colossuse sees. Lõpuks väljastab Colossus kõige tõenäolisemad χ-ratta seaded.
Ehitus.
Colossus töötati välja briti koodimurdmisjaama Newmanry jaoks. Seda sektsiooni juhtis Max Newman, kelle ülesanne oli luua masinaid, millega oleks võimalik Lorenz SZ40 šifrimasinale vastu saada. Colossuse enda disain sai inspiratsiooni talle eelnenud projektist nimega "Heath Robinson". Kuigi eelnev projekt tõestas, et masinanalüüs on võimalik lahendus, ei olnud masin väga usaldusväärne. Raske oli sünkroonida kaht perfolindi lugemist, sest lindid kippusid välja venima peale 2000 sümbolit sekundis kiirusega. Heath Robinsoni põhikomponendid:
Alan Turing soovitas Max Newmanile austatud krüptoanalüütikut Tommy FLowersit, kes oli seotud 1941. aastal Bombe efektiivsemaks muutmisega. Max Newman ei lasknud võimalust käest ja lasi tal disainida "Heath Robinsoni" kombineerimisüksuse. Flowers polnud aga vaimustatud, et pidi kahte perfolindi lugemisüksust sünkroonis hoidma ja töötas välja elektroonilise seadme, mis muutis võtmevoo perfolindi kasutuks. Tema idee, et perfolindi asemel suudaksid tuhanded vaakumtuubid ja türatronid riknemata ja usaldusväärselt korraga töötada, oli paljude jaoks kaheldav, aga Flowers ei andnud alla. Ta teadis, et kõige suurem risk, millegi katki minemisel on seadme sisse ja välja lülitamisel. Sellel põhjusel hoidis ta oma seadet pidevalt tööl. Lõpuks sai Flowers nõusoleku uurimisjaama direktorilt W. Gordon Radleylt.
Pärast nõusoleku saamist pani Flowers kokku umbes 50 inimesega meeskonna ja hakkas looma järgmist projekti, mis sai nimeks Colossus. Esimene prototüüp oli funktsionaalne 1943. aasta detsembris. Prototüübi tegemisel kujunes välja isegi efektiivsem ja parem disain, mis sai nimeks Colossus Mark 2. Colossus Mark 2 oli funktsionaalne 1944. aasta juunis. Colossuse peamine eelis oli võtmevoo elektroonne genereerimine, mis võimaldas lugemisüksuse kiirust tõsta 5000 sümbolini sekundis. Lisaks omas Colossus 5 protsessorit, mis võimaldas viit kombinatsiooni korraga testida. Colossuse efektiivkiirus oli 25 000 sümbolit sekundis.
Kasutamine.
Newmanrys, mis oli teise maailmasõja ajal koodimurdmisjaam, töötasid krüptoanalüütikud, kelleks olid enamasti kuninglikust naiste mereväeteenistusest (Women's Royal Naval Service ehk WRNS), keda kutsuti wrennideks. Newmanrys töötas sõja lõpuks 272 naist ja 27 meest. Naiste suure osakaalu põhjuseks oli selleaegne uskumus, et naised saavad paremini hakkama matemaatika ja analüüsiga.
Sõnumi lahtimurdmise alustamiseks tuli algul ette valmistada perfolindi tsükkel. Seda tegid tavaliselt wrennid, kes kaks lindi otsa Bosticki liimiga kinni liimisid, tagades 150 sõna pikkuse tühjuse sõnumi alguse ja lõpu vahel. Siis tehti linti spetsiaalse augurauaga alguse ja lõpu augud. Lõpuks asetati lint lugemiseks masinale ja sisestati 
programmeerimispaneeli kaudu algoritm. Ülejäänud oli Colossuse teha.
Programmeerimine.
Colossusel ei olnud elektroonset programmi salvestusvõimalust. Colossuse viis paralleelset protsessorit said infot perfolindilt, χ-, ψ- ja "motor"-ratta elektroonilise mustri.
Protsessorite programmid koostati programmeerimispaneelidel eri lülitite liigutamisega. Iga protsessor suutis lugeda tõeväärtusfunktsiooni väärtust, lugeda mitu kumbagi väärtust kokku tuli ja pärast tulemust näidata.
Protsessorite sisend tuli kahest kohast, "shift" registrid perfolindilt ja türatronist rõngad, mis emuleerisid Tunny masina rattaid. Sümboleid perfolindil nimetati Z ja sümboleid Tunny emulaatoril nimetati nende kreeka tähtede järgi, mille Bill Tutte neile andnud oli. Programmeerimispaneelil on Z või ΔZ, formula_1 või Δformula_1 ja formula_3 või Δformula_3 ja nende järgi otsustada, mis sõnumiga Colossuses juhtub.
Programmeerimispaneeli vasakul pool olevad lülitid on algoritmi muutmiseks. Lülitid paremal pool valisid kordaja, millele tulemust salvestati. Programmeerimispaneel võimaldas umbes 5 miljardit erinevat kombinatsiooni.
Rekonstrueerimine.
1991. aastal otsustas Tony Sale, kes töötas Londoni teadusmuuseumis ja parandas vanu briti arvuteid, et ta suudab rekonstrueerida Colossuse. 1993. aastal kogus ta kokku kogu teabe, mille ta Colossuse kohta kätte sai. See koosnes kaheksast 1945. aastal tehtud pildist ja elektridiagrammi osadest, mida insenerid ebaseaduslikult alles olid hoidnud. Üks suuremaid takistusi oli perfolindilugeja, selle detaile polnud ühelgi pildil. Õnneks suutis Tony Sale leida selle perfolindi lugeja disaininud inseneri dr Arnold Lynchi. Vaatamata kõrgele eale oli Lynch nõus külastama ja disainiga aitama. Rekonstruktsiooni esimene funktsionaalne versioon valmis 1996. aastal. Sama aasta juunis toimus ka ametlik sisselülitus, mille viis läbi Kenti hertsog, prints Edward. Nüüd seisab Colossuse koopia Londonis Bletchley Parki muuseumis, kus ta 2007. aastal lõpuks ka valmis.
Colossuse koopia valmimise tähistamiseks korraldati Cipher Challenge, mille eesmärk oli panna entusiastid vastamisi värskelt valminud Colossusega. Võistluse eesmärgiks oli lahti murda kolm Lorenz S42 šifrimasinaga krüpteeritud sõnumit. Lorenz S42 šifrimasinat kasutasid teise maailmasõja ajal saksa sõjaväelased sõnumite krüpteerimiseks. Võistlus lõppes aga üllatavalt kiiresti, kui saksa koodimurdja Joachim Schüth, kes oli võistluseks hästi valmistunud, suutis vähem kui minutiga kõik sõnumid lahti murda. Colossuse võistkonnal aga oli probleeme raadiosignaali kätte saamisega, kuna nad otsustasid kasutada teise maailmasõja aegset raadiotehnikat. Joachim Schüth murdis sõnumid lahti 46 sekundiga, aga Colossusel läks koodi murdmiseks aega üle kolme tunni. Schüth juhtis pärast võitu tähelepanu sellele, et ta kasutas moodsat sülearvutit 1,4 GHz protsessoriga, aga Colossus oli disainitud enne digitaalseid arvuteid ja oli 1944. aasta kohta väga kiire arvuti.