一 , 概述
在現代密碼學誕生以前,就已經有很多的加密方法了。例如,最古老的斯巴達加密棒,廣泛應用於公元前7世紀的古希臘。16世紀意大利數學家卡爾達諾發明的柵格密碼,基於單表代換的凱撒密碼、豬圈密碼,基於多表代換的維吉尼亞密碼,二戰中德軍廣泛使用的恩格瑪加密機….但最終都找到了有效的破解算法。
現代密碼學的誕生標志是1977年1月由美國國家標准局公布的數據加密標准(Data Encryption Standard,DES)。
在經過20多年之后,為適應現代的安全要求,2000年美國國家和標准技術協會篩選和評測出了被稱為AES(Advanced Encryption Standard)的加密算法作為新的加密標准。目前,AES已被廣泛使用,且未發現致命缺陷。到目前為止,AES是一個安全的加密算法。
然而,在加密算法之外,面臨一個問題,那就是:秘鑰的分發。就是說,解密方如何獲得加密方的秘鑰呢? 從而出現了:對稱加密和非對稱加密。
二,對稱加密和非對稱加密
1. 對稱加密
對稱加密指的就是加密和解密使用同一個秘鑰,所以叫做對稱加密。對稱加密只有一個秘鑰,作為私鑰。
常見的對稱加密算法:DES,AES,3DES等等。
2. 非對稱加密
非對稱加密指的是:加密和解密使用不同的秘鑰,一把作為公開的公鑰,另一把作為私鑰。公鑰加密的信息,只有私鑰才能解密。私鑰加密的信息,只有公鑰才能解密。
常見的非對稱加密算法:RSA,ECC
3. 區別
對稱加密算法相比非對稱加密算法來說,加解密的效率要高得多。但是缺陷在於對於秘鑰的管理上,以及在非安全信道中通訊時,密鑰交換的安全性不能保障。所以在實際的網絡環境中,會將兩者混合使用.
例如針對C/S模型,
1. 服務端計算出一對秘鑰pub/pri。將私鑰保密,將公鑰公開。
2. 客戶端請求服務端時,拿到服務端的公鑰pub。
3. 客戶端通過AES計算出一個對稱加密的秘鑰X。 然后使用pub將X進行加密。
4. 客戶端將加密后的密文發送給服務端。服務端通過pri解密獲得X。
5. 然后兩邊的通訊內容就通過對稱密鑰X以對稱加密算法來加解密。
三、Hash算法(摘要算法)
Hash算法特別的地方在於它是一種單向算法,用戶可以通過hash算法對目標信息生成一段特定長度的唯一hash值,卻不能通過這個hash值重新獲得目標信息。因此Hash算法常用在不可還原的密碼存儲、信息完整性校驗等。
常見的Hash算法有MD2、MD4、MD5、HAVAL、SHA
---------------------
作者:冷暗雷
來源:CSDN
原文:https://blog.csdn.net/u014079662/article/details/61169607
---------------------
作者:蠟筆沒了芯
來源:博客園
原文: https://www.cnblogs.com/labimeilexin/p/7350448.html