2 个不稳定版本
0.8.0 | 2024年1月9日 |
---|---|
0.7.0 | 2022年12月6日 |
0.6.0 |
|
0.5.0 |
|
0.1.0 |
|
在加密学类别中排名421
每月下载量157次
在2个crate中使用(通过cipherstash-client)
53KB
1K SLoC
ore.rs
(发音为 "auras")
这是一个基于Lewi-Wu于2016年开发的Block-ORE加密方案编写的顺序揭示加密(ORE)库,用Rust编写。
在原始方案上进行了以下改进
- 使用Knuth(Fisher-Yates)洗牌作为PRP(而不是被发现对小域不安全的Feistel网络(见Bogatov等人)
- 仅使用AES作为随机预言机
- 管道优化,以提高吞吐量
- 支持x86_64和ARM的SIMD和Neon内建函数
- 在块前缀中包含块号,以避免重复的前缀
使用说明
参考文档位于docs.rs/ore-rs。
需要帮助?
请访问我们的支持论坛,我们将尽快回复您!
构建、测试和基准测试
要构建,运行
cargo build
要测试,运行
cargo test
要运行基准测试,运行
cargo bench
以下为示例基准测试结果
ARMv8和M1支持
ARMv8和M1 Mac无需设置即可工作,但默认使用软件中的AES,其速度比AES-NI慢约4倍(至少在测试机器上使用Intel i7 8700K的情况下)。
要利用ARM上的硬件AES并使用NEON内建函数,您需要使用Rust nightly版本。
asdf install rust nightly
asdf local rust nightly
cargo +nightly bench
安全警告
此包为预1.0版本,尚未经过重大审查(尽管ORE通常已经得到了相当深入的研究)。我们计划在1.0版本发布之前进行第三方审计。
在此期间:自行承担风险!
1.0路线图
- 外部审计
- 更简单的密文内部结构(这应该会提高性能)
- 进一步的常量时间改进
- 额外的块大小
- 三值指示函数支持(避免需要存储左密文)
许可证
ore.rs 可在 CipherStash 客户端库许可协议下使用。
贡献
除非您明确声明,否则您提交的任何有意包含在作品中的贡献,均应按照上述许可使用,没有任何附加条款或条件。
依赖项
~2.4–3MB
~61K SLoC