De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

5 Public-key cryptografie (Asymetrische cryptosystemen)

Verwante presentaties


Presentatie over: "5 Public-key cryptografie (Asymetrische cryptosystemen)"— Transcript van de presentatie:

1 Cryptografie en ICT L.V.de.Zeeuw@HR.NL

2 5 Public-key cryptografie (Asymetrische cryptosystemen)
deel 3 L.V. de Zeeuw Cryptografie en ICT

3 RSA systeem Ron Rivest, Adi Shamir, Leonard Adleman ontwikkelden in 1978 RSA Leonard Adleman Adi Shamir Ron Rivest L.V. de Zeeuw Cryptografie en ICT

4 RSA systeem RSA wordt gebruikt voor: Mathematisch principe:
Encryptie Plaatsen van digitale handtekeningen Mathematisch principe: het berekenen van het product van twee priemgetallen is eenvoudiger dan het ontbinden van een getal ik priemfactoren. Toepassingen: In commerciële software van MS, Sun, Novell Hardware: smartcards en netwerkcomponenten Internet Protocollen L.V. de Zeeuw Cryptografie en ICT

5 L.V. de Zeeuw Cryptografie en ICT

6 Priemgetallen Wiskundig Intermezzo
Een priemgetal is een natuurlijk getal groter dan 1 dat slechts deelbaar is door 1 en door zichzelf. Het getal 1 is dus geen priemgetal. Priemgetallen vormen een belangrijk onderwerp in de tak van de wiskunde die getaltheorie genoemd wordt. Een van de redenen hiervan is dat priemgetallen met zeer veel cijfers worden toegepast in de cryptografie. L.V. de Zeeuw Cryptografie en ICT

7 Priemgetallen Wiskundig Intermezzo
De eerste priemgetallen (< 100) zijn: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89 en 97 Hoofdstelling: Elk natuurlijk getal > 1 is op precies 1 manier als product van priemgetallen te schrijven. L.V. de Zeeuw Cryptografie en ICT

8 Priemgetallen wiskundig intermezzo
Opdracht: Welke twee priemgetallen leveren het product 15? Ontbinding in priemfactoren: 3 x 5 Welke twee priemgetallen leveren het product 187? Ontbinding in priemfactoren: 11 x 17 En welke twee priemgetallen leveren 1147 ? Ontbinding in priemfactoren: 31 x 37 En welke twee priemgetallen leveren ? Ontbinding in priemfactoren: 97 x 167 Ontbinden in priemfactoren L.V. de Zeeuw Cryptografie en ICT

9 Priemgetallen Wiskundig Intermezzo
Er zijn oneindig veel priemgetallen. Dit werd al bewezen door Euclides. Bewijs: Stel dat p1 p2 , p3 …pn de enige priemgetallen zijn. Het getal N= (p1 x p2 ,x p3 x … x pn) +1. Als N een priemgetal is, zijn we klaar, want dan hebben we bewezen dat pn niet het grootste priemgetal is. Als dit niet het geval is, dan is het getal N deelbaar door priemgetal Q. (Zie de hoofdstelling van de rekenkunde, waarin staat dat elk natuurlijk getal > 1 op precies één manier te schrijven is product van priemgetallen). Echter, voor n=1,2,..k geldt steeds dat N bij deling door pn rest 1 geeft, en N dus niet deelbaar is door pn. Dus moet N deelbaar zijn door een priemgetal groter dan pn, waarmee opnieuw de stelling bewezen is. L.V. de Zeeuw Cryptografie en ICT

10 Priemgetallen Wiskundig Intermezzo
Het grootste priemgetal (op dit moment, link op eigen risico: 16,73 Megabytes text ): Ontdekt op 23-Aug Het getal bevat cijfers. Getallen van de soort 2p - 1 met p priem; de priemgetallen van deze vorm heten Mersenne-priemgetallen Meer informatie over (grote) priemgetallen is te vinden op: Hier kun je dus ook terecht als je een groot priemgetal nodig hebt. L.V. de Zeeuw Cryptografie en ICT

