De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Cryptografische algoritmen en protocols (2)

Verwante presentaties


Presentatie over: "Cryptografische algoritmen en protocols (2)"— Transcript van de presentatie:

1 Cryptografische algoritmen en protocols (2)
Cursus informatiebeveiliging Eric Laermans – Tom Dhaene

2 Asymmetrische encryptie
enkele nadelen: zowel afzender als ontvanger moeten geheime sleutel kennen hoe moet men sleutel uitwisselen? alternatieve techniek zou nuttig zijn Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

3 Asymmetrische encryptie
ook: versleuteling met publieke sleutel Engels: asymmetric (public key) encryption principe: in plaats van geheime sleutel voor elk paar gebruikers sleutelpaar voor elke gebruiker een vertrouwelijke sleutel (private key) alleen door gebruiker zelf gekend een publieke sleutel (public key) openbaar voor iedereen liefst zo openbaar mogelijk We gebruiken in deze cursus de term “vertrouwelijke sleutel” (soms ook “private sleutel” genoemd) voor de geheime informatie in een asymmetrisch encryptiealgoritme, terwijl we de uitdrukking “geheime sleutel” voorbehouden voor de geheime informatie bij symmetrische encryptie. De enige bedoeling van deze woordkeuze is een onderscheid te kunnen maken tussen beide types algoritmen. Het kan echter gebeuren dat men voor een asymmetrisch algoritme ook wel eens spreekt van een “geheime sleutel” (“secret key” in het Engels). De context moet dan duidelijk maken of men een symmetrisch of asymmetrisch algoritme bedoelt. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

4 Asymmetrische encryptie
principe: uit kennis van publieke sleutel, kan niets afgeleid worden over vertrouwelijke sleutel steunt typisch op wiskundig moeilijke problemen bv. factorisatie product van twee grote priemgetallen voorbeelden: RSA (Rivest – Shamir – Adleman) cf. boek H. 9, p. 301vv. ElGamal ECC (Elliptic Curve Cryptography) cf. boek H. 10, p. 332vv. (hier slechts kort besproken) Een gevolg van het steunen op een wiskundig moeilijk probleem is dat de veiligheid van een algoritme niet alleen door de toenemende computerkracht bedreigd wordt. Ook een doorbraak in de oplossingstechnieken voor het wiskundig probleem kan een negatieve impact hebben. Dit is in de jaren ‘90 van vorige eeuw gebeurd voor de factorisatie van priemgetallen, waarvan de complexiteit significant verminderd is en misschien nog zou kunnen verminderen in de toekomst, wat een bedreiging vormt voor RSA met niet al te grote sleutellengten (1024 bits; 768 bits is intussen gekraakt). Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

5 vertrouwelijke sleutel
Vertrouwelijkheid publieke sleutel Bob vertrouwelijke sleutel Bob afzender Alice ontvanger Bob leesbaar bericht leesbaar bericht encryptie decryptie versleuteld bericht We noteren in een sleutelpaar voor asymmetrische encryptie de publieke sleutel van A als KUA, en de vertrouwelijke sleutel van A als KRA. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

6 Asymmetrische encryptie
Vertrouwelijkheid Asymmetrische encryptie gebruik voor vertrouwelijkheid transformeert leesbaar bericht in versleuteld bericht transformatie op basis van publieke sleutel van ontvanger van het bericht omgekeerde bewerking: decryptie omzetting van versleuteld bericht in leesbaar bericht op basis van vertrouwelijke sleutel van ontvanger van het bericht alleen bezitter van vertrouwelijke sleutel kan bericht ontcijferen Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

7 Asymmetrische encryptie
Vertrouwelijkheid Asymmetrische encryptie vergelijking met symmetrische encryptie bij gebruik voor vertrouwelijkheid geen uitwisseling van geheime sleutel meer nodig vaak veel langere sleutels maar daarom niet veiliger RSA met 1024 bits, niet beter dan AES met 128 bits veel trager (2 à 3 grootteordes) geen vervanging, wel complementair: bv. versleutelen geheime sleutel voor symmetrische encryptie Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

8 vertrouwelijke sleutel
Authenticatie vertrouwelijke sleutel Alice publieke sleutel Alice afzender Alice ontvanger Bob leesbaar bericht leesbaar bericht encryptie decryptie versleuteld bericht Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

9 Asymmetrische encryptie
Authenticatie Asymmetrische encryptie gebruik voor authenticatie transformeert leesbaar bericht in versleuteld bericht transformatie op basis van vertrouwelijke sleutel van afzender van het bericht alleen bezitter van deze vertrouwelijke sleutel kan bericht op deze manier versleutelen soort “handtekening” van afzender voor bericht Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

