【安全系列之加密算法】常用安全的加密算法
最近在做安全相關的工作,那么我們在什么情況下應該使用什么樣的加密算法? 什么樣的加密算法是安全的呢? 安全的基礎上,性能如何呢? 這里記錄一下
?1、首先,為什么要加密?
數據存儲和傳輸存在的風險:
1. 防止不速之客查看機密的數據文件;
2. 防止機密數據被泄露或篡改;
3. 防止特權用戶(如系統管理員)查看私人數據文件;
4. 使入侵者不能輕易地查找一個系統的文件。?
?2、常見加密方式
?2.1對稱加密
?采用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密,也稱為單密鑰加密。特點:
常見加密算法
DES : Data Encryption Standard,即數據加密標準,是一種使用密鑰加密的塊算法,1977年被美國聯邦政府的國家標準局確定為聯邦資料處理標準(FIPS),并授權在非密級政府通信中使用,隨后該算法在國際上廣泛流傳開來。
AES : Advanced Encryption Standard, 高級加密標準 .在密碼學中又稱Rijndael加密法,是美國聯邦政府采用的一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。
對稱加密算法(加解密密鑰相同)
| 名稱 | 密鑰長度 | 運算速度 | 安全性 | 資源消耗 |
| DES | 56位 | 較快 | 低 | 中 |
| 3DES | 112位或168位 | 慢 | 中 | 高 |
| AES | 128、192、256位 | 快 | 高 | 低 |
| 名稱 | 數據大小(MB) | 時間(s) | 平均速度MB/S | 評價 |
| DES | 256 | 10.5 | 22.5 | 低 |
| 3DES | 256 | 12 | 12 | 低 |
| AES(256-bit) | 256 | 5 | 51.2 | 中 |
| Blowfish | 256 | 3.7 | 64 | 高 |
2.2 非對稱加密
非對稱加密算法又稱現代加密算法。
非對稱加密是計算機通信安全的基石,保證了加密數據不會被破解。
與對稱加密算法不同,非對稱加密算法需要兩個密鑰:公開密鑰(publickey) 和私有密(privatekey)
公開密鑰和私有密鑰是一對
如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密。
如果用私有密鑰對數據進行加密,只有用對應的公開密鑰才能解密。
因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。
非對稱算法(加密密鑰和解密密鑰不同)
| 名稱 | 成熟度 | 安全性(取決于密鑰長度) | 運算速度 | 資源消耗 |
| RSA | 高 | 高 | 慢 | 高 |
| DSA | 高 | 高 | 慢 | 只能用于數字簽名 |
| ECC | 低 | 高 | 快 | 低(計算量小,存儲空間占用小,帶寬要求低) |
2.3 對稱與非對稱算法比較
| 名稱 | 密鑰管理 | 安全性 | 速度 |
| 對稱算法 | 比較難,不適合互聯網,一般用于內部系統 | 中 | 快好幾個數量級(軟件加解密速度至少快100倍,每秒可以加解密數M比特數據),適合大數據量的加解密處理 |
| 非對稱算法 | 密鑰容易管理 | 高 | 慢,適合小數據量加解密或數據簽名 |
3、消息摘要
無論輸入的消息有多長,計算出來的消息摘要的長度總是固定的。例如應用MD5算法摘要的消息有128個比特位,用SHA-1算法摘要的消息最終有160比特位的輸出
只要輸入的消息不同,對其進行摘要以后產生的摘要消息也必不相同;但相同的輸入必會產生相同的輸出
消息摘要是單向、不可逆的
MD5:MD5是一種不可逆的加密算法,目前是最牢靠的加密算法之一,尚沒有能夠逆運算的程序被開發出來,它對應任何字符串都可以加密成一段唯一的固定長度的代碼。
SHA1:是由NISTNSA設計為同DSA一起使用的,它對長度小于264的輸入,產生長度為160bit的散列值,因此抗窮舉(brute-force)性更好。SHA-1設計時基于和MD4相同原理,并且模仿了該算法。SHA-1是由美國標準技術局(NIST)頒布的國家標準,是一種應用最為廣泛的Hash函數算法,也是目前最先進的加密技術,被政府部門和私營業主用來處理敏感的信息。而SHA-1基于MD5,MD5又基于MD4。
HMAC:是密鑰相關的哈希運算消息認證碼(Hash-based Message Authentication Code),HMAC運算利用哈希算法,以一個密鑰和一個消息為輸入,生成一個消息摘要作為輸出。也就是說HMAC是需要一個密鑰的。所以,HMAC_SHA1也是需要一個密鑰的,而SHA1不需要。
算法選擇(從性能和安全性綜合)
- 對稱加密: AES(128位),五種工作模式中,電碼本模式(Electronic?Codebook?Book?(ECB))不安全盡量不要使用。
- 非對稱加密: ECC(160位)或RSA(1024),
- 消息摘要: MD5
- 數字簽名:DSA
- 輕量級:TEA、RC系列(RC4),Blowfish (不常換密鑰)
參考:
重要(寫的很詳細,平時可以用):網絡安全之密碼學 信息安全/加密算法_Manaphy Chen的博客-CSDN博客_信息安全加密算法
常見的幾種加密算法比較_傳輸數據
各種加密算法比較 - 落葉的瞬間; - 博客園
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的【安全系列之加密算法】常用安全的加密算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring boot单元测试
- 下一篇: 贪心算法和动态规划