一般互聯網上加密算法分爲三種:
對稱加密、單向加密、非對稱加密
下面就來介紹下如何通過上面的三種加密算法實現數據的機密性、完整性及身份驗證。
對稱機密算法:
對稱加密算法提供加密算法本身並要求用戶提供密鑰以後,能夠結合算法和密鑰將明文轉換爲密文,反之,之所以稱它爲對稱加密,是因爲加密和解密使用的密鑰是相同的。對稱加密算法:加密算法和解密算法,只不過使用的是相同密鑰。
個人理解:
對稱加密雖然解決了數據在傳輸過程得到了數據的完整性,那麼如果Tom給許多用戶發送數據Data時,都要在本地生成對稱密鑰並通過一種密鑰交換方式(Hiffie-Hellman)傳送給對方,這樣的話Tom用戶必須記住所有密鑰對吧!不然的話,如果其中一個用戶截取到數據,也可以查看數據內容,爲了保證數據的機密性,Tom必須爲每個用戶生成一組密鑰來保證數據的機密性。
所以說對稱密鑰解決了數據的機密性,但不便於管理密鑰。
常見的對稱加密算法有:
DES:Data Encrption Standard (默認爲56bit)
3DES:經過3詞DES加密方式
AES:Advanced Encrption Standard (高級加密標準)
AES192(192bit) AES256(256bit) AES512(512bit)
Blowfish
單向加密算法:(保證了數據的完整性,但不能保證數據的機密性)
單向機密算法的特徵:
輸入一樣:輸出必然一樣
雪崩效應:輸入微小改變,將引起結果巨大該表
定長輸出:無論原始數據多大,其結果大小一樣
不可逆:無法根據數據的指紋及特徵碼,還原原始數據
下面通過一個命令來看看雪崩效應的效果:(/etc/passwd爲例)
好了,我就通過下面的圖片來了解下,單向加密算法是如何進行的?
注:如果中間Jerry將Tom發來的數據截獲,並將數據重新利用加密算法進行將數據提取指紋及特徵碼,發送給Jack,Jack並不能保證數據時Tom發送的,也就是說單向加密可以保證數據的完整性,但不能保發送者的身份。
此時,Jerry將Tom發來的數據截獲到本地,並通過Diffie-Hellman進行生成密鑰,並將Data數據進行加密,發送給Jack,Jack收到數據 卻不能真正判斷髮送方的身份。
單向加密類型:
MD4
MD5 128bit
SHA192 SHA256 SHA384
非對稱加密算法:(公鑰加密算法)
非對稱加密算法+CA:保證了用戶的身份,並解決了對稱加密算法的密鑰管理機制
非對稱密鑰算法通常在本地生成一對密鑰,一個是私鑰,而另一個是公鑰.一般公鑰是從
私鑰中提取的。所以公鑰加密,私鑰解密,私鑰加密,公鑰解密。
我們可以通過一個命令來實現生成私鑰,並在私鑰中提取公鑰(如圖)
概念補充:什麼是CA:
CA:就是一個權威的發證機構,而且是公認,所以在本地生成一對密鑰,一個是私鑰,另一個是公鑰,將公鑰發送給CA,讓CA機構進行數字簽名,這讓就可以驗證其身份,這樣在通過單向機密的結合實現數據的機密性、完整性及身份驗證的信息。