derive child keys from a private key My problem is the following:

I have an organization with many members. When someone from the outside communicates with this organization, I want any member to be able to decrypt the communication.

On solution I found would be to use CP-ABE: the organization has a master key and a public key related to it. The owner(s) of the organization can then issue secret keys for all members with a dummy policy that always evaluates to true. That way, an outsider won't have to know anything about the internal structure of the organization or its members; he will just have to encrypt using the organization's public key and any on its members will automatically be able to decrypt using his secret key.

The thing is that I really don't need all the attribute policy part of the CP-ABE so this seems overkill to me. I was wondering if there were any key derivation schemes that would allow me to do so, but I couldn't find any. 

I remind my constraints:


the encryption should be done with a single public key for the whole organization
each member should have a different derived secret key


If there is such a scheme, how can we enforce key revocation ?
If key revocation is a requirement, that is, if Alice no longer works for BigCorp, her keys no longer is able to decrypt email to BigCorp, then it either becomes impractical or easy.

That is, you will need to do one of two things:


Either you need to update the master public key when Alice leaves.  This is likely to be impractical.
You require Alice to work with some central body to do the decryption; the central body would verify Alice's employment as a part of the decryption process.


In the latter case, where we can assume a trusted central body, it becomes easy; have the central body hold the private key; it would either decrypt the message for Alice, or alternatively (for example, with RSA or IES), the central body could do a blinded decryption (and so the entity won't be able to track the message)