RSA算法流程

一,密钥的产生 
① 选两个保密的大素数 p 和 q(典型值为1024位)。 
② 计算 n=p×q,φ(n)=(p-1)(q-1)其, 中 φ(n)是 n 的欧拉函数值。 
③ 选一整数 e,满足 1 ,且 gcd(φ(n),e)=1。 
④ 计算 d,满足 d·e≡1 mod φ(n),即 d 是 e 在模 φ(n)下的乘法逆元,因 e 与 φ(n)互素, 由模运算可知,它的乘法逆元一定存在。 
⑤ 以{e,n}为公开钥,{d,n}为秘密钥。 
二,加密 
① 将明文看成比特串,将明文划分成k位的块P即可,这里k是满足2*k<n的最大整数。 
② 对每个数据块P,计算C=P^(mod n),C即为P的密文。
三,解密

对每个密文块c,计算P+C^d(mod n),P即为明文

图1 算法流程图

db772941a11c4543bb96634e7f83140f.png

图2 加密流程

d2089e37fd004155bff54bb8fd2a7b6a.png

 图3 解密流程6aad91d1adce4ac69c24dbd3502d7ce4.png

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值