對稱密鑰演算法(英語:Symmetric-key algorithm)又稱為對稱加密、私鑰加密、共享密鑰加密,是密碼學中的一類加密演算法。這類演算法在加密和解密時使用相同的密鑰,或是使用兩個可以簡單地相互推算的密鑰。事實上,這組密鑰成為在兩個或多個成員間的共同祕密,以便維持專屬的通訊聯繫[1]。與公開密鑰加密相比,要求雙方取得相同的密鑰是對稱密鑰加密的主要缺點之一[2]。
類型
流密碼逐位元(通常是逐字節)地或逐字母(替換密碼)加密消息。例如ChaCha20。雖然替換密碼是知名的密碼,但可以使用頻率分析輕鬆解密。[5]
分組密碼採用多個位並將其加密為單個單元,填充明文以達到塊大小的倍數。美國國家標準與技術研究院(NIST)於2001年12月批准的高級加密標準 (AES) 算法使用128位塊。
實現
常見的對稱密鑰算法有Twofish、Serpent、AES (Rijndael)、Camellia、Salsa20、ChaCha20、Blowfish、CAST5、Kuznyechik、RC4、DES、3DES、Skipjack、SAFER和IDEA。[6]
作為密碼原語
對稱加密通常用於實現除加密之外的其他密碼原語。[來源請求]
加密消息並不能保證消息在加密狀態下保持不變。因此,通常會向密文中添加消息驗證碼,以確保接收方能夠注意到對密文的更改。消息驗證碼可以使用認證加密密碼構建(例如AES-GCM)。
但是,除非涉及其他方,否則對稱密碼不能用於不可否認性目的。[7] 請參閱ISO/IEC 13888-2 標準。
另一個應用是從分組密碼構建哈希函數。有關幾種此類方法的描述,請參見單向壓縮函數。
對稱密碼的構造
許多現代分組密碼都基於霍斯特·費斯妥提出的一種結構。費斯泰爾的構造可以從其他本身不可逆的函數構建可逆函數。[來源請求]
對稱密碼的安全性
歷史上,對稱密碼容易受到已知明文攻擊、選擇明文攻擊、差分密碼分析和線性密碼分析的影響。仔細構建每個輪函數可以大大降低攻擊成功的幾率。[來源請求]還可以增加密鑰長度或加密過程中的輪數,以更好地防止攻擊。然而,這往往會增加處理能力,並由於系統需要執行的操作量而降低進程運行速度。[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]
互逆密碼的例子包括:
- 阿特巴希密碼
- 博福特密碼[20]
- 恩尼格瑪密碼機[21]
- 瑪麗·安托瓦內特和漢斯·亞克塞爾·馮·菲爾遜使用自反密碼進行通信。[22]
- Porta 多字母密碼是自反的。[23]
- 紫色密碼機[24]
- RC4
- ROT13
- 異或密碼
- 維吉尼亞密碼
所有現代密碼中的大多數都可以歸類為流密碼(其中大多數使用互易異或密碼組合器)或分組密碼(其中大多數使用費斯妥密碼或萊-馬西結構,並在每一輪中進行互易變換)。[來源請求]
參見
參考文獻
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.