De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

HOGESCHOOL ROTTERDAM / CMI Cryptografie en ICT

Verwante presentaties


Presentatie over: "HOGESCHOOL ROTTERDAM / CMI Cryptografie en ICT"— Transcript van de presentatie:

1 HOGESCHOOL ROTTERDAM / CMI Cryptografie en ICT

2 HOGESCHOOL ROTTERDAM / CMI 5 Public-key cryptografie (Asymetrische cryptosystemen) deel 2 L.V. de ZeeuwCryptografie en ICT2

3 HOGESCHOOL ROTTERDAM / CMI Diffie-Hellman sleutel uitwisseling Bij symmetrische cryptografie moeten beiden communicatie partners over dezelfde sleutel beschikken. Whitfield Diffie en Martin Hellman (gebaseerd op een concept bedacht door Ralph Merkle) bedachten in 1976 een oplossing voor uitwisselen van symmetrische sleutels over een onveilig kanaal. L.V. de ZeeuwCryptografie en ICT3

4 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwCryptografie en ICT4 Ralph Merkle Martin Hellman Whitfield Diffie

5 HOGESCHOOL ROTTERDAM / CMI Werking Diffie-Hellman systeem Anna en Bob willen met elkaar communiceren. Ze dienen over dezelfde geheime sleutel te beschikken. L.V. de ZeeuwCryptografie en ICT5

6 HOGESCHOOL ROTTERDAM / CMI Werking Diffie-Hellman systeem Anna en Bob spreken twee grote priemgetallen af. Deze getallen zijn openbaar. L.V. de ZeeuwCryptografie en ICT6 Priemgetallen p=23 en g=5

7 HOGESCHOOL ROTTERDAM / CMI Werking Diffie-Hellman systeem Anna bedenkt een geheim getal x Bob bedenkt een geheim getal y. L.V. de ZeeuwCryptografie en ICT7 Geheim getal x=6 Geheim getal y=15

8 HOGESCHOOL ROTTERDAM / CMI Werking Diffie-Hellman systeem De boodschap van Anna aan Bob is het getal g x (mod p) L.V. de ZeeuwCryptografie en ICT8 5 6 mod 23 = 8.

9 HOGESCHOOL ROTTERDAM / CMI Werking Diffie-Hellman systeem De boodschap van Bob aan Anna is het getal g y (mod p) L.V. de ZeeuwCryptografie en ICT mod 23 = 19

10 HOGESCHOOL ROTTERDAM / CMI Werking Diffie-Hellman systeem Anna berekent (g y (mod p) ) x De uitkomst is de gemeenschappelijke geheime sleutel L.V. de ZeeuwCryptografie en ICT mod 23 = 2

11 HOGESCHOOL ROTTERDAM / CMI Werking Diffie-Hellman systeem Bob berekent (g x (mod p) ) y De uitkomst is de gemeenschappelijke geheime sleutel. Immers (g y (mod p) ) x =(g x (mod p) ) y L.V. de ZeeuwCryptografie en ICT mod 23 = 2

12 HOGESCHOOL ROTTERDAM / CMI Werking Diffie-Hellman systeem De gemeenschappelijke geheime sleutel kan vervolgens gebruikt worden voor het symmetrische vercijferen van boodschappen met bijvoorbeeld DES, IDEA of AES. L.V. de ZeeuwCryptografie en ICT12

13 HOGESCHOOL ROTTERDAM / CMI Discrete logaritme probleem Het Diffie-Hellmansysteem is gebaseerd op het discrete logaritme probleem: Vindt x gegeven g, p en g x (mod p) Voorbeeld 1: Gegeven: g=2, p=3 en 2 x (mod 3) = 1 Hoeveel is x ? Antwoord x=2. L.V. de ZeeuwCryptografie en ICT13

