Is there a way to force one party to generate a fresh key, such that another party can be convinced that the key was freshly generated, without that party also knowing the key?

I'm motivated by a particular weakness in a particular voting scheme. I'll provide a simplified example for motivation.

We have two parties: Prover and Verifier. The prover is about to generate a secret and convince the verifier that the secret is correct. The prover wants the secret to be convincing to the verifier and only to the verifier, so the prover constructs a Designated Verifier Proof. However, there is a risk that the Verifier has been previously coerced into relinquishing their private key. If the Prover is in possession of the private key, the Prover can cheat the Verifier by using their private key to forge a designated verifier proof for an invalid secret. We want to eliminate this possibility by forcing the Verifier to generate a new key on the spot.

Basically, we want to provide the Verifier the ability to tell the coercer: "I'm sorry, I'm unable to use this key. The system forces me to generate a fresh key on the spot."


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.