RSA加密算法

##一、对称加密算法
在RSA算法出现之前,人们一直用的是对称加密算法,什么是对称加密算法:
加解密双方使用同一套密钥,即甲用密钥加密,乙还得用与甲同样的密钥来减密,这就存在极大的安全隐患。
常用的对称加减密算法有:DES, 3DES,AES,SM1(国密中的对称算法,密钥长度是128位)等。
##二、非对称加密算法
针对对称算法的不足,后来有三位大牛想出了一套非对称算法,也就是现在我们常说的RSA算法。这个算法里用到了很多数学知识,起到数学,感觉就不是一般人能研究的,不过人类生活中很多东西都与数学息息相关,没有数学就没有现在美好的生活,所以下面简单说明几个数学概念。
###1、互质关系
质数, 素数,这两个名词很多人在数学习课本里都听过,好像在中学的数学课本里就有了,它们表示同一个东西,只是两种不同叫法,那什么是质数?
任意一个数如果只能被1和它本身整除,这个数就是质数。

那什么是互质关系呢?如果两个正整数,除了1以外,没有其他公因子,那这两个数就是互质关系。
通过互质关系的概念,不难发现两个质数肯定是互质关系,但不一定互质关系的两个数一定都是是质数,比如15与32。以下是别人关于互质关系的总结:

  a. 任意两个质数构成互质关系,比如13和61。

  b. 一个数是质数,另一个数只要不是前者的倍数,两者就构成互质关系,比如3和10。

  c. 如果两个数之中,较大的那个数是质数,则两者构成互质关系,比如97和57。

  d. 1和任意一个自然数是都是互质关系,比如1和99。

  e. p是大于1的整数,则p和p-1构成互质关系,比如57和56。

  f. p是大于1的奇数,则p和p-2构成互质关系,比如17和15。

###2、欧拉函数
何为欧拉函数?
在任意的正整数n,请问在小于等于n的正整数中,有多少个与n构成互质关系,计算这个值的方法,就叫做欧拉函数,以φ(n)表示。
比如正整数8,φ(8)=?,很快算出有1、3、5、7,所以φ(8)=4

根据前面对质数,互质关系,欧拉函数的介绍,大牛们把欧拉函数又推导出下面几个等式也成立:
1)如果n可以分解成两

你可能感兴趣的:(软件工程)