#stream-cipher #chacha20 #aead #poly1305 #xchacha20-poly1305 #xchacha20

无std chacha20poly1305

ChaCha20Poly1305 密码(RFC 8439)的纯Rust实现,具有可选的架构特定硬件加速。还包含ChaCha20Poly1305扩展nonce变体XChaCha20Poly1305的实现,以及ChaCha8Poly1305和ChaCha12Poly1305轻量级变体的实现。

28个版本

0.11.0-pre.12024年7月27日
0.10.1 2022年8月10日
0.10.0-pre.22022年7月20日
0.10.0-pre2022年3月19日
0.0.0 2016年10月6日

662加密学 中排名

Download history 178195/week @ 2024-05-04 210705/week @ 2024-05-11 208857/week @ 2024-05-18 203224/week @ 2024-05-25 202764/week @ 2024-06-01 184754/week @ 2024-06-08 181821/week @ 2024-06-15 194990/week @ 2024-06-22 172091/week @ 2024-06-29 171446/week @ 2024-07-06 179208/week @ 2024-07-13 201610/week @ 2024-07-20 185439/week @ 2024-07-27 189056/week @ 2024-08-03 206183/week @ 2024-08-10 161038/week @ 2024-08-17

每月下载量775,546
用于 959 个crate(238个直接使用)

Apache-2.0 OR MIT

69KB
202

RustCrypto: ChaCha20Poly1305

crate Docs Apache2/MIT licensed Rust Version Project Chat Build Status

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