Tweede Huiswerk Security

advertisement
Tweede Huiswerk Security
26 of 28 oktober, 11.00, Nabespreken op Werkcollege.
Kijk het huiswerk van je collega’s na en schrijf de namen van de nakijkers linksboven en het
totaalcijfer rechts onder de namen van de makers. Bespreek het werk met de makers op het
werkcollege van 26 of 28 oktober en geef het huiswerk dan aan de assistenten.
Cijfer: Te halen 16.5 pt (excl. bonus), resultaat is totaal gedeeld door 1.6 (max. 10).
1. Inverse: Bepaal met behulp van het algoritme van Euclides een oplossing voor:
(a) 38x + 43y = 1
(b) 43x + 5y = 3
(c) 112x + 60y + 32z = 33
Bepaal met behulp van het algoritme van Euclides de inverse voor:
(I) 38 in Z43
(II) 86 in Z264
(III) 52006 in Z104729
Oplossing: (a-c) Er zijn meerdere antwoorden mogelijk. Bepaal steeds de GGD van de
coefficiënten, bij (a) is dit 1 en krijg je uit Extended Euclides dus gelijk een oplossing. Bij
(b) is de GGD ook 1, dus EE geeft oplossingen voor 43 + 5y = 1 - doe die oplossingen
keer 3 om de oplossingen van 43x + 5y = 3 te krijgen. Bij (c) moet je twee keer Euclides
toepassen: bepaal eerst de GGD van éń paar getallen, en neem dan de GGD van die GGD
en de overgebleven coefficiënt.
Goede oplossingen zijn bv: (a) x = 17, y = −15, (b) x = 6, y = −51, (c) is onoplosbaar
want alle getallen links zijn even, rhs is oneven.
(I-III) Bepaal steeds via Extended Euclides wanneer geldt dat een lineare combinatie van
het getal en de modulo gelijk is aan 1. Bepaal aan de hand hiervan de inverse. Voor (I) is
dit 17, merk op dat dit overeenkomt met de 17 uit vraag (a). Voor (II) is de GGD groter
dan 1, dus is er geen inverse. Voor (III) is de inverse 86909.
Beoordeling: 0.5pt per vergelijking. Totaal 3pt.
2. Elgamal: Elgamal encryptie werkt met een generator g van Zp .
(a) Waarom zou je willen dat g een generator is?
(b) Bewijs dat de decryptie van een encryptie in het Elgamal-algoritme de originele tekst
teruggeeft.
(c) Wat is de looptijd van encryptie en decryptie in het Elgamal-algoritme (grote Onotatie)? Welk van beide is sneller?
Oplossing: (a) Omdat zo elke k ∈ Z∗p als publieke sleutel of blinder kan voorkomen.
(b) Toon aan: D(E(x)) = x.
Tijdens encryptie geldt dat v = z · x, de decryptie geeft de tekst x0 = v · z 0−1 . Substitutie
van v in de tweede formule geeft x0 = z · x · z 0−1 .
Nu geldt dat z = z 0 , want z 0 = ua = (g k )a = (g a )k = bk = z.
Dus x0 = z · z −1 · x = 1 · x. Nu geldt dat x = x0 , de decryptie van een encryptie geeft dus
de originele tekst.
(c) Voor zowel encryptie als decryptie blijkt dat de exponentiatie de zwaarste operatie is.
Deze operatie kost O(k 3 ) tijd. Omdat encryptie 2 en decryptie 1 exponentiatie kent, is
decryptie ongeveer 2x zo snel als encryptie.
Beoordeling: 0,5pnt voor (a), 1pt voor (b), 1pnt voor (0.5 voor complexiteit, 0.5 voor
snelste)(c) Totaal 2.5pt.
3. Worteltjestaart: De bakker moet berekenen hoeveel worteltjes hij voor zijn worteltjestaart nodig heeft. Hij heeft wel een recept, maar hij heeft de modulaire wortel nodig om
de goede hoeveelheden te vinden. Op een dag komt er een konijn langs. Het konijn kan
modulair wortel trekken, maar wil niet verklappen hoe. Het konijn zegt dat hij wel de
modulaire wortel wil uitrekenen zolang hij maar een stukje worteltjestaart krijgt. Eerst
moet de bakker de modulus m geven en een getal b < m. Daarna geeft de konijn een getal
a (als het bestaat) dat voldoet aan a2 = b(mod m).
(a) Laat zien hoe de bakker slim zijn getallen kan kiezen zodat hij de factoren van m kunt
vinden.
(b) Nu de bakker de factoren kan vinden, vindt hij dat de factoren van 1333, 31 en 43 zijn.
Nu wil hij nog weten welke vier getallen in Z1333 kwadraat 1 hebben. Welke getallen zijn
dit?
(c) De bakker denkt dat hij samen met het konijn P = NP heeft bewezen, ze kunnen
namelijk samen getallen factoriseren. Kunnen de bakker en het konijn de milleniumprijs
gaan innen? Leg uit.
Oplossing: (a) Als m priem is, is m zelf de enige factor en ben je klaar. Als m even is,
deel door 2 tot het resultaat oneven is. Als m oneven en samengesteld is, zijn er bij elke
b minstens vier getallen met b als kwadraat. Neem een random c en bereken b = c2 , en
gebruik het konijn om een a te vinden met a2 = c2 . Omdat c random gekozen is, is er
een kans van minstens 1/2 dat c noch aan a, noch aan −a gelijk is. Herhaal het kiezen
van c tot dit optreedt. Je beschikt dan over twee niet-complementaire getallen met gelijk
kwadraat, waarmee je een factor van m vindt als ggd(m, a + c).
(b) Bij elke modulus geldt 12 = 1 en (−1)2 = 1 , dus we hebben de eerste twee wortels
1 en 1332 al te pakken. Om de andere twee te vinden gebruiken we CRT en zoeken een
getal dat 1 is modulu 43 en 1 modulo 31. Dit is W43 − W31 = 1117. Het vierde getal is
-1117 ofwel 216.
(c) Nee want Factoriseren is wel in NP, maar voor zover we weten niet NP-compleet. Dus
helaas nog geen millenniumprijs. Maar als konijntje inderdaad kan worteltrekken met een
modulus van de bakker, kan hij willekeurige getallen factoriseren, dus ergens zal een prijsje
er toch wel in zitten.
Beoordeling: 1.5pt voor (a); 1pt voor (b); 1pt voor (c), totaal 3 pt.
4. RSA: We bekijken het cryptosysteem RSA met modulus n = p.q van k bits, public key e
en private key d.
(a) Waarom is het aanroepen van de decryptie veel duurder dan de encryptie bij RSA?
(b) Hoeveel rekentijd kost het versleutelen of ontsleutelen van een bericht (als functie van
k)? Reken voor de vermenigvuldiging van 2 k-bits getallen O(k 2 ).
Oplossing: (a) De publieke exponent e kan klein worden gekozen zodat weinig vermenigvuldigingen nodig zijn. Voor de geheime exponent d kan dit niet en zijn O(k) vermenigvuldigingen nodig.
(b) Een getal n heeft een lengte k = lg n. Voor encyptie (resp. decryptie) van een tekst x
moet je xe (resp. xd ) berekenen (modulo n). Hierbij is e (resp. d) een getal dat hoogstens
φ(n) is en dus maximaal k bits lang. Als je Indisch machtsverheft kun je die exponentiatie
met hoogstens 2k vermenigvuldigingen doen, de rekentijd is dus O(k 3 ). Meestal wordt
bij RSA een ”small exponent”variant gebruikt, waarbij voor e een vast, klein getal wordt
gekozen (bv. 17 of 65537) onafhankelijk van k. Dan is het aantal vermenigvuldigingen
onafhankelijk van k en kost encryptie maar O(k 2 ).
Beoordeling: Totaal 1.5pt, 0.5pt voor (a), 1 pt voor (b).
E = Geen punten voor een looptijd die exponentieel is (wat je zou krijgen als je xd berekent
met d of d − 1 vermenigvuldigingen).
5. Blinde Handtekening: Alice heeft een bericht M dat ze door Bob wil laten ondertekenen
(met RSA) maar zonder dat Bob de inhoud ziet. Bob stemt erin toe, voor Alice één
ongezien bericht te tekenen.
(a) Bewijs dat voor een correcte RSA handtekening geldt S e = M (mod n).
(b) Om welke veiligheidsreden zal Bob liever zijn handtekening onder de hash van M
zetten? Waar moet deze hash aan voldoen?
(c) Kan bij een geblindeerde RSA handtekening nog gebruik gemaakt worden van de hash?
(Zo nee, waarom niet; zo ja, bewijs dat dit kan).
(d) Op welke drie manieren kan Bob zorgen dat een blinde handtekening onder het juiste
soort token gezet wordt?
Oplossing: (a) S = M d dus geldt dat S e = M de (mod n). Omdat d is gekozen als e−1
in Zφ(m) kan dit herschreven worden tot M e·e−1 = M .
(b) Bob weet dat door de hash een existentiele aanval niet mogelijk is. Voor een hash moet
wel gelden dat hij sterk botsingsvrij is. (De andere eisen volgen hieruit).
(c) Dit kan door de hash te nemen van het bericht: h = H(M ). Dit wordt geblindeerd
met b = k e , dus Alice stuurt Bob h.b. Bob berekent
(h.b)d = (H(M ) · k e )d = H(M )d · k ed = k · H(M )d .
(1)
Alice deelt door k, dwz., vermenigvuldigt dit getal met k −1 , nu houd ze de ondertekening
van het gehashte bericht over.
(d)Er zijn volgens het dictaat drie mogelijkheden voor controle: Verschillende sleutels
gebruiken voor verschillende soorten berichten of gebruik maken van de Cut-and-choose
methode of werken met een zero knowledge proof.
Beoordeling: Totaal 4pt: 1pt voor (a); 1pt voor (b) (0,5 per subvraag); 1,5pt voor (c);
0,5pt voor (d).
6. Zero Knowledge: Voor het identicatieprotocol van Feige, Fiat en Shamir heeft Alice een
geheim getal a en een publiek getal b = a2 . De Commit van Alice is een getal s = r2 , Bobs
Challenge is een random c ∈ {0, 1}, en Alice’ Respons is y = r · ac .
(a) Welke Check doet Bob op het antwoord van Alice?
(b) Hoe zien de stappen eruit bij de niet-interactieve versie van het Feige, Fiat en Shamir
zero knowledge proof?
(c) Welke eigenschap van het zero knowledge proof verliezen we door het niet-interactief
te maken?
Oplossing: (a) Bob checkt dat y 2 = s · bc .
(b) Genereren van een niet-interactief bewijs, iets te simpel:
1: Kies s = r2 voor random r.
2: Kies c = H(s).
3: Kies y = r + ac .
Na het ontvangen van het paar (s, y): 1: bereken c = H(s)
2: controleer of y 2 = s · bc .
Omdat er bij FFS maar twee waarden van c zijn, kan een bedrieger met kans 1/2 de
challenge raden en valselijk slagen. Daarom moet je, net als bij het interactieve protocol,
meerdere challenges vragen en dat moet in een hash worden gecombineerd: 1: Kies si = ri2
voor random ri , i = 1 . . . 80.
2: Kies ~c = H(~s).
3: Kies yi = ri + aci .
(c) Het bewijs is nu overdraagbaar geworden, dus je weet niet meer zeker of de afzender
het ook echt zelf heeft berekend.
Beoordeling: Totaal 2pt. 0.5pt voor (a); 1pt voor (b); 0.5pt voor (c).
Download