Skip to content

Commit b7525d7

Browse files
add three criterion benchmarks
1 parent 81dbadd commit b7525d7

File tree

4 files changed

+68
-1
lines changed

4 files changed

+68
-1
lines changed

Cargo.toml

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,22 @@ num-traits = "=0.2.19"
1414
rand = "0.8.5"
1515
rand_distr = "0.4.3"
1616
ntt = "0.1.9"
17-
ring-lwe = "0.1.5"
17+
ring-lwe = "0.1.5"
18+
19+
[dev-dependencies]
20+
criterion = "0.5.1"
21+
22+
[[bench]]
23+
name = "benchmark_keygen"
24+
path = "benches/benchmark_keygen.rs"
25+
harness = false
26+
27+
[[bench]]
28+
name = "benchmark_encrypt"
29+
path = "benches/benchmark_encrypt.rs"
30+
harness = false
31+
32+
[[bench]]
33+
name = "benchmark_decrypt"
34+
path = "benches/benchmark_decrypt.rs"
35+
harness = false

benches/benchmark_decrypt.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
use criterion::{criterion_group, criterion_main, Criterion};
2+
use module_lwe::decrypt::decrypt;
3+
use module_lwe::keygen::keygen;
4+
use module_lwe::encrypt::encrypt;
5+
use module_lwe::utils::Parameters;
6+
7+
fn bench_decrypt(c: &mut Criterion) {
8+
let params = Parameters::default();
9+
let (pk, sk) = keygen(&params, None);
10+
let m_b = vec![0, 1, 0, 1, 1, 0, 1, 0]; // Example binary message
11+
let (u, v) = encrypt(&pk.0, &pk.1, &m_b, &params, None);
12+
13+
c.bench_function("decrypt", |b| {
14+
b.iter(|| decrypt(&sk, &u, &v, &params))
15+
});
16+
}
17+
18+
criterion_group!(benches, bench_decrypt);
19+
criterion_main!(benches);

benches/benchmark_encrypt.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
use criterion::{criterion_group, criterion_main, Criterion};
2+
use module_lwe::encrypt::encrypt;
3+
use module_lwe::keygen::keygen;
4+
use module_lwe::utils::Parameters;
5+
6+
fn bench_encrypt(c: &mut Criterion) {
7+
let params = Parameters::default();
8+
let (pk, _) = keygen(&params, None);
9+
let m_b = vec![0, 1, 0, 1, 1, 0, 1, 0]; // Example binary message
10+
11+
c.bench_function("encrypt", |b| {
12+
b.iter(|| encrypt(&pk.0, &pk.1, &m_b, &params, None))
13+
});
14+
}
15+
16+
criterion_group!(benches, bench_encrypt);
17+
criterion_main!(benches);

benches/benchmark_keygen.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
use criterion::{criterion_group, criterion_main, Criterion};
2+
use module_lwe::keygen::keygen;
3+
use module_lwe::utils::Parameters;
4+
5+
fn bench_keygen(c: &mut Criterion) {
6+
let params = Parameters::default();
7+
c.bench_function("keygen", |b| {
8+
b.iter(|| keygen(&params, None))
9+
});
10+
}
11+
12+
criterion_group!(benches, bench_keygen);
13+
criterion_main!(benches);

0 commit comments

Comments
 (0)