First data to be sent by a first party to a second party is encrypted
using an encryption key that is formed using at least a hash value
generated by a keyed hash of at least one condition that typically serves
as an identifier of an intended recipient of the first data. The
encrypted first data is provided to a data recipient who requests a
decryption key from the trusted party. The trusted party is responsible
for verifying that the recipient meets the specified conditions before
providing the decryption key. A valid decryption key is only provided if
the correct conditions have been supplied to the trusted party.