词条 | 非对称dh |
释义 | 定义非对称DH,是安全性基于在有限域中计算离散对数的难度的一种加密算法。可用于密钥分发,但不能用于加/解密报文。DH即Diffie-Hellman算法的简写,也缩写为D-H算法。D-H加密算法的核心思想就是大素数不可分解质因数的数学理论方法。 基本原理取一个大素数P,较小数r(r是P的一个原根),数字A(A介于1到P之间),则获得公钥K: K=r^A/P (公钥K为r的A次方结果对P取模) 由于,较小数r(r是P的一个原根), 则r^1、r^2、r^3、r^4、......r^(P-1)分别模P都不相同, 则当我们知道P、r、r^A,则很难用数学方法推到出A的方法。 类似定理同余定理中国馀数定理源出三国或晋朝的"孙子算经",其中有一题:今有物不知其数,三三数之剩2,五五数之剩3,七七数之剩2,问物几何? 以同馀式表之,即 解,孙子算经中给出答案 x=23 一元一次联立同馀式,後世称为"大衍",其解法称为"大衍求一术",到宋代秦九韶(1202~1261年)集大成同余中的一些定理。 DH比对我们再来看看DH是怎么计算出共享密钥的: 以下各试“=”均读作同余,且假定A和B生成的g和p均相同,至于为什么这里就不做讨论了 首先A先计算X = g^a mod p B 计算Y= g^b mod p 然后A和B交换X和Y 这样A就得到了Y,通过通余定理: 因为Y= g^b mod p 所以Y^a=(g^b)^a mod p =g^(ba) mod p 同理 B计算出: X^b=g^(ab) mod p 显然,这里Y^a=X^b 也就是说A和B计算出一个只有他们知道的相同的共享密钥了。 当然如果有个第三者他只知道X、Y,他在有限的时间内是算不出a和b的,至于为什么,因为我不是数学家所以我也不知道(上面的公式也是我想了n久才想通的)。 以上就是我对DH算法的一些总结,希望这些东西对大家理解IPsec VPN有所帮助。 注:通余定理的公式符号表示的不完整,大家容易产生误解,改后: 如果Y= g^b mod p(就是Y mod p = g^b mod p) 那么Y^a= (g^b)^a mod p (就是Y^a mod p = (g^b)^a mod p) 这样就没问题了。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。