D-H协议
Diffie-Hellman密钥协议算法是一种确保共享密钥KEY安全穿越不安全网络的方法,它是OAKLEY的一个组成部分。这个机制的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥,然后可以用这个密钥进行加密和解密。但是注意,这个密钥交换协议/算法只能用于密钥的交换,而不能进行消息的加密和解密。双方确定要用的密钥后,要使用其他对称密钥操作加密算法实际加密和解密消息。这种秘钥交换技术的目的在于使两个用户安全的协商一个会话密钥。
D-H协议原理
Diffie-Hellman密钥交换协议基于求解离散对数问题的困难性,即基于下述等式:
其中,d称为模P的以C为底数的M的对数,在已知C和P的前提下,由d求M很容易,只相当于进行了一次指数运算,但是由M反过来求d,则需要指数级次运算。随着P取得足够大,就能实现足够的安全强度。
密钥交换流程
例如Alice和Bob使用Diffie-Hellman密钥交换协议在一个不安全的信道上交换密钥,具体步骤如下:
举例如下:
安全性原理
所以Alice和Bob生成的密钥K是相同的,这样一来就实现了密钥的交换。因为A和B是保密的,一个敌对方可以利用的参数只有P,G,yA和yB,因而攻击者必须取离散对数来确定密钥,而Diffie-Hellman密钥交换协议的安全性基于求解离散对数问题的困难性,即从yA或者yB以及G或者P计算A或者B在计算上是不可行的。对于大的素数,计算出离散对数几乎是不可能的,而有限群的离散对数问题的困难性正是D-H密钥交换的基础。
D-H协议到Oakley算法
Oakley算法是对Diffie-Hellman密钥交换算法的优化,它保留了后者的优点,同时克服了其弱点。
改进特征:
1、它采用称为cookie程序的机制来对抗阻塞攻击。
2、它使得双方能够协商一个全局参数集合。
3、它使用了现时来保证抵抗重演攻击。
4、它能够交换Diffie-Hellman公开密钥。
5、它对Diffie-Hellman交换进行鉴别以对抗中间人攻击。
鉴别方法:
1、数字签名:通过签署一个相互可以获得的散列代码来对交换进行鉴别;每一方都使用自己的私钥对散列代码加密。散列代码是在一些重要参数上生成的,如用户ID和现时。
2、公开密钥加密:通过使用发送者的私钥对诸如ID和现时等参数进行加密来鉴别交换。
3、对称密钥加密:通过使用某种共享密钥对交换参数进行对称加密,实现交换的鉴别。