對稱金鑰演算法(英語:Symmetric-key algorithm)又稱為對稱加密私鑰加密共用金鑰加密,是密碼學中的一類加密演算法。這類演算法在加密和解密時使用相同的金鑰,或是使用兩個可以簡單地相互推算的金鑰。事實上,這組金鑰成為在兩個或多個成員間的共同祕密,以便維持專屬的通訊聯繫[1]。與公開金鑰加密相比,要求雙方取得相同的金鑰是對稱金鑰加密的主要缺點之一[2]

Thumb
對稱金鑰加密:使用相同的金鑰加密和解密

對稱加密的速度比公鑰加密快很多,在很多場合都需要對稱加密。[3]

類型

對稱加密可使用串流加密法區塊加密法[4]

串流加密法逐位元(通常是逐位元組)地或逐字母(替換密碼)加密訊息。例如ChaCha20。雖然替換密碼是知名的密碼,但可以使用頻率分析輕鬆解密。[5]

區塊加密法採用多個位並將其加密為單個單元,填充明文以達到塊大小的倍數。美國國家標準與技術研究院(NIST)於2001年12月批准的進階加密標準 (AES) 演算法使用128位元塊。

實現

常見的對稱金鑰演算法有TwofishSerpentAES (Rijndael)、CamelliaSalsa20ChaCha20BlowfishCAST5英語CAST-128Kuznyechik英語KuznyechikRC4DES3DESSkipjack英語Skipjack_(cipher)SAFER英語SAFERIDEA[6]

作為密碼原語

對稱加密通常用於實現除加密之外的其他密碼原語英語Cryptographic_primitive[來源請求]

加密訊息並不能保證訊息在加密狀態下保持不變。因此,通常會向密文中添加訊息驗證碼,以確保接收方能夠注意到對密文的更改。訊息驗證碼可以使用認證加密密碼構建(例如AES-GCM)。

但是,除非涉及其他方,否則對稱密碼不能用於不可否認性目的。[7] 請參閱ISO/IEC 13888-2 標準

另一個應用是從區塊加密法構建雜湊函數。有關幾種此類別方法的描述,請參見單向壓縮函數英語One-way_compression_function

對稱密碼的構造

許多現代區塊加密法都基於霍斯特·費斯妥英語Horst_Feistel提出的一種結構。費斯泰爾的構造可以從其他本身不可逆的函數構建可逆函數。[來源請求]

對稱密碼的安全性

歷史上,對稱密碼容易受到已知明文攻擊選擇明文攻擊差分密碼分析線性密碼分析英語Linear_cryptanalysis的影響。仔細構建每個輪函數英語Round_(cryptography)可以大大降低攻擊成功的幾率。[來源請求]還可以增加金鑰長度或加密過程中的輪數,以更好地防止攻擊。然而,這往往會增加處理能力,並由於系統需要執行的操作量而降低行程執行速度。[8]

大多數現代對稱金鑰演算法似乎能夠抵抗後量子密碼學的威脅。[9]量子電腦將指數級地提高這些密碼的解碼速度;值得注意的是,Grover演算法將傳統暴力破解所需時間縮短至平方根,儘管可以通過將金鑰長度加倍來彌補這些漏洞。[10]例如,128位元AES密碼將無法抵禦此類攻擊,因為它會將測試所有可能迭代所需的時間從超過1000京年(1019年)減少到大約六個月。相比之下,量子電腦解碼256位AES密碼所需的時間仍然與傳統電腦解碼128位元AES密碼所需的時間相同。[11]因此,AES-256被認為是「抗量子」(英語:quantum resistant)的。[12][13]

金鑰管理

金鑰交換

對稱密碼演算法要求訊息的傳送方和接收方都擁有相同的金鑰。所有早期的密碼系統都需要傳送方或接收方以某種方式通過物理安全通道接收該金鑰的副本。

幾乎所有現代密碼系統仍然在內部使用對稱金鑰演算法來加密大部分訊息,但它們通過使用迪菲-赫爾曼金鑰交換或其他一些公鑰協定來安全地就每個對談/對話的新金鑰達成一致(前向保密),從而消除了對物理安全通道的需求。

金鑰生成

當與用於金鑰傳輸的非對稱密碼一起使用時,偽隨機金鑰生成器幾乎總是用於生成對稱密碼對談金鑰。然而,這些生成器或其初始化向量中缺乏隨機性是災難性的,並且在過去導致了密碼分析方面的突破。因此,實現必須使用高的來源進行初始化非常重要。[14][15][16]

互逆密碼

互逆密碼是一種密碼,就像將明文輸入密碼學系統以獲得密文一樣,可以將密文輸入到系統中的相同位置以獲得明文。互易密碼有時也稱為自反密碼[17][18]

實際上,所有機械密碼機都實現了互逆密碼,即對每個輸入字母進行數學對合。無需設計兩種機器(一種用於加密,一種用於解密),所有機器都可以相同,並且可以以相同的方式設置(金鑰)。[19]

互逆密碼的例子包括:

所有現代密碼中的大多數都可以歸類為串流加密法(其中大多數使用互易異或密碼組合器)或區塊加密法(其中大多數使用費斯妥密碼萊-馬西結構英語Lai–Massey_scheme,並在每一輪中進行互易變換)。[來源請求]

參見

參考文獻

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.