0.5.2 |
|
---|
#81 in #aes
31KB
446 行
🚨 已弃用!🚨
Miscreant 已不再维护!Rust 后继者是 aes-siv
crate,它是 Miscreant 代码库的进化。
最好的加密,你从未听说过,由 Phil Rogaway 提供
Rust 实现 Miscreant:提供 AES-SIV(RFC 5297)、AES-PMAC-SIV 和 STREAM 结构的先进对称加密库。这些算法易于使用(或者说,难以误用),并支持加密单个消息或消息流。
关于 AES-SIV 和 AES-PMAC-SIV
AES-SIV 和 AES-PMAC-SIV 提供了 NRMR(nonce 重复误用抵抗):与更受欢迎的 AES 加密模式(如 AES-GCM)不同,在此结构中意外重复使用 nonce 并不是安全灾难,在 AES-GCM 中 nonce 重复会导致认证密钥和两个明文 XOR 的泄露,这两种情况都可能被用于 完整明文恢复攻击。
使用 AES-SIV,重复使用 nonce 的最坏结果是攻击者可以看到你发送了相同的明文两次,与几乎所有其他 AES 模式不同,它可能促进 选择密文攻击。
要求
miscreant.rs 需要 Rust 1.36+。
要在 x86/x86_64 上使用 Intel AES-NI 指令启用硬件加速 AES 支持,你需要传递以下 RUSTFLAGS
RUSTFLAGS=-Ctarget-feature=+aes,+ssse3
你可以配置你的 ~/.cargo/config
以始终传递这些标志
[build]
rustflags = ["-Ctarget-feature=+aes,+ssse3"]
帮助和讨论
有问题吗?想要建议一个功能或更改吗?
- Gitter:关于 Miscreant 项目(包括 miscreant.rs)的基于网页的聊天
- Google Group:通过网页或电子邮件加入([email protected])
安全通知
尽管这个库是由加密专家编写的,但它尚未经过彻底的安全审计,加密专家也是会犯错误的人类。
此库在其实现中努力使用恒定时间操作,但实际的恒定时间行为尚未经过验证。
自行承担使用此库的风险。
行为准则
我们遵守贡献者契约,并要求您也这样做。
更多信息,请参阅CODE_OF_CONDUCT.md。
贡献
欢迎在GitHub上提交错误报告和拉取请求,地址为https://github.com/miscreant/miscreant
除非您明确说明,否则您提交的任何贡献,根据Apache-2.0许可证的定义,将按以下方式双重许可,不附加任何额外条款或条件。
许可证
版权所有(c)2017-2019 Miscreant开发者。
miscreant.rs许可协议为以下之一:
- Apache许可证,版本2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
依赖
~680KB
~14K SLoC