密碼學 - 加密演算法



加密演算法將資訊轉換為密文。該演算法使用加密金鑰以可預測的方式轉換資料,並將資料轉換為看起來隨機的密文,但可以使用解密金鑰將其轉換回明文。在上一章中,我們瞭解了資料加密是什麼,本章我們將瞭解加密演算法。

加密演算法分類

根據加密演算法的操作、金鑰長度和用途,可以將其分為不同的類別。主要分類如下:

  • 對稱加密 - 這種加密使用同一個金鑰進行加密和解密。例如,使用同一個金鑰對 zip 檔案進行加密和解密。由於金鑰需要對外部保密,對稱加密有時被稱為“秘密金鑰”加密。常用的對稱加密演算法包括 DES、AES 和 Blowfish。
  • 非對稱加密(公鑰加密) - 公鑰加密或非對稱加密使用公鑰-私鑰對,其中使用公鑰加密的資料只能使用私鑰解密。非對稱加密部分由 TLS(或 SSL)協議使用,該協議支援 HTTPS。常見的非對稱加密演算法包括 RSA 和 ECC。
  • 雜湊函式 - 雜湊函式是從給定資料生成特定字元集(雜湊值)的工具。這些雜湊值是不可逆的,因此無法從雜湊值恢復原始資訊。雜湊函式通常用於驗證資料完整性。常用的例子包括 SHA-256 和 MD5。
  • 分組密碼和流密碼 - 對稱金鑰方法提供兩種主要形式:分組密碼和流密碼。兩種密碼都使用相同的金鑰來加密和解密資料。流密碼逐位處理資料,而分組密碼則處理固定大小的資料塊。
  • 金鑰長度 - 金鑰長度通常以位元數的對數形式給出。例如,3 位金鑰長度可以使用 8 個不同的金鑰 (2 x 2 x 2 = 8)。金鑰長度越大,資料通常被認為越安全。金鑰長度是一個加密安全標準,它根據協議和演算法而有所不同。
  • 用途 - 加密演算法的用途可以根據其具體的應用進行分類,例如保護網際網路上的資料傳輸 (SSL/TLS)、保護儲存資料(磁碟加密)以及保護各種程式中的通訊(例如用於加密電子郵件的 PGP)。

加密演算法型別

下圖顯示了一些根據分類列出的加密演算法型別名稱:

Encryption Algorithms

對稱加密演算法

如上圖所示,常用的對稱加密演算法包括資料加密標準 (DES)、高階加密標準 (AES)、三重 DES (3DES)、Blowfish、Twofish、IDEA(國際資料加密演算法)和 RC4(Rivest 密碼 4)。下面我們將簡要討論這些加密技術。

  • 資料加密標準 (DES) - 資料加密標準 (DES) 是一種使用單個金鑰來保護數字資料的加密型別。雖然由於其 56 位的短金鑰長度,它可能不如當前方法安全,但它在密碼學的發展中發揮了至關重要的作用。
  • 高階加密標準 (AES) - 高階加密標準 (AES) 是一種對稱分組密碼,美國政府使用它來保護機密資料。AES 在全球範圍內廣泛用於軟體和硬體中,用於加密重要資訊。它在政府計算機安全、網路安全和電子資料保護中發揮著至關重要的作用。
  • 三重 DES (3DES) - 三重資料加密標準 (3DES) 是密碼學中的一種標準,它使用固定長度的金鑰,並涉及三次 DES 演算法的傳遞。它是一種基於對稱分組密碼的加密方法,這意味著傳送方和接收方共享相同的金鑰進行加密和解密。
  • Blowfish - Blowfish 是一種加密方法,旨在取代 DES。它將訊息分成 64 位塊並相應地進行加密。Blowfish 以其速度、靈活性和優異的安全效能而聞名,使其成為保護電子商務網站、銀行交易和密碼管理應用程式的流行選擇。Blowfish 在開發者中非常流行,部分原因是它是公共領域的並且可以免費使用。
  • Twofish - Twofish 是 Blowfish 的繼任者,它也使用對稱加密來解密 128 位資料塊,無需許可證。與其他演算法不同,Twofish 始終以 16 輪加密資料,而不管金鑰大小如何。這使得它適用於軟體和硬體環境,並且以其快速效能而聞名。許多組織使用 Twofish 來進行安全的資料通訊和保護。
  • RC4 - RC4 是一種具有可變長度金鑰演算法的流密碼。該演算法一次加密一個位元組(或更大的資料單元)。金鑰輸入是一個偽隨機位生成器,它建立一個 8 位數字流,在不知道輸入金鑰的情況下是不可預測的。生成器的輸出,稱為金鑰流,使用 X-OR 運算與明文流密碼逐位元組混合。
  • IDEA - 國際資料加密演算法 (IDEA) 是對稱金鑰分組密碼加密的一個例子。IDEA 使用 128 位金鑰,並處理 64 位塊。基本上,它將 64 位的明文塊轉換為 64 位的密文塊。

非對稱加密演算法

非對稱加密技術示例包括RSA、橢圓曲線加密(ECC)、Diffie-Hellman金鑰交換、ElGamal和數字簽名演算法(DSA)。非對稱加密,通常稱為公鑰加密,使用兩個不同的金鑰進行加密和解密。因此,讓我們討論所有流行的非對稱加密演算法:

  • Rivest-Shamir-Adleman (RSA) − RSA是一種非對稱公鑰加密系統,作為網際網路的加密標準。RSA加密可靠且安全。它是一種使用金鑰對的加密型別:公鑰和私鑰分別用於加密和解密。
  • 橢圓曲線加密(ECC) − 橢圓曲線加密(ECC)是一種類似於RSA的加密方法,允許公鑰加密。顧名思義,ECC是一種基於有限域橢圓曲線代數結構的非對稱加密技術。
  • Diffie-Hellman金鑰交換 − Diffie-Hellman演算法用於建立共享金鑰,可在透過公共網路傳送資料時用於私密通訊。橢圓曲線用於生成點,並使用引數獲得金鑰。
  • ElGamal − ElGamal加密方案是一種基於Diffie-Hellman金鑰交換的公鑰加密的非對稱金鑰加密方法。ElGamal演算法為公鑰加密提供了RSA的替代方案。RSA的安全性依賴於對大整數進行因式分解的複雜性。ElGamal演算法的安全性在於在大素數範圍內計算離散資料的複雜性。
  • 數字簽名演算法 (DSA) − DSA 指的是數字簽名演算法。它用於數字簽名及其驗證。它基於模冪運算和離散對數的數學原理。美國國家標準與技術研究院 (NIST) 於 1991 年制定了該演算法。

雜湊函式

  • 安全雜湊演算法 (SHA-1, SHA-256, SHA-3) − 安全雜湊演算法或 SHA 是一組固定的加密函式,旨在確保資料安全。這些演算法透過使用雜湊函式(包括位運算、模加法和壓縮功能)更改資訊來發揮作用。
  • 訊息摘要演算法 (MD5) − MD5演算法通常用於建立128位雜湊值以驗證資料完整性。它是對MD4演算法的改進,並於1992年在RFC 1321中正式記錄。MD5可以作為校驗和,以確保資料完整性得到維護並免受意外損壞。
  • RIPEMD (RACE完整性基元評估訊息摘要) − RIPEMD 代表 RACE 完整性基元評估訊息摘要,它是一個於 1992 年建立的雜湊函式組。它的靈感來自 MD4(一種以其漏洞而聞名的雜湊函式)的弱點。它專門設計用於最佳化 32 位處理器的效能。
  • Whirlpool − Whirlpool 是一種密碼雜湊函式。該演算法的靈感來自方塊密碼和高階加密標準。Whirlpool 被設計為塊密碼雜湊函式,能夠處理小於 2^256 位的輸入長度併產生 512 位的雜湊輸出。
廣告
© . All rights reserved.