https://github.com/ZenGo-X/zk-paillier
zk-paillier proofs:
1. ciphertext is zero
- https://github.com/ZenGo-X/zk-paillier/blob/master/src/zkproofs/zero_enc_proof.rs
- From Damgard Jurik, https://www.brics.dk/RS/00/45/BRICS-RS-00-45.pdf
2. Knowledge of plaintext
- https://github.com/ZenGo-X/zk-paillier/blob/master/src/zkproofs/correct_key_ni.rs
- "Efficient Noninteractive Certificationof RSA Moduli and Beyond" https://eprint.iacr.org/2018/057.pdf
- "Fast Secure Multiparty ECDSA with PracticalDistributed Key Generation and Applications toCryptocurrency Custody" https://eprint.iacr.org/2018/987.pdf
6.2.3
3. gcd(N,phi(N)) = 1
1. Interactive
- https://github.cocm/ZenGo-X/zk-paillier/blob/master/src/zkproofs/correct_key.rs
- section 3.1 in [Lindell'17](https://eprint.iacr.org/2017/552)
- section 3.3 in [HMRTN'12](https://eprint.iacr.org/2011/494)
- section 4.2 in [DJ'01](http://www.brics.dk/RS/00/45/BRICS-RS-00-45.pdf)
2. Non-interactive
- https://eprint.iacr.org/2018/057.pdf
- for parameters = e = N, m2 = 11, alpha = 6370 see https://eprint.iacr.org/2018/987.pdf 6.2.3
4. Range proof, msg in [0,q]
1. Interactive
- https://github.com/ZenGo-X/zk-paillier/blob/master/src/zkproofs/range_proof.rs
- Appendix A in [Lindell'17](https://eprint.iacr.org/2017/552)
- Section 1.2.2 in [Boudot '00](https://www.iacr.org/archive/eurocrypt2000/1807/18070437-new.pdf)
- Assumes only DCRA
2. Non-interactive
- https://github.com/ZenGo-X/zk-paillier/blob/master/src/zkproofs/range_proof_ni.rs
- Same as 3.1, but with Fiat-Shamir.
5. Correct opening
- https://github.com/ZenGo-X/zk-paillier/blob/master/src/zkproofs/correct_opening.rs
- This is just checking trivially that ct = ENC(m,r).
6. Correct message
- https://github.com/ZenGo-X/zk-paillier/blob/master/src/zkproofs/correct_message.rs
- In the case that the message space size is small (a message can be only one of a few possibilities), it is possible to create a "ring" like structure that proves that the encrypted value is a message from the message space without revealing the message.
- https://paillier.daylightingsociety.org/Paillier_Zero_Knowledge_Proof.pdf
7. + a few more proofs less relevant