Cryptology ePrint Archive: Report 2015/1073

Practical Witness Encryption for Algebraic Languages Or How to Encrypt Under Groth-Sahai Proofs

David Derler and Daniel Slamanig

Abstract: Witness encryption (WE) is a recent powerful encryption paradigm, which allows to encrypt a message using the description of a hard problem (a word in an NP-language) and someone who knows a solution to this problem (a witness) is able to efficiently decrypt the ciphertext. Recent work thereby focuses on constructing WE for NP complete languages (and thus NP). While this rich expressiveness allows flexibility w.r.t. applications, it makes existing instantiations impractical. Thus, it is interesting to study practical variants of WE schemes for subsets of NP that are still expressive enough for many cryptographic applications.

We show that such WE schemes can be generically constructed from smooth projective hash functions (SPHFs). In terms of concrete instantiations of SPHFs (and thus WE), we target languages of statements proven in the popular Groth-Sahai (GS) non-interactive witness-indistinguishable/zero-knowledge proof framework. This allows us to provide a novel way to encrypt. In particular, encryption is with respect to a GS proof and efficient decryption can only be done by the respective prover. The so obtained constructions are entirely practical. To illustrate our techniques, we apply them in context of privacy-preserving exchange of information.

Category / Keywords: public-key cryptography / witness encryption, smooth projective hash functions, Groth-Sahai proofs, encryption, privacy

Original Publication (with minor differences): Designs, Codes and Cryptography

Date: received 4 Nov 2015, last revised 9 Jan 2018

Contact author: david derler at iaik tugraz at

Available format(s): PDF | BibTeX Citation

Version: 20180109:145938 (All versions of this report)

Short URL:

[ Cryptology ePrint archive ]