DiffieHellmanKeyExchange 迪菲-赫尔曼密钥交换
意外看到了这个算法,勾起对非对称加密中密码交换的问题的思考:如何安全的传输密钥?
这个算法专利在1997年过期,可以使用。
ALICE和BOB要进行秘密的交流,使用RSA算法来加密。但是需要将密钥发送给对方。
于是两人使用了迪菲-赫尔曼密钥交换算法。
-
ALICE和BOB事先协定私钥P和G。
-
ALICE生成自己的秘密整数a,BOB生成自己的秘密整数b。这个数字是保密的,只能自己知道。
-
ALICE计算A = powmodp(G, a),并将A发送给BOB; BOB计算B = powmodp(G, b),并将B发送给ALICE;
-
ALICE计算secret1= powmodp(B,a); secret1就是密钥;BOB计算secret2 = powmodp(A,b); secret2就是密钥。 secret1是等于secret2的,两个人的密钥就交换完毕了。
无法防御中间人攻击
https://www.geeksforgeeks.org/implementation-diffie-hellman-algorithm/