信息安全密码学:第一个公钥方案,Diffie-Hellman密钥交换(此算法不可以用于加密!!!)

D i f f i e − H e l l m a n 算 法 同 R S A 都 属 于 公 钥 加 密 算 法 , 但 是 二 者 得 差 异 还 是 很 大 的 。 Diffie-Hellman算法同RSA都属于公钥加密算法,但是二者得差异还是很大的。 DiffieHellmanRSA

概述

该 算 法 基 于 的 数 学 难 题 是 “ 有 限 域 上 计 算 离 散 对 象 ” 的 问 题 。 该算法基于的数学难题是“有限域上计算离散对象”的问题。
该 算 法 不 是 用 来 加 密 的 , 也 不 可 以 用 来 加 密 。 其 仅 用 于 交 换 对 称 密 钥 ( 如 A E S 和 D E S 的 初 始 密 钥 ) 该算法不是用来加密的,也不可以用来加密。其仅用于交换对称密钥(如AES和DES的初始密钥) AESDES

算法

  1. 双方/多方选择大素数p,以及p的一个原根a
          p 和 a 是 双 方 / 多 方 之 间 的 秘 密 。 ( 但 是 攻 击 者 可 以 得 到 ) \;\\\;p和a是双方/多方之间的秘密。(但是攻击者可以得到) pa/()

a i    m o d    p    ( 1 < a < p , 1 < i < p ) 存 在 a 对 于 任 何 i    模 p 得 到 的 值 都 不 相 同 , 这 样 a 就 是 p 的 原 根 a^i\;mod\;p\;(1<a<p,1<i<p)\\存在a对于任何i\;模p得到的值都不相同,这样a就是p的原根 aimodp(1<a<p,1<i<p)aipap

  1. 用户A选择一个随机数 X a < p X_a<p Xa<p,计算: Y a = a X a m o d    p 。 Y_a=a^{X_a}mod\;p。 Ya=aXamodp
  2. 用户B选择一个随机数 X b < p X_b<p Xb<p,计算: Y b = a X b m o d    p 。 Y_b=a^{X_b}mod\;p。 Yb=aXbmodp
  3. 将Y作为公钥交换给对方,X作为私钥仅自己知道。
  4. 对方获得共享密钥k

k = a X A X B m o d    p k=a^{X_AX_B}mod\;p k=aXAXBmodp
对 于 用 户 A , 计 算 : k = a X A X B m o d    p = ( a X B m o d    p ) X A m o d    p = Y b X A m o d    p ,    求 得 k 。 对于用户A,计算:k=a^{X_AX_B}mod\;p=(a^{X_B}mod\;p)^{X_A}mod\;p={Y_b}^{X_A}mod\;p,\;{\color{red}求得k。} Ak=aXAXBmodp=(aXBmodp)XAmodp=YbXAmodpk(XA是A的私钥)
对 于 用 户 B , 计 算 : k = Y a X B m o d    p , 求 得 k 。 对于用户B,计算:k={Y_a}^{X_B}mod\;p,{\color{red}求得k。} Bk=YaXBmodp,k(XB是B的私钥)

  1. 得到的k,即为协商好的密钥,作为会话密钥,用于协商后续的对称密码(如AES的初始密钥)。

对于攻击者,仅知道 Y A , Y B , a , p , 是 很 难 得 到 X a 和 X b 的 , 即 很 难 得 到 A 和 B 本 次 会 话 的 私 钥 Y_A,Y_B,a,p,是很难得到X_a和X_b的,即很难得到A和B本次会话的私钥 YA,YB,a,pXaXbAB

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值