ChaCha20 是一种现代流密码(stream cipher),常用于网络通信与数据保护。它使用 256 位密钥和 96 位随机数(nonce),通过“20 轮(20 rounds)”的运算生成密钥流,用来加密/解密数据;也常与 Poly1305 组合成 ChaCha20-Poly1305(一种常见的 AEAD 加密方案)。
/ˈtʃɑːtʃɑː ˈtwɛnti/
ChaCha20 is fast on many mobile devices.
ChaCha20 在许多移动设备上运行很快。
Many protocols use ChaCha20-Poly1305 to provide both confidentiality and integrity, especially when AES hardware acceleration is unavailable.
许多协议使用 ChaCha20-Poly1305 同时提供机密性与完整性,尤其是在缺少 AES 硬件加速时。
“ChaCha”是密码学家 Daniel J. Bernstein 设计的一类算法名,属于对 Salsa20 的改进变体;“20”表示算法采用20 轮核心变换(rounds)。因此 ChaCha20 字面上可理解为“20 轮的 ChaCha”。