倫·麥席森·圖靈在二戰期間主要負責破譯德國人的密碼系統Enigma,破解密碼需要大量的計算,圖靈深知工欲善其事必先利其器的道理,於是一臺叫作CO-LOSSUS的計算機在1943年被研製出來,然後這種電子計算機總共生產了10臺,他們出色完成了密碼破譯工作。
後來甚至有人將二戰勝利原因歸功於圖靈機的誕生,雖然有些誇大,但圖靈機的誕生確實加快了二戰的結束這是不可否認的。而圖靈機戰勝的不是法西斯,而是戰勝了德國人的密碼系統Enigma。而1976年以前都是使用對稱加密的,所以圖靈機也就是戰勝了對稱加密算法。
6.23號是艾倫·麥席森·圖靈的誕辰,感興趣的同學可以看看電影《模仿遊戲》,影片改編自安德魯·霍奇斯編著的傳記《艾倫·圖靈傳》,當然喜歡閱讀的朋友可以看看原著,一定會讓你受益匪淺。
故事講完了,而今天我要給大家講的是另外一種加密算法:非對稱加密。而RSA算法就是其中的一種,也是非對稱加密使用到最廣泛的一種。其實RSA算法只是非常簡單的一個公式,沒有學過高數的同學照樣可以搞懂其原理,只要你和我一樣有一顆喜歡探索的心!!!
我把內容主要分為了三大塊,為什麼這麼分呢?這樣可以讓我們循序漸進的去了解rsa,然後一步一步的揭開rsa的面紗。
一、目前常見加密算法簡介
二、RSA算法介紹及數論知識介紹
三、RSA加解密過程及公式論證
目前常見的加密算法可以分成三類,對稱加密算法,非對稱加密算法和Hash算法。
注意Base64編碼只是一種編碼格式並不是加密算法,它可用於在HTTP環境下傳遞較長的標識信息。
1.對稱加密1976年以前,所有的加密方法都是同一種模式即對稱加密,它採用了對稱密碼編碼技術。它的特點是文件加密和解密使用相同的密鑰,即加密密鑰也可以用作解密密鑰,這種方法在密碼學中叫做對稱加密算法,對稱加密算法使用起來簡單快捷,密鑰較短,且破譯困難,除了數據加密標準(DES),另一個對稱密鑰加密系統是國際數據加密算法(IDEA),它比DES的加密性好,而且對計算機功能要求也沒有那麼高。IDEA加密標準由PGP(Pretty Good Privacy)系統使用。對稱加密又分為流加密與分組加密這裡就不展開講了,感興趣的同學可以自行了解。
對稱加密的特點:
優點:對稱加密算法的優點是算法公開、計算量小、加密速度快、加密效率高。
缺點:在數據傳送前,發送方和接收方必須商定好秘鑰,然後雙方保存好秘鑰。如果一方的秘鑰被洩露,那麼加密信息也就不安全了
使用場景:本地數據加密、https通信、網絡傳輸等
常見算法:AES、DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6
2.非對稱加密1976年,兩位美國計算機學家Whitfield Diffie 和 Martin Hellman,提出了一種嶄新構思,可以在不直接傳遞密鑰的情況下,完成解密。這被稱為「Diffie-Hellman密鑰交換算法」。這個算法啟發了其他科學家。人們認識到,加密和解密可以使用不同的規則,只要這兩種規則之間存在某種對應關係即可,這樣就避免了直接傳遞密鑰。這種新的加密模式被稱為」非對稱加密算法」。
非對稱加密特點:
優點:非對稱加密與對稱加密相比其安全性更好
缺點:加密和解密花費時間長、速度慢,只適合對少量數據進行加密。
使用場景:https會話前期、CA數字證書、信息加密、登錄認證等
常見算法:RSA、ECC(行動裝置用)、Diffie-Hellman、El Gamal、DSA(數字籤名用)
3.Hash算法Hash算法特別的地方在於它是一種單向算法,用戶可以通過Hash算法對目標信息生成一段特定長度的唯一的Hash值,卻不能通過這個Hash值重新獲得目標信息。因此Hash算法常用在不可還原的密碼存儲、信息完整性校驗等。
Hash算法特點:
加密算法的選擇對稱加密算法不能實現籤名,因此籤名只能非對稱算法。
驗證文件或字符一致性用hash算法
數據量大用對稱加密算法、小則可以用非對稱加密
還可以非對稱與對稱集成,可參考https加密過程HTTPS原理詳解
RSA建議採用1024位的數字,ECC建議採用160位,AES採用128為即可。