11 Priemgetallen Wiskundig Intermezzo
De zeef van Eratosthenes is een algoritme waarmee alle priemgetallen kunt vinden tussen 1 en getal n. Schrijf alle getallen 2 t/m n op. Het eerste getal in deze reeks voeg je toe aan de gevonden priemgetallen. Verwijder nu alle getallen die deelbaar zijn door dit priemgetal. Herhaal 2 en 3 tot er geen getallen meer over zijn. L.V. de Zeeuw Cryptografie en ICT

12 RSA systeem Mathematisch principe:
het berekenen van het product van twee priemgetallen is eenvoudiger dan het omgekeerde. Vergelijk dit met het telefoonboek: je weet iemands naam en adres en kunt dan snel zijn telefoonnummer opzoeken, maar als je alleen iemands telefoonnummer weet, is het ondoenlijk zijn naam en adres te vinden alleen met dat telefoonboek. Opbellen gaat sneller! L.V. de Zeeuw Cryptografie en ICT

13 RSA Sleutelgeneratie Stap 1
Kies twee grote priemgetallen p en q Voorbeeld: p = 73 en q = 103. Deze priemgetallen zijn geheim. L.V. de Zeeuw Cryptografie en ICT

14 RSA Sleutelgeneratie Stap 2
Bepaal het product n=p.q Voorbeeld: n = p · q = 73 x 103 = Dit is één van de openbare sleutels! L.V. de Zeeuw Cryptografie en ICT

15 RSA Sleutelgeneratie Stap 3
Bereken het getal K=(p-1)(q-1) Kies een getal e zodanig dat 1< e < K én GGD(e,K)=1 e is de tweede openbare sleutel. Voorbeeld: K= (73-1) (103-1)= Kies bijvoorbeeld e=13. Controleer GGD(7344,13)=1. Nu is 13 de andere openbare sleutel. L.V. de Zeeuw Cryptografie en ICT

16 RSA Sleutelgeneratie Stap 4
Bereken het getal d zodanig dat e·d=1 (mod K) Het getal d is de geheime sleutel Voorbeeld: Bepaal e · d = 13 · d = 1 (mod 7344) d = 565 de geheime sleutel L.V. de Zeeuw Cryptografie en ICT

17 Berekening 13.d=1 (mod 7344) We gaan uit van de definitie:
a = b ( mod n) dan en slechts dan als er een geheel getal k is waarvoor geldt: a = b + k·n 13·d = 1 (mod 7344) dan en slechts dan als er een geheel getal k is waarvoor geldt: 13·d=1+k·7344 L.V. de Zeeuw Cryptografie en ICT

18 Berekening 13.d=1 (mod 7344) 13·d=1+k·7344 → 13·d - k·7344=1 Hoe groot zijn d en k? 13· ·7344 = (1) 13· = (2) 13· ·7344 = (1) 13· ·7344 = (3) Vergelijking (2) x 564 13· ·7344 = (4) 13· 1 – = (2) 13·565 – 1·7344 = → 13·565= → 13·565=1 (mod 7344) L.V. de Zeeuw Cryptografie en ICT

19 RSA Sleutelgeneratie De publieke sleutel: getallenpaar {e,n}
De geheime sleutel: getallenpaar {d,n} Voorbeeld: Publieke sleutel: { 13, 7519} Geheime sleutel: {565,7519} L.V. de Zeeuw Cryptografie en ICT

20 RSA Sleutelgeneratie In de praktijk werkt men echter niet met priemgetallen van twee of drie cijfers, maar van elk zo'n honderd cijfers. Hun product (een getal van zo'n 200 cijfers) wordt openbaar gemaakt. Het terugvinden van die grote priemgetallen is in een redelijke rekentijd niet te doen. Dus is het cryptosysteem niet te breken. L.V. de Zeeuw Cryptografie en ICT

