关于RSA的概念背景不多介绍,有需要自行查找,直接上干货。

1. 设计目标——非对称加密算法

设计一套非对称加密系统,因此需要公钥+私钥,并且满足:

①私钥可以解密公钥

②公钥不能推出私钥

2. 设计灵感——模指数运算+欧拉定理

①模指数运算:为了实现需求,设计者想到了数论中的模指数运算(特点:正向计算容易,逆向计算不可能),这就满足了设计目标里的第②条。但是第①条还没有满足,我们必须让私钥能够解开公钥。所以这里需要一个成对的互逆的运算方法,就借用了下面的欧拉定理。

②欧拉定理:如果整数M和n互质,那么就有MΦ(n)≡1 mod n 成立(即MΦ(n) 与1关于n同余)

Φ(n)是正整数n的欧拉函数,表示小于n且与n互质的正整数的个数
a. 如果n是质数,和任意一个比它小的正整数都是互质的,因此当n是质数时,Φ(n)=n-1,
b. 如果n是合数,我们令n=p*q,则有Φ(n)=Φ(p*q),根据欧拉函数的”积性“,上式可以分解为Φ(n)=Φ(p)*Φ(q)
怎么理解同余?a≡r mod n 即表示 a mod n =r ,r mod n =a,所以你看,同余就是个循环,绕了一圈还回到自己。  
这里多说一句,即使M和n不互质,通过中国剩余定理等其他数学工具照样也能得到上面的同余公式,因此这个公式通用成立。

于是这个同余公式表明,M的Φ(n)次方兜兜转转最后会回到1,可是我们要的是加密解密,所以最终应该回到M才对!

因此,设计者自然考虑了下一步:MΦ(n)+1mod  n

 

由于 MΦ(n)≡1 mod  n,那么就有:

MΦ(n)+1=MΦ(n)⋅M≡1⋅M=M mod  n

这意味着 MΦ(n)+1≡M mod  n

更一般地,对于任何整数 k,都有

Mk*Φ(n)+1=(MΦ(n))k⋅M≡1k⋅M=M mod  n

所以,Mk⋅Φ(n)+1≡M mod  n

 

到了这里,设计者意识到这正是他们所需要的一个循环!

然而仅仅是循环还是不够,因为循环只是单向,而加密解密系统需要的是双向。

因此接下来要考虑,如何融入到加密解密的双向过程里去。

 

设计者注意到,

指数 (k * Φ(n) + 1) 的一个关键特点:它是一个乘积再加1的形式。

乘积!这意味着它可以被分解!

于是设计者们开始思考,如果我们不是用同一个指数来完成整个循环,而是把这个指数拆成两个因子 e 和 d,让 e * d = k * Φ(n) + 1,会怎么样?

 

因此整个循环过程就被拆分成了两个独立的步骤:

第一步(加密):应用第一个因子 e ——C = Me mod n

第二步(解密):应用第二个因子 d—— M = Cd mod n = (Me mod n)d mod n = M(e*d) mod n = M(k * Φ(n)  + 1) mod n ≡ M mod n

这里同余公式的转换中涉及到模指数运算的一个性质,即,模运算不受指数运算的影响,所以 (M^e mod n)^d mod n = M^(e*d) mod n

  

到这里使用两个不同的指数e 和 d将加密和解密变成了两个独立的操作,但它们组合起来的时候就和原来那个对称的、一步到位的操作完全等效。

 

接下来要考虑如何将他们变成非对称,也就是公钥私钥的分离?

 

将其中一个指数(比如e)作为公钥和n一起公开,任何人都可以用它进行加密,

而将另一个指数d严格保密作为私钥,只有拥有者才能解密。

要想确保从公钥无法推出私钥,也就是无法由(e,n)推出d。

根据前面所属,有公式e * d ≡ 1 mod Φ(n),要想解开这个公式就需要知道Φ(n),

那么为了难倒天下英雄,就要让Φ(n)的求解非常非常非常困难

 

于是设计者想到了”大数分解难题“。

前面提到如果n是合数,令n=p*q,则有Φ(n)=Φ(p)*Φ(q)

现在我们让p和q都是质数,那么公式就会变成Φ(n)=Φ(p)*Φ(q)=(p-1)*(q-1)

也就是说,如果攻击者想求出Φ(n)就必须知道p和q,而已知一个巨大合数,反求两个相乘的质数是非常困难几乎不可能,

这也就保证了公钥反推私钥的不可实现。

 

最终,RSA非对称加密解密流程定义如下:

(1)密钥生成

①选择两个巨大的质数p和q

②计算n=p*q和Φ(n)=(p-1)*(q-1)

③选择整数e使得1<e<Φ(n),并且e和Φ(n)互质(通常e=65537)

为什么e和Φ(n)互质?因为需要有和e对应的私钥d存在,而若想找到对应的d,就必须满足公式e * d ≡ 1 mod Φ(n),只有e和Φ(n)互质才能实现

④求出d使得e * d ≡ 1 mod Φ(n)

(2)加密

对于明文M,计算密文C=Me mod n

(3)解密

对于密文C,计算明文M=Cd mod n

 

 

OVER

 

posted on 2025-09-03 18:21  swannie  阅读(4)  评论(0)    收藏  举报