14 HOGESCHOOL ROTTERDAM / CMI Discrete logaritme probleem Voorbeeld 2: Gegeven: g=5, p=23 en 5 x (mod 23) = 8 Hoeveel is x ? Antwoord x=6 Voorbeeld 3: Gegeven: g= , p= en x (mod ) = Hoeveel is x ? Antwoord x=123. L.V. de ZeeuwCryptografie en ICT14

15 HOGESCHOOL ROTTERDAM / CMI Diffie-Hellman probleem Gegeven g, p en g x (mod p) en g y (mod p) vind g xy (mod p) - de sleutel! L.V. de ZeeuwCryptografie en ICT15

16 HOGESCHOOL ROTTERDAM / CMI Aanval op Diffie-Hellman systeem Probleem: Hoe weet Bob dat de boodschap afkomstig is van Anna? Niet! Chris kan Anna en Bob voor de gek houden en achter de inhoud van de boodschap komen. L.V. de ZeeuwCryptografie en ICT16

17 HOGESCHOOL ROTTERDAM / CMI Aanval Diffie-Hellman systeem L.V. de ZeeuwCryptografie en ICT17 Anna kiest een geheim getal x Bob kiest een geheim getal y Chris kiest een geheim getal z P en G zijn openbaar

18 HOGESCHOOL ROTTERDAM / CMI Aanval Diffie-Hellman systeem L.V. de ZeeuwCryptografie en ICT18 g x (mod p)g z (mod p) g y (mod p)

19 HOGESCHOOL ROTTERDAM / CMI Aanval Diffie-Hellman systeem L.V. de ZeeuwCryptografie en ICT19 Anna berekent (g z (mod p)) x Bob berekent (g z (mod p)) y Chris berekent (g x (mod p)) z en (g y (mod p)) z

20 HOGESCHOOL ROTTERDAM / CMI Aanval Diffie-Hellman systeem Anna en Bob denken dat ze met elkaar communiceren. Elke boodschap wordt door Chris onderschept en eventueel gewijzigd aan Bob doorgegeven (of omgekeerd) ‘Man in the Middle attack’ of ‘Middle person attack’ L.V. de ZeeuwCryptografie en ICT20

21 HOGESCHOOL ROTTERDAM / CMI YouTube: Public Key Cryptography - Diffie-Hellman Key Exchange L.V. de ZeeuwCryptografie en ICT21

22 HOGESCHOOL ROTTERDAM / CMI Knapzak systeem Het eerste public-key cryptosysteem dat gebruikt kon worden voor encryptie en decryptie is het knapzak (knapsack) cryptosysteem. In 1978 bedacht door Merkle en Hellman. L.V. de ZeeuwCryptografie en ICT22

23 HOGESCHOOL ROTTERDAM / CMI Knapzak systeem Het knapzak-systeem is meerdere malen gekraakt is daarna wel verbeterd maar wordt niet als veilig beschouwd en tegenwoordig zelden gebruikt. L.V. de ZeeuwCryptografie en ICT23

24 HOGESCHOOL ROTTERDAM / CMI Knapzak probleem Een knapzak is gevuld met een keuze uit een grote verzameling voorwerpen ieder met zijn eigen gewicht. Kun je uitgaande van het totale gewicht afleiden welke voorwerpen, gegeven hun gewicht, wel of niet in de knapzak zitten? L.V. de ZeeuwCryptografie en ICT24

25 HOGESCHOOL ROTTERDAM / CMI Som wiskundig intermezzo Met Σ (griekse letter sigma) wordt een optelling (som) bedoeld. Voorbeeld: 4 Σ k = = 10 k=1 L.V. de ZeeuwCryptografie en ICT25

26 HOGESCHOOL ROTTERDAM / CMI Knapzak probleem Gegeven een knapzak vector (de publieke sleutel): a= (a 1, a 2,a 3,...,a n ) Gegeven een binaire vector (de klare tekst): x= (x 1, x 2,x 3,...,x n ) waarbij x i = {0,1} n Dan S = Σ a i x i i=1 (S is de cijfertekst) L.V. de ZeeuwCryptografie en ICT26 Wanneer a en x gegeven zijn kun je S makkelijk bepalen. Maar als a en S gegeven zijn is x veel moeilijker te berekenen.

