Diffie–Hellman-Austausch
Verfolge den öffentlichen Austausch und berechne das gemeinsame Geheimnis getrennt für Alice und Bob mit kleinen ganzen Zahlen.
About this tool
Dieses Lehrwerkzeug zeigt Diffie–Hellman mit kleinen ganzen Zahlen. Wähle eine Primzahl p und eine primitive Wurzel g modulo p als öffentliche Gruppenparameter. Alice wählt einen privaten Exponenten a, Bob einen privaten Exponenten b. Berechnen zeigt den Austausch. Die Beispiele setzen alle vier Eingaben; jede Eingabeänderung entfernt das alte Ergebnis. Ergebnis leeren behält die Eingaben.
Alice veröffentlicht A = gᵃ mod p, Bob veröffentlicht B = gᵇ mod p. Nach dem Austausch berechnet Alice S_A = Bᵃ mod p und Bob S_B = Aᵇ mod p. Beide Werte sind gleich gᵃᵇ mod p. Alle vier modularen Potenzen werden unabhängig berechnet; beide Endwerte bleiben sichtbar. Der öffentliche Austausch enthält nur p, g, A und B. Private Exponenten und Ergebnisse stehen zum Lernen getrennt bei ihrer Rolle; die Seite versteckt sie nicht vor dem Betrachter. Rollenfarben sind Kennzeichnungen, kein Farbmischmodell.
Erlaubt sind ganze Zahlen: 11 ≤ p ≤ 997, 2 ≤ g ≤ p−1 und 2 ≤ a,b ≤ p−2. Das Werkzeug prüft, ob p prim ist und g die Ordnung p−1 besitzt: Seine Potenzen erzeugen alle von null verschiedenen Reste modulo p. Es verwendet bewusst die volle multiplikative Gruppe. Diffie–Hellman in einer geeigneten kleineren Untergruppe mit Primzahlordnung ist ebenfalls eine gültige und verbreitete Konstruktion; diese Variante liegt außerhalb des gewählten Lehrmodells. Gleiche private Exponenten und ein gemeinsamer Wert von 1 sind in diesen Beispielen möglich.
Öffne den Rechenweg für A, B, S_A oder S_B. Die Exponentenbits werden von links nach rechts gelesen, beginnend mit Rest 1 und Exponentenpräfix 0. Jede Zeile verdoppelt den Präfix und addiert das aktuelle Bit. Sie quadriert den vorigen Rest modulo p und multipliziert bei Bit 1 zusätzlich mit der Basis modulo p. Der neue Rest entspricht der Basis hoch dem bisherigen Präfix, modulo p. Für die erlaubten Exponenten hat die Tabelle höchstens zehn Zeilen; bei Platzmangel scrollt sie innerhalb ihres Bereichs.
Diese kleinen Gruppen und gewählten Exponenten sind für echte Schlüssel ungeeignet. Einfaches Diffie–Hellman authentifiziert die Gegenstelle nicht und ist für einen Man-in-the-Middle-Angriff anfällig. Das Werkzeug bietet keine sichere Zufallserzeugung, Authentifizierung, Schlüsselableitung oder produktive Protokollumsetzung. Gültige Einstellungen samt Beispiel-Exponenten können in lokalen App-Cookies gespeichert werden. Beim Zurückkehren innerhalb der App können Ergebnis und gewählter Rechenweg erhalten bleiben. Neuladen stellt die Einstellungen wieder her und wartet auf Berechnen.
Quellen: RFC 2631, §2.1.1, zu öffentlichen Potenzen, getrennten Geheimnisberechnungen und Untergruppen mit Primzahlordnung; MathWorld: Primitive Root, zur Generatorordnung der vollen Gruppe. Historische Parametergrößen und Hash-Verfahren aus RFC 2631 sind keine Empfehlungen dieses Werkzeugs.