1. 程式人生 > >常見加密演算法的分類與比較

常見加密演算法的分類與比較

 常見的加密演算法可以分成三類,對稱加密演算法,非對稱加密演算法和Hash演算法。

對稱加密

    指加密和解密使用相同金鑰的加密演算法。對稱加密演算法的優點在於加解密的高速度和使用長金鑰時的難破解性。假設兩個使用者需要使用對稱加密方法加密然後交換資料,則使用者最少需要2個金鑰並交換使用,如果企業內使用者有n個,則整個企業共需要n×(n-1) 個金鑰,金鑰的生成和分發將成為企業資訊部門的惡夢。對稱加密演算法的安全性取決於加密金鑰的儲存情況,但要求企業中每一個持有金鑰的人都保守祕密是不可能的,他們通常會有意無意的把金鑰洩漏出去——如果一個使用者使用的金鑰被入侵者所獲得,入侵者便可以讀取該使用者金鑰加密的所有文件,如果整個企業共用一個加密金鑰,那整個企業文件的保密性便無從談起。

常見的對稱加密演算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES

非對稱加密

    指加密和解密使用不同金鑰的加密演算法,也稱為公私鑰加密。假設兩個使用者要加密交換資料,雙方交換公鑰,使用時一方用對方的公鑰加密,另一方即可用自己的私鑰解密。如果企業中有n個使用者,企業需要生成n對金鑰,並分發n個公鑰。由於公鑰是可以公開的,使用者只要保管好自己的私鑰即可,因此加密金鑰的分發將變得十分簡單。同時,由於每個使用者的私鑰是唯一的,其他使用者除了可以可以通過資訊傳送者的公鑰來驗證資訊的來源是否真實,還可以確保傳送者無法否認曾傳送過該資訊。非對稱加密的缺點是加解密速度要遠遠慢於對稱加密,在某些極端情況下,甚至能比非對稱加密慢上1000倍。

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

Hash演算法

    Hash演算法特別的地方在於它是一種單向演算法,使用者可以通過Hash演算法對目標資訊生成一段特定長度的唯一的Hash值,卻不能通過這個Hash值重新獲得目標資訊。因此Hash演算法常用在不可還原的密碼儲存、資訊完整性校驗等。

常見的Hash演算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1

    加密演算法的效能通常可以按照演算法本身的複雜程度、金鑰長度(金鑰越長越安全)、加解密速度等來衡量。上述的演算法中,除了DES金鑰長度不夠、MD2速度較慢已逐漸被淘汰外,其他演算法仍在目前的加密系統產品中使用。

加密演算法的選擇

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

    我們應該根據自己的使用特點來確定,由於非對稱加密演算法的執行速度比對稱加密演算法的速度慢很多,當我們需要加密大量的資料時,建議採用對稱加密演算法,提高加解密速度。

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

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

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

    如果在選定了加密演算法後,那採用多少位的金鑰呢?一般來說,金鑰越長,執行的速度就越慢,應該根據的我們實際需要的安全級別來選擇,一般來說,RSA建議採用1024位的數字,ECC建議採用160位,AES採用128為即可。

對稱加密演算法(加解密金鑰相同)

名稱

金鑰長度

運算速度

安全性

資源消耗

DES

56位

較快

3DES

112位或168位

AES

128、192、256位

非對稱演算法(加密金鑰和解密金鑰不同)

名稱

成熟度

安全性(取決於金鑰長度)

運算速度

資源消耗

RSA

DSA

只能用於數字簽名

ECC

低(計算量小,儲存空間佔用小,頻寬要求低)

雜湊演算法比較

名稱

安全性

速度

SHA-1

MD5

對稱與非對稱演算法比較

名稱

金鑰管理

安全性

速度

對稱演算法

比較難,不適合網際網路,一般用於內部系統

快好幾個數量級(軟體加解密速度至少快100倍,每秒可以加解密數M位元資料),適合大資料量的加解密處理

非對稱演算法

金鑰容易管理

慢,適合小資料量加解密或資料簽名

演算法選擇(從效能和安全性綜合)

對稱加密: AES(128位),

非對稱加密: ECC(160位)RSA(1024),

訊息摘要: MD5

數字簽名:DSA



相關推薦

常見加密演算法分類比較

 常見的加密演算法可以分成三類,對稱加密演算法,非對稱加密演算法和Hash演算法。 對稱加密     指加密和解密使用相同金鑰的加密演算法。對稱加密演算法的優點在於加解密的高速度和使用長金鑰時的難破解性。假設兩個使用者需要使用對稱加密方法加密然後交換資料,則使用者最少

不平衡資料分類演算法介紹比較

介紹 在資料探勘中,經常會存在不平衡資料的分類問題,比如在異常監控預測中,由於異常就大多數情況下都不會出現,因此想要達到良好的識別效果普通的分類演算法還遠遠不夠,這裡介紹幾種處理不平衡資料的常用方法及對比。 符號表示 記多數類的樣本集合為L,少數類的樣本集合為S。

深度學習常見演算法介紹比較

很多人都有誤解,以為深度學習比機器學習先進。其實深度學習是機器學習的一個分支。可以理解為具有多層結構的模型。具體的話,深度學習是機器學習中的具有深層結構的

常見加密演算法比較

演算法選擇:對稱加密AES,非對稱加密: ECC,訊息摘要: MD5,數字簽名:DSA 對稱加密演算法(加解密金鑰相同) 名稱 金鑰長度 運算速度 安全性 資源消耗

幾種常見加密演算法比較

