Description
Hi akosba, I am learning about RSAEncryptionCircuitGenerator
and I would appreciate if you could please clarify the following questions.
My idea is that for RSA zero-knowledge proof, the privKey and the plainText should be private input, the pubKey and the cipherText should be public input. The prover can use the private input and the public input to generate proof, and the verifier can only use the public input and proof to verify (pk, vk are ignored here). But I don't understand much about this generator. This class has only private input inputMessage
and randomness
, while cipherText is used as output. What I want to ask is, is the pubKey (and the cipherText) not needed here as public input, in other words, is this circuit making a commitment to inputMessage
and randomness
in RSA rather than the entire encryption process?
In addition, if one has the value of public input, how can one recover the primary_input
in libsnark to achieve validation without the verifier knowing the private input?