常見的加密算法

常見的加密算法能夠分紅三類,對稱加密算法,非對稱加密算法和Hash算法。

對稱加密

指加密和解密使用相同密鑰的加密算法。對稱加密算法的優勢在於加解密的高速度和使用長密鑰時的難破解性。假設兩個用戶須要使用對稱加密方法加密而後交換數據,則用戶最少須要2個密鑰並交換使用,若是企業內用戶有n個,則整個企業共須要n×(n-1) 個密鑰,密鑰的生成和分發將成爲企業信息部門的惡夢。對稱加密算法的安全性取決於加密密鑰的保存狀況,但要求企業中每個持有密鑰的人都保守祕密是不可能的,他們一般會有意無心的把密鑰泄漏出去——若是一個用戶使用的密鑰被入侵者所得到,入侵者即可以讀取該用戶密鑰加密的全部文檔,若是整個企業共用一個加密密鑰,那整個企業文檔的保密性便無從談起。html

常見的對稱加密算法:DES、3DES、DESX、Blowfish、IDEA、RC四、RC五、RC6和AESgit

非對稱加密

指加密和解密使用不一樣密鑰的加密算法,也稱爲公私鑰加密。假設兩個用戶要加密交換數據,雙方交換公鑰,使用時一方用對方的公鑰加密,另外一方便可用本身的私鑰解密。若是企業中有n個用戶,企業須要生成n對密鑰,並分發n個公鑰。因爲公鑰是能夠公開的,用戶只要保管好本身的私鑰便可,所以加密密鑰的分發將變得十分簡單。同時,因爲每一個用戶的私鑰是惟一的,其餘用戶除了能夠能夠經過信息發送者的公鑰來驗證信息的來源是否真實,還能夠確保發送者沒法否定曾發送過該信息。非對稱加密的缺點是加解密速度要遠遠慢於對稱加密,在某些極端狀況下,甚至能比非對稱加密慢上1000倍。算法

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

Hash算法

Hash算法特別的地方在於它是一種單向算法,用戶能夠經過Hash算法對目標信息生成一段特定長度的惟一的Hash值,卻不能經過這個Hash值從新得到目標信息。所以Hash算法經常使用在不可還原的密碼存儲、信息完整性校驗等。網絡

常見的Hash算法:MD二、MD四、MD五、HAVAL、SHA、SHA-一、HMAC、HMAC-MD五、HMAC-SHA1函數

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

加密算法的選擇

前面的章節已經介紹了對稱解密算法和非對稱加密算法,有不少人疑惑:那咱們在實際使用的過程當中究竟該使用哪種比較好呢?加密

咱們應該根據本身的使用特色來肯定,因爲非對稱加密算法的運行速度比對稱加密算法的速度慢不少,當咱們須要加密大量的數據時,建議採用對稱加密算法,提升加解密速度。設計

對稱加密算法不能實現簽名,所以簽名只能非對稱算法。code

因爲對稱加密算法的密鑰管理是一個複雜的過程,密鑰的管理直接決定着他的安全性,所以當數據量很小時,咱們能夠考慮採用非對稱加密算法。

在實際的操做過程當中,咱們一般採用的方式是:採用非對稱加密算法管理對稱算法的密鑰,而後用對稱加密算法加密數據,這樣咱們就集成了兩類加密算法的優勢,既實現了加密速度快的優勢,又實現了安全方便管理密鑰的優勢。

若是在選定了加密算法後,那採用多少位的密鑰呢?通常來講,密鑰越長,運行的速度就越慢,應該根據的咱們實際須要的安全級別來選擇,通常來講,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

相關文章
相關標籤/搜索