Struct libpaillier::ProofSquareFree [−][src]
pub struct ProofSquareFree(_);
Expand description
Proof that a Paillier modulus is square free.
The proof checks that there are “small” factors,
that can be inverted in with a Paillier modulus
and the number of parallel instances needed for soundness
relates to how high to check. For a security parameter k,
where we check for prime factors up to t, need l parallel
instances where l is the smallest integer such that t^l > 2^k.
For 128-bit security, t = 1000 and l = 13, and Paillier modulus
is ≥ 2048 bits.
This proof is used in https://eprint.iacr.org/2020/540 and https://eprint.iacr.org/2017/552 as part of their DKG. A paillier key generator can prove the parameters where created honestly.
Implementations
Generate a new SF proof. GG20 paper uses lots of values for the entropy like the ECDSA Public key, the curve generator and prime, and the participant id as follows generateChallenges(g, q, y, N, pi, l)
Verify a Paillier modulus is square-free.
Trait Implementations
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>, Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations
impl RefUnwindSafe for ProofSquareFreeimpl Send for ProofSquareFreeimpl Sync for ProofSquareFreeimpl Unpin for ProofSquareFreeimpl UnwindSafe for ProofSquareFreeBlanket Implementations
Mutably borrows from an owned value. Read more
type Output = T
type Output = TShould always be Self
pub fn vzip(self) -> V