1.DES加密演算法 DES加密演算法是一種分組密碼,以64位為分組對資料加密,它的金鑰長度是56位,加密解密用同一演算法。DES加密演算法是對金鑰進行保密,而公開演算法,包括加密和解密演算法。這樣,只有掌握了和傳送方相同金鑰的人才能解讀由DES加密演算法加密的密文資料。因

php實現封裝aes加密演算法前端互動

class AesSecurity { /** * method 為AES-128-CBC時 * @var string傳入要加密的明文 * 傳入一個16位元組的key * 傳入一個16位元組的初始偏移向量IV */ priv

常見噪聲的分類Matlab實現

1.研究噪聲特性的必要性         本文的內容主要介紹了常見噪聲的分類與其特性。將噪聲建模,然後用模型去實現各式各樣的噪聲。         實際生活中的各種照片的老化,都可以歸結為以下老化模型。      這個模型很簡單,也可以直接用以下公式來表達。

加密演算法RSAECC對比,以及Android、java中使用

一、加密演算法前言 根據金鑰型別不同將現代密碼技術分為兩類:對稱加密演算法和非對稱加密演算法。對稱鑰匙加密系統是加密和解密均採用同一把祕金鑰匙,而且通訊雙方都必須獲得這把鑰匙,並保持鑰匙的祕密。 非對稱金鑰加密系統採用的加金鑰匙(公鑰)和解金鑰匙(私鑰)是不同的。 常見

最優化演算法——常見優化演算法分類及總結

之前做特徵選擇,實現過基於群智慧演算法進行最優化的搜尋,看過一些群智慧優化演算法的論文,在此做一下總結。 最優化問題   在生活或者工作中存在各種各樣的最優化問題,比如每個企業和個人都要考慮的一個問題“在一定成本下,如何使利潤最大化”等。最優化方法是一種數學方法,它是研究

session cookie OAuth2.0 加密演算法分類和常用的演算法

session和cookie 1. 由於HTTP協議是無狀態的協議,所以服務端需要記錄使用者的狀態時,就需要用某種機制來識具體的使用者,這個機制就是Session.典型的場景比如購物車,當你點選下單按鈕時,由於HTTP協議無狀態,所以並不知道是哪個使用者操作的,所以服務端要

加密演算法分類

1、對稱加密演算法 1.1 說明 對稱加密演算法中,發信方利用加密金鑰和特定的加密演算法將明文運算處理,生成加密密文傳送出去。 收信方收到密文後,使用加密用過的金鑰及相同演算法的逆演算法對密文進行解密,得到可讀明文。 在對稱加密演算法中,加密和解密使用同一個金鑰。

各種排序演算法分析比較

1.直接插入排序 每一趟將一個待排序的元素作為關鍵字,按照其關鍵字的大小插入到已經排好的部分序列的適當位置上。平均時間複雜度為O(n2),空間複雜度為O(1)。 void InsertSort(int R[], int n) { if (R == nullptr ||

Android常見加密演算法(總篇)

3DES、MD5、Base64、AES都是較為常見的加密演算法,一般賬戶登入或者是傳輸敏感資訊都會使用到,以免資訊在傳遞給後臺伺服器時遭到攔截並破解。 3DES 3DES(或稱為Triple DES)是三重資料加密演算法(TDEA,Triple Data

Android常見加密演算法(MD5加密

MD5加密是不可逆的,加密後字串可取16位或32位。一定注意,MD5加密區分大小寫,加密出來的結果不同。 public class MD5Util { private static char hexDigits[] = { '0', '1', '2'

DES、AES、RSA、MD5加密演算法辨析應用場景

資訊保安Cryptographic Techniques 對稱加密演算法 Data Encryption Standard(DES) DES 是一種典型的塊加密方法:將固定長度的明文通過一系列複雜的操作變成同樣長度的密文,塊的長度為64位。同時,DE

常見排序演算法彙總分析(下)(基數排序計數排序)

本篇彙總的演算法將不再是基於比較的排序演算法,因此會突破這類演算法的時間複雜度下界O(nlog2n)。如果有朋友對前面的內容感興趣,可以先去看看常見排序演算法彙總與分析(中)(選擇排序與歸併排序) 我們先來總結基數排序演算法,該演算法在排序過程中不進行比較,而是通過“分

常見加密演算法&HTTP資料傳遞的加密

密碼演算法 1.數字簽名 摘要演算法,對任意長度的資料,計算出固定長度的16進位制字串。 MD5:128bit,32位十六進位制 SHA1:160bit,40位十六進位制 等 用途:校驗資料的完整性;密碼的傳輸和儲存 2.對

常見加密演算法java實現(MD5,SHA-256,SHA-512)

import org.apache.commons.codec.digest.DigestUtils; public class PasswordEncode {     private static String pwdAlgorithm = "MD5";     /**      * 加密密碼演算法  

常見加密演算法簡介

 本文介紹常見的演算法(MD5/SHA,DSA,RSA,DES)的應用場景,以及在java上的使用方法. 1)      MD5/SHA MessageDigest是一個數據的數字指紋.即對一個任意長度的資料進行計算,產生一個唯一指紋號. MessageDigest的特性

S-DES加密演算法介紹實現

為了更好地理解DES演算法,美國聖克拉拉大學的Edward Schaefer教授於1996年開發了Simplfied DES方案,簡稱S-DES方案。它是一個供教學而非安全使用的加密演算法,它與DES的特性和結構類似,但引數小,明文分組為8位,主金鑰分組為10位