De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Cryptografische algoritmen en protocols (3) Cursus informatiebeveiliging Eric Laermans – Tom Dhaene.

Verwante presentaties


Presentatie over: "Cryptografische algoritmen en protocols (3) Cursus informatiebeveiliging Eric Laermans – Tom Dhaene."— Transcript van de presentatie:

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

2 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 2 Hashfuncties Principe creëert hashwaarde h (“hash code” / “message digest” / “hash value”) van bericht M  notatie: h = H(M)  vast aantal bits –128 voor MD5, 160 voor SHA-1  soort vingerafdruk voor bericht (“fingerprint”) vereist (meestal) gebruik van andere cryptografische techniek om beveiligingsfunctie (bv. authenticatie) te realiseren ook wel “modification detection code” genoemd  wijziging van bericht wijzigt bijhorende hashwaarde cf. boek H. 11, p. 351vv.

3 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 3 Hashfuncties Vereisten (o.a. voor berichtauthenticatie) moet werken voor berichten van willekeurige lengte hashwaarde eenvoudig te berekenen

4 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 4 Hashfuncties Vereisten (o.a. voor berichtauthenticatie) éénrichtingsfunctie (“one-way function”)  gegeven h, niet haalbaar bericht x te vinden waarvoor h=H(x) zwakke botsingsbestendigheid (“weak collision resistance”)  gegeven bericht x, niet haalbaar bericht y (≠x) te vinden waarvoor H(y)=H(x) sterke botsingsbestendigheid (“strong collision resistance”)  niet haalbaar verschillende berichten x en y te vinden waarvoor H(y)=H(x)

5 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 5 Hashfuncties Vereisten (o.a. voor berichtauthenticatie) alternatieve naamgeving  preimage resistance –one-way function  second preimage resistance pseudo-preimage resistance –weak collision resistance  collision resistance –strong collision resistance  deze naamgeving is meer gebruikelijk in de wereld van de cryptografie

6 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 6 encr. Typisch gebruik van hashfunctie decr. leesbaar bericht publieke sleutel Alice vertrouwelijke sleutel Alice afzender Alice ontvanger Bob hash- fie hash- fie leesbaar bericht Hash leesbaar bericht Hash vergelijk

7 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 7 Typisch gebruik van hashfunctie Principe authenticatie van communicerende entiteit A(lice)  alleen A(lice) kan deze bepaalde sleutel gebruiken in communicatie met B(ob) authenticatie van verstuurd bericht  gewijzigd bericht zou andere (versleutelde) hashwaarde opleveren toevoegen van telsequentie in bericht  niet mogelijk om te knoeien met volgorde van berichten  telsequentie beveiligd door (versleutelde) hashwaarde

8 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 8 Typisch gebruik van hashfunctie Vereiste van zwakke botsingsbestendigheid indien afwezig, mogelijk leesbaar bericht te vervangen door ander bericht met zelfde hashwaarde  zal immers zelfde versleutelde hashwaarde opleveren  kennis van vertrouwelijke sleutel niet nodig  geen garantie meer voor authenticiteit van oorsprong van bericht of voor data-integriteit voor goede hashfunctie met hashwaarde van n bits moet genereren van zo’n vervalst bericht moeilijk zijn  inspanning van de orde 2 n

9 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 9 Typisch gebruik van hashfunctie Vereiste van sterke botsingsbestendigheid belangrijk bij contractuele verbinding  anders mogelijk voor aanvaller twee varianten van zelfde bericht te genereren met verschillende inhoud maar zelfde hashwaarde –laten tekenen van het ene bericht door tegenpartij, levert ook digitale handtekening van tegenpartij op voor ander bericht –zal immers zelfde versleutelde hashwaarde opleveren –kennis van vertrouwelijke sleutel niet nodig  geen onweerlegbaarheid meer achteraf  voor goede hashfunctie met hashwaarde van n bits moet genereren van zo’n vervalst bericht moeilijk zijn  inspanning van de orde 2 n/2

10 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 10 Sterke botsingsbestendigheid Probleem sterke botsingsbestendigheid veel moeilijker te realiseren dan zwakke botsingsbestendigheid kwetsbaar voor “verjaardagsaanval”  haalt naam uit paradoxaal hoge waarschijnlijkheid dat 2 personen binnen een groep hun verjaardag op dezelfde dag vieren  hashwaarde van n bits: N = 2 n mogelijke hashwaarden

11 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 11 Sterke botsingsbestendigheid Probleem sterke botsingsbestendigheid kwetsbaar voor “verjaardagsaanval”  waarschijnlijkheid dat minstens 2 berichten uit groep van k berichten zelfde hashwaarde hebben is: P(N,k)=1–N!/((N – k)! N k ) –uit basiseigenschappen probabiliteit (reken na!) –te benaderen (1 ≪ k ≪ N) als P(N,k)≈1–exp(-k 2 /(2N)) –waaruit k ≈ -N 1/2 ln(1–P(N,k)) –voor P(N,k) = 0,99 is k ≈ 4,6 × N 1/2 ≈ 4,6 × 2 n/2  dit is best mogelijke resultaat met hashwaarde van n bits

12 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 12 Sterke botsingsbestendigheid Probleem sterke botsingsbestendigheid gebruik variant op “verjaardagsaanval”  genereer k ≈ 2 n/2 varianten van oorspronkelijk bericht –bijvoorbeeld door te spelen met aantal spaties (met 64 facultatief in te voegen spaties kan men 2 64 berichtvarianten genereren) –bereken hashwaarde van alle varianten uit deze eerste groep  genereer k ≈ 2 n/2 varianten van vervalst bericht –bereken hashwaarde van alle varianten uit deze tweede groep

13 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 13 Sterke botsingsbestendigheid Probleem sterke botsingsbestendigheid gebruik variant op “verjaardagsaanval”  aantoonbaar dat waarschijnlijkheid dat er varianten uit groep 1 en 2 met zelfde hashwaarden bestaan P(N,k)≈1–exp(-k 2 /N) is –benadering voor P(N,k) ≈1– k C 0 × N–k C k / N C k »met N C k =N!/(k! (N–k)!): aantal combinaties van k elementen uit groep van N)  laat geselecteerd bericht uit groep 1 tekenen –levert ook digitale handtekening voor geselecteerd bericht uit groep 2

14 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 14 MD5 voor “Message Digest” van Ron Rivest (zelfde als achter RC4, RSA,  ) hashwaarde van 128 bits  niet echt voldoende meer voor sterke botsingsbestendigheid  moet beschouwd worden als gekraakt door cryptanalyse, althans voor sterke botsingsbestendigheid nog steeds veel gebruikt zou niet meer gebruikt mogen worden  tenminste niet waar sterke botsingsbestendigheid vereist is (in andere contexten wel nog bruikbaar)

15 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 15 SHA-1 SHA-1 (“Secure Hash Algorithm”, NIST) hashwaarde van 160 bits  betere sterke botsingsbestendigheid dan MD5  hoewel cryptanalyse ook SHA-1 verzwakt heeft –en dus aan vervanging toe werkt op tekstblokken van 512 bits  nodige aanvulling (“padding”) voorzien zodat invoertekst een veelvoud van 512 bits is veel gebruikt, maar iets trager dan MD-5

16 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 16 SHA-1 Vulling (“padding”) invoer in blokken van 512 bits  bericht aangevuld tot de totale lengte gelijk is aan 448 mod 512  vulling bestaat uit 1-bit, gevolgd door nodig aantal 0- bits  vulling bestaat uit 1 tot 512 bits  toevoegen van lengte van het oorspronkelijke bericht –als woord van 64 bits (meest significante byte eerst) –maximaal 2 64 bits voor invoer  totale lengte is dan veelvoud van 512 bits

17 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 17 ABCDE CV q SHA-1 compressiefunctie (80 stappen) exp ABCDE CV q  tekst 5 × 32 bits 512 bits optelling mod 2 32 SHA-1: verwerking van 1 tekstblok ABCDE ABCDE voor tekstblok q telling vanaf 0

18 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 18 ABCDE CV 0 = IV 5 × 32 bits hexadecimale notatie A: B:EF CD AB 89 C:98 BA DC FE D: E:C3 D2 E1 F0 1 ste byte laatste byte SHA-1: bufferinitialisatie

19 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 19 ABCDE CV q SHA-1 compressiefunctie (80 stappen) exp ABCDE CV q  tekst 5 × 32 bits 512 bits optelling mod 2 32 SHA-1: verwerking van 1 tekstblok ABCDE ABCDE

20 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 20 W 16 W 79 WtWt   W0W0 W1W1 W 15  tekst (512 bits) W 0 W 2 W 8 W 13 W 63 W 65 W 71 W 76 W t –16 W t –14 W t–8 W t–3  LS(1)   SHA-1: generatie invoer compressiefunctie   woorden van 32 bits

21 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 21 ABCDE CV q SHA-1 compressiefunctie (80 stappen) exp ABCDE CV q  tekst 5 × 32 bits 512 bits optelling mod 2 32 SHA-1: verwerking van 1 tekstblok ABCDE ABCDE

22 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 22 f t (B,C,D) = (B  C)  (  B  D)K t = 5A f t (B,C,D) = B  C  DK t = 6ED9EBA1f t (B,C,D) = (B  C)  (B  D)  (C  D)K t = 8F1BBCDCf t (B,C,D) = B  C  DK t = CA62C1D6 A LS(5) LS(30) BCDE ABCDE ftft WtWt KtKt 0 ≤ t ≤ ≤ t ≤ 3940 ≤ t ≤ 5960 ≤ t ≤ 79 SHA-1: stap t van de compressiefunctie optellingen mod 2 32

23 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 23 ABCDE CV q SHA-1 compressiefunctie (80 stappen) exp ABCDE CV q  tekst 5 × 32 bits 512 bits optelling mod 2 32 SHA-1: verwerking van 1 tekstblok ABCDE ABCDE

24 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 24 SHA-2 SHA-2 (“Secure Hash Algorithm”, NIST) 4 versies: SHA-224, SHA-256, SHA-384, SHA-512  langere hashwaarden (224, 256, 384 en 512 bits)  dus betere sterke botsingsbestendigheid werkt op tekstblokken van  512 bits (SHA-224 en SHA-256)  1024 bits (SHA-384 en SHA-512)  nodige aanvulling (“padding”) voorzien zodat invoertekst een veelvoud van 512, resp bits is nog niet veel gebruikt iets trager dan SHA-1 cf. boek H. 11.5, p. 366vv.

25 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 25 SHA-512 Vulling (“padding”) invoer in blokken van 1024 bits  bericht aangevuld tot de totale lengte gelijk is aan 896 mod 1024  vulling bestaat uit 1-bit, gevolgd door nodig aantal 0- bits  vulling bestaat uit 1 tot 1024 bits  toevoegen van lengte van het oorspronkelijke bericht –als woord van 128 bits (meest significante byte eerst) –maximaal bits voor invoer  totale lengte is dan veelvoud van 1024 bits

26 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 26 ABCDE CV q SHA-512 compressiefunctie (80 stappen) exp ABCDE CV q  tekst 8 × 64 bits 1024 bits optelling mod 2 64 SHA-512: verwerking van 1 tekstblok ABCDE ABCDE voor tekstblok q telling vanaf 0 FGH FGH FGH FGH +++

27 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 27 CV 0 = IV 8 × 64 bits hexadecimale notatie A:6A 09 E6 67 F3 BC C9 08 B:BB 67 AE CA A7 3B C:3C 6E F3 72 FE 94 F8 2B D:A5 4F F5 3A 5F 1D 36 F1 E:51 0E 52 7F AD E6 82 D1 F:9B C 2B 3E 6C 1F G:1F 83 D9 AB FB 41 BD 6B H:5B E0 CD E ste byte laatste byte SHA-512: bufferinitialisatie ABCDE CV q FGH

28 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 28 SHA-512: verwerking van 1 tekstblok ABCDE CV q SHA-512 compressiefunctie (80 stappen) exp ABCDE CV q  tekst 8 × 64 bits 1024 bits optelling mod 2 64 ABCDE ABCDE FGH FGH FGH FGH +++

29 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 29 W 16 W 79 WtWt   W0W0 W1W1 W 15  tekst (1024 bits) W 0 W 1 W 9 W 14 W 63 W 64 W 72 W 77 W t –16 W t –15 W t–7 W t– SHA-512: generatie invoer compressiefunctie   woorden van 64 bits 00 11 00 11 00 11  0 (x) = ROTR 1 (x)  ROTR 8 (x)  SHR 7 (x)  1 (x) = ROTR 19 (x)  ROTR 61 (x)  SHR 6 (x)

30 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 30 SHA-512: verwerking van 1 tekstblok ABCDE CV q SHA-512 compressiefunctie (80 stappen) exp ABCDE CV q  tekst 8 × 64 bits 1024 bits optelling mod 2 64 ABCDE ABCDE FGH FGH FGH FGH +++

31 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 31 ABCDE ABCDE WtWt KtKt 0 ≤ t ≤ 79 SHA-512: stap t van de compressiefunctie optellingen mod 2 64 FGH FGH  MajCh  T2T2 T1T1

32 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 32 SHA-512: verwerking van 1 tekstblok ABCDE CV q SHA-512 compressiefunctie (80 stappen) exp ABCDE CV q  tekst 8 × 64 bits 1024 bits optelling mod 2 64 ABCDE ABCDE FGH FGH FGH FGH +++

33 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 33 SHA-3 SHA-3 (“Secure Hash Algorithm”, NIST) problemen met bestaande algoritmen  MD5 “afgeschreven”  SHA-1 significant verzwakt  SHA-2 gebouwd op zelfde principes als SHA-1 nood aan iets nieuws !!

34 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 34 SHA-3 SHA-3 (“Secure Hash Algorithm”, NIST) competitie uitgeschreven (eind 2007) door NIST voor nieuwe generatie hashfuncties: SHA-3  proces vergelijkbaar met AES-competitie 51 aanvaarde inzendingen op inzendingen werden geselecteerd voor een tweede selectieronde op inzendingen geselecteerd voor een derde en finale ronde op selectie nieuwe standaard op daarna nog finale standardisatie

35 SHA-3 And the winner is… Keccak  product van –STMicroelectronics Zaventem –NXP Semiconductors Haasrode  auteurs: –Guido Bertoni –Joan Daemen (jawel, die van AES) –Michaël Peeters –Gilles Van Assche  met steun van het IWT Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 35

36 SHA-3 Eigenschappen Keccak totaal ander ontwerp dan MD-/SHA-familie  werkt met “sponge function” (sponsfunctie) –i.p.v. met compressiefunctie lengte hashwaarde eenvoudig aanpasbaar voorlopig nog sterk parametriseerbaar  dit evolueert vermoedelijk nog in finale norm prestaties  grootteorde beter dan SHA-2 in hardware  licht beter dan SHA-2 in software –maar beter parallelliseerbaar Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 36

37 SHA-3 Sponge function: “absorbing” Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 37 S0S0 R0R0 C0C0  p0p0 R1R1 C1C1 f  p1p1 f  p n-1 RnRn CnCn f …

38 SHA-3 Sponge function: “squeezing” Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 38 SnSn RnRn CnCn h0h0 R n+1 C n+1 f … f h1h1

39 SHA-3 Sponge function toestand S van b bits per blok  R-sectie: bitrate van r bits per blok  C-sectie: capaciteit van c bits per blok –met b = r + c en S = (R,C) data-invoer in n blokken van r bits: p i  na nodige padding etc. transformatiefunctie f  typisch met groot aantal transformatierondes  “absorbing”: S i+1 = f(R i  p i,C i ) –eerste n stappen  “squeezing”: S n+i+1 = f(R n+i,C n+i ) –h i = R n+i Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 39

40 SHA-3 Sponge function laat toe hashwaarden van willekeurige lengte te genereren  beveiliging hangt af van grootte van c –en van kwaliteit van functie f –en natuurlijk ook van lengte van hashwaarde eventueel ook voor andere doeleinden te gebruiken  maskerfuncties (zoals voor RSA-PSS en RSA-OAEP)  stroomversleuteling  cryptografische pseudo-random-getallengenerator  … Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) 40

41 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 41 MAC Code voor berichtauthenticatie Engels: Message Authentication Code (MAC) ook: cryptografisch controlegetal (“cryptographic checksum”) code toegevoegd aan een bericht  afhankelijk van een geheime sleutel  controle dat bericht niet gewijzigd is  controle dat bericht van juiste afzender komt  met inclusie van teller in bericht: controle dat bericht in juiste volgorde komt notatie: MAC = C K (M)  met K: geheime sleutel; M: bericht cf. boek H. 12, p. 386vv.

42 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 42 MAC Vergelijkbaar met symmetrische encryptie zowel afzender als ontvanger beschikken over geheime sleutel  gelijkaardig authenticatiemechanisme  beperking dat ontvanger ook over geheime sleutel beschikt Verschil met symmetrische encryptie geen vertrouwelijkheidsfunctie “irreversibele encryptie”: geen decryptie mogelijk Verwantschap met hashfunctie maar MAC afhankelijk van geheime sleutel, terwijl hashwaarde alleen van bericht afhangt

43 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 43 MAC -fie MAC -fie MAC leesbaar bericht geheime sleutel client Alice server Bob leesbaar bericht MAC leesbaar bericht MAC vergelijk

44 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 44 MAC Principe authenticatie van communicerende entiteit Alice  alleen Alice kan deze bepaalde sleutel gebruiken in communicatie met Bob  verificatie door Bob: opnieuw genereren van MAC die bij bericht hoort op basis van gedeelde geheime informatie

45 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 45 MAC Principe authenticatie van verstuurd bericht  gewijzigd bericht zou andere MAC opleveren  gedeeltelijke data-integriteit toevoegen van telsequentie in bericht  niet mogelijk om te knoeien met volgorde van berichten  telsequentie beveiligd door MAC  beveiliging tegen replay

46 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 46 MAC Nut t.o.v. symmetrische encryptie zelfde authenticatiefunctie als symmetrische encryptie maar geen vertrouwelijkheidsfunctie laat scheiding toe van beide beveiligingsfuncties  bv. verificatie authenticiteit door afzonderlijke (vertrouwde) server (op basis van MAC)  bv. vertrouwelijkheid tot aan werkstation (op basis van encryptie) laat authenticatie toe ook na ontvangst bericht  afzonderlijk bijhouden van MAC en geheime sleutel  laat latere verificatie toe –bv. tegen wijzigen van programmabestanden

47 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 47 MAC Vereisten (MAC van n bits) geen vertrouwelijkheid, “known plaintext”-aanval mogelijk  afleiden van geheime sleutel hieruit moet moeilijk zijn veronderstel: geheime sleutel niet gekend door aanvaller  uit observatie van M, C K (M) moet het onhaalbaar zijn nieuw bericht M’ te construeren, waarvoor C K (M’) = C K (M) –nodig voor (beperkte) data-integriteit

48 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 48 MAC Vereisten (MAC van n bits) veronderstel: geheime sleutel niet gekend door aanvaller  waarden van C K (M) moeten uniform verdeeld zijn over ruimte van mogelijke MAC’s: voor twee willekeurige berichten M en M’ moet waarschijnlijk- heid dat C K (M’) = C K (M) gelijk zijn aan 2 -n –nodig tegen “chosen plaintext” aanval: heeft dan complexiteit 2 n–1  ook als M’=f(M) moet waarschijnlijkheid dat C K (M’) = C K (M) gelijk zijn aan 2 -n –nodig tegen zwakke punten in MAC: geen mogelijkheid om selectieve wijzigingen aan bericht aan te brengen

49 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 49 MAC Ideale MAC alleen kwetsbaar voor een aanval met brute kracht uitproberen van alle mogelijke geheime sleutels  voor sleutellengte van k bits: orde 2 k berekeningen zoeken naar berichten die gegeven MAC-waarde genereren  vergelijkbaar met zwakke botsingsbestendigheid voor hashfunctie  vereist “chosen text”-aanval (of kennis van geheime sleutel) –aanvaller kan MAC’s niet zelf genereren zonder geheime sleutel –moeten dus door slachtoffer gegenereerd worden  voor blokgrootte van n bits: orde 2 n berekeningen

50 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 50 MAC Mogelijke implementatie: CBC-MAC symmetrische encryptie van volledig bericht in CBC-mode  laatste blok als MAC (blokgrootte van symmetrisch encryptiealgoritme)  kan m.b.v. DES (Data Authentication Algorithm)  kan ook met andere algoritmen voor blokversleuteling –AES, 

51 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 51 CBC-MAC encryptie P1P1 C1C1 geheime sleutel P2P2 C2C2 leesbare datablokken   IV=0 encryptie PN–1PN–1 CN–1CN–1 PNPN CNCN   : MAC

52 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 52 HMAC maakt gebruik van hashfunctie  MD-5 of SHA-1 (uitbreidbaar naar andere hashfuncties) –doorgaans sneller dan symmetrische encryptiefunctie veranderlijke sleutellengte lengte MAC gelijk aan lengte hashwaarde van gebruikte hashfunctie cf. boek H. 12.5, p. 399vv.

53 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 53 HMAC Werking: HMAC K (M) = H[(K +  opad) || H{(K +  ipad) || M}]  H: gebruikte hashfunctie (MD5, SHA-1,…) –met eigen initialisatievector IV  b: blokgrootte voor hashfunctie (in bits)  n: lengte hashwaarde voor hashfunctie (in bits)  K: geheime sleutel (lengte ≥ n) –indien langer dan b, wordt hashwaarde van sleutel berekend (herleid tot sleutel van n bits) –K + : geheime sleutel aangevuld met 0-bits tot blokgrootte b  M: leesbaar bericht  opad / ipad: vulling (“padding”) van b/8 bytes –herhaling van “36” / “5C” in hexadecimale notatie

54 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 54 HMAC Veiligheid gerelateerd aan veiligheid van gebruikte hashfunctie genereren van een vervalste MAC (zonder over geheime sleutel te beschikken)  aantoonbaar even moeilijk als –berekenen van resultaat van compressiefunctie van onderliggende hashfunctie bij onbekende en willekeurige initialisatievector »vereist uitputting sleutelruimte (orde 2 n ) of “verjaardagsaanval”

55 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 55 HMAC Veiligheid genereren van een vervalste MAC (zonder over geheime sleutel te beschikken)  aantoonbaar even moeilijk als –vinden van botsingen in hashfunctie met onbekende en willekeurige initialisatievector »vereist “verjaardagsaanval”, maar slechts mogelijk in “known plaintext”-situatie (niet “chosen plaintext” zoals bij hashfunctie) »niet mogelijk MAC’s off-line te genereren »vereist observatie koppels (tekst, MAC) met zelfde geheime sleutel gegenereerd

56 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 56 MAC: CCM-mode CCM-mode voor encryptie Counter with CBC-MAC zorgt voor vertrouwelijkheid en authenticatie geschikt voor blokencryptiealgoritmen met blokgrootten van 128 bits  wel voor AES, niet voor DES of 3-DES eerst berekenen van CBC-MAC van tekst  authenticatie daarna versleutelen van tekst in CTR-mode  vertrouwelijkheid beperking op hergebruik geheime sleutel  maximaal 2 61 blokken

57 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 57 MAC: CCM-mode Werking zelfde sleutel K voor CBC-MAC en voor CTR authenticatie  datablokken (B 0, B 1,…, B r ) volgens zekere formattering –gelegenheidswoord of “nonce” N »volledig bepaald door eerste datablok (B 0 ) –geassocieerde data A »geauthentiseerd, maar niet vertrouwelijk (kan leeg zijn) –effectieve payload P »geauthentiseerd en vertrouwelijk (kan leeg zijn)  bereken –Y 0 = E K [B 0 ] en Y i = E K [B i  Y i-1 ] (1 ≤ i ≤ r) –MAC = t meest significante bits van Y r »t minstens 32

58 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 58 MAC: CCM-mode Werking vertrouwelijkheid  data: effectieve payload P (L bits)  genereer m “counter”-blokken (m =  L/128  ) –Ctr 0, Ctr 1,…, Ctr m  bereken –S j = E K [Ctr j ] –neem de L meest significante bits van S 1 || S 2 ||…|| S m : S –t meest significante bits van S 0 : s 0 C = (P  S) || (MAC  s 0 )

59 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 59 Digitale handtekening Digitale handtekening (“digital signature”) vereisten:  verificatie van de auteur van een bericht –authenticatie van oorsprong  verificatie van het tijdstip waarop bericht aangemaakt is –vermijden van “replay” (data-integriteit)  authenticatie van de inhoud van het bericht op het tijdstip waarop het aangemaakt is –data-integriteit  verifieerbaar door derden

60 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 60 encr. Digitale handtekening: implementatie leesbaar bericht vertrouwelijke sleutel Alice generatie door Alice hash- fie leesbaar bericht Hash dig. sign. leesbaar bericht kan bv. ook tijdstip bevatten

61 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 61 Digitalehandtekening: implementatie decr. publieke sleutel Alice verificatie hash- fie leesbaar bericht dig. sign. vergelijk verificatie kan uitegevoerd worden door iedereen die publieke sleutel van Alice kent onweerlegbaarheid dat bericht door Alice gegenereerd werd

62 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 62 Digitale handtekening DSS/DSA Digital Signature Standard/Algorithm alternatief schema t.o.v. klassiek signatuurschema op basis van asymmetrische encryptie gebruikt unieke geheime waarde voor elk getekend bericht  eenzelfde bericht krijgt niet tweemaal na elkaar dezelfde digitale handtekening (nuttig tegen “replay”-aanvallen). afgeleid uit veralgemeende ElGamal-signatuur

63 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 63 sign. DSA: signatuur leesbaar bericht vertrouwelijke sleutel Alice generatie door Alice hash- fie leesbaar bericht Hash dig. sign.

64 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 64 DSA: verificatie verif. publieke sleutel Alice verificatie hash- fie leesbaar bericht dig. sign. vergelijk

65 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 65 DSA Globale publieke parameters priemgetal p (L bits; 2 L–1 < p < 2 L )  L veelvoud van 64 (van 512 tot 1024) priemgetal q (160 bits; < q < )  q | (p – 1) g = h (p – 1)/q mod p (1 < h < (p – 1))  g ≠1, generator voor unieke deelgroep van orde q in Z p * Vertrouwelijke sleutel gebruiker willekeurige x (0 < x < q) Publieke sleutel gebruiker y = g x mod p SleutelpaarKU = {p,q,g,y}KR = {x}

66 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 66 DSA Digitale handtekening voor bericht M kies random k (0 < k < q)  geheim, verschillend voor elk te tekenen bericht bereken signatuur (r, s)  r = (g k mod p) mod q  s = [k -1 (H(M) + x r)] mod q –alleen te genereren door wie k en x kent –r af te leiden uit s, M en publieke sleutel  meest rekenintensieve taak –berekening van g k –eventueel vooraf te berekenen

67 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 67 DSA Verificatie signatuur (r’, s’) voor bericht M’ bereken  w = (s’) -1 mod q  u 1 = [H(M’) w] mod q  u 2 = (r’ w) mod q  v = [(g u 1 y u 2 ) mod p] mod q  verifieer of v = r’ (reken na!) meest rekenintensieve opdracht:  berekening van v –vergt typisch beduidend meer rekentijd dan verificatie van RSA-signatuur (met kleine publieke exponent) –maar minder dan digitale handtekening m.b.v. RSA (waarom?)

68 DSA met ECC Digitale handtekening m.b.v. ECC publieke parameters  globaal –gekozen EC met q elementen –punt G op EC met orde n »L n is het aantal bits voor n  eigen aan gebruiker –publieke sleutel P a = a G (publiek) vertrouwelijke parameters  waarde a Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 68

69 DSA met ECC Generatie van digitale handtekening bereken h = H(M) beperk h tot de L n meest linkse bits: z kies random k (0 < k < n)  geheim, verschillend voor elk te tekenen bericht bereken signatuur (r, s)  (x 1, y 1 ) = k G –meest rekenintensieve taak  r = x 1 mod n  s = [k -1 (z + a r)] mod n –er moet wel getest worden dat r en s niet nul zijn –alleen te genereren door wie k en a kent Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 69

70 DSA met ECC Verificatie van digitale handtekening (r, s) bereken h = H(M) beperk h tot de L n meest linkse bits: z bereken:  w = s -1 mod n  u 1 = (z w) mod n  u 2 = (r w) mod n  v = (x 1, y 1 ) = u 1 G + u 2 P a –meest rekenintensieve taak verifieer of x 1 = r Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 70

