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


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

     特別說明,對於加密算法的無法破解,是指其在空間和時間上不具備實現的條件。如某個加密算法,采用暴擊攻擊,在現有的計算資源條件下,需要花費50年時間,那么就可以認為其無法破解。

一、常見加密算法

1、對稱加密算法

     對稱加密算法也叫共享密鑰加密算法、單密鑰加密算法。采用單密鑰的加密方法,同一個密鑰可以同時用作信息的加密和解密,即解密算法為加密算法的逆算法。因此在知道了加密算法后也就知道了解密算法。

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

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

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

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

  • AES算法:又稱Rijndael加密法,用來替代DES,速度快,安全級別高,支持128、192、256、512位密鑰的加密。

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

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

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

2、非對稱加密算法

     非對稱加密算法又叫公開密鑰算法。采用的是公鑰和私鑰相結合的加密方法。公鑰和私鑰是兩個完全不同的密鑰,一個用於加密,一個用於解密。同時這兩個密鑰在數學上是關聯的。即解密算法不是加密算法的逆算法,因此在知道了加密算法后也無法知道解密算法,保證了安全性。

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

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

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

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

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

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

3、數字摘要算法

     又稱哈希算法、散列算法,是一種單向算法,它通過對數據內容進行散列得到一個固定長度的密文信息(信息是任意長度,而摘要是定長)。即用戶可以通過哈希算法對目標信息生成一段特定長度的唯一的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-224、SHA-256、SHA-384、SHA-512。目前SHA-2算是安全的加密算法。

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

二、特點

1、對稱加密算法

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

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

  • 數據傳輸的過程不安全

2、非對稱加密算法

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

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

  • 速度慢於對稱加密算法

3、數字摘要算法

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

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

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

三、適用場景

1、對稱加密算法

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

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

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

2、非對稱加密算法

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

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

3、數字摘要算法

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

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

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

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


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com