密码算法(Cipher)
密码算法(Cipher) 是什么?
密码算法(Cipher)将明文变换为密文(加密)并能逆向得到明文(解密)的算法,由一个或多个加密密钥参数化。
密码算法是执行加密与解密的算法。现代算法分为对称(单一共享密钥,如 AES、ChaCha20、3DES)与非对称(公私钥对,如 RSA、ECC),也可分为分组密码(固定块长,如 AES-128)与流密码(逐比特或逐字节,如 ChaCha20)。算法通常与工作模式(CBC、GCM、CTR)、密钥派生、MAC 或 AEAD 构造一起使用,以同时实现机密性与完整性。当前推荐选择 AEAD 构造,例如 AES-GCM、AES-GCM-SIV、ChaCha20-Poly1305,并正确处理 IV/nonce。
从古典密码到标准化密码
密码的历史早于计算机——代换密码(凯撒)、多表密码(维吉尼亚)和转轮机(Enigma)最终都被破解,因此现代密码的设计是公开且经同行评审的,而非依赖保密(柯克霍夫原则)。AES 在经过 NIST 公开竞赛后由 FIPS 197(2001)标准化,至今仍是默认的对称密码。较旧的算法已被正式淘汰:NIST SP 800-131A Rev. 2 规定三密钥 3DES 在 2023 年 12 月 31 日之后不得再用于加密;RC4 因其密钥流存在偏差、可用于明文恢复攻击,已被 RFC 7465 在 TLS 中禁用。如今选择强密码意味着采用 AEAD 构造,如 AES-GCM、AES-GCM-SIV(RFC 8452)或 ChaCha20-Poly1305(RFC 8439),并正确处理 IV/nonce——在 GCM 中重用 nonce 是灾难性的,会泄露认证密钥并导致伪造。密码敏捷性(可在不重构系统的情况下更换算法)如今已成为设计要求,并由向 ML-KEM 等后量子原语迁移的需求所推动。
flowchart LR P[Plaintext] --> Enc["Cipher + mode (encrypt)"] K1[Key] --> Enc Enc --> C[Ciphertext] C --> Dec["Cipher + mode (decrypt)"] K2[Key] --> Dec Dec --> P2[Plaintext] C -. intercepted .-> A[Attacker sees only ciphertext]
● 示例
- 01
TLS 1.3 密码套件 TLS_AES_128_GCM_SHA256。
- 02
使用 AES-XTS-256 的磁盘加密。
● 常见问题
密码算法(Cipher) 是什么?
将明文变换为密文(加密)并能逆向得到明文(解密)的算法,由一个或多个加密密钥参数化。 它属于网络安全的 密码学 分类。
密码算法(Cipher) 是什么意思?
将明文变换为密文(加密)并能逆向得到明文(解密)的算法,由一个或多个加密密钥参数化。
如何防御 密码算法(Cipher)?
针对 密码算法(Cipher) 的防御通常结合技术控制与运营实践,详见上方完整定义。