Õppetund
Teooria — Diffie–Hellman: avalikult kokku lepitud saladus
Diffie–Hellmani võtmevahetuses lepivad kaks osapoolt salajases arvus kokku kõigile loetavas kanalis. Avalikult lepitakse kokku algarv p ja alus g. Kumbki valib salajase astendaja, avaldab arvu g selles astmes mod p ning astendab teise avaldatud arvu oma salajase astendajaga: (gᵇ)ᵃ = (gᵃ)ᵇ = gᵃᵇ mod p. Selle lahtimurdmine nõuab diskreetse logaritmi leidmist: kui on antud A = gᵃ mod p, tuleb leida selline x, et gˣ ≡ A (mod p). Diffie ja Hellman märkisid 1976. aastal, et nemad ei näe võimalust tuletada ühissaladust avalikest arvudest ilma logaritmita, ent neil puudus ka tõestus, et seda teha ei saa. Elemendi g järk on vähim selline n ≥ 1, mille korral gⁿ ≡ 1 (mod p); g on generaator, kui tema järk on p − 1.
Mida iga sümbol tähendab
p- avalik algarvuline moodul
g- avalik alus
a, b- Alice'i ja Bobi salajased astendajad
A, B- nende avalikud arvud gᵃ mod p ja gᵇ mod p
x- Eve'i leitud astendaja; sobib iga x, mille korral gˣ ≡ A, seega saab ta teada väärtuse a modulo elemendi g järk
ord(g)- elemendi g järk: mitu eri väärtust saab ühissaladus võtta
- Eeldab
- p on algarv vahemikus 5 kuni 1999, g on mis tahes alus vahemikus 2 kuni p − 2 ning a ja b jäävad vahemikku 1 kuni p − 2. Üks katse tähendab arvutatud astme ühtainsat võrdlust sihtväärtusega; mõlemad loendurid võtavad arvesse ka õnnestunud katse. Iga Pohlig–Hellmani number leitakse kandidaate järjest läbi proovides, täpselt nii, nagu autorid seda väikese teguri puhul kirjeldasid; suure teguri jaoks pakuvad nad ka mälu ja aega tasakaalustavat otsingut, mida siinsel lehel ei kasutata. Diffie ja Hellmani algne näide kasutas umbes 200-bitist algarvu, mille puhul hindasid nad logaritmi leidmise keerukuseks ligikaudu 2¹⁰⁰ tehet.
Ülesanne täielikult lahendatud
-
Alice'i saladuse leidmine, kui p = 101 5 sammu
Alice ja Bob kasutavad arve p = 101 ja g = 2. Eve näeb arve A = 12 ja B = 53. Leia Pohlig–Hellmani algoritmiga selline x, et 2ˣ ≡ 12 (mod 101), loenda katsed ja leia leitud x abil ühissaladus. Seejärel hinda sama ründe maksumust algarvu p = 65 537 korral.
-
100 = 2² · 5², seega määravad arvu x jäägid x mod 4 ja x mod 25. Arvu 2 järk jagab arvu 100 ning kuna 2⁵⁰ = 100 ja 2²⁰ = 95 erinevad mõlemad arvust 1, on järk 100 ise: 2 on generaator.
-
Modulo 4 on γ = 2⁵⁰ = 100 ≡ −1. Esimene kahendnumber: 12⁵⁰ = 100, seega d = 1 teisel katsel. Eemaldame selle: 12 · 2⁻¹ = 12 · 51 = 612 ≡ 6 ning 6²⁵ = 100, mistõttu ka järgmine number on 1, taas teisel katsel. Saame x ≡ 1 + 1 · 2 = 3 (mod 4).
-
Modulo 25 on γ = 2²⁰ = 95, mille astmed on 1, 95, 36, 87, 84. Esimene 5-süsteemi number: 12²⁰ = 95, seega d = 1 teisel katsel. Eemaldame selle: 6⁴ = 1296 ≡ 84, seega järgmine number on 4, mis leitakse viiendal katsel. Saame x ≡ 1 + 4 · 5 = 21 (mod 25).
-
Arvudest alla 100 annavad 21 mod 25 väärtused 21, 46, 71 ja 96, millest vaid 71 on 3 mod 4. Seega x = 71 pärast 2 + 2 + 2 + 5 = 11 katset, kusjuures halvim juht oleks 2·2 + 2·5 = 14. Toorjõud oleks proovinud väärtusi 0 kuni 71 ehk teinud 72 katset. Ühissaladuseks on 53⁷¹ mod 101 = 35.
-
65 537 = 2¹⁶ + 1 on algarv ning p − 1 = 2¹⁶. Pohlig–Hellman võtab selle kuusteist kahendkohta ette ükshaaval, kummaski kaks kandidaati: halvimal juhul 32 katset, samas kui toorjõud võiks vajada 65 536 katset. Pohlig ja Hellman analüüsisid just seda juhtu, p = 2ⁿ + 1, enne üldise lahenduseni jõudmist.
Vastus
x = 71 pärast 11 katset (halvimal juhul 14) ning ühissaladus on 35. Mooduli p = 65 537 korral vajab rünnak kõige rohkem 32 katset. Siinne tööriist toetab arve kuni 1999, mistõttu on see tulemus puhtalt arvutuslik, mitte läbi mängitud simulatsioon.
-
Õpitee
Kuidas koode murtakse
Allikad (2)
- The exchange itself, the definition's sentence that its authors could see no way round a logarithm and had no proof, and the 200-bit example in `assumes`: Whitfield Diffie and Martin E. Hellman, "New Directions in Cryptography," IEEE Transactions on Information Theory 22(6), 644–654, November 1976. §III, p. 649.
- The second insight's quotation, the digit-by-digit search the page runs, and the worked problem's p = 2ⁿ + 1: Stephen C. Pohlig and Martin E. Hellman, "An Improved Algorithm for Computing Logarithms over GF(p) and Its Cryptographic Significance," IEEE Transactions on Information Theory 24(1), 106–110, January 1978. §III–IV, pp. 107–110.