【区块链课】RSA算法概论基础知识课件整理

① 互质关系

如果两个正整数,除了1以外,没有其他公因子,我们就称这两个数是互质关系。

不是质数也可以构成互质关系。(8不是质数,9不是质数。但8和9互质。)

②欧拉函数

与 n 构成互质关系且小于 n 的正整数的个数,称为n的欧拉函数,记作φ(n)。

1.非质数:

与8形成互质关系且小于8的数有1、3、5、7。 这1,3,5,7共有4个数,称为8的欧拉函数,记作φ(8)=4。

2.质数:

如果n是质数,则 φ(n)=n-1。(比自己小都互斥)

3.

如果n可以分解成两个互质关系的整数之积,则φ(n)=φ(p1p2)=φ(p1)φ(p2)

例:φ(15)=φ(3×5)=φ(3)×φ(5)=2×4=8

③模反元素

如果两个正整数 a 和 n 互质,一定可以求到整数 b, 使得(ab)mod n=1即(ab)÷n 余1,或ab-1=kn ,则 b是a的"模反元素"。

两个正整数 a 和 n 互质,如果b是a的模反元素,则 b+kn 都是a的模反元素。

 密钥生成步骤

1.随机选择两个不相等的质数p和q。

        例:p=61        q=53。

2.计算p和q的乘积n,

        n=pxq= 61×53 = 3233  

3.计算欧拉函数φ(n).

         φ(3233) = φ(61)xφ(53)=60x52=3120

4.随机选择一个整数e

        e符合范围:(1)1<e<φ(n)

                                (2)e和φ(n)互质

        e=17

5.计算e对于φ(n)的模反元素d。

        因为        e=17,φ(n)=3120

        所以方程        17d-3120k=1

        取一组        (d,k)=(2753,-15)


现有6样

两个随机不相等质数        p=61,q=53。

p和q的乘积                      n=3233

欧拉函数φ(n)                   φ(3233)=3120

随机整数e                        e=17

模反元素d                        d=2753

6.将(乘积n、随机整数e),即(n,e)封装成公钥

   将(乘积n、模反元素d),即(n,d)封装成私钥 


【加密函数】:c=m^emod n,用接收方的公钥 (n,e)

【解密函数】: m= cd mod n,用接收方私钥(n, d) 进行解密   

7.加密函数c=m^e mod n,用到公钥(n,e)

        m是要发送方想发送的信息,c是发送方加密的信息

        c=65^17mod3233=2790

8.解密函数m= c^d mod n,用到私钥(n, d)

        接收方接收到 加密信息c,进行解密

        m=2790^2753 mod 3233= 65


例题:

 

猜你喜欢

转载自blog.csdn.net/weixin_56537692/article/details/124061086