RSA公钥算法是怎么回事(二)

上一节的内容中我们说了如何验证RSA中随机挑选的素数

然后我们根据两个大素数p和q (p!= q ) ,例如素数p和q

然后 n = p*q , 然后φ(n)=φ(p) * φ(q) = (p-1) * ( q-1 )

记住n = p * q 这个数会用到

然后选取与φ(n)互质的奇数 e (比φ(n)小)

然后我们要求解

e*d 和 1 mod(φ(n)) 同余

利用上面的结论求解 d

那么在线性同余方程中当 e 和 φ(n) 互为素数(互质) 有一个定理保证 e mod φ(n) 的解存在 也就是d存在 ( 这也是为什么我们在选择e时要求互质)

简单证明下 gcd(e , φ(n) ) = 1 那么存在一个线性组合

gcd(e , φ(n) ) = 1 》》a * e + b * φ(n)= 1 》》 a * e + b *φ(n) 和 1mod(φ(n)) 同余

b * φ(n) mod φ(n) == 0 》》 a * e 和 1 mod(φ(n)) 同余

接着我们用拓展欧几里得求解

算法导论里有
这里我们写个
设d=x
(e * x -1)= φ(n)y 》》 e x +(这里符号放y里) φ(n) * y = 1
求解x

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值