對稱密鑰演算法(英語: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.