RSA与Diffie-Hellman相结合的保密通信

来源:互联网 发布:淘宝客服售后工作 编辑:程序博客网 时间:2024/06/02 11:55
最近由于工作需要在思考身份验证和保密通信 ,把它记录下来.
Deffie-Hellman 密钥交换算法最大的缺点的存在中间人攻击的弱点,Deffie-Hellman简述如下:
前提:约定一个大素数p,一个小于p的大整数g.
A: X = gx mod p; x是一随机整数.
B: Y = gy mod p; y是一随机整数.
A tell B X, B tell A Y.
那么,Key = XY mod p.
此时AB双方计算出来的密钥相等,这是一个基于公认的求离散对数数学难题的算法.
从上面的过程中很容易发现:如果有中间人监听到交换过程,就可以知道X和Y,由于p和g是公开的,那么中间人很容易根据Key = XY mod p计算出密钥.从而成功实现中间人攻击!

RSA是一个公钥-私钥加密算法,对外公开Public Key,外部使用公钥加密数据发送给内部,内部使用Private Key解密数据。那么可以使用这一特性来加密Diffie-Hellman的交换过程,以达到保密的目的。过程如下:
Client:从Server获得Server的公钥。
Client:生成一个临时密钥TempKey,用Public Key加密发送给Server,同时附上
Deffie-Hellman生成的X
Server:使用TempKey加密Deffie-Hellman生成的Y,发给Client。
Client和Server分别计算将要使用的Key后,即可使用Key作为此次会话的会话密钥。
为了加强安全性,Server的Public Key - Private Key可以定期更换,用于Deffie-Hellman的p和g也可以定期更换。

其实写完这篇文章发现:使用RSA就可以达到协商密钥的目的。不过写了就写了吧。
原创粉丝点击