常見的幾種加密算法比較

一、加密的基本概念

“加密”,是一種限制對網絡上傳輸數據的訪問權的技術。原始數據(也稱爲明文,plaintext)被加密設備 (硬件或軟件) 和密鑰加密而產生的經過編碼的數據稱爲密文(ciphertext)。將密文還原爲原始明文的過程稱爲解密,它是加密的反向處理,但解密者必須利用相同類型的加密設備和密鑰對密文進行解密。

數據存儲和傳輸存在的風險:

加密的基本功能包括:

  1. 防止不速之客查看機密的數據文件;

  2. 防止機密數據被泄露或篡改;

  3. 防止特權用戶 (如系統管理員) 查看私人數據文件;

  4. 使入侵者不能輕易地查找一個系統的文件。

數據加密是確保計算機網絡安全的一種重要機制,雖然由於成本、技術和管理上的複雜性等原因,目前尚未在網絡中普及,但數據加密的確是實現分佈式系統和網絡環境下數據安全的重要手段之一。

數據加密可在網絡 OSI 七層協議 (OSI 是 Open System Interconnect 的縮寫,意爲開放式系統互聯。國際標準組織(國際標準化組織)制定了 OSI 模型。這個模型把網絡通信的工作分爲 7 層,分別是物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。) 的多層上實現、所以從加密技術應用的邏輯位置看,有三種方式:

①鏈路加密:通常把網絡層以下的加密叫鏈路加密,主要用於保護通信節點間傳輸的數據,加解密由置於線路上的密碼設備實現。根據傳遞的數據的同步方式又可分爲同步通信加密和異步通信加密兩種,同步通信加密又包含字節同步通信加密和位同步通信加密。

②節點加密:是對鏈路加密的改進。在協議傳輸層上進行加密,主要是對源節點和目標節點之間傳輸數據進行加密保護,與鏈路加密類似. 只是加密算法要結合在依附於節點的加密模件中,克服了鏈路加密在節點處易遭非法存取的缺點。

③端對端加密:網絡層以上的加密稱爲端對端加密。是面向網絡層主體。對應用層的數據信息進行加密,易於用軟件實現,且成本低,但密鑰管理問題困難,主要適合大型網絡系統中信息在多個發方和收方之間傳輸的情況。

