#algorithm #pdf #eprint #length-preserving #iacr #org-2021-1441

nightly no-std hctr2

HCTR2算法的长度保持加密实现

2个不稳定版本

0.2.0 2023年5月1日
0.1.0 2023年4月6日

#1561 in 密码学

BSD-3-Clause

355KB
257

hctr2

Docs

长度保持加密算法 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