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