二、數據加密的應用

  1. 媒體加密:DRM

  2. 文件加密:文本加密、pdf、word

  3. 數據加密:ASP.NET(C#) 中的數據加密

  4. 硬件加密:加密狗

三、加密技術發展趨勢

①私用密鑰加密技術與公開密鑰加密技術相結合: 鑑於兩種密碼體制加密的特點,在實際應用中可以採用折衷方案,即結合使用 DES/IDEA 和 RSA,以 DES 爲” 內核”,RSA 爲” 外殼”,對於網絡中傳輸的數據可用 DES 或 IDEA 加密,而加密用的密鑰則用 RSA 加密傳送,此種方法既保證了數據安全又提高了加密和解密的速度,這也是目前加密技術發展的新方向之一。

②尋求新算法: 跳出以常見的迭代爲基礎的構造思路,脫離基於某些數學問題複雜性的構造方法。如劉尊全先生提出的劉氏算法,是一種基於密鑰的公開密鑰體制,它採用了隨機性原理構造加解密變換,並將其全部運算控制隱匿於密鑰中,密鑰長度可變。它是採用選取一定長度的分割來構造大的搜索空間,從而實現一次非線性變換。此種加密算法加密強度高、速度快、計算開銷低。

③加密最終將被集成到系統和網絡中,例如 IPV6 協議就已有了內置加密的支持,在硬件方面,Intel 公司正研製一種加密協處理器。它可以集成到微機的主極上。

四、加密技術的分類

加密類型可以簡單地分爲四種:

  1. 根本不考慮解密問題;

  2. 私用密鑰加密技術:對稱式加密(Symmetric Key Encryption):對稱式加密方式對加密和解密使用相同的密鑰。通常,這種加密方式在應用中難以實施,因爲用同一種安全方式共享密鑰很難。如:RC4、RC2、DES 和 AES 系列加密算法。

  3. 公開密鑰加密技術:非對稱密鑰加密(Asymmetric Key Encryption):非對稱密鑰加密使用一組公共 / 私人密鑰系統,加密時使用一種密鑰,解密時使用另一種密鑰。公共密鑰可以廣泛的共享和透露。當需要用加密方式向服務器外部傳送數據時,這種加密方式更方便。如:RSA

  4. 數字證書。(Certificate):數字證書是一種非對稱密鑰加密,但是,一個組織可以使用證書並通過數字簽名將一組公鑰和私鑰與其擁有者相關聯。

五、加密算法的介紹

1. 對稱加密

對稱加密算法用來對敏感數據等信息進行加密,常用的算法包括:

DES(Data Encryption Standard):數據加密標準,速度較快,適用於加密大量數據的場合。

3DES(Triple DES):是基於 DES,對一塊數據用三個不同的密鑰進行三次加密,強度更高。

AES(Advanced Encryption Standard):高級加密標準,是下一代的加密算法標準,速度快,安全級別高。

AES 與 3DES 的比較

2. 非對稱加密

RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰算法,需要加密的文件塊的長度也是可變的;

DSA(Digital Signature Algorithm):數字簽名算法,是一種標準的 DSS(數字簽名標準);

ECC(Elliptic Curves Cryptography):橢圓曲線密碼編碼學。

ECC 和 RSA 相比,在許多方面都有對絕對的優勢,主要體現在以下方面:

抗攻擊性強。相同的密鑰長度,其抗攻擊性要強很多倍。

計算量小,處理速度快。ECC 總的速度比 RSA、DSA 要快得多。

存儲空間佔用小。ECC 的密鑰尺寸和系統參數與 RSA、DSA 相比要小得多,意味着它所佔的存貯空間要小得多。這對於加密算法在 IC 卡上的應用具有特別重要的意義。

帶寬要求低。當對長消息進行加解密時,三類密碼系統有相同的帶寬要求,但應用於短消息時 ECC 帶寬要求卻低得多。帶寬要求低使 ECC 在無線網絡領域具有廣泛的應用前景。

下面兩張表示是 RSA 和 ECC 的安全性和速度的比較。

RSA 和 ECC 安全模長得比較

3. 散列算法

散列是信息的提煉,通常其長度要比信息小得多,且爲一個固定長度。加密性強的散列一定是不可逆的,這就意味着通過散列結果,無法推出任何部分的原始信息。任何輸入信息的變化,哪怕僅一位,都將導致散列結果的明顯變化,這稱之爲雪崩效應。散列還應該是防衝突的,即找不出具有相同散列結果的兩條信息。具有這些特性的散列結果就可以用於驗證信息是否被修改。

單向散列函數一般用於產生消息摘要,密鑰加密等,常見的有:

MD5(Message Digest Algorithm 5):是 RSA 數據安全公司開發的一種單向散列算法,非可逆,相同的明文產生相同的密文。

SHA(Secure Hash Algorithm):可以對任意長度的數據運算生成一個 160 位的數值;

對稱與非對稱算法比較

以上綜述了兩種加密方法的原理,總體來說主要有下面幾個方面的不同:

在管理方面:公鑰密碼算法只需要較少的資源就可以實現目的,在密鑰的分配上,兩者之間相差一個指數級別(一個是 n 一個是 n2)。所以私鑰密碼算法不適應廣域網的使用,而且更重要的一點是它不支持數字簽名。

在安全方面:由於公鑰密碼算法基於未解決的數學難題,在破解上幾乎不可能。對於私鑰密碼算法,到了 AES 雖說從理論來說是不可能破解的,但從計算機的發展角度來看。公鑰更具有優越性。

從速度上來看:AES 的軟件實現速度已經達到了每秒數兆或數十兆比特。是公鑰的 100 倍,如果用硬件來實現的話這個比值將擴大到 1000 倍。

六、加密算法的選擇

  1. 由於非對稱加密算法的運行速度比對稱加密算法的速度慢很多,當我們需要加密大量的數據時,建議採用對稱加密算法,提高加解密速度。

  2. 對稱加密算法不能實現簽名,因此簽名只能非對稱算法。

  3. 由於對稱加密算法的密鑰管理是一個複雜的過程,密鑰的管理直接決定着他的安全性,因此當數據量很小時,我們可以考慮採用非對稱加密算法。

  4. 在實際的操作過程中,我們通常採用的方式是:採用非對稱加密算法管理對稱算法的密鑰,然後用對稱加密算法加密數據,這樣我們就集成了兩類加密算法的優點,既實現了加密速度快的優點,又實現了安全方便管理密鑰的優點。

  5. 如果是 RSA 建議採用 1024 位的數字,ECC 建議採用 160 位,AES 採用 128 爲即可。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/a1i9BSlLW1Speavhuhnr4g