21个版本
0.10.0-pre.1 | 2024年7月27日 |
---|---|
0.9.1 | 2023年4月1日 |
0.9.0 | 2022年2月21日 |
0.8.2 | 2022年7月7日 |
0.0.0 | 2016年10月6日 |
1574 在 加密学 中排名
每月下载量865,744
用于 1,187 个crate(95直接)
98KB
2K SLoC
RustCrypto: ChaCha20
ChaCha20流密码的纯Rust实现。

关于
ChaCha20 是一种 流密码,旨在支持高性能的软件实现。
它在性能不受影响的情况下,提高了先前 Salsa20 流密码的每轮扩散。
这个crate还包含了一个 XChaCha20 的实现:ChaCha20的一个变体,具有扩展的192位(24字节)nonce,在 chacha20
Cargo特性下(默认开启)。
实现
这个crate包含以下ChaCha20的实现,所有这些实现都在以下 RUSTFLAGS
下稳定运行
x86
/x86_64
avx2
: (~1.4cpb)-Ctarget-cpu=haswell -Ctarget-feature=+avx2
sse2
: (~2.5cpb)-Ctarget-feature=+sse2
(在x86 CPU上默认开启)
aarch64
neon
(~2-3x faster thansoft
) requires Rust 1.61+ and theneon
feature enabled
- 可移植性
soft
: (~5 cpb on x86/x86_64)
注意:cpb = 每字节周期数(越小越好)
安全性
⚠️ 警告:危险品!
此包不保证密文是真实的(即通过使用MAC来验证密文的完整性),如果使用不当可能会导致严重的安全漏洞!
为了避免这种情况,请使用基于ChaCha20的AEAD模式,即ChaCha20Poly1305。更多信息请参阅RustCrypto/AEADs仓库。
自行承担风险!
注意事项
此包已经接受了NCC Group的一次安全审计,没有发现重大问题。我们感谢MobileCoin资助此次审计。
包中包含的所有实现(包括底层ChaCha20流密码本身)都设计为在常数时间内执行。
最低支持的Rust版本
Rust 1.65 或更高版本。
最低支持的Rust版本可能会在未来更改,但将通过小版本号的增加来完成。
SemVer策略
- 此库的所有默认启用功能都受SemVer覆盖。
- 如上所述,MSRV被认为不受SemVer约束。
许可证
根据您的选择,许可协议为以下之一:
。
贡献
除非您明确声明,否则任何有意提交以供包含在作品中的贡献(如Apache-2.0许可证中定义),均应按上述方式双许可,不附加任何额外的条款或条件。
依赖项
~340–790KB
~17K SLoC