RSA算法详细计算步骤(简单,纯干货)

本文详细阐述了RSA加密算法的基本原理,包括选择质数、计算欧拉函数、选取加密指数和解密指数的过程。通过具体步骤展示了如何利用RSA算法进行信息的加密与解密,适合初学者理解RSA的工作机制。

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

网上都说简单,但是我觉得这个过程事实上还是挺复杂的,这个论述不陈述原因,只陈述过程。
首先明确我们的根本目的:我们是要加密一个信息,再解密一个信息

加密这个信息的方法
  1. 找到两个质数p和q,把他们俩乘起来得到n=pq;
  2. 随便找一个数字e,这个数字要满足(e,ϕ(n))=1(e,\phi (n))=1(e,ϕ(n))=1,这个原因我们之后说。
  3. 我们得到了一个需要加密的信息m
  4. 我们把这个加密的信息m进行如下的操作me  mod  n=cm^e \; mod\; n = cmemodn=c
  5. 这个c就是我们得到的加密信息。
  6. 非常建议手写演示演示这个过程。
加密完了之后,我们就需要解密
  1. 首先整理我们能够获得的信息有n,c。关于m,我们一无所知。
  2. 我们可以知道c由这一条方程得来: me  mod  n=cm^e \; mod\; n = cmemodn=c
  3. 我们的目标是通过这个方程获得m
  4. 这个方程可以改写成me≡cmod  nm^e \equiv c \mod nmecmodn
  5. 显然c和m^e 可以互换:c≡memod  nc\equiv m^e \mod ncmemodn
  6. 显然c和m^e 添加一个幂次,对结果没有影响:cd≡medmod  nc^d\equiv m^{ed} \mod ncdmedmodn
  7. 在这一步中,我们的目标是把m^ed 消掉变成一个m,我们就可以计算出模一个m的值了。
  8. 回想欧拉定理mϕ(n)≡1mod  nm^{\phi(n)}\equiv 1 \mod nmϕ(n)1modn,如果ed=ϕ(n)ed=\phi(n)ed=ϕ(n),那么m就会变成1,如果ed=ϕ(n)+1ed=\phi(n)+1ed=ϕ(n)+1,那么med=mϕ(n)+1m^{ed}=m^{\phi (n)+1}med=mϕ(n)+1就可以化成m了。
  9. 所以我们就可以得到一条方程,ed=k∗ϕ(n)+1ed=k*\phi(n)+1ed=kϕ(n)+1,这条式子移项ed−k∗ϕ(n)=1ed-k*\phi(n)=1edkϕ(n)=1得到一个丢番图方程,d和k是未知数,我们可以通过欧几里得算法解得d和k。
  10. 将d带回5式,则有cd  mod  n=mc^d \; mod \; n = mcdmodn=m,m就被解出来了。

大体的感知,还有实际的案例,可以参见知乎的这篇https://www.zhihu.com/question/25038691/answer/81565068

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值