简介
在如今的万维网环境中,如果A要向B发送数据,需要先加密这个数据,因为在一些不安全的网络环境中上网,是很容易被拦截到发送的数据的,如果使用对称加密,密钥传递在网络中被拦截了也一样可以解密,也不可能用线下告知消息接收方密钥的这种方式来进行通信。
在这种情况下第一代非对称加密算法RSA出现了,RSA是1977年由在麻省理工学院工作的Ron Rivest、Adi Shamir和Leonard Adleman一起提出的,RSA就是他们三人姓氏开头字母拼在一起组成的。在A想要发送数据给B时,A先会找B让B产生一对公私钥对e和d(e为公钥d为私钥)和一个大数n,然后B会把e和n发送给A,A收到后会用e和n加密数据之后再发送给B,B收到数据后就能用私钥d来解密出A发送的数据。公钥具有加密之后就无法再用公钥解密的特性,即使获取到了公钥和加密后的数据,也无法解密出原始数据
需要了解的数学知识
互质:若两个及以上的整数的最大公约数为1,那么就称这些数互质
如4:4%1=0,4%2=0,4%3=1,4%4=0 那么4的约数有1,2,4
5:5%1=0,5%2=1,5%3=2,5%4=1,5%5=0 那么5的约数有1,5就是说5与4只有约数1相等,那么他们的最大公约数就为1,5与4就互质
如果是一个质数的话那么他与除了是自己倍数的数都互质
m的e次方余n的d次方余n等于m的e乘d次方余n
此定理为RSA加解密的过程,把m看作需要加密的数据,加密时为(我们把得出的结果也就是密文记为c),解密时
,如果我们能满足
的条件则RSA加解密算法成立
欧拉函数:
若a和b互质那么a的phi(读作fai) b次方余b等于1
基于此函数让RSA加解密成立,其中的意思是在小于b的正整数中与b互质的数的个数,如果b本身为质数,那么b与小于自己的正整数都为互质关系,那么这时
=b-1
欧拉函数还有个性质如果p和q是两个大的质数那么这个性质可以快速求出与一个大数互质的数的个数,RSA算法的破解难度也与p和q的大小成正比,我们将p和q的乘积记为n,那么