对称加密
[算法]
在加密和解密时使用的是同一个秘钥;而[非对称加密算法]
需要两个[密钥]
来进行加密和解密,这两个秘钥是[公开密钥]
(public key,简称公钥)和私有密钥(private key,简称私钥)。
与对称加密[算法]不同,[非对称加密算法]需要两个[密钥]:
[公开密钥](publickey)
和私有密钥(privatekey)
。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密
和解密
使用的是两个不同的[密钥],所以这种算法叫作[非对称加密算法]
。
RSA
是常用的加密模式,其加密原理可用以下的例子进行简要的论述。
随机取两个质数
P = 61;
q = 53;
N = P * Q = 3233;
// E是1-n之间的一个随机的质数
E = 17;
// D是通过一系列数学运算得出的一个数字,
// 运算方法后续会附上阮一峰老师的两篇文章链接
// (N,D)(N,E)要满足可以互相解值运算
// 假如(N,D)是公钥,(N,E)是私钥
// 满足私钥加密,公钥解密或者反过来公钥加密,私钥解密。
// 也要满足只知道(N,D)就想知道(N,E),那就要把N这个大的整数进行因数分解。
// 因数分解只能使用暴力穷举,N越大,相应的也就越安全
// 当 N 大到1024位或者2048位时,以目前的技术破解几乎不可能,所以很安全