10 Asymmetrische encryptie
Authenticatie Asymmetrische encryptie gebruik voor authenticatie omgekeerde bewerking: decryptie omzetting versleuteld bericht in leesbaar bericht op basis van publieke sleutel van afzender van het bericht verificatie van authenticiteit van afzender verificatie van data-integriteit van bericht (beperkt) afzender moet bezitter zijn van vertrouwelijke sleutel die bij deze publieke sleutel hoort vereist wel dat ontvanger weet wie eigenaar van sleutelpaar is waarvan hij publieke sleutel gebruikt De data-integriteit wordt slechts beperkt gerealiseerd. Het is inderdaad onmogelijk voor een aanvaller om het bericht te wijzigen, maar zonder extra maatregelen is het hem wel nog mogelijk om een bericht opnieuw te sturen (“replay”) of tegen te houden. We zullen af en toe ook spreken van berichtauthenticatie. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

11 Vertrouwelijkheid + authenticatie
vertrouwelijke sleutel Alice publieke sleutel Bob vertrouwelijke sleutel Bob publieke sleutel Alice afzender Alice ontvanger Bob leesbaar bericht leesbaar bericht encryptie decryptie versleuteld bericht Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

12 Vertrouwelijkheid + authenticatie
Asymmetrische encryptie combinatie vertrouwelijkheid/authenticatie alleen afzender A(lice) kan bericht versturen dat versleuteld werd met vertrouwelijke sleutel van A(lice) authenticiteit van entiteit A(lice) data-integriteit van bericht (beperkt) te verifiëren met publieke sleutel van A(lice) alleen ontvanger B(ob) kan bericht ontcijferen dat versleuteld werd met publieke sleutel van ontvanger B(ob) vertrouwelijkheid communicatie tussen A(lice) en B(ob) vereist wel dat partijen weten tot wie de gebruikte sleutelparen behoren Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

13 Asymmetrische encryptie
nadelen traag onhandig om volledig bericht te moeten versleutelen met asymmetrisch algoritme voor authenticatiedoeleinden combineren met symmetrische encryptie voor vertrouwelijkheid cf. PGP combineren met hashfuncties voor authenticatie wel geschikt voor korte berichten bv. sleuteluitwisseling Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

14 RSA RSA steunt op moeilijkheid van factorisatie van product van twee grote priemgetallen praktisch meest gebruikt algoritme veranderlijke sleutellengte aantal bits voor representatie van product typisch: 512 bits (zwak, kraakbaar op moderne PC) 1024 bits (nog een paar jaar veilig) 2048 bits (zeer veilig) encryptie en decryptie zijn dezelfde bewerking Dat RSA-512 kraakbaar is op een moderne PC is nog vrij recent geïllustreerd. In juli 2009 werd een vertrouwelijke RSA-512-sleutel , gebruikt om het besturingssysteem van de TI-83-rekenmachine te tekenen, gekraakt m.b.v. een dual-core PC (1,9 GHz kloksnelheid), gratis GNFS-software en 73 dagen geduld. Zie ook: Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

15 RSA Sleutelgeneratie selecteer p, q (priemgetallen; vertrouwelijk)
bereken n = p × q (publiek) bereken f(n) = (p–1) × (q–1) (vertrouwelijk) selecteer e (publiek) gcd(f(n),e)=1 en 1 < e < f(n) bereken d (vertrouwelijk) d = e-1 mod f(n) publieke sleutel: KU={e,n} vertrouwelijke sleutel: KR={d,n} of KR={d,p,q} Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

16 Encryptie (met publieke sleutel {e,n})
RSA: basisprincipe Encryptie (met publieke sleutel {e,n}) C = Me mod n Decryptie M = Cd mod n want ed=kf(n)+1 dus Med mod n = M mod n (cf. uitbreiding van stelling van Euler) alleen eigenaar van vertrouwelijke sleutel {d,n} kan versleuteld bericht C ontcijferen realiseert vertrouwelijkheidsfunctie Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

17 Digitale handtekening (met vertrouwelijke sleutel)
RSA: basisprincipe Digitale handtekening (met vertrouwelijke sleutel) S = Md mod n alleen eigenaar van vertrouwelijke sleutel {d,n} kan deze signatuur genereren realiseert authenticatiefunctie Verificatie M = Se mod n iedereen die over publieke sleutel {e,n} beschikt kan signatuur verifiëren Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

