Transcript Set TWEE
Tweede Huiswerk Security
11/13 juni 2014, Uitwisselen, 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 18 of 20 juni en geef het huiswerk dan aan de assistenten.
Cijfer: Te halen 15pt, resultaat is totaal gedeeld door 1,5.
1. Staatsgeheim: (a) Welke categorie¨en van Staatsgeheimen kennen we in Nederland? Zeg
wanneer informatie tot deze categorie¨en hoort.
(b) Waarom mag STG Geheime informatie niet op laptops worden opgeslagen of verwerkt?
Oplossing: (a) STG Zeer Geheim: Kan integriteit van de staat schaden; STG Geheim: Kan
mensenlevens kosten; STG Confidentieel: Kan leiden tot miljoenenschade; Departementaal
Vertrouwelijk: Kan leiden tot reputatieschade.
(b) STG Geheime informatie mag alleen worden verwerkt in ruimten waar is gelet op zichtbaarheid van het scherm, inclusief reflecterende oppervlakken. Voor mobiel gebruik kan dit
natuurlijk niet worden gegarandeerd.
Beoordeling: Totaal max 2pt, voor beide delen 1pt. (Jullie hadden wel geluk dat Mark deze
categorie¨en keurig op het bord zette op 13 juni!)
2. Multiplicatieve inverse en machten: Zij m een geheel getal groter dan 2.
(a) Wat is de definitie van Z∗m ?
(b) Bewijs dat Z∗m gesloten is onder het nemen van machten; dwz., als a ∈ Z∗m en k is een
positief geheel getal, dan ak ∈ Z∗m .
Oplossing: (a) Z∗m is een deelverzameling van Zm , namelijk de getallen met een multiplicatieve inverse: a ∈ Z∗m wanneer ∃a0 : a · a0 = ¯1.
(b) Omdat a ∈ Z∗m , bestaat a0 zdd a · a0 = ¯1. Maar dan geldt (ak ) · (a0k ) = (a · a0 )k = ¯1k = ¯
1
(eerste vanwege associativiteit en commutativiteit van vermenigvuldiging). Dus a0k is een
inverse voor ak .
Beoordeling: Deel (a) is niet echt een vraag maar alleen een opstapje voor (b), je krijgt
daarom niks voor (a) en 2pt voor een kloppend bewijs.
3. Eulers φ: Wat is de waarde van φ(5k )?
Oplossing: 4.5k−1 , want van de 5k getallen hebben er eenvijfde, dus 5k−1 een factor 5, en
deze zijn niet inverteerbaar.
Beoordeling: 2 pt voor een goede waarde. Beoordelingscodes:
D = Alleen Definitie en karakterisering maar geen waarde, 1/2.
E = Afwijking van Een (als 5k − 5k−1 + 1), -1/2.
F = Antwoord is Fout, bv 2k of 4k .
4. Kwadraatstelling: Zij p en q oneven priemgetallen en n = p · q.
(a) Hoeveel getallen in Z∗p zijn een kwadraat? Waarom?
(b) Hoeveel getallen in Z∗n zijn een kwadraat? Waarom?
(c) Hoe kan de structuur van kwadraten helpen bij het factoriseren van n?
Oplossing: (a) Z∗p heeft p − 1 getallen, elk met een kwadraat, maar steeds hebben twee
getallen hetzelfde kwadraat. Het aantal kwadraten is daarom p−1
2 .
(b) Z∗n heeft (p − 1)(q − 1) getallen, elk met een kwadraat, maar steeds hebben vier getallen
hetzelfde kwadraat. Het aantal kwadraten is daarom (p−1)(q−1)
.
4
(c) Als je twee getallen b en c vindt met hetzelfde kwadraat, maar b is niet ±c, dan kun je een
factor berekenen als gcd(b + c, n). Factorisatie-algoritmen beginnen meestal met het zoeken
van een “niet-triviale wortel van 1”.
Beoordeling: Voor de juiste aantallen in (a) en (b) elk 1pt, voor de juiste factorformule plus
toepassing in (c) 2pt. Beoordelingscodes:
H = De Helft waarvan? Aftrek 1/2.
K = Een Kwart waarvan? Aftrek 1/2.
5. RSA Encryptie en Decryptietijd: Het aanroepen van de private functie (decryptie) in
RSA is veel duurder dan de public functie (encryptie).
(a) Waarom is dit zo?
(b) Geef een nauwkeurige schatting van de verhouding van decryptie- versus encryptietijd,
zowel voor 1024-bits als voor 2048-bits keys.
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) (k: sleutellengte)
vermenigvuldigingen nodig.
(b) Een veelgebruikte e is 65537, waarvoor de publieke functie 17 vermenigvuldigingen gebruikt, ongeacht de sleutellengte. De tegenexponent d is een willekeurig getal van k bits,
zodat ongeveer 1.5k vermenigvuldigingen nodig zijn. Bij 1024b is dat 1536, ongeveer 90 maal
17. Bij 2048b is dat 3072, ongeveer 180 maal 17.
Als je de decryptie via subgroepen laat lopen wordt het ongeveer viermaal zo goedkoop dus
worden de ratio’s 23 cq. 45.
Beoordeling: Voor deel (a) 1pt; deel (b) 2pt. Beoordelingscodes:
A = Vergeet factor Anderhalf in aantal verm; min 1/2pt.
C = Chinese rest er niet bij, kost 1/2pt.
D = Derdemachtsargument: “Exponentiatie is cubisch, dus verhouding is k 3 /173 .” Je kunt
alleen zeggen dat exp cubisch in k is, als alle getallen lengte k hebben. Hier is wel de d langer
dan e (k versus 17) maar grondtal en modulus zijn even lang.
E = “65537e macht kost 16 (cq. 18) verm.”; tja, scheelt maar Een, geen puntenaftrek.
G = “Getal y is groter dan getal x”; onjuist.
K = “Verhouding is K want O(k 3 )/O(k 2 )”, door het negeren van impliciete constanten zit je
er ruim een factor 10 naast, dus onvoldoende nauwkeurig, 1pt.
L = “Inverse van machtsverheffen is Logaritme dus duur”, onjuist, als decryptie zo duur was
zou RSA niet werken, 0pt.
M = Getal zonder Motivatie, 1/2 max.
N = Vergeet dat alle Nullen in e maar 1 verm kosten, min 1/2pt.
T = Decryptie kost Twee (of ander aantal) exponentiaties; geen punt want het kost 1 exponentiatie.
W = “Inverse van macht is Worteltrekken dus duurder”; incompleet want worteltrekken is
juist ook machtsverheffen, dit verklaart dus niets.
6. RSA Message Attack: Student Bob ontvangt van Universiteit Alice een bericht X = “Je
cijfer voor VAKCODE is CIJFER”, versleuteld met RSA dus y = Encm (X); er zijn 12 vakken
gegeven in het blok.
(a) Oscar beschikt over y en de publieke sleutel m van Bob; kan hij bepalen welk vak Bob
heeft gedaan en met welk resultaat?
(b) Beschrijf (elk in ´e´en zin) twee manieren om RSA te beveiligen tegen deze message attacks.
Oplossing: (a) De encryptie bij RSA is in principe deterministisch, dus y = X e mod n.
Oscar kan alle 180 mogelijke berichten versleutelen (de RSA publieke functie is zo goedkoop
dat dit ongeveer zoveel kost als een decryptie) en de uitkomsten met y vergelijken.
(b) Je moet een vorm van randomisering gebruiken. Bij hybride encryptie wordt het bericht X
zelf versleuteld met een random sessiekey, die daarna met RSA wordt versleuteld. Bij padding
wordt het bericht voor encryptie aangevuld met random bits.
Beoordeling: Totaal 3pt, 1 voor (a) en 1 voor elke vorm van randomisering.
A = De 180 berichten Aanpassen: De secretaresse moet voor elke student een herformulering
van het tentamenbriefje verzinnen, niet praktisch, 0pt.
B = De Berichten geheimhouden: Dit kan natuurlijk niet echt als bv Oscar zelf ook student
is en regelmatig tentamenuitslagen ontvangt; 0pt.
C = Gebruik een Chaining mode, bv XOR bericht met vorig: dit is zeker een slecht idee,
omdat zowel encryptie als decryptie afhankelijk worden van het verleden, het helpt ook niet
als Oscar ook het vorige bericht al kent, 0pt.
D = Deterministische bewerkingen helpen niet: Hashen, Padden met nullen, Salt; 0pt.
G = Geheimhouden van Bobs public key: het sleutelbeheer wordt een ramp, dit is helemaal
strijdig met de idee van public key crypto, 0pt.
P = Eerst bewerken (signen) met Alice’ Public key: Dit wordt nooit gedaan tegen message
attacks, alleen ter authenticatie. Reden: het maakt encryptie 180x zo duur (gebruik private
key) en het vereist dat Bob de public van Alice kent. Leuke van dit idee is dat het weliswaar
Deterministisch is (zie D) maar niet door Oscar kan worden nagebootst, dus toch een beetje
werkt. Voor dit slechtwerkende en nooit toegepaste idee daarom toch 1/2pt.
S = Een verschillende Sleutel per bericht: Dit helpt niet (omdat Oscar met de verschillende
sleutels kan encrypten), en maakt het Bob onmogelijk het bericht te openenen (hij moet weten
welk bericht het is voordat hij het kan decrypten), 0pt.
T = TLS of andere verbindingsbeveiliging gebruiken: De bedoeling van encryptie is dat de
verstuurde boodschappen niet meer geheim hoeven te blijven, 0pt.