Imagine two persons: Alice and Bob. We have a generated secret value that is valuable and has to be encrypted in a way that both can't reveal the value on their own but only when they both confirm.

My first approach would have been to double encrypt the secret value. One time with Alice keyset and one time with Bobs keyset. The problem: They both don't trust each other. So we can't send Bobs public key to Alice in order to double-encrypt, because Bob can't trust Alice that she stores the generated secret value before encryption.

My second approach is to write a software tool that generates the secret value and immediately encrypts it with Alices and Bobs' public key. But if Alice runs this software, how can Bob be sure that the encrypted hash he got was generated from this software tool and not from a compromised tool from Alice?

I hope the idea is understandable. Which approaches could solve this problem? Do I need a third person that does the encryption for them - and what if there is no such person, that Alice and Bob both trust.

  • $\begingroup$ @poncho The value is a private key that was generated. It could have been generated in a closed-source application so that we can be sure that neither Alice nor Bob know it. But then we can't prove that the encrypted value was generated by the software, can we? $\endgroup$
    – David
    Commented Aug 25, 2016 at 17:51
  • $\begingroup$ And what do you want to achieve with the encrypted value (the plaintext)? If you don't trust either with the plaintext (the generated secret) then yes, you'd need a third party. You cannot rely on anybody distributing information or keeping information if you don't trust them. $\endgroup$
    – Maarten Bodewes
    Commented Aug 25, 2016 at 17:54
  • $\begingroup$ It seems like your use case calls for threshold decryption against passive adversaries. ​ ​ $\endgroup$
    – user991
    Commented Aug 25, 2016 at 17:57
  • 1
    $\begingroup$ The plaintext of the encrypted value is used to decrypt a secret file (document). But even when a third party exists that creates the keys, than this third party has the key and could decrypt the file on its own. I feel like this is a chicken-egg problem. Basically I'm searching for a way to generate a private key where no! party has the key fully. The only party to trust is the one which has the unencrypted document at start - but this is a closed source software that can't do more (like generating keys). $\endgroup$
    – David
    Commented Aug 25, 2016 at 18:07
  • 1
    $\begingroup$ Can it encrypt the document? ​ See threshold decryption. ​ ​ ​ ​ $\endgroup$
    – user991
    Commented Aug 25, 2016 at 18:15


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.