對稱密鑰加密

對稱密鑰演算法（英語：Symmetric-key algorithm）又稱為對稱加密、私鑰加密、共享密鑰加密，是密碼學中的一類加密演算法。這類演算法在加密和解密時使用相同的密鑰，或是使用兩個可以簡單地相互推算的密鑰。事实上，這組密鑰成為在兩個或多個成員間的共同祕密，以便維持專屬的通訊聯繫。與公开密钥加密相比，要求雙方取得相同的密鑰是對稱密鑰加密的主要缺點之一。 对称加密的速度比公钥加密快很多，在很多场合都需要对称加密。 对称加密可使用流密码或分组密码。 流密码逐位元（通常是逐字节）地或逐字母（替换密码）加密消息。例如ChaCha20。虽然替换密码是知名的密码，但可以使用频率分析轻松解密。 分组密码采用多个位并将其加密为单个单元，填充明文以达到块大小的倍数。美国国家标准与技术研究院（NIST）于2001年12月批准的高级加密标准 (AES) 算法使用128位块。 常见的对称密钥算法有Twofish、Serpent、AES (Rijndael)、Camellia、Salsa20、ChaCha20、Blowfish、CAST5（英语：CAST-128）、Kuznyechik（英语：Kuznyechik）、RC4、DES、3DES、Skipjack（英语：Skipjack_(cipher)）、SAFER（英语：SAFER）和IDEA。 对称加密通常用于实现除加密之外的其他密码原语（英语：Cryptographic_primitive）。[來源請求] 加密消息并不能保证消息在加密状态下保持不变。因此，通常会向密文中添加消息验证码，以确保接收方能够注意到对密文的更改。消息验证码可以使用认证加密密码构建（例如AES-GCM）。 但是，除非涉及其他方，否则对称密码不能用于不可否认性目的。 请参阅ISO/IEC 13888-2 标准。 另一个应用是从分组密码构建哈希函数。有关几种此类方法的描述，请参见单向压缩函数（英语：One-way_compression_function）。 许多现代分组密码都基于霍斯特·费斯妥（英语：Horst_Feistel）提出的一种结构。费斯泰尔的构造可以从其他本身不可逆的函数构建可逆函数。[來源請求] 历史上，对称密码容易受到已知明文攻击、选择明文攻击、差分密码分析和线性密码分析（英语：Linear_cryptanalysis）的影响。仔细构建每个轮函数（英语：Round_(cryptography)）可以大大降低攻击成功的几率。[來源請求]还可以增加密钥长度或加密过程中的轮数，以更好地防止攻击。然而，这往往会增加处理能力，并由于系统需要执行的操作量而降低进程运行速度。 大多数现代对称密钥算法似乎能够抵抗后量子密码学的威胁。量子计算机将指数级地提高这些密码的解码速度；值得注意的是，Grover算法将传统暴力破解所需时间缩短至平方根，尽管可以通过将密钥长度加倍来弥补这些漏洞。例如，128位AES密码将无法抵御此类攻击，因为它会将测试所有可能迭代所需的时间从超过1000京年（1019年）减少到大约六个月。相比之下，量子计算机解码256位AES密码所需的时间仍然与传统计算机解码128位AES密码所需的时间相同。因此，AES-256被认为是“抗量子”（英語：quantum resistant）的。 对称密码算法要求消息的发送方和接收方都拥有相同的密钥。所有早期的密码系统都需要发送方或接收方以某种方式通过物理安全通道接收该密钥的副本。 几乎所有现代密码系统仍然在内部使用对称密钥算法来加密大部分消息，但它们通过使用迪菲-赫尔曼密钥交换或其他一些公钥协议来安全地就每个会话/对话的新密钥达成一致（前向保密），从而消除了对物理安全通道的需求。 当与用于密钥传输的非对称密码一起使用时，伪随机密钥生成器几乎总是用于生成对称密码会话密钥。然而，这些生成器或其初始化向量中缺乏随机性是灾难性的，并且在过去导致了密码分析方面的突破。因此，实现必须使用高熵的来源进行初始化非常重要。 互逆密码是一种密码，就像将明文输入密码学系统以获得密文一样，可以将密文输入到系统中的相同位置以获得明文。互易密码有时也称为自反密码。 实际上，所有机械密码机都实现了互逆密码，即对每个输入字母进行数学对合。无需设计两种机器（一种用于加密，一种用于解密），所有机器都可以相同，并且可以以相同的方式设置（密钥）。 互逆密码的例子包括： 阿特巴希密码 博福特密码 恩尼格玛密码机 玛丽·安托瓦内特和汉斯·亚克塞尔·冯·菲尔逊使用自反密码进行通信。 Porta 多字母密码是自反的。 紫色密码机（英语：Type_B_Cipher_Machine） RC4 ROT13 异或密码 维吉尼亚密码 所有现代密码中的大多数都可以归类为流密码（其中大多数使用互易异或密码组合器）或分组密码（其中大多数使用费斯妥密码或莱-马西结构（英语：Lai–Massey_scheme），并在每一轮中进行互易变换）。[來源請求] 密码学 古典密碼 資料加密標準 3DES 高级加密标准 Blowfish Skipjack加密（英语：Skipjack (cipher)） 對話鍵 Delfs, Hans & Knebl, Helmut. Symmetric-key encryption. Introduction to cryptography: principles and applications. Springer. 2007 [2014-01-20]. ISBN 9783540492436. （原始内容存档于2017-01-03）.  Mullen, Gary & Mummert, Carl. Finite fields and applications. American Mathematical Society. 2007: 112 [2014-01-20]. ISBN 9780821844182. （原始内容存档于2020-07-18）.  William Stallings. 操作系统——精髓与设计原理. 2007: 530. ISBN 7-121-02196-X.  Pelzl & Paar. Understanding Cryptography. Berlin: Springer-Verlag. 2010: 30. Bibcode:2010uncr.book.....P.  Bellare, Mihir; Rogaway, Phillip. Introduction to Modern Cryptography (PDF). 2005 （English）.  引文格式1维护：未识别语文类型 (link) Roeder, Tom. Symmetric-Key Cryptography. www.cs.cornell.edu. [2017-02-05] （英语）.  ISO/IEC 13888-2:2010. ISO. [2020-02-04] （英语）.  David R. Mirza Ahmad; Ryan Russell. Hack proofing your network 2nd. Rockland, MA: Syngress. 2002: 165–203. ISBN 1-932266-18-6. OCLC 51564102.  Daniel J. Bernstein. Introduction to post-quantum cryptography (PDF). Post-Quantum Cryptography. 2009.  Daniel J. Bernstein. Grover vs. McEliece (PDF). 2010-03-03.  Wood, Lamont. The Clock Is Ticking for Encryption. Computerworld. 2011-03-21 [2022-12-05] （英语）.  O'Shea, Dan. AES-256 joins the quantum resistance. Fierce Electronics. 2022-04-29 [2022-12-05] （英语）.  Weissbaum, François; Lugrin, Thomas, Mulder, Valentin; Mermoud, Alain; Lenders, Vincent; Tellenbach, Bernhard , 编, Symmetric Cryptography, Trends in Data Protection and Encryption Technologies (Cham: Springer Nature Switzerland), 2023: 7–10 [2023-09-12], ISBN 978-3-031-33386-6, doi:10.1007/978-3-031-33386-6_2  （英语）  Ian Goldberg and David Wagner. "Randomness and the Netscape Browser". January 1996 Dr. Dobb's Journal. quote: "it is vital that the secret keys be generated from an unpredictable random-number source." Ristenpart, Thomas; Yilek, Scott. When Good Randomness Goes Bad: Virtual Machine Reset Vulnerabilities and Hedging Deployed Cryptography (PDF). NDSS Symposium 2010. 2010. Random number generators (RNGs) are consistently a weak link in the secure use of cryptography.  Symmetric Cryptography. James. 2006-03-11.  Paul Reuvers and Marc Simons. Crypto Museum. "Enigma Uhr". 2009. Chris Christensen. "Simple Substitution Ciphers". 2006. Greg Goebel. "The Mechanization of Ciphers". 2018. "... the true Beaufort cipher. Notice that we have reciprocal encipherment; encipherment and decipherment are identically the same thing." -- Helen F. Gaines. "Cryptanalysis: A Study of Ciphers and Their Solution". 2014. p. 121. Greg Goebel. "The Mechanization of Ciphers". 2018. Friedrich L. Bauer. "Decrypted Secrets: Methods and Maxims of Cryptology". 2006. p. 144 David Salomon. "Coding for Data and Computer Communications". 2006. p. 245 Greg Goebel. "US Codebreakers In The Shadow Of War". 2018.