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.