常見的幾種加密算法比較

2021-01-08 APP架構師

來源:http://dwz.date/afUd

一、加密的基本概念

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

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

image

加密的基本功能包括:

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的比較

image

2.非對稱加密

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

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

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

image

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

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

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

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

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

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

image

RSA和ECC安全模長得比較

image

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為即可。

相關焦點

  • 常見加密算法DES、AES和RSA的原理和特點
    1DES加密算法1.DES含義DES全稱為Data Encryption Standard,即數據加密標準,是一種使用密鑰加密的塊算法,1977年被美國聯邦政府的國家標準局確定為聯邦資料處理標準(FIPS),並授權在非密級政府通信中使用,隨後該算法在國際上廣泛流傳開來。DES是對稱性加密裡常見的一種,是一種使用秘鑰加密的塊算法。
  • 加密類型:5種加密算法以及如何選擇正確的算法
    在深入探討5種最常用的加密算法,以前所未有地簡化它們之前,我們將分解兩種主要的加密類型,對稱和非對稱。加密是始終成為頭條新聞的那些網絡安全主題之一。對不同類型的加密有充分了解的任何人都可能會覺得,這種非凡的技術正處於一種不公正的狀態,而這種非凡的技術是Internet安全和隱私的核心。
  • java最常用的幾種加密算法
    BASE64Base64是網絡上最常見的用於傳輸8Bit字節代碼的編碼方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的詳細規範。Base64編碼可用於在HTTP環境下傳遞較長的標識信息。
  • 收集幾種加密算法及它們之間的比較,有需要可以先收藏哦
    隨著技術的飛速發展,在現代通信中,經常會需要使用特殊手段來保護自身數據安全的措施,以避免有不法之徒採用非正常手段竊取個人信息,加密算法就孕育而生,然而,道高一尺魔高一丈,加密與反加密永遠是一個針鋒相對的話題,我們在網上收集整理了幾種常用的加密算法,總結了它們之間的共同點和差異性,有需要的朋友可以收藏一下
  • 加密算法科普:des、aes加密、對稱、非對稱加密、Hash算法都是啥
    >常見的對稱加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6 和 AES常見的非對稱加密算法:RSA、ECC (行動裝置用)、Diffie-Hellman、El Gamal、DSA (數字籤名用)
  • 由MDUKEY 加密方式引申開:關於區塊鏈中常見的非對稱加密算法
    其中,非對稱加密作為區塊鏈領域中的基石,雖然被很多人聽說過,但並不被具體了解。   因此,本文將從加密方式引申開,深入淺出介紹關於非對稱加密算法中的「籤名與加密」。   二、什麼是非對稱加密?   非對稱加密算法實現機密信息交換的基本過程是:甲方生成一對密鑰並將公鑰公開,需要向甲方發送信息的其他角色(乙方)使用該密鑰(甲方的公鑰)對機密信息進行加密後再發送給甲方;甲方再用自己私鑰對加密後的信息進行解密。甲方想要回復乙方時正好相反,使用乙方的公鑰對數據進行加密,同理,乙方使用自己的私鑰來進行解密。
  • 8種常見機器學習算法比較
    ,文中主要介紹了8種計算機算法及其優缺點,為大家進行算法選擇時提供一點意見。假如你在乎精度(accuracy)的話,最好的方法就是通過交叉驗證(cross-validation)對各個算法一個個地進行測試,進行比較,然後調整參數確保每個算法達到最優解,最後選擇最好的一個。但是如果你只是在尋找一個「足夠好」的算法來解決你的問題,或者這裡有些技巧可以參考,下面來分析下各個算法的優缺點,基於算法的優缺點,更易於我們去選擇它。
  • HASH算法不是加密算法:CSDN密碼洩露
    密碼最常見的是在 8 位到 14 位之間 排在第一的竟然是 qq.com  一、HASH 算法不是加密算法  HASH 算法是一種消息摘要算法,不是一種加密算法,但由於其單向運算,具有一定的不可逆性,成為加密算法中的一個構成部分,完整的加密機制不能僅依賴
  • HTTPS的中那些加密算法
    密碼(cipher)密碼學中的密碼(cipher)和我們日常生活中所說的密碼不太一樣,計算機術語『密碼 cipher』是一種用於加密或者解密的算法,而我們日常所使用的『密碼 password』是一種口令,它是用於認證用途的一組文本字符串,這裡我們要討論的是前者:cipher。
  • 世界上迄今為止最安全的加密算法
    一個劃時代的算法   驚天動地   一個只能用算力來破解的加密算法   1   人類的加密史
  • 從數學到物理學:加密算法簡介
    本文的絕大部分篇幅是在解釋 「Cryptography(密碼設計學)」,也就是今時今日的密碼學實踐,也希望讀者能意識到這幾個詞的含義和區別。就其本身而言,密碼學作為一種科學的研究已經存在了很多年,已知最早的一個密碼設計學的例子是在一段刻於公元前 1900 年的銘文,是在埃及貴族 Khnumhotep 二世墓地的主墓室裡發現的。
  • ASP.Net用MD5和SHA1加密的幾種方法
    加密哈希函數有這樣一個屬性:在計算上不大可能找到散列為相同的值的兩個不同的輸入;也就是說,兩組數據的哈希值僅在對應的數據也匹配時才會匹配。數據的少量更改會在哈希值中產生不可預知的大量更改。所以你很難從加密後的文字中找到蛛絲馬跡。 SHA1的全稱是Secure Hash Algorithm(安全哈希算法) MD5 算法的哈希值大小為 128 位。
  • RSA加密算法及其改進算法的研究和實現
    通過對該改進RSA加密算法的實現發現加密運算速度明顯提高且算法更簡單,從而證明了本文所提改進算法的有效性。本文首先對非對稱加密算法RSA的原理和優點進行研究,然後實現其加密、解密功能。RSA算法在公鑰密碼體制中佔有重要的地位。但該算法所採用的冪乘計算耗時太多,一直是制約其廣泛應用的瓶頸。因此,為了提高加密和解密速度,本文提出一種新型的加密算法即基於乘同餘對稱特性的SMM算法。
  • 區塊鏈加密算法RSA加密的原理解析
    加密算法,RSA是繞不開的話題,因為RSA算法是目前最流行的公開密鑰算法,既能用於加密,也能用戶數字籤名。不僅在加密貨幣領域使用,在傳統網際網路領域的應用也很廣泛。從被提出到現在20多年,經歷了各種考驗,被普遍認為是目前最優秀的公鑰方案之一。比特幣所使用的Sha256算法,也是在其基礎之上建立的。了解RSA算法,相信你會對區塊鏈有更深的認識。
  • 基於混沌Logistic加密算法的圖片加密與還原
    摘要一種基於混沌Logistic加密算法的圖片加密與還原的方法,並利用Lena圖和Baboon圖來驗證這種加密算法的加密效果。為了能夠體現該算法在圖片信息加密的效果,本文還採用了普通行列置亂加密算法和像素點的RGB的值的縮放算法這兩種算法對相同的圖片的圖片進行處理,利用matlab通過顯示加密過後的圖片以及直方圖分析可以很直觀的發現混沌Logistic加密算法對圖片信息加密的效果更好,並且很好地隱藏了原始圖像的統計特性,能夠有效地抵禦基於圖像像素值的統計攻擊,達到了圖像加密的效果。
  • 在線視頻常見加密方式及安全性透析
    3、視頻加密  區別於對url進行處理,視頻加密是對數據加密,達到即便被下載也無法播放的目的。目前比較知名的視頻雲平臺,幾乎均有對視頻進行加密處理。  Flash端多是自定義算法,Html5大多基於HLS 協議使用或開發。  (一)Flash-FLV視頻加密方案  方案一、flv部分數據加密,採用DES、AES128或其它算法。
  • 5種方法,加密你的Python代碼
    其中一個缺點,讓不少開發者頭疼不已,由於Python解釋器開源的關係,導致Python代碼無法加密,代碼的安全性得不到保障。當然,想要加密Python代碼,也並非無解。最常見的加密方式有4種,還有1種獨特的加密方式。
  • 區塊鏈丨非對稱加密算法,區塊鏈的加密秘訣!
    前面講到了對稱加密算法,今天講講非對稱加密算法。可以說非對稱算法是對稱算法的升級,因為非對稱算法是基於對稱算法而被研究出來的。非對稱算法與對稱算法的不同之處在於非對稱算法省去了對稱加密算法時要分發密鑰的麻煩,所以說是對稱加密算法的升級。在非對稱加密算法中同樣具有兩種密鑰:私鑰(private key)和公鑰(public key)。
  • JAVA實現消息摘要算法加密
    2.使用MessageDigest的digest(byte[] b)方法,把指定內容通過MD5進行加密,返回字節數組類型。根據使用加密算法的不同,自行選擇對應的實現類。2.調用Digest接口的update(byte[] b,inOff,len)方法進行加密,有三個參數,第一個參數是要加密的明文字節數組,第二個參數是從字節數組的哪裡開始加密,第三個參數是要加密的長度。方法返回void。
  • 「黎曼猜想」推翻區塊鏈加密算法?
    為了實現信息加密,Diffe和Hellman 在這篇文章中給了一個比較通用的方法去尋找一個單方向的函數。由於這個函數是單方向的,我們加密操作比較容易執行,而解密操作難於實現。Diffe和Hellman認為在某些代數結構上求離散指數是很容易實現的,而求離散對數卻通常不是那麼容易。