常見加密算法比較

加密算法

常見的 對稱加密 算法主要有 DES(數據加密標準)、3DES(三重DES)、AES(高級加密標準) 和Blowfish(河豚魚)等,常見的 非對稱算法 主要有 RSA、DSA 等,散列算法 主要有 SHA-1、SHA-256、MD5 等。

HASH算法(散列算法)

目前常用的是SHA-256算法是SHA-1的後繼算法。
MD5消息摘要算法(英語:MD5 Message-Digest Algorithm),一種被廣泛使用的密碼散列函數,可以產生出一個128位(16字節)的散列值(hash value),用於確保信息傳輸完整一致。MD5由美國密碼學家羅納德·李維斯特(Ronald Linn Rivest)設計,於1992年公開,用以取代MD4算法。MD5比較老,比較容易碰撞。

在這裏插入圖片描述

對稱密碼算法

對稱密碼學的優點是效率高,開銷小,適合加密大量的數據。但對稱密碼學要求通信雙方事先協商好密鑰,這就要求在協商過程中必須做好保密,密鑰只能讓使用的人知道,不能泄露。

AES、DES、3DES 都是 對稱 的 塊加密算法,加解密 的過程是 可逆的。

1、DES是IBM提出的,第一個基於Lucifer算法的加密技術,作爲第一個加密標準,安全性低。
2、3DES和DES使用同樣的算法,只是做了三次加密來提升安全級別。
3、AES旨在取代DES加密技術。AES128、AES192、AES256區別是密鑰長度和加密輪數不同,AES128性能最好,AES256安全性最高,針對AES唯一的破解方式就是暴力破解。AES本身就是爲了取代 DES 的,AES 具有更好的 安全性、效率 和 靈活性。
4、Blowfish由Bruce Schneier發明的一種在世界範圍被廣泛使用的加密方式。Blowfish使用16到448位不同長度的密鑰對數據進行16次加密。這樣黑客們基本不可能對其進行解密。暫時還沒有針對blowfish的破解。

在這裏插入圖片描述

非對稱加密算法

又稱爲 公開密鑰加密算法。它需要兩個密鑰,一個稱爲 公開密鑰 (public key),即 公鑰,另一個稱爲 私有密鑰 (private key),即 私鑰。目前常用的是RSA算法

非對稱密碼學使用場景

數據加解密

與對稱密碼學相比,公鑰密碼學(非對稱密碼學)加密數據的計算非常複雜,而且開銷大、速度較慢,所以不適用於加密大量數據的場景。在實際使用中,通信雙方通常會使用公鑰密碼學來交換密鑰素材,雙方最終計算出密鑰,而用對稱密碼學來加密實際的數據,兩者配合使用,保證了加密速度和安全性。

真實性驗證

除了加解密,RSA 還能實現真實性驗證,即身份認證功能,這也是利用了公鑰密碼學中由任一個密鑰加密的信息只能用另一個密鑰進行解密這一原理。
加解密功能是數據發送方使用接收方的公鑰加密,接收方使用自己的私鑰解密。而身份認證功能是被認證方使用自己的私鑰進行加密,認證方使用被認證方的公鑰進行解密。

完整性驗證

使用私鑰加密公鑰解密這種方式,還能實現完整性驗證,即簽名功能。所謂簽名,就是在數據的後面再加上一段內容,可以證明數據沒有被修改過。
原理:你有一個需要被驗籤的原串A。

步驟一:選擇hash算法將A進行hash得到摘要(hash_a);
步驟二:將hash_a進行加密,得到加密值encrypt_a;
步驟三:將原串A和加密的encrypt_a發給第三方,第三方進行驗籤。第三方先解密encrypt_a,得到一個hash值hash_a1,然後對原串A使用同樣的hash算法進行hash,得到的即爲加密前的hash_a,如果hash_a = hash_a1, 那麼驗籤成功。

RSA使用私鑰對信息加密來做簽名,使用公鑰解密去驗籤。

HASH密碼學可以將任意長的字符串通過哈希計算出固定長度字符串,並且該計算是單向運算,無法逆推。最重要的是,原字符串任意字符的變化都會導致不同的計算結果。HASH計算後得出的信息通常稱爲原字符串的摘要信息,也可以稱爲指紋信息。通過對比摘要信息,就可以判斷數據是否被修改,所以 HASH密碼學通常用於保證數據的完整性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章