可以做用户调研的网站,广州软件开发软件公司,怎样做理财网站,旅行网站排名前十名下面我们以Alice和Bob为例叙述Diffie-Hellman密钥交换的原理。1,Diffie-Hellman交换过程中涉及到的所有参与者定义一个组#xff0c;在这个组中定义一个大质数p#xff0c;底数g。2,Diffie-Hellman密钥交换是一个两部分的过程#xff0c;Alice和Bob都需要一个私有的数字a在这个组中定义一个大质数p底数g。2,Diffie-Hellman密钥交换是一个两部分的过程Alice和Bob都需要一个私有的数字ab。下面是DH交换的过程图本图片来自wiki下面我们进行一个实例1.爱丽丝与鲍伯协定使用p23以及g5.2.爱丽丝选择一个秘密整数a6, 计算A g^a mod p并发送给鲍伯。A 5^6 mod 23 8.3.鲍伯选择一个秘密整数b15, 计算B g^b mod p并发送给爱丽丝。B 5^15 mod 23 19.4.爱丽丝计算s B a mod p19^6 mod 23 2.5.鲍伯计算s A b mod p8^15 mod 23 2.ECDH密钥交换ECDH:ECC算法和DH结合使用用于密钥磋商这个密钥交换算法称为ECDH。交换双方可以在不共享任何秘密的情况下协商出一个密钥。ECC是建立在基于椭圆曲线的离散对数问题上的密码体制给定椭圆曲线上的一个点P一个整数k求解QkP很容易给定一个点P、Q知道QkP求整数k确是一个难题。ECDH即建立在此数学难题之上。密钥磋商过程假设密钥交换双方为Alice、Bob其有共享曲线参数(椭圆曲线E、阶N、基点G)。1) Alice生成随机整数a计算Aa*G。 #生成Alice公钥2) Bob生成随机整数b计算Bb*G。 #生产Bob公钥3) Alice将A传递给Bob。A的传递可以公开即攻击者可以获取A。由于椭圆曲线的离散对数问题是难题所以攻击者不可以通过A、G计算出a。4) Bob将B传递给Alice。同理B的传递可以公开。5) Bob收到Alice传递的A计算Q b*A #Bob通过自己的私钥和Alice的公钥得到对称密钥Q6) Alice收到Bob传递的B计算Qa*B #Alice通过自己的私钥和Bob的公钥得到对称密钥Q‘Alice、Bob双方即得Qb*Ab*(a*G)(b*a)*G(a*b)*Ga*(b*G)a*BQ‘ (交换律和结合律)即双方得到一致的密钥Q。目前Openssl里面的ECC算法的套件支持是ECDSA/ECDH。在国密的SSL套件中可以使用ECDSA/ECC(密钥加密传输)ECDSA/ECDH(密钥磋商)两种套件