Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert den Diffie-Hellman-Schlüsselaustauschalgorithmus (Diffie-Hellman).

PHP implementiert den Diffie-Hellman-Schlüsselaustauschalgorithmus (Diffie-Hellman).

*文
*文Original
2017-12-27 10:03:413469Durchsuche

Wie implementiert PHP den Diffie-Hellman-Schlüsselaustausch-Algorithmus (Diffie-Hellman)? In diesem Artikel werden hauptsächlich das Prinzip des Diffie-Hellman-Schlüsselaustauschalgorithmus (Diffie-Hellman) und PHP-Implementierungsbeispiele vorgestellt. Ich hoffe, es hilft allen.

Diffie-Hellman ist ein Algorithmus, der es zwei Parteien ermöglicht, einen geheimen Schlüssel auf einem unsicheren öffentlichen Kanal festzulegen. Beide Parteien können diesen geheimen Schlüssel später für die Verschlüsselung von Inhalten (z. B. RC4) verwenden.
Das Prinzip des Diffie-Hellman-Algorithmus ist sehr einfach:

Wie oben ist es am Ende leicht durch mathematische Prinzipien zu beweisen(g^ b %p)^a%p = (g^a%p)^b%p, sodass sie den gleichen Schlüssel erhalten.
Mit Ausnahme von a, b und dem endgültigen öffentlichen Schlüssel, die geheim sind, kann der Rest auf dem öffentlichen Kanal übertragen werden. In tatsächlichen Anwendungen ist p sehr groß (mehr als 300 Bit) und g benötigt normalerweise 2 oder 5. Dann ist es fast unmöglich, a aus p, g und g^a%p zu berechnen (diskrete mathematische Aufgabe).

Viele Sprachen haben diesen Algorithmus implementiert. Nehmen Sie als Beispiel Crypt_DiffieHellman im PHP-Paket:

<?php
include &#39;DiffieHellman.php&#39;;
 
/*
 *   Alice: prime = 563
 *       generator = 5
 *       private key = 9
 *   Bob:  prime = 563
 *       generator = 5
 *       private key = 14
 */
 
$p = 563;
$g = 5;
$alice = new Crypt_DiffieHellman($p, $g, 9);
$alice_pubKey = $alice->generateKeys()->getPublicKey();
 
$bob = new Crypt_DiffieHellman($p, $g, 14);
$bob_pubKey = $bob->generateKeys()->getPublicKey();
 
$alice_computeKey = $alice->computeSecretKey($bob_pubKey)->getSharedSecretKey();
$bob_computeKey = $bob->computeSecretKey($alice_pubKey)->getSharedSecretKey();
 
echo "{$alice_pubKey}-{$bob_pubKey}-{$alice_computeKey}-{$bob_computeKey}"; //78-534-117-117

Verwandte Empfehlungen :

PHP-Algorithmus zum Teilen eines Arrays ohne array_chunk()_PHP-Tutorial

PHP-Algorithmus, wie es geht Drucken Sie das Bild unten aus

PHP-Methode zur Lösung von Session Deadlock_PHP-Tutorial


Das obige ist der detaillierte Inhalt vonPHP implementiert den Diffie-Hellman-Schlüsselaustauschalgorithmus (Diffie-Hellman).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn