jobbra|bélyegkép|Három rotorból álló sorozat egy Enigma gépből, amelyet Németország használt a második világháború alatt bélyegkép|Egy Enigma gép rotorjának robbantott nézete: 1-Rovátkolt gyűrű, 2-Az "A" érintkező pozícióját jelző pont, 3-Ábécé "abroncs" vagy gyűrű, 4-Elektromos lemez érintkezők, 5-Vezetékcsatlakozók, 6-Rugós csapérintkezők, 7-Rugós gyűrűállító csap, 8-kerékagy, amelyen keresztül a központi tengely illeszkedik, 9-Fogazott tárcsa, 10-Racsnis mechanizmus A kriptográfiában a rotorgép egy elektromechanikus folyamrejtjelező eszköz, amelyet üzenetek titkosítására és visszafejtésére használnak. A rotorgépek a 20. század nagy részében a legmodernebb kriptográfiai eszközöket képviselték; az 1920-as évektől az 1970-es évekig széles körben használták őket. A leghíresebb példa a német Enigma gép, amelynek kimenetét a szövetségesek a második világháború során megfejtették, és az így nyert információknak az Ultra kódnevet adták.
Leírás A rotorgép elsődleges alkotóeleme egy rotorkészlet, más néven kerekek vagy dobok, amelyek forgó tárcsák, mindkét oldalon elektromos érintkezőcsoporttal. Az érintkezők közötti vezetékezés egy rögzített betűhelyettesítést valósít meg, valamilyen összetett módon felcserélve azokat. Önmagában ez kevés biztonságot nyújtana, azonban minden egyes betű titkosítása előtt vagy után a rotorok egy-egy pozíciót előrelépnek, ezzel megváltoztatva a helyettesítést. Ily módon a rotorgép egy összetett polialfabetikus helyettesítési titkosítást hoz létre, amely minden billentyűlenyomással változik.
Háttér bélyegkép|40-pontos rotorok Tatjana van Vark által készített gépről A klasszikus kriptográfiában az egyik legkorábbi titkosítási módszer az egyszerű helyettesítési rejtjel volt, ahol az üzenetben lévő betűket szisztematikusan felcserélték valamilyen titkos séma segítségével. A monoalfabetikus helyettesítési rejtjelek csak egyetlen helyettesítési sémát használtak — néha „ábécének” nevezték; ezt könnyen fel lehetett törni például gyakorisági elemzéssel. Valamivel biztonságosabbak voltak a több ábécét használó eljárások, a polialfabetikus rejtjelek. Mivel ezeket a sémákat kézzel alkották meg, csak maroknyi különböző ábécét lehetett használni; bármi bonyolultabb nem lett volna praktikus. Azonban csak néhány ábécé használata sebezhetővé tette a rejtjeleket a támadásokkal szemben. A rotorgépek feltalálása gépesítette a polialfabetikus titkosítást, praktikus módot kínálva sokkal nagyobb számú ábécé használatára.
A legkorábbi kriptoanalitikus technika a frekvenciaanalízis volt, amelyben minden nyelvre egyedi betűmintákat lehetett felhasználni arra, hogy információkat szerezzünk a monoalfabetikus helyettesítési titkosításban használt helyettesítési ábécéről/ábécékről. Például az angolban az E, T, A, O, I, N és S sima szöveges betűk általában könnyen azonosíthatók a titkosított szövegben, mivel nagyon gyakoriak, a megfelelő titkosított szöveges betűik is ugyanolyan gyakoriak. Ezenkívül a bigram kombinációk, mint az NG, ST és mások is nagyon gyakoriak, míg mások valóban ritkák (például a Q után bármi más, mint az U). A legegyszerűbb gyakorisági elemzés azon alapul, hogy a titkosított szövegben egy sima szöveges betűt mindig egy titkosított szöveges betűvel helyettesítenek: ha ez nem így van, az üzenet megfejtése nehezebb. A kriptográfusok éveken át próbálták elrejteni az árulkodó gyakoriságokat azáltal, hogy a gyakori betűkhöz több különböző helyettesítést használtak, de ez a technika sem volt képes teljesen elfedni a nyílt szöveg betűinek helyettesítési mintázatait. Az ilyen sémákat a 16. századra széles körben feltörték.
A 15. század közepén Alberti egy új technikát talált fel, amelyet ma általában polialfabetikus rejtjelekként ismerünk, és amely felismerte egynél több helyettesítő ábécé használatának előnyét; emellett egy egyszerű technikát is feltalált több helyettesítési minta „létrehozására” egy üzenetben való felhasználáshoz.: 125-130 Két fél kis mennyiségű információt (ezt kulcsnak nevezzük) cserélt ki, és ezt számos helyettesítő ábécé létrehozására használta fel, valamint minden egyes egyszerű szöveges betűhöz annyi különböző helyettesítést, hogy egyetlen egyszerű szöveg során minden egyes betűhöz annyi különböző helyettesítést lehessen létrehozni. Az ötlet egyszerű és hatékony, de a használata nehezebbnek bizonyult, mint azt várni lehetett volna. Sok rejtjel csak Alberti rejtjelének részleges megvalósítása volt, ezért könnyebb volt feltörni, mint amennyire lehetett volna (pl. a Vigenère-rejtjel).
Egészen az 1840-es évekig (Babbage) nem ismertek olyan technikát, amellyel megbízhatóan fel lehetett volna törni a polialfabetikus rejtjelek bármelyikét.Technikája ismétlődő mintákat is keresett a titkosított szövegben, amelyek nyomokat adnak a kulcs hosszára vonatkozóan. Amint ez ismertté válik, az üzenet lényegében üzenetek sorozatává válik, amelyek mindegyike a kulcs hosszával megegyező hosszúságú, és amelyekre normál frekvenciaanalízis alkalmazható. Charles Babbage, Friedrich Kasiski és William F. Friedman azok közé tartozik, akik a legtöbbet tették ezen technikák fejlesztéséért.
A rejtjeltervezők megpróbálták rávenni a felhasználókat, hogy minden betűhöz más helyettesítést használjanak, de ez általában egy nagyon hosszú kulcsot jelentett, ami több szempontból is problémát jelentett. A hosszú kulcsok (biztonságos) eljuttatása a rászoruló felekhez hosszabb időt vesz igénybe, így a kulcsmegosztás során nagyobb a hibák valószínűsége. Emellett sok felhasználónak nincs türelme hosszadalmas, betűpontos fejlesztéseket végrehajtani, és mindenképpen nem idő hiánya vagy csatatéri stressz alatt. Az ilyen típusú „végső” rejtjel az lenne, amelyben egy ilyen „hosszú” kulcs egy egyszerű mintából generálható (ideális esetben automatikusan),egy olyan rejtjelezést eredményezve, amelyben olyan sok helyettesítő ábécé található, hogy a gyakoriságelemzés és a statisztikai alapú támadások gyakorlatilag lehetetlenné válnának. Az Enigma és általában a rotoros gépek éppen azt nyújtották, amire szükség volt, mivel komoly polialfabetikus védelmet biztosítottak – a nyílt szöveg minden egyes betűjéhez más-más helyettesítő ábécét használva –, ráadásul automatikus működésűek voltak, így semmilyen rendkívüli képességet nem követeltek meg a felhasználóiktól. Üzeneteiket általában sokkal nehezebb volt feltörni, mint bármely korábbi rejtjelt.
Gépiesítés Egyszerű helyettesítést végző gépet könnyű létrehozni. Egy 26 kapcsolóból és 26 izzóból álló elektromos rendszerben bármelyik kapcsoló megvilágít egy izzót. Ha minden kapcsolót egy írógépen lévő billentyűvel lehet működtetni, és az izzók betűkkel vannak jelölve, akkor egy ilyen rendszer titkosításra használható a billentyűk és az izzó közötti vezetékek kiválasztásával: például az „A” betű lenyomásakor a „Q” jelzésű lámpa gyulladna meg. Ez a bekötés azonban rögzített, így csekély biztonságot nyújt.
A rotoros gépek minden billentyűleütéssel megváltoztatják az összekötő vezetékeket. A vezetékeket egy rotor belsejében helyezik el, majd minden betűleütéskor egy fogaskerékkel elforgatják. Így míg az „A” betű első lenyomásakor egy „Q” betű generálódhat, a következő alkalommal már egy „J” keletkezhet. A billentyűzeten lenyomott minden egyes betű lépteti a rotor pozícióját, ami új helyettesítést eredményez, megvalósítva ezzel egy polialfabetikus helyettesítő rejtjelet.
A rotor méretétől függően ez vagy nagyobb biztonságot nyújt a kézi rejtjeleknél, vagy nem. Ha a rotoron csak 26 pozíció van, minden betűhöz egy, akkor minden üzenetnek egy (ismétlődő) kulcsa lesz 26 betű hosszan. Bár maga a kulcs (amely többnyire a rotor vezetékeiben rejtőzik) nem feltétlenül ismert, az ilyen típusú rejtjelek támadásának módszerei nem igénylik ezt az információt. Tehát, bár egy ilyen egyetlen rotoros gép kétségtelenül könnyen használható, nem biztonságosabb, mint bármely más részleges polialfabetikus rejtjelrendszer.
De ez könnyen korrigálható. Egyszerűen helyezz el több rotort egymás mellé, és kapcsold őket össze. Miután az első rotor "teljesen" elfordult, forgasd meg egy pozícióval a mellette lévő rotort is. Most 26 × 26 = 676 betűt kellene begépelned (a latin ábécé szerint), mielőtt a kulcs ismétlődne, és mégis csak egy két betűből/számból álló kulcsot kell megadnod a beállításhoz. Ha egy 676 hosszú kulcs nem elég hosszú, hozzáadhatsz egy másik rotort, ami 17 576 betű hosszú periódust eredményez.
Annak érdekében, hogy a megfejtés ugyanolyan egyszerű legyen, mint a titkosítás, néhány rotorgép, nevezetesen az Enigma gép, szimmetrikus kulcsú algoritmust alkalmazott, azaz a kétszeri titkosítás ugyanazokkal a beállításokkal visszaállítja az eredeti üzenetet (lásd involúció).
Történelem
Találmány A rotorgép koncepciója számos feltalálónak jutott eszébe egymástól függetlenül, hasonló időben.
2003-ban kiderült, hogy az első feltalálók két holland tengerésztiszt, Theo A. van Hengel (1875–1939) és RPC Spengler (1875–1955) voltak 1915-ben. Korábban a találmányt négy, egymástól függetlenül és nagyjából egy időben dolgozó feltalálónak tulajdonították: Edward Hebernnek, Arvid Dammnak, Hugo Kochnak és Arthur Scherbiusnak.
Az Egyesült Államokban Edward Hugh Hebern 1917-ben épített egy egyetlen rotorral működő rotoros gépet. Meggyőződése volt, hogy meggazdagodhat egy ilyen rendszer, a Hebern Rotor Machine eladásából a hadseregnek, és számos különböző gépet gyártott egytől öt rotorig. Sikere azonban korlátozott volt, és az 1920-as években csődbe ment. 1931-ben kis számú gépet adott el az amerikai haditengerészetnek.
Hebern gépeiben a rotorok néhány perc alatt felnyithatók és a vezetékek cserélhetők voltak, így egyetlen tömeggyártott rendszert lehetett eladni számos felhasználónak, akik aztán elkészítették a saját rotorkulcsukat. A dekódolás abból állt, hogy kivették a rotor(oka)t, és megfordították őket, hogy megfordítsák az áramkört. Hebern tudta nélkül William F. Friedman, az amerikai hadsereg SIS-ének tagja azonnal rámutatott a rendszer egy olyan hibájára, amely lehetővé tette az ebből és a hasonló tervezési jellemzőkkel rendelkező bármely más gépből származó rejtjelek feltörését elegendő munka befektetésével.
Egy másik korai rotorgép feltalálója a holland Hugo Koch volt, aki 1919-ben szabadalmat nyújtott be egy rotorgépre. Körülbelül ugyanebben az időben Svédországban Arvid Gerhard Damm feltalált és szabadalmaztatott egy másik rotortervet. A rotorgépet azonban végül Arthur Scherbius tette híressé, aki 1918-ban szabadalmat nyújtott be egy rotorgépre. Scherbius később megtervezte és forgalomba hozta az Enigma gépet.
Az Enigma gép jobbra|bélyegkép|Egy német Enigma gép A legismertebb rotoros rejtjelező eszköz a második világháború alatt használt német Enigma gép, amelynek számos változata létezett.
Az alap Enigma modell, az Enigma I, három rotort használt. A rotorok sorának végén egy további, nem forgó korong, a „reflektor” volt, amelyet úgy kötöttek be, hogy a bemenet elektromosan visszacsatlakozott egy másik érintkezőhöz ugyanazon az oldalon, és így a háromrotoros soron keresztül „visszaverődött”, így létrehozva a titkosított szöveget.
Amikor az áramot a legtöbb más rotoros rejtjelező gépbe vezették, az áthaladt a rotorokon, majd a másik oldalon kijutott a lámpákhoz. Az Enigmában azonban „visszaverődött” a tárcsákon keresztül, mielőtt a lámpákhoz elért volna. Ennek az volt az előnye, hogy az üzenet megfejtéséhez semmit sem kellett változtatni a beállításon; a gép "szimmetrikus" volt.
Az Enigma fordítása garantálta, hogy egyetlen betűt sem lehetett önmagaként megfejteni, így egy A soha nem alakulhatott vissza A-vá. Ez segítette a lengyel, majd később a brit erőfeszítéseket a rejtjel megfejtésére.