From 3d837e9e4dd508de827b21c604f3d8dd2b69b1ab Mon Sep 17 00:00:00 2001 From: Christopher Patton Date: Fri, 10 Jan 2025 16:56:49 -0800 Subject: [PATCH 1/2] mastic: Hardcode `XofTurboShake128` as the XOF --- src/flp/szk.rs | 173 +++++++++++++------------------- src/vdaf/mastic.rs | 241 +++++++++++++++++---------------------------- src/vidpf.rs | 2 +- 3 files changed, 159 insertions(+), 257 deletions(-) diff --git a/src/flp/szk.rs b/src/flp/szk.rs index d353906f..58bf5386 100644 --- a/src/flp/szk.rs +++ b/src/flp/szk.rs @@ -15,15 +15,15 @@ use crate::{ codec::{CodecError, Decode, Encode, ParameterizedDecode}, field::{decode_fieldvec, encode_fieldvec, FieldElement}, flp::{FlpError, Type}, - prng::{Prng, PrngError}, + prng::PrngError, vdaf::{ mastic::{self, USAGE_PROOF_SHARE}, xof::{IntoFieldVec, Seed, Xof, XofTurboShake128}, }, }; use std::borrow::Cow; +use std::io::Cursor; use std::ops::BitAnd; -use std::{io::Cursor, marker::PhantomData}; use subtle::{Choice, ConstantTimeEq}; // Domain separation tags @@ -56,33 +56,33 @@ pub enum SzkError { /// Contains an FLP proof share, and if joint randomness is needed, the blind /// used to derive it and the other party's joint randomness part. #[derive(Debug, Clone)] -pub enum SzkProofShare { +pub enum SzkProofShare { /// Leader's proof share is uncompressed. Leader { /// Share of an FLP proof, as a vector of Field elements. uncompressed_proof_share: Vec, /// Set only if joint randomness is needed. The first Seed is a blind, second /// is the helper's joint randomness part. - leader_blind_and_helper_joint_rand_part_opt: Option<(Seed, Seed)>, + leader_blind_and_helper_joint_rand_part_opt: Option<(Seed<32>, Seed<32>)>, }, /// The Helper uses one seed for both its compressed proof share and as the blind for its joint /// randomness. Helper { /// The Seed that acts both as the compressed proof share and, optionally, as the blind. - proof_share_seed_and_blind: Seed, + proof_share_seed_and_blind: Seed<32>, /// The leader's joint randomness part, if needed. - leader_joint_rand_part_opt: Option>, + leader_joint_rand_part_opt: Option>, }, } -impl PartialEq for SzkProofShare { - fn eq(&self, other: &SzkProofShare) -> bool { +impl PartialEq for SzkProofShare { + fn eq(&self, other: &SzkProofShare) -> bool { bool::from(self.ct_eq(other)) } } -impl ConstantTimeEq for SzkProofShare { - fn ct_eq(&self, other: &SzkProofShare) -> Choice { +impl ConstantTimeEq for SzkProofShare { + fn ct_eq(&self, other: &SzkProofShare) -> Choice { match (self, other) { ( SzkProofShare::Leader { @@ -111,7 +111,7 @@ impl ConstantTimeEq for SzkProofShare Encode for SzkProofShare { +impl Encode for SzkProofShare { fn encode(&self, bytes: &mut Vec) -> Result<(), CodecError> { match self { SzkProofShare::Leader { @@ -169,9 +169,7 @@ impl Encode for SzkProofShare ParameterizedDecode<(bool, usize, bool)> - for SzkProofShare -{ +impl ParameterizedDecode<(bool, usize, bool)> for SzkProofShare { fn decode_with_param( (is_leader, proof_len, requires_joint_rand): &(bool, usize, bool), bytes: &mut Cursor<&[u8]>, @@ -180,19 +178,16 @@ impl ParameterizedDecode<(bool Ok(SzkProofShare::Leader { uncompressed_proof_share: decode_fieldvec::(*proof_len, bytes)?, leader_blind_and_helper_joint_rand_part_opt: if *requires_joint_rand { - Some(( - Seed::::decode(bytes)?, - Seed::::decode(bytes)?, - )) + Some((Seed::decode(bytes)?, Seed::decode(bytes)?)) } else { None }, }) } else { Ok(SzkProofShare::Helper { - proof_share_seed_and_blind: Seed::::decode(bytes)?, + proof_share_seed_and_blind: Seed::decode(bytes)?, leader_joint_rand_part_opt: if *requires_joint_rand { - Some(Seed::::decode(bytes)?) + Some(Seed::decode(bytes)?) } else { None }, @@ -203,12 +198,12 @@ impl ParameterizedDecode<(bool /// A tuple containing the state and messages produced by an SZK query. #[derive(Clone, Debug, PartialEq)] -pub struct SzkQueryShare { - joint_rand_part_opt: Option>, +pub struct SzkQueryShare { + joint_rand_part_opt: Option>, pub(crate) flp_verifier: Vec, } -impl Encode for SzkQueryShare { +impl Encode for SzkQueryShare { fn encode(&self, bytes: &mut Vec) -> Result<(), CodecError> { if let Some(ref part) = self.joint_rand_part_opt { part.encode(bytes)?; @@ -229,16 +224,14 @@ impl Encode for SzkQueryShare ParameterizedDecode<(bool, usize)> - for SzkQueryShare -{ +impl ParameterizedDecode<(bool, usize)> for SzkQueryShare { fn decode_with_param( (requires_joint_rand, verifier_len): &(bool, usize), bytes: &mut Cursor<&[u8]>, ) -> Result { Ok(SzkQueryShare { joint_rand_part_opt: (*requires_joint_rand) - .then(|| Seed::::decode(bytes)) + .then(|| Seed::decode(bytes)) .transpose()?, flp_verifier: decode_fieldvec(*verifier_len, bytes)?, }) @@ -248,22 +241,16 @@ impl ParameterizedDecode<(bool /// Szk query state. /// /// The state that needs to be stored by an Szk verifier between query() and decide(). -pub(crate) type SzkQueryState = Option>; +pub(crate) type SzkQueryState = Option>; /// Joint share type for the SZK proof. /// /// This is produced as the result of combining two query shares. /// It contains the re-computed joint randomness seed, if applicable. It is consumed by [`Szk::decide`]. -#[derive(Clone, Debug, Eq, PartialEq)] -pub struct SzkJointShare(Option>); +#[derive(Clone, Debug, Default, Eq, PartialEq)] +pub struct SzkJointShare(Option>); -impl SzkJointShare { - pub(crate) fn none() -> SzkJointShare { - SzkJointShare(None) - } -} - -impl Encode for SzkJointShare { +impl Encode for SzkJointShare { fn encode(&self, bytes: &mut Vec) -> Result<(), CodecError> { if let Some(ref expected_seed) = self.0 { expected_seed.encode(bytes)?; @@ -279,13 +266,13 @@ impl Encode for SzkJointShare { } } -impl ParameterizedDecode for SzkJointShare { +impl ParameterizedDecode for SzkJointShare { fn decode_with_param( requires_joint_rand: &bool, bytes: &mut Cursor<&[u8]>, ) -> Result { if *requires_joint_rand { - Ok(SzkJointShare(Some(Seed::::decode(bytes)?))) + Ok(SzkJointShare(Some(Seed::decode(bytes)?))) } else { Ok(SzkJointShare(None)) } @@ -296,43 +283,26 @@ impl ParameterizedDecode for SzkJointShare -where - T: Type, - P: Xof, -{ +pub struct Szk { /// The Type representing the specific FLP system used to prove validity of an input. pub(crate) typ: T, id: [u8; 4], - phantom: PhantomData

, -} - -impl Szk { - /// Create an instance of [`Szk`] using [`XofTurboShake128`]. - pub fn new_turboshake128(typ: T, algorithm_id: u32) -> Self { - Self::new(typ, algorithm_id) - } } -impl Szk -where - T: Type, - P: Xof, -{ +impl Szk { /// Construct an instance of this sharedZK proof system with the underlying /// FLP. pub fn new(typ: T, algorithm_id: u32) -> Self { Self { typ, id: algorithm_id.to_le_bytes(), - phantom: PhantomData, } } /// Derive a vector of random field elements for consumption by the FLP /// prover. - fn derive_prove_rand(&self, prove_rand_seed: &Seed, ctx: &[u8]) -> Vec { - P::seed_stream( + fn derive_prove_rand(&self, prove_rand_seed: &Seed<32>, ctx: &[u8]) -> Vec { + XofTurboShake128::seed_stream( prove_rand_seed, &[&mastic::dst_usage(mastic::USAGE_PROVE_RAND), &self.id, ctx], &[], @@ -342,12 +312,12 @@ where fn derive_joint_rand_part( &self, - aggregator_blind: &Seed, + aggregator_blind: &Seed<32>, measurement_share: &[T::Field], nonce: &[u8; 16], ctx: &[u8], - ) -> Result, SzkError> { - let mut xof = P::init( + ) -> Result, SzkError> { + let mut xof = XofTurboShake128::init( aggregator_blind.as_ref(), &[ &mastic::dst_usage(mastic::USAGE_JOINT_RAND_PART), @@ -369,12 +339,12 @@ where fn derive_joint_rand_seed( &self, - leader_joint_rand_part: &Seed, - helper_joint_rand_part: &Seed, + leader_joint_rand_part: &Seed<32>, + helper_joint_rand_part: &Seed<32>, ctx: &[u8], - ) -> Seed { - let mut xof = P::init( - &[0; SEED_SIZE], + ) -> Seed<32> { + let mut xof = XofTurboShake128::init( + &[0; 32], &[ &mastic::dst_usage(mastic::USAGE_JOINT_RAND_SEED), &self.id, @@ -388,13 +358,13 @@ where fn derive_joint_rand_and_seed( &self, - leader_joint_rand_part: &Seed, - helper_joint_rand_part: &Seed, + leader_joint_rand_part: &Seed<32>, + helper_joint_rand_part: &Seed<32>, ctx: &[u8], - ) -> (Seed, Vec) { + ) -> (Seed<32>, Vec) { let joint_rand_seed = self.derive_joint_rand_seed(leader_joint_rand_part, helper_joint_rand_part, ctx); - let joint_rand = P::seed_stream( + let joint_rand = XofTurboShake128::seed_stream( &joint_rand_seed, &[&mastic::dst_usage(mastic::USAGE_JOINT_RAND), &self.id, ctx], &[], @@ -404,28 +374,23 @@ where (joint_rand_seed, joint_rand) } - fn derive_helper_proof_share( - &self, - proof_share_seed: &Seed, - ctx: &[u8], - ) -> Vec { - Prng::from_seed_stream(P::seed_stream( + fn derive_helper_proof_share(&self, proof_share_seed: &Seed<32>, ctx: &[u8]) -> Vec { + XofTurboShake128::seed_stream( proof_share_seed, &[&mastic::dst_usage(USAGE_PROOF_SHARE), &self.id, ctx], &[], - )) - .take(self.typ.proof_len()) - .collect() + ) + .into_field_vec(self.typ.proof_len()) } fn derive_query_rand( &self, - verify_key: &[u8; SEED_SIZE], + verify_key: &[u8; 32], nonce: &[u8; 16], level: u16, ctx: &[u8], ) -> Vec { - let mut xof = P::init( + let mut xof = XofTurboShake128::init( verify_key, &[&mastic::dst_usage(mastic::USAGE_QUERY_RAND), &self.id, ctx], ); @@ -454,10 +419,10 @@ where leader_input_share: &[T::Field], helper_input_share: &[T::Field], encoded_measurement: &[T::Field], - rand_seeds: [Seed; 2], - leader_seed_opt: Option>, + rand_seeds: [Seed<32>; 2], + leader_seed_opt: Option>, nonce: &[u8; 16], - ) -> Result<[SzkProofShare; 2], SzkError> { + ) -> Result<[SzkProofShare; 2], SzkError> { let [prove_rand_seed, helper_seed] = rand_seeds; // If joint randomness is used, derive it from the two input shares, // the seeds used to blind the derivation, and the nonce. Pass the @@ -514,10 +479,10 @@ where ctx: &[u8], level: u16, // level of the prefix tree input_share: &[T::Field], - proof_share: &SzkProofShare, - verify_key: &[u8; SEED_SIZE], + proof_share: &SzkProofShare, + verify_key: &[u8; 32], nonce: &[u8; 16], - ) -> Result<(SzkQueryShare, SzkQueryState), SzkError> { + ) -> Result<(SzkQueryShare, SzkQueryState), SzkError> { let query_rand = self.derive_query_rand(verify_key, nonce, level, ctx); let flp_proof_share = match proof_share { SzkProofShare::Leader { @@ -609,9 +574,9 @@ where pub(crate) fn merge_query_shares( &self, ctx: &[u8], - mut leader_share: SzkQueryShare, - helper_share: SzkQueryShare, - ) -> Result, SzkError> { + mut leader_share: SzkQueryShare, + helper_share: SzkQueryShare, + ) -> Result { for (x, y) in leader_share .flp_verifier .iter_mut() @@ -641,8 +606,8 @@ where /// was correctly computed from both aggregators' parts. pub fn decide( &self, - query_state: SzkQueryState, - joint_share: SzkJointShare, + query_state: SzkQueryState, + joint_share: SzkJointShare, ) -> Result<(), SzkError> { // Check that joint randomness was properly derived from both // aggregators' parts @@ -711,7 +676,7 @@ mod tests { let ctx = b"some application context"; let mut nonce = [0u8; 16]; let mut verify_key = [0u8; 32]; - let szk_typ = Szk::new_turboshake128(typ.clone(), 0); + let szk_typ = Szk::new(typ.clone(), 0); thread_rng().fill(&mut verify_key[..]); thread_rng().fill(&mut nonce[..]); let prove_rand_seed = Seed::generate().unwrap(); @@ -880,7 +845,7 @@ mod tests { thread_rng().fill(&mut nonce[..]); let sum = Sum::::new(max_measurement).unwrap(); let encoded_measurement = sum.encode_measurement(&9).unwrap(); - let szk_typ = Szk::new_turboshake128(sum, 0); + let szk_typ = Szk::new(sum, 0); let prove_rand_seed = Seed::generate().unwrap(); let helper_seed = Seed::generate().unwrap(); let leader_seed_opt = Some(Seed::generate().unwrap()); @@ -915,7 +880,7 @@ mod tests { let sumvec = SumVec::>>::new(5, 3, 3).unwrap(); let encoded_measurement = sumvec.encode_measurement(&vec![1, 16, 0]).unwrap(); - let szk_typ = Szk::new_turboshake128(sumvec, 0); + let szk_typ = Szk::new(sumvec, 0); let prove_rand_seed = Seed::generate().unwrap(); let helper_seed = Seed::generate().unwrap(); let leader_seed_opt = Some(Seed::generate().unwrap()); @@ -949,7 +914,7 @@ mod tests { thread_rng().fill(&mut nonce[..]); let count = Count::::new(); let encoded_measurement = count.encode_measurement(&true).unwrap(); - let szk_typ = Szk::new_turboshake128(count, 0); + let szk_typ = Szk::new(count, 0); let prove_rand_seed = Seed::generate().unwrap(); let helper_seed = Seed::generate().unwrap(); let leader_seed_opt = Some(Seed::generate().unwrap()); @@ -984,7 +949,7 @@ mod tests { thread_rng().fill(&mut nonce[..]); let sum = Sum::::new(max_measurement).unwrap(); let encoded_measurement = sum.encode_measurement(&9).unwrap(); - let szk_typ = Szk::new_turboshake128(sum, 0); + let szk_typ = Szk::new(sum, 0); let prove_rand_seed = Seed::generate().unwrap(); let helper_seed = Seed::generate().unwrap(); let leader_seed_opt = None; @@ -1025,7 +990,7 @@ mod tests { thread_rng().fill(&mut nonce[..]); let sum = Sum::::new(max_measurement).unwrap(); let encoded_measurement = sum.encode_measurement(&9).unwrap(); - let szk_typ = Szk::new_turboshake128(sum, 0); + let szk_typ = Szk::new(sum, 0); let prove_rand_seed = Seed::generate().unwrap(); let helper_seed = Seed::generate().unwrap(); let leader_seed_opt = None; @@ -1065,7 +1030,7 @@ mod tests { thread_rng().fill(&mut nonce[..]); let count = Count::::new(); let encoded_measurement = count.encode_measurement(&true).unwrap(); - let szk_typ = Szk::new_turboshake128(count, 0); + let szk_typ = Szk::new(count, 0); let prove_rand_seed = Seed::generate().unwrap(); let helper_seed = Seed::generate().unwrap(); let leader_seed_opt = None; @@ -1105,7 +1070,7 @@ mod tests { thread_rng().fill(&mut nonce[..]); let count = Count::::new(); let encoded_measurement = count.encode_measurement(&true).unwrap(); - let szk_typ = Szk::new_turboshake128(count, 0); + let szk_typ = Szk::new(count, 0); let prove_rand_seed = Seed::generate().unwrap(); let helper_seed = Seed::generate().unwrap(); let leader_seed_opt = None; @@ -1146,7 +1111,7 @@ mod tests { let sumvec = SumVec::>>::new(5, 3, 3).unwrap(); let encoded_measurement = sumvec.encode_measurement(&vec![1, 16, 0]).unwrap(); - let szk_typ = Szk::new_turboshake128(sumvec, 0); + let szk_typ = Szk::new(sumvec, 0); let prove_rand_seed = Seed::generate().unwrap(); let helper_seed = Seed::generate().unwrap(); let leader_seed_opt = Some(Seed::generate().unwrap()); @@ -1187,7 +1152,7 @@ mod tests { let sumvec = SumVec::>>::new(5, 3, 3).unwrap(); let encoded_measurement = sumvec.encode_measurement(&vec![1, 16, 0]).unwrap(); - let szk_typ = Szk::new_turboshake128(sumvec, 0); + let szk_typ = Szk::new(sumvec, 0); let prove_rand_seed = Seed::generate().unwrap(); let helper_seed = Seed::generate().unwrap(); let leader_seed_opt = Some(Seed::generate().unwrap()); diff --git a/src/vdaf/mastic.rs b/src/vdaf/mastic.rs index aee2cdf5..7b285c42 100644 --- a/src/vdaf/mastic.rs +++ b/src/vdaf/mastic.rs @@ -20,11 +20,11 @@ use crate::{ }, vidpf::{ xor_proof, Vidpf, VidpfError, VidpfInput, VidpfKey, VidpfProof, VidpfPublicShare, - VidpfServerId, VidpfWeight, + VidpfServerId, VidpfWeight, VIDPF_PROOF_SIZE, }, }; -use rand::RngCore; +use rand::prelude::*; use std::io::{Cursor, Read}; use std::ops::BitAnd; use std::slice::from_ref; @@ -67,23 +67,15 @@ pub(crate) fn dst_usage(usage: u8) -> [u8; 8] { /// Composed of a shared zero knowledge proof system and a verifiable incremental /// distributed point function. #[derive(Clone, Debug)] -pub struct Mastic -where - T: Type, - P: Xof, -{ +pub struct Mastic { id: [u8; 4], - pub(crate) szk: Szk, + pub(crate) szk: Szk, pub(crate) vidpf: Vidpf>, /// The length of the private attribute associated with any input. pub(crate) bits: usize, } -impl Mastic -where - T: Type, - P: Xof, -{ +impl Mastic { /// Creates a new instance of Mastic, with a specific attribute length and weight type. pub fn new(algorithm_id: u32, typ: T, bits: usize) -> Result { let vidpf = Vidpf::new(bits, typ.input_len() + 1)?; @@ -154,14 +146,9 @@ impl Decode for MasticAggregationParam { /// Contains broadcast information shared between parties to support VIDPF correctness. pub type MasticPublicShare = VidpfPublicShare; -impl ParameterizedDecode> - for MasticPublicShare> -where - T: Type, - P: Xof, -{ +impl ParameterizedDecode> for MasticPublicShare> { fn decode_with_param( - mastic: &Mastic, + mastic: &Mastic, bytes: &mut Cursor<&[u8]>, ) -> Result { VidpfPublicShare::decode_with_param(&(mastic.bits, mastic.vidpf.weight_len), bytes) @@ -172,15 +159,15 @@ where /// /// Message sent by the [`Client`] to each Aggregator during the Sharding phase. #[derive(Clone, Debug)] -pub struct MasticInputShare { +pub struct MasticInputShare { /// VIDPF key share. vidpf_key: VidpfKey, /// The proof share. - proof_share: SzkProofShare, + proof_share: SzkProofShare, } -impl Encode for MasticInputShare { +impl Encode for MasticInputShare { fn encode(&self, bytes: &mut Vec) -> Result<(), CodecError> { bytes.extend_from_slice(&self.vidpf_key.0[..]); self.proof_share.encode(bytes)?; @@ -192,14 +179,9 @@ impl Encode for MasticInputShare ParameterizedDecode<(&'a Mastic, usize)> - for MasticInputShare -where - T: Type, - P: Xof, -{ +impl<'a, T: Type> ParameterizedDecode<(&'a Mastic, usize)> for MasticInputShare { fn decode_with_param( - (mastic, agg_id): &(&'a Mastic, usize), + (mastic, agg_id): &(&'a Mastic, usize), bytes: &mut Cursor<&[u8]>, ) -> Result { if *agg_id > 1 { @@ -208,7 +190,7 @@ where let mut value = [0; 16]; bytes.read_exact(&mut value)?; let vidpf_key = VidpfKey::from_bytes(value); - let proof_share = SzkProofShare::::decode_with_param( + let proof_share = SzkProofShare::decode_with_param( &( *agg_id == 0, mastic.szk.typ.proof_len(), @@ -223,14 +205,14 @@ where } } -impl PartialEq for MasticInputShare { - fn eq(&self, other: &MasticInputShare) -> bool { +impl PartialEq for MasticInputShare { + fn eq(&self, other: &MasticInputShare) -> bool { self.ct_eq(other).into() } } -impl ConstantTimeEq for MasticInputShare { - fn ct_eq(&self, other: &MasticInputShare) -> Choice { +impl ConstantTimeEq for MasticInputShare { + fn ct_eq(&self, other: &MasticInputShare) -> Choice { self.vidpf_key .ct_eq(&other.vidpf_key) .bitand(self.proof_share.ct_eq(&other.proof_share)) @@ -247,46 +229,34 @@ pub type MasticOutputShare = OutputShare; /// Contains a flattened vector of VIDPF outputs to be aggregated by Mastic aggregators pub type MasticAggregateShare = AggregateShare; -impl<'a, T, P, const SEED_SIZE: usize> - ParameterizedDecode<(&'a Mastic, &'a MasticAggregationParam)> +impl<'a, T: Type> ParameterizedDecode<(&'a Mastic, &'a MasticAggregationParam)> for MasticAggregateShare -where - T: Type, - P: Xof, { fn decode_with_param( - (mastic, agg_param): &(&Mastic, &MasticAggregationParam), + (mastic, agg_param): &(&Mastic, &MasticAggregationParam), bytes: &mut Cursor<&[u8]>, ) -> Result { decode_fieldvec(mastic.agg_share_len(agg_param), bytes).map(AggregateShare) } } -impl<'a, T, P, const SEED_SIZE: usize> - ParameterizedDecode<(&'a Mastic, &'a MasticAggregationParam)> +impl<'a, T: Type> ParameterizedDecode<(&'a Mastic, &'a MasticAggregationParam)> for MasticOutputShare -where - T: Type, - P: Xof, { fn decode_with_param( - (mastic, agg_param): &(&Mastic, &MasticAggregationParam), + (mastic, agg_param): &(&Mastic, &MasticAggregationParam), bytes: &mut Cursor<&[u8]>, ) -> Result { decode_fieldvec(mastic.agg_share_len(agg_param), bytes).map(OutputShare) } } -impl Vdaf for Mastic -where - T: Type, - P: Xof, -{ +impl Vdaf for Mastic { type Measurement = (VidpfInput, T::Measurement); type AggregateResult = Vec; type AggregationParam = MasticAggregationParam; type PublicShare = MasticPublicShare>; - type InputShare = MasticInputShare; + type InputShare = MasticInputShare; type OutputShare = MasticOutputShare; type AggregateShare = MasticAggregateShare; @@ -298,19 +268,15 @@ where 2 } } -impl Mastic -where - T: Type, - P: Xof, -{ +impl Mastic { fn shard_with_random( &self, ctx: &[u8], (alpha, weight): &(VidpfInput, T::Measurement), nonce: &[u8; 16], vidpf_keys: [VidpfKey; 2], - szk_random: [Seed; 2], - joint_random_opt: Option>, + szk_random: [Seed<32>; 2], + joint_random_opt: Option>, ) -> Result<(::PublicShare, Vec<::InputShare>), VdafError> { if alpha.len() != self.bits { return Err(VdafError::Vidpf(VidpfError::InvalidInputLength)); @@ -351,11 +317,11 @@ where nonce, )?; let [leader_vidpf_key, helper_vidpf_key] = vidpf_keys; - let leader_share = MasticInputShare:: { + let leader_share = MasticInputShare { vidpf_key: leader_vidpf_key, proof_share: leader_szk_proof_share, }; - let helper_share = MasticInputShare:: { + let helper_share = MasticInputShare { vidpf_key: helper_vidpf_key, proof_share: helper_szk_proof_share, }; @@ -373,11 +339,7 @@ where } } -impl Client<16> for Mastic -where - T: Type, - P: Xof, -{ +impl Client<16> for Mastic { fn shard( &self, ctx: &[u8], @@ -386,7 +348,7 @@ where ) -> Result<(Self::PublicShare, Vec), VdafError> { let vidpf_keys = [VidpfKey::generate()?, VidpfKey::generate()?]; let joint_random_opt = if self.szk.requires_joint_rand() { - Some(Seed::::generate()?) + Some(Seed::generate()?) } else { None }; @@ -409,15 +371,15 @@ where /// state for [`Szk`] verification, the output shares currently being validated, and /// parameters of Mastic used for encoding. #[derive(Clone, Debug, Eq, PartialEq)] -pub struct MasticPrepareState { +pub struct MasticPrepareState { /// The counter and truncated weight for each candidate prefix. output_shares: MasticOutputShare, /// If [`Szk`]` verification is being performed, we also store the relevant state for that operation. - szk_query_state: SzkQueryState, + szk_query_state: SzkQueryState, verifier_len: Option, } -impl Encode for MasticPrepareState { +impl Encode for MasticPrepareState { fn encode(&self, bytes: &mut Vec) -> Result<(), CodecError> { self.output_shares.encode(bytes)?; if let Some(joint_rand_seed) = &self.szk_query_state { @@ -429,17 +391,16 @@ impl Encode for MasticPrepareState Option { Some( self.output_shares.as_ref().len() * F::ENCODED_SIZE - + self.szk_query_state.as_ref().map_or(0, |_| SEED_SIZE), + + self.szk_query_state.as_ref().map_or(0, |_| 32), ) } } -impl<'a, T: Type, P: Xof, const SEED_SIZE: usize> - ParameterizedDecode<(&'a Mastic, &'a MasticAggregationParam)> - for MasticPrepareState +impl<'a, T: Type> ParameterizedDecode<(&'a Mastic, &'a MasticAggregationParam)> + for MasticPrepareState { fn decode_with_param( - decoder @ (mastic, agg_param): &(&Mastic, &MasticAggregationParam), + decoder @ (mastic, agg_param): &(&Mastic, &MasticAggregationParam), bytes: &mut Cursor<&[u8]>, ) -> Result { let output_shares = MasticOutputShare::decode_with_param(decoder, bytes)?; @@ -465,17 +426,17 @@ impl<'a, T: Type, P: Xof, const SEED_SIZE: usize> /// [`Vidpf`] evaluation proof covering every prefix in the aggregation parameter, and optionally /// the verification message for Szk. #[derive(Clone, Debug, PartialEq)] -pub struct MasticPrepareShare { +pub struct MasticPrepareShare { /// [`Vidpf`] evaluation proof, which guarantees one-hotness and payload consistency. - eval_proof: Seed, + eval_proof: [u8; VIDPF_PROOF_SIZE], /// If [`Szk`]` verification of the root weight is needed, a verification message. - szk_query_share_opt: Option>, + szk_query_share_opt: Option>, } -impl Encode for MasticPrepareShare { +impl Encode for MasticPrepareShare { fn encode(&self, bytes: &mut Vec) -> Result<(), CodecError> { - self.eval_proof.encode(bytes)?; + bytes.extend_from_slice(&self.eval_proof); match &self.szk_query_share_opt { Some(query_share) => query_share.encode(bytes), None => Ok(()), @@ -484,7 +445,7 @@ impl Encode for MasticPrepareShare Option { Some( - self.eval_proof.encoded_len()? + VIDPF_PROOF_SIZE + match &self.szk_query_share_opt { Some(query_share) => query_share.encoded_len()?, None => 0, @@ -493,22 +454,18 @@ impl Encode for MasticPrepareShare ParameterizedDecode> - for MasticPrepareShare -{ +impl ParameterizedDecode> for MasticPrepareShare { fn decode_with_param( - prep_state: &MasticPrepareState, + prep_state: &MasticPrepareState, bytes: &mut Cursor<&[u8]>, ) -> Result { - let eval_proof = Seed::decode(bytes)?; + let mut eval_proof = [0; VIDPF_PROOF_SIZE]; + bytes.read_exact(&mut eval_proof[..])?; let requires_joint_rand = prep_state.szk_query_state.is_some(); let szk_query_share_opt = prep_state .verifier_len .map(|verifier_len| { - SzkQueryShare::::decode_with_param( - &(requires_joint_rand, verifier_len), - bytes, - ) + SzkQueryShare::decode_with_param(&(requires_joint_rand, verifier_len), bytes) }) .transpose()?; Ok(Self { @@ -522,30 +479,24 @@ impl ParameterizedDecode = SzkJointShare; +pub type MasticPrepareMessage = SzkJointShare; -impl ParameterizedDecode> - for MasticPrepareMessage -{ +impl ParameterizedDecode> for MasticPrepareMessage { fn decode_with_param( - prep_state: &MasticPrepareState, + prep_state: &MasticPrepareState, bytes: &mut Cursor<&[u8]>, ) -> Result { match prep_state.szk_query_state { - Some(_) => SzkJointShare::::decode_with_param(&true, bytes), - None => SzkJointShare::::decode_with_param(&false, bytes), + Some(_) => SzkJointShare::decode_with_param(&true, bytes), + None => SzkJointShare::decode_with_param(&false, bytes), } } } -impl Aggregator for Mastic -where - T: Type, - P: Xof, -{ - type PrepareState = MasticPrepareState; - type PrepareShare = MasticPrepareShare; - type PrepareMessage = MasticPrepareMessage; +impl Aggregator<32, NONCE_SIZE> for Mastic { + type PrepareState = MasticPrepareState; + type PrepareShare = MasticPrepareShare; + type PrepareMessage = MasticPrepareMessage; fn is_agg_param_valid(cur: &MasticAggregationParam, prev: &[MasticAggregationParam]) -> bool { // First agg param should be the only one that requires weight check. @@ -559,25 +510,22 @@ where // Unpack this agg param and the last one in the list let cur_poplar_agg_param = &cur.level_and_prefixes; let prev_poplar_agg_param = from_ref(&prev.last().as_ref().unwrap().level_and_prefixes); - Poplar1::::is_agg_param_valid(cur_poplar_agg_param, prev_poplar_agg_param) + Poplar1::::is_agg_param_valid( + cur_poplar_agg_param, + prev_poplar_agg_param, + ) } fn prepare_init( &self, - verify_key: &[u8; SEED_SIZE], + verify_key: &[u8; 32], ctx: &[u8], agg_id: usize, agg_param: &MasticAggregationParam, nonce: &[u8; NONCE_SIZE], public_share: &MasticPublicShare>, - input_share: &MasticInputShare, - ) -> Result< - ( - MasticPrepareState, - MasticPrepareShare, - ), - VdafError, - > { + input_share: &MasticInputShare, + ) -> Result<(MasticPrepareState, MasticPrepareShare), VdafError> { let id = match agg_id { 0 => Ok(VidpfServerId::S0), 1 => Ok(VidpfServerId::S1), @@ -602,10 +550,8 @@ where // Onehot and payload checks let (payload_check, onehot_proof) = { - let mut payload_check_xof = P::init( - &[0; SEED_SIZE], - &[&dst_usage(USAGE_PAYLOAD_CHECK), &self.id, ctx], - ); + let mut payload_check_xof = + XofTurboShake128::init(&[0; 32], &[&dst_usage(USAGE_PAYLOAD_CHECK), &self.id, ctx]); let mut payload_check_buf = Vec::with_capacity(T::Field::ENCODED_SIZE); let mut onehot_proof = ONEHOT_PROOF_INIT; @@ -658,14 +604,12 @@ where }; let eval_proof = { - let mut eval_proof_xof = P::init( - &[0; SEED_SIZE], - &[&dst_usage(USAGE_EVAL_PROOF), &self.id, ctx], - ); + let mut eval_proof_xof = + XofTurboShake128::init(&[0; 32], &[&dst_usage(USAGE_EVAL_PROOF), &self.id, ctx]); eval_proof_xof.update(&onehot_proof); eval_proof_xof.update(&counter_check); eval_proof_xof.update(&payload_check); - eval_proof_xof.into_seed() + eval_proof_xof.into_seed().0 }; let mut truncated_out_shares = @@ -721,14 +665,12 @@ where }) } - fn prepare_shares_to_prepare_message< - M: IntoIterator>, - >( + fn prepare_shares_to_prepare_message>>( &self, ctx: &[u8], _agg_param: &MasticAggregationParam, inputs: M, - ) -> Result, VdafError> { + ) -> Result { let mut inputs_iter = inputs.into_iter(); let leader_share = inputs_iter.next().ok_or(VdafError::Uncategorized( "No leader share received".to_string(), @@ -754,7 +696,7 @@ where (Some(leader_query_share), Some(helper_query_share)) => Ok(self .szk .merge_query_shares(ctx, leader_query_share, helper_query_share)?), - (None, None) => Ok(SzkJointShare::none()), + (None, None) => Ok(SzkJointShare::default()), (_, _) => Err(VdafError::Uncategorized( "Only one of leader and helper query shares is present".to_string(), )), @@ -764,9 +706,9 @@ where fn prepare_next( &self, _ctx: &[u8], - state: MasticPrepareState, - input: MasticPrepareMessage, - ) -> Result, VdafError> { + state: MasticPrepareState, + input: MasticPrepareMessage, + ) -> Result, VdafError> { let MasticPrepareState { output_shares, szk_query_state, @@ -801,11 +743,7 @@ where } } -impl Collector for Mastic -where - T: Type, - P: Xof, -{ +impl Collector for Mastic { fn unshard>( &self, agg_param: &MasticAggregationParam, @@ -854,7 +792,6 @@ mod tests { use crate::flp::gadgets::{Mul, ParallelSum}; use crate::flp::types::{Count, Histogram, Sum, SumVec}; use crate::vdaf::test_utils::run_vdaf; - use crate::vdaf::xof::XofTurboShake128; use rand::{thread_rng, Rng}; const CTX_STR: &[u8] = b"mastic ctx"; @@ -864,7 +801,7 @@ mod tests { let algorithm_id = 6; let max_measurement = 29; let sum_typ = Sum::::new(max_measurement).unwrap(); - let mastic = Mastic::<_, XofTurboShake128, 32>::new(algorithm_id, sum_typ, 32).unwrap(); + let mastic = Mastic::new(algorithm_id, sum_typ, 32).unwrap(); let mut nonce = [0u8; 16]; thread_rng().fill(&mut nonce[..]); @@ -943,7 +880,7 @@ mod tests { let algorithm_id = 6; let max_measurement = 29; let sum_typ = Sum::::new(max_measurement).unwrap(); - let mastic = Mastic::<_, XofTurboShake128, 32>::new(algorithm_id, sum_typ, 32).unwrap(); + let mastic = Mastic::new(algorithm_id, sum_typ, 32).unwrap(); let mut nonce = [0u8; 16]; thread_rng().fill(&mut nonce[..]); @@ -994,7 +931,7 @@ mod tests { let algorithm_id = 6; let max_measurement = 29; let sum_typ = Sum::::new(max_measurement).unwrap(); - let mastic = Mastic::<_, XofTurboShake128, 32>::new(algorithm_id, sum_typ, 32).unwrap(); + let mastic = Mastic::new(algorithm_id, sum_typ, 32).unwrap(); let mut nonce = [0u8; 16]; thread_rng().fill(&mut nonce[..]); @@ -1015,7 +952,7 @@ mod tests { fn test_mastic_count() { let algorithm_id = 6; let count = Count::::new(); - let mastic = Mastic::<_, XofTurboShake128, 32>::new(algorithm_id, count, 32).unwrap(); + let mastic = Mastic::new(algorithm_id, count, 32).unwrap(); let mut nonce = [0u8; 16]; thread_rng().fill(&mut nonce[..]); @@ -1092,7 +1029,7 @@ mod tests { fn test_public_share_encoded_len() { let algorithm_id = 6; let count = Count::::new(); - let mastic = Mastic::<_, XofTurboShake128, 32>::new(algorithm_id, count, 32).unwrap(); + let mastic = Mastic::new(algorithm_id, count, 32).unwrap(); let mut nonce = [0u8; 16]; thread_rng().fill(&mut nonce[..]); @@ -1110,7 +1047,7 @@ mod tests { fn test_public_share_roundtrip_count() { let algorithm_id = 6; let count = Count::::new(); - let mastic = Mastic::<_, XofTurboShake128, 32>::new(algorithm_id, count, 32).unwrap(); + let mastic = Mastic::new(algorithm_id, count, 32).unwrap(); let mut nonce = [0u8; 16]; thread_rng().fill(&mut nonce[..]); @@ -1130,7 +1067,7 @@ mod tests { let algorithm_id = 6; let sumvec = SumVec::>>::new(5, 3, 3).unwrap(); - let mastic = Mastic::<_, XofTurboShake128, 32>::new(algorithm_id, sumvec, 32).unwrap(); + let mastic = Mastic::new(algorithm_id, sumvec, 32).unwrap(); let mut nonce = [0u8; 16]; thread_rng().fill(&mut nonce[..]); @@ -1218,7 +1155,7 @@ mod tests { let sumvec = SumVec::>>::new(5, 3, 3).unwrap(); let measurement = vec![1, 16, 0]; - let mastic = Mastic::<_, XofTurboShake128, 32>::new(algorithm_id, sumvec, 32).unwrap(); + let mastic = Mastic::new(algorithm_id, sumvec, 32).unwrap(); let mut nonce = [0u8; 16]; thread_rng().fill(&mut nonce[..]); @@ -1247,7 +1184,7 @@ mod tests { let sumvec = SumVec::>>::new(5, 3, 3).unwrap(); let measurement = vec![1, 16, 0]; - let mastic = Mastic::<_, XofTurboShake128, 32>::new(algorithm_id, sumvec, 32).unwrap(); + let mastic = Mastic::new(algorithm_id, sumvec, 32).unwrap(); let mut nonce = [0u8; 16]; thread_rng().fill(&mut nonce[..]); @@ -1278,7 +1215,7 @@ mod tests { let sumvec = SumVec::>>::new(5, 3, 3).unwrap(); let measurement = vec![1, 16, 0]; - let mastic = Mastic::<_, XofTurboShake128, 32>::new(algorithm_id, sumvec, 32).unwrap(); + let mastic = Mastic::new(algorithm_id, sumvec, 32).unwrap(); let mut nonce = [0u8; 16]; thread_rng().fill(&mut nonce[..]); @@ -1301,7 +1238,7 @@ mod tests { let sumvec = SumVec::>>::new(5, 3, 3).unwrap(); let measurement = vec![1, 16, 0]; - let mastic = Mastic::<_, XofTurboShake128, 32>::new(algorithm_id, sumvec, 32).unwrap(); + let mastic = Mastic::new(algorithm_id, sumvec, 32).unwrap(); let mut nonce = [0u8; 16]; thread_rng().fill(&mut nonce[..]); @@ -1326,7 +1263,7 @@ mod tests { weight: T::Measurement, require_weight_check: bool, ) { - let mastic: Mastic = Mastic::new(0, typ, 256).unwrap(); + let mastic = Mastic::new(0, typ, 256).unwrap(); let ctx = b"some application"; let verify_key = [0u8; 32]; let nonce = [0u8; 16]; @@ -1443,7 +1380,7 @@ mod tests { let test_vec: TestVector = serde_json::from_str(test_vec_str).unwrap(); - let mastic = Mastic::<_, XofTurboShake128, 32>::new( + let mastic = Mastic::new( algorithm_id, new_typ(&test_vec.type_params), test_vec.vidpf_bits, diff --git a/src/vidpf.rs b/src/vidpf.rs index 6fd6837f..174f4669 100644 --- a/src/vidpf.rs +++ b/src/vidpf.rs @@ -624,7 +624,7 @@ pub(crate) struct VidpfEvalResult { pub(crate) share: W, } -const VIDPF_PROOF_SIZE: usize = 32; +pub(crate) const VIDPF_PROOF_SIZE: usize = 32; const VIDPF_SEED_SIZE: usize = 16; /// Allows to validate user input and shares after evaluation. From 561438480d02fb8500faac500d50ac1411fc152e Mon Sep 17 00:00:00 2001 From: Christopher Patton Date: Fri, 10 Jan 2025 17:38:03 -0800 Subject: [PATCH 2/2] mastic: Use empty seeds instead of zero seeds --- src/flp/szk.rs | 4 +-- src/vdaf/mastic.rs | 25 ++++++++------- .../test_vec/mastic/04/MasticCount_0.json | 4 +-- .../test_vec/mastic/04/MasticCount_1.json | 4 +-- .../test_vec/mastic/04/MasticCount_2.json | 32 +++++++++---------- .../test_vec/mastic/04/MasticCount_3.json | 32 +++++++++---------- .../test_vec/mastic/04/MasticHistogram_0.json | 24 +++++++------- .../mastic/04/MasticMultihotCountVec_0.json | 16 +++++----- .../test_vec/mastic/04/MasticSumVec_0.json | 16 +++++----- src/vdaf/test_vec/mastic/04/MasticSum_0.json | 20 ++++++------ src/vdaf/test_vec/mastic/04/MasticSum_1.json | 20 ++++++------ 11 files changed, 99 insertions(+), 98 deletions(-) diff --git a/src/flp/szk.rs b/src/flp/szk.rs index 58bf5386..72cee5c0 100644 --- a/src/flp/szk.rs +++ b/src/flp/szk.rs @@ -343,8 +343,8 @@ impl Szk { helper_joint_rand_part: &Seed<32>, ctx: &[u8], ) -> Seed<32> { - let mut xof = XofTurboShake128::init( - &[0; 32], + let mut xof = XofTurboShake128::from_seed_slice( + &[], &[ &mastic::dst_usage(mastic::USAGE_JOINT_RAND_SEED), &self.id, diff --git a/src/vdaf/mastic.rs b/src/vdaf/mastic.rs index 7b285c42..9c0dd012 100644 --- a/src/vdaf/mastic.rs +++ b/src/vdaf/mastic.rs @@ -37,12 +37,11 @@ const NONCE_SIZE: usize = 16; // draft-jimouris-cfrg-mastic: // -// ONEHOT_PROOF_INIT = XofTurboShake128(zeros(XofTurboShake128.SEED_SIZE), -// dst(b'', USAGE_ONEHOT_PROOF_INIT), -// b'').next(PROOF_SIZE) +// ONEHOT_PROOF_INIT = XofTurboShake128( +// b'', dst(b'', USAGE_ONEHOT_PROOF_INIT), b'').next(PROOF_SIZE) pub(crate) const ONEHOT_PROOF_INIT: [u8; 32] = [ - 253, 211, 45, 179, 139, 135, 183, 67, 202, 144, 13, 205, 241, 39, 165, 73, 232, 54, 57, 193, - 106, 154, 133, 22, 15, 194, 223, 162, 79, 108, 60, 133, + 97, 188, 153, 213, 116, 162, 25, 70, 98, 231, 255, 255, 1, 207, 231, 225, 13, 187, 182, 1, 16, + 90, 161, 104, 201, 152, 149, 153, 35, 92, 254, 149, ]; pub(crate) const USAGE_PROVE_RAND: u8 = 0; @@ -187,9 +186,7 @@ impl<'a, T: Type> ParameterizedDecode<(&'a Mastic, usize)> for MasticInputSha if *agg_id > 1 { return Err(CodecError::UnexpectedValue); } - let mut value = [0; 16]; - bytes.read_exact(&mut value)?; - let vidpf_key = VidpfKey::from_bytes(value); + let vidpf_key = VidpfKey::decode(bytes)?; let proof_share = SzkProofShare::decode_with_param( &( *agg_id == 0, @@ -550,8 +547,10 @@ impl Aggregator<32, NONCE_SIZE> for Mastic { // Onehot and payload checks let (payload_check, onehot_proof) = { - let mut payload_check_xof = - XofTurboShake128::init(&[0; 32], &[&dst_usage(USAGE_PAYLOAD_CHECK), &self.id, ctx]); + let mut payload_check_xof = XofTurboShake128::from_seed_slice( + &[], + &[&dst_usage(USAGE_PAYLOAD_CHECK), &self.id, ctx], + ); let mut payload_check_buf = Vec::with_capacity(T::Field::ENCODED_SIZE); let mut onehot_proof = ONEHOT_PROOF_INIT; @@ -604,8 +603,10 @@ impl Aggregator<32, NONCE_SIZE> for Mastic { }; let eval_proof = { - let mut eval_proof_xof = - XofTurboShake128::init(&[0; 32], &[&dst_usage(USAGE_EVAL_PROOF), &self.id, ctx]); + let mut eval_proof_xof = XofTurboShake128::from_seed_slice( + &[], + &[&dst_usage(USAGE_EVAL_PROOF), &self.id, ctx], + ); eval_proof_xof.update(&onehot_proof); eval_proof_xof.update(&counter_check); eval_proof_xof.update(&payload_check); diff --git a/src/vdaf/test_vec/mastic/04/MasticCount_0.json b/src/vdaf/test_vec/mastic/04/MasticCount_0.json index b9d6156c..c5918c04 100644 --- a/src/vdaf/test_vec/mastic/04/MasticCount_0.json +++ b/src/vdaf/test_vec/mastic/04/MasticCount_0.json @@ -42,8 +42,8 @@ ], "prep_shares": [ [ - "fd29b942ce3020071ba652fa5597991fb6baa655eeb3dc6aced3b5fc4c8c0bd082518600b8bd84150c9df3154968eb00fd6949610bbaa838f528e845e9b134bf", - "fd29b942ce3020071ba652fa5597991fb6baa655eeb3dc6aced3b5fc4c8c0bd07fae79ff46427bea6814d366e7d3bd95781ac4b7ab90e6a99f6399ebb8914e6d" + "7e721d28bd48370b6a16ea503791be940d88fa776d7bb59945b5c8eff6973e8d82518600b8bd84150c9df3154968eb00fd6949610bbaa838f528e845e9b134bf", + "7e721d28bd48370b6a16ea503791be940d88fa776d7bb59945b5c8eff6973e8d7fae79ff46427bea6814d366e7d3bd95781ac4b7ab90e6a99f6399ebb8914e6d" ] ], "public_share": "0e30118b55bf77ff34817d80025c5c736b1ee2188425350e71cc1dc5a779de3e6ff0676312c362381937b2713cf2d65c6bfd5e3a8400fe1b3f71da0726d672f55f796f086f2d82ba5c736f5c7854b6fbe6605a571bdabcacce7acd94b9c87b314bead370e09dc18618bd5cc3c8825338a085d4790108cbeb9ecdb914466664cfa0", diff --git a/src/vdaf/test_vec/mastic/04/MasticCount_1.json b/src/vdaf/test_vec/mastic/04/MasticCount_1.json index b145cd6c..6f7d993d 100644 --- a/src/vdaf/test_vec/mastic/04/MasticCount_1.json +++ b/src/vdaf/test_vec/mastic/04/MasticCount_1.json @@ -42,8 +42,8 @@ ], "prep_shares": [ [ - "245c09de0594a55d2dead508e9de14af70fa8a3343057af3949f09dc8fb5d7bd82518600b8bd8415522695511228b9228a6b0a9d88a7f97af0b1b62107f08c47", - "245c09de0594a55d2dead508e9de14af70fa8a3343057af3949f09dc8fb5d7bd7fae79ff46427beaf79ffb3f48d217d30f4b40b400becf0407f72fed209095f2" + "bfdffd964fe8b1d7804cc7bb1197c5b1c6f08094599a8021986e517e923f43a282518600b8bd8415522695511228b9228a6b0a9d88a7f97af0b1b62107f08c47", + "bfdffd964fe8b1d7804cc7bb1197c5b1c6f08094599a8021986e517e923f43a27fae79ff46427beaf79ffb3f48d217d30f4b40b400becf0407f72fed209095f2" ] ], "public_share": "0e30118b55bf77ff34817d80025c5c736b1ee2188425350e71cc1dc5a779de3e6ff0676312c362381937b2713cf2d65c6bfd5e3a8400fe1b3f71da0726d672f55f796f086f2d82ba5c736f5c7854b6fbe6605a571bdabcacce7acd94b9c87b314bead370e09dc18618bd5cc3c8825338a085d4790108cbeb9ecdb914466664cfa0", diff --git a/src/vdaf/test_vec/mastic/04/MasticCount_2.json b/src/vdaf/test_vec/mastic/04/MasticCount_2.json index 6bd1e656..d08ebfc5 100644 --- a/src/vdaf/test_vec/mastic/04/MasticCount_2.json +++ b/src/vdaf/test_vec/mastic/04/MasticCount_2.json @@ -70,8 +70,8 @@ ], "prep_shares": [ [ - "0bc6f29eb752bdfb3d51b2d0deffe1ab6e16e7902f76f6270338cd16c063c8c02c6d7e029fcf988f10f9095c548f022766f44bd80f2e0313d1f3468b15732930", - "0bc6f29eb752bdfb3d51b2d0deffe1ab6e16e7902f76f6270338cd16c063c8c0d59281fd5f30677010fb3c8ed88093515d94632fceae87396146dd9ef6cad681" + "08b013261b93d7cad0fd4d78b8ab88d700e20e4c99a725cac93c4da0ab5f2f1e2c6d7e029fcf988f10f9095c548f022766f44bd80f2e0313d1f3468b15732930", + "08b013261b93d7cad0fd4d78b8ab88d700e20e4c99a725cac93c4da0ab5f2f1ed59281fd5f30677010fb3c8ed88093515d94632fceae87396146dd9ef6cad681" ] ], "public_share": "8d038031b3e41fc4b2fe2a3f77de06db7fe0806225f5601afc6f1578ceb8a6d174c50c4eecaffdf4f2310f168d03c5a4cbfc4c3ed6bc04479d05151e4f21be576a880c8ec3143a6b9fb9509d7d0658fc05dc149b0a3cb2046aef8e96793a0ac548f123fcc6eebe7973c8a4500651955a500673e19649c10909b051ef18c08828de79e178096261b4c3169c50015389bba0478bf97610f7213fc164c370974ff59af71fcf7e3da5536ef5a1668edbcf156f0fd3c945373fb5dc1c9a6186492c2287744721f599cd4fb470b85efdbc10e10b3e26b2429a6995974f60522f4f897077de82268c3c3c4c2ebfa2d5c92c144865eb2034a91595dd4e4a21cc389ddac89cfa96d8e9329459a6e5edafd9f4ac1ecae95f9449e7210b0af9c4d2f16abee578ad709db6928479adc6cc0714f759d7f43412e7c2139b9c3d002fee3526734be175", @@ -132,8 +132,8 @@ ], "prep_shares": [ [ - "0bc6f29eb752bdfb3d51b2d0deffe1ab6e16e7902f76f6270338cd16c063c8c02c6d7e029fcf988f10f9095c548f022766f44bd80f2e0313d1f3468b15732930", - "0bc6f29eb752bdfb3d51b2d0deffe1ab6e16e7902f76f6270338cd16c063c8c0d59281fd5f30677010fb3c8ed88093515d94632fceae87396146dd9ef6cad681" + "08b013261b93d7cad0fd4d78b8ab88d700e20e4c99a725cac93c4da0ab5f2f1e2c6d7e029fcf988f10f9095c548f022766f44bd80f2e0313d1f3468b15732930", + "08b013261b93d7cad0fd4d78b8ab88d700e20e4c99a725cac93c4da0ab5f2f1ed59281fd5f30677010fb3c8ed88093515d94632fceae87396146dd9ef6cad681" ] ], "public_share": "8d038031b3e41fc4b2fe2a3f77de06db7fe0806225f5601afc6f1578ceb8a6d174c50c4eecaffdf4f2310f168d03c5a4cbfc4c3ed6bc04479d05151e4f21be576a880c8ec3143a6b9fb9509d7d0658fc05dc149b0a3cb2046aef8e96793a0ac548f123fcc6eebe7973c8a4500651955a500673e19649c10909b051ef18c08828de79e178096261b4c3169c50015389bba0478bf97610f7213fc164c370974ff59af71fcf7e3da5536ef5a1668edbcf156f0fd3c945373fb5dc1c9a6186492c2287744721f599cd4fb470b85efdbc10e10b3e26b2429a6995974f60522f4f897077de82268c3c3c4c2ebfa2d5c92c144865eb2034a91595dd4e4a21cc389ddac89cfa96d8e9329459a6e5edafd9f4ac1ecae95f9449e7210b0af9c4d2f16abee578ad709db6928479adc6cc0714f759d7f43412e7c2139b9c3d002fee3526734be175", @@ -194,8 +194,8 @@ ], "prep_shares": [ [ - "ad47c82dc356b1088a1f800db0b2241297b80f3aabf5298f0cf84de046cb89262c6d7e029fcf988f10f9095c548f022766f44bd80f2e0313d1f3468b15732930", - "ad47c82dc356b1088a1f800db0b2241297b80f3aabf5298f0cf84de046cb8926d59281fd5f30677010fb3c8ed88093515d94632fceae87396146dd9ef6cad681" + "93aa1ea5db60044dc07cfa56c058fe9f82e56f011ce42072a48b6574184b8cc52c6d7e029fcf988f10f9095c548f022766f44bd80f2e0313d1f3468b15732930", + "93aa1ea5db60044dc07cfa56c058fe9f82e56f011ce42072a48b6574184b8cc5d59281fd5f30677010fb3c8ed88093515d94632fceae87396146dd9ef6cad681" ] ], "public_share": "7d038031b3e41fc4b2fe2a3f77de06db7fe0806225f5601afc6f1578ceb8a6d174c5848d58535ab915bafb428087a2f62dbc76138f52a253028dda7eae3b502b33a9e821410b02d88a837bc1be5f59b920e4149b0a3cb2046aef8e96793a0ac548f123fcc6eebe7973c8a4500651955a5006024a26201bd34c0c4a4cdc45998b19adf4c9f946b4430a94eee7e5347e4fd8ca08c7752a400682f85f764f00e454aa8e1fcf7e3da5536ef5a1668edbcf156f0fd3c945373fb5dc1c9a6186492c2287744721f599cd4fb470b85efdbc10e10b3e26b2429a6995974f60522f4f897077de7f7b07549a8dc1b8aab05ba555010958751c39bbd2be9c8207b8ebe22fbc59eecd318a107e2606fe4be6c1cbfb534c5dcffb0bdefdab1e463a32e237453b5c563fc296a049fe4876f4c7eb407a2b965a8661740929d1f3cb67f6a88acfa6603c", @@ -256,8 +256,8 @@ ], "prep_shares": [ [ - "7e72a4ee8fc1708118ef8c59c98e610f6deec6758c348a7de5249df47260c2db2c6d7e029fcf988f10f9095c548f022766f44bd80f2e0313d1f3468b15732930", - "7e72a4ee8fc1708118ef8c59c98e610f6deec6758c348a7de5249df47260c2dbd59281fd5f30677010fb3c8ed88093515d94632fceae87396146dd9ef6cad681" + "579fbb066a904fe34314d993aea5cb73042f9bb1192d83ad90e7d7a55692cbeb2c6d7e029fcf988f10f9095c548f022766f44bd80f2e0313d1f3468b15732930", + "579fbb066a904fe34314d993aea5cb73042f9bb1192d83ad90e7d7a55692cbebd59281fd5f30677010fb3c8ed88093515d94632fceae87396146dd9ef6cad681" ] ], "public_share": "7d008031b3e41fc4b2fe2a3f77de06db7fe0806225f5601afc6f1578ceb8a6d174c5848d58535ab915bafb428087a2f62dbc76138f52a253028dda7eae3b502b33a916e5a7207c22876c3e8651e6ec087889149b0a3cb2046aef8e96793a0ac548f123fcc6eebe7973c8a4500651955a5006024a26201bd34c0c4a4cdc45998b19adf4c9f946b4430a94eee7e5347e4fd8ca85fb7348903670f480514fbeb9082d791fcf7e3da5536ef5a1668edbcf156f0fd3c945373fb5dc1c9a6186492c2287744721f599cd4fb470b85efdbc10e10b3e26b2429a6995974f60522f4f897077de7f7b07549a8dc1b8aab05ba555010958751c39bbd2be9c8207b8ebe22fbc59eecd318a107e2606fe4be6c1cbfb534c5dcffb0bdefdab1e463a32e237453b5c56f26b55fc7fa6e4e7ea335244210e9dc2033fdaccd3beb6d9c970e326344c9c08", @@ -318,8 +318,8 @@ ], "prep_shares": [ [ - "c2fe3f3d30d0e7117847c8764660ba072000d16a73cea13bd41ae6b1f47b61352c6d7e029fcf988f10f9095c548f022766f44bd80f2e0313d1f3468b15732930", - "c2fe3f3d30d0e7117847c8764660ba072000d16a73cea13bd41ae6b1f47b6135d59281fd5f30677010fb3c8ed88093515d94632fceae87396146dd9ef6cad681" + "fb4d5e0dcbcd577640e4afab8880184b0b3046022c78da1cfefb5ecc7a8b5a522c6d7e029fcf988f10f9095c548f022766f44bd80f2e0313d1f3468b15732930", + "fb4d5e0dcbcd577640e4afab8880184b0b3046022c78da1cfefb5ecc7a8b5a52d59281fd5f30677010fb3c8ed88093515d94632fceae87396146dd9ef6cad681" ] ], "public_share": "f1008031b3e41fc4b2fe2a3f77de06db7fe06eb6ffd9b0e2083236efcc45c94d7ca7c061c2d66fafdc0b34509f1ee246cbb15e5ac395c89a2db8dbb05470e32bb53f2e5dce6ec3fc1614aeae2cc0abde9ed7149b0a3cb2046aef8e96793a0ac548f162d5e495135c2e58052f8f36198892949f86b8b81414971f05f924425ae428b5a936fed7a48b510d19fd09bbfab24426f53efa61f0150248095da69d5a7c1f4f1fcf7e3da5536ef5a1668edbcf156f0fd3c945373fb5dc1c9a6186492c228774054291117c18b81662a9088383ee06b10e90164cd82e94d2b5ad07dc2ae07ab1b861d103b3ec7fb911023c394b0bd14698b3910ef1d5fd790320674116b9355f3778591f096266f48a2de6414a003ff2721f924ca54dd4d7c5ce3d1eae38d8370869cff496518a2d0aa3303977d5daf465ff518c978ab6e167d16816f88efc55", @@ -380,8 +380,8 @@ ], "prep_shares": [ [ - "a67d267d46babd82774a4784ccb33925c00018a9c535a6df7c2e6794a2dd4eb92c6d7e029fcf988f10f9095c548f022766f44bd80f2e0313d1f3468b15732930", - "a67d267d46babd82774a4784ccb33925c00018a9c535a6df7c2e6794a2dd4eb9d59281fd5f30677010fb3c8ed88093515d94632fceae87396146dd9ef6cad681" + "a56754c9117a51c30534afb5894e4845f061e2a50bc5eb3b8e24b4465410f50a2c6d7e029fcf988f10f9095c548f022766f44bd80f2e0313d1f3468b15732930", + "a56754c9117a51c30534afb5894e4845f061e2a50bc5eb3b8e24b4465410f50ad59281fd5f30677010fb3c8ed88093515d94632fceae87396146dd9ef6cad681" ] ], "public_share": "31028031b3e41fc4b2fe2a3f77de06db7fe06eb6ffd9b0e2083236efcc45c94d7ca7c061c2d66fafdc0b34509f1ee246cbb18481284d0d1422caa93c58f805ae12fc96571eb833cf5d83fb68cbb285da472b149b0a3cb2046aef8e96793a0ac548f162d5e495135c2e58052f8f36198892949f86b8b81414971f05f924425ae428b556e4139b9825e7e74c4196275f57f2fc35eb52f72c55e93e3193770130eeba061fcf7e3da5536ef5a1668edbcf156f0fd3c945373fb5dc1c9a6186492c228774054291117c18b81662a9088383ee06b10e90164cd82e94d2b5ad07dc2ae07ab1b861d103b3ec7fb911023c394b0bd14698b3910ef1d5fd790320674116b9355f384805f18cca0e14c8327d5bfa82ff97dba54bc303dc21396e9b7349f4fed3663944c431225ef122e692349ac63e7346117ad2ff85ce46879ce73a37fb41a748", @@ -442,8 +442,8 @@ ], "prep_shares": [ [ - "a67d267d46babd82774a4784ccb33925c00018a9c535a6df7c2e6794a2dd4eb92c6d7e029fcf988f10f9095c548f022766f44bd80f2e0313d1f3468b15732930", - "a67d267d46babd82774a4784ccb33925c00018a9c535a6df7c2e6794a2dd4eb9d59281fd5f30677010fb3c8ed88093515d94632fceae87396146dd9ef6cad681" + "a56754c9117a51c30534afb5894e4845f061e2a50bc5eb3b8e24b4465410f50a2c6d7e029fcf988f10f9095c548f022766f44bd80f2e0313d1f3468b15732930", + "a56754c9117a51c30534afb5894e4845f061e2a50bc5eb3b8e24b4465410f50ad59281fd5f30677010fb3c8ed88093515d94632fceae87396146dd9ef6cad681" ] ], "public_share": "31028031b3e41fc4b2fe2a3f77de06db7fe06eb6ffd9b0e2083236efcc45c94d7ca7c061c2d66fafdc0b34509f1ee246cbb18481284d0d1422caa93c58f805ae12fc96571eb833cf5d83fb68cbb285da472b149b0a3cb2046aef8e96793a0ac548f162d5e495135c2e58052f8f36198892949f86b8b81414971f05f924425ae428b556e4139b9825e7e74c4196275f57f2fc35eb52f72c55e93e3193770130eeba061fcf7e3da5536ef5a1668edbcf156f0fd3c945373fb5dc1c9a6186492c228774054291117c18b81662a9088383ee06b10e90164cd82e94d2b5ad07dc2ae07ab1b861d103b3ec7fb911023c394b0bd14698b3910ef1d5fd790320674116b9355f384805f18cca0e14c8327d5bfa82ff97dba54bc303dc21396e9b7349f4fed3663944c431225ef122e692349ac63e7346117ad2ff85ce46879ce73a37fb41a748", @@ -504,8 +504,8 @@ ], "prep_shares": [ [ - "a67d267d46babd82774a4784ccb33925c00018a9c535a6df7c2e6794a2dd4eb92c6d7e029fcf988f10f9095c548f022766f44bd80f2e0313d1f3468b15732930", - "a67d267d46babd82774a4784ccb33925c00018a9c535a6df7c2e6794a2dd4eb9d59281fd5f30677010fb3c8ed88093515d94632fceae87396146dd9ef6cad681" + "a56754c9117a51c30534afb5894e4845f061e2a50bc5eb3b8e24b4465410f50a2c6d7e029fcf988f10f9095c548f022766f44bd80f2e0313d1f3468b15732930", + "a56754c9117a51c30534afb5894e4845f061e2a50bc5eb3b8e24b4465410f50ad59281fd5f30677010fb3c8ed88093515d94632fceae87396146dd9ef6cad681" ] ], "public_share": "31028031b3e41fc4b2fe2a3f77de06db7fe06eb6ffd9b0e2083236efcc45c94d7ca7c061c2d66fafdc0b34509f1ee246cbb18481284d0d1422caa93c58f805ae12fc96571eb833cf5d83fb68cbb285da472b149b0a3cb2046aef8e96793a0ac548f162d5e495135c2e58052f8f36198892949f86b8b81414971f05f924425ae428b556e4139b9825e7e74c4196275f57f2fc35eb52f72c55e93e3193770130eeba061fcf7e3da5536ef5a1668edbcf156f0fd3c945373fb5dc1c9a6186492c228774054291117c18b81662a9088383ee06b10e90164cd82e94d2b5ad07dc2ae07ab1b861d103b3ec7fb911023c394b0bd14698b3910ef1d5fd790320674116b9355f384805f18cca0e14c8327d5bfa82ff97dba54bc303dc21396e9b7349f4fed3663944c431225ef122e692349ac63e7346117ad2ff85ce46879ce73a37fb41a748", diff --git a/src/vdaf/test_vec/mastic/04/MasticCount_3.json b/src/vdaf/test_vec/mastic/04/MasticCount_3.json index e8fc79ed..39e8c389 100644 --- a/src/vdaf/test_vec/mastic/04/MasticCount_3.json +++ b/src/vdaf/test_vec/mastic/04/MasticCount_3.json @@ -70,8 +70,8 @@ ], "prep_shares": [ [ - "0bc6f29eb752bdfb3d51b2d0deffe1ab6e16e7902f76f6270338cd16c063c8c0", - "0bc6f29eb752bdfb3d51b2d0deffe1ab6e16e7902f76f6270338cd16c063c8c0" + "08b013261b93d7cad0fd4d78b8ab88d700e20e4c99a725cac93c4da0ab5f2f1e", + "08b013261b93d7cad0fd4d78b8ab88d700e20e4c99a725cac93c4da0ab5f2f1e" ] ], "public_share": "8d038031b3e41fc4b2fe2a3f77de06db7fe0806225f5601afc6f1578ceb8a6d174c50c4eecaffdf4f2310f168d03c5a4cbfc4c3ed6bc04479d05151e4f21be576a880c8ec3143a6b9fb9509d7d0658fc05dc149b0a3cb2046aef8e96793a0ac548f123fcc6eebe7973c8a4500651955a500673e19649c10909b051ef18c08828de79e178096261b4c3169c50015389bba0478bf97610f7213fc164c370974ff59af71fcf7e3da5536ef5a1668edbcf156f0fd3c945373fb5dc1c9a6186492c2287744721f599cd4fb470b85efdbc10e10b3e26b2429a6995974f60522f4f897077de82268c3c3c4c2ebfa2d5c92c144865eb2034a91595dd4e4a21cc389ddac89cfa96d8e9329459a6e5edafd9f4ac1ecae95f9449e7210b0af9c4d2f16abee578ad709db6928479adc6cc0714f759d7f43412e7c2139b9c3d002fee3526734be175", @@ -132,8 +132,8 @@ ], "prep_shares": [ [ - "0bc6f29eb752bdfb3d51b2d0deffe1ab6e16e7902f76f6270338cd16c063c8c0", - "0bc6f29eb752bdfb3d51b2d0deffe1ab6e16e7902f76f6270338cd16c063c8c0" + "08b013261b93d7cad0fd4d78b8ab88d700e20e4c99a725cac93c4da0ab5f2f1e", + "08b013261b93d7cad0fd4d78b8ab88d700e20e4c99a725cac93c4da0ab5f2f1e" ] ], "public_share": "8d038031b3e41fc4b2fe2a3f77de06db7fe0806225f5601afc6f1578ceb8a6d174c50c4eecaffdf4f2310f168d03c5a4cbfc4c3ed6bc04479d05151e4f21be576a880c8ec3143a6b9fb9509d7d0658fc05dc149b0a3cb2046aef8e96793a0ac548f123fcc6eebe7973c8a4500651955a500673e19649c10909b051ef18c08828de79e178096261b4c3169c50015389bba0478bf97610f7213fc164c370974ff59af71fcf7e3da5536ef5a1668edbcf156f0fd3c945373fb5dc1c9a6186492c2287744721f599cd4fb470b85efdbc10e10b3e26b2429a6995974f60522f4f897077de82268c3c3c4c2ebfa2d5c92c144865eb2034a91595dd4e4a21cc389ddac89cfa96d8e9329459a6e5edafd9f4ac1ecae95f9449e7210b0af9c4d2f16abee578ad709db6928479adc6cc0714f759d7f43412e7c2139b9c3d002fee3526734be175", @@ -194,8 +194,8 @@ ], "prep_shares": [ [ - "ad47c82dc356b1088a1f800db0b2241297b80f3aabf5298f0cf84de046cb8926", - "ad47c82dc356b1088a1f800db0b2241297b80f3aabf5298f0cf84de046cb8926" + "93aa1ea5db60044dc07cfa56c058fe9f82e56f011ce42072a48b6574184b8cc5", + "93aa1ea5db60044dc07cfa56c058fe9f82e56f011ce42072a48b6574184b8cc5" ] ], "public_share": "7d038031b3e41fc4b2fe2a3f77de06db7fe0806225f5601afc6f1578ceb8a6d174c5848d58535ab915bafb428087a2f62dbc76138f52a253028dda7eae3b502b33a9e821410b02d88a837bc1be5f59b920e4149b0a3cb2046aef8e96793a0ac548f123fcc6eebe7973c8a4500651955a5006024a26201bd34c0c4a4cdc45998b19adf4c9f946b4430a94eee7e5347e4fd8ca08c7752a400682f85f764f00e454aa8e1fcf7e3da5536ef5a1668edbcf156f0fd3c945373fb5dc1c9a6186492c2287744721f599cd4fb470b85efdbc10e10b3e26b2429a6995974f60522f4f897077de7f7b07549a8dc1b8aab05ba555010958751c39bbd2be9c8207b8ebe22fbc59eecd318a107e2606fe4be6c1cbfb534c5dcffb0bdefdab1e463a32e237453b5c563fc296a049fe4876f4c7eb407a2b965a8661740929d1f3cb67f6a88acfa6603c", @@ -256,8 +256,8 @@ ], "prep_shares": [ [ - "7e72a4ee8fc1708118ef8c59c98e610f6deec6758c348a7de5249df47260c2db", - "7e72a4ee8fc1708118ef8c59c98e610f6deec6758c348a7de5249df47260c2db" + "579fbb066a904fe34314d993aea5cb73042f9bb1192d83ad90e7d7a55692cbeb", + "579fbb066a904fe34314d993aea5cb73042f9bb1192d83ad90e7d7a55692cbeb" ] ], "public_share": "7d008031b3e41fc4b2fe2a3f77de06db7fe0806225f5601afc6f1578ceb8a6d174c5848d58535ab915bafb428087a2f62dbc76138f52a253028dda7eae3b502b33a916e5a7207c22876c3e8651e6ec087889149b0a3cb2046aef8e96793a0ac548f123fcc6eebe7973c8a4500651955a5006024a26201bd34c0c4a4cdc45998b19adf4c9f946b4430a94eee7e5347e4fd8ca85fb7348903670f480514fbeb9082d791fcf7e3da5536ef5a1668edbcf156f0fd3c945373fb5dc1c9a6186492c2287744721f599cd4fb470b85efdbc10e10b3e26b2429a6995974f60522f4f897077de7f7b07549a8dc1b8aab05ba555010958751c39bbd2be9c8207b8ebe22fbc59eecd318a107e2606fe4be6c1cbfb534c5dcffb0bdefdab1e463a32e237453b5c56f26b55fc7fa6e4e7ea335244210e9dc2033fdaccd3beb6d9c970e326344c9c08", @@ -318,8 +318,8 @@ ], "prep_shares": [ [ - "c2fe3f3d30d0e7117847c8764660ba072000d16a73cea13bd41ae6b1f47b6135", - "c2fe3f3d30d0e7117847c8764660ba072000d16a73cea13bd41ae6b1f47b6135" + "fb4d5e0dcbcd577640e4afab8880184b0b3046022c78da1cfefb5ecc7a8b5a52", + "fb4d5e0dcbcd577640e4afab8880184b0b3046022c78da1cfefb5ecc7a8b5a52" ] ], "public_share": "f1008031b3e41fc4b2fe2a3f77de06db7fe06eb6ffd9b0e2083236efcc45c94d7ca7c061c2d66fafdc0b34509f1ee246cbb15e5ac395c89a2db8dbb05470e32bb53f2e5dce6ec3fc1614aeae2cc0abde9ed7149b0a3cb2046aef8e96793a0ac548f162d5e495135c2e58052f8f36198892949f86b8b81414971f05f924425ae428b5a936fed7a48b510d19fd09bbfab24426f53efa61f0150248095da69d5a7c1f4f1fcf7e3da5536ef5a1668edbcf156f0fd3c945373fb5dc1c9a6186492c228774054291117c18b81662a9088383ee06b10e90164cd82e94d2b5ad07dc2ae07ab1b861d103b3ec7fb911023c394b0bd14698b3910ef1d5fd790320674116b9355f3778591f096266f48a2de6414a003ff2721f924ca54dd4d7c5ce3d1eae38d8370869cff496518a2d0aa3303977d5daf465ff518c978ab6e167d16816f88efc55", @@ -380,8 +380,8 @@ ], "prep_shares": [ [ - "a67d267d46babd82774a4784ccb33925c00018a9c535a6df7c2e6794a2dd4eb9", - "a67d267d46babd82774a4784ccb33925c00018a9c535a6df7c2e6794a2dd4eb9" + "a56754c9117a51c30534afb5894e4845f061e2a50bc5eb3b8e24b4465410f50a", + "a56754c9117a51c30534afb5894e4845f061e2a50bc5eb3b8e24b4465410f50a" ] ], "public_share": "31028031b3e41fc4b2fe2a3f77de06db7fe06eb6ffd9b0e2083236efcc45c94d7ca7c061c2d66fafdc0b34509f1ee246cbb18481284d0d1422caa93c58f805ae12fc96571eb833cf5d83fb68cbb285da472b149b0a3cb2046aef8e96793a0ac548f162d5e495135c2e58052f8f36198892949f86b8b81414971f05f924425ae428b556e4139b9825e7e74c4196275f57f2fc35eb52f72c55e93e3193770130eeba061fcf7e3da5536ef5a1668edbcf156f0fd3c945373fb5dc1c9a6186492c228774054291117c18b81662a9088383ee06b10e90164cd82e94d2b5ad07dc2ae07ab1b861d103b3ec7fb911023c394b0bd14698b3910ef1d5fd790320674116b9355f384805f18cca0e14c8327d5bfa82ff97dba54bc303dc21396e9b7349f4fed3663944c431225ef122e692349ac63e7346117ad2ff85ce46879ce73a37fb41a748", @@ -442,8 +442,8 @@ ], "prep_shares": [ [ - "a67d267d46babd82774a4784ccb33925c00018a9c535a6df7c2e6794a2dd4eb9", - "a67d267d46babd82774a4784ccb33925c00018a9c535a6df7c2e6794a2dd4eb9" + "a56754c9117a51c30534afb5894e4845f061e2a50bc5eb3b8e24b4465410f50a", + "a56754c9117a51c30534afb5894e4845f061e2a50bc5eb3b8e24b4465410f50a" ] ], "public_share": "31028031b3e41fc4b2fe2a3f77de06db7fe06eb6ffd9b0e2083236efcc45c94d7ca7c061c2d66fafdc0b34509f1ee246cbb18481284d0d1422caa93c58f805ae12fc96571eb833cf5d83fb68cbb285da472b149b0a3cb2046aef8e96793a0ac548f162d5e495135c2e58052f8f36198892949f86b8b81414971f05f924425ae428b556e4139b9825e7e74c4196275f57f2fc35eb52f72c55e93e3193770130eeba061fcf7e3da5536ef5a1668edbcf156f0fd3c945373fb5dc1c9a6186492c228774054291117c18b81662a9088383ee06b10e90164cd82e94d2b5ad07dc2ae07ab1b861d103b3ec7fb911023c394b0bd14698b3910ef1d5fd790320674116b9355f384805f18cca0e14c8327d5bfa82ff97dba54bc303dc21396e9b7349f4fed3663944c431225ef122e692349ac63e7346117ad2ff85ce46879ce73a37fb41a748", @@ -504,8 +504,8 @@ ], "prep_shares": [ [ - "a67d267d46babd82774a4784ccb33925c00018a9c535a6df7c2e6794a2dd4eb9", - "a67d267d46babd82774a4784ccb33925c00018a9c535a6df7c2e6794a2dd4eb9" + "a56754c9117a51c30534afb5894e4845f061e2a50bc5eb3b8e24b4465410f50a", + "a56754c9117a51c30534afb5894e4845f061e2a50bc5eb3b8e24b4465410f50a" ] ], "public_share": "31028031b3e41fc4b2fe2a3f77de06db7fe06eb6ffd9b0e2083236efcc45c94d7ca7c061c2d66fafdc0b34509f1ee246cbb18481284d0d1422caa93c58f805ae12fc96571eb833cf5d83fb68cbb285da472b149b0a3cb2046aef8e96793a0ac548f162d5e495135c2e58052f8f36198892949f86b8b81414971f05f924425ae428b556e4139b9825e7e74c4196275f57f2fc35eb52f72c55e93e3193770130eeba061fcf7e3da5536ef5a1668edbcf156f0fd3c945373fb5dc1c9a6186492c228774054291117c18b81662a9088383ee06b10e90164cd82e94d2b5ad07dc2ae07ab1b861d103b3ec7fb911023c394b0bd14698b3910ef1d5fd790320674116b9355f384805f18cca0e14c8327d5bfa82ff97dba54bc303dc21396e9b7349f4fed3663944c431225ef122e692349ac63e7346117ad2ff85ce46879ce73a37fb41a748", diff --git a/src/vdaf/test_vec/mastic/04/MasticHistogram_0.json b/src/vdaf/test_vec/mastic/04/MasticHistogram_0.json index 6d89d999..02b4f533 100644 --- a/src/vdaf/test_vec/mastic/04/MasticHistogram_0.json +++ b/src/vdaf/test_vec/mastic/04/MasticHistogram_0.json @@ -24,7 +24,7 @@ "prep": [ { "input_shares": [ - "000102030405060708090a0b0c0d0e0f1b190a31573f94a3ff5b5ed612f50d02d461052ad4df91ac91302eff7f3f22563650a42742a70c41dfd8711173eb4a40c8b4c682e8a2a29f16cf82b6c3d05ef784a864bc37c794ed207f7e584577f1c03063db766543615570801d096f9356da67f8b17d28e32f5213e06c3d8c2007c22c9177aac9fc4b6540f2aefc7874cfd77a682d031ab692054c05ec58b0448968859d946b63dceac2a27119429f87a67bf5783e39fd089933fa9b2dc9598bfb25606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f1ff08c44c74df85378ff5da84b83ebd2848f6620f3fe286bf21d277851282cdb", + "000102030405060708090a0b0c0d0e0f1b190a31573f94a3ff5b5ed612f50d02d461052ad4df91ac91302eff7f3f22563650a42742a70c41dfd8711173eb4a40c8b4c682e8a2a29f16cf82b6c3d05ef74c4b6e26b3f88357635787854d2837ef574542fac51296e37a01dc19540faca992e5e9fbcf9ae9d8485f3e3ebbca69452c9177aac9fc4b6540f2aefc7874cfd7b2c523999e84a39b092de32ba893433a5ebb2de8020db63498f05a31ba0b51acca8b06bb5551dfacc41c5cc82ae198a2606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f1ff08c44c74df85378ff5da84b83ebd2848f6620f3fe286bf21d277851282cdb", "101112131415161718191a1b1c1d1e1f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6679cc979fa30684efd4027510ff58f56d3c1d50cf7e9b9eb2e46354f16b674a" ], "measurement": [ @@ -62,12 +62,12 @@ ] ], "prep_messages": [ - "64e9048bfa71ca7cc29a358ed476c7ca2af1d667cb53b1af1b543c2ad6117714" + "355d67d51eaf409442d63141ca99292dd063cc89ce24940af1fc5f73229ad172" ], "prep_shares": [ [ - "da7a9d30911fa0532e6e674875bae131db031d2a6a9977c1d7153228f05265a56679cc979fa30684efd4027510ff58f56d3c1d50cf7e9b9eb2e46354f16b674a8d1d240afc43c4417e46872b273a885af8798ff07b2a88e8cb4e03d94964be27c7eb84e5f0366d824e2480e053097113739359cc73bbf83abc48cb43dfdbf43e22955ad6463e273d6f4dc3368ae00bb66f973e624f530c26fe1db1485cdb632f", - "da7a9d30911fa0532e6e674875bae131db031d2a6a9977c1d7153228f05265a51ff08c44c74df85378ff5da84b83ebd2848f6620f3fe286bf21d277851282cdb74e2dbf503bc3bbe65b978d4d8c577a5d2ca27028cf6a55e0c0168cb2bd68735cf4e9c5205d755cd092d7c482e7202efa5fe9441c46353e221d7abf88594b1ce7f557646c775df3217c560ea114f254f783fa9275229042d61f2defc752e1207" + "0b2c6c1fe61d696d6dedec7badb0a31747880014aacc6459ddb9db4909d64c266679cc979fa30684efd4027510ff58f56d3c1d50cf7e9b9eb2e46354f16b674a8d1d240afc43c4417e46872b273a885a324976797dc80b1f91adbba17a163272c7eb84e5f0366d824e2480e0530971134737391f58128f3578d67cf3dbbeab2422955ad6463e273d6f4dc3368ae00bb6cb2ff8077159c304d9dcd36cf3a7bbd3", + "0b2c6c1fe61d696d6dedec7badb0a31747880014aacc6459ddb9db4909d64c261ff08c44c74df85378ff5da84b83ebd2848f6620f3fe286bf21d277851282cdb74e2dbf503bc3bbe65b978d4d8c577a599fb40798a5822282ba2af02fb2314ebcf4e9c5205d755cd092d7c482e7202ef68833eb8b1828a95fe094ff66085a27e7f557646c775df3217c560ea114f254f783fa9275229042d61f2defc752e1207" ] ], "public_share": "0e30118b55bf77ff34817d80025c5c736b1ee2188425350e71cc1dc5a779de3e6ff1676312c362381919b2713cf3d65c6b8292f0d3c5d16ea7e1e74d3746a519e300d32bf9633b4251c048e7f6cdc71ed819ba5f88373856a9a1585d7379ba7f9f20253982bf18b6c7f2455e089f4aa1f8fc5e3a8401fe1b3f6fda0726d672f55f6a6225aed0bb419c3efa5a4060278e9f02a185e3eba238ec8e7cf8395eadd3adafa9d2b0281cbcec50a1cf3fa2dad0e70f557d1bd7033800aac382b9814edb82796f086f2d82ba5c736f5c7854b6fbe6605a571bdabcacce7acd94b9c87b314bead370e09dc18618bd5cc3c8825338a085d4790108cbeb9ecdb914466664cfa0", @@ -75,7 +75,7 @@ }, { "input_shares": [ - "000102030405060708090a0b0c0d0e0f1b190a31573f94a3ff5b5ed612f50d02d461052ad4df91ac91302eff7f3f22563650a42742a70c41dfd8711173eb4a40c8b4c682e8a2a29f16cf82b6c3d05ef755f1f76d4c602a387e8951df359e8ea45940a66147bb7ff60ec51be2998f7c8a4d72f56123508958bc56bccf50487cca2c9177aac9fc4b6540f2aefc7874cfd7a91f9a51051dfdbaeefa18d2bf1dec845cc0c9808164cc21042d1b69748b80cb0ffffa54029c3f2d5125de369563861d606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f19f63e6dd9448ce253d1586347bdbf21ac5aac8d1c20f23815ecc54eb4fecee0", + "000102030405060708090a0b0c0d0e0f1b190a31573f94a3ff5b5ed612f50d02d461052ad4df91ac91302eff7f3f22563650a42742a70c41dfd8711173eb4a40c8b4c682e8a2a29f16cf82b6c3d05ef7d9f5b3697bda8361c0814f5de83d4b2c8f9830c45738643d82bedf2938597b8086c34d0fd0fc64c0065297add641324b2c9177aac9fc4b6540f2aefc7874cfd7251bde55d6a2a391ac021b540d7e2ffd26683f1e71e7e7da90335721d6c181d5d6ada2a755ef63c5062a03590f6ad09c606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f19f63e6dd9448ce253d1586347bdbf21ac5aac8d1c20f23815ecc54eb4fecee0", "101112131415161718191a1b1c1d1e1f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f761516be946546b487df4d2793729b4cad0a7b18ece4b5d3885b3354e34dd8f5" ], "measurement": [ @@ -113,12 +113,12 @@ ] ], "prep_messages": [ - "0f5d03e9cc1521b1f502dfcf56073d91591b98908a6e70c2b9515f9dccb2f2c2" + "5304fc58bde6782dee8b2852a748ce19457a434a232bda334f55f92fac1c019c" ], "prep_shares": [ [ - "d6a16ea13b52e96f982669bfb50c11b4acc89bc8638de8af45220486c6122699761516be946546b487df4d2793729b4cad0a7b18ece4b5d3885b3354e34dd8f5a83944bcb3656eaf883a692698b4bf813fd2af65a90a7c1e611b2b920740a2a1e85af9ec0e44be4651e6d5f1e932756dd133f78f2746c910ff8611bd3476f727216acee297f14fe805592aff1f4ceca71eb5fac3d62a5bf82a47d67478d649da", - "d6a16ea13b52e96f982669bfb50c11b4acc89bc8638de8af45220486c612269919f63e6dd9448ce253d1586347bdbf21ac5aac8d1c20f23815ecc54eb4fecee059c6bb434c9a91505bc596d9674b407ee9aede9fdbb3cbfc820ae9fc50abc34a5efec07e8e9eb4714dbac2886b9bc9bdc2cbd99dbac59cb88eb6120d2e18693495d5098b1597be158ddf2f58aa614d13783fa9275229042d61f2defc752e1207" + "474c6a1bb6737766586761b21156e6e838833d32257e67dc4365164e2355f2df761516be946546b487df4d2793729b4cad0a7b18ece4b5d3885b3354e34dd8f5a83944bcb3656eaf883a692698b4bf817f2ea2fe9d94d6c80a18da829261b7e5e85af9ec0e44be4651e6d5f1e932756d63c1b7114be9c722a6906547e165a30e216acee297f14fe805592aff1f4ceca7745704bd2b1f6dfa8d91355267e72fda", + "474c6a1bb6737766586761b21156e6e838833d32257e67dc4365164e2355f2df19f63e6dd9448ce253d1586347bdbf21ac5aac8d1c20f23815ecc54eb4fecee059c6bb434c9a91505bc596d9674b407e58e3c8c9d0d1c0ca3cf3fde212d27fc95efec07e8e9eb4714dbac2886b9bc9bd303e191c97229ea6e7acbe828128bd4d95d5098b1597be158ddf2f58aa614d13783fa9275229042d61f2defc752e1207" ] ], "public_share": "018031b3e41fc4b2fe2a3f77de06db7fe06eb6ffd9b0e2083236efcc45c94d7ca7139b0a3cb3046aef8e96793a0ac548f1f980e043c70626e9f31e3b00ac83699c9f98ab4988ffed0a6bd6b98f40c7e3ad9858ee70db7475912f9e7251a00eb55fac13bad70c908d603bd560051b7b9f1f62d5e495135c2e58042f8f3619889294d4511df162b3c0beed6ebcfeabdbe99076fd406092d3855f50f81fa1d2bf39ddce8680d92c934c8deb1a5ac86b31e7c411474c6505eab2be22f5bdcf9b173b3ce0afadcff718420f50c61959f8f199ad4d1339a3ff4c8913eb9cd68dbbffbea4a0e969f28f3d02f792beb3d3b6f111af6b5d8da4008aee31ad34cf7380cf6d50", @@ -126,7 +126,7 @@ }, { "input_shares": [ - "000102030405060708090a0b0c0d0e0f1b190a31573f94a3ff5b5ed612f50d02d461052ad4df91ac91302eff7f3f22563650a42742a70c41dfd8711173eb4a40c8b4c682e8a2a29f16cf82b6c3d05ef762f9d1ad20d0a58d795cbe6452067d077da488114034ff6c1dca8d052bae8785cf36e49e1bcbc447e6e9ca35d56d3f832c9177aac9fc4b6540f2aefc7874cfd79b17c01131ad81650f28ac4ca3b5fd21385ce7d088eb4cabf527a945e36c75d08d3a0c180a21043e2792cfd0103ec364606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f75cdd16c78b72094aa3d1245de0f6d8d9cf647df7a1b0bf2fce7bc69b0b1f6b5", + "000102030405060708090a0b0c0d0e0f1b190a31573f94a3ff5b5ed612f50d02d461052ad4df91ac91302eff7f3f22563650a42742a70c41dfd8711173eb4a40c8b4c682e8a2a29f16cf82b6c3d05ef7def73a9e7b931c9eb9e0f7bd65d80b217a7cf7d0737e3e89433fbf4588a7bbde4ece8c0fad39809c23d48e18f9293edb2c9177aac9fc4b6540f2aefc7874cfd71f195721d6e90a55cfa372f38fe36e083b84781155a10d8fcfb27705867341770ea363a778b248e9e9a70beeec81c40c606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f75cdd16c78b72094aa3d1245de0f6d8d9cf647df7a1b0bf2fce7bc69b0b1f6b5", "101112131415161718191a1b1c1d1e1f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5fa40e0968dafc98e8a20ba66164b2d681ab4e651299ed39200fa5c089aa80e33f" ], "measurement": [ @@ -164,12 +164,12 @@ ] ], "prep_messages": [ - "5d03c1d719fd1f99f4483fc26cdeee4f2c8dc847a4d1f0c7fb4b8b54080a9f4e" + "31ea146ae4efc688f3dfa965a01c2b72f7350732e844e5d8dc9ab8c47c9e7864" ], "prep_shares": [ [ - "2e479ac826e28c890edf51cc3fc804e624db734da1db2f3ed841f5d7779b29e8a40e0968dafc98e8a20ba66164b2d681ab4e651299ed39200fa5c089aa80e33fa83944bcb3656eaf883a692698b4bf814bb70bc919418bcead36456e28e2a5ab98799220b6186eaf97357243bd854096f0c24b91040d5d7fbb54d3cce664cace714b35aff01ca07fbf098ead4cf9207f132dca1c1d3842f410d0cab09f392e16", - "2e479ac826e28c890edf51cc3fc804e624db734da1db2f3ed841f5d7779b29e875cdd16c78b72094aa3d1245de0f6d8d9cf647df7a1b0bf2fce7bc69b0b1f6b559c6bb434c9a91505bc596d9674b407e808dab29eedfa2780e1926364d58a0b1fec08e1740f554a0c01b8ae5c4f5326c2661bfaea921981eea54a62ed934afeff5123cf263401ee7197e68fb5007e464783fa9275229042d61f2defc752e1207" + "a9d225131b580c31ac76d62bf1f74e1d145375c89be355fd8ba6b02a8cb771fca40e0968dafc98e8a20ba66164b2d681ab4e651299ed39200fa5c089aa80e33fa83944bcb3656eaf883a692698b4bf812db9dfe6d05d1c333b636a89c0cde27a98799220b6186eaf97357243bd854096087338e06e9a358e60e31563bf50d614714b35aff01ca07fbf098ead4cf9207fff51023781b09a1cc43c27fb202c52e8", + "a9d225131b580c31ac76d62bf1f74e1d145375c89be355fd8ba6b02a8cb771fc75cdd16c78b72094aa3d1245de0f6d8d9cf647df7a1b0bf2fce7bc69b0b1f6b559c6bb434c9a91505bc596d9674b407e9e8bd70b37c3111481ec001bb56c63e2fec08e1740f554a0c01b8ae5c4f5326c50d01f2fcae5185ce4861c700a85bb59f5123cf263401ee7197e68fb5007e464783fa9275229042d61f2defc752e1207" ] ], "public_share": "0d8031b3e41fc4b2fe2a3f77de06db7fe0806225f5601afc6f1578ceb8a6d174c5139b0a3cb3046aef8e96793a0ac548f1f980e043c70626e9f31e3b00ac83699c9f98ab4988ffed0a6bd6b98f40c7e3ad9958ee70db7475912f9e7251a00eb55fab13bad70c908d603bd560051b7b9f1f23fcc6eebe7973c8a5500651955a50069b3afabe4ec527f86f939793cc954b805074d3d2e842b04389a258931111010ee55895998b15b0ac593f8a9442ae9b46e9d1b70a571af510387b7a3bac7c997de0afadcff718420f50c61959f8f199ad4d1339a3ff4c8913eb9cd68dbbffbea4adde68e0fd7ed387c66d7892e6bb76802fbf7bcea5df898350bd19c4d4b44b6f", diff --git a/src/vdaf/test_vec/mastic/04/MasticMultihotCountVec_0.json b/src/vdaf/test_vec/mastic/04/MasticMultihotCountVec_0.json index db138c53..5b72474f 100644 --- a/src/vdaf/test_vec/mastic/04/MasticMultihotCountVec_0.json +++ b/src/vdaf/test_vec/mastic/04/MasticMultihotCountVec_0.json @@ -25,7 +25,7 @@ "prep": [ { "input_shares": [ - "000102030405060708090a0b0c0d0e0f51a3e10435dc45a8831f8adc144f31c8590df32df2617dcb742ff598295821af0eb750a579c8174c306867a6b9960c6edbae9b44d4397bd2117023bb01480a4f515cce68024112658cf043112a4492e6d02b96e0ae800b7723aa91e10c666c1dc1ccbed7b28c495d0cf72abc92dcb79932218d1501d7ed76ba48906860d9f1085c49b00c1417452dda52b80352df62b05b10c797a5eeee22b97a0b868d7e5924a26d0f5729d9a63fe7a5c9e4f4ecbdc9606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f52358c332dccef26a1ea7be47c03d16ef6ad0f484c25498cf9a301d833f6cb55", + "000102030405060708090a0b0c0d0e0f51a3e10435dc45a8831f8adc144f31c8590df32df2617dcb742ff598295821af0eb750a579c8174c306867a6b9960c6edbae9b44d4397bd2117023bb01480a4f78f98232d619f42a8e8b393a062098af9a055ed03d8c097cb0afde6aafd1258f26e98ca02a2a1385e48b3bfc60fa3a8a32218d1501d7ed76ba48906860d9f10835acfb42403e6367d8b7c2da75035de79236ffa716e3f01d1075befcea12a0b23d51418eb13bdd170f11b9a426cf3ad9606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f52358c332dccef26a1ea7be47c03d16ef6ad0f484c25498cf9a301d833f6cb55", "101112131415161718191a1b1c1d1e1f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f5988e31ac1ed2ad49341ac47f78853d7a0f5420dd541699b0d01ee711bfa9f0d" ], "measurement": [ @@ -68,12 +68,12 @@ ] ], "prep_messages": [ - "6debfd8888c53025640ab3f2b238877a9677c54aa6ff58911117dbc07fc91aca" + "53d0e81ab0ba4b11f1ed4eead0a517bfbba150929534b5c47668bf5bbef129bc" ], "prep_shares": [ [ - "50b2da6f2e94dd1f91af29e84f210a253852c77c29c734ca94f68664e57ce4df5988e31ac1ed2ad49341ac47f78853d7a0f5420dd541699b0d01ee711bfa9f0da36078a456c7a4f520430db78d0d73645b1d70b7329844a8d19d4c4889fe2d93e4d5302dc4130a56b19af3e55edd0110abdcd1851483b6679e985ecfb4cbcf4c42e7aa92d41308c524107172e0bdf987810b35ec98fc2ff751fe506bb80e1c5d", - "50b2da6f2e94dd1f91af29e84f210a253852c77c29c734ca94f68664e57ce4df52358c332dccef26a1ea7be47c03d16ef6ad0f484c25498cf9a301d833f6cb555e9f875ba9385b0ac3bcf24872f28c9b1fc4f54eb158282c676575aff4f5e9fb00efdd1c2edbc9dd74fbcbc84ebe950b4e82961160470dfef9e443c8868b12c64dd192823503ce2b85ec36a505fd71621007b5cb206b33d805b77a6c6736386b" + "df459f43e3d05962ca0d9e4bc3428e525a168c3a1d23172c3b1c0247b8db645d5988e31ac1ed2ad49341ac47f78853d7a0f5420dd541699b0d01ee711bfa9f0da36078a456c7a4f520430db78d0d7364727928745f9fe845a944c55ac562111ee4d5302dc4130a56b19af3e55edd0110c57f6ba119d13e702c0815443dacc14942e7aa92d41308c524107172e0bdf987b44bc79bf70726e48b5ce8367866c219", + "df459f43e3d05962ca0d9e4bc3428e525a168c3a1d23172c3b1c0247b8db645d52358c332dccef26a1ea7be47c03d16ef6ad0f484c25498cf9a301d833f6cb555e9f875ba9385b0ac3bcf24872f28c9b801c7169dddd4cf4aaa7740d568228e100efdd1c2edbc9dd74fbcbc84ebe950bbd88624443def801ab5146d0126b92c84dd192823503ce2b85ec36a505fd71621007b5cb206b33d805b77a6c6736386b" ] ], "public_share": "0e30118b55bf77ff34817d80025c5c736b1ee2188425350e71cc1dc5a779de3e6ff1676312c362381919b2713cf3d65c6b8292f0d3c5d16ea7e1e74d3746a519e300d32bf9633b4251c048e7f6cdc71ed81aba5f88373856a9a1585d7379ba7f9f20253982bf18b6c7f2455e089f4aa1f83856e6fe88bf5655e2b3d1cae79dcd2437399a0e99ec686fa42b4361830564dcfc5e3a8401fe1b3f6fda0726d672f55f6a6225aed0bb419c3efa5a4060278e9f02a185e3eba238ec8e7cf8395eadd3adb0a9d2b0281cbcec50a1cf3fa2dad0e70f557d1bd7033800aac382b9814edb82761b4e02d6d9cc651db0e014e3e106bb161eb3955c09e5e6598d712ac1368e78796f086f2d82ba5c736f5c7854b6fbe6605a571bdabcacce7acd94b9c87b314bead370e09dc18618bd5cc3c8825338a085d4790108cbeb9ecdb914466664cfa0", @@ -81,7 +81,7 @@ }, { "input_shares": [ - "000102030405060708090a0b0c0d0e0f51a3e10435dc45a8831f8adc144f31c8590df32df2617dcb742ff598295821af0eb750a579c8174c306867a6b9960c6edbae9b44d4397bd2117023bb01480a4fcca4a041bc8a2910614a5d9cf04fe96de12d98b9b0b454501251843a155f7c48362f81381eff6df9c47bd30a1738df1032218d1501d7ed76ba48906860d9f108e000de335acd2d8221f99e788bd30b294b0ec5bea3baa549aed3182d858549f92c0b4df6bd6682a34a21219670919652606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7ff9888742c67c90acb2402a36da7287c2afce40a2b4b50832fd6224982888bcda", + "000102030405060708090a0b0c0d0e0f51a3e10435dc45a8831f8adc144f31c8590df32df2617dcb742ff598295821af0eb750a579c8174c306867a6b9960c6edbae9b44d4397bd2117023bb01480a4ff3988d4c316577444d862a3d3981709947d9942e667f6053ec60f064843d4a4495885253f493b41ef287dd97ffd8668232218d1501d7ed76ba48906860d9f108ba0cf128e5f2df4d19bdd1d742a284fde562c849eeef9946d4c3ac0216a77bfdceb17bdbe7d13b7e0115170988f00ee1606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7ff9888742c67c90acb2402a36da7287c2afce40a2b4b50832fd6224982888bcda", "101112131415161718191a1b1c1d1e1f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5fb48b9dbe706c287c03df5799777fafc0ea378f22556d191266785cc81ab47b5c" ], "measurement": [ @@ -124,12 +124,12 @@ ] ], "prep_messages": [ - "7d3e7039ef3beb9524c1082284223f8a51c8fc1fe4c3c74e14cc2d065781384e" + "40918142322fed3926bc0911bccc92c9d71efdbb1cda778feb629d07b6b9f767" ], "prep_shares": [ [ - "065101cc7c5581e90cc1ecb19ed234e4a0a19cc32d735f9f71b66a989b91b7deb48b9dbe706c287c03df5799777fafc0ea378f22556d191266785cc81ab47b5c5c674649f7a17c6a27f03d696a5ca868fddce55a35c9c7069e0eeb8dce4d4b33e0e9aaeac1f815426773612fccba5d00230514b014bce44a643497a22e48d6349160750d2c35b08275375058aa10378b2f843ded66bfbd77a78b2369690ea51f", - "065101cc7c5581e90cc1ecb19ed234e4a0a19cc32d735f9f71b66a989b91b7def9888742c67c90acb2402a36da7287c2afce40a2b4b50832fd6224982888bcdaa598b9b6085e8395bc0fc29695a35797601528696c40258c9bf4b0b40104d32904db635f30f6bdf1be225e7fe1e0391b8ad490b3ebe366e007a451e146e69a5bfe57c807dee1256e34c557bf3baa345f1007b5cb206b33d805b77a6c6736386b" + "079db08900c13b548ce986d4914ac4930b2e5185025b812879e248678540e865b48b9dbe706c287c03df5799777fafc0ea378f22556d191266785cc81ab47b5c5c674649f7a17c6a27f03d696a5ca8685d3af9dab3f272622e99eac8d715de13e0e9aaeac1f815426773612fccba5d00c74d4fa232f38b03c8ed6e49b46583609160750d2c35b08275375058aa10378b796f0f78fadac82ba63ffe1a798ec6e7", + "079db08900c13b548ce986d4914ac4930b2e5185025b812879e248678540e865f9888742c67c90acb2402a36da7287c2afce40a2b4b50832fd6224982888bcdaa598b9b6085e8395bc0fc29695a35797b7a6ff17f4099eaea25451410bc7cf0804db635f30f6bdf1be225e7fe1e0391b6c2e564a77ce8fc3c31dc51b95a78af4fe57c807dee1256e34c557bf3baa345f1007b5cb206b33d805b77a6c6736386b" ] ], "public_share": "018031b3e41fc4b2fe2a3f77de06db7fe06eb6ffd9b0e2083236efcc45c94d7ca7139b0a3cb3046aef8e96793a0ac548f1f980e043c70626e9f31e3b00ac83699c9e98ab4988ffed0a6bd6b98f40c7e3ad9858ee70db7475912f9e7251a00eb55fac13bad70c908d603bd560051b7b9f1f28a1929c6b1601a63c90ade10f5d7e9532ba24753d7f08988c8803fe3fe9bf9a62d5e495135c2e58042f8f3619889294d4511df162b3c0beed6ebcfeabdbe99077fd406092d3855f50f81fa1d2bf39ddce8680d92c934c8deb1a5ac86b31e7c411474c6505eab2be22f5bdcf9b173b3c01c266ac9893b71376bedb6f433dc8db32d467ff73168c8c09100d2f786fd4b9e0afadcff718420f50c61959f8f199ad4d1339a3ff4c8913eb9cd68dbbffbea4a0e969f28f3d02f792beb3d3b6f111af6b5d8da4008aee31ad34cf7380cf6d50", diff --git a/src/vdaf/test_vec/mastic/04/MasticSumVec_0.json b/src/vdaf/test_vec/mastic/04/MasticSumVec_0.json index 3931d951..663b5c7d 100644 --- a/src/vdaf/test_vec/mastic/04/MasticSumVec_0.json +++ b/src/vdaf/test_vec/mastic/04/MasticSumVec_0.json @@ -18,7 +18,7 @@ "prep": [ { "input_shares": [ - "000102030405060708090a0b0c0d0e0fe17870a3c2662f845fe7bb009eb69adc1e19e27b2a4ded86376bf3f91b6d481b4b4f3ff582043685fec47bd2a68443dfc7fb5c40a35101ab3b647084629809813a163e6c1fc80bf9946c876ec52cead4997bcea75a86585883287590b61c4e3e53ad3666c4a2d2e5aab46766c7673e0bee336a28bda0f239a4171db8364b94b374c9e6c118c4db50a3a31817e54207fe606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7fb65b3467a80c2c9463306f865a3e286efa8cf888bcfc8bc2a0a3c949e431a6fe", + "000102030405060708090a0b0c0d0e0fe17870a3c2662f845fe7bb009eb69adc1e19e27b2a4ded86376bf3f91b6d481b0eb8a4faf799bd94f1c4efd00ffa5909d0c0794dd6294dd62690f091377ac82584992e65a0425054240c706250d2081b997bcea75a86585883287590b61c4e3e9044d1604f0d4bd6b7b4f3675ef227e1e46e4d1b8ac8a60ed5eb9caa6169d50e2946f6c8974997f52f0430235a9de8b7606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7fb65b3467a80c2c9463306f865a3e286efa8cf888bcfc8bc2a0a3c949e431a6fe", "101112131415161718191a1b1c1d1e1f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5fe5f8a3048906eb1ffc00a65aee4b5666d791da455536f799fcc1ed0ff4784095" ], "measurement": [ @@ -62,12 +62,12 @@ ] ], "prep_messages": [ - "73172e209d669b084a166fb9ea302bef13f471b0e65b4840b87e9a445f2fb5a2" + "66e5d2f205c6d9ddcedcf8468c7746372af5e121e064e9d36fd7fb5b2a3ce37b" ], "prep_shares": [ [ - "d19b360b521e772b9bbbbcf95afeceaa84742fb72113096667b6b5c2280c266be5f8a3048906eb1ffc00a65aee4b5666d791da455536f799fcc1ed0ff4784095df6aa7d3e2f0e5b944b807585055a879cb326979fd4c0f1873f2ee0008eb134929f150f0421d01edf59c9e517c11a97a606d8c26e8a5c33ca6c3a26823d51f93", - "d19b360b521e772b9bbbbcf95afeceaa84742fb72113096667b6b5c2280c266bb65b3467a80c2c9463306f865a3e286efa8cf888bcfc8bc2a0a3c949e431a6fe2295582c1d0f1a469f47f8a7afaa5786b4fdfd0a2c5fc6f551ceced8411fe28ead2c86434296538b7e188847ca1539ad24c2e939cf9c47e6f6088e485a86ecfa" + "b7c584e97fffa319f42e7806fc11a107405e5a323109b758b526ea378248861be5f8a3048906eb1ffc00a65aee4b5666d791da455536f799fcc1ed0ff4784095df6aa7d3e2f0e5b944b807585055a879d2983caff33b2fc75efbd15081a031be29f150f0421d01edf59c9e517c11a97a17babce4a4409dea83a836401f4ebfe8", + "b7c584e97fffa319f42e7806fc11a107405e5a323109b758b526ea378248861bb65b3467a80c2c9463306f865a3e286efa8cf888bcfc8bc2a0a3c949e431a6fe2295582c1d0f1a469f47f8a7afaa5786b811ad8b3e594feff0bb38a3ac585987ad2c86434296538b7e188847ca1539ad24c2e939cf9c47e6f6088e485a86ecfa" ] ], "public_share": "124638c630118b55bf77ff34817d80025c5c736b2e06468c12c19b02abfeeaa474bb89aa607bc9d35f344fdc176c403b423935a786b66439929920f390f0931b48eb35c37af643d004228b81d9e86528a77f64b82e4dcaa540c0d36fee1f36fe7a211850dc6d60a5984ec4ab77b0e6e7575fc76fe2e1b915a66a818e7c4fa3ab3b21876b425582120d665c653ccaf31d3ee9f321b6376366bae81fe0e82caf2b1601d6deb8c95643c4a377a782f28510f29ef3e2185a033ec19be5fc0c877b25155cd123aa793e0cd81e9a1873fdad2711ae0352c2268e54fafd25be5bd4567ee4454ee4567d14977fdafc45beadd08c679613c6cadbddac075187203ab6bddf8f134ae8f1676312c362381919b2713cf3d65c6b8292f0d3c5d16ea7e1e74d3746a519e3ffd22bf9633b4251c048e7f6cdc71ed81aba5f88373856a9a1585d7379ba7f9f5ace328399aa96a3f7b0010cc6a5517be67b78ba8ea87593e54dc5e5e384b8a88e2d117cae42aa78670493364ef127cdb2ed8b4f00b923aa0e27c28f760ab7db229a4d45dd399f969592e7e01657b0a7ff1fa4adf87ab1fc52aa0b9c46a462113143098f20c1a7b2cede22e3ae171e3385f9a775cba3b36d74ce6fcf3aa09e6d6fff70466b39ce7a4c900ffbbadc8cfd334d505907dc4ac317326ace42f5092c23966c779bc663d82e969be06a9a3273300a4d27485f73f14e44d126bf87a25ed48ae1fedde6961320d580a09466e8f656d9019be6072ef4885e24489064f759dc3dae091c49fc8b3e8cf9e2f82b51dff392c8122737a933207b23f4d1a72569c22157dbd1676ddbcc3eba4f61e04e665114d5833a34dd6e889fa9ccf705b20d71054e65a8aa8bb6553f5844eeda099d796cbde3b0ce3d76c60c98f5338c0211b7c79bd3b33b41d547fb2eb3f439222c66a506693d2ad9b764e135ea71bfd3a57d7935695678f70205a607b16a82d8bd6cf6360485e21a33300c8bee1f77179896d085cbca58f4bf257769bcf40b55b3965492a5768086a4764588134d5dcae8f5f0105c4466795a7f2d6a994a06a8fcd3930eda8338da27f1f3ffe7ab66aa5c8955b5d2959fb41e27ec269917c8009ae12110cf68d7bccd3763c4069a804c7e44e967381559b47427c6fc3eba36c4d8a572f8cd5d70195a2a8786e8e3ac1536b24df44adb4cfdc21b29b1359c219b934d67b6533631d702da2ce8a031d0b3893cebb1ab8e5896d4580de93a9387a006726f63cf016d4d4d0abc94cb9e5e74f0d375fd75bf5581ed2f6971790846bc94dd5fe2da070e321c483ecc012f47348d0e795f5a3b6b2667c484d0f168bf2dd4de019a37bf2844173463db7ed4e8e44bbce08ffafff60b9a7d231ea15595b2a39cc169206f5c2c2393e09c441344ad710340d86f2d5d5ee74fa531cf839444f4a5bd059b24b0a0fea20ffbcab0e7ae7c180659e3bb35ce7d79c29cd7f1b45801503a08a7f49a5785cb824a74b843bc0b2ccd39eabbf96cf9a44afe1eb68bb3cd757c16457f04546478c78723f1f8759a5851c4bd73f39fbaf6228b7f67d8742835bb49c8488acae8412dca96ce02ca05ad4366f361b2dd8c6aba69915bf37437443650044837925ef07e6f7242ecf0bb5b94903bf59cc16088826203c06a5c085eb080d6bf064ccf2d2c049f1048dd98b728f21319a72aa1102eb3c0dd8c60b5d6821498453feae2dfa39b2746c38b972af6573feb91400fccec16ba06f67a5c3bd4d5b11b903137a4e9d5e912a594b74c2886a42e2bd9a1a6a3ced449ea0c476fdcdc02dfc7124200a7708bba0ba069b5d1e7cc38cc34f5dd10a11d9c06c10db50043c32c85bb7ac55634f214e49db5852873ab9f0b2da8e0a1d1ecf6da797a47a87acafdcf651bcbce8b9c02f54862320a2e1ac2bdd5e06d28c807fc395674f1c60597cde4d6db39ff4687870c0e7c47e8007fd3bc3b7c2ab72c57b4433c129348c016a529a63f2d58d73d27fbbc163b21e342d09a87ba053df5fa1b009606511bbfd7a1015188e756527ee669f8a192c1a5ad8758b4ac11086c0a03d85b6640e97a199b30898c3f75db30d84aabc251bc1ceb97aae403f7188c7652b634e8f951990de2eee55f3d23cca2fcfcaf6e6afc82368c2727acdbf2a7a07b469fe195c45117c8547a8bc323acf8e842b8500d69afeb165f5b4836ef0c0d3b02060c6394d5ddc0883227d894bf6dca479abf7703f9d1e4309938deb095995c9225d7c01390b87b6dadb456652bca78cdd8d673ab5df8dee3437cac5272a7b89248dd34722f7b1273890dff0f2a649a509a86bad95087bc5dddcf9f890cc466e27f03c3f9b1f0c9fea8d0ad03739a365efcb64674fba5321b9394d6be3fc7ab94c361717e6bb920ca2d1293b16ca44f136dfbda58f7246de41b77395cdd22cca29b4058a2e670a80db37d0e174435200ee3d28a6712e67a39a3ced71616228da1a8b6866d0f0b132ed5520802e805bed01c4d27269a3cdc1a2acad4486784274d6493879eb72e992043c7b784be0a1797aeb3", @@ -75,7 +75,7 @@ }, { "input_shares": [ - "000102030405060708090a0b0c0d0e0fe17870a3c2662f845fe7bb009eb69adc1e19e27b2a4ded86376bf3f91b6d481bc8a7295ae0e01a5bf24294098a10fd959f9a35d2aa6ab0a0514c6e7ef5c326bf23f866540e7c4eebbb51806affe4af36997bcea75a86585883287590b61c4e3ed6544c0167c6ed0fb7364f2fe4db845416959196b58743448e2f1fbea31f77758ae7bdd92910995e98be1f1bab8a419c606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7fb65b3467a80c2c9463306f865a3e286efa8cf888bcfc8bc2a0a3c949e431a6fe", + "000102030405060708090a0b0c0d0e0fe17870a3c2662f845fe7bb009eb69adc1e19e27b2a4ded86376bf3f91b6d481bc9ce5a9437af0fca07722304605e1bb12f80087d80b005b9f2adfdd760358c74b4046b393b90987272e29ebe40a43307997bcea75a86585883287590b61c4e3ed52d1bc70ff8f8a0a107c0340e8e663986afbeebdf41ee2bedcd8f6438ae11c0f9dab9f4fcfb4ed7e12d01c769cbbdcb606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7fb65b3467a80c2c9463306f865a3e286efa8cf888bcfc8bc2a0a3c949e431a6fe", "101112131415161718191a1b1c1d1e1f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f4b477c67d4961dc5b6a5f34ae1856787977bdbdb98e06d267e56032ee73ddfe4" ], "measurement": [ @@ -119,12 +119,12 @@ ] ], "prep_messages": [ - "51805b08614ed2d459561461ab35fb6a704fd7c4ed820283e5daa79910cd944f" + "83f50c14130e9b59ea4c43a4d3a23baecc41dc4943f0e5b0714ae410177a3cc2" ], "prep_shares": [ [ - "6b18b551ebf2ad13ce496611755419ea42834694a73f150f9e6f476575675dbc4b477c67d4961dc5b6a5f34ae1856787977bdbdb98e06d267e56032ee73ddfe4df6aa7d3e2f0e5b944b807585055a8797137ae699fe70b3ac77eec6cfb8354f1c432135d1168cd2a5fcffbd7883c3e015e6534f244995df54b82956c2e5b020f", - "6b18b551ebf2ad13ce496611755419ea42834694a73f150f9e6f476575675dbcb65b3467a80c2c9463306f865a3e286efa8cf888bcfc8bc2a0a3c949e431a6fe2295582c1d0f1a469f47f8a7afaa5786e117dd1868243031d13b1176b95ee08bad2c86434296538b7e188847ca1539ad24c2e939cf9c47e6f6088e485a86ecfa" + "061249ee67404b51eb53d9bec9449c95a386676b3d9b98c1ddcc2007dcceeb5c4b477c67d4961dc5b6a5f34ae1856787977bdbdb98e06d267e56032ee73ddfe4df6aa7d3e2f0e5b944b807585055a879820717301252a4b0a7c4c42911905575c432135d1168cd2a5fcffbd7883c3e0158fd6abae81045cd0ce6ebf532c0aacd", + "061249ee67404b51eb53d9bec9449c95a386676b3d9b98c1ddcc2007dcceeb5cb65b3467a80c2c9463306f865a3e286efa8cf888bcfc8bc2a0a3c949e431a6fe2295582c1d0f1a469f47f8a7afaa57864e157951868200788e8660575453db48ad2c86434296538b7e188847ca1539ad24c2e939cf9c47e6f6088e485a86ecfa" ] ], "public_share": "1246380630118b55bf77ff34817d80025c5c736b2e06468c12c19b02abfeeaa474bb89aa607bc9d35f344fdc176c403b423935a786b66439929920f390f0931b48eb35c37af643d004228b81d9e86528a77f64b82e4dcaa540c0d36fee1f36fe7a211850dc6d60a5984ec4ab77b0e6e7575fc76fe2e1b915a66a818e7c4fa3ab3b21876b425582120d665c653ccaf31d3ee9f321b6376366bae81fe0e82caf2b1601d6deb8c95643c4a377a782f28510f29ef3e2185a033ec19be5fc0c877b25155cd123aa793e0cd81e9a1873fdad2711ae0352c2268e54fafd25be5bd4567ee4454ee4567d14977fdafc45beadd08c679613c64ccdba3340b56650afd2a0fa1b8a339ff1676312c362381919b2713cf3d65c6b8292f0d3c5d16ea7e1e74d3746a519e300d32bf9633b4251c048e7f6cdc71ed819ba5f88373856a9a1585d7379ba7f9f5ace328399aa96a3f7b0010cc6a5517be67b78ba8ea87593e54dc5e5e384b8a88f2d117cae42aa78670493364ef127cdb1ed8b4f00b923aa0e27c28f760ab7db229a4d45dd399f969592e7e01657b0a7ff1fa4adf87ab1fc52aa0b9c46a462113243098f20c1a7b2cede22e3ae171e3384f9a775cba3b36d74ce6fcf3aa09e6d6fff70466b39ce7a4c900ffbbadc8cfd334d505907dc4ac317326ace42f5092c24966c779bc663d82e969be06a9a32732f0a4d27485f73f14e44d126bf87a25ed48ae1fedde6961320d580a09466e8f656d9019be6072ef4885e24489064f759db3dae091c49fc8b3e8cf9e2f82b51dff492c8122737a933207b23f4d1a72569c22157dbd1676ddbcc3eba4f61e04e665114d5833a34dd6e889fa9ccf705b20d72054e65a8aa8bb6553f5844eeda099d786cbde3b0ce3d76c60c98f5338c0211b7c79bd3b33b41d547fb2eb3f439222c66a506693d2ad9b764e135ea71bfd3a57c7935695678f70205a607b16a82d8bd6df6360485e21a33300c8bee1f77179896d085cbca58f4bf257769bcf40b55b3965492a5768086a4764588134d5dcae8f4f0105c4466795a7f2d6a994a06a8fcd4930eda8338da27f1f3ffe7ab66aa5c8955b5d2959fb41e27ec269917c8009ae12110cf68d7bccd3763c4069a804c7e43e967381559b47427c6fc3eba36c4d8a672f8cd5d70195a2a8786e8e3ac1536b24df44adb4cfdc21b29b1359c219b934d67b6533631d702da2ce8a031d0b3893debb1ab8e5896d4580de93a9387a006716f63cf016d4d4d0abc94cb9e5e74f0d375fd75bf5581ed2f6971790846bc94dd5fe2da070e321c483ecc012f47348d0f795f5a3b6b2667c484d0f168bf2dd4dd019a37bf2844173463db7ed4e8e44bbce08ffafff60b9a7d231ea15595b2a39cc169206f5c2c2393e09c441344ad710240d86f2d5d5ee74fa531cf839444f4a6bd059b24b0a0fea20ffbcab0e7ae7c180659e3bb35ce7d79c29cd7f1b45801503a08a7f49a5785cb824a74b843bc0b2dcd39eabbf96cf9a44afe1eb68bb3cd747c16457f04546478c78723f1f8759a5851c4bd73f39fbaf6228b7f67d8742835bb49c8488acae8412dca96ce02ca05ac4366f361b2dd8c6aba69915bf37437453650044837925ef07e6f7242ecf0bb5b94903bf59cc16088826203c06a5c085eb080d6bf064ccf2d2c049f1048dd98b628f21319a72aa1102eb3c0dd8c60b5d7821498453feae2dfa39b2746c38b9761e82727eb262fb3344272912e2a156ea5094a16b873a4ae57ca6ee1b127d8f01ac7aa5b21bed7823d799a3632272df830a5b79948127fdc4b624ec792bceb38b5d1e7cc38cc34f5dd10a11d9c06c10db50043c32c85bb7ac55634f214e49db5852873ab9f0b2da8e0a1d1ecf6da797a47a87acafdcf651bcbce8b9c02f54862320a2e1ac2bdd5e06d28c807fc395674f1c60597cde4d6db39ff4687870c0e7c47e8007fd3bc3b7c2ab72c57b4433c129348c016a529a63f2d58d73d27fbbc163b21e342d09a87ba053df5fa1b009606511bbfd7a1015188e756527ee669f8a192c1a5ad8758b4ac11086c0a03d85b6640e97a199b30898c3f75db30d84aabc251bc1ceb97aae403f7188c7652b634e8f951990de2eee55f3d23cca2fcfcaf6e6afc82368c2727acdbf2a7a07b469fe195c45117c8547a8bc323acf8e842b8500d69afeb165f5b4836ef0c0d3b02060c6394d5ddc0883227d894bf6dca479abf7703f9d1e4309938deb095995c9225d7c01390b87b6dadb456652bca78cdd8d673ab5df8dee3437cac5272a7b89248dd34722f7b1273890dff0f2a649a509a86bad95087bc5dddcf9f890cc466e27f03c3f9b1f0c9fea8d0ad03739a365efcb64674fba5321b9394d6be3fc7ab94c361717e6bb920ca2d1293b16ca44f136dfbda58f7246de41b77395cdd22cca29b4058a2e670a80db37d0e174435200ee3d28a6712e67a39a3ced71616228da1a8b6866d0f0b132ed5520802e805bed01c4d8798de22748606df3aa8d2f6d623d6ccc2ec12ec0c74d3b7e4a8ce48e443d97b", diff --git a/src/vdaf/test_vec/mastic/04/MasticSum_0.json b/src/vdaf/test_vec/mastic/04/MasticSum_0.json index 8d4829ba..c8fc76f3 100644 --- a/src/vdaf/test_vec/mastic/04/MasticSum_0.json +++ b/src/vdaf/test_vec/mastic/04/MasticSum_0.json @@ -43,8 +43,8 @@ ], "prep_shares": [ [ - "dbfab65b0c929bd337e82600072690dba6fac762922bf22e3b0a55c45ccdacdff6ca3ba3979c6d9bc1ee26d7648f311055dfa95908e5408a", - "dbfab65b0c929bd337e82600072690dba6fac762922bf22e3b0a55c45ccdacdf0b35c45c6763926482c0cf23edfdebebacfd2923b1edac52" + "df210257153ade45113ac7c0c0fa74dfc683b1e8fbbe8a5147ab051866c12fb9f6ca3ba3979c6d9bc1ee26d7648f311055dfa95908e5408a", + "df210257153ade45113ac7c0c0fa74dfc683b1e8fbbe8a5147ab051866c12fb90b35c45c6763926482c0cf23edfdebebacfd2923b1edac52" ] ], "public_share": "0e30118b55bf77ff34817d80025c5c736b1ee2188425350e71cc1dc5a779de3e6ff0676312c362381937b2713cf2d65c6b8292f0d3c4d16ea7ffe74d3745a519e3ffd22bf9633b4251dd48e7f6ccc71ed819ba5f88363856a9fd5e3a8400fe1b3f71da0726d672f55f6a6225aecfbb419c5cfa5a405f278e9f03a185e3eaa238ec8f7cf8395eadd3adafa9d2b0271cbcec796f086f2d82ba5c736f5c7854b6fbe6605a571bdabcacce7acd94b9c87b314bead370e09dc18618bd5cc3c8825338a085d4790108cbeb9ecdb914466664cfa0", @@ -82,8 +82,8 @@ ], "prep_shares": [ [ - "0078b09d2f312ad3cbf8cd4120da08b04c1147cd188cd2b1cef6358b875ed94ca91e63323176f162b67ab687cf5efb3360e9974583e64f7d", - "0078b09d2f312ad3cbf8cd4120da08b04c1147cd188cd2b1cef6358b875ed94c58e19ccdcd890e9d73aea3e248aa96a3acfd2923b1edac52" + "c1ed64107979e8f0f529c52e1678354c33de963f331d505e3cc65cd9a5df1ee1a91e63323176f162b67ab687cf5efb3360e9974583e64f7d", + "c1ed64107979e8f0f529c52e1678354c33de963f331d505e3cc65cd9a5df1ee158e19ccdcd890e9d73aea3e248aa96a3acfd2923b1edac52" ] ], "public_share": "0d8031b3e41fc4b2fe2a3f77de06db7fe0806225f5601afc6f1578ceb8a6d174c5149b0a3cb2046aef8f96793a0ac548f1f980e043c60626e9f31e3b00ac83699c9f98ab4988ffed0a6ad6b98f40c7e3ad9858ee70db74759123fcc6eebe7973c8a5500651955a50069b3afabe4dc527f86f939793cc954b805074d3d2e842b04388a258931111010ee45895998b15b0ace0afadcff718420f50c61959f8f199ad4d1339a3ff4c8913eb9cd68dbbffbea4adde68e0fd7ed387c66d7892e6bb76802fbf7bcea5df898350bd19c4d4b44b6f", @@ -121,8 +121,8 @@ ], "prep_shares": [ [ - "dbfab65b0c929bd337e82600072690dba6fac762922bf22e3b0a55c45ccdacdff6ca3ba3979c6d9bd2dc88b276af5ea0c3412c092d0a88c8", - "dbfab65b0c929bd337e82600072690dba6fac762922bf22e3b0a55c45ccdacdf0b35c45c6763926482c0cf23edfdebebacfd2923b1edac52" + "df210257153ade45113ac7c0c0fa74dfc683b1e8fbbe8a5147ab051866c12fb9f6ca3ba3979c6d9bd2dc88b276af5ea0c3412c092d0a88c8", + "df210257153ade45113ac7c0c0fa74dfc683b1e8fbbe8a5147ab051866c12fb90b35c45c6763926482c0cf23edfdebebacfd2923b1edac52" ] ], "public_share": "0230118b55bf77ff34817d80025c5c736b2e06468c12c19b02abfeeaa474bb89aaf0676312c362381937b2713cf2d65c6b8392f0d3c4d16ea700e84d3745a519e3ffd22bf9633b4251de48e7f6ccc71ed81aba5f88363856a95bce328398aa96a3f9b0010cc6a5517be77b78ba8da87593044ec5e5e284b8a88f2d117cae42aa78680493364ef127cdb2ed8b4fffb823aa796f086f2d82ba5c736f5c7854b6fbe6605a571bdabcacce7acd94b9c87b314ba5c3ff6bfdd20fe1066ca5104db5200b8b04f73e5ed07db54576e02fea9466de", @@ -160,8 +160,8 @@ ], "prep_shares": [ [ - "0078b09d2f312ad3cbf8cd4120da08b04c1147cd188cd2b1cef6358b875ed94ca91e63323176f1622efb96b09fb55793a607ef1f0823a11d", - "0078b09d2f312ad3cbf8cd4120da08b04c1147cd188cd2b1cef6358b875ed94c58e19ccdcd890e9d84ade290a7fcdde4acfd2923b1edac52" + "c1ed64107979e8f0f529c52e1678354c33de963f331d505e3cc65cd9a5df1ee1a91e63323176f1622efb96b09fb55793a607ef1f0823a11d", + "c1ed64107979e8f0f529c52e1678354c33de963f331d505e3cc65cd9a5df1ee158e19ccdcd890e9d84ade290a7fcdde4acfd2923b1edac52" ] ], "public_share": "018031b3e41fc4b2fe2a3f77de06db7fe06eb6ffd9b0e2083236efcc45c94d7ca7149b0a3cb2046aef8e96793a0ac548f1fa80e043c60626e9f31e3b00ac83699c9e98ab4988ffed0a6bd6b98f40c7e3ad9858ee70db74759162d5e495135c2e58052f8f3619889294d3511df162b3c0be0b6fbcfeaadbe99077fd406091d3855f6ef81fa1d1bf39ddcd8680d92c934c8de0afadcff718420f50c61959f8f199ad4d1339a3ff4c8913eb9cd68dbbffbea4a0e969f28f3d02f792beb3d3b6f111af6b5d8da4008aee31ad34cf7380cf6d50", @@ -199,8 +199,8 @@ ], "prep_shares": [ [ - "dbfab65b0c929bd337e82600072690dba6fac762922bf22e3b0a55c45ccdacdff6ca3ba3979c6d9b396f070035e68d6f81499f37f8908d3a", - "dbfab65b0c929bd337e82600072690dba6fac762922bf22e3b0a55c45ccdacdf0b35c45c6763926482c0cf23edfdebebacfd2923b1edac52" + "df210257153ade45113ac7c0c0fa74dfc683b1e8fbbe8a5147ab051866c12fb9f6ca3ba3979c6d9b396f070035e68d6f81499f37f8908d3a", + "df210257153ade45113ac7c0c0fa74dfc683b1e8fbbe8a5147ab051866c12fb90b35c45c6763926482c0cf23edfdebebacfd2923b1edac52" ] ], "public_share": "0230118b55bf77ff34817d80025c5c736b2e06468c12c19b02abfeeaa474bb89aaf0676312c362381936b2713cf2d65c6b8392f0d3c4d16ea7ffe74d3745a519e3fed22bf9633b4251de48e7f6ccc71ed819ba5f88363856a95bce328398aa96a3f8b0010cc6a5517be77b78ba8da87593034ec5e5e284b8a88e2d117cae42aa78680493364ef127cdb1ed8b4fffb823aa796f086f2d82ba5c736f5c7854b6fbe6605a571bdabcacce7acd94b9c87b314ba5c3ff6bfdd20fe1066ca5104db5200b8b04f73e5ed07db54576e02fea9466de", diff --git a/src/vdaf/test_vec/mastic/04/MasticSum_1.json b/src/vdaf/test_vec/mastic/04/MasticSum_1.json index 89a775f1..dd9ab562 100644 --- a/src/vdaf/test_vec/mastic/04/MasticSum_1.json +++ b/src/vdaf/test_vec/mastic/04/MasticSum_1.json @@ -43,8 +43,8 @@ ], "prep_shares": [ [ - "b31f0265f3aec819bf6407ad0bc64a2ed30bde599950c0242e8468ea2bfa251d3593aba0aca30305656cb97ec7c8309a21cc2ddce86f3bc5", - "b31f0265f3aec819bf6407ad0bc64a2ed30bde599950c0242e8468ea2bfa251dcc6c545f525cfcfad6f2371630c5ec6e9159a71901dd8799" + "ed7b592b75ac85b294447ce0140870b17ffd6ea69cb29bb70ded4d3de45758853593aba0aca30305656cb97ec7c8309a21cc2ddce86f3bc5", + "ed7b592b75ac85b294447ce0140870b17ffd6ea69cb29bb70ded4d3de4575885cc6c545f525cfcfad6f2371630c5ec6e9159a71901dd8799" ] ], "public_share": "0e30118b55bf77ff34817d80025c5c736b1ee2188425350e71cc1dc5a779de3e6ff0676312c362381937b2713cf2d65c6b8392f0d3c4d16ea700e84d3745a519e3ffd22bf9633b4251fd5e3a8400fe1b3f71da0726d672f55f6b6225aecfbb419c5dfa5a405f278e9f03a185e3eaa238ec796f086f2d82ba5c736f5c7854b6fbe6605a571bdabcacce7acd94b9c87b314bead370e09dc18618bd5cc3c8825338a085d4790108cbeb9ecdb914466664cfa0", @@ -82,8 +82,8 @@ ], "prep_shares": [ [ - "49f19cdc621365a7044c45fb9c6341ead9dbc40b7869727794f4bbb0477cb759919264b4f0098d7a4bdacbbf5ea5be09360ee658f6e3dba7", - "49f19cdc621365a7044c45fb9c6341ead9dbc40b7869727794f4bbb0477cb759706d9b4b0ef6728528dca3e2721f838d9159a71901dd8799" + "a3fab94f0452c8bdcd89a06fb1838bfbe37cfbedab8d9bc5cd2030e9c482cf43919264b4f0098d7a4bdacbbf5ea5be09360ee658f6e3dba7", + "a3fab94f0452c8bdcd89a06fb1838bfbe37cfbedab8d9bc5cd2030e9c482cf43706d9b4b0ef6728528dca3e2721f838d9159a71901dd8799" ] ], "public_share": "0d8031b3e41fc4b2fe2a3f77de06db7fe0806225f5601afc6f1578ceb8a6d174c5149b0a3cb2046aef8f96793a0ac548f1f980e043c60626e9f41e3b00ac83699c9e98ab4988ffed0a23fcc6eebe7973c8a5500651955a50069b3afabe4dc527f870939793cc954b804f74d3d2e842b043e0afadcff718420f50c61959f8f199ad4d1339a3ff4c8913eb9cd68dbbffbea4adde68e0fd7ed387c66d7892e6bb76802fbf7bcea5df898350bd19c4d4b44b6f", @@ -121,8 +121,8 @@ ], "prep_shares": [ [ - "eaf5ce4b768dbbd0ae475a9f9c21686648c95a1cc546f756611f47eed991306b3593aba0aca303055af709c81309df8af569c44ac78e582d", - "eaf5ce4b768dbbd0ae475a9f9c21686648c95a1cc546f756611f47eed991306bcc6c545f525cfcfad6f2371630c5ec6e9159a71901dd8799" + "2410eea85a9b9231150eb6074b7a7fc63a01f1f6cc8e0438be1b5dd8324136323593aba0aca303055af709c81309df8af569c44ac78e582d", + "2410eea85a9b9231150eb6074b7a7fc63a01f1f6cc8e0438be1b5dd832413632cc6c545f525cfcfad6f2371630c5ec6e9159a71901dd8799" ] ], "public_share": "0230118b55bf77ff34817d80025c5c736b2e06468c12c19b02abfeeaa474bb89aaf0676312c362381936b2713cf2d65c6b8292f0d3c4d16ea7ffe74d3745a519e3fed22bf9633b42515bce328398aa96a3f8b0010cc6a5517be67b78ba8da87593034ec5e5e284b8a88e2d117cae42aa78796f086f2d82ba5c736f5c7854b6fbe6605a571bdabcacce7acd94b9c87b314ba5c3ff6bfdd20fe1066ca5104db5200b8b04f73e5ed07db54576e02fea9466de", @@ -160,8 +160,8 @@ ], "prep_shares": [ [ - "a071808aaf288589d4496e13f9ae8de66e3159afccefc8684e4982a6e6afcfd0919264b4f0098d7ac7fd7791c5d25835a42c894f351115a8", - "a071808aaf288589d4496e13f9ae8de66e3159afccefc8684e4982a6e6afcfd0706d9b4b0ef6728530954b3fa5c44e369159a71901dd8799" + "9ce36472fa9e8795c4be616e554584c6320ab1bd73ec0517ff3f577dce28d8e9919264b4f0098d7ac7fd7791c5d25835a42c894f351115a8", + "9ce36472fa9e8795c4be616e554584c6320ab1bd73ec0517ff3f577dce28d8e9706d9b4b0ef6728530954b3fa5c44e369159a71901dd8799" ] ], "public_share": "018031b3e41fc4b2fe2a3f77de06db7fe06eb6ffd9b0e2083236efcc45c94d7ca7149b0a3cb2046aef8e96793a0ac548f1fa80e043c60626e9f31e3b00ac83699c9f98ab4988ffed0a62d5e495135c2e58052f8f3619889294d3511df162b3c0be0b6fbcfeaadbe99076fd406091d3855fe0afadcff718420f50c61959f8f199ad4d1339a3ff4c8913eb9cd68dbbffbea4a0e969f28f3d02f792beb3d3b6f111af6b5d8da4008aee31ad34cf7380cf6d50", @@ -199,8 +199,8 @@ ], "prep_shares": [ [ - "4499d25fbbf22041dd826e52f408bdcc6571d731bfd5ed4b72b1cf3a181ac9dd919264b4f0098d7a4bdacbbf5ea5be09360ee658f6e3dba7", - "4499d25fbbf22041dd826e52f408bdcc6571d731bfd5ed4b72b1cf3a181ac9dd706d9b4b0ef6728528dca3e2721f838d9159a71901dd8799" + "fed48f22c0377e59267d7f4f41143c2ebb8f9a58ce0c97c19f7874061a5e6951919264b4f0098d7a4bdacbbf5ea5be09360ee658f6e3dba7", + "fed48f22c0377e59267d7f4f41143c2ebb8f9a58ce0c97c19f7874061a5e6951706d9b4b0ef6728528dca3e2721f838d9159a71901dd8799" ] ], "public_share": "018031b3e41fc4b2fe2a3f77de06db7fe06eb6ffd9b0e2083236efcc45c94d7ca7149b0a3cb2046aef8f96793a0ac548f1f980e043c60626e9f41e3b00ac83699c9e98ab4988ffed0a62d5e495135c2e58042f8f3619889294d4511df162b3c0be0a6fbcfeaadbe99077fd406091d3855fe0afadcff718420f50c61959f8f199ad4d1339a3ff4c8913eb9cd68dbbffbea4a0e969f28f3d02f792beb3d3b6f111af6b5d8da4008aee31ad34cf7380cf6d50",