RSA加密原理详解

本文深入解析RSA加密算法,基于欧拉定理,通过选取大素数实现非对称加密。介绍了秘钥生成、加密解密过程及算法安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RSA加密的核心其实是欧拉定理,通过这个定理得到了这种非对称加密算法

一、算法介绍

找到两个素数pppqqq,并计算n=pqn=pqn=pq
找到(d,φ(n))(d,\varphi(n))(d,φ(n)),即dddφ(n)\varphi(n)φ(n)互质,其中0&lt;d&lt;φ(b)0&lt;d&lt;\varphi(b)0<d<φ(b)φ(n)\varphi(n)φ(n)为欧拉函数,是指&lt;n&lt;n<n且与nnn互质的正整数的个数
因为n=pqn=pqn=pq,所以φ(n)=(p−1)(q−1)\varphi(n)=(p-1)(q-1)φ(n)=(p1)(q1),也就是说ddd(p−1)(q−1)(p-1)(q-1)(p1)(q1)互质
再找到0&lt;e&lt;φ(n)0&lt;e&lt;\varphi(n)0<e<φ(n)使得de≡1(mod φ(n))de\equiv1(mod\space\varphi(n))de1(mod φ(n)),即dedede除以φ(n)\varphi(n)φ(n)余数为1
那么形成秘钥对(n,d)(n,d)(n,d)(n,e)(n,e)(n,e),分别是私钥和公钥
使用秘钥对(n,x)(n,x)(n,x)加密的方法为f(a,n,x)=ax(mod n)f(a,n,x)=a^x(mod\space n)f(a,n,x)=ax(mod n),解密为同一函数
那么就可以用公钥加密私钥解密或用私钥加密公钥解密,即
B=f(A,n,d)B=f(A,n,d)B=f(A,n,d)A=f(B,n,e)A=f(B,n,e)A=f(B,n,e)
但细心的人会发现,知道nnn就知道了φ(n)\varphi(n)φ(n),结合ddd就可以算出eee,这样知道公钥就知道私钥
其实,RSA加密的核心就在于pppqqq的选择,这两个质数一定要选择的很大,相乘容易,分解难
所以破解往往长达数月(nnn的长度为512和七百多的RSA已经被成功破解)
所以现在nnn的长度至少为1024,有很多是2048

二、欧拉定理

nnnxxx为正整数,(x,n)=1(x,n)=1(x,n)=1,则有xφ(n)≡1(mod n)x^{\varphi(n)}\equiv1(mod\space n)xφ(n)1(mod n),这就是欧拉定理,下面简单的证明一下
构造modnmod nmodn的既约剩余系(不懂的同学们看第三块)
设为a1,a2,...,aφ(n)a_1,a_2,...,a_{\varphi(n)}a1,a2,...,aφ(n),并找一个与nnn互质的数xxx,根据既约剩余系的积不变性(见第三块),有
既约剩余系xa1,xa2,...,xaφ(n)xa_1,xa_2,...,xa_{\varphi(n)}xa1,xa2,...,xaφ(n)的积与上述既约剩余系的积mod nmod\space nmod n同余
a1,a2,...,aφ(n)a_1,a_2,...,a_{\varphi(n)}a1,a2,...,aφ(n)的积为kkk,那么第二个既约剩余系的乘积为kxφ(n)kx^{\varphi(n)}kxφ(n)
则有k≡kxφ(n)(mod n)k\equiv kx^{\varphi(n)}(mod\space n)kkxφ(n)(mod n),而因为aia_iainnn互质,所以kkknnn互质,所以两边同时除去kkk
xφ(n)≡1(mod n)x^{\varphi(n)}\equiv 1(mod\space n)xφ(n)1(mod n),得证!

三、既约剩余系

设有正整数nnn,找到rrr的集合,其中1≤r≤n1\le r\le n1rn(r,n)=1(r,n)=1(r,n)=1
设这个集合为r1,r2,...,rk{r_1,r_2,...,r_k}r1,r2,...,rk,那么根据欧拉函数的定义,k=φ(n)k=\varphi(n)k=φ(n)
对于一个φ(n)φ(n)φ(n)元正整数集合,如果对其每一个元素mod nmod\space nmod n后得到的集合与上述集合相等
那么称这个集合为mod nmod\space nmod n的既约剩余系
而根据上述定义,所有mod nmod\space nmod n的既约剩余系mod nmod\space nmod n的性质类似
显然,任何两个mod nmod\space nmod n的既约剩余系的和与积mod nmod\space nmod n同余(因为每个元素对应mod nmod\space nmod n同余)
所以既约剩余系有和不变性积不变性

四、总结

RSA加密算法是通过欧拉定理得到的,该算法的安全性来源于大数分解质因数的困难,在选取pppqqq的时候要尽可能的大一些
RSA因为涉及到大数运算,甚至包括幂运算,所以速度比对称加密算法慢得多,一般用于加密对称加密的较短秘钥

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值