71 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 71 RSA-PSS Doelstelling signatuurschema dat aantoonbaar even moeilijk te vervalsen zou zijn als oplossen van RSA- probleem  onder zekere (aanvaardbare) veronderstellingen Werking op basis van hashfunctie en maskerfunctie (“Mask Generation Function” of MGF) veronderstelling  ideale hashfuncties –gedrag vergelijkbaar met een random functie –botsingsbestendig

72 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 72 RSA-PSS Werking enkele parameters  H: gebruikte hashfunctie  hLen: lengte (in bytes) van uitvoer van hashfunctie  sLen: lengte (in bytes) van gebruikte (random) “salt”  emBits: maximale bitlengte van te gebruiken getal voor “encoded message” in RSA  emLen: lengte (in bytes) van “encoded message” –emLen =  emBits / 8 

73 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 73 RSA-PSS: schema M H MGF Pad1saltH(M) Pad2salt 0xBC H(M’)maskedDB  H M’ DB EM M: leesbaar bericht H: hashfunctie MGF: Mask Generation Function DB: Data Block EM: Encoded Message Pad1, Pad2: vulling / “padding” 0 dbMask

74 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 74 RSA-PSS Werking MGF invoer  byte-string van veranderlijke lengte (mgfSeed)  gewenste uitvoerlengte (maskLen) uitvoer  pseudorandom, maar deterministisch masker (“mask”) van gevraagde uitvoerlengte

75 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 75 RSA-PSS Werking MGF voorbeeld van mogelijke MGF  maximale lengte masker: 2 32 × hLen  vertrek van lege byte-string T  zet teller (4 bytes) C ← 0  voer volgende bewerking uit tot voldoende lange string bekomen wordt: T ← T || H(mgfSeed || C); C ← C+1  selecteer maskLen meest significante bytes van T

76 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 76 RSA-PSS Conclusies door structuur en salt zijn multiplicatieve eigenschappen onbruikbaar voor het genereren van valse signaturen  structuur in laatste bytes en eerste 0-bits  structuur door salt zowel in datablok (DB) als in M’ te laten voorkomen met ideale hashfunctie onhaalbaar vervalste signatuur te realiseren zonder RSA-probleem zelf op te lossen  aantoonbaar (voordeel t.o.v. PKCS#1-v1.5) opgenomen in PKCS#1-v2.1

77 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 77 RSA-OAEP Doelstelling een encryptieschema dat aantoonbaar even moeilijk te kraken zou zijn als oplossen van RSA- probleem  onder zekere (aanvaardbare) veronderstellingen Werking op basis van hashfunctie en maskerfunctie (“Mask Generation Function” of MGF) veronderstelling  ideale hashfuncties –gedrag vergelijkbaar met een random functie –botsingsbestendig

78 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 78 RSA-OAEP Werking enkele parameters  k: lengte (in bytes) van RSA-modulus  H: gebruikte hashfunctie  L: optioneel label geassocieerd met bericht (default: lege string) –lengte niet groter dan maximum voor invoer van hashfunctie –anders foutbericht: “label too long”  hLen: lengte (in bytes) van uitvoer van hashfunctie  mLen: lengte (in bytes) van leesbaar bericht –niet groter dan k – 2 hlen – 2 –anders foutbericht: “message too long”

79 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 79 RSA-OAEP: schema M MGF seed maskedDB  H DB EM L: label (optioneel) M: leesbaar bericht H: hashfunctie seed: random bytestring MGF: Mask Generation Function DB: Data Block EM: Encoded Message PS: vulling / “padding string” 00 L H(L) PS MGF  maskedSeed seedMask dbMask

80 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 80 RSA-OAEP Conclusies door pseudo-random seed  geen probleem met kleine exponenten  geen probleem met beperkte berichtruimte door structuur zijn multiplicatieve eigenschappen van RSA onbruikbaar  structuur door eerste 0-byte in EM en door H(L) en PS (0-bytes) in DB –geen “adaptive chosen ciphertext”-aanval mogelijk –ook niet “million message attack”-variant  aantoonbaar opgenomen in PKCS#1-v2.0 (en ook in v2.1)


Download ppt "Cryptografische algoritmen en protocols (3) Cursus informatiebeveiliging Eric Laermans – Tom Dhaene."

Verwante presentaties


Ads door Google