mirror of
https://github.com/arnaucube/shamirsecretsharing.git
synced 2026-02-07 03:26:45 +01:00
- Added `Criterion` on dev-dependencies and a
benches config section on Cargo.toml
- Added `benchmarks` folder with `benches.rs` file.
This file contains the benchmarks implementation of
the two distinct modular_inverse implementations.
Results:
```
Modular Inverse/Kalinski Modular inverse
time: [50.105 us 50.438 us 50.819 us]
change: [-44.740% -44.195% -43.664%] (p = 0.00 < 0.05)
Performance has improved.
Modular Inverse/Standard Mod Inv
time: [82.301 us 82.430 us 82.580 us]
```
To run the benchmarks just run: `cargo bench`.
shamirsecretsharing-rs
Shamir's Secret Sharing in Rust
Usage
// create 6 shares from k, given the rand p
// where to recover will be needed 3 shares
let s = create(3, 6, &p, &k);
// now set 3 of the 6 shares, to be used to recover the secret
let mut shares_to_use: Vec<[BigInt;2]> = Vec::new();
shares_to_use.push(s[2].clone());
shares_to_use.push(s[1].clone());
shares_to_use.push(s[0].clone());
// recover the secret using Lagrange Interpolation
let r = lagrange_interpolation(&p, shares_to_use);
assert_eq!(k, r);
// r is the secret recovered (k)