2个不稳定版本
0.2.0 | 2023年5月1日 |
---|---|
0.1.0 | 2023年4月6日 |
#1561 in 密码学
355KB
257 行
hctr2
长度保持加密算法 https://eprint.iacr.org/2021/1441.pdf
安装
[dependencies]
hctr2 = "0.2"
性能
HCTR2的性能主要取决于XCTR和POLYVAL的实现。本模块提供了ARMv8和x86-64汇编XCTR实现,并使用硬件加速的POLYVAL实现(见polyval)。
结果
M1
test bench_hctr2_aes128_4096 ... bench: 9,201 ns/iter (+/- 134) = 445 MB/s
test bench_hctr2_aes128_512 ... bench: 1,144 ns/iter (+/- 37) = 447 MB/s
test bench_hctr2_aes128_8192 ... bench: 18,386 ns/iter (+/- 233) = 445 MB/s
test bench_hctr2_aes256_4096 ... bench: 9,545 ns/iter (+/- 172) = 429 MB/s
test bench_hctr2_aes256_512 ... bench: 1,177 ns/iter (+/- 21) = 435 MB/s
test bench_hctr2_aes256_8192 ... bench: 18,922 ns/iter (+/- 242) = 432 MB/s
以下是参考C 实现的数字。
CPU | ISA | 频率 | 每字节周期数 | API |
---|---|---|---|---|
RK3399 | ARMv8 | 1.8 GHz | 1.8 | simd |
Skylake | x86 | 3.9 GHz | 1.2 | simd |
另见 github.com/ericlagergren/hctr2.
安全性
披露
本项目采用完全披露。如果您在实现中发现安全漏洞,请给我发电子邮件或在GitHub上创建问题。
免责声明
您应仅使用由密码学家或密码学工程师审查过的加密库。虽然我是密码学工程师,但我不是您的密码学工程师,并且我没有让任何其他密码学家审查此项目。
依赖项
~620KB
~13K SLoC