Šifreerimismasinad

From ICO wiki
Revision as of 17:33, 12 December 2020 by Halaur (talk | contribs) (→‎Saksamaa)
Jump to navigationJump to search

Sissejuhatus

Üldiselt krüpteerimisest. Mis see on? Krüpteerimine on tegevus, mille käigus informatsiooni või sõnumeid muudetakse loetamatuks, et nende sisu oleks mõistetav vaid kindlale vastuvõtjale ja varjatud kõigi asjasse mittepuutuvate osapoolte eest. Et salastatud sisu edastamine oleks edukas, on tarvis ka, et vastuvõtja suudaks sõnumi dekrüpteerida. Võimalusi krüpteerimiseks on mitmeid, näiteks peites salajane sõnum mingi teise teksti sisse, muutes tähtede järjekorda sõnumis, asendades tähti mingi kindla võtme abil jne. Põhjuseid informatsiooni krüpteerimiseks võib olla samuti mitmeid – sõjalistel eesmärkidel, varjates näiteks enda üksuste asukohti ja suurusi; äriliste saladuste kaitsmiseks, näiteks siidi tootmine Hiinas, tänapäeval ka erinevate arvutisüsteemide, isikuandmete jms kaitseks ehk turvalisus küberkuritegude vastu. (https://www.sans.org/reading-room/whitepapers/vpns/history-encryption-730)

Ajalugu

Esimesed šifreerimismeetodid

Vana-Egiptus Esimesed ilmingud tekstide krüpteerimisest tulevad Vana-Egiptusest, kust sai krüpteerimine alguse peaaegu 4000 aastat tagasi. Krüpteeringud olid toona võrdlemisi lihtsad ja seisnesid hieroglüüfide osalise asendamisega tekstides ning seetõttu oli üsna lihtne antud tekste ka asjasse mittepuutuvatel isikutel dekrüpteerida ja sõnumi sisu välja lugeda. https://www.giac.org/paper/gsec/1555/history-encryption/102877 Kreeka 5. sajandil eKr kasutati Kreekas, täpsemalt Spartas krüpteerimismeetodit nimega scytale. Scytale kujutab endast kindlate mõõtmetega silindritaoliste objektide, keppide kasutust, mille ümber mässiti kitsas naha- või papüüruseriba, millele olid omakorda kirjutatud pealtnäha suvalises järjestuses tähed. Eelduseks oli, et mõlemal osapoolel olid samade mõõtmetega silindrikujulised kepid, mille abil sõnumisaatja sai teksti valmis kirjutada ja vastuvõtja seda lugeda. Silindrikujulist abivahendit salajase sõnumiga muidugi kaasa ei saadetud. https://www.giac.org/paper/gsec/1555/history-encryption/102877 https://interestingengineering.com/11-cryptographic-methods-that-marked-history-from-the-caesar-cipher-to-enigma-code-and-beyond

Scytale – meetod ümberpaigutusega (ingl. keeles transposition) šifri rakendamiseks. Allikas: https://crypto.interactive-maths.com/simple-transposition-ciphers.html

Rooma keisririik ja Julius Caesar Esimene krüpteerimismeetod, mida kasutati sõjalistel eesmärkidel oli Caesari šiffer või Caesari nihe, mille puhul kasutati tähestikku ja võtit, mis määras ära, mitme koha võrra igat sõnumis sisalduvat tähte tähestikus edasi nihutati. Tegemist on väga lihtsa, kuid toona väga efektiivse meetodiga, arvestades asjaolu, et väga vähesed inimesed suutsid lugeda, veel vähem siis mõista krüpteeritud sõnumeid. Caesar kasutas antud meetodit, et vahetada salastatud informatsiooni oma vägedega sõdade keskmes. https://www.giac.org/paper/gsec/1555/history-encryption/102877 https://www.sans.org/reading-room/whitepapers/vpns/history-encryption-730

Näide Caesari nihkest. Allikas: https://www.geeksforgeeks.org/caesar-cipher-in-cryptography/

20. sajand

Jeffersoni ratasšiffer Thomas Jefferson töötas 20. sajandi viimasel kümnendil välja 26 kettast koosneva šifreerimissüsteemi, millele sarnaneva süsteemi nimega M-94 töötas välja ja võttis kasutusele ka Ameerika Ühendriikide sõjavägi 1922. aastal. Kettaid oli võimalik süsteemist eemaldada ja nende järjekorda muuta ning ketaste järjestus määraski ära võtme, mida nii saatja kui vastuvõtja pidid teadma, et salastatud informatsioon edukalt osapoolte vahel liiguks. Kui vastuvõtja on kettad õigesse järjestusse paigutanud, pruugib tal vaid kettaid keerata nii, et tekiks eelnevalt kokkulepitud salastatud kiri või lause ning seejärel lugeda teistelt tekkinud ridadelt salastatud sõnumeid. https://maritime.org/tech/csp488.htm https://www.giac.org/paper/gsec/1555/history-encryption/102877

Jeffersoni ratasšiffer. Allikas: https://en.wikipedia.org/wiki/Jefferson_disk

Choctaw indiaanlaste kasutamine Esimeses Maailmasõjas Lisaks kirjalikele šifritele ja šifreerimismasinatele võib tekkida vajadus varjata ka suulisel teel edastatavat informatsiooni, näiteks telefonikõnede teel edastatavad sõnumid. Esimese Maailmasõja lõpu poole tekkis USA sõjaväel samuti probleem telefonikõnede pealt kuulamisega Saksa luure poolt ning vastupanuks sellele otsustati võtta kasutusele Choctaw indiaanlaste keeruline keel. Salajaste sõnumite edastamiseks kasutati Choctaw indiaanlaste abi, mida Saksa luure ei suutnud dešifreerida ning sellega mõjutati ka oluliselt I MS kulgu. Choctaw indiaanlaste rakendamine Esimeses Maailmasõjas andis ka inspiratsiooni Teises Maailmasõjas kasutatud Navajo indiaanlaste keele kasutamiseks. https://www.giac.org/paper/gsec/1555/history-encryption/102877 Allikad: https://www.sans.org/reading-room/whitepapers/vpns/history-encryption-730 https://www.giac.org/paper/gsec/1555/history-encryption/102877 https://interestingengineering.com/11-cryptographic-methods-that-marked-history-from-the-caesar-cipher-to-enigma-code-and-beyond https://maritime.org/tech/csp488.htm

Saksamaa

Enigma

Varajased Enigma masinad

Aastaks 1918 ehk esimese maailmasõja lõpuks oli sakslasest insener Arthur Scherbius patenteerinud rootoritest koosneva šifreerimismasina konstruktsiooni, pannes sellele nimeks Enigma. Peale patenteerimist üritasid Scherbius ja Ritter, viimasega lõi Scherbius oma firma, šifreerimismasinat hakata müüma Saksa mereväele ning välisministeeriumile, kuid kumbki ei näidanud ülesse suurt huvi masina vastu. Esimest korda nägi Enigma masin päevavalgust alles 1923. aastal. (võiks olla pilt esimesest masinast)

Esialgne Enigma, mis 1923. aastal tehti, erines märgatavalt sellest, mida kasutas Saksa sõjavägi teise maailmasõja ajal – tegemist oli suure, kohmaka ja raske masinaga, mis oma olemuselt meenutas kirjutusmasinat, kaaludes pea 50 kilogrammi. Esialgselt saigi masinaga trükkida kodeeritud, dekodeeritud ja tavalist teksti otse paberile, kuid Enigma masinat arendati edasi ning loodi uued versioonid, millest kõige olulisem variant on 1926. aastal tehtud Enigma D, mis sarnanes oma ehituse ja tööpõhimõtte poolest kõige rohkem just teise maailmasõja ajal kasutatud Enigma masinatele. Enigma D suurim erinevus võrreldes esialgse nn Handelsmaschine-ga oli tema nn lampidest ja tähtedest koosnev alus, mille tähed süttisid põlema, kui teksti kodeerida ning vastupidi ning vast kõige tähtsam erinevus oli masina kaal, mis vähenes märgatavalt, muutes masina palju paremini kaasaskantavaks. (samuti pilt Enigma D variandist) 1926. aastal hakkas Saksa sõjavägi Enigma masina vastu huvi üles näitama. Nad soovisid saada Enigma D variandi peale ehitatud spetsiaalset mudelit, mida hiljem kasutama hakata. 1932. aastaks valmis lõplikult Saksa sõjaväele nende Enigma masin nimega Enigma I ning samuti sai Saksa sõjavägi õigused otsustamaks, kellele masinat müüa ja toota tohib – enam Enigma masinaid kommertsiaalseks kasutuseks niisama müüa ei saanud.

Enigma I ehitus

Enigma I masinal, mida kasutas ennekõike Saksa sõjavägi, oli mitu erinevat komponenti. See masin koosnes kirjutusmasinale sarnasest klaviatuurist, nn pistikplaadist (ingl. k. plugboard), sisendkettast (ingl. k entry wheel), rootoritest, reflektorist, akust/patareidest ja lampidest ja tähtedest koosnevast ekraanist. Pistikplaat asub Enigma masina ees ning koosneb 26 pistikust, millest igaüks on mõeldud ühe tähe jaoks ning on üks olulisimaid muudatusi, mis tehti masinale, kui see muudeti ümber kommertsiaalsest kasutusest sõjaliseks kasutamiseks. Selle põhiline eesmärk on tähtede muutmine teisteks tähtedeks enne ja pärast seda, kui masin neid tähti rootorite abiga krüpteerima hakkab. See annab masinale tugevama krüpteerimisvõimekuse ja -tugevuse. Selleks, et pistikplaati kasutada, peab ühendama kaks tähte omavahel spetsiaalse juhtmega paari – üldjuhul kasutati kümmet tähtede ühendust.

Sisendketas asus masinas enne rootoreid ning selle ülesandeks oli pistikplaadist tulevaid juhtmeid ühendada esimese rootori ühenduskohtadega. Kommertsiaalne Enigma kasutas … (ehk pane juurde midagi siia)

Rootorid on Enigma masina krüpteerimise seisukohalt võtmerolliga. Rootoreid oli valikus 5 tükki, millest vastavakt ettekirjutustele tuli Enigma masinasse panna maaväe puhul 3 rootorit, mereväe puhul 4 rootorit, mis tagas mitmekordse tähe krüpteerimise. Rootorid on ringikujulised kettad, millel igaühel on sees keerukad elektrijuhtmete ühendused, tagamaks, et rootor krüpteeriks mingi antud tähe ära. Rootoritel on mõlemal pool ühenduskohad, mis ühendavad masinas olevad 3 rootorit omavahel. Rootoril on tähestikujärjekorras peal tähed või osadel masinatel arvud, kus 01 vastab täht „A“, 02 vastab täht „B“, 03 vastab täht „C“ jne ning nende abil sai masinat üles seadistada enne kasutama hakkamist. Rootori tähtede asetust elektrijuhtmete suhtes sai muuta.

Reflektor on Enigma masina komponent, mis asub peale 3 rootorit. Selle eesmärgiks on peegeldada läbi rootorite tulnud elektrisignaal tagasi läbi nende rootorite, mille kaudu see signaal reflektorini jõudis. Reflektor ise muudab ka tähte enne tagasi peegeldamist.

Enigma masina tööpõhimõte

Oletame, et raadiooperaator vajutab klaviatuuril tähte „T“. Enigma masinal on klaviatuurist tulnud 26 klahvi ühendatud elektrijuhtmete kaudu pistikplaadiga, mis teeb esmase tähtede segamise, muutes tähti vastavalt pistikplaadil ühendatud tähtedele, ehk kui täht „T“ on ühendatud tähega „K“, siis masin muudabki tähed sellele vastavalt. Seejärel liigub elektrisignaal sisendkettale, millel on ringikujuliselt 26 ühenduskohta, mis seovad sisendketast ja järgnevat rootorit omavahel ning signaal liigub läbi esimese rootori, muutes tähe „K“ täheks „U“. Seejärel liigub signaal veel läbi kahe järgneva rootori, tekitades tähed „P“ ja siis „H“. Järgmisena liigub signaal läbi reflektori, mis omakorda muudab tähe „H“ täheks „D“ ning seejärel liigub elektrisignaal tagasi läbi kolme rootori, muutes tähe „D“ omakorda tähtedeks „F“, „I“, „Y“ kuniks signaal jõuab tagasi pistikplaadini, mis omakorda oma ühenduste kaudu muudab tähe „Y“ täheks „J“ ning seejärel kuvatakse viimane saadud täht lampidest koosnevale ekraanile. Sellise tsükli teeb ühe tähe vajutamine iga kord masinast läbi. (pilt skeemist) Oluline on, et rootorid pole püsivas asendis, ehk iga klaviatuurinupu vajutusega mingi rootor liigub ühe koha võrra edasi, luues uut sorti ühendusteed rootorite vahel ja seeläbi segades tähti igal korral erinevalt. Parempoolne rootor liigub iga klaviatuuri vajutusega, keskmine rootor liigub siis, kui parempoolne rootor on teinud täisringi endale peale ning vasakpoolne rootor liigub omakorda kui keskmine rootor on teinud täisringi endale peale.

Enigma sõnumite edastamise protseduur

Enigma masin ise ei edastanud ühtegi sõnumit, vaid lihtsalt krüpteeris tekste. Selleks, et Enigma sõnumit saaks edastada, oli vaja kahte operaatorit, kellest üks kasutas masinat ja teine pani masinast tulnud krüpteeritud või dekrüpteeritud sõnumit kirja. Kui Enigma operaatorid olid mingi kindla sõnumi ära krüpteerinud, saadeti see krüpteeritud sõnum morse koodis teisele üksusele, kes seejärel said saadud sõnumit oma Enigma masinaga dekrüpteerima hakata. Sõnumid pandi kirja paberile viietäheliste tähtede jadana, näiteks „MKOXL DFAMU“ jne.

Kõigepealt, et Enigma masinat saaks kasutama hakata, tuli paika panna masina seadistus, kuna selleks, et sõnumivahetus erinevate raadiooperaatorite vahel toimiks, peab olema mõlemal operaatoril Enigma masin samamoodi seadistatud – ainult nii saab Enigma masinast tulnud krüpteeritud teksti dekrüpteerida. Selleks väljastas Saksa sõjavägi igal kuul masina seadistamiseks kasutatavaid koodilehti, millel olid kirjas vajalikud algandmed igaks päevaks, et masin korrektselt üles seadistada. Nendel koodilehtedel oli kirjas kuupäev, rootorite number ja õige järjestus, rootori tähtede asetus, pistikplaadi ühendused ja identifitseerimisgruppide tähed. Koodilehtedel oli päevad asetatud kasvavas järjekorras ülevalt alla, ehk päev 1 oli võige viimane rida. See oli mugavuse pärast, kuna operaator sai paremini kasutatud päeva ära lõigata.

Selleks, et identifitseerida antud päeva algandmeid, pidi operaator valima ja trükkima nõndanimetatud identifitseerimisgrupi. Identifitseerimine oli oluline selleks, et sõnumi saanud operaator saaks kindlaks määrata, mis päeva algandmeid antud sõnumi jaoks kasutati. Identifitseerimisgrupp moodustati nii, et operaator valis kaks suvalist tähte ja ühe neljast ette kirjutatud identifitseerimisgrupi tähtede kombinatsioonist, mis koosnes kolmest tähest, ning kirjutas selle esimeseks tähtede grupiks. Ehk kui identifitseerimisgruppide tähed olid koodilehele kirja pandud „QZE TRF IOU TGB“, siis oleksid sobilikud identifitseerimisgrupid näiteks „ASQZE“ või „TRFVG“. Oluline oli, et krüpteerimisel või dekrüpteerimisel ei tohtinud neid esimesi viite tähte masinasse trükkida, muidu oleks tekst vale tulnud. Sakslastel oli reegel, et enne sõnumi krüpteerimist tuleb igal Enigma masina operaatoril valida oma salajane sõnumi võti ehk masina rootorite algasend ning igal sõnumil pidi olema just talle vastav sõnumi võti. Selleks valis ta suvalised kolm tähte ja suvalise sõnumi võtme. Näiteks valis operaator EHZ ja XWB. Seejärel seadistab operaator masina vastavalt koodilehele ning seab rootorite algasendiks EHZ ning trükib sisse sõnumi koodi, saades krüpteerituna TBS. Operaator seadistab masina oma valitud sõnumi koodi järgi, ehk XWB järgi ning nüüd saab hakata sõnumit krüpteerima. Lõpuks pannakse kirja esialgne algasend EHZ, siis krüpteeritud sõnumi kood TBS, siis viietäheline identifitseerimisgrupp näiteks TVEXS ja seejärel sõnum, mida edastada soovitakse, krüpteerituna. Enigma masina lahti murdmine

Midagi toredat