Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdSterre Verlinden Laatst gewijzigd meer dan 10 jaar geleden
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
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.