Updated to t-variant and new protocol

This commit is contained in:
Fritz Schmid
2023-03-06 19:10:03 +01:00
parent a11a92d3d7
commit 6fb0dcd867
10 changed files with 514 additions and 337 deletions
+8 -9
View File
@@ -1,4 +1,5 @@
use bls12_381::*;
use rayon::prelude::*;
use crate::utils;
fn lambda(i: i64, shares: i64) -> (Scalar, bool) {
@@ -19,17 +20,15 @@ fn lambda(i: i64, shares: i64) -> (Scalar, bool) {
}
}
fn recover_shares(shares: &Vec<Gt>, n: i64) -> Gt {
let mut target = Gt::identity();
for i in 0..shares.len() {
pub fn recover_shares(shares: &Vec<Gt>, n: i64) -> Gt {
shares.par_iter().enumerate().map(|(i, share)| {
let (l, b) = lambda((i + 1) as i64, n);
let mut temp = shares[i] * l;
let mut temp = share * l;
if b {
temp = -temp
}
target = target + temp;
}
return target;
temp
}).reduce(|| Gt::identity(), |a, b| a + b)
}
fn recover_shares_scalar(shares: &Vec<Scalar>, n: i64) -> Scalar {
@@ -61,7 +60,7 @@ fn eval_at_scalar(poly: &Vec<Scalar>, x: i64) -> Scalar {
return y;
}
fn gen_shares(secret: Gt, n: i64, t: i64) -> Vec<Gt> {
pub fn gen_shares(secret: Gt, n: i64, t: i64) -> Vec<Gt> {
assert!(t > 0);
assert!(n >= t);
assert!(t <= n);
@@ -77,7 +76,7 @@ fn gen_shares(secret: Gt, n: i64, t: i64) -> Vec<Gt> {
return shares;
}
fn gen_shares_scalar(secret: Scalar, n: i64, t: i64) -> Vec<Scalar> {
pub fn gen_shares_scalar(secret: Scalar, n: i64, t: i64) -> Vec<Scalar> {
assert!(t > 0);
assert!(n >= t);
assert!(t <= n);