18 Veiligheid van het algoritme
RSA: veiligheid Veiligheid van het algoritme berust op moeilijkheidsgraad van de factorisatie van het product van twee grote priemgetallen uit p of q kan de vertrouwelijke sleutel {d,n} achterhaald worden uit f(n) kunnen p en q bepaald worden uit vertrouwelijke sleutel {d,n} kunnen p en q bepaald worden bepaal s,t zodat ed – 1 = 2st zoek naar a en i waarvoor a2i–1t≠±1 mod n en a2it=1 mod n met 1≤i≤s; dit kan voor de helft van de waarden uit Zn* gcd(a2i–1t–1, n) > 1 (waarom?) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

19 Veiligheid van het algoritme
RSA: veiligheid Veiligheid van het algoritme berust op moeilijkheidsgraad van de factorisatie van het product van twee grote priemgetallen het is even moeilijk d af te leiden uit KU={n,e} als n te factoriseren wat niet betekent dat het RSA-probleem equivalent is met de factorisatie van het product van twee grote priemgetallen Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

20 Veiligheid van het algoritme
RSA: veiligheid Veiligheid van het algoritme berust eveneens op de moeilijkheidsgraad van de berekening van discrete logaritmen anders kan de vertrouwelijke sleutel {d,n} uit de publieke sleutel {e,n} worden afgeleid bereken C = Me mod n (gekozen M) dan moet M = Cd mod n bereken d = indC,n(M) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

21 Principiële illustratie:
RSA: illustratie Principiële illustratie: sleutelgeneratie p = 13 q = 19 n = p × q = 247 f(n) = (p–1) × (q–1) = 216 kies e = 5 (gcd(e, f(n)) = 1) bepaal d = (e-1) mod 216 = 173 (5 × 173 = 865 = 1 mod 216) KU = {5, 247} (publiek) KR = {173, 247} (vertrouwelijk) encryptie/decryptie gegeven bericht M = 71 encryptie: C = M5 mod 247 = 67 decryptie: M = C173 mod 247 = 71 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

22 RSA-signatuur: versnelling
Berekening van S = md mod n via CRT bereken Sp = md mod p bereken Sq = md mod q maar d = d mod (p–1) + k (p–1) = d mod (p–1) + k f(p) zodat Sp = md mod (p–1) mk f(p) mod p = md mod (p–1) mod p wegens de stelling van Fermat analoog: Sq = md mod (q–1) mod q zowel Sp als Sq zijn stuk sneller te berekenen dan S: berekeningen gebeuren mod p en mod q i.p.v. mod n bereken hieruit dan S = CRT(Sp, Sq) met behulp van de Chinese reststelling Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

23 Kleine publieke exponenten
RSA-aanvallen Kleine publieke exponenten soms e klein gekozen en gemeenschappelijk voor vele gebruikers (bv. e = 3) voordeel: tijdwinst bij encryptie met publieke sleutel of verificatie signatuur nadeel: kwetsbaar als hetzelfde bericht met verschillende publieke sleutels {3,ni} versleuteld wordt C1=M3 mod n1 C2=M3 mod n2 C3=M3 mod n3 met CRT hieruit M3 (waaruit M gemakkelijk af te leiden is) kwetsbaar voor berichten M < n1/e Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

24 Kleine publieke exponenten
RSA-aanvallen Kleine publieke exponenten oplossing gebruik grotere “kleine” exponenten (bv. e=216+1) “salting”: toevoegen van random bits aan te versleutelen bericht Beide aanvallen zijn “ciphertext only”, maar laten slechts toe het bericht dat versleuteld werd te achterhalen, niet de vertrouwelijke sleutel te ontrafelen. Het gevaar is dus vrij beperkt bij het gebruik van een dergelijke sleutel voor een digitale signatuur, waarin authenticiteit en niet vertrouwelijkheid kritisch is. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

25 Beperkt aantal mogelijke berichten
RSA-aanvallen Beperkt aantal mogelijke berichten probleem: exhaustief uitproberen van mogelijke berichten tot bericht gevonden is dat zelfde versleutelde bericht genereert oplossing: “salting” maakt berichtruimte veel minder beperkt Het probleem van een te beperkt aantal mogelijke berichten bestond niet voor symmetrische encryptie, waar een aanvaller zelf geen berichten kon versleutelen (daarvoor zou hij immers de geheime sleutel nodig gehad hebben). In het geval van asymmetrische encryptie hoeft hij alleen maar te beschikken over de publieke sleutel om te encrypteren. Ook dit is een aanval die alleen de vertrouwelijkheidsfunctie treft, niet de authenticatiefunctie of de vertrouwelijkheid van de vertrouwelijke sleutel. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

