Diffie-Hellman算法和RSA算法

Diffie-Hellman算法和RSA算法

Diffie-Hellman和RSA都是非对称加密算法,非对称加密是相对于对称加密而言的,对称加密指的是通信双方用的秘钥是一样的,非对称加密则是用公钥加密,用私钥解密,公钥可以让任何人知道,私钥需要自己保存。非对称加密的好处是当通信双方没有事先协商密钥的情况下也能进行安全通信。

Diffie-Hellman算法工作原理

Diffie-Hellman 算法的核心思想是基于离散对数问题的计算困难性。
1.共享公共参数:首先,双方约定并公开共享两个大的数字,一个是质数 p,另一个是基数 g(在 1和 p−1 之间)。这两个数字对所有参与者来说都是公开的。
2. 生成私钥:每个参与者各自随机选择一个大数字作为私钥,记为 ab。私钥在整个过程中保持秘密,不与任何人共享。
3. 计算并共享公钥:每个参与者使用公共参数和自己的私钥计算公钥。参与者Alice使用 ga mod p计算其公钥 A,参与者 Bob 使用 gb mod p 计算其公钥 B。然后,双方交换他们的公钥。
4. 生成共享密钥:每个参与者使用对方的公钥和自己的私钥计算共享密钥。参与者 Alice使用Ba mod p,参与者Bob使用Ab mod p,这两个计算的结果相同,得到共享密钥s。
窃取者能给知道公钥A和公钥B,但是较难计算出秘钥s,故实现了非对称加密。后续通信可以用对称秘钥s进行通信。但是容易遭受中间人的攻击,即攻击者C在和A通信时扮演B,在和B通信时扮演A。A和B都与C协商了一个密钥,然后C就可以监听A,B的通信过程;

RSA算法工作原理

  1. 随机选择两个不相等的质数pq
  2. 计算p和q的乘积n
  3. 计算n的欧拉函数φ(n)
  4. 随机选择一个整数e,条件是1<e<φ(n),且e与φ(n)互质。
  5. 计算e对于φ(n)的模反元素d,即ed ≡ 1 (mod φ(n))。(可用扩展欧几里得算法求解)
  6. 将n和e封装成公钥,n和d封装成私钥。
    加密用公钥(n, e),解密用私钥(n,d)。窃取者能获取公钥n和e,能否推导出私钥d?
    ed ≡ 1 (mod φ(n)),需要知道φ(n),而φ(n)=(p-1)(q-1),n=pq,需要对大整数n进行分解,但是大整数的因数分解,是一件非常困难的事情,所以RSA的安全性可以得到保证。
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值