對稱加密
[算法]
在加密和解密時使用的是同一個秘鑰;而[非對稱加密算法]
需要兩個[密鑰]
來進行加密和解密,這兩個秘鑰是[公開密鑰]
(public key,簡稱公鑰)和私有密鑰(private key,簡稱私鑰)。
RSA加密
與對稱加密[算法]不同,[非對稱加密算法]需要兩個[密鑰]:
[公開密鑰](publickey)
和私有密鑰(privatekey)
。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那么只有用對應的公開密鑰才能解密。因為加密
和解密
使用的是兩個不同的[密鑰],所以這種算法叫作[非對稱加密算法]
。
RSA
加密原理
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位時,以目前的技術破解幾乎不可能,所以很安全