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-gcmchacha20poly1305aegis128lrocca
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