Let $m$ be a secret message that needs to be sent to $n >1$ recipients. Let each recipient $r_i$ have a public key $p_i$ and private key $s_i$. Is there a scheme such that we can encrypt the message $m$ using the $n$ public keys and produce a encrypted message $E(m)$ such that only the $n$ intended recipients can decipher the message $m$?

One method could be to encrypt the message $n$ times, using each recipients public key, and append them all. That is, if $e_i$ is the encrypted message $m$ using the public key $p_i$, then the encrypted message sent to all the recipients could be $E(m) = p_1|e_1|p_2|e_2 \dots p_n|e_n$, where $|$ is the concatenation operation. But this will increase the size of the encrypted message by $O(n)$. So my question really is – can we keep the message length manageable and simultaneously allow multiple recipients to securely decrypt the message.

Is there a special name given to this kind of cryptography problem? The problem seems natural and perhaps has been investigated. I will be grateful for pointers to literature in this area.