RSA非对称加密算法介绍及其简单数学原理

前言:为了大家更好的学习,我尽量采用图文和代码的形式为大家详细而又简单的讲解,与你相遇倍感荣幸,因为成长历程需要你我一起见证,欢迎大家一起讨论

RSA 简单介绍:

RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作,由图下三人RSA非对称加密算法介绍及其简单数学原理_第1张图片

RSA 依赖原理:

对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠,有人找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降,但至少现在还没有出现,到目前为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息理论上是不能被解破的。

RSA依赖的4大数学基础原理

1.互质关系

概念:两个正整数P,Q,除了1以外没有其他公因子,我们就称这两个数是互质关系(coprime),
例如10和7,它们之间出来1外没有其他公因子,所以他们是互质关系,可以看出,非质数之间也存在互质关系;

2.欧拉函数:

概念:欧拉函数用φ(n)来表示,其结果代表着n有多少个与其互质的数,
例如:    φ(10)=4;		解释:{ 1, 3  7 ,9}   数字个数为4 则φ(10)=4;

当n小数我们能清楚知道φ(n)的值,那么当n比较大的时候,欧拉函数有5种情况可以计算大n质的欧拉函数,在这里我只讲与RSA算法相关的情况,RSA使用的情况是两个不等质数的乘积,它对应算法中的一种情况,

	例如 :φ(63)=φ(7*9)=φ(7)*φ(9)=6*6=36。 

3.欧拉定理

如果两个正整数a和n互质,则n的欧拉函数 φ(n) 可以满足下面的等式成立:

a^(φ)≡1(mod n)

	含义:a的φ(n)次方被n除的余数为1。或者说,a的φ(n)次方减去1,可以被n整除

4.模反元素

概念:如果两个正整数a和n互质,那么一定可以找到整数b,使得 ab-1 被n整除,

公式:ab=1( mod n) ;b就叫做a的“模反元素”

例子:3和11互质,那么3的模反元素就是4,因为 (3 × 4)-1 可以被11整除显然,模反元素不止一个, 4加减11的整数倍都是3的模反元素{…,-18,-7,4,15,26,…},即如果b是a的模反元素,则 b+kn 都是a的模反元素

懂了前面四个数学原理;那么就已经具备实现RSA加密算法的基础,我会在下一章节来进行实现;

另外:博文持续不断更新中,绝对的干货,欢迎大家相互讨论交流

你可能感兴趣的:(算法的世界)