各種主流加密算法解析


最近開始做金融項目,接觸了加密算法,在這里做個總結,加深認識。

目前比較常用的加密算法總結起來就是單向加密和雙向加密了,很少對吧,理解起來也不算很難。

什么是單向加密?
通俗來說,就是通過對數據進行摘要計算生成密文,密文不可逆推還原。算法代表:MD5、SHA、MAC、CRC等。

什么是雙向加密?
而雙向加密算法,與單向加密正好相反,就是可以把密文逆推還原成明文,雙向加密又分為對稱加密和非對稱加密。

什么是對稱加密?
采用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密,也稱為單密鑰加密。

常用算法:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。

對稱加密的優點:加密計算量小、速度塊,適合對大量數據進行加密的場景。

對稱加密的缺點:

1、密鑰傳輸問題:

如上所說,由於對稱加密的加密和解密使用的是同一個密鑰,所以對稱加密的安全性就不僅僅取決於加密算法本身的強度,更取決於密鑰是否被安全的保管,因此加密者如何把密鑰安全的傳遞到解密者手里,就成了對稱加密面臨的關鍵問題。(比如,我們客戶端肯定不能直接存儲對稱加密的密鑰,因為被反編譯之后,密鑰就泄露了,數據安全性就得不到保障,所以實際中我們一般都是客戶端向服務端請求對稱加密的密鑰,而且密鑰還得用非對稱加密加密后再傳輸。)

2、密鑰管理問題:

再者隨着密鑰數量的增多,密鑰的管理問題會逐漸顯現出來。比如我們在加密用戶的信息時,不可能所有用戶都用同一個密鑰加密解密吧,這樣的話,一旦密鑰泄漏,就相當於泄露了所有用戶的信息,因此需要為每一個用戶單獨的生成一個密鑰並且管理,這樣密鑰管理的代價也會非常大。

對稱加密工作過程簡要示意圖:

什么是非對稱加密?
與對稱加密算法不同,非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那么只有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。

常用算法:RSA、Elgamal、背包算法、Rabin、D-H、ECC(橢圓曲線加密算法)等。

非對稱加密的優點:安全性更好。

非對稱加密的缺點:加密和解密花費時間長、速度慢,只適合對少量數據進行加密。

非對稱加密工作過程簡要示意圖:

工作流程:

1、乙方生成一對密鑰(公鑰和私鑰)並將公鑰向其它方公開。

2、得到該公鑰的甲方使用該密鑰對機密信息進行加密后再發送給乙方。

3、乙方再用自己保存的另一把專用密鑰(私鑰)對加密后的信息進行解密。乙方只能用其專用密鑰(私鑰)解密由對應的公鑰加密后的信息。

在傳輸過程中,即使攻擊者截獲了傳輸的密文,並得到了乙的公鑰,也無法破解密文,因為只有乙的私鑰才能解密密文。

同樣,如果乙要回復加密信息給甲,那么需要甲先公布甲的公鑰給乙用於加密,甲自己保存甲的私鑰用於解密。

對稱加密和非對稱加密簡要工作流程圖:

 

原文:https://blog.csdn.net/qq_34573534/article/details/90409232


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM