密碼算法分類 (學習筆記)

如圖基本上分爲三大類,如果想徹底理解,可以看加粗字“簡單的理解”部分
在這裏插入圖片描述

對稱密碼算法

對稱加密(也叫私鑰加密)指加密和解密使用相同密鑰的加密算法。有時又叫傳統密碼算法,就是加密密鑰能夠從解密密鑰中推算出來,同時解密密鑰也可以從加密密鑰中推算出來。而在大多數的對稱算法中,加密密鑰和解密密鑰是相同的,所以也稱這種加密算法爲祕密密鑰算法或單密鑰算法。它要求發送方和接收方在安全通信之前,商定一個密鑰。對稱算法的安全性依賴於密鑰,泄漏密鑰就意味着任何人都可以對他們發送或接收的消息解密,所以密鑰的保密性對通信的安全性至關重要。

簡單的理解,就是給你發個快遞,快遞裏面是保險箱和鑰匙,保險箱裏面是一張紙。鎖保險箱的時候必須用這個鑰匙才能鎖上,開的時候必須要用這個鑰匙才能打開。

常見的對稱加密算法:SM4、DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。

1.密鑰傳輸問題:
如上所說,由於對稱加密的加密和解密使用的是同一個密鑰,所以對稱加密的安全性就不僅僅取決於加密算法本身的強度,更取決於密鑰是否被安全的保管,因此加密者如何把密鑰安全的傳遞到解密者手裏,就成了對稱加密面臨的關鍵問題。(比如,我們客戶端肯定不能直接存儲對稱加密的密鑰,因爲被反編譯之後,密鑰就泄露了,數據安全性就得不到保障,所以實際中我們一般都是客戶端向服務端請求對稱加密的密鑰,而且密鑰還得用非對稱加密後再傳輸。)
2.密鑰管理問題:
隨着密鑰數量的增多,密鑰的管理問題會逐漸顯現出來。比如我們在加密用戶的信息時,不可能所有用戶都用同一個密鑰加密解密吧,這樣的話,一旦密鑰泄漏,就相當於泄露了所有用戶的信息,因此需要爲每一個用戶單獨的生成一個密鑰並且管理,這樣密鑰管理的代價也會非常大。企業中每一個持有密鑰的人都保守祕密是不可能的,他們通常會有意無意的把密鑰泄漏出去——如果一個用戶使用的密鑰被入侵者所獲得,入侵者便可以讀取該用戶密鑰加密的所有文檔,如果整個企業共用一個加密密鑰,那整個企業文檔的保密性便無從談起。

(公鑰加密)非對稱密碼算法

非對稱加密算法需要兩個密鑰:公開密鑰(publickey:簡稱公鑰)和私有密鑰(privatekey:簡稱私鑰)。公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密。因爲加密和解密使用的是兩個不同的密鑰。
加密和解密使用不同密鑰的加密算法,假設兩個用戶要加密交換數據,雙方交換公鑰,使用時一方用對方的公鑰加密,另一方即可用自己的私鑰解密。

通信過程中祕鑰是如何交互的呢?
1.乙方生成一對密鑰(公鑰和私鑰)並將公鑰向其它方公開。
2.得到該公鑰的甲方使用該密鑰對機密信息進行加密後再發送給乙方。
3.乙方再用自己保存的另一把專用密鑰(私鑰)對加密後的信息進行解密。乙方只能用其專用密鑰(私鑰)解密由對應的公鑰加密後的信息。
在傳輸過程中,即使攻擊者截獲了傳輸的密文,並得到了乙的公鑰,也無法破解密文,因爲只有乙的私鑰才能解密密文。
同樣,如果乙要回復加密信息給甲,那麼需要甲先公佈甲的公鑰給乙用於加密,甲自己保存甲的私鑰用於解密。
如果企業中有n個用戶,企業需要生成n對密鑰,並分發n個公鑰。由於公鑰是可以公開的,用戶只要保管好自己的私鑰即可,因此加密密鑰的分發將變得十分簡單。同時,由於每個用戶的私鑰是唯一的,其他用戶除了可以可以通過信息發送者的公鑰來驗證信息的來源是否真實,還可以確保發送者無法否認曾發送過該信息。

簡單的理解,就是甲想獲得你的文件,但是甲首先給你發了個快遞,快遞裏面是打開的保險箱和α鑰匙,保險箱是空的,甲手裏面還有個β鑰匙。鎖的時候必須用α鑰匙才能鎖上,開的時候必須要用β鑰匙才能打開。
你把文件放進保險箱,用α鑰匙鎖上,給甲郵回去,A收到保險箱之後,用β鑰匙打開,就拿到了文件。
反之亦然,你想要甲手裏的文件,需要先給甲發個打開的保險箱和γ鑰匙。保險箱只能用γ鑰匙鎖上,用δ鑰匙打開。δ鑰匙在你手上。

常見的非對稱加密算法:SM2、RSA、ECC(移動設備用)、Diffie-Hellman、El Gamal、DSA(數字簽名用)

非對稱加密的缺點是加解密速度要遠遠慢於對稱加密,在某些極端情況下,甚至能比對稱加密慢上1000倍。

(Hash算法)密碼雜湊算法

通過Hash算法對目標信息生成一段特定長度的唯一的Hash值,卻不能通過這個Hash值重新獲得目標信息。因此Hash算法常用在不可還原的密碼存儲、信息完整性校驗等。

簡單的理解,就是給你發個快遞,快遞裏面是一個雞蛋,天氣熱,雞蛋孵化出來了一隻小雞。我給你發的是雞蛋,結果你收到了小雞,這個小雞還不能被還原成雞蛋了。而且還能知道它不是鴨子下的蛋,因爲長出來的是小雞。

常見的Hash算法:SM3、MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1

加密算法的效能通常可以按照算法本身的複雜程度、密鑰長度(密鑰越長越安全)、加解密速度等來衡量。上述的算法中,除了DES密鑰長度不夠、MD2速度較慢已逐漸被淘汰外,其他算法仍在目前的加密系統產品中使用。

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