辽宁省建设工程招标协会网站,软件开发平均工资,玉树州网站建设公司,婚庆公司网站建设总结DH介绍
Diffie-Hellman密钥协议算法是一种确保共享密钥安全穿越不安全网络的方法。 这个机制的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥#xff0c;然后可以用这个密钥进行加密和解密。 但是注意#xff0c;这个密钥交换协议 只能用于密钥的交换#xff0c;而…DH介绍
Diffie-Hellman密钥协议算法是一种确保共享密钥安全穿越不安全网络的方法。 这个机制的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥然后可以用这个密钥进行加密和解密。 但是注意这个密钥交换协议 只能用于密钥的交换而不能进行消息的加密和解密。 双方确定要用的密钥后要使用其他对称密钥操作加密算法实际加密和解密消息。 这种秘钥交换技术的目的在于使两个用户安全的协商一个会话密钥。
DH密钥交换流程
步骤1Alice和Bob共同确定公开的大素数 P P P和一个整数 G G G其中 G G G是 P P P的原根步骤2Alice选取一个秘密整数 a a a作为私钥然后对 a a a进行幂模计算得到公钥 A A A A G a m o d P AG^a~\mathrm{mod}~P AGa mod P然后将 A A A发给Bob步骤3和Alice一样Bob选取一个秘密整数 b b b作为私钥然后对 b b b进行幂模计算得到公钥 B B B B G b m o d P BG^b~\mathrm{mod}~P BGb mod P然后将 B B B发给Alice【 A , B A, B A,B就是所谓的Diffie-Hellman公开值】Alice计算密钥 K 1 B a m o d P K_1B^a~\mathrm{mod}~P K1Ba mod P和Alice一样Bob计算密钥 K 2 A b m o d P K_2A^b~\mathrm{mod}~P K2Ab mod P K 1 B a m o d P ( G b ) a m o d P G a b m o d P , K 2 A b m o d P ( G a ) b m o d P G a b m o d P K_1B^a~\mathrm{mod}~P(G^b)^a~\mathrm{mod}~PG^{ab}~\mathrm{mod}~P, K_2A^b~\mathrm{mod}~P(G^a)^b~\mathrm{mod}~PG^{ab}~\mathrm{mod}~P K1Ba mod P(Gb)a mod PGab mod P,K2Ab mod P(Ga)b mod PGab mod P因此 K 1 K 2 K_1K_2 K1K2【 K 1 , K 2 K_1, K_2 K1,K2就是所谓的共享密钥】 安全性分析
对于幂模运算 c b e m o d m cb^e~\mathrm{mod}~m cbe mod m只要给定 b , e , m b, e, m b,e,m求模幂的过程是非常高效的。另一方面当 m m m是大素数时给定 b , c , m b, c, m b,c,m求指数 e e e的过程是很难的【称为离散对数的难题】。这种单向函数的特性使模幂运算被多次用于密码算法中。
DH通信过程可见只有 G , P , A , B G, P, A, B G,P,A,B会在传输而 a , b a, b a,b是不会传输的。同时因为离散对数的难解当 G , P G, P G,P选的足够大时通过 A , B A, B A,B分别推算 a , b a, b a,b是极其困难的。进而破解出最终的对称密钥K也是极其困难的。