常見加密算法特色及適用場景

     常見的加密算法主要有三種:對稱加密算法、非對稱加密算法和數字摘要算法。算法

     特別說明,對於加密算法的沒法破解,是指其在空間和時間上不具有實現的條件。如某個加密算法,採用暴擊攻擊,在現有的計算資源條件下,須要花費50年時間,那麼就能夠認爲其沒法破解。安全

1、常見加密算法

一、對稱加密算法

     對稱加密算法也叫共享密鑰加密算法、單密鑰加密算法。採用單密鑰的加密方法,同一個密鑰能夠同時用做信息的加密和解密,即解密算法爲加密算法的逆算法。所以在知道了加密算法後也就知道了解密算法。函數

     衡量對稱加密算法優劣的取決於其密鑰的長度。密鑰越長,破解須要測試的密鑰就越多,破解這種算法的難度就越大。其安全性取決因而否有未經受權的人得到了對稱密鑰。性能

     對稱加密算法主要有(可忽略,略知便可):測試

  • DES:基於使用56位密鑰的對稱算法,速度較快,適用於加密大量數據的場合。可是目前DES已經不是一種安全的加密方法,主要由於它使用的56位密鑰太短。加密

  • 3DES算法:三重數據加密算法,基於DES,對一塊數據用三個不一樣的密鑰進行三次加密,強度更高,解決因計算機運算能力的加強,DES容易被暴力破解的問題。spa

  • AES算法:又稱Rijndael加密法,用來替代DES,速度快,安全級別高,支持12八、19二、25六、512位密鑰的加密。設計

  • RC5算法:是一種因簡潔著稱的對稱分組加密算法,它是參數可變的分組密碼算法,三個可變的參數是:分組大小、密鑰大小和加密輪數。在此算法中使用了三種運算:異或、加和循環。blog

  • IDEA算法:是在DES算法的基礎上發展出來的,相似於三重DES,主要彌補DES密鑰過短等缺點。IDEA的密鑰爲128位。接口

  • Blowfish算法:一個64位分組及可變密鑰長度的對稱密鑰分組密碼算法,可用來加密64比特長度的字符串,該算法具備加密速度快、緊湊、密鑰長度可變、可無償使用等特色,而且當前爲止沒有發現有效地破解方法。

二、非對稱加密算法

     非對稱加密算法又叫公開密鑰算法。採用的是公鑰和私鑰相結合的加密方法。公鑰和私鑰是兩個徹底不一樣的密鑰,一個用於加密,一個用於解密。同時這兩個密鑰在數學上是關聯的。即解密算法不是加密算法的逆算法,所以在知道了加密算法後也沒法知道解密算法,保證了安全性。

     在非對稱加密算法中經過公鑰加密的數據,只能經過私鑰解開。經過私鑰加密的數據,只能經過公鑰解開。其主要侷限在於,這種加密形式的速度相對較低,一般僅在關鍵時刻才使用該算法。

     非對稱加密算法主要有(可忽略,略知便可):

  • RSA算法:對極大整數作因數分解的難度決定了RSA算法的可靠性,到目前爲止,世界上尚未任何可靠的攻擊RSA算法的方式。只要其鑰匙的長度足夠長,用RSA加密的信息其實是不能被解破的。

  • Rabin算法:基於費馬小定理的大素數檢測算法。

  • El Gamal算法:是一個基於迪菲-赫爾曼密鑰交換的非對稱加密算法。其安全性依賴於計算有限域上離散對數這一難題

  • 橢圓曲線算法(ECC):是一種基於橢圓曲線數學的公開密鑰加密算法。橢圓曲線算法是代替RSA的強有力的競爭者,有以下特色:安全性能更高,如160位ECC與1024位RSA、DSA有相同的安全強度;計算量小,處理速度快,在私鑰的處理速度上遠比RSA快得多;存儲空間佔用小,ECC的密鑰尺寸和系統參數與RSA相比要小得多, 因此佔用的存儲空間小得多;帶寬要求低,使得ECC具備普遍的應用前景。

