Diffie-Hellman-sleuteluitwisselingsprotocol

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

Het diffie-hellman-sleuteluitwisselingsprotocol is een cryptografisch protocol, waarmee twee deelnemers die verder niets van elkaar weten over een onbeveiligd communicatiekanaal een geheime encryptiesleutel kunnen uitwisselen, die daarna kan worden gebruikt om communicatie tussen de deelnemers te versleutelen. Dit principe wordt bijvoorbeeld gebruikt voor Virtual Private Networks (VPN's) gebaseerd op IPsec.

Geschiedenis[bewerken]

Deze methode voor het uitwisselen van sleutels werd voor het eerst beschreven door Whitfield Diffie en Martin Hellman in 1976 in een document getiteld "New Directions in Cryptography", dat gepubliceerd werd in de IEEE Transactions on Information Theory. Later bleek dat dit principe al eerder ontdekt was door Malcolm J. Williamson van het Britse Government Communications Headquarters (GCHQ), onderdeel van de Britse geheime dienst voor signals intelligence. Dit onderzoek werd echter geheimgehouden tot in de jaren negentig.

Het diffie-hellman-protocol, waarvoor in 1977 een patent werd toegekend in de Verenigde Staten dat nu verlopen is, legde de basis voor de huidige technologie van de asymmetrische cryptografie.

Het bekendere RSA-encryptiealgoritme werd een jaar later in 1977 ontworpen.

Diffie-hellman wiskundig[bewerken]

Diffie-hellman-sleuteluitwisselingsprotocol

Het idee achter dit algoritme is dat iemand mee kan luisteren en elke boodschap tussen Alice en Bob onderschept kan worden. De kunst is dus om de boodschappen zo te formuleren dat alleen Alice en Bob weten waar het over gaat. Hiervoor moeten zij vooraf een onderlinge versleuteling afspreken. Het Diffie-Hellman sleutelwisselingsprotocol maakt dit mogelijk zonder dat meeluisteraars de versleuteling kunnen onderscheppen.

De volgende stappen worden uitgevoerd:

1. Alice bedenkt een priemgetal p en een basisgetal g.
2. Alice verzint een geheim getal a. Vervolgens berekent ze op basis van a, p en g het getal A.
A = g^a \mod  p
3. Alice verstuurt p, g en A naar Bob. 4. Bob verzint ook een geheim getal b en berekent op basis van de ontvangen p en g op dezelfde manier het getal B dat hij naar Alice stuurt.
B = g^b \mod  p
4. Bob berekent op basis van A,b en p het gemeenschappelijke geheime getal X X = A^b \mod  p
5. Alice berekent eveneens het gemeenschappelijke geheime getal X, maar dan op basis van B, a en p. X = B^a \mod  p

De getallen p, g, A en B zijn publiek, wat wil zeggen dat iedereen die meeluistert, deze getallen kan onderscheppen. Maar het gemeenschappelijke getal dat Alice en Bob hebben berekend, is geheim, want om dat te berekenen is a of b nodig. Dit getal kunnen ze dus gebruiken om hun berichten naar elkaar toe te versleutelen. Voor een buitenstaander is het zeer moeilijk om X te achterhalen zonder a of b, want er zijn namelijk vele manieren om met p en g tot A of B te komen.

Hieronder het bewijs dat Alice en Bob tot een gemeenschappelijk getal X komen.
A = g^a \mod  p
B = g^b \mod  p
X = (g^a \mod  p)^b \mod  p = g^{ab} \mod  p = (g^b \mod  p)^a \mod  p