RSA算法简介

RSA算法简介

RSA算法是一种非对称性加密算法,现在算是最具有影响力的算法,简单来说RSA算法运用了"一个大整数进行因式分解具备一定的难度"这个数学知识来进行加密,对一个极大整数做因式分解越难,那么想要破解加密过后的密码就越难。在了解RSA算法之前,先要了解以下几个知识点:

一、互质关系

__如果两个正整数,除了1以外,没有其他公因子,我们就称这两个数是互质关系(coprime)。__比如,15和32没有公因子,所以它们是互质关系。这说明,不是质数也可以构成互质关系。

关于互质关系,不难得到以下结论:

  1. 任意两个质数构成互质关系,比如13和61。
  2. 一个数是质数,另一个数只要不是前者的倍数,两者就构成互质关系,比如3和10。
  3. 如果两个数之中,较大的那个数是质数,则两者构成互质关系,比如97和57。
  4. 1和任意一个自然数是都是互质关系,比如1和99。
  5. p是大于1的整数,则p和p-1构成互质关系,比如57和56。
  6. p是大于1的奇数,则p和p-2构成互质关系,比如17和15。

二、欧拉函数

欧拉函数可以用来解决"给定任意一个整数N,那么小于N或等于N的整数中,有几个和N是互质关系",可表示为φ(N)

例:以φ(8)表示
在小于或等于8之中,只有1,3,5,7和8是互质关系,所以φ(8)={1,3,5,7}=4

这里只需要知道几个知识点就够了,没必要把欧拉函数全部给理解了。

φ(n) 的计算方法并不复杂,但是为了得到最后那个公式,需要一步步讨论。

第一种情况

如果n=1,则 φ(1) = 1 。因为1与任何数(包括自身)都构成互质关系。

第二种情况

如果n是质数,则 φ(n)=n-1 。因为质数与小于它的每一个数,都构成互质关系。比如5与1、2、3、4都构成互质关系。

第三种情况

如果n是质数的某一个次方,即 n = p^k (p为质数,k为大于等于1的整数),则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jzsUzcT5-1601259593358)(https://i.loli.net/2020/09/05/KXHNk6YDlTGjfcB.png)]

比如 φ(8) = φ(2^3) =2^3 - 2^2 = 8 -4 = 4。

第四种情况

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

即积的欧拉函数等于各个因子的欧拉函数之积。比如,φ(56)=φ(8×7)=φ(8)×φ(7)=4×6=24。

三、欧拉定理

当两个整数A,B是互质关系的时候,那么A的φ(A)次方除于N除余必然是1

image.png

也就是说,a的φ(n)次方被m除的余数为1。或者说,a的φ(m)次方减去1,可以被m整除。比如,3和7互质,而7的欧拉函数φ(7)等于6,所以3的6次方(729)减去1,可以被7整除(728/7=104)。

这个公式也不进行证明,比较复杂,只需要记住结论就好了。

欧拉定理有一个特殊情况,当m是质数p时,此式则为:

image.png

这就是著名的费马小定理。它是欧拉定理的特例。

欧拉定理是RSA算法的核心。理解了这个定理,就可以理解RSA。

四、模反元素

如果两个正整数a和n互质,那么一定可以找到整数b,使得 ab-1 被n整除,或者说ab被n除的余数是1。

image.png

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

具体可以参考:http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2013年6月27日
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页