Struct libpaillier::ProofSquareFree
source · pub struct ProofSquareFree(/* private fields */);
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§
source§impl ProofSquareFree
impl ProofSquareFree
sourcepub fn generate<D: Digest>(sk: &DecryptionKey, nonce: &[u8]) -> Option<Self>
pub fn generate<D: Digest>(sk: &DecryptionKey, nonce: &[u8]) -> Option<Self>
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)
Trait Implementations§
source§impl Clone for ProofSquareFree
impl Clone for ProofSquareFree
source§fn clone(&self) -> ProofSquareFree
fn clone(&self) -> ProofSquareFree
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more