Say there are 5 parties. 1 is the sender, and 4 are the receivers.

The sender has a unique shared key with each receiver. k1 - between sender and receiver1 k2 - between sender and receiver2 k3 - between sender and receiver3 k4 - between sender and receiver4

Sender wants to send a encrypted message Em to all 4 of these receivers, but the sender only wants to send it out only once.

Is there some way that the sender can encrypt the message m, using all of the shared keys, so each receiver can properly decrypt the message? AND so the receivers are unable to deduce each other's keys?

without using public private crypto?

Thank you so much!!

  • $\begingroup$ What is "public private crypto"? Use standard terms, do you mean public key cryptography? $\endgroup$
    – kodlu
    Jan 24 at 12:01

1 Answer 1

Encrypt message with ephemeral key k0 and an AEAD scheme -> m
Encrypt k0 with k1 -> k1'
Encrypt k0 with k2 -> k2'
Encrypt k0 with k3 -> k3'
Encrypt k0 with k4 -> k4'

Send m || k1' || k2' || k3' || k4'

You may choose to label which key is for which recipient or just let them perform trial decryption.

  • $\begingroup$ Let's say that user with k1 decrypts k1' and gets k0, they'll be able to decrypt m AND k2, k3, k4 as well, no? $\endgroup$
    – user113791
    Jan 24 at 5:43
  • $\begingroup$ No. They will know that k0 encrypted with an unknown k3 is a known k3'. Getting k3 will require a complete break of the cipher. See known-plaintext attacks. $\endgroup$ Jan 24 at 16:36

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.