Enigma (mašina)

Enigma je ime njemačkih mašina koje su se koristile za šifriranje i dešifriranje poruka za vojne i diplomatske svrhe u Drugom svjetskom ratu.

Prvi primjerci su se pojavili u 1920-im godinama kao mašina za šifriranje poslovnih i poruka koje su se prenosile preko telegrafa.
Naime njemačko preduzeće Scherbius&Ritter je 1918 na tržištu nudilo dva modela (civilna i vojna namjena) Enigme.Simon Singh, GEHEIME BOTSCHAFTEN - Die Kunst der Verschlüsselung von der Antike bis in die Zeiten des Internet,Carl Hanser Verlag, München 1999  njem.
Nedugo poslije Enigma je našla primjenu u njemačkoj vojsci i diplomaciji, a izbijanjem Drugog svjetskog rata Enigma je postala standardna oprema svih vojnih jedinica za vezu.

Njemačka vojska je u Drugom Svjetskom ratu posjedovala oko 200.000 ovih mašina Enigma u njemačkom historijskom muzeju u Minhenu  učitano 15.01.2014 njem.

 Izgled enigme 
Svojim izgledom enigma podsjeća na poveću pisaću mašinu. Ima tastaturu od 26 slova s prednje strane, a iznad tastature nalazi se 26 sijalica. Svaka od tih sijalica predstavlja jedno od 26 izlaznih slova. Vojna verzija je imala štampač umjesto sijalica, zbog čega je bila imala i visoku cijenu koja bi u današnje vrijeme iznosila 25000 evra.

 Funkcionalnost 
Enigma je elektromehanička mašina koja je koristila principe spojenih rotora i razvodne ploče. Svrha engime bila je šifrirati informaciju tj. prikazati je na način nerazumljiv neovlaštenim osobama.

Tekst se unosi preko tastature, a izlaz se dobija preko sijalica. Između tastature i sijalica nalazi se glavni mehanizam, jezgra mašine. Jezgru mašine čine rotori. Rotori imaju više funkcija:

moraju osigurati preslikavanje znakova;
moraju rotirati;

Rad enigme zasniva se na supstituciji znakova. Dva poznata načina šifriranja koja koriste supstituciju, a čine osnovu za razumijevanje rada Enigme su: aritmetička supstitucija i mapirajuća supstitucija. Enigma u svom radu koristi oba navedena algoritma.

 Aritmetička supstitucija 
Za zadanu ulaznu abecedu A ovisno o nekom broju n vrši preslikavanja na način da pomiče ulaznu abecedu u desno za n mjesta, pa na taj način dobijamo šifriranu abecedu. Npr. ukoliko imamo neku riječ iz abecede A i želimo je šifrirati "ključem" n, onda ćemo šifriranu riječ abecede B dobiti tako što svako slovo te riječi zamijenimo slovom iz abecede B, a dešifriranje se vrši obrnutim redoslijedom.

Primjer:Ulazna abeceda A={a,b,c,d,e}, broj n=3, pa je prema tome abeceda B={d,e,a,b,c}. Ako je zadan ulazni tekst "deda", onda je izlazni tekst "bcbd" Mapirajuća supstitucija 
Mapirajuća supstitucija ne upotrebljava nikakve pomake. Fiksno je određeno gdje se koji znak preslikava, tj.svakom znaku X pridružen je odgovarajući znak Y na temelju tablice preslikavanja.

ULAZABCDEIZLAZBEACD

Pa je za ulazni niz "abba" izlaz: "beeb".

Oba algoritma unose slabu mjeru sigurnosti. Iskusnija osoba koja se bavi razbijanjem šifri ne bi imala nekih većih problema da ih otkrije pojedinačno.

mini|lijevo|250p|Dijagram ožičenja Enigme pokazuje tok rada prilikom pritiskanja tipke 'A' koja je zakodirana u sijalicu 'D'
desno|mininail|200p|Prikaz Enigminih rotora i reflektora.

Primjer: slovo A šifrira se različito u dva uzastopna šifriranja, prvi put u slovo G, a drugi put u C.
 Princip rada 
Rotori su poput nekakvih prospojnih ploča sa 26 ulaza te istim brojem izlaza. Svako dugme na tastaturi povezano je s rotorom pomoću kabla. Ulazi na rotoru primaju ulazno slovo, a kao izlaz daju njemu pridruženo izlazno slovo dobiveno pomoću tablice preslikavanja. Sve u svemu zasada ovo predstavlja nizak stepen zaštite, jer obavljeno je samo jedno preslikavanje. Stoga je izlaz prvog rotora spojen na ulaz drugog rotora, a izlaz drugog rotora na ulaz trećeg rotora. Čak i ovakav poveći broj preslikavanja nije toliko otporan, jer je problem vezan uz frekvenciju pojavljivanja određenih znakova i dalje prisutan.

