Skip to content

Extra uitleg Diffie-Hellman

Laten we Diffie-Hellman demonstreren met een klein voorbeeld. Alice en Bob spreken op voorhand de volgende variabelen af:

\[ p = 23 \]
\[ g = 5 \]

Alice kiest eerst haar geheime variabele \(a = 4\). Nu gaat ze een getal genereren om aan Bob te geven.

\[ A = g^{a} \mod{p} = 5^{4} \mod{23} = 4 \]

Ondertussen kiest Bob ook zijn geheime variabele \(b = 3\). Bob gaat ook een getal genereren om aan Alice te geven.

\[ B = g^{b} \mod{p} = 5^{3} \mod{23} = 10 \]

Alice en Bob wisselen nu de getallen \(A\) en \(B\) met elkaar uit, erna gaan ze met deze getallen aan de slag.

Alice gaat met behulp van \(B\) van Bob en haar eigen geheim a de gemeenschappelijke sleutel genereren:

\[ S_{Alice} = B^{a} \mod{p} = 10^{4} \mod{23} = 18 \]

Bob gaat ondertussen met behulp van \(A\) van Alice en zijn eigen geheim b ook de gemeenschappelijke sleutel genereren:

\[ S_{Bob} = A^{b} \mod{p} = 4^{3} \mod{23} = 18 \]

De gemeenschappelijke sleutel is dus \(S_{Alice} = S_{Bob} = S = 18\).

We zien dus dat Alice en Bob beiden dezelfde waarde uitkomen voor de gemeenschappelijke sleutel \(S\). Tijdens de berekeningen hebben Alice en Bob hun geheimen (\(a = 4\) en \(b = 3\)) nooit prijsgegeven! Met deze sleutel kunnen ze nu overschakelen naar symmetrische encryptie.

Waarom werkt dit?

\[ S_{Alice} = B^{a} \mod{p} = (g^{b} \mod{p})^{a} \mod{p} = (g^{b})^{a} \mod{p} = g^{ab} \mod{p} \]
\[ S_{Bob} = A^{b} \mod{p} = (g^{a} \mod{p})^{b} \mod{p} = g^{ab} \mod{p} \]