Skip to content

Commit

Permalink
wasm+benches
Browse files Browse the repository at this point in the history
  • Loading branch information
eschorn1 committed Sep 27, 2024
1 parent 8e1f24d commit e21ef54
Show file tree
Hide file tree
Showing 7 changed files with 112 additions and 118 deletions.
34 changes: 17 additions & 17 deletions benches/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,28 @@ Near-obvious uplift can be had with more careful modular multiplication & additi
using fewer reductions. Also, 'u16' arithmetic has a performance penalty.

~~~
May 31, 2024
Intel® Core™ i7-7700K CPU @ 4.20GHz × 8 Circa 2017 w/ Rust 1.78.0
September 27, 2024
Intel® Core™ i7-7700K CPU @ 4.20GHz × 8 Circa 2017 w/ Rust 1.81.0
$ RUSTFLAGS="-C target-cpu=native" cargo bench
ml_dsa_44 keygen time: [79.674 µs 79.754 µs 79.877 µs]
ml_dsa_65 keygen time: [149.41 µs 149.44 µs 149.47 µs]
ml_dsa_87 keygen time: [216.21 µs 217.08 µs 218.12 µs]
ml_dsa_44 keygen time: [79.427 µs 79.563 µs 79.743 µs]
ml_dsa_65 keygen time: [149.51 µs 149.54 µs 149.59 µs]
ml_dsa_87 keygen time: [214.53 µs 214.62 µs 214.77 µs]
ml_dsa_44 sk sign time: [290.51 µs 293.15 µs 295.84 µs]
ml_dsa_65 sk sign time: [443.48 µs 448.59 µs 454.09 µs]
ml_dsa_87 sk sign time: [558.96 µs 566.32 µs 573.92 µs]
ml_dsa_44 sk sign time: [285.42 µs 288.21 µs 291.02 µs]
ml_dsa_65 sk sign time: [442.89 µs 447.03 µs 451.31 µs]
ml_dsa_87 sk sign time: [567.67 µs 574.08 µs 580.57 µs]
ml_dsa_44 esk sign time: [231.09 µs 233.74 µs 236.46 µs]
ml_dsa_65 esk sign time: [337.80 µs 341.81 µs 345.84 µs]
ml_dsa_87 esk sign time: [376.49 µs 382.48 µs 388.55 µs]
ml_dsa_44 esk sign time: [224.79 µs 227.11 µs 229.49 µs]
ml_dsa_65 esk sign time: [338.46 µs 343.11 µs 347.75 µs]
ml_dsa_87 esk sign time: [384.39 µs 388.84 µs 393.61 µs]
ml_dsa_44 pk verify time: [74.478 µs 74.909 µs 75.334 µs]
ml_dsa_65 pk verify time: [120.80 µs 121.28 µs 121.79 µs]
ml_dsa_87 pk verify time: [202.96 µs 203.28 µs 203.68 µs]
ml_dsa_44 pk verify time: [72.814 µs 72.833 µs 72.854 µs]
ml_dsa_65 pk verify time: [121.24 µs 121.29 µs 121.35 µs]
ml_dsa_87 pk verify time: [200.09 µs 200.23 µs 200.41 µs]
ml_dsa_44 epk verify time: [20.728 µs 20.743 µs 20.758 µs]
ml_dsa_65 epk verify time: [26.153 µs 26.159 µs 26.166 µs]
ml_dsa_87 epk verify time: [35.696 µs 35.715 µs 35.729 µs]
ml_dsa_44 epk verify time: [20.932 µs 20.966 µs 21.009 µs]
ml_dsa_65 epk verify time: [26.543 µs 26.548 µs 26.554 µs]
ml_dsa_87 epk verify time: [35.872 µs 35.886 µs 35.900 µs]
~~~
24 changes: 12 additions & 12 deletions benches/benchmark.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,32 +52,32 @@ pub fn criterion_benchmark(c: &mut Criterion) {
c.bench_function("ml_dsa_87 keygen", |b| b.iter(|| ml_dsa_87::try_keygen_with_rng(&mut rng)));

c.bench_function("ml_dsa_44 sk sign", |b| {
b.iter(|| sk44.try_sign_with_rng(&mut rng, &msg, &[0]))
b.iter(|| sk44.try_sign_with_rng(&mut rng, &msg, &[]))
});
c.bench_function("ml_dsa_65 sk sign", |b| {
b.iter(|| sk65.try_sign_with_rng(&mut rng, &msg, &[0]))
b.iter(|| sk65.try_sign_with_rng(&mut rng, &msg, &[]))
});
c.bench_function("ml_dsa_87 sk sign", |b| {
b.iter(|| sk87.try_sign_with_rng(&mut rng, &msg, &[0]))
b.iter(|| sk87.try_sign_with_rng(&mut rng, &msg, &[]))
});

c.bench_function("ml_dsa_44 esk sign", |b| {
b.iter(|| esk44.try_sign_with_rng(&mut rng, &msg, &[0]))
b.iter(|| esk44.try_sign_with_rng(&mut rng, &msg, &[]))
});
c.bench_function("ml_dsa_65 esk sign", |b| {
b.iter(|| esk65.try_sign_with_rng(&mut rng, &msg, &[0]))
b.iter(|| esk65.try_sign_with_rng(&mut rng, &msg, &[]))
});
c.bench_function("ml_dsa_87 esk sign", |b| {
b.iter(|| esk87.try_sign_with_rng(&mut rng, &msg, &[0]))
b.iter(|| esk87.try_sign_with_rng(&mut rng, &msg, &[]))
});

c.bench_function("ml_dsa_44 pk verify", |b| b.iter(|| pk44.verify(&msg, &sig44, &[0])));
c.bench_function("ml_dsa_65 pk verify", |b| b.iter(|| pk65.verify(&msg, &sig65, &[0])));
c.bench_function("ml_dsa_87 pk verify", |b| b.iter(|| pk87.verify(&msg, &sig87, &[0])));
c.bench_function("ml_dsa_44 pk verify", |b| b.iter(|| pk44.verify(&msg, &sig44, &[])));
c.bench_function("ml_dsa_65 pk verify", |b| b.iter(|| pk65.verify(&msg, &sig65, &[])));
c.bench_function("ml_dsa_87 pk verify", |b| b.iter(|| pk87.verify(&msg, &sig87, &[])));

c.bench_function("ml_dsa_44 epk verify", |b| b.iter(|| epk44.verify(&msg, &sig44, &[0])));
c.bench_function("ml_dsa_65 epk verify", |b| b.iter(|| epk65.verify(&msg, &sig65, &[0])));
c.bench_function("ml_dsa_87 epk verify", |b| b.iter(|| epk87.verify(&msg, &sig87, &[0])));
c.bench_function("ml_dsa_44 epk verify", |b| b.iter(|| epk44.verify(&msg, &sig44, &[])));
c.bench_function("ml_dsa_65 epk verify", |b| b.iter(|| epk65.verify(&msg, &sig65, &[])));
c.bench_function("ml_dsa_87 epk verify", |b| b.iter(|| epk87.verify(&msg, &sig87, &[])));
}

criterion_group!(benches, criterion_benchmark);
Expand Down
12 changes: 6 additions & 6 deletions tests/messages.rs

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion wasm/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "fips204-wasm"
version = "0.2.1"
version = "0.4.0"
authors = ["Eric Schorn <[email protected]>"]
description = "Sample web page utilizing FIPS 204 code"
repository = ""
Expand Down
4 changes: 2 additions & 2 deletions wasm/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ pub fn sign(message: &str) -> String {
let seed = 123;
let mut rng = rand_chacha::ChaCha8Rng::seed_from_u64(seed);
let (pk, sk) = ml_dsa_44::try_keygen_with_rng(&mut rng).expect("keygen failed");
let sig = sk.try_sign_with_rng(&mut rng, message.as_ref()).expect("sign failed");
assert!(pk.verify(message.as_ref(), &sig), "verify failed");
let sig = sk.try_sign_with_rng(&mut rng, message.as_ref(), &[]).expect("sign failed");
assert!(pk.verify(message.as_ref(), &sig, &[]), "verify failed");

let sk_hex = hex::encode(&sk.into_bytes());
let sig_hex = hex::encode(&sig);
Expand Down
Loading

0 comments on commit e21ef54

Please sign in to comment.