26 Kleine vertrouwelijke exponent d
RSA-aanvallen Kleine vertrouwelijke exponent d voordeel: snellere decryptie of digitale handtekening nadeel: er bestaan specifieke snellere factorisatiealgoritmen wanneer gcd(p–1, q–1) klein is en lg(d) < 1/4 lg(n) oplossing: gebruik geen kleine vertrouwelijke exponenten Deze aanval is niet gericht tegen de beveiligingsfuncties van RSA, maar laat toe de vertrouwelijke sleutel gemakkelijker dan normaal te achterhalen, wat veel ernstigere gevolgen heeft dan een eenmalige inbreuk tegen vertrouwelijkheid of authenticatie. Eenmaal de vertrouwelijke sleutel gecompromitteerd is, kan deze niet meer gebruikt worden om enige vertrouwelijkheid of authenticatie te realiseren. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

27 Multiplicatieve eigenschappen
RSA-aanvallen Multiplicatieve eigenschappen vervalsbare handtekeningen S(m1) = m1d mod n S(m2) = m2d mod n S(m1 × m2) = S(m1) × S(m2) mod n S(re × m1) = r × S(m1) mod n “adaptive chosen ciphertext”-aanval laat c’ = re×c mod n decrypteren, waaruit decryptie van c volgt oplossing: encryptie van gestructureerde berichten Het is wel niet evident de signatuur van een nuttig bericht te kunnen genereren op basis van signaturen die men reeds bezit (zonder over de vertrouwelijke sleutel hiervoor te beschikken). Een gebruiker een met zijn eigen publieke sleutel versleuteld bericht laten decrypteren is op het eerste gezicht niet zo evident. Dit zou echter kunnen gebeuren als men hem het gewijzigde bericht c’ laat tekenen (en hij hiervoor het zelfde sleutelpaar gebruikt als voor encryptie). Door de aangebrachte wijziging kan hij niet zien dat het om een wijziging van zijn eigen oorspronkelijke bericht gaat. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

28 Gemeenschappelijke modulus n voor ≠ entiteiten
RSA-aanvallen Gemeenschappelijke modulus n voor ≠ entiteiten voordeel: slechts 1 paar priemgetallen te genereren (bv. door vertrouwde centrale autoriteit) nadeel: elke gebruiker kent vertrouwelijke sleutel van andere gebruikers uit ei, di kan de factorisatie van n afgeleid worden uit ej en de factorisatie van n kan dj afgeleid worden buitenstaander kan uit 2 verschillende encrypties van hetzelfde bericht, leesbare bericht weer afleiden Dit betekent dat er geen vertrouwelijkheid of authenticatie kan gerealiseerd worden binnen de gebruikersgroep die een zelfde modulus deelt, maar ook dat de vertrouwelijkheid van een zelfde bericht dat door twee verschillende gebruikers versleuteld wordt met een verschillende publieke sleutel (met zelfde modulus n) verbroken is, ook voor iemand die geen kennis heeft van enige vertrouwelijke sleutel. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

29 Gemeenschappelijke modulus n voor ≠ entiteiten
RSA-aanvallen Gemeenschappelijke modulus n voor ≠ entiteiten oplossing: aparte modulus voor elke gebruiker Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

30 Cyclische aanvallen (“cycling attacks”)
RSA-aanvallen Cyclische aanvallen (“cycling attacks”) voor versleuteld bericht c zoek zekere waarde k, zodat gcd(cek–c,n)≠1 als gcd(cek–c,n)=n, kan m bepaald worden: m=cek–1 mod n als gcd(cek–c,n)≠n, kunnen p en q (factoren van n) bepaald worden geen reëel gevaar probleem even moeilijk als RSA zelf Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

31 Onbeveiligde (“unconcealed”) berichten
RSA-aanvallen Onbeveiligde (“unconcealed”) berichten er bestaan berichten m waarvoor: me = m mod n bv. m = 0; m = 1; m = n–1 hun aantal is [1+gcd(e–1, p–1)][1+gcd(e–1, q–1)] (≥9) voor random gekozen p en q dit is geen significant probleem voor e = 3 e = 216+1 e random Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

32 RSA: selectie priemgetallen
Selectie p en q beide van zelfde grootteorde anders kwetsbaar voor elliptische-krommenfactorisatie p–q voldoende groot anders risico voor factorisatie rond n1/2 geen probleem bij random keuze van p en q Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