三、數字摘要算法

     又稱哈希算法、散列算法,是一種單向算法,它經過對數據內容進行散列獲得一個固定長度的密文信息(信息是任意長度,而摘要是定長)。即用戶能夠經過哈希算法對目標信息生成一段特定長度的惟一的Hash值,卻不能經過這個Hash值從新得到目標信息。該算法不可逆。

     數字摘要算法不可逆,是由於在計算過程當中原文的部分信息是丟失了的,因此沒法從一個Hash值推導出原值的(舉個不必定恰當的例子,1+9,咱們能夠推導出結果是10,可是卻沒法從10推導出原文爲1+9,由於部分信息的丟失,致使還有其它的可能性,好比2+8,3+7……)。理論上一個Hash值是可能對應無數多個原文的,算法把無限的映射成有限,所以可能會有碰撞(兩個不一樣的信息,算出的摘要相同)。可是在現實中,因爲原文的長度有限,因此想要出現兩段原文對應同一個Hash值的是及其困難的,即幾乎不會出現碰撞的狀況,這就使得該算法得以在現實中能夠應用。

     數字摘要算法主要有(可忽略,略知便可):

  • MD5:一種被普遍使用的密碼散列函數,能夠產生出一個128位的散列值,用於確保信息傳輸完整一致。王小云教授採用碰撞算法驗證了MD5能夠被加以破解,對於須要高度安全性的數據,專家通常建議改用其餘算法,如SHA-2。

  • SHA-1:SHA-1能夠生成一個被稱爲消息摘要的160位散列值,散列值一般的呈現形式爲40個十六進制數。SHA-1已經再也不視爲可抵禦有充足資金、充足計算資源的攻擊者。自2010年以來,許多組織建議用來SHA-2或SHA-3替換SHA1。

  • SHA-2:是一種密碼散列函數算法標準,其輸出長度可取224位、256位、384位、512位,分別對應SHA-22四、SHA-25六、SHA-38四、SHA-512。目前SHA-2算是安全的加密算法。

  • SHA-3:基於Keccak算法,是與SHA-2不一樣的設計方式,可避免已有的攻擊方式,並且可以提供SHA-2不具有的一些性能。

2、特色

一、對稱加密算法

  • 加密和解密使用相同的祕鑰,容易被破解

  • 速度比非對稱加密算法快

  • 數據傳輸的過程不安全

二、非對稱加密算法

  • 保密性比較好,消除了用戶交換祕鑰的須要

  • 算法強度複雜,安全性比較強

  • 速度慢於對稱加密算法

三、數字摘要算法

  • 信息是任意長度,摘要是定長的

  • 摘要算法是防衝突的,即找不出摘要結果相同的兩條信息

  • 摘要結果是不可逆的,即沒法經過摘要還原出相應的原始內容

3、適用場景

一、對稱加密算法

  • 無需進行密鑰交換的場景,如內部系統,事先就能夠直接肯定密鑰

  • 防止明文傳輸數據被竊取的

  • 加解密速度快,適合數據內容比較大的加密場景

二、非對稱加密算法

  • 適用於須要密鑰交換的場景,如互聯網應用,沒法事先約定密鑰

  • 與對稱加密算法結合。利用非對稱加密算法安全性較好的特色,傳遞對稱加密算法的密鑰。利用對稱加密算法加解密速度快的特色,進行數據內容比較大的加密場景的加密。如HTTPS。

三、數字摘要算法

  • 下載文件時,文件的完整性校驗

  • 接口交互時,交互數據的完整性校驗

  • 數字證書的指紋生成算法

  • 密碼的正確性校驗,即只須要驗證密碼的摘要是否相同便可確認密碼是否相同,同時也保證讓密碼以密文保存,沒法被可逆破解

相關文章
相關標籤/搜索