NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
ChaCha20-Poly1305

ChaCha20-Poly1305 AEAD 认证加密算法实现 更多...

ChaCha20-Poly1305 的协作图:

struct  neforce::chacha20_poly1305
 ChaCha20-Poly1305 AEAD 加密算法结构体 更多...

详细描述

ChaCha20-Poly1305 AEAD 认证加密算法实现

遵循的国际标准

本实现严格遵循以下密码学与信息安全相关标准规范:

ChaCha20-Poly1305 AEAD 标准:

引用标准:

实现细节

特性 规范参数
算法 ChaCha20-Poly1305 AEAD
密钥长度 256 位(32 字节)
Nonce 长度 96 位(12 字节)
认证标签长度 128 位(16 字节)
ChaCha20 轮数 20 轮(10 次双轮)
Poly1305 素数 2^130 − 5
认证模式 Encrypt-then-MAC (EtM)
注解
本实现使用常量时间比较函数验证认证标签,防止时序攻击, 符合 RFC 8439 的安全要求。
警告
Nonce 绝对不能对同一密钥重用! Nonce 重用将完全破坏 Poly1305 认证的安全性,导致密钥流恢复攻击。推荐使用随机生成的 nonce 或 严格单调递增的计数器。对于随机 nonce,建议在约 2^48 次加密后 更换密钥以限制碰撞概率。
参见
https://www.rfc-editor.org/rfc/rfc8439.html
https://ianix.com/pub/chacha-deployment.html