21 RSA encryptie / decryptie
Eerst de boodschap omzetten in getallen bijvoorbeeld via ASCII. De getallen om zetten in blokken van vaste lengte M1,M2 M3, … Mi waarbij de lengte van Mi iets kleiner dient te zijn dan de lengte van de modulus n Encryptie: C = Me (mod n) Decryptie: M = Cd (mod n) L.V. de Zeeuw Cryptografie en ICT

22 RSA encryptie voorbeeld
Decryptie: C = Me (mod n) We hadden e= 13 en n= 7519 als publieke sleutel van bv Bob Als Anna de tekst: ‘Ik hou van je’ (wat natuurlijk niemand nog mag weten) wil sturen aan Bob, dan moet de tekst eerst in bv ASCII worden omgezet. L.V. de Zeeuw Cryptografie en ICT

23 RSA encryptie voorbeeld
Tekst I k h o u v a n j e ASCII 73 107 32 104 111 117 118 97 110 106 101 Anna berekent nu met de publieke sleutel van Bob: C = Me (mod n) = =7313 (mod 7519) = (mod 7519) =7300 Etc voor elke letter … k: C = (mod 7519) = 1480 L.V. de Zeeuw Cryptografie en ICT

24 RSA decryptie voorbeeld
Decryptie: M = Cd (mod n) We hadden d=565 en n= 7519 als geheime sleutel van Bob Bob ontvangt de eerste geëncrypte letter van Anna: 7300 en berekent: M= (mod 7519) =73 Op zoeken in ASCII tabel 73 = ‘I’ Etc voor andere ontvangen letters … L.V. de Zeeuw Cryptografie en ICT

25 ElGamal ElGamal is een public-key crypto systeem gebaseerd op ‘discrete logaritmen’ genoemd naar Taher Elgamal ElGamal kan gebruikt worden voor vercijferen en het zetten van digitale handtekeningen. L.V. de Zeeuw Cryptografie en ICT

26 ElGamal Sleutelgeneratie
Formeel: Bepaal een priemgetal p. Kies random getallen g en x waarbij g<p en x<p Bereken y=gx (mod p) De geheime sleutel {x,p} De publieke sleutel {y,g,p} Voorbeeld (Bob) p=7 g=3,x=4 y=34 mod 7 = 4 Geheime sleutel {4,7} Publieke sleutel {4,3,7} L.V. de Zeeuw Cryptografie en ICT

27 ElGamal Encryptie Formeel: Bericht M te versturen
Kies random getal k waarbij GGD(k,p-1)=1 Bereken c1=gk (mod p) en c2=yk M (mod p) {c1,c2) is de cijfertekst Voorbeeld (Anna): M=2 te sturen aan Bob k=5 controleer GGD(5,7-1)=1 c1=35 (mod 7) = 5 en c2=45 · 2 (mod 7) = 4 {5,4} is de cijfertekst L.V. de Zeeuw Cryptografie en ICT

28 ElGamal Decryptie Formeel: Bereken: M = c2 / c1x (mod p)
Voorbeeld (Bob): Bob berekent: M = 4 / 54 (mod 7)= = 4 / 2 = 2 L.V. de Zeeuw Cryptografie en ICT

29 Digital Signature Algorithm
DSA kan alleen gebruikt worden voor het zetten van digitale handtekeningen. DSA is gepubliceerd door het National Institute of Standards and Technology onder de naam Digital Signature Standard (DSS) DSA is een variant op ElGamal en ook gebaseerd op discrete logaritmen. L.V. de Zeeuw Cryptografie en ICT

30 Kritiek op DSA Verificatie van de handtekening is te langzaam.
Onderliggend cryptosysteem is onvoldoende geanalyseerd. Het ontwerp is geheim. L.V. de Zeeuw Cryptografie en ICT

31 DSA sleutelgeneratie Genereer twee priemgetallen p en q waarvoor geldt: 2i-1 < p < 2i waarbij 512 ≤ i ≤ 1024 én i een veelvoud is van 64 q moet deler zijn van p-1 én 2159 < q < 2160 Kies een getal t waarvoor geldt t < p-1 én g=t(p-1)/q (mod p)> 7 Kies een getal x waarvoor geldt x<q. Openbaar: {p,q,g} Geheim: {x} Bereken: y=gx (mod p) Publieke sleutel: {y} Secret-key {x} Verder wordt er gebruik gemaakt van het Secure Hash Algorithm: SHA(M) L.V. de Zeeuw Cryptografie en ICT

