Diffie-Hellman-Schlüsselaustausch
Der Diffie-Hellman-Schlüsselaustausch, auch exponentieller Schlüsselaustausch genannt, ist eine Methode der digitalen Verschlüsselung, bei der Zahlen in bestimmten Potenzen verwendet werden, um Entschlüsselungsschlüssel auf der Grundlage von Komponenten zu erzeugen, die niemals direkt übertragen werden, wodurch die Aufgabe eines potenziellen Codeknackers mathematisch äußerst anspruchsvoll beziehungsweise praktisch unmöglich wird.
Um Diffie-Hellman zu implementieren, einigen sich die beiden Endnutzer Alice und Bob während der Kommunikation über einen Kanal, von dem sie wissen, dass er privat ist, auf positive ganze Zahlen p und q, so dass p eine Primzahl und q ein Generator von p ist. Der Generator q ist eine Zahl, die, wenn sie auf positive ganzzahlige Potenzen kleiner als p erhöht wird, niemals dasselbe Ergebnis für zwei solche ganzen Zahlen ergibt. Der Wert von p kann groß sein, aber der Wert von q ist normalerweise klein.
Sobald sich Alice und Bob auf p und q geeinigt haben, wählen sie positive ganzzahlige persönliche Schlüssel a und b, die beide kleiner sind als der Primzahlmodulus p. Keiner der beiden Benutzer gibt seinen persönlichen Schlüssel an irgendjemanden weiter; idealerweise merken sie sich diese Zahlen und schreiben sie nicht auf oder speichern sie irgendwo. Als Nächstes berechnen Alice und Bob die öffentlichen Schlüssel A und B auf der Grundlage ihrer persönlichen Schlüssel nach den folgenden Formeln
A = qa mod p
und
B = qb mod p
Die beiden Anwender können ihre öffentlichen Schlüssel A und B danach über ein unsicheres Netz wie das Internet oder in Unternehmen genutzte Wide Area Networks (WAN) austauschen. Von diesen öffentlichen Schlüsseln ausgehend können beide den gemeinsamen Schlüssel K berechnen, der auf ihren eigenen Schlüsseln basiert. Alice nutzt dazu die Formel
K = Ba mod p
Während Bob K mit der folgenden Formel berechnet
K = Ab mod p
Unabhängig davon, welche der beiden Formeln verwendet wird, K hat immer denselben Wert. Das wichtige dabei ist, dass die beiden persönlichen Schlüssel a und b, die zur Berechnung von K benötigt werden, dabei aber nicht über ein unsicheres Medium übertragen wurden. Weil K eine große und offenkundig zufällige Zahl ist, hat ein potenzieller Hacker praktisch keine Chance, auf den gemeinsamen Schlüssel K zu kommen, selbst nicht mithilfe eines leistungsfähigen Rechners, der innerhalb kürzester Zeit Millionen Versuche durchführen kann. In der Theorie können die beiden Nutzer damit sicher über ein öffentliches Netz kommunizieren und eine Verschlüsselungsmethode ihrer Wahl verwenden, die dabei den gemeinsamen Schlüssel K einsetzt.
Das größte Problem bei Diffie-Hellman in seiner ursprünglichen Form ist der Mangel an Authentifizierung. Verbindungen, die nur mit Diffie-Hellman gesichert werden, sind deswegen anfällig gegen Man-in-the-Middle-Angriffe. Diffie-Hellman sollte aus diesem Grund nur zusammen mit einer allgemein akzeptierten Authentifizierungsmethode wie Digitalen Signaturen eingesetzt werden, um die Identität der Kommunikationspartner über öffentliche Netze überprüfen zu können. Diffie-Hellman eignet sich nichtsdestotrotz gut zur Absicherung von Datenverbindungen, wird aber nur selten für Daten genutzt, die lange Zeit gespeichert und archiviert werden sollen.