RSA
一、概述
RSA算法是1977年由罗纳德·里维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。
应用
虚拟机的ssh远程登录、tomcat的ssl加密传输、git免密登录
二、RSA为非对称加密
对称加密:
同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
非对称加密:
非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
举个例子,私有密钥就像一把钥匙一样,再根据这把钥匙做出很多把锁,锁就是公有密钥。数据都放在一个箱子里用这个锁锁起来再传输,只有有钥匙的人才能打开。
三、RSA算法的原理
一共要用到p、q、N、L、E、D六个数据:
- p、q: 首先取两个足够大的质数p、q
- N: 令N=p*q
- L: L是(p-1)与(q-1)的最小公倍数
- E: 使得E与L互质且1<E<L
- D: 使得(D*E)%L=1且1<D<L
- (E,N)为公钥,(D,N)为私钥
**加密过程:**密文=(明文^E)%N
**解密过程:**明文=(密文^D)%N
相当于有一把锁,把钥匙(私钥)拿在自己手里,把锁给别人,别人那公钥加密好后自己再拿私钥解锁