6个版本
0.3.0 | 2023年3月24日 |
---|---|
0.1.4 | 2022年8月15日 |
0.1.3 | 2021年10月21日 |
#23 in #cipher
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