RSA加密与解密讲解

RSA加密与解密

这里只是讲讲 R S A RSA RSA是怎么加密以及怎么解密。

加密与解密过程

采用 R S A RSA RSA的方法后可以得到一个公钥 ( n , e ) (n,e) (n,e)和私钥 ( n , d ) (n,d) (n,d)

对于一个明文 a a a,我们把它加密得到 b b b, b = a e    m o d    n b=a^e~~mod~~n b=ae  mod  n。我们把 b b b,发给接收者,接收者把 b b b解密: a = b d    m o d    n a=b^{d}~~mod~~n a=bd  mod  n即可查看密文了。

那么 R S A RSA RSA是怎么做的呢?

首先我们任意选取两个质数 p , q p,q p,q,令 n = p q n=pq n=pq,然后求出 n n n的欧拉函数 r = ϕ ( n ) r=\phi(n) r=ϕ(n)。任选一个小于 r r r且与 r r r互质的数 d d d,求出 d d d在模 r r r意义下的逆元 e e e,然后组成公钥 ( n , e ) (n,e) (n,e)和私钥 n , d n,d n,d,最后销毁 p , q p,q p,q即可。

我们可以根据之前的方法解密: b d = a e d = a b^{d}=a^{ed}=a bd=aed=a可知此方法是正确的。

安全性

在攻击者已知 n n n e e e,如果他能求出 ϕ ( n ) \phi(n) ϕ(n)来,那么即可获得私钥 ( n , d ) (n,d) (n,d)了。又由于 ϕ ( n ) = ( p − 1 ) ( q − 1 ) \phi(n)=(p-1)(q-1) ϕ(n)=(p1)(q1),而 p , q p,q p,q对于攻击者是不可知的,那么他只能够去分解 n n n,那么只要 p , q p,q p,q足够大,耗费的时间就会是不可承受的。


我们看一道题来加深印象。

(CCPC-Final 2018)K - Mr. Panda and Kakin

题意: x x x是[1e5,1e9]​的随机数, p p p是小于 x x x的最大素数, q q q是大于等于x的最小素数, n = p , c = f 2 30 + 3     m o d    n n=p,c=f ^{2^{30}+3}~~~mod~~n n=p,c=f230+3   mod  n,给 n n n c c c f f f

题解

这个题就是一个裸的 R S A RSA RSA解密。我们在 n \sqrt{n} n 附近找到 p , q p,q p,q,求出 ϕ ( n ) \phi(n) ϕ(n),令 e = 2 30 + 3 e=2^{30+3} e=230+3, d = e − 1    m o d    ϕ ( n ) d=e^{-1}~~mod~~\phi(n) d=e1  mod  ϕ(n)。那么 c = f e    m o d    n c=f^e ~~ mod~~n c=fe  mod  n,就是所谓的密文了, f f f即为 c d    m o d    n c^{d}~~mod~~n cd  mod  n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值