2 个不稳定版本
0.2.0 | 2020年5月24日 |
---|---|
0.1.0 | 2020年5月17日 |
#1622 in 加密学
190KB
3K SLoC
Rust AES Proofs
基于 AES 的各种证明复现和证明时间的实现和基准测试。
需求和依赖项
源代码是用 Rust 编写的,所以首先您需要安装 Rust 工具链,最佳方式是按照 rustup.rs 上的您平台上的说明进行。
OpenCL 系统依赖项
除了 Rust 编译器本身外,您还需要在您的计算机上安装以下组件才能运行基于 OpenCL 的实现
- gcc
- 您 GPU 的 OpenCL 驱动程序和开发文件
在 Ubuntu 18.04+ 上为 AMD GPU,可以按以下方式安装
sudo apt-get install gcc ocl-icd-opencl-dev mesa-opencl-icd
在 Ubuntu 18.04+ 上为 Intel GPU,可以按以下方式安装
sudo apt-get install gcc ocl-icd-opencl-dev beignet-opencl-icd
软件 OpenCL 实现
您还可以使用 Oclgrind 在 CPU 上以软件方式运行 OpenCL 实现。
在 Ubuntu 18.04+ 上 Oclgrind 可以按以下方式安装
sudo apt-get install oclgrind
运行测试和基准测试
TL;DR
cargo test
cargo bench
对于测试,使用内置的 Rust 功能,所以 Rust 书籍的这一章节 会帮到您。
仅运行测试子集可以轻松实现,如下所示
cargo test -- por::aes_ni # Only run Proof-of-Replication tests and only AES-NI implementation
查看 src/por
和 src/pot
子目录以查找可用的实现。
对于基准测试,使用 Criterion,因此您可以参考其文档。
由于基准测试可能需要很长时间才能运行,您可能只想运行子集,这可以方便地实现如下所示
cargo bench --bench por -- OpenCL # Only run Proof-of-Replication benchmarks and only OpenCL implementation
查看 benches
子目录以查找可用的基准测试和实现。
依赖项
~4.5MB
~85K SLoC