If I send an email through S/MIME protocol to a group of recipients, does the email client require to encrypt the same email content with each recipient's public key before sending to each recipient? If the email is sent to a big Distribution List, does it mean, it will create big overhead (eg: the size) compared with without using it?


1 Answer 1


Yes, but also no. Yes, each recipient's public key is used for encryption. However, no, the content isn't encrypted with each public key. Content is never encrypted with a public key at all. Asymmetric cryptography is extremely slow, and not designed for bulk data encryption. Additionally, this would of course require one instance of the entire ciphertext per recipient.

Instead, S/MIME (like approximately all other public-key-based cryptosystems) is a hybrid cryptosystem, in which asymmetric cryptography is used to exchange a symmetric key (in the case of S/MIME, or for that matter OpenPGP, the symmetric key is encrypted using each recipient's public key), and the symmetric key is used to encrypt the message. The symmetric key is generated randomly and uniquely for each message and never stored anywhere in plain text.

The message that actually gets sent consists of the original text encrypted with the symmetric key, and then for each recipient, one version of the symmetric key encrypted with that recipient's public key (plus other data such as IV/nonce for the symmetric encryption, integrity checks, potentially digital signatures, potentially the sender's certificate in plain text, metadata about the ciphers and signatures used, and so on).


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .