Õppetund
Teooria — Ühekordne šifriplokk: korra murdmatu, kahel korral murtav
Ühekordne šifriplokk seob sõnumi iga märgi juhuslikult valitud võtmemärgiga, mida kasutatakse vaid selle ainsa märgi jaoks ja mitte kunagi uuesti. Siin rakendatakse baithaaval bitikaupa välistavat või-tehet: C = P ⊕ K, ning dekrüpteerimine on täpselt sama tehe: P = C ⊕ K. Kui juhuslik võti on sama pikk kui sõnum, tagab šiffer täiusliku salastuse: krüptogrammi nägemine ei anna vähimatki teavet selle kohta, milline sõnum tegelikult saadeti. Kui aga sama võtit kasutatakse kahel sõnumil, taandub võti välja: C₁ ⊕ C₂ = P₁ ⊕ P₂. Meetod nimega spikri libistamine liigutab arvatavat sõna w piki seda tulemust: kus iganes üks sõnum sisaldabki sõna w, seal annab w ⊕ C₁ ⊕ C₂ teise sõnumi teksti.
Mida iga sümbol tähendab
P- sõnum, üks bait märgi kohta
K- võti: juhuslikud baidid, täpselt sama palju kui sõnumis märke
C- krüptogramm, P ⊕ K
⊕- välistav või: tulemuse iga bitt on 1 seal, kus kaks vastavat bitti erinevad
w- spikker: sõna, mida oletatakse leiduvat ühes sõnumitest
- Eeldab
- Sõnumid koosnevad väiketähtedest ja tühikutest, mis on salvestatud ASCII-baitidena. Võtmebaidid pärinevad juhuarvugeneraatorist, mille seemneks on 32-bitine arv. Seetõttu suudab veebileht luua vaid 232 ≈ 4,3 × 109 võtit; alates seitsmest märgist on see juba vähem kui võimalikke sõnumeid, mistõttu pole lehe enda šifriplokk Shannoni kriteeriumi järgi täiuslikult salastatud. Ehtne šifriplokk nõuab baite, mida mitte keegi ei saa uuesti genereerida. Katke „meenutab teksti“, kui selle iga bait on täht või tühik ning iga kolmetäheline lõik esineb Edgar Allan Poe jutu „Kuldmardikas“ (1843) kahes esimeses kolmandikus; mõõdetud paarid pärinevad teose viimasest kolmandikust. Tähtede liitmisele mooduli 26 järgi eelistatakse XOR-tehet seetõttu, et XOR-il puudub märk: saadav katke on täpselt sama sõltumata sellest, kummas sõnumis spikker asub.
Ülesanne täielikult lahendatud
-
Viis tähte kahest sama võtit jaganud sõnumist 4 sammu
Kaks 50 märgi pikkust sõnumit saadeti välja ühe ja sama ühekordse šifriplokiga. Positsioonidel 32 kuni 36 on C₁ ⊕ C₂ kuueteistkümnendsüsteemis 54 06 09 0c 4e. Oletame, et ühes sõnumis asub seal „ the “ ehk baidid 20 74 68 65 20. Mida ütleb teine sõnum neis viies kohas? Kui see oletus peab paika 2. sõnumi kohta, mille krüptogramm on seal 9d 8e 23 40 9e, siis millised on need viis võtmebaiti? Vajuta seejärel nuppu Näidisülesanne ja tee lehel järgmine samm.
-
Kirjuta esimene paar kahendsüsteemis: 0x54 on 01010100 ja tühik 0x20 on 00100000. XOR annab tulemuseks 1 seal, kus need kaks bitti erinevad; saame 01110100, mis on 0x74 ehk täht t. Baidi 0x54 bitt 0x40 oli juba enne igasugust oletust reetnud, et ühes sõnumis asub positsioonil 32 tühik.
-
Ülejäänud neli: 0x06 ⊕ 0x74 = 0x72, r; 0x09 ⊕ 0x68 = 0x61, a; 0x0c ⊕ 0x65 = 0x69, i; 0x4e ⊕ 0x20 = 0x6e, n. Teises sõnumis seisab seega „train“ ning selle kõik kolm kolmikut, „tra“, „rai“ ja „ain“, esinevad etalonteksis.
-
Kui „ the “ kuulub 2. sõnumisse, on võtmeks C₂ ⊕ P₂: 0x9d ⊕ 0x20 = 0xbd, 0x8e ⊕ 0x74 = 0xfa, 0x23 ⊕ 0x68 = 0x4b, 0x40 ⊕ 0x65 = 0x25, 0x9e ⊕ 0x20 = 0xbe. Kui oletus oleks käinud hoopis 1. sõnumi kohta, seisaks 2. sõnumis „train“ ning võtmebaidid tuleksid tehtest C₁ ⊕ „ the “. Tulemus C₁ ⊕ C₂ on mõlemal juhul täpselt sama, mistõttu aritmeetika abil pole võimalik kindlaks teha, kumb variant on õige.
-
Lehel on „ the “ kinnitatud 2. sõnumisse positsioonil 32 ning spikrikastis seisab positsioonil 31 „ train “ — oletus, et 1. sõnumi „train“ on omaette sõna. 2. sõnumi vasteks tuleb „y the r“: tähed ja tühikud, kus iga kolmik on etalonteksis juba kohatud. Kui kinnitada see 1. sõnumisse, pikenevad mõlemad read seitsme märgini.
Vastus
„train“, ning võtmebaidid bd fa 4b 25 be, kui oletus kuulus 2. sõnumile. Tehtes C₁ ⊕ C₂ ei reeda miski, kummas sõnumis asub „ the “, ega hakkagi iial reedama: vaheta need kaks sõnumit tervenisti omavahel ja C₁ ⊕ C₂ jääb täpselt samaks. Järgmine oletus määrab üksnes selle, millised katked kuuluvad samasse sõnumisse. Kuna veebilehele sisestati mõlemad sõnumid, loendab see ka õigesti taastatud märkide arvu. Pealtkuulajal on seevastu ees vaid kaks rida ning otsustus, kas loetav tekst annab mõtte välja.
-
Õpitee
Kuidas koode murtakse
Allikad (2)
- The first insight's perfect secrecy and its cost in keys, and the Vigenère link: C. E. Shannon, "Communication Theory of Secrecy Systems," Bell System Technical Journal 28(4), pp. 656–715, October 1949. §10 "Perfect Secrecy", Theorem 6 (pp. 679–682).
- The second insight's Venona history: the additive key, the duplicate pages, Gardner's first message: "VENONA: An Overview," Cryptologic Almanac 50th Anniversary Series, Center for Cryptologic History, National Security Agency. DOCID 3575728, approved for release 2009.