, 并计算公开密钥 YA=a^XA mod q 。 A 对 XA 的值保密存放而使 YA 能被 B 公开获得。类 似地,用户 B 选择一个私有的随机数 XB ,并计算公开密钥 YB=a^XB mod q 。 B 对 XB 的值保密存放而使 YB 能被 A 公开获得。 1 / 3 洛阳夏冰软件技术有限公司博客文档( http://www.cksis.com/ ) 3 、用户 A 产生共享秘密密钥的计算方式是 K = (YB)^XA mod q. 同样,用户 B 产生共享秘 密密钥的计算是 K = (YA)^XB mod q. 这两个计算产生相同的结果: K = (YB)^XA mod q = (a^XB mod q)^XA mod q = (a^XB)^XA mod q (根据取模运算规则得到) = a^(XBXA) mod q = (a^XA)^XB mod q = (a^XA mod q)^XB mod q = (YA)^XB mod q 因此相当于双方已经交换了一个相同的秘密密钥。 4 、因为 XA 和 XB 是保密的,一个敌对方可以利用的参数只有 q,a,YA 和 YB. 因而敌对方被 迫取离散对数来确定密钥 . 例如,要获取用户 B 的秘密密钥,敌对方必须先计算 XB = inda,q(YB) 然后再使用用户 B 采用的同样方法计算其秘密密钥 K. Diffie-Hellman 密钥交 换算法的安全性依赖于这样一个事实: 虽然计算以一个素数为模的指数相对容易,但计算离散对数却很困难 . 对于大的素数,计算 出离散对数几乎是不可能的 . 下面给出例子 . 密钥交换基于素数 q = 97 和 97 的一个原根 a = 5.A 和 B 分别选择私有密钥 XA = 36 和 XB = 58 。每人计算其公开密钥 YA = 5^36 = 50 mod 97 YB = 5^58 = 44 mod 97 在他们相互获取了公开密钥之后,各自通过计算得到双 方共享的秘密密钥如下: K = (YB)^XA mod 97 = 44^36 = 75 mod 97 K = (YA)^XB mod 97 = 50^58 = 75 mod 97 从 |50,44| 出发,攻击者要计算出 75 很不容易,下图给出了一个利用 2 / 3
本文来源:https://www.wddqw.com/doc/67361c09bed5b9f3f90f1c30.html
正在阅读:
Diffie-Hellman加密算法01-01
秋天_初中作文_4501-01
幼儿园老师教育随笔孩子是一本书01-01
水送山迎的意思_近义词_反义词_造句大全01-01
角度不整合名词解释01-01
社区家委会组织机构及工作职责01-01
国学为人处世正能量大全01-01
初中运动会加油稿01-01