加密演算法小結(網文整理)
常見的加密演算法可以分成三類,對稱加密演算法,非對稱加密演算法和Hash演算法。
對稱加密
指加密和解密使用相同金鑰的加密演算法。對稱加密演算法的優點在於加解密的高速度和使用長金鑰時的難破解性。假設兩個使用者需要使用對稱加密方法加密然後交換資料,則使用者最少需要2個金鑰並交換使用,如果企業內使用者有n個,則整個企業共需要n×(n-1) 個金鑰,金鑰的生成和分發將成為企業資訊部門的惡夢。對稱加密演算法的安全性取決於加密金鑰的儲存情況,但要求企業中每一個持有金鑰的人都保守秘密是不可能的,他們通常會有意無意的把金鑰洩漏出去——如果一個使用者使用的金鑰被入侵者所獲得,入侵者便可以讀取該使用者金鑰加密的所有文件,如果整個企業共用一個加密金鑰,那整個企業文件的保密性便無從談起。
常見的對稱加密演算法有DES、3DES、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
加密演算法的效能通常可以按照演算法本身的複雜程度、金鑰長度(金鑰越長越安全)、加解密速度等來衡量。上述的演算法中,除了DES金鑰長度不夠、MD2速度較慢已逐漸被淘汰外,其他演算法仍在目前的加密系統產品中使用。
DES(Data Encryption Standard):對稱演算法,標準,速度較快,適用於大量資料的場合;
3DES(Triple DES):是基於DES的對稱演算法,對一塊資料用三個不同的進行三次加密,強度更高;
RC2和RC4:對稱演算法,用變長金鑰對大量資料進行加密,比 DES 快;
IDEA(International Data Encryption Algorithm)國際資料加密演算法,使用 128 位金鑰提供非常強的安全性;
AES(Advanced Encryption Standard):高階加密標準,對稱演算法,是下一代的,速度快,安全級別高,現在 AES 標準的一個實現是 Rijndael 演算法;
RSA:由 RSA 公司發明,是一個支援變長金鑰的公共金鑰演算法,需要加密的檔案塊的長度也是可變的,非對稱演算法; 演算法如下:
DSA(Digital Signature Algorithm):數字簽名演算法,是一種標準的DSS(數字簽名標準),嚴格來說不算加密演算法;
BLOWFISH,它使用變長的金鑰,長度可達448位,執行速度很快;
MD5:嚴格來說不算加密演算法,只能說是摘要演算法。MD5以512位分組來處理輸入的資訊,且每一分組又被劃分為16個32位子分組,經過了一系列的處理後,演算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位雜湊值。
PKCS:The Public-Key Cryptography Standards (PKCS)是由美國RSA資料安全公司及其合作伙伴制定的一組公鑰密碼學標準,其中包括證書申請、證書更新、證書作廢表釋出、擴充套件證書內容以及數字簽名、數字信封的格式等方面的一系列相關協議。
SSF33,SSF28,SCB2(SM1):國家密碼局的隱蔽不公開的商用演算法,在國內民用和商用的,除這些都不容許使用外,其他的都可以使用;
其它演算法:ElGamal、Diffie-Hellman、新型橢圓曲線演算法ECC等。
對稱加密
指加密和解密使用相同金鑰的加密演算法。對稱加密演算法的優點在於加解密的高速度和使用長金鑰時的難破解性。假設兩個使用者需要使用對稱加密方法加密然後交換資料,則使用者最少需要2個金鑰並交換使用,如果企業內使用者有n個,則整個企業共需要n×(n-1) 個金鑰,金鑰的生成和分發將成為企業資訊部門的惡夢。對稱加密演算法的安全性取決於加密金鑰的儲存情況,但要求企業中每一個持有金鑰的人都保守秘密是不可能的,他們通常會有意無意的把金鑰洩漏出去——如果一個使用者使用的金鑰被入侵者所獲得,入侵者便可以讀取該使用者金鑰加密的所有文件,如果整個企業共用一個加密金鑰,那整個企業文件的保密性便無從談起。
常見的對稱加密演算法有DES、3DES、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
加密演算法的效能通常可以按照演算法本身的複雜程度、金鑰長度(金鑰越長越安全)、加解密速度等來衡量。上述的演算法中,除了DES金鑰長度不夠、MD2速度較慢已逐漸被淘汰外,其他演算法仍在目前的加密系統產品中使用。
DES(Data Encryption Standard):對稱演算法,標準,速度較快,適用於大量資料的場合;
3DES(Triple DES):是基於DES的對稱演算法,對一塊資料用三個不同的進行三次加密,強度更高;
RC2和RC4:對稱演算法,用變長金鑰對大量資料進行加密,比 DES 快;
IDEA(International Data Encryption Algorithm)國際資料加密演算法,使用 128 位金鑰提供非常強的安全性;
AES(Advanced Encryption Standard):高階加密標準,對稱演算法,是下一代的,速度快,安全級別高,現在 AES 標準的一個實現是 Rijndael 演算法;
RSA:由 RSA 公司發明,是一個支援變長金鑰的公共金鑰演算法,需要加密的檔案塊的長度也是可變的,非對稱演算法; 演算法如下:
首先, 找出三個數, p, q, r,
其中 p, q 是兩個相異的質數, r 是與 (p-1)(q-1) 互質的數......
p, q, r 這三個數便是 private key
其中 p, q 是兩個相異的質數, r 是與 (p-1)(q-1) 互質的數......
p, q, r 這三個數便是 private key
接著, 找出 m, 使得 rm == 1 mod (p-1)(q-1).....
這個 m 一定存在, 因為 r 與 (p-1)(q-1) 互質, 用輾轉相除法就可以得到了.....
再來, 計算 n = pq.......
m, n 這兩個數便是 public key
這個 m 一定存在, 因為 r 與 (p-1)(q-1) 互質, 用輾轉相除法就可以得到了.....
再來, 計算 n = pq.......
m, n 這兩個數便是 public key
DSA(Digital Signature Algorithm):數字簽名演算法,是一種標準的DSS(數字簽名標準),嚴格來說不算加密演算法;
BLOWFISH,它使用變長的金鑰,長度可達448位,執行速度很快;
MD5:嚴格來說不算加密演算法,只能說是摘要演算法。MD5以512位分組來處理輸入的資訊,且每一分組又被劃分為16個32位子分組,經過了一系列的處理後,演算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位雜湊值。
PKCS:The Public-Key Cryptography Standards (PKCS)是由美國RSA資料安全公司及其合作伙伴制定的一組公鑰密碼學標準,其中包括證書申請、證書更新、證書作廢表釋出、擴充套件證書內容以及數字簽名、數字信封的格式等方面的一系列相關協議。
SSF33,SSF28,SCB2(SM1):國家密碼局的隱蔽不公開的商用演算法,在國內民用和商用的,除這些都不容許使用外,其他的都可以使用;
其它演算法:ElGamal、Diffie-Hellman、新型橢圓曲線演算法ECC等。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15711267/viewspace-1064072/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 陪玩小程式原始碼,不容錯過的加密演算法整理清單原始碼加密演算法
- Go加密演算法總結Go加密演算法
- (轉)Go加密演算法總結Go加密演算法
- Go 加密解密演算法總結Go加密解密演算法
- NLP知識總結和論文整理
- 網路安全 與 加密演算法加密演算法
- 資料結構與演算法整理總結---雜湊演算法資料結構演算法
- 資料結構與演算法整理總結---演算法複雜度資料結構演算法複雜度
- 資料結構與演算法整理總結---跳錶資料結構演算法
- 資料結構與演算法整理總結---排序 2資料結構演算法排序
- XGBoost演算法原理小結演算法
- CDN網路科普小文(小說版)
- 資料結構與演算法整理總結---雜湊表資料結構演算法
- 資料結構與演算法整理總結---陣列,連結串列資料結構演算法陣列
- 一文搞懂對稱加密:加密演算法、工作模式、填充方式、程式碼實現加密演算法模式
- 異或加密之美 #主流web弱演算法科普文加密Web演算法
- Rabbit加密演算法:效能與安全的完美結合加密演算法
- 編碼加密(小迪網路安全筆記~加密筆記
- 資料結構與演算法整理總結---二分查詢資料結構演算法
- A Univariate Bound of Area Under ROC 論文小結
- SHA加密演算法加密演算法
- Rabbit加密演算法加密演算法
- 加密演算法(一)加密演算法
- RSA加密演算法加密演算法
- 常用加密演算法加密演算法
- 八大預測演算法小結演算法
- 異常點檢測演算法小結演算法
- 常見加密演算法及常見加密演算法簡述加密演算法
- 網易遊戲登入密碼加密破解小試遊戲密碼加密
- 資料結構與演算法 | 迴文連結串列檢測資料結構演算法
- 大資料相關資料論文小結大資料
- php rsa長文加密解密PHP加密解密
- 密碼學基礎:編碼方式、訊息摘要演算法、加密演算法總結密碼學演算法加密
- Android技能樹 — 排序演算法基礎小結Android排序演算法
- 演算法模板整理(一)演算法
- js排序演算法整理JS排序演算法
- 演算法筆記整理演算法筆記
- 加密演算法學習加密演算法
- 加密演算法的使用加密演算法