Viskas prasidėjo 1918 metais, kuomet vokiečių inžinierius Arthuras Scherbius užpatentavo rotorinę šifravimo mašiną, vėliau pavadintą „Enigma“. Pradžioje mašina buvo skirta kai kurioms valstybinėms įstaigoms, didelėms pramonės kompanijoms, norinčioms apsaugoti savo turimą informaciją. Vokiečių kariškiai susidomėjo „Enigma“ ne iš karto, tačiau ryškėjantys Vokietijos karinės galios atkūrimo planai ir tas faktas, kad buvo sužinota, jog per I pasaulinį karą britų ir prancūzų slaptosios tarnybos reguliariai skaitydavo slaptus vokiečių pranešimus, paskatino ieškoti patikimo ir saugaus informacijos šifravimo būdo. Vokietijos karinis laivynas pradėjo naudoti patobulintas „Enigma“ mašinas nuo 1926 metų, o keliais metais vėliau jos buvo įdiegtos ir vermachte, ir karo aviacijoje. Dažniausiai tai būdavo kiek pagerinti civilinio mašinos varianto, kurį galėjo nusipirkti bet kas, modeliai. Manoma, kad Vokietijos generalitetas taip elgėsi nenorėdamas atkreipti užsienio žvalgybų dėmesį į staigų „Enigmos“ išnykimą iš rinkos. Tik prieš pat prasidedant karui, kariškių naudojami šifravimo aparatai tapo gerokai sudėtingesni.
Enigma buvo naudojama vien laiškų šifravimui ir dešifravimui. Standartiniu mašinos variantu laiško nebuvo galima atspausdinti, pasiųsti ar priimti. Šifravimo operatorius galėjo naudotis 26 raidžių klaviatūra, išdėstyta taip, kaip normalioje vokiškoje spausdinimo mašinėlėje:
Q W E R T Z U I O
A S D F G H J K
P Y X C V B N M L
Klaviatūroje nebuvo nei skaitmenų, nei skyrybos ženklų. Už šios klaviatūros buvo trys 26 mažų apskritų langelių eilutės. Kiekviename langelyje buvo įrašyta po raidę; jos buvo išdėstytos ta pačia tvarka kaip ir pagrindinėje klaviatūroje ir galėdavo nušvisti jų apačioje užsidegus lemputėms.
Po lemputėmis buvo įtaisytas vadinamasis rotorinis šifravimo įrenginys, sudarytas iš dviejų fiksuotų rotorių šonuose ir tarp jų esančių trijų besisukančių rotorių. Įvesties rotorius kairėje turėjo 26 kontaktus, sujungtus su atitinkamais klavišais. Tie kontaktai buvo tam tikra tvarka laidais sujungti su vienu iš dešinėje esančių kontaktų. Išvesties arba apgrąžos rotorius (Umkehrwalze) taip pat turėjo 26 kontaktus. Jis priimdavo atitekančią srovę ir pasiųsdavo ją atgal, bet kitu keliu, nei ji buvo atkeliavusi. Tarp abiejų fiksuotųjų rotorių yra trys judantys, irgi turintys laidais sujungtus kontaktų rinkinius. Priklausomai nuo tų rotorių padėties, susijungia vis kiti skirtingų rotorių kontaktai, todėl pasikeičia ir kelias, kuriuo teka srovė paspaudus kurį nors iš klavišų, ir kurią lemputę ta srovė galiausiai pasieks.
1 pav. Vidurinių rotorių sujungimas |
Trys viduriniai rotoriai buvo pasirenkami iš penkių kiekvieno aparato komplekte esančių rotorių. Kas mėnesį slaptu įsakymu buvo apibrėžiamas rotorių pasirinkimas kiekvienai dienai, pavyzdžiui, V-I-III arba II-IV-I ir t. t. Savo ruožtu, kiekviename iš tų besisukančių rotorių buvo 26 pagal rotoriaus perimetrą išdėstytos kontaktinių porų eilutės. Eilutėse esančios kontaktų poros laidais buvo sujungtos skirtingai viena nuo kitos. Savo ruožtu, po kiekvieno klavišo paspaudimo įvesties pusėje esantis dešinysis judantis rotorius pasisukdavo per vieną poziciją, todėl sujungimų tvarka pasikeisdavo. Šiam pasisukus per 26 pozicijas, per vieną poziciją pasisukdavo ir vidurinysis judantis rotorius, o jam pakeitus visas 26 įmanomas eilutes, pasisukdavo ir kairysis judantis rotorius. Jeigu laikysime kiekvienu laiko momentu egzistuojančių elektrinių sujungimų raštą tam tikru „Enigmos“ šifro „raktu“, tai visas tokių raktų skaičius bus lygus 26x26x26=17 576.
Galų gale, kariškių naudotose „Enigmose“ buvo papildomas 26 lizdų, irgi raidėmis sužymėtų įprastine QWERTZU tvarka, rinkinys. Šie lizdai galėjo būti sujungti kabeliais sujungtomis kištukų poromis, jungiant, pavyzdžiui C su P, M su Z, J su S ir t.t. Keli lizdai, dažniausiai šeši, buvo paliekami laisvi.
Šifruotojui paspaudus kurią nors raidę, dešinysis rotorius mechaniškai pasisukdavo per vieną vietą, ir, kaip tai buvo aiškinta anksčiau, vidurinis ir kairysis rotoriai laikas nuo laiko irgi pajudėdavo. Srovė, sukuriama 4,5 V vidaus baterijos, tekėdavo per visą šią sudėtingą grandinę, kol pasiekdavo vieną iš lempučių. Standartiniame trijų rotorių aparate srovės kryptis buvo keičiama net devynis kartus. Reikia atminti, kad paspaudus bet kurį klavišą bent vienas iš rotorių pajudėdavo ir kiekvienai raidei atsirasdavo naujas grandynas. Svarbu pastebėti, kad paspaudus kurį nors klavišą (pavyzdžiui, B), užsidegdavo bet kuri kita raidė (pavyzdžiui, T). Jeigu vėl spaustumėme klavišą B, užsidegs vis kitos lemputės, sakykime, P, F, O, J, C..., bet niekuomet – B. Visa seka pasikartotų po 16 900 paspaudimų, kuomet vidinis mechanizmas grįš į pradžioje buvusią padėtį. Pasikartojimas galėjo padėti atspėti kodą, todėl laiškų ilgis buvo ribojamas 250 raidžių.
Enigma leido pasirinkti vieną iš 60 įmanomų rotorių išdėstymo tvarkų, kiekvienai tokiai tvarkai atitiko 17 576 galimų kontaktų sujungimo variantų ir virš 150 milijonų milijonų kištukais sujungtų porų. Todėl kasdien „Enigma“ galėjo naudotis apie 159 milijonais milijonų milijonų įmanomų raktų. Šis skaičius buvo toks milžiniškas, kad vokiečiai buvo tikri, jog jų siunčiami kariniai ir diplomatiniai pranešimai yra visiškai saugūs. Iš tikrųjų buvo visai ne taip.
Pirmieji su naująja Vokietijos karinių žinybų siunčiamų pranešimų tvarka susidūrė lenkai. Atgavus nepriklausomybę, Lenkijos kariuomenės Antrajame skyriuje buvo įkurtas vadinamasis Šifrų biuras, kurio užduotis buvo stebėti didžiuosius šalies kaimynus vakaruose ir rytuose. Pradžioje tas darbas nekėlė didesnių sunkumų: iki pat 1926 m. jauni biuro specialistai be vargo skaitydavo ne itin sudėtingus vokiečių ir sovietų šifrus. Iki tol visos šalys tenaudojo rankinį šifravimą. Situacija ryškiai pasikeitė 1926 m., kai Vokietijos karinis jūrų laivynas palaipsniui pradėjo naudoti mašininį šifravimą. Nuo 1928 m. liepos lenkams pasidarė nebeįkandami ir Vokietijos armijos pranešimai.
Netrukus buvo padaryta gana logiška išvada, kad šifravimui pradėtos naudoti mašinos. Nelaukiant buvo įsigyta tuo metu Vokietijoje dar pardavinėjama komercinė „Enigmos“ versija. Mašina buvo išardyta ir kruopščiai studijuojama, bet tai nedavė jokių rezultatų, todėl nutarta problemos sprendimo ieškoti kitaip. 1929 m. sausio mėnesį Poznanės universitete buvo surengti kriptologijos kursai, kuriuose buvo bandoma atsirinkti šiai sričiai gabius studentus matematikus. Žingsnis visiškai pasiteisino – būtent tada buvo įtraukti į darbą biure „Enigmos“ kodą išnarplioję Marianas Rejwskis, Jerzy Rozyckis ir Henrykas Zygalskis. Visi trys pradėjo nagrinėti pasienyje su Vokietija esančių radijo pasiklausymo stočių perimtus pranešimus. Kova su „Enigma“ prasidėjo.
Pirmoji jaunųjų kriptologų grupės sėkmė – keturių raidžių vokiečių karinio laivyno kodo iššifravimas, bet kelias iki „Enigmos“ užšifruotų pranešimų perskaitymo dar buvo labai tolimas. Tuo momentu biuro vadovai nutarė patikėti vyriausiam, Rejewskiui, per ilgą laiką sukauptus šifruotus vokiečių įrašus.
Susipažinęs su komercine „Enigmos“ versija ir disponuodamas įrašais, Rejewskis pastebėjo kai kuriuos būdingus požymius, kuriuos aprašė sudaręs tam tikrą matematinę permutacinių lygčių sistemą. Nors nežinomųjų skaičius dar buvo daug didesnis nei lygčių skaičius ir išspręsti sistemą buvo neįmanoma, tai buvo svarbus žingsnis link visos problemos sprendimo. Tai supratę viršininkai, ryžosi patikėti Rejewskiui dar keturis itin slaptus dokumentus, kuriuos lenkams perdavė prancūzų žvalgyba. Tai buvo karinės „Enigmos“ versijos nuotrauka, jos aptarnavimo instrukcija ir dvi metų senumo lentelės su raktais. Tuose dokumentuose buvusi informacija leido Rejewskiui eliminuoti kelis jo lygčių sistemos nežinomuosius.
Prancūzai susisiekė su lenkų žvalgyba dar 1931 metais, kai pamatė, kad jų šifruotojai patys nesugeba susidoroti su „Enigmos“ kodais. Prieš metus jie buvo užmezgę kontaktą su vokiečiu, dirbusiu svarbiausioje Vokietijos kriptografijos agentūroje – Chiffrierstelle. Šis agentas, turėjęs slapyvardį „Asche“, buvo Hans-Thilo Schmidtas, garbingos vokiečių šeimos palikuonis. Jis pats sutiko dirbti prancūzams pabrėždamas, kad tai daro dėl ideologinių motyvų. Nežiūrint to, už viską, ką Asche pateikdavo, buvo dosniai sumokama. Karo metu vokiečių karinė kontržvalgyba Abwer demaskavo Asche ir įvykdė mirties nuosprendį.
Asche buvo atsakingas už panaudotų „Enigmos“ kodų lentelių sunaikinimą, bet, prieš tai atlikdamas, jas nukopijuodavo ir vėliau perduodavo savo antriesiems darbdaviams. Prancūzams, o vėliau ir lenkams į rankas patekdavo „Enigmos“ raktų lentelės, įskaitant ir kištukais sujungiamų raidžių rinkinius.
2 pav. „Enigmos“ aparato su apgrąžos rotoriumi veikimo schema
Tai gerokai palengvino Rejewskio ir jo kolegų darbą. Jie jau buvo aptikę silpnąją „Enigmos“ vietą – apgrąžos rotorių. Iš mašinos aprašymo buvo žinoma, kad paspaudus bet kurį, tarkim, klavišą x, užsidegdavo lemputė y, o spaudžiant klavišą y užsidegdavo lemputė x. Tai lėmė paskutinis apgrąžos rotorius (2 pav.). Jei šifruotojas dukart paspausdavo tą patį klavišą x – pirmą kartą gaudamas raidę a, o ketvirtą kartą b, tai pirmą kartą spausdamas klavišą a jis turėtų gauti raidę x, o ketvirtą kartą spausdamas klavišą x – raidę b. Šitaip jau buvo galima eliminuoti kai kurias permutacines lygčių sistemas ir supaprastinti šifro dekodavimo uždavinį.
Nuo 1933 m. pradžios lenkų Šifrų biuras jau reguliariai skaitė Vokietijos kariškių siuntinėjamus pranešimus. Manoma, kad iki 1938 m. pavyko iššifruoti kelis tūkstančius „Enigmos“ pranešimų. Tiesa, pats dešifravimas buvo ilgai trunkąs ir varginantis darbas, todėl karo atveju nebūtų labai efektyvus. Lenkijos žvalgybininkai ėmėsi kurti specialią „Enigmos“ pranešimų dešifravimo mašiną. Pradžioje Rejewskiui pavyko išnarplioti vieno rotoriaus kontaktų sujungimo schemą. Po to, panaudojant vieną iš prancūzų atsiųstų raktų lentelių, pasisekė atspėti, kaip šie kontaktai sujungti tarpusavyje ir kitame rotoriuje. Kiek vėliau išsiaiškinta ir trečiojo rotoriaus paslaptis. Žinant visų trijų rotorių vidinius sujungimus, vienoje Varšuvos firmoje buvo pradėtos gaminti vadinamosios „bombos“ - mašinos, kurias sukiojant buvo bandoma surasti pradinę rotorių padėtį, naudotą kiekvieną dieną šifruojant „Enigmos“ pranešimus. Kol „Enigmos“ komplektą sudarė tik trys judantieji rotoriai, šešios lygiagrečiai veikiančios „bombos“ gana operatyviai aptikdavo dienos raktą. Bet nuo 1938 m. vokiečiai komplektą papildė dar dviem rotoriais, todėl uždavinys labai pasunkėjo. Jo sprendimui reikėjo mažiausiai 60 „bombų“, o tai jau viršijo Šifrų biuro galimybes.
3 pav. Trijų rotorių šifravimo-dešifravimo mašina „Enigma“
Artinosi karas. Žmonės, kurie skaitė slaptus Vokietijos generaliteto pranešimus dažniau nei kasdieninius laikraščius, tai žinojo geriau negu bet kas kitas. Todėl lenkai nutarė pradėti ruoštis pačiam blogiausiam atvejui. 1939 m. Paryžiuje įvyko pirmasis Prancūzijos, Didžiosios Britanijos ir Lenkijos žvalgybų vadovų susitikimas. Liepos pabaigoje, kiek daugiau negu mėnuo iki II pasaulinio karo pradžios, Varšuvoje įvyko antrasis susitikimas. Jo metu lenkai perdavė prancūzams ir britams tai, ką jie jau buvo sužinoję apie „Enigmą“ ir po vieną veikiantį šifravimo aparatą. Karui prasidėjus, Šifrų biuras per Rumuniją parsikraustė į Prancūziją, o vėliau į Angliją. Čia Bletchley Park miestelyje buvo įkurtas ištisas „Enigmos“ dešifravimo fabrikas, kuriame vienu metu dirbo net 7000 žmonių, įskaitant ir geriausius to meto britų specialistus Alaną Turingą ir Dilly Knoxą.
Galima būtų nustebti ir pasidomėti, kam, po viso to pasakojimo apie matematikos taikymą ir „Enigmos“ dublikatų gamybą, prireikė tokios minios vokiečių pranešimus dešifruojančių žmonių. Ogi minėtos priemonės tiktai gerokai sumažino milijonų milijonų milijonus galimų rakto variantų, bet jų dar liko pakankamai daug. Elektroninių kompiuterių tada dar nebuvo, todėl į pagalbą buvo galima pasitelkti tiktai lėtai veikiančias mechanines „bombas“, kurias britai gavo iš lenkų ir nuolat tobulino.
„Enigma“ buvo tobuliausias to meto technikos kūrinys, tačiau ir ji palikdavo nemažai šifravimo spragų, kuriomis naudojosi britų dešifruotojai. Jie, pavyzdžiui, darė prielaidą, kad, koduojant tiriamojo pranešimo dalį, dešinysis rotorius dar nepasukdavo viduriniojo. Tai šiek tiek sumažindavo galimų raktų skaičių. Be to, labai padėjo ir pagrindinis „Enigmos“ trūkumas – tai, kad jokia raidė niekuomet nebuvo koduojama pati savim.
Pastaroji aplinkybė labai pagelbėdavo naudojant vadinamąsias „špargalkas“ (angl. cribs), teksto fragmentus, kurių buvo galima tikėtis užkoduotajame pranešime. Tvarką mėgstantys vokiečiai dažnai pateikdavo britams tokias „špargalkas“. Tie patys žodžiai dažnai išnirdavo įvairių pranešimų pradžioje; populiariausia pradžia buvo „An die Gruppe“ (grupei). Karui baigiantis, užnugario štabuose gausėjo žioplų operatorių, kurių ataskaitose nuolat kartodavosi: „Keine besondere Ereignisse“ (pažodžiui verčiant, „jokių ypatingų atsitikimų“) ar panašios standartinės frazės. „Špargalkos“ galėjo išnirti bet kurioje pranešimo vietoje, tačiau tas faktas, kad užšifruotuose žodžiuose „Keine besondere Ereignisse“ nei viena raidė negalėjo būti tokia pat kaip prieš šifravimą, leido lengviau surasti, kurioje vietoje jos yra.
Tarkime, kad mes „Keine besondere Ereignisse“ pasirinkome savąja „špargalka“. Lyginant tą frazę su užšifruotuoju tekstu, sudalintu į grupes po penkias raides, kaip paprastai darė Vokietijos Wehrmacht'o ir Luftwaffe operatoriai, lengva pastebėti, jog vietų, kur abiejų eilučių raidės būtų tokios pat, skaičius bus labai ribotas (žr. 4 pav.).
4 pav. Viršutinėje eilutėje šifravimo „špargalka“, apatinėje – užšifruotas tekstas
Pajudinus viršutinį tekstą į kairę ar dešinę vos per vieną vietą, I ar S raidės žodyje Ereignisse sutaps su tokiomis pat raidėmis apatiniame tekste, o to „Enigmos“ užšifruotame pranešime negali įvykti. Judant dar toliau, atsiras tik daugiau atsikartojančių raidžių. Šiuo atveju yra tiktai viena vieta, į kurią galima įstatyti „špargalką“, ir ja remiantis jau galima atspėti, kokia buvo pradinė rotorių padėtis.
Pasitaikydavo ir visai kurioziškų atvejų. Vieną kartą Bletchley Park dirbęs dešifruotojas labai nustebo pamatęs, kad jam duotame ilgokame tekste nėra nei vienos L raidės. Greitai buvo suvokta, kad taip atsitiko dėl to, kad vokiečių operatorius, kuriam buvo liepta pasiųsti fiktyvią šifruotę, paprasčiausiai visą laiką spaudinėjo vieną raidę LLLLL... Gavę tokią "dovanėlę" britai galėjo iškart atstatyti visą rotoriaus laidų išvedžiojimo schemą.
Taip paprasta buvo, toli gražu, ne visada, bet jei ne tas „Enigmos“ trūkumas (raidė niekada nėra užšifruojama ja pačia) ir ne vokiečių operatorių aplaidumas, nei lenkams, nei britams tikriausiai taip ir nebūtų pavykę iššifruoti vokiečių siunčiamų pranešimų.
Iš viso prieš karą ir karo metais Vokietijoje buvo pagaminta apie 30 tūkst. šifravimo mašinų „Enigma“. Jos buvo nuolat tobulinamos, tapdavo vis sudėtingesnės ir sunkiau įveikiamos sąjungininkų dešifruotojams. Tačiau jie susidorojo su užduotimi ir sąjunginės valstybės sužinojo daug slaptų vokiečių planų. Faktiškai tik „Enigmos“ dešifravimo dėka buvo nutraukta Vokietijos povandeninio laivyno veikla Atlanto vandenyne. Vokiečių nuostoliai buvo tokie dideli, kad, 1943 m. sąjungininkų konvojui nuskandinus 41 laivą, laivyno vadas admirolas Doenitzas įsakė visiems povandeniniams laivams grįžti į bazes. „Enigma“ įtakojo ir Šiaurės Afrikoje vykusių karo veiksmų baigtį. Jeigu „Enigma“ šifro nebūtų pavykę įveikti, karas tikrai būtų užtrukęs ilgiau.
5 pav. Atidarius „Enigmos“ dangtį, galima pakeisti šifravimo rotorių
Į „Enigma“ panašios šifravimo mašinos buvo naudojamos maždaug iki 1975 m., tik tada jas pakeitė elektroniniai kompiuteriai. Todėl ir ši istorija pradėjo išnirti iš slaptųjų archyvų palyginti neseniai. Iki tol ji buvo apgaubta legendų. Kadangi tai buvo vienas iš nedaugelio atvejų, kai karo sėkmę nulėmė ne bombų, tankų ar karių skaičius, į laurus taikėsi daugelis. Britai iki šiol įsitikinę, kad visi „Enigmos“ paslapties išnarpliojimo nuopelnai priklauso tiktai jiems. Kas gi kitas, jei ne Džeimso Bondo tėvynainiai galėtų susidoroti su tokia nekasdieniška užduotimi? Lenkų vaidmens visiškai nuneigti nebuvo galima, todėl jiems buvo priskirtas „Enigmos“ pavogimo iš mašinas gaminusio Vokietijos fabriko „nuopelnas“ (William B. Breuer, „Secret weapons of World War II“). Ko daugiau gali tikėtis iš tų rytų europiečių? Su skirtingomis ir net viena kitai prieštaraujančiomis „Enigmos“ istorijos interpretacijomis teko susipažinti ir ieškant medžiagos šiai publikacijai. Gavau ieškoti „aukso vidurio“: faktai, pateikti straipsnyje, yra surinkti ir iš lenkų, ir iš britų šaltinių, bet sudėstyti į visumą taip, kaip tai šiandien aiškina vokiečiai. Jų įtarti šališkumu tikrai nevertėtų. Būtent Vokietijos kriptografijos specialistai patvirtina: „Enigmos“ šifrą pirmieji sugebėjo įveikti mūsų kaimynų, lenkų, žvalgybininkai.