Diffie-Hellman密钥交换算法(非专业只讲过程)

Diffie-Hellman密钥交换算法
有两个全局公开的参数,一个素数p和一个整数g,g是p的一个原根
假设用户A和B希望交换一个密钥,用户A选择一个作为私有密钥的随机数a
计算出Akey=g^a mod p,并将Akey发送给用户B
然后,用户B随机选取b,计算出Bkey=g^b mod p,并将Bkey发送给用户A
此时,用户A知道p,g,a,Bkey
用户A通过计算得到共享密钥=Bkey^a mod p
用户B知道p,g,b,Akey
用户B通过计算得到共享密钥=Akey^b mod p
而用户A和用户B计算得到的共享密钥是一样的
共享密钥还可以这样算key=g^(a*b) mod p

例子:
在这里插入图片描述
安全性:

                             Hacker  a.掌握公钥(3, 17)
                                |    b.获得单项函数的值(6)
                                |    c.获得单项函数的值(12)
                                |    d.由于缺少信息(私钥)无法计算得到密钥
                                |
                                | 
                                | 
 用户A     -------------------------------------------->    用户B
 a.公开公钥(3, 17)                                           a.掌握公钥(3, 17)
 b.随机选择一个数a计算并发送6                                  b.获得单项函数的值(6)
 c.获得单项函数的值(12)                                       c.随机选择一个数b计算并发送12 
 d.计算得到共享密钥                                           d.计算得到共享密钥
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值