# Question on double-asymmetric encryption and split knowledge

Moin moin,

Let‘s assume there are two keypairs (d1,e1) and (d2,e2), where d1 and d2 are unrelated private keys and e1 and e2 the corresponding public keys. Imagine Alice knowing neither e1 nor e2 and Bob only e1, not e2. Alice has a ciphertext c resulting from encrypting a message m with d1 using RSA. She cannot decrypt it because she doesn‘t know e1. Alice encrypts c again with d2 using an asymmetric cipher (remains to be chosen) and sends it to Bob. Bob can‘t decrypt it since he doesn‘t have e2. Can he then use some kind of algorithm and e1 to produce something which he can send to me that can be decrypted with e1 and e2 resulting in the original message?

What I want is, that Alice and Bob cannot read the message, only their combined knowledge would allow them to decipher it.

Pseudocode:

m is the message

c := RSAEncrypt(m, using: d1)


Alice does:

c2 := AsymEncrypt(c, using: d2)


Bob does:

c3 := RSADecryptAlgo(c2, using: e1)


I want to:

m = SomeDecryptionAlgo(c3, using: e2)


Is this scenario (though quite strange) even possible? If so, does anyone know a googleable term or an algorithm/s which would fit my case?

Edit: The keypairs do not share the same modulus

• Hi. What did you mean with "unrelated private keys", did that include the same modulus? Aug 25 at 13:17
• To clarify, the moduli are different Aug 25 at 18:28
• Issues with the question: (1) d1 and d2 are private keys, yet it is encrypted with them (and further, they are used in a cipher). That's a contradiction. In asymmetric crypto, we encrypt with a public key, decrypt with the matching private key. Perhaps one (or both) of the operations performed is signature? (2) d2 and e2 are fixed, thus "asymmetric cipher (remains to be chosen)" makes no practical sense: an RSA key is not usable for asymmetric crypto other than RSA-based. We can only tweak the padding.
– fgrieu
Aug 26 at 7:03