Is it possible for one party to encrypt some data, and have another party (unknown to the first party) view that original data if a certain condition is met?

I cannot find any information about this despite numerous searches, possibly I have the terminology wrong, or perhaps... it is impossible!

I read about zk-SNARKS, as I understand this technique is used to prove a computation on an encrypted value or perhaps show the opening of some commitment in a set.

I thought then, perhaps you could set a condition in a circuit that if say (for simplicity) a (public) input integer x is less than 100 (or maybe part of a set or something), you could print secret data y - but that would mean the encrypting party would have to somehow produce an unsatisfied partial SNARK and then the person that wants to attempt decryption would then have to input their integer later.

I guess it's not a great example unless the input is provably random, but is there some technique to do this? I only mention SNARKS as it's the only thing I could think of where you can have arbitrary conditions like this, and in reality I was thinking of something where the data revealed could be any size, like a huge text file or something rather than e.g. an integer y.

New contributor
tom is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
  • $\begingroup$ Maybe witness encryption is what you're looking for? $\endgroup$ – Maeher Oct 19 at 10:11

Your Answer

tom is a new contributor. Be nice, and check out our Code of Conduct.

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.