Sljedeću komponentu čini jedan poseban rotor, poznat kao reflektor. Naime za razliku od prethodna 3 rotora koja vrše asimetrična preslikavanja, reflektor je simetrični rotor što konkretno znači da za svako slovo za koje važi A -> B, onda važi i B -> A''. To znači da je algoritam za šifriranje i dešifriranje isti. Razlika između reflektora i 3 prije spomenuta rotora je da reflektor ne rotira.

PlugBoard predstavlja još jednu komponentu engime. Ona obavlja simetrično preslikavanje i to cijelog ulaznog alfabeta ili samo jednog dijela u pripadni mu izlaz(slično reflektoru). Nalazi se prije prvog rotora, a ni on kao ni reflektor ne rotira.

Ni to nije sve. Nakon što je ulaz doživio 4 preslikavanja sada ponovo prolazi kroz prva tri rotora počevši od trećeg ka prvom. Sijalica koja svijetli predstavlja šifriran ulazni znak. Slovo je šifrirano i prvi rotor rotira.

Rotiranje predstavlja promjenu tablice preslikavanja, a šta to znači vidi se u tablici:

ULAZABCPRIJE ROT.DGHPOSLIJE ROT.GHD

Iz tablice proizlazi da je slovo A prije rotiranja bilo predstavljeno kao D, a nakon rotiranja kao G. Nema više jednoznačnog preslikavanja. Sada bilo koje slovo može biti zapisano kao više različitih slova što predstavlja znatan napredak.

Postupak šifriranja se nastavlja dalje tako da za prvih 26 slova rotira samo prvi rotor, a zatim ovisno o rednom broju slova kojeg unosimo rotiraju : 
prvi i drugi zajedno (u slučaju kada početna tablica preslikavanja prvog rotora treba postati njegova nova tablica preslikavanja);
samo drugi (redni broj znaka veći od 26, a manji od 52);
drugi i treći (isto kao prvi i drugi);
samo treći (redni broj znaka veći od 52, a manji od 76);
treći i prvi (kada početna tablica preslikavanja trećeg rotora treba postati njegova nova tablica preslikavanja).

Za ostale znakove postupak se rekurzivno nastavlja.

desno|mininail|320p|Šifrarnik za Enigmu otet od Nijemaca prilikom zarobljavanja podmornice U-505
 Šifriranje Enigmom u 2. svjetskom ratu 
Kako će izlaz izgledati ne zavisi samo o slovu o kojem se radi već i o poziciji slova u ulaznom nizu. Osim toga važnu ulogu ima i početna konfiguracija rotora (koju određuje početno slovo).

Nijemci su se prilikom komuniciranja koristili unaprijed definiranim ključevima. Naravno ključevi su se mijenjali ovisno o vremenu kada je poruka trebala biti poslana. Da bi otežali posao saveznicima Nijemci su imali kolekciju od 8 rotora od kojih su koristili obično 3 ili 4. Za komunikaciju između Vrhovnog štaba i generala na frontu postojala je posebna verzija s tzv. Lorencovom šifrom.

Prije no što bi poslali pravu poruku prvo bi šifrirali ključ rotora i popis rotora. Ključ rotora predstavlja početna slova tri rotora koja određuje konfiguraciju rotora, dok popis rotora govori koje rotore upotrijebiti. Takva poruka se šifrira ključem važećim za taj dan(ključ određen dogovorom već prije). Zatim se šifrira glavna poruka koristeći prije šifriran ključ rotora, te koristeći rotore dane u popisu rotora. Nakon što druga strana primi poruku prvo će dešifrirati prvi dio pomoću dogovorenog ključa za taj dan, a zatim kada otkrije pravi ključ dešifrirati će i glavnu poruku.
Naravno uz neke postavke, ne baš pogodno odabrane moguće je da enigma i ne pruži pravu zaštitu.
Rotori su ključ svega. 
Poljaci su razbili šifru Enigme još 1932. godine, kada je kodiranje ovih mašina bilo još u fazi ispitivanja u njemačkoj vojsci. Međutim, kada su Poljaci uspješno dešifrovali Enigmu, Nijemci su počeli mijenjati šifre samo jednom svakih nekoliko mjeseci. Pred sam početak Drugog svjetskog rata, šifra je bila mijenjana barem jednom dnevno, dajući 159 miliona triliona mogućih postavki koje su se mogle izabrati. Poljaci su odlučili dostaviti britanskoj obavještajnoj službi (kojima je bila potrebna pomoć u dešifrovanju Enigme) svoje podatke o uspješnom dešifrovanju Enigme u julu 1939. godine, zbog neminovnog nacističkog napada na Poljsku.
Nakon što su se saveznici dokopali par enigmi te prikupili sve rotore, sve je bilo pitanje vremena. Ključnu ulogu u razbijanju šifre imao je britanski matematičar Alan Turing.

 Također pogledajte 
Enkripcija
Kriptografija
Kriptologija

Reference

 Vanjski linkovi 
Enigma sa simulatorima
Slike Enigme
Detaljne fotografije različitih modela Enigme i dijelova

Kategorija:Drugi svjetski rat
Kategorija:Kriptografija