Precompute BSGS table
This commit is contained in:
committed by
benedettadavico
parent
4217324088
commit
c4912d5cc0
@@ -398,7 +398,7 @@ pub fn baby_step_giant_step(
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::bte::{encryption, keygen, setup};
|
||||
use crate::bte::{encryption, keygen, setup, BSGS_TABLE};
|
||||
use rand_core::SeedableRng;
|
||||
|
||||
fn verify_hazmat_rand(ciphertext: &Ciphertexts, randomness: &HazmatRandomness) {
|
||||
@@ -456,8 +456,6 @@ mod tests {
|
||||
let (decryption_key1, public_key1) = keygen(¶ms, &mut rng);
|
||||
let (decryption_key2, public_key2) = keygen(¶ms, &mut rng);
|
||||
|
||||
let lookup_table = encryption::BabyStepGiantStepLookup::default();
|
||||
|
||||
for _ in 0..10 {
|
||||
let m1 = Share::random(&mut rng);
|
||||
let m2 = Share::random(&mut rng);
|
||||
@@ -466,22 +464,12 @@ mod tests {
|
||||
let (ciphertext, hazmat) = encrypt_shares(shares, ¶ms, &mut rng);
|
||||
verify_hazmat_rand(&ciphertext, &hazmat);
|
||||
|
||||
let recovered1 = decrypt_share(
|
||||
¶ms,
|
||||
&decryption_key1,
|
||||
0,
|
||||
&ciphertext,
|
||||
Some(&lookup_table),
|
||||
)
|
||||
.unwrap();
|
||||
let recovered2 = decrypt_share(
|
||||
¶ms,
|
||||
&decryption_key2,
|
||||
1,
|
||||
&ciphertext,
|
||||
Some(&lookup_table),
|
||||
)
|
||||
.unwrap();
|
||||
let recovered1 =
|
||||
decrypt_share(¶ms, &decryption_key1, 0, &ciphertext, Some(&BSGS_TABLE))
|
||||
.unwrap();
|
||||
let recovered2 =
|
||||
decrypt_share(¶ms, &decryption_key2, 1, &ciphertext, Some(&BSGS_TABLE))
|
||||
.unwrap();
|
||||
assert_eq!(m1, recovered1);
|
||||
assert_eq!(m2, recovered2);
|
||||
}
|
||||
@@ -497,8 +485,6 @@ mod tests {
|
||||
let (decryption_key1, public_key1) = keygen(¶ms, &mut rng);
|
||||
let (decryption_key2, public_key2) = keygen(¶ms, &mut rng);
|
||||
|
||||
let lookup_table = encryption::BabyStepGiantStepLookup::default();
|
||||
|
||||
for _ in 0..10 {
|
||||
let m1 = Share::random(&mut rng);
|
||||
let m2 = Share::random(&mut rng);
|
||||
@@ -507,22 +493,12 @@ mod tests {
|
||||
let (ciphertext, hazmat) = encrypt_shares(shares, ¶ms, &mut rng);
|
||||
verify_hazmat_rand(&ciphertext, &hazmat);
|
||||
|
||||
let recovered1 = decrypt_share(
|
||||
¶ms,
|
||||
&decryption_key1,
|
||||
0,
|
||||
&ciphertext,
|
||||
Some(&lookup_table),
|
||||
)
|
||||
.unwrap();
|
||||
let recovered2 = decrypt_share(
|
||||
¶ms,
|
||||
&decryption_key2,
|
||||
1,
|
||||
&ciphertext,
|
||||
Some(&lookup_table),
|
||||
)
|
||||
.unwrap();
|
||||
let recovered1 =
|
||||
decrypt_share(¶ms, &decryption_key1, 0, &ciphertext, Some(&BSGS_TABLE))
|
||||
.unwrap();
|
||||
let recovered2 =
|
||||
decrypt_share(¶ms, &decryption_key2, 1, &ciphertext, Some(&BSGS_TABLE))
|
||||
.unwrap();
|
||||
assert_eq!(m1, recovered1);
|
||||
assert_eq!(m2, recovered2);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
use std::sync::LazyLock;
|
||||
|
||||
use crate::bte::encryption::BabyStepGiantStepLookup;
|
||||
use crate::utils::hash_g2;
|
||||
use crate::{Chunk, Share};
|
||||
use bls12_381::{G1Affine, G2Affine, G2Prepared, G2Projective, Gt};
|
||||
@@ -21,6 +22,8 @@ pub(crate) static PAIRING_BASE: LazyLock<Gt> =
|
||||
LazyLock::new(|| bls12_381::pairing(&G1Affine::generator(), &G2Affine::generator()));
|
||||
pub(crate) static G2_GENERATOR_PREPARED: LazyLock<G2Prepared> =
|
||||
LazyLock::new(|| G2Prepared::from(G2Affine::generator()));
|
||||
pub(crate) static BSGS_TABLE: LazyLock<BabyStepGiantStepLookup> =
|
||||
LazyLock::new(|| BabyStepGiantStepLookup::default());
|
||||
|
||||
// Domain tries to follow guidelines specified by:
|
||||
// https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hash-to-curve-11#section-3.1
|
||||
|
||||
Reference in New Issue
Block a user