6个版本

0.3.0 2023年3月24日
0.1.4 2022年8月15日
0.1.3 2021年10月21日

#23 in #cipher

MIT 许可证

22KB
426

ROCCA-S for Rust

这是ROCCA-S认证加密算法的Rust实现,用于5G以上的高效AES加密方案,由Zig实现移植而来。

ROCCA-S是密钥提交的,具有256位密钥大小,128位nonce,处理256位消息块,输出256位认证标签。

Cargo标志

  • std: 允许动态分配

std是默认设置。

重要:为了在x86和x86_64 CPU上获得良好的代码,您应在编译该crate或使用它的项目之前设置额外的rustc标志

export RUSTFLAGS="-Ctarget-feature=+aes,+sse4.1"

可以这样运行基准测试

export RUSTFLAGS="-C target-cpu=native -Ctarget-feature=+aes,+pclmulqdq,+sse4.1"
cargo bench

基准测试

基准测试使用16384字节的输入块。结果以每秒字节为单位。

Rust实现

Crates

  • aes-gcm
  • chacha20poly1305
  • aegis128l
  • rocca

Scaleway EPYC 7543实例,设置了RUSTFLAGS

加密 速度
aes256-gcm 1.18 G/s
aes128-gcm 1.24 G/s
chacha20-poly1305 1.62 G/s
aegis128l (rust) 5.08 G/s
rocca 5.09 G/s

WebAssembly (Wasmtime)

加密 速度
aes256-gcm 36.88 M/s
aes128-gcm 44.13 M/s
chacha20-poly1305 193.05 M/s
aegis128l 48.98 M/s
rocca 58.61 M/s

其他实现

加密(实现) 速度
aes256-gcm (OpenSSL) 4.97 G/s
aes128-gcm (OpenSSL) 6.89 G/s
chacha20-poly1305 (OpenSSL) 2.67 G/s
aes128-ocb (OpenSSL) 8.93 G/s

依赖关系

~115KB