Om computers 'veilig' te laten communiceren kun je de data die verstuurd moet worden versleutelen (encryptie). Om dit te doen heb je een sleutel (key) nodig. Maar hoe kun je een sleutel met een ander afspreken als er nog geen veilig communicatiekanaal is. Twee wiskundigen, Diffie en Hellman, hebben hier een oplossing op bedacht. Deze oplossing is reeds tientallen jaren oud en wordt door vele encryptie methoden gebruikt (SSL, SSH, IPSec, PKI).

Om computers 'veilig' te laten communiceren kun je de data die verstuurd moet worden versleutelen (encryptie). Om dit te doen heb je een sleutel (key) nodig. Maar hoe kun je een sleutel met een ander afspreken als er nog geen veilig communicatiekanaal is. Twee wiskundigen, Diffie en Hellman, hebben hier een oplossing op bedacht. Deze oplossing is reeds tientallen jaren oud en wordt door vele encryptie methoden gebruikt (SSL, SSH, IPSec, PKI). Om te begrijpen hoe de methode werkt volgt hieronder een rekenvoorbeeld, Anneke en Bert spelen hier de computers die veilig willen communiceren over een onveilig medium zoals bijvoorbeeld het internet.
Anneke en Bert spreken onderling 2 getallen af: P en Y.
P is een priemgetal
Y is kleiner dan P
Anneke en Bert nemen vervolgens beide een geheim getal kleiner dan P (A en B) die ze niet openbaar maken. Met deze prive-getallen doen ze beide de volgende berekening:
Anneke: a = Y^A mod P (zie onder)
Bert: b = Y^B mod P
Daarna sturen ze elkaar de uitkomsten (a en b) toe en doen ze de volgende berekening.
Anneke: sleutel = b^A mod P
Bert: sleutel = a^B mod P
De uitkomsten zijn gelijk aan elkaar, de uitkomst is de sleutel!
Toevoeging 1
Hoe bereken je: a = Y^A mod P
Doe eerst Y tot de macht A, haal van de uitkomst net zo vaak P af tot het niet meer kan, a is de restwaarde. Dit kan eenvoudig door het MOD knopje in de scientific calculator van windows te gebruiken.
Toevoeging 2
Priemgetallen (enkel deelbaar door zichzelf en 1):
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499...
Voor de demonstratie liever geen kleine priemgetallen (te makkelijk voor de toehoorder om te gokken) en liever geen grote priemgetallen (berekeningen passen niet in het display van de rekenmachine).