扩大
缩小
  

RSA加密原理简述

1.了解对称加密和非对称加密

1.1什么是对称加密?

加密和解密使用同样规则的方法,被称为“对称加密算法”。

比如说:甲方选择某一种加密规则,对信息进行加密。乙方使用同一种规则,对信息进行解密。

特点:

理论上,只要加解密“规则”(即“密钥”)足够复杂,这种方式也可安全的传递信息。

但这种方法最大的弱点就是,密钥在传递的过程中易被泄露。

常见的对称加密算法有:DES/3DES/AES

1.2 什么是非对称加密?

加解密信息的过程中,能让加密密钥(公钥)与解密密钥(私钥)不同,这种新的加密模式被称为“非对称加密算法”,通常个人保存私钥,公钥是公开的。

2.RSA算法介绍

2.1 什么是RSA算法?

RSA是目前最有影响力的公钥加密算法,算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数组合成私钥。

算法由来:

1977年,三位数学家Rivest、Shamir和Adleman设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字首字母命名,叫做RSA算法。RSA算法非常可靠,密钥越长,它就越难破解。

2.2 相关数学理论

2.2.1 什么是“素数”?

素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任何其它两个整数的乘积。例如,15=3*5,所以15不是素数;又如,12=6*2=4*3,所以12也不是素数。另一方面,13除了等于13*1以外,不能表示为其它任何两个整数的乘积,所以13是一个素数。素数也称为“质数”。

2.2.2 什么是“互质数”(或“互素数”)?

互质数是这样定义的:“公约数只有1的两个数,叫做互质数。”这里所说的“两个数”是指自然数。

判别方法主要有以下几种(不限于此)

(1)两个质数一定是互质数。例如,2与7、13与19。

(2)一个质数如果不能整除另一个合数,这两个数为互质数。例如,3与10、5与 26。

(3)1不是质数也不是合数,它和任何一个自然数在一起都是互质数。如1和9908。

(4)相邻的两个自然数是互质数。如 15与 16。

(5)相邻的两个奇数是互质数。如 49与 51。

(6)大数是质数的两个数是互质数。如97与88。

(7)小数是质数,大数不是小数的倍数的两个数是互质数。如 7和 16。

(8)两个数都是合数(二数差又较大),小数所有的质因数,都不是大数的约数,这两个数是互质数。如357与715,357=3×7×17,而3、7和17都不是715的约数,这两个数为互质数。

2.2.3 什么是模指数运算?

  指数运算谁都懂,不必说了,先说说模运算。模运算是整数运算,有一个整数m,以n为模做模运算,即m mod n。怎样做呢?让m去被n整除,只取所得的余数作为结果,就叫做模运算。例如,10 mod 3=1;26 mod 6=2;28 mod 2 =0等等。

模指数运算就是先做指数运算,取其结果再做模运算。

2.3 RSA算法实现过程

1. 随意选择两个大的质数p和q,p不等于q,计算N=pq。

2. 根据欧拉函数,不大于N且与N互质的整数個数為(p-1)(q-1)。

3. 选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1)。

4. 用以下这个公式计算d:d× e ≡ 1 (mod (p-1)(q-1))。

5. 将p和q的记录销毁。

在以上的内容中,(N,e)是公钥,(N,d)是私钥。

posted @ 2020-12-02 17:17  风筝遇上风  阅读(1119)  评论(0编辑  收藏  举报