Cryptografie en ICT L.V.de.Zeeuw@HR.NL
5 Public-key cryptografie (Asymetrische cryptosystemen) deel 1 L.V. de Zeeuw Cryptografie en ICT
Locatie vernieuwde slides Ze staan hier: http://dandydev.net/infsec2dt L.V. de Zeeuw Cryptografie en ICT
Inleiding Stel dat personen A,B,C … etc met elkaar willen communiceren. Twee personen willen berichten uitwisselen zonder dat anderen in staan zijn kennis te nemen van de inhoud. Opdracht: Hoeveel sleutels zijn er dan nodig bij gebruik van een symmetrisch crypto systeem bij: 2 personen? 3 personen? 4 personen? 5 personen? n personen? L.V. de Zeeuw Cryptografie en ICT
Antwoord Bij 2 personen is dat 1 sleutel Bij 3 personen zijn dat 3 sleutels Bij 4 personen zijn dat 6 sleutels Bij 5 personen zijn dat 10 sleutels Bij n personen zijn dat ½ n (n-1) sleutels. Het onderhouden en distribueren van sleutels bij een symmetrisch crypto systeem vormt een groot probleem. L.V. de Zeeuw Cryptografie en ICT
L.V. de Zeeuw Cryptografie en ICT
Public-key cryptografie Asymmetrische crypto systemen vormen voor het sleutel probleem een oplossing. Per gebruiker slechts twee sleutels: Een (geheime) privé sleutel (private key) Een openbare sleutel (public key) L.V. de Zeeuw Cryptografie en ICT
Public-key cryptografie Wat met de publieke sleutel wordt vercijferd kan alleen met de bijbehorende privé sleutel worden ontcijferd. Wat met de geheime privé sleutel wordt vercijferd kan alleen met de bijbehorende publieke sleutel worden ontcijferd. L.V. de Zeeuw Cryptografie en ICT
Soorten Public-key cryptosystemen Gebaseerd op: Voorbeeld: Ontbinden in factoren RSA (Rivest, Shamir en Adleman) Discrete logaritmen Diffie-Hellman systeem, ElGamal, DSS (Digital Signature Standard ) Bepalen inhoud uitgaande van het gewicht Knapzak systeem Elliptische krommen ECC (Elliptic Curve Cryptography) L.V. de Zeeuw Cryptografie en ICT
Ontbinden in factoren Factoriseren is het ontbinden van een geheel getal in kleinere getallen die na vermenigvuldiging weer het oorspronkelijke getal opleveren. Voorbeeld: 30 = 2 x 15 Binnen de cryptografie gebruiken we vaak priemgetallen (Een getal alleen deelbaar door 1 en zichzelf) Het probleem is nu een gegeven geheel getal te ontbinden in priemfactoren zodat de vermenigvuldiging weer het oorspronkelijke getal oplevert. Voorbeeld: 30 = 2 x 3 x 5 Vermenigvuldigen is makkelijker dan factoriseren 2 3 5 7 11 13 17 ... L.V. de Zeeuw Cryptografie en ICT
Discrete-logaritme y = gx (mod p) Opdracht: 2x = 8 → x = ? Opdracht: Log28 = ? Logg y = x → gx=y Het gehele getal x wordt de discrete logaritme genoemd. Het is lastig om x te berekenen. Gegeven een priemgetal p en een geheel getal g en y bepaal het gehele getal x waarvoor geldt: y = gx (mod p) Het is ondoenlijk, als p groot genoeg is, om x terug te vinden. L.V. de Zeeuw Cryptografie en ICT
Knapzak probleem Een knapzak is gevuld met een keuze uit een grote verzameling voorwerpen ieder met zijn eigen gewicht. L.V. de Zeeuw Cryptografie en ICT
Knapzak probleem Gegeven het totale gewicht, is het dan mogelijk te bepalen welke voorwerpen er wel of niet in de knapzak zitten? Bij voldoende groot aantal mogelijke voorwerpen (bijvoorbeeld >100) is het ondoenlijk gebleken om te bepalen welke voorwerpen in de knapzak zitten. L.V. de Zeeuw Cryptografie en ICT
Elliptische kromme Een elliptische kromme is geen ellips, maar een verzameling oplossingen van een algebraïsche vergelijking met twee veranderlijken x en y, met x altijd tot de derde macht en y tot de tweede macht. Voorbeelden: y2 + xy = x3+ a y2=x3+x L.V. de Zeeuw Cryptografie en ICT
Elliptische kromme Elliptische-kromme-cryptosystemen berusten op het probleem: Gegeven een elliptische curve E met de vorm y2=x3+ax+b (mod p) en de punten P en Q op de curve. Vind een k waarvoor geldt Q=kP bij gegeven de gehele getallen P en Q L.V. de Zeeuw Cryptografie en ICT
Eénrichtingsfuncties Eénrichtingsfunctie f: f (encryptie) is makkelijker te bepalen dan het omgekeerde f-1 (decryptie) Bij gegeven x is het makkelijker f(x) te berekenen dan bij een gegeven uitkomst van f(x) de oorspronkelijke x. L.V. de Zeeuw Cryptografie en ICT
Valluik-éénrichtingsfunctie Een valluik-éénrichtingsfunctie (trapdoor oneway function) is een éénrichtingsfunctie waarbij de inverse functie (decryptie) alleen te doen is als men over extra informatie (de sleutel) beschikt. L.V. de Zeeuw Cryptografie en ICT
Hashfuncties Bij het waarborgen van de integriteit van een boodschap, programmacode etc worden vaak hashfuncties gebruikt. L.V. de Zeeuw Cryptografie en ICT
Hashfuncties De hashfunctie H is een speciale éénrichtingsfunctie die een invoer van variable lengte omrekent naar een string van vaste lengte: de hashwaarde h. L.V. de Zeeuw Cryptografie en ICT
Hashfuncties h = H(M) M: het bericht (message) H: de hashfunctie (message digest function) h: de hashwaarde (message digest) L.V. de Zeeuw Cryptografie en ICT
Hashfunctie Noodzakelijke eigenschappen van de hashfunctie h = H(M) : Bij gegeven M moet H(M) makkelijk zijn te bepalen. Bij gegeven h en H mag M niet meer zijn te bepalen. Het moet niet te doen zijn berichten M en M’ te bedenken waarbij H(M)=H(M’) (Collision) L.V. de Zeeuw Cryptografie en ICT
Hashfunctie Voorbeelden: Message Digest 2,4, en 5 (MD2, MD4, MD5) ontwikkeld door Ron Rivest van het MIT → 128-bits hash Secure Hashing Algoritm (SHA) als Amerikaanse overheids-standaard → 160-bits hash SHA-1 cracked! Ron Rivest L.V. de Zeeuw Cryptografie en ICT
Gebruik hashfunctie De afzender berekent op basis van het bericht de hashwaarde h. De ontvanger doet het zelfde over het ontvangen bericht en berekent h’ De ontvanger vergelijkt de waarde h’ met de waarde h die de afzender separaat heeft gestuurd. Als h≠h’ dan is het bericht gewijzigd. L.V. de Zeeuw Cryptografie en ICT
Verjaardagsparadox De kans dat in een groep van r mensen er minstens twee dezelfde dag jarig zijn is te bepalen met: Omdat veel mensen het verrassend vinden dat de kans al voor r = 23 groter dan 0,5 is, noemt men dit ook het verjaardagsparadox. L.V. de Zeeuw Cryptografie en ICT
Verjaardagsparadox L.V. de Zeeuw Cryptografie en ICT
Aanval op hashfunctie Bij de verjaardagsaanval zoekt men H(M)=H(M’) Opdracht: Wat betekent dit? Antwoord: Men zoekt twee berichten met dezelfde hashwaarde. Op grond van de verjaardagsparadox kan verwacht worden bij een n-bits hash dat na 2n/2 pogingen er een dergelijk boodschap gevonden wordt. L.V. de Zeeuw Cryptografie en ICT
Online hash Calculator http://www.fileformat.info/tool/hash.htm L.V. de Zeeuw Cryptografie en ICT
Oefening hashfunctie Download md5sum.exe (http://www.etree.org/md5com.html) Edit een test file. Berekend de md5 hash Verander iets in je file. Bereken opnieuw de hash Download sha1sum.exe (ftp://ftp.gnupg.org/gcrypt/binary) Idem maar bereken nu de sha1 hash Bijvoorbeeld: http://www.gnupg.org/download/index.html Hier staan programma’s om te downloaden. Bij deze programma’s staat de md5 hash of de sha1 hash vermeld. Download zo’n programma en bereken de hash. Vergelijk de uitkomst met de gepubliceerde hash. L.V. de Zeeuw Cryptografie en ICT
Communicatie met public-key cryptosystemen L.V. de Zeeuw Cryptografie en ICT
Digitale handtekeningen Door gebruik te maken van digitale handtekeningen kan de ontvanger van een gesigneerd bericht zeker zijn … dat niemand anders heeft getekend. van de identiteit van de afzender. dat de handtekening niet door een derde is verplaatst naar een ander bericht. dat het bericht onderweg niet is veranderd. dat de afzender niet kan ontkennen het bericht te hebben gestuurd. L.V. de Zeeuw Cryptografie en ICT
Elektronische handtekening Voorbeelden van elektronische handtekeningen: Gescande handtekening. Dynamische handtekening door gebruik van een elektronische pen. Biometrie: Vingerafdruk, Irisscan L.V. de Zeeuw Cryptografie en ICT
Elektronische handtekening L.V. de Zeeuw Cryptografie en ICT
Digitale handtekeningen Bekende systemen die in de praktijk worden gebruikt voor het zetten van digitale handtekeningen: RSA (Rivest, Shamir en Adleman) DSA (Digital Signature Algorithm) L.V. de Zeeuw Cryptografie en ICT
Digitale handtekeningen L.V. de Zeeuw Cryptografie en ICT
Digitale handtekening en encryptie De digitale handtekening en encryptie kunnen worden gecombineerd. We krijgen dan een protocol dat zowel de authenticiteit als de vertrouwelijkheid garandeert: De afzender signeert met zijn privé sleutel De afzender vercijfert het de publieke sleutel van de ontvanger De ontvanger ontcijfert met zijn privé sleutel De ontvanger controleert digitale handtekening met de publieke sleutel van de afzender. L.V. de Zeeuw Cryptografie en ICT
Digitale handtekeningen en hash functies Digitale handtekeningen worden verkregen middels public-key cryptosystemen. Dit werkt echter langzaam bij grote berichten. Daarom wordt eerst een hash berekent van het bericht. De hash is in het algemeen veel korter dan het bericht. De hash wordt vervolgens gesigneerd middels een public-key cryptosystemen. L.V. de Zeeuw Cryptografie en ICT
Digitale handtekeningen en hash functies Procedure: De afzender berekend de hash. De afzender signeert (vercijfert) de hash met zijn privé sleutel. Het bericht en de gesigneerde hash wordt gestuurd naar de ontvanger. De ontvanger controleert (ontcijfert) de hash met de publieke sleutel van de afzender. De ontvanger berekend de hash over het ontvangen bericht en vergelijkt de uitkomst met de ontvangen hash van de afzender. L.V. de Zeeuw Cryptografie en ICT
Hybride crypto systemen Symmetrische crypto systemen zijn snel. De sleutel distributie bij asymmetrische systemen is eenvoudig. Een hybride crypto systeem benut deze voordelen: Voor het versturen van symmetrische sleutels wordt asymmetrische cryptografie gebruikt. De symmetrische cryptografie wordt gebruikt voor het vercijferen van de boodschap. L.V. de Zeeuw Cryptografie en ICT
Procedure hybride cryptografie De afzender berekent de hash over het bericht. De hash wordt vercijferd met zijn privé sleutel De afzender genereert een symmetrische sleutel. De afzender vercijfert het bericht met deze symmetrische sleutel. De symmetrische sleutel wordt vercijferd met de publieke sleutel van de ontvanger. De vercijferde hash, symmetrische sleutel en bericht worden tot één boodschap gecombineerd en verstuurd. De ontvanger ontcijfert de symmetrische sleutel met zijn privé sleutel. De ontvanger ontcijferd het bericht met de zojuist ontcijferde symmetrische sleutel. De ontvanger berekent de hash over het ontcijferde bericht. De ontvangen hash wordt ontcijferd met de publieke sleutel van de afzender en vergeleken met de zojuist berekende hash. L.V. de Zeeuw Cryptografie en ICT