27 HOGESCHOOL ROTTERDAM / CMI Voorbeeld 1 Gegeven knapzakvector a = (3,5,7,9) en n = 4 (het aantal elementen in a) S =10 Wat is de binaire vector x? Antwoord x = (1,0,1,0) omdat 1x3 + 0x5 + 1x7 + 0x9 = 10 L.V. de ZeeuwCryptografie en ICT27

28 HOGESCHOOL ROTTERDAM / CMI Voorbeeld 2 Gegeven knapzakvector a = (16,20,31,34,55,62,64,70) en n = 8 (het aantal elementen in a) S =183 Wat is de binaire vector x? Antwoord x = (0,1,1,0,0,1,0,1) omdat 0x16+1x20+1x31+0x34+0x55+1x62+0x64+1x70=183 L.V. de ZeeuwCryptografie en ICT28

29 HOGESCHOOL ROTTERDAM / CMI Voorbeeld 3 Gegeven knapzakvector a = (4,7,1,12,10) en n = 5 (het aantal elementen in a) S =17 Wat is de binaire vector x? Antwoord x = (0,1,0,0,1) en (1,0,1,1,0) omdat 0x4+1x7+0x1+0x12+1x10=17 en 1x4+0x7+1x1+1x12+0x10=17 L.V. de ZeeuwCryptografie en ICT29

30 HOGESCHOOL ROTTERDAM / CMI Knapzak crypto Kies een knapzak vector a en een som S zodanig dat het vinden van de binaire vector x ondoenlijk is. Een klaretekst x (in bits omgezet) kan met openbare sleutel a leiden tot de cijfertekst S. L.V. de ZeeuwCryptografie en ICT30

31 HOGESCHOOL ROTTERDAM / CMI Probleempje … Ook voor de ontvanger is het moeilijk de om de klare tekst terug te vinden. Er zijn gelukkig knapzakken waar de oplossing altijd eenvoudig is: L.V. de ZeeuwCryptografie en ICT31

32 HOGESCHOOL ROTTERDAM / CMI Superstijgende rij Een superstijgende rij is een rij waarbij elk element groter is dan de som van alle voorgaande elementen. Voorbeelden: a= (1,2,4,8,16,32,64) a = (141, 203, 427, 981, 2406) Formeel: i-1 a i > S = Σ a j, 1 < i ≤ n j=1 L.V. de ZeeuwCryptografie en ICT32

33 HOGESCHOOL ROTTERDAM / CMI Superstijgende rij Opdracht: Als een superstijgende rij a’=(1,3,5,10,22) en S=14 wat is dan de binaire vector x? L.V. de ZeeuwCryptografie en ICT (1, 3, 5, 10, 22) {1, 1, 0, 1, 0}

34 HOGESCHOOL ROTTERDAM / CMI Probleempje… Nu is het ontcijferen eenvoudig geworden … voor iedereen! Oplossing: L.V. de ZeeuwCryptografie en ICT34

35 HOGESCHOOL ROTTERDAM / CMI GGD wiskundig intermezzo De grootste gemene deler, afgekort met ggd (gcd in het Engels) van een aantal gegeven getallen is het grootste getal waar alle gegeven getallen door gedeeld kunnen worden. De delers van 30 zijn: 1, 2, 3, 5, 6, 10, 15 en 30. De delers van 48 zijn: 1, 2, 3, 4, 6, 8, 12, 16, 24 en 48. De grootst gemeenschappelijke deler is 6. We noteren dat als: ggd(30,48)=6 Voorbeelden: ggd(6,12)=6 ggd(6,9,12)=3 ggd(6,35)=1 (6 en 35 zijn relatief priem) L.V. de ZeeuwCryptografie en ICT35

36 HOGESCHOOL ROTTERDAM / CMI Algoritme van Euclides wiskundig intermezzo De GGD kun je bepalen met het algoritme van Euclides: function ggd(a, b) while a ≠ b If a > b a := a - b else b := b - a return a L.V. de ZeeuwCryptografie en ICT36

37 HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwCryptografie en ICT37 Animatie van het algoritme van Euclides voor de getallen 252 en 105. De dwarsbalkjes vertegenwoordigen veelvouden van 21, de grootste gemene deler (ggd). In elke stap wordt het kleinere getal van het grotere getal afgetrokken, dit totdat een getal tot nul wordt teruggebracht. Het resterende getal noemt men de grootste gemene deler. Bron: Algoritme van Euclides wiskundig intermezzo

38 HOGESCHOOL ROTTERDAM / CMI Algoritme van Euclides wiskundig intermezzo Rekenschema voor algoritme van Euclides: GGD(20,8)=4 20=2x8+4 8=2x4+0 GGD(385,120)=5 385=3x =4x =1x =4x 5+ 0 L.V. de ZeeuwCryptografie en ICT38

39 HOGESCHOOL ROTTERDAM / CMI Uitgebreide Algoritme van Euclides wiskundig intermezzo Er is ook een uitgebreid algoritme van Euclides. Dit algoritme wordt gebruikt om de multiplicatieve inverse van een getal te vinden Een multiplicatieve inverse van een getal a is het getal b waarvoor geldt ab = 1 (modulo m) L.V. de ZeeuwCryptografie en ICT39

40 HOGESCHOOL ROTTERDAM / CMI Uitgebreide Algoritme van Euclides wiskundig intermezzo Vermenigvuldiging modulo: 7 x L.V. de ZeeuwCryptografie en ICT40 Opdracht: Met welke getal moet je 3 vermenigvuldigen (modulo 7) om 1 als antwoord te krijgen? 3x5=1 (mod 7) 3 en 5 heten elkaars multiplicatieve inversen

41 HOGESCHOOL ROTTERDAM / CMI Uitgebreide Algoritme van Euclides wiskundig intermezzo L.V. de ZeeuwCryptografie en ICT41 Voor welke waarde van a geldt dat a · 7 = 1 (mod 32) ? We zoeken een a en een b zodat geldt: a · 7 + b · 32 = 1 Eerst: 0 · · 32 = 32 (1) 1 · · 32 = 7 (2) Links en rechts van (2) x 4 geeft: 0 · · 32 = 32 (1) 4 · · 32 = 28 (3)

42 HOGESCHOOL ROTTERDAM / CMI Uitgebreide Algoritme van Euclides wiskundig intermezzo L.V. de ZeeuwCryptografie en ICT42 0 · · 32 = 32 (1) 4 · · 32 = 28 (3) Aftrekken -4 · · 32 = 4 (4) 1 · · 32 = 7 (2) -4 · · 32 = 4 (4) Aftrekken 5 · · 32 = 3 (5)

43 HOGESCHOOL ROTTERDAM / CMI Uitgebreide Algoritme van Euclides wiskundig intermezzo L.V. de ZeeuwCryptografie en ICT43 1 · · 32 = 7 (2) -4 · · 32 = 4 (4) Aftrekken 5 · · 32 = 3 (5) -4 · · 32 = 4 (4) 5 · · 32 = 3 (5) Aftrekken -9 · · 32 = 1 (6)

44 HOGESCHOOL ROTTERDAM / CMI Uitgebreide Algoritme van Euclides wiskundig intermezzo L.V. de ZeeuwCryptografie en ICT44 -9 · · 32 = 1 (6) Hier staat de oplossing van ons probleem. Want regel (6) levert: -9 · 7 = · 32 Dat is vertaald naar het modulo-rekenen: - 9 · 7 = 1 (mod 32) Conclusie: a = 23 (-9+32). Dit noemen we de inverse van 7 (mod 32). Inderdaad geldt: 23 · 7 = 1 (mod 32) immers - 9 = 23 (mod 32) Experimenteer met: Vermenigvuldigtabel modulo mVermenigvuldigtabel modulo m NB a = b (mod m) als a = b + k · m

45 HOGESCHOOL ROTTERDAM / CMI Knapzak crypto stap 1 Genereer een superstijgende rij (geheime sleutel) a’: i-1 a’ i > Σ a j, j=1 Voorbeeld: Bob genereert: a’ = (1,3,5,10,22): de geheime sleutel L.V. de ZeeuwCryptografie en ICT45

46 HOGESCHOOL ROTTERDAM / CMI Knapzak crypto stap 2 Kies een getal m groter dan de som van alle getallen in a’: n m > Σ a j j=1 Voorbeeld: = 41. Bob kiest m=50 L.V. de ZeeuwCryptografie en ICT46

47 HOGESCHOOL ROTTERDAM / CMI Knapzak crypto stap 3 Kies een waarde w zodanig dat w en m relatief priem zijn: GGD(w,m)=1 Voorbeeld: Bob kiest w = 7 en controleren GGD(7,50)=1 L.V. de ZeeuwCryptografie en ICT47

48 HOGESCHOOL ROTTERDAM / CMI Knapzak crypto stap 4 Bereken de inverse van w: w -1 zodanig dat ww -1 =1 (mod m) Voorbeeld: Bob berekent: 7 w -1 = 1 (mod 50) → w -1 = 43 Controleer dat 7 x 43 = 1 (mod 50) L.V. de ZeeuwCryptografie en ICT48

49 HOGESCHOOL ROTTERDAM / CMI Knapzak crypto stap 5 Bereken b (publieke sleutel) door elk element van a’ te vermenigvuldigen met w (mod m) b = w a’ (mod m) Voorbeeld: a’ = (1,3,5,10,22) dus b 1 = 7 x 1 (mod 50) = 7 b 2 = 7 x 3 (mod 50) = 21 b 3 = 7 x 5 (mod 50) = 35 b 4 = 7 x 10 (mod 50) = 20 b 5 = 7 x 22 (mod 50) = 4 Dus b = (7,21,35,20,4): de publieke sleutel van Bob L.V. de ZeeuwCryptografie en ICT49

50 HOGESCHOOL ROTTERDAM / CMI Knapzak crypto stap 6 Het openbaar gegeven is b a’, m, w, w -1 worden geheim gehouden. Voorbeeld: Openbaar: b = (7,21,35,20,4) Geheim: a’ = (1,3,5,10,22), m=50,w=7, w -1 =43 L.V. de ZeeuwCryptografie en ICT50

51 HOGESCHOOL ROTTERDAM / CMI Knapzak crypto stap 7 Cijfertekst S kan de afzender berekenen door de bewerking S=bx waar x de klare tekst is in bits (bitvector) die de afzender aan de ontvanger wil sturen. Voorbeeld: als de publieke sleutel van Bob is b = (7,21,35,20,4) en x=(1,1,0,1,0) dan is S=bx=1x7+1x21+0x35+1x20+0x4=48 Het vercijferde bericht van Anna aan Bob is 48 L.V. de ZeeuwCryptografie en ICT51

52 HOGESCHOOL ROTTERDAM / CMI Knapzak crypto stap 8 De ontvanger moet voor het ontcijferen de cijfertekst S vermenigvuldigen met w -1 dus w -1 S (mod m). Met w -1 S (mod m) en de superstijgende rij a’ wordt de klare tekst verkregen. Voorbeeld: w -1 x48=43x48=14 (mod 50) a’ = (1, 3, 5, 10, 22) x = (1, 1, 0, 1, 0) de klare tekst. L.V. de ZeeuwCryptografie en ICT52


Download ppt "HOGESCHOOL ROTTERDAM / CMI Cryptografie en ICT"

Verwante presentaties


Ads door Google