RSA算法(面向考试,绝对干货)

RSA算法

简谈RSA算法

  • RSA算法是一种非对称加密算法,是第一个较完善的公开密钥算法,它既能用于加密也能用于数字签名
  • 所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
  • RSA的理论基础是数论的欧拉定理,他的安全性依赖于对大整数的素因子分解的困难性

步骤

  1. 找出质数( P、Q)

  2. 计算公共模数( N)

  3. 欧拉函数 ( φ(N) )

  4. 计算公钥 E (E的范围:1<E< φ(N) ) E必须是整数且E和 φ(N) 为互质数

  5. 计算私钥D

  6. 用公钥进行加密

  7. 用私钥解密

    注:公钥=(E,N) 私钥=(D,N) 对外我们只暴露公钥

公式

  1. N=P*Q
  2. φ(N) =(P-1)(Q-1)
  3. 计算私钥:E * D % φ(N) =1
  4. 加密:C = M^E mod N
  5. 解密:M=C^D % N

举例

  1. 找出质数 :P=3,Q=11(实际应用中,这两个质数越大,越难破解)
  2. N=3*11=33
  3. φ(N)=(3-1)(11-1)=20
  4. E的取值范围为{3,7,9,11,13,17,19},为了方便学习,我们这里取E=3(正常来说E越大加密效果越好)
  5. 要使3*D%20=1 ,计算出 D=7 私钥=(7,33)
  6. 假设我们要加密2这个数字,C=2^3%33=8
  7. 用私钥解密:M=8^7%33=2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sevel7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值