33 RSA: selectie priemgetallen
Selectie p en q aanbeveling voor keuze van sterke priemgetallen (“strong primes”) p (?) p–1 heeft voldoende grote priemfactor r beveiliging tegen (p–1)-algoritme van Pollard p+1 heeft voldoende grote priemfactor beveiliging tegen andere efficiënte algoritmen r+1 heeft voldoende grote priemfactor beveiliging tegen cyclische aanvallen Het nut om de aanbeveling op te volgen sterke priemgetallen te gebruiken in plaats van random priemgetallen is enigszins twijfelachtig. Er bestaan immers nog varianten op het (p–1)-algoritme van Pollard en andere factorisatiealgoritmen, die niet verhinderd worden door de keuze van sterke priemgetallen en die in bepaalde gevallen wel toelaten om de factorisatie beduidend te verbeteren t.o.v. de standaardmethode (algemene getallenveldzeef). Bovendien is het risico op een slechte keuze door random priemgetallen te kiezen statistisch onbeduidend (ook voor cyclische aanvallen). De meerkost van de selectie van sterke priemgetallen is echter zeer beperkt, vandaar dat ze wel kunnen gebruikt worden, hoewel hun nut niet bewezen is (onder het motto “al baat het niet, het schaadt ook niet”). Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

34 RSA: selectie publieke exponent
Selectie e random waarde voordeel: geen specifieke kwetsbaarheden nadeel: orde lg(n) modulaire vermenigvuldigingen e = 3 voordeel: veel sneller (2 modulaire vermenigvuldigingen) nadeel: specifieke kwetsbaarheid (cf. slide 22) e = 216+1 voordeel: sneller (17 modulaire vermenigvuldigingen) nadeel: specifieke kwetsbaarheid bij versleuteling van lineair gerelateerde berichten (m1 = a m2 + b, met a en b gekend) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

35 RSA-schema’s Specifieke schema’s
om zwakheden in “naakt” RSA-algoritme te vermijden encryptie van gestructureerde berichten eventueel toevoegen van random bits Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

36 RSA-schema’s Specifieke schema’s voorbeelden:
PKCS#1-1.5 (Public-Key Cryptography Standards) zowel voor encryptie als voor digitale handtekening PKCS#1-2.0 en 2.1 RSA-OAEP (Optimal Asymmetric Encryption Padding) voor encryptie (gebruik makend van hashfuncties) RSA-PSS (Probabilistic Signature Scheme) voor digitale handtekeningen (gebruik makend van hashfuncties) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

37 RSA-schema’s PKCS#1-1.5 voor encryptie: voor decryptie:
1) formattering van te encrypteren data 2) conversie van byte-string naar geheel getal 3) uitvoering van (standaard) RSA berekening 4) conversie van geheel getal naar byte-string voor decryptie: inverse bewerkingen van encryptieprocedure vooral aandacht voor formattering Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

38 RSA-schema’s PKCS#1-1.5-formattering EB = 00 || BT || PS || 00 || D
“encryption block” te encrypteren blok van k bytes (k is 128 voor RSA-1024) meest significante byte links (voor conversie naar geheel getal) k moet minstens 12 zijn 00: enkelvoudige byte BT: “block type” (type formattering) PS: “padding string” (vulling) D: “data” max. k–11 bytes* 1 byte min. 8 bytes* *: deze regel geldt strikt genomen niet voor alle “block types”, maar wel voor de meest gebruikelijke Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

39 RSA-schema’s PKCS#1-1.5-formattering EB = 00 || BT || PS || 00 || D
eerste “00”-byte garandeert dat getal kleiner is dan modulus D: “data” eventueel afkomstig van hashalgoritme (voor digitale handtekening) max. k–11 bytes* 1 byte min. 8 bytes* Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) *: voor BT =“01” of “02”

40 RSA-schema’s PKCS#1-1.5-formattering EB = 00 || BT || PS || 00 || D
BT: “block type” “00” of “01” voor bewerkingen met vertrouwelijke sleutel (o.a. handtekening) aangeraden wordt “01” te gebruiken als BT=“00” moet data (D) gekende lengte hebben of niet met “00”-byte beginnen “02” voor bewerkingen met publieke sleutel (bv. encryptie) tweede “00”-byte scheidt vulling (PS) van data (D) voor BT=“01” of “02” max. k–11 bytes* 1 byte min. 8 bytes* Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) *: voor BT =“01” of “02”

41 RSA-schema’s PKCS#1-1.5-formattering EB = 00 || BT || PS || 00 || D
PS: “padding string” nodige vulling om tot een encryptieblok van k bytes te komen voor BT=“00”: vulling met “00”-bytes vandaar vereiste voor data (D) voor BT=“01”: vulling met “FF”-bytes geen speciale vereiste voor data (D) max. k–11 bytes* 1 byte min. 8 bytes* *: voor BT =“01” of “02” Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

