RSA算法

生成公钥和私钥

  • 1、随机选择两个大质数p、q
  • 2、n = pq
  • 3、φ(n) = (p - 1)(q - 1)
  • 4、选择e,使得1 < e < φ(n)且e与φ(n)互质
  • 5、求满足ed ≡ 1(mod φ(n))的d
  • 6、(n, e)为公钥,(n, d)为私钥

加密和解密

对X(要求X < n)加密得到Y:Y = X^e % n

对Y解密得到X:X = Y^d % n

X = Y^d % n的证明

由ed ≡ 1(mod φ(n))得到ed = iφ(n) + 1

由Y = X^e % n得到Y = X^e - jn

(1)若X与n互质

由欧拉定理得到X^φ(n) ≡ 1(mod n),即X^φ(n) = kn + 1

Y^d % n = (X^e - jn)^d % n = X^(ed) % n = X^(iφ(n) + 1) % n = X(kn + 1)^i % n = X % n = X

(2)若X与n不互质,则X=lp(l < q)或X=lq(l < p)

以X=lp(l < q)为例,显然lp与q互质

由欧拉定理得到(lp)^φ(q) ≡ 1(mod q)

由φ(n) = φ(p)φ(q)得到(lp)^(iφ(n) + 1) ≡ lp(mod q),即(lp)^(ed) = mq + lp,p | m => pq | mq => n | mq

Y^d % n = (X^e - jn)^d % n = X^(ed) % n = (mq + X) % n = X

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值