IP Sec中的加密机制是通过IKE来实现的,在看《IPSec及IKE原理》的时候对哈希算法和
Diffie-Hellman密钥交换算法
有点不太清楚,就到网上找了找关于这两个算法的文章。
接受的输入报文数据没有长度限制;
对任何输入报文数据生成固定长度的摘要("数字指纹")输出;
由报文能方便地算出摘要;
难以对指定的摘要生成一个报文,由该报文可以得出指定的摘要;
难以生成两个不同的报文具有相同的摘要。
哈希(Hash)值
哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。
哈希算法是一类符合特殊要求的散列函数(Hash)函数,这些特殊要求是:
接受的输入报文数据没有长度限制;
对任何输入报文数据生成固定长度的摘要("数字指纹")输出;
由报文能方便地算出摘要;
难以对指定的摘要生成一个报文,由该报文可以得出指定的摘要;
难以生成两个不同的报文具有相同的摘要。
Diffie和Hellman在其里程碑意义的文章中虽然给出了
密码的思想但是没有给出真正意义上的公钥密码实例也
没能找出一个真正带陷门的单向函数然而他们给出单向
函数的实例并且基于此提出Diffie-Hellman密钥交换算法
这个算法是基于有限域中计算离散对数的困难性问题之上
设F为有限域g F是F的乘法群F*=F\{0}=<g> 并且对
任意正整数x 计算gx是容易的但是已知g和y求x使y= gx
是计算上几乎不可能的这一问题称为有限域F上的离散对
数问题公钥密码学中使用最广泛的有限域为素域FP.
对Diffie-Hellman密钥交换协议描述Alice和Bob协商
好一个大素数p 和大的整数g 1<g<p p和g无须保密可
为网络上的所有用户共享
当Alice和Bob要进行保密通信时他们可以按如下步骤来做
(1)Alice选取大的随机数x 并计算X=gx(mod P)
(2)Bob选取大的随机数x′ 并计算X ′ = gx ′(mod P)
(3)Alice将X传送给Bob Bob将X ′传送给Alice
(4)Alice计算K=(X ′)X(mod P);Bob计算K ′ X) X ′(mod P),
易见K=K ′ =g xx ′(mod P)
由(4)知Alice和Bob已获得了相同的秘密值K 双方以K作为
加解密钥以传统对称密钥算法进行保密通信
密码的思想但是没有给出真正意义上的公钥密码实例也
没能找出一个真正带陷门的单向函数然而他们给出单向
函数的实例并且基于此提出Diffie-Hellman密钥交换算法
这个算法是基于有限域中计算离散对数的困难性问题之上
设F为有限域g F是F的乘法群F*=F\{0}=<g> 并且对
任意正整数x 计算gx是容易的但是已知g和y求x使y= gx
是计算上几乎不可能的这一问题称为有限域F上的离散对
数问题公钥密码学中使用最广泛的有限域为素域FP.
对Diffie-Hellman密钥交换协议描述Alice和Bob协商
好一个大素数p 和大的整数g 1<g<p p和g无须保密可
为网络上的所有用户共享
当Alice和Bob要进行保密通信时他们可以按如下步骤来做
(1)Alice选取大的随机数x 并计算X=gx(mod P)
(2)Bob选取大的随机数x′ 并计算X ′ = gx ′(mod P)
(3)Alice将X传送给Bob Bob将X ′传送给Alice
(4)Alice计算K=(X ′)X(mod P);Bob计算K ′ X) X ′(mod P),
易见K=K ′ =g xx ′(mod P)
由(4)知Alice和Bob已获得了相同的秘密值K 双方以K作为
加解密钥以传统对称密钥算法进行保密通信
(在网上找到了一篇
《SHA1算法告破》的文章,呵呵~ 这么安全的算法也会。。
)
![18.gif](http://blog.77169.com/images/emot2/18.gif?x-oss-process=image/resize,w_1400/format,webp)
本文转自loveme2351CTO博客,原文链接:http://blog.51cto.com/loveme23/8111
,如需转载请自行联系原作者