42 RSA-schema’s PKCS#1-1.5-formattering EB = 00 || BT || PS || 00 || D
PS: “padding string” voor BT=“02”: vulling met pseudo-random bytes verschillend van “00” aangeraden wordt deze pseudo-random bytes voor elke encryptie afzonderlijk te genereren (hergebruik houdt risico in) minimaal 8 bytes bij BT=“01” of “02” voor BT=“02” is er anders het gevaar dat iemand alle mogelijke vullingen zou uitproberen max. k–11 bytes* 1 byte min. 8 bytes* *: voor BT =“01” of “02” Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

43 RSA-schema’s PKCS#1-1.5-formattering
bescherming tegen enkele RSA-aanvallen kleine publieke exponenten BT=“02”: gebruik van pseudo-random vulling (nooit tweemaal hetzelfde bericht) + bericht nooit < n1/e beperkt aantal mogelijke berichten BT=“02”: gebruik van pseudo-random vulling (min. 8 bytes) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

44 RSA-schema’s PKCS#1-1.5-formattering
bescherming tegen enkele RSA-aanvallen multiplicatieve eigenschappen BT=“01”: gestructureerd bericht, vervalsbare handtekeningen praktisch onmogelijk BT=“02”: structuur, “adaptive chosen ciphertext”-aanval bemoeilijkt andere aanvallen konden al eenvoudig vermeden worden Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

45 PKCS#1-1.5: encryptieschema
RSA-schema’s PKCS#1-1.5: encryptieschema toch kwetsbaar gebleken voor specifieke aanval: “Million Message Attack” ontcijfering van versleuteld bericht (zonder sleutel te achterhalen) zie oefeningen voor basisprincipe hiervan voor geïnteresseerden: “Chosen Ciphertext Attacks against Protocols based on RSA Encryption Standard PKCS #1” van Daniel Bleichenbacher Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

46 RSA-schema’s PKCS#1-2.0: RSA-OAEP aantoonbaar veilig encryptieschema
onder zekere hypotheses (o.a. ideale hashfuncties) formeel aan te tonen dat het achterhalen van een leesbaar bericht uit een versleuteld bericht even moeilijk is als het oplossen van het RSA-probleem Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

47 PKCS#1-1.5: signatuurschema
RSA-schema’s PKCS#1-1.5: signatuurschema niet aantoonbaar veilig d.w.z. er bestaat geen formeel bewijs om aan te tonen dat deze vorm van asymmetrische encryptie gerelateerd is met een moeilijk wiskundig probleem (i.c. het RSA-probleem) het is niet uit te sluiten dat er technieken bestaan om met dit schema efficiënt vervalste handtekeningen te genereren praktisch is dit schema echter nog altijd niet gekraakt Het PKCS#1-1.5 signatuurschema wordt bijvoorbeeld gebruikt in de Belgische elektronische identiteiskaart. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

48 RSA-schema’s PKCS#1-2.1: RSA-PSS aantoonbaar veilig signatuurschema
onder zekere hypotheses (o.a. ideale hashfuncties) formeel aan te tonen dat genereren van vervalste handtekeningen even moeilijk is als het oplossen van het RSA-probleem Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

49 RSA: onverwachte aanvalshoeken
Timing niet echt op totale tijd nodig voor algoritme geeft typisch slechts indicatie over aantal 1-bits in exponent wel op variaties in berekeningstijd nodige informatie: voldoende aantal paren (leesbaar bericht, versleuteld bericht) + decryptietijd + precies gebruikt algoritme en architectuur berekening van machten afhankelijk van grondtal en bewerking (kwadratering of kwadratering en vermenigvuldiging) indien juiste bit gegokt, correlatie tussen oorspronkelijke decryptietijd en tijdens cryptanalyse gemeten tijd, anders niet Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

50 RSA: onverwachte aanvalshoeken
Timing voor geïnteresseerden “Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems” van Paul C. Kocher Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

51 RSA: onverwachte aanvalshoeken
Timing illustratie voorbeeld mod 247 671 mod 247 = 67 672×1 mod 247 = 672 mod 247 = 43 672×2+1 mod 247 = 675 mod 247 = 136 672×5 mod 247 = 6710 mod 247 = 218 672×10+1 mod 247 = 6721 mod 247 = 31 672×21+1 mod 247 = 6743 mod 247 = 167 672×43 mod 247 = 6786 mod 247 = 225 672×86+1 mod 247 = mod 247 = 71 (173 = in binaire representatie) kan trager zijn voor bepaalde waarden van exponent en grondtal Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