32 DSA signeren De afzender kiest een random getal k<q Bereken
r = gk (mod p) mod q én s = [k-1 (h(M) + xr)] (mod q) De digitale handtekening bestaat uit: {r,s}. Deze wordt verstuurd. L.V. de Zeeuw Cryptografie en ICT

33 DSA verificatie De ontvanger ontvangt {r,s} en kent {p,q,g} Bereken:
w = s-1 (mod q) u1=[ h(M) w ] (mod q) u2=rw (mod q) v =gu1yu2 (mod p)) mod q Controleer of v=r L.V. de Zeeuw Cryptografie en ICT

34 Elliptic-Curve Cryptografie (ECC)
Elliptische krommen (Elliptic-Curve) zijn géén ellipsen. Ze heten zo omdat elliptische kromme vergelijkingen lijken op de vergelijkingen die gebruikt worden voor het berekenen van de omtrek van een ellips. L.V. de Zeeuw Cryptografie en ICT

35 Voorbeeld elliptische kromme: y2=x3+x+1 (x,y є R)
L.V. de Zeeuw Cryptografie en ICT

36 Voorbeeld elliptische kromme: y2=x3-x (x,y є R)
L.V. de Zeeuw Cryptografie en ICT

37 Met Maple een (elliptische) kromme tekenen
Start Maple 9.5 Kies: Tools/Assistents/Plot Builder… Klik op ‘Add’ Vul je vergelijking in bv: y^2=x^3-4*x+1 Klik op ‘Accept’ Klik op ‘Done’ Klik op ‘Plot’ L.V. de Zeeuw Cryptografie en ICT

38 Elliptic-Curve Cryptografie
ECC is vele malen sneller dan de eerder genoemde systemen voor asymmetrische cryptografie. De sleutels kunnen aanzienlijk korter zijn bij een vergelijkbaar beveiligingsniveau. Toepassing in mobiele telefoons, chipkaarten e.d. (beperkte opslag en verwerkingscapaciteit). L.V. de Zeeuw Cryptografie en ICT

39 EC definitie zoals van belang voor ECC
Zp is de verzameling gehele getallen tussen 0 en priemgetal p. Een elliptische kromme E over Zp wordt gedefinieerd als y2=x3+ax+b (mod p) waarbij: a,b є Zp en 4a3+27b2≠0 (mod p) E(Zp) bestaat uit getal paren(x,y) є Zp L.V. de Zeeuw Cryptografie en ICT

40 Eigenschap elliptische krommen
Als P en Q punten zijn op kromme dan is P+Q=R ook een punt op de kromme. Let op: de + is een bewerking die optelling wordt genoemd maar anders gedefinieerd is als onze gebruikelijke optelling. Herhaling van (deze) optelling is een vermenigvuldiging. ECC is gebaseerd op het discrete logaritme probleem maar nu binnen de oplossingsruimte van een elliptische krommen en met de bewerking herhaald optellen (vermenigvuldigen) zoals gedefinieerd binnen deze oplossingsruimte. L.V. de Zeeuw Cryptografie en ICT

41 Discrete logaritme k is een geheel getal k.P = R = P+P+P+P+…+P k
R is makkelijk te berekenen gegeven k,P k is moeilijk te berekenen gegeven R,P k heet de discrete logaritme van R over P L.V. de Zeeuw Cryptografie en ICT

42 ECC tutorial Een zeer goede tutorial over de wiskunde achter ECC is te vinden via deze link Geen tentamen stof … Finite Geometric Elliptic Curve Model Animated Solution L.V. de Zeeuw Cryptografie en ICT


Download ppt "5 Public-key cryptografie (Asymetrische cryptosystemen)"

Verwante presentaties


Ads door Google