zk-paillier
zk-paillier copied to clipboard
A collection of Paillier cryptosystem zero knowledge proofs
While investigating #25, I found that some bounds check is inclusive in the [paper], and exclusive in implementation. I fixed this, and test from #25 has never failed again. Fixes...
The proof generated by `RangeProofNi` sometimes fails, try to loop many times, and some of the proof results are false
I noticed that some proofs require zeroizing secret data after use. For example: https://github.com/ZenGo-X/zk-paillier/blob/master/src/zkproofs/multiplication_proof.rs
https://github.com/ZenGo-X/zk-paillier/blob/e3e34351937dace3f076af8f7bc1a52994539601/src/zkproofs/correct_key_ni.rs#L112 (thanks to JP an team who raised this concern)
Using rust x86_64-pc-windows-msvc 1.42 nightly After cloning vanilla zk-paillier, and then trying to run a test in correct_key.rs, I get this error: ``` error: linking with `link.exe` failed: exit code:...
https://github.com/KZen-networks/zk-paillier/blob/24c522a239de04366c0ebf08d703e16b67edc8ef/src/zkproofs/correct_key_ni.rs#L31 Write now it is the bytes of "kzen". we would like to have a method to set the salt and to document the presence of the said salt.
To prove a ciphertext is constructed correctly such that : `C = Enc(m,r) = g^m r^N mod N^2` 1) Verifier commits to a random string `com(e)` of length `t` bits...
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...
Currently some operations are using BigInt type from rust-paillier and some operations are using BigInt type from curv. This can lead only to bad results. curv's BigInt is maintained closely...