52 RSA: onverwachte aanvalshoeken
Timing vooral nuttig als men over smartcard beschikt bevat geheime sleutel maar sleutel is niet rechtstreeks toegankelijk oplossingen toevoegen van een willekeurige vertraging bemoeilijkt timing-analyse “blinding” van decryptiebewerking i.p.v. M = Cd mod n bereken eerst r e mod n (r willekeurig en geheim) bereken dan M = r -1 ×(C × r e)d mod n waarde grondtal voor machtsverheffing onbekend voor aanvaller maakt timing-analyse onmogelijk Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

53 RSA: onverwachte aanvalshoeken
Verbruikt vermogen uit vermogen dat smartcard verbruikt kan informatie afgeleid worden over bewerking die uitgevoerd wordt onderscheiden kwadratering en kwadratering+vermenigvuldiging in combinatie met timing-aanval te gebruiken Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

54 RSA: onverwachte aanvalshoeken
Foutinjectie bij versnelde RSA-signatuur berekening van S = md mod n in 3 stappen (n = p × q): bereken Sp = md mod (p-1) mod p bereken Sq = md mod (q-1) mod q S = CRT(Sp, Sq) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

55 RSA: onverwachte aanvalshoeken
Foutinjectie bij versnelde RSA-signatuur bereken S, maar zorg ervoor dat fout optreedt bij berekening van Sp (door opwarming of interferentie) we bekomen S’ = CRT(S’p, Sq) S = S’ mod q, maar S ≠ S’ mod p (CRT) Se = (S’)e mod q, maar Se ≠ (S’)e mod p en we weten dat m = Se mod n (dus ook mod p of mod q) m.a.w. m = (S’)e mod q, maar m ≠ (S’)e mod p zodat gcd((S’)e – m, n) = q: factorisatie geslaagd!! Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

56 ElGamal ElGamal steunt op moeilijkheid van berekening van discrete logaritmen in Zp* (DLP) of in eindige cyclische groep G (veralgemening ElGamal) (GDLP) steunt op moeilijkheidsgraad van zogeheten Diffie-Hellman-probleem in Zp* (DHP) of veralgemening ervan in cyclische groep G (GDHP) Opmerking: (G)DLP staat voor “(Generalised) Discrete Logarithm Problem” en (G)DHP voor “(Generalised) Diffie-Hellman Problem” Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

57 ElGamal ElGamal veranderlijke sleutellengte
aantal bits voor representatie van orde van groep typisch: 512 bits (zwak, kraakbaar op moderne PC) 1024 bits (nog een paar jaar veilig) 2048 bits (zeer veilig) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

58 Het Diffie-Hellman-probleem (DHP)
ElGamal Het Diffie-Hellman-probleem (DHP) gegeven: priemgetal p, generator a voor Zp*, aa mod p en ab mod p gevraagd: aab mod p dit blijkt een moeilijk probleem te zijn veralgemening (GDHP): gegeven: eindige cyclische groep G, met generator a, aa en ab gevraagd: aab met alle machtsverheffingen binnen cyclische groep G Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

59 Het Diffie-Hellman-probleem (DHP)
ElGamal Het Diffie-Hellman-probleem (DHP) (G)DHP ≤P (G)DLP het omgekeerde is nog niet aangetoond het is dus niet bekend of beide problemen equivalent zijn Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

60 ElGamal Sleutelgeneratie selecteer p (priemgetal; publiek)
bepaal generator a voor Zp* (publiek) kies random exponent a (vertrouwelijk) (1 ≤ a ≤ p–2) bereken aa (publiek) publieke sleutel: KU={p,a,aa} vertrouwelijke sleutel: KR={a} Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

61 ElGamal: basisprincipe
Encryptie (met publieke sleutel {p,a,aa}) kies random exponent k (1 ≤ k ≤ p–2) (vertrouwelijk) bereken g = ak mod p en d = M (aa)k mod p C = (g,d) Decryptie bereken g -a = g p–1–a mod p bereken M = g -a d mod p alleen eigenaar van vertrouwelijke sleutel {a} kan versleuteld bericht C ontcijferen realiseert vertrouwelijkheidsfunctie De random exponent k mag slechts eenmalig gebruikt worden. Dit is geen reële beperking als men een echte random waarde hiervoor gebruikt. De versleutelde tekst is tweemaal zo lang als het oorspronkelijke bericht en de bewerking vereist twee modulaire machtsverheffingen, wat niet echt een voordeel is t.o.v. RSA. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

