5 Public-key cryptografie (Asymetrische cryptosystemen)

Slides:



Advertisements
Verwante presentaties
Optellen en aftrekken tot 20
Advertisements

Sudoku puzzels: hoe los je ze op en hoe maak je ze?
Bij een herhaald experiment, met telkens dezelfde kans op succes gebruiken we de binomiale kansverdeling Een binomiale kansverdeling wordt gekenmerkt door.
Het algoritme van Euclides
Differentie vergelijkingen differentie vergelijkingen
H1 Basis Rekenvaardigheden
dia's bij lessenserie Pythagoras ± v Chr.
Tentamen Maandag, 1 juli H en H.2.403
Een manier om problemen aan te pakken
1 Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen Hashtabellen –Oplossen van botsingen met “ketens” (chaining) –Analyse –Oplossen.
Base: bewerkingen 2 soorten - Oplopend- Aflopend.
HTML Les 1: Introductie HTML
Presentatietitel: aanpassen via Beeld, Koptekst en voettekst 1 Universiteit Twente meets SG Twickel Zoeken in grote tekstbestanden Mariëlle Stoelinga.
2 Geschiedenis van de Cryptografie
Datastructuren Analyse van Algoritmen en O
6 Sleutelmanagement L.V. de Zeeuw Cryptografie en ICT.
H16: Renten H 16 gaat over renten. Wat is het verschil met H 15?
WISKUNDIGE FORMULES.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Fibonacci & Friends Met dank aan Gerard Tel.
Advanced Encryption Standard
Workshop: Geheimschrift op de TI-83+
Cryptografie workshop Wiskunde D-dag 6 juni 2008
Machtsverheffen als geheimschrift
Jean-François Champollion (1821) Hiëroglyfen – Demotisch – Grieks.
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Oefeningen Cursus informatiebeveiliging Eric Laermans – Tom Dhaene.
Leiderverkiezing Olympus College 14 april 2008 David N. Jansen.
Universiteit Twente meets SG Twickel Zoeken in grote tekstbestanden
Bewegen Hoofdstuk 3 Beweging Ing. J. van de Worp.
Workshop: Geheimschrift op de TI-83+
WIS21.
ribwis1 Toegepaste wiskunde Lesweek 01 – Deel B
Toegepaste mechanica voor studenten differentiatie Constructie
Oefeningen Cursus informatiebeveiliging Eric Laermans – Tom Dhaene.
Cursus informatiebeveiliging Eric Laermans – Tom Dhaene
Statistiekbegrippen en hoe je ze berekent!!
1 Datastructuren Een informele inleiding tot Skiplists Onderwerp 13.
Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen Hashtabellen –Oplossen van botsingen met “ketens” (chaining) –Analyse –Oplossen van.
PRIEMGETALLEN.
0 Inleiding L.V. de Zeeuw Cryptografie en ICT. Cryptografie en ICT
7 Computernetwerken en smartcards
Security 2 Cryptografie en ICT
5 Public-key cryptografie (Asymetrische cryptosystemen)
5 Public-key cryptografie (Asymetrische cryptosystemen)
HOGESCHOOL ROTTERDAM / CMI Cryptografie en ICT
priemgetallen priemgetal:
Grote getallen.
Vergelijkingen oplossen
Centrummaten en Boxplot
Verbanden JTC’07.
Het verschil tussen telefoon en . Telefoon Telefoon is het communicatiemiddel waarmee je elkaar met een telefoon kan oproepen en zo met iemand kan.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
Fascinerende priemgetallen
Deelbaarheid.
Gecijferdheid les 1.4 Grootst gemene deler Kleinst gemene veelvoud
Rekenen met getallen : = x Delen door een breuk is hetzelfde als vermenigvuldigen met het omgekeerde van die breuk. Maak je zelf zo min mogelijk.
Jan Willem Polderman Toegepaste Wiskunde
H9 Kwadratische vergelijkingen
Significante cijfers © Johan Driesse © 2013 – Johan Driesse.
Breuken optellen en aftrekken
Info 2 Breuken gelijknamig maken M A R T X I © André Snijers W K U N E
Portfolio opdracht RSA
Kettingbreuk = = = = = =[0;3;6;2]
GGD en KGV.
Soms handig om priemgetallen te gebruiken.
Transcript van de presentatie:

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

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

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

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

L.V. de Zeeuw Cryptografie en ICT

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

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

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 16199 ? Ontbinding in priemfactoren: 97 x 167 Ontbinden in priemfactoren L.V. de Zeeuw Cryptografie en ICT

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

Priemgetallen Wiskundig Intermezzo Het grootste priemgetal (op dit moment, link op eigen risico: 16,73 Megabytes text ): 243112609-1 Ontdekt op 23-Aug-2008 . Het getal bevat 12.978.189 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: http://primes.utm.edu/ Hier kun je dus ook terecht als je een groot priemgetal nodig hebt. L.V. de Zeeuw Cryptografie en ICT

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

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

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

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

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)=7344. Kies bijvoorbeeld e=13. Controleer GGD(7344,13)=1. Nu is 13 de andere openbare sleutel. L.V. de Zeeuw Cryptografie en ICT

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

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

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

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

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

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

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

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) =1671849507393788885941033 (mod 7519) =7300 Etc voor elke letter … k: C = 10713 (mod 7519) = 1480 L.V. de Zeeuw Cryptografie en ICT

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=7300565 (mod 7519) =73 Op zoeken in ASCII tabel 73 = ‘I’ Etc voor andere ontvangen letters … L.V. de Zeeuw Cryptografie en ICT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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