Volledige versie bekijken : Diffie & Hellman [WISKUNDIG]



Fck_
14 January 2011, 12:15
Hallo !

Ik zit een beetje in de knoei met de methode van Diffie & Hellman (Protocol om een symmetrische sleutel te generen, zonder dat deze zelf over het netwerk verstuurd moet worden.). Het is niet zo dat ik het principe niet snap, het is meer het wiskundig gedeelte :P.

Ik probeer de situatie even te schetsen met kleine getallen.


We hebben 2 personen. We noemen deze Jan en Piet.
Jan heeft een bestand dat uiterst veilig (encryptie) bij Piet moet geraken.
Echter zit er ook een derde persoon, Neo op hun netwerk. En ze weten dat hij dit bestand wilt onderscheppen, en lezen. Jan en Piet moet dus zorgen dat het bestand geëncrypteerd over het netwerk gaat, maar dat Neo de sleutel ook niet te pakken krijgt. Jan en Piet hebben geen telefoon etc., dus de sleutel moet over het netwerk.

Dit probleem kan opgelost worden door de methode van Diffie & Hellman te gebruiken als volgt:


Jan kiest twee getallen, in dit geval: 5 en 97
Deze getallen zijn NIET geheim, dus Jan stuurt ze over het netwerk naar Piet.
Neo kan deze getallen ook zien.

Vervolgens:

Jan kiest een getal, kleiner dan 97. Dit getal houdt hij WEL GEHEIM.
In dit voorbeeld kiest jan het getal 40.
Met dit getal maakt Jan de volgende berekening:

5^40 mod 97 > Dit zou 16 als antwoord moeten geven, maar hoe kom je hierbij :P?


Piet doet hetzelfde. Hij kiest ook een getal onder 97,
namelijk 76 (hij houdt dit ook geheim).
Ook hij doet:

5^76 mod 97 > Dit zou 24 moeten zijn :P?

Vervolgens stuurt Jan het getal 16 naar Piet, en Piet het getal 24 naar Jan.
Neo kan dit zien en heeft tot nu toe dus de getallen 5, 97, 16 en 24.


Nu doet A: 24^40 mod 97 > 61?
En B doet: 16^67 mod 97 > Ook 61

Ze hebben nu beide het getal 61, dat als sleutel gebruikt zal worden. Neo kan niet aan dit getal komen omdat hij 40 en 67 niet weet.

Ik snap totaal die MOD niet :P. Ik kom andere dingen uit op mijn telmachine.
Moet ik haken gebruiken :P? Wat doet MOD :p? Voor wat staat MOD :p? Help :P.

Alvast bedankt !

ultddave
14 January 2011, 15:17
mod = modulo = rest na deling.

Bijvoorbeeld:
Integer 5 / Integer 3 = Integer 1 (gewone deling)
Integer 5 mod Integer 3 = Integer 2 (2 is de rest van 5 gedeeld door 3)

Dus X mod Y is dus de rest die je over houdt als je X door Y deelt. (Best eens terug denken aan de staartdeling van vroeger :D)

In Windows hebt ge normaal gezien op uw rekenmachine ook zo een "mod" knop. Alé, bij Windows 7 toch. ;)

Nog een voorbeeld;
Integer 10 mod Integer 3 = 1.
Want 3 past 3 keer in 10. En dan blijft er dus 10 - 3*3 = 10 - 9 = 1 over. ;)

Mvg,
Dave

Merel
19 January 2011, 18:12
Je vraagstelling is perfect opgesteld, beste Fck_.
Het is voor mij even mysterieus en ik had het eveneens graag begrepen. :rolleyes:

Maar zelfs met de (overigens ook duidelijke) uitleg van Dave, is het (voor mij toch) nog mysterieuzer geworden dan het al was.

Is de "staartdeling" (van vroeger) een typfout of is het ook al iets van NA mijnen tijd ?
(de tijd toen Jan naar Piet iets top secret kon verzenden met een postduif, zonder dat Neo er zelfs een flauw vermoeden kon van hebben).

Fck_
21 January 2011, 00:30
Staart delen is gewoon delen :D, maar zo een trucje dat ze je vroeger op de lager school leerden.

De modulus is inderdaad de rest. Alleen snap ik niet zo goed hoe ze dan die waarde er terug uithalen enzo (op het einde, dus beide dezelfde waarde krijgen). Heb mijn examen netwerken wel al gehad, en dat ging wel goed denk ik =D.

Ik kan de Diffie & Hellman methode, dus dat is niet het probleem. Het is gewoon heel de 'wiskundige theorie' die erachter zit die ik niet helemaal begrijp. Achja, is misschien ook niet nodig =D.

PeterN
21 January 2011, 01:07
Er staat ook een fout in :p
Alles klopt tot aan het einde maar dan staat er:

Nu doet A: 24^40 mod 97 > 61?
En B doet: 16^67 mod 97 > Ook 61
Dit is fout! Er staat een typo. B moet zijn 16^76 mod 97 > Ook 61

Uitleg:
A en B hebben het getal 5 en 97 gekozen.
A kiest 40 en doet 5^40 mod 97 dus (5 tot de macht 40) en daar de modulo van = 16
B kiest 76 en doet 5^76 mod 97 dus (5 tot de macht 76) en daar de modulo van = 24
Die uitkomsten worden uitgewisseld tss A en B.

A kent dus : 5, 97, 40 (wat hij zelf gekozen had en niemand weet) en de uitkomst van B namelijk 24
B kent dus : 5, 97, 76 (wat hij zelf gekozen had en niemand weet) en de uitkomst van A namelijk 16

Nu om een sleutel op te maken die aan beide zijde gezelfde is maar niet gekend door een ander is:
A doet met zijn gekende cijfers 24^40 mod 97 wat 61 uitkomt. Dit is de sleutel.
B doet met zijn gekende cijfers 16^76 mod 97 wat ook 61 uitkomt. Dus beiden hebben een zelfde sleutel maar een ander kan die niet achterhalen want de getallen 40 en 76 die in de formule zit zijn nooit uitgewisseld ;)