ChaCha20
ChaCha20 是 Daniel Bernstein 设计的流密码,基于 ARX(加-轮-异或)操作,常与 Poly1305 组成 AEAD,是 AES-GCM 的高性能替代。
用途
在缺乏 AES 硬件加速的平台上提供高速且常时安全的加密,避免 AES 的时序侧信道。
机制
基于 Salsa20 改进,20 轮 quarter-round 操作。状态为 4×4 矩阵(常量、密钥、计数器、nonce)。每轮对列与对角线执行 add-rotate-xor。输出密钥流与明文异或。
用例
- TLS 1.3 默认密码套件之一
- WireGuard VPN 隧道
- Google 服务器加密
- 移动端加密
示例
- 输入
key=256bit, nonce=96bit, counter输出keystreamCombined with Poly1305 as AEAD
常见错误
- Nonce reuse replays the keystream
- Use a unique nonce per message (e.g., a counter)
相关词条
Salsa20
Salsa20 是 Daniel Bernstein 设计的流密码,基于 ARX 操作,20 轮,是 eSTREAM 推荐算法,ChaCha20 的前身。 词汇表
AES
AES(高级加密标准)是 NIST 于 2001 年确立的对称分组密码,支持 128/192/256 位密钥,是现代加密的事实标准。 词汇表
GCM (Galois/Counter Mode)
GCM 是结合 CTR 加密与 GHASH 认证的 AEAD 模式,同时提供机密性与完整性,是 TLS 1.2/1.3 的首选模式。 词汇表
Stream Cipher
流密码逐字节或逐位加密,用密钥流与明文异或得密文,无需填充,适合实时与流式数据。 词汇表
相关工具
AES 加密器
使用 Web Crypto API 以 AES(CBC/GCM/ECB)加密文本或二进制数据。免费、隐私优先、100% 纯客户端运行。 工具
ChaCha20 加密器
使用 ChaCha20 流密码(RFC 8439)加密文本——真实算法,逐字节通过 RFC 官方测试向量验证并经 OpenSSL 交叉核对。256 位密钥(32 字节)、96 位 nonce(12 字节)、32 位块计数器。免费、隐私、100% 客户端运行。切勿在同一密钥下重复使用 nonce。 工具
ChaCha20 解密器
解密 ChaCha20 密文(RFC 8439)——真实算法,逐字节通过 RFC 官方测试向量验证并经 OpenSSL 交叉核对。密钥必须恰好 32 字节、nonce 恰好 12 字节,块计数器须与加密时一致。密文输入格式跟随输出格式选项(hex 或 base64)。免费、隐私、100% 客户端运行。 工具