28个版本
0.11.0-pre.1 | 2024年7月27日 |
---|---|
0.10.1 | 2022年8月10日 |
0.10.0-pre.2 | 2022年7月20日 |
0.10.0-pre | 2022年3月19日 |
0.0.0 | 2016年10月6日 |
662 在 加密学 中排名
每月下载量775,546
用于 959 个crate(238个直接使用)
69KB
202 行
RustCrypto: ChaCha20Poly1305
ChaCha20Poly1305(RFC 8439)的纯Rust实现:一种基于ChaCha20流密码和Poly1305通用哈希函数的快速、常数时间的认证加密与关联数据(AEAD)密码。
此crate还包含ChaCha20的扩展192位(24字节)nonce变体XChaCha20的实现。
关于
ChaCha20Poly1305在纯软件实现中以其简单和快速而著称。其底层ChaCha20流密码使用简单的加、旋转和异或指令组合(即“ARX”),而Poly1305哈希函数同样非常简单。
尽管它尚未获得某些标准机构(例如NIST)的批准,但该算法被广泛使用和部署。值得注意的是,它强制在传输层安全性(TLS)协议中实现。底层ChaCha20密码也被广泛用作加密安全的随机数生成器,包括Rust标准库的内部使用。
安全注意事项
该crate已通过NCC Group的一次安全审计,没有发现重大问题。我们感谢MobileCoin资助审计。
该crate中包含的所有实现都设计为在常数时间内执行,要么依赖于硬件内建函数(例如x86/x86_64上的AVX2),要么使用可移植实现,该实现仅在实现常数时间乘法的处理器上为常数时间。
不适用于使用变量时间乘法操作的处理器(例如,在乘以零/乘以一时短路,例如某些32位PowerPC CPU和一些非ARM微控制器)。
许可
以下任一许可下授权:
任选其一。
贡献
除非您明确声明,否则您根据Apache-2.0许可定义提交的任何有意包含在作品中的贡献,将按上述方式双重许可,不附加任何额外条款或条件。
依赖关系
~0.7-1MB
~18K SLoC