2 个不稳定版本

0.8.0 2024年1月9日
0.7.0 2022年12月6日
0.6.0 2022年12月5日
0.5.0 2022年12月5日
0.1.0 2021年12月8日

加密学类别中排名421

Download history 297/week @ 2024-05-13 213/week @ 2024-05-20 33/week @ 2024-05-27 99/week @ 2024-06-03 75/week @ 2024-06-10 190/week @ 2024-06-17 152/week @ 2024-06-24 79/week @ 2024-07-01 4/week @ 2024-07-08 40/week @ 2024-07-15 32/week @ 2024-07-22

每月下载量157
2个crate中使用(通过cipherstash-client

自定义许可证

53KB
1K SLoC

ore.rs

(发音为 "auras")

Test

这是一个基于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

以下为示例基准测试结果

Benchmark

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