常見的加密演算法可以分成三類,對稱加密演算法,非對稱加密演算法和Hash演算法,
對稱加密
指加密和解密使用相同密鑰的加密演算法,對稱加密演算法的優點在于加解密的高速度和使用長密鑰時的難破解性,假設兩個用戶需要使用對稱加密方法加密然后交換資料,則用戶最少需要2個密鑰并交換使用,如果企業內用戶有n個,則整個企業共需要n×(n-1) 個密鑰,密鑰的生成和分發將成為企業資訊部門的惡夢,對稱加密演算法的安全性取決于加密密鑰的保存情況,但要求企業中每一個持有密鑰的人都保守秘密是不可能的,他們通常會有意無意的把密鑰泄漏出去——如果一個用戶使用的密鑰被入侵者所獲得,入侵者便可以讀取該用戶密鑰加密的所有檔案,如果整個企業共用一個加密密鑰,那整個企業檔案的保密性便無從談起,
常見的對稱加密演算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES
非對稱加密
指加密和解密使用不同密鑰的加密演算法,也稱為公私鑰加密,假設兩個用戶要加密交換資料,雙方交換公鑰,使用時一方用對方的公鑰加密,另一方即可用自己的私鑰解密,如果企業中有n個用戶,企業需要生成n對密鑰,并分發n個公鑰,由于公鑰是可以公開的,用戶只要保管好自己的私鑰即可,因此加密密鑰的分發將變得十分簡單,同時,由于每個用戶的私鑰是唯一的,其他用戶除了可以可以通過資訊發送者的公鑰來驗證資訊的來源是否真實,還可以確保發送者無法否認曾發送過該資訊,非對稱加密的缺點是加解密速度要遠遠慢于對稱加密,在某些極端情況下,甚至能比非對稱加密慢上1000倍,
常見的非對稱加密演算法:RSA、ECC(移動設備用)、Diffie-Hellman、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為即可,
二.加密演算法介紹
對稱加密演算法
對稱加密演算法用來對敏感資料等資訊進行加密,常用的演算法包括:
DES(Data Encryption Standard):資料加密標準,速度較快,適用于加密大量資料的場合,
3DES(Triple DES):是基于DES,對一塊資料用三個不同的密鑰進行三次加密,強度更高,
AES(Advanced Encryption Standard):高級加密標準,是下一代的加密演算法標準,速度快,安全級別高;
非對稱演算法
RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的檔案塊的長度也是可變的;
DSA(Digital Signature Algorithm):數字簽名演算法,是一種標準的 DSS(數字簽名標準);
ECC(Elliptic Curves Cryptography):橢圓曲線密碼編碼學,
ECC和RSA相比,在許多方面都有對絕對的優勢,主要體現在以下方面:
抗攻擊性強,相同的密鑰長度,其抗攻擊性要強很多倍,
計算量小,處理速度快,ECC總的速度比RSA、DSA要快得多,
存盤空間占用小,ECC的密鑰尺寸和系統引數與RSA、DSA相比要小得多,意味著它所占的存貯空間要小得多,這對于加密演算法在IC卡上的應用具有特別重要的意義,
帶寬要求低,當對長訊息進行加解密時,三類密碼系統有相同的帶寬要求,但應用于短訊息時ECC帶寬要求卻低得多,帶寬要求低使ECC在無線網路領域具有廣泛的應用前景,
散列演算法
散列是資訊的提煉,通常其長度要比資訊小得多,且為一個固定長度,加密性強的散列一定是不可逆的,這就意味著通過散列結果,無法推出任何部分的原始資訊,任何輸入資訊的變化,哪怕僅一位,都將導致散列結果的明顯變化,這稱之為雪崩效應,散列還應該是防沖突的,即找不出具有相同散列結果的兩條資訊,具有這些特性的散列結果就可以用于驗證資訊是否被修改,
單向散列函式一般用于產生訊息摘要,密鑰加密等,常見的有:
l MD5(Message Digest Algorithm 5):是RSA資料安全公司開發的一種單向散列演算法,非可逆,相同的明文產生相同的密文,
l SHA(Secure Hash Algorithm):可以對任意長度的資料運算生成一個160位的數值;
SHA-1與MD5的比較
因為二者均由MD4匯出,SHA-1和MD5彼此很相似,相應的,他們的強度和其他特性也是相似,但還有以下幾點不同:
l 對強行供給的安全性:最顯著和最重要的區別是SHA-1摘要比MD5摘要長32 位,使用強行技術,產生任何一個報文使其摘要等于給定報摘要的難度對MD5是2128數量級的操作,而對SHA-1則是2160數量級的操作,這樣,SHA-1對強行攻擊有更大的強度,
l 對密碼分析的安全性:由于MD5的設計,易受密碼分析的攻擊,SHA-1顯得不易受這樣的攻擊,
l 速度:在相同的硬體上,SHA-1的運行速度比MD5慢,
對稱與非對稱演算法比較
以上綜述了兩種加密方法的原理,總體來說主要有下面幾個方面的不同:
l 在管理方面:公鑰密碼演算法只需要較少的資源就可以實作目的,在密鑰的分配上,兩者之間相差一個指數級別(一個是n一個是n2),所以私鑰密碼演算法不適應廣域網的使用,而且更重要的一點是它不支持數字簽名,
l 在安全方面:由于公鑰密碼演算法基于未解決的數學難題,在破解上幾乎不可能,對于私鑰密碼演算法,到了AES雖說從理論來說是不可能破解的,但從計算機的發展角度來看,公鑰更具有優越性,
l 從速度上來看:AES的軟體實作速度已經達到了每秒數兆或數十兆位元,是公鑰的100倍,如果用硬體來實作的話這個比值將擴大到1000倍,
三. 加密演算法的選擇
由于非對稱加密演算法的運行速度比對稱加密演算法的速度慢很多,當我們需要加密大量的資料時,建議采用對稱加密演算法,提高加解密速度,
對稱加密演算法不能實作簽名,因此簽名只能非對稱演算法,
由于對稱加密演算法的密鑰管理是一個復雜的程序,密鑰的管理直接決定著他的安全性,因此當資料量很小時,我們可以考慮采用非對稱加密演算法,
在實際的操作程序中,我們通常采用的方式是:采用非對稱加密演算法管理對稱演算法的密鑰,然后用對稱加密演算法加密資料,這樣我們就集成了兩類加密演算法的優點,既實作了加密速度快的優點,又實作了安全方便管理密鑰的優點,
那采用多少位的密鑰呢? RSA建議采用1024位的數字,ECC建議采用160位,AES采用128為即可,
參考:
https://www.cnblogs.com/colife/p/5566789.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/3940.html
標籤:訊息安全
上一篇:XSS基礎學習