62 ElGamal: basisprincipe
Digitale handtekening (met vertrouwelijke sleutel) kies random exponent k (1 ≤ k ≤ n–2) (vertrouwelijk) waarbij gcd(k, p–1)=1 bereken g = ak mod p en s = k -1 (M – a g) mod (p–1) S = (g,s) alleen eigenaar van vertrouwelijke sleutel {a} kan deze signatuur genereren realiseert authenticatiefunctie Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

63 ElGamal: basisprincipe
Digitale handtekening: verificatie (aa)g g s = aM mod p (reken na!) iedereen die over publieke sleutel {p,a,aa} beschikt kan signatuur verifiëren Ook de digitale handtekening is tweemaal zo lang als bij RSA. Bovendien is de verificatie beduidend trager dan bij RSA (3 volwaardige modulaire machtsverheffingen in plaats van 1, meestal vrij snelle, bij RSA). Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

64 Veiligheid van het algoritme
ElGamal Veiligheid van het algoritme even moeilijk te breken als Diffie-Hellman-probleem typisch gelijkaardige parameterwaarden als voor RSA lengte van p van 1024 bits is vergelijkbaar met RSA-1024 tenzij p hergebruikt wordt voor verscheidene sleutelparen dan beter langere priemgetallen te kiezen Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

65 ElGamal Veralgemening
in plaats van in Zp* te werken, kan in een algemene cyclische groep G van orde n gewerkt worden voorwaarde: voldoende moeilijkheidsgraad van GDLP en GDHP over GF(pm), over Zn* (met n samengesteld), over elliptische krommen over een eindig veld,… Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

66 Hergebruik van p en a mogelijk
ElGamal Hergebruik van p en a mogelijk in tegenstelling tot hergebruik van RSA-modulus n vermijdt telkens genereren van priemgetal en generator vrij rekenintensieve activiteiten indien gedeeld over verschillende entiteiten mogelijkheid om lengte van publieke sleutel te beperken alleen aa meegeven wel kwetsbaarder voor cryptanalyseaanvallen op te vangen door langere p te kiezen Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

67 Cryptografie met elliptische krommen
ECC Cryptografie met elliptische krommen Engels: Elliptic Curve Cryptography zeer analoog met ElGamal ook over elliptische krommen is DLP en DHP moeilijk op te lossen complexiteit kraken O(q1/2) met q aantal elementen van elliptische kromme vervang vermenigvuldiging door optelling vervang machtsverheffing door vermenigvuldiging nood aan geschikte mapping tussen berichten en punten op EC cf. boek H. 10, p. 343vv. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

68 ECC Sleutelgeneratie selecteer elliptische kromme EC (publiek)
meestal beperkte keuze tussen standaardkrommen bepaal generator G voor {EC,+} (publiek) punt op EC kies random vermenigvuldiger a (vertrouwelijk) (1 ≤ a < q) met q aantal elementen EC bereken Pa = a G (publiek) publieke sleutel: KU={EC, G, Pa} vertrouwelijke sleutel: KR={a} Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

69 Encryptie (met publieke sleutel {EC, G, Pa})
ECC Encryptie (met publieke sleutel {EC, G, Pa}) kies random factor k (1 ≤ k < q–1) (vertrouwelijk) bereken CM = (k G, PM + k Pa) Decryptie bereken PM = (PM + k Pa) – a (k G) alleen eigenaar van vertrouwelijke sleutel {a} kan versleuteld bericht CM ontcijferen realiseert vertrouwelijkheidsfunctie De random exponent k mag slechts eenmalig gebruikt worden. Dit is geen reële beperking als men een echte random waarde hiervoor gebruikt. Qua rekentijd is ECC-encryptie met 256 bits ongeveer vergelijkbaar met RSA-decryptie met 2048 bits (RSA-encryptie gebeurt meestal met kleinere exponenten en is dus gevoelig sneller), maar RSA-2048 biedt een mindere graad van beveiliging. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

70 Digitale handtekening
ECC Digitale handtekening zie later DSA Sleuteluitwisseling zie later DH Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

71 Asymmetrische encryptie
Lange berichten berichten groter dan te encrypteren blok moeten eerst opgesplitst worden voor ze versleuteld kunnen worden bericht moet kleiner zijn dan modulus n bij “naakte” RSA bericht mag maximaal 936 bits bevatten bij RSA-1024 in PKCS#1-1.5-schema opsplitsing in blokken mogelijk zoals bij symmetrische encryptie wel veel langere blokken Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

72 Asymmetrische encryptie
Lange berichten modes voor symmetrische encryptie ook hier bruikbaar althans modes met zowel encryptie als decryptie ECB, CBC NIET CFB, OFB, CTR Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)


Download ppt "Cryptografische algoritmen en protocols (2)"

Verwante presentaties


Ads door Google