點擊上方“” 可以訂閱哦!
.io
全球視角,獨到見解
一、簡述
常見的加密算法可以分成三類,對稱加密算法,非對稱加密算法和Hash算法。
對稱加密
指加密和解密使用相同密鑰的加密算法。對稱加密算法的優點在于加解密的高速度和使用長密鑰時的難破解性。
假設兩個用戶需要使用對稱加密方法加密然后交換數據,則用戶最少需要2個密鑰并交換使用,如果企業內用戶有n個,則整個企業共需要n×(n-1) 個密鑰,密鑰的生成和分發將成為企業信息部門的惡夢。
對稱加密算法的安全性取決于加密密鑰的保存情況,但要求企業中每一個持有密鑰的人都保守秘密是不可能的,他們通常會有意無意的把密鑰泄漏出去——如果一個用戶使用的密鑰被入侵者所獲得,入侵者便可以讀取該用戶密鑰加密的所有文檔,如果整個企業共用一個加密密鑰,那整個企業文檔的保密性便無從談起。
常見的對稱加密算法:DES、3DES、DESX、、IDEA、RC4、RC5、RC6和AES
非對稱加密
指加密和解密使用不同密鑰的加密算法,也稱為公私鑰加密。假設兩個用戶要加密交換數據,雙方交換公鑰,使用時一方用對方的公鑰加密,另一方即可用自己的私鑰解密。
如果企業中有n個用戶,企業需要生成n對密鑰,并分發n個公鑰。由于公鑰是可以公開的,用戶只要保管好自己的私鑰即可,因此加密密鑰的分發將變得十分簡單。同時,由于每個用戶的私鑰是唯一的,其他用戶除了可以可以通過信息發送者的公鑰來驗證信息的來源是否真實,還可以確保發送者無法否認曾發送過該信息。
非對稱加密的缺點是加解密速度要遠遠慢于對稱加密,在某些極端情況下,甚至能比非對稱加密慢上1000倍。
常見的非對稱加密算法:RSA、ECC(移動設備用)、-、El Gamal、DSA(數字簽名用)
Hash算法
Hash算法特別的地方在于它是一種單向算法,用戶可以通過Hash算法對目標信息生成一段特定長度的唯一的Hash值,卻不能通過這個Hash值重新獲得目標信息。因此Hash算法常用在不可還原的密碼存儲、信息完整性校驗等。
常見的Hash算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1
加密算法的效能通常可以按照算法本身的復雜程度、密鑰長度(密鑰越長越安全)、加解密速度等來衡量。上述的算法中,除了DES密鑰長度不夠、MD2速度較慢已逐漸被淘汰外,其他算法仍在目前的加密系統產品中使用。
加密算法的選擇
前面的章節已經介紹了對稱解密算法和非對稱加密算法,有很多人疑惑:那我們在實際使用的過程中究竟該使用哪一種比較好呢?
我們應該根據自己的使用特點來確定,由于非對稱加密算法的運行速度比對稱加密算法的速度慢很多,當我們需要加密大量的數據時,建議采用對稱加密算法,提高加解密速度。
對稱加密算法不能實現簽名,因此簽名只能非對稱算法。
由于對稱加密算法的密鑰管理是一個復雜的過程,密鑰的管理直接決定著他的安全性,因此當數據量很小時,我們可以考慮采用非對稱加密算法。
在實際的操作過程中,我們通常采用的方式是:采用非對稱加密算法管理對稱算法的密鑰,然后用對稱加密算法加密數據,這樣我們就集成了兩類加密算法的優點,既實現了加密速度快的優點,又實現了安全方便管理密鑰的優點。
如果在選定了加密算法后,那采用多少位的密鑰呢?一般來說,密鑰越長,運行的速度就越慢,應該根據的我們實際需要的安全級別來選擇,一般來說,RSA建議采用1024位的數字,ECC建議采用160位,AES采用128為即可。
二、加密算法介紹
對稱加密算法
對稱加密算法用來對敏感數據等信息進行加密,常用的算法包括:
非對稱算法
ECC和RSA相比,在許多方面都有對絕對的優勢,主要體現在以下方面:
散列算法
散列是信息的提煉,通常其長度要比信息小得多,且為一個固定長度。加密性強的散列一定是不可逆的,這就意味著通過散列結果,無法推出任何部分的原始信息。任何輸入信息的變化常見的密碼算法體制有什么,哪怕僅一位,都將導致散列結果的明顯變化,這稱之為雪崩效應。散列還應該是防沖突的,即找不出具有相同散列結果的兩條信息。具有這些特性的散列結果就可以用于驗證信息是否被修改。
單向散列函數一般用于產生消息摘要,密鑰加密等,常見的有:
SHA-1與MD5的比較:
因為二者均由MD4導出常見的密碼算法體制有什么,SHA-1和MD5彼此很相似。相應的,他們的強度和其他特性也是相似,但還有以下幾點不同:
對稱與非對稱算法比較
以上綜述了兩種加密方法的原理,總體來說主要有下面幾個方面的不同:
三、加密算法的選擇
由于非對稱加密算法的運行速度比對稱加密算法的速度慢很多,當我們需要加密大量的數據時,建議采用對稱加密算法,提高加解密速度。
對稱加密算法不能實現簽名,因此簽名只能非對稱算法。
由于對稱加密算法的密鑰管理是一個復雜的過程,密鑰的管理直接決定著他的安全性,因此當數據量很小時,我們可以考慮采用非對稱加密算法。
在實際的操作過程中,我們通常采用的方式是:采用非對稱加密算法管理對稱算法的密鑰,然后用對稱加密算法加密數據,這樣我們就集成了兩類加密算法的優點,既實現了加密速度快的優點,又實現了安全方便管理密鑰的優點。
那采用多少位的密鑰呢? RSA建議采用1024位的數字,ECC建議采用160位,AES采用128為即可。
四、密碼學在現代的應用
基于公鑰密碼體制可以實現以上通用功能以外,還可以設計實現以下的系統:安全電子商務系統、電子現金系統、電子選舉系統、電子招投標系統、電子彩票系統等。
1、AES對稱加密:
AES加密
分組
2、分組密碼的填充
分組密碼的填充
PKCS#5填充方式
3、流密碼
流密碼
4、分組密碼加密中的四種模式
ECB模式
答疑時間
優點:
缺點:
CBC模式CBC模式
優點:
缺點:
CFB模式
優點:
缺點:
OFB模式
優點:
缺點: