RSA算法

RSA算法

1、非对称加密算法

非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。        ——————百度百科

  假设A向B通过非对称加密算法进行信息交换,流程如下:

    ①B生成一定密钥并将公钥公开,A获取B的公钥

    ②A使用该公钥对信息进行加密后再发送给B

    ③B收到A发送过来的加密信息后,再用自己的私钥对信息解密

 

2、RSA算法

RSA算法就是非对称加密算法。RSA算法实现分为4个部分:生成密钥、加密、解密和签名。

(1)生成密钥

  ①生成两个不相等的质数p和q(p和q不应太过相近)。假设p=13,q=19。

  ②计算出p和q的乘积为n。此处n=247。

  ③计算n的欧拉函数φ(n)。φ(247)=216。

  ④选择一个整数e,使1<e<φ(n),并且与φ(n)互质。此处e=31。

  ⑤找出一个整数d,使得e×d÷φ(n)......1,余数等于1。可知d为7。

    d=7为e=31关于φ(n)=216的模逆元。

   ⑦得到私钥和公钥

(2)加密

  A获取B的公钥后对信息进行加密。

  ①将明文转换为Unicode编码。

  ②利用加密公式加密为密文。加密公式如下所示:

      m为Unicode编码转换为十进制,e=31,n=247。

(3)解密

  ①利用解密方程对密文进行解密。解密方程如下所示:

    c为Unicode编码转换为十进制,d=7,n=247。

(4)签名

  假设A给B发送数据,则过程如下:

    ①A先用B的公钥对原始数据进行加密

    ②计算加密数据的哈希值

    ③用A的私钥将这串哈希值加密,这就是数字签名

    ④将签名放在加密的数据后面并发给B

  B接受到A发来的加密数据后,处理过程如下所示:

    ①利用B的私钥将密文解密得到明文

    ②利用A的公钥将数字签名解密,得到哈希值

    ③将哈希值与收到的加密数据的哈希值进行比较,就可以判断信息来自A

 

3、相关的知识

1、欧拉函数

  欧拉函数是小于等于n的正整数中与n互质的数的个数。

  假设p和q互质:

    φ(pq)=φ(p)×φ(q),φ(p)=(p-1),φ(q)=(q-1)

  可得,φ(n)=φ(p)×φ(q)=(p-1)×(q-1)。

 

2、模逆元

  对于互质的整数a和n,存在整数b使得abΞ1(mod n),则称b为a关于n的模逆元。

 

3、同余(Ξ)

  如果a与m的余数和b与m的余数相同,则称整数a与b对模m同余,记作a≡b(mod m)。可知(a-b)÷m=0。

 

4、欧拉定理

  对任意两个互质的正整数a和m,有

 

5、哈希函数

  哈希函数指将哈希表中元素的关键键值映射为元素存储位置的函数。

  两个文件相同,则哈希值一定相同。

 

4、RSA算法证明

 

 

posted @ 2021-07-28 17:34  sumAll  阅读(3534)  评论(1编辑  收藏  举报