A system is provided that allows encrypted content to be distributed to users
over
a communications network. A policy enforcement service may use an identity-based
encryption algorithm to generate public parameter information and private keys.
Data content may be encrypted prior to distribution using an identity-based encryption
engine. The encryption engine may use the public parameter information from the
policy service and public key information to encrypt the data. The public key information
may be based on policy information that specifies which types of users are allowed
to access the data that is encrypted using that public key. A user may obtain a
private key for unlocking particular encrypted data by providing a key request
to the policy enforcement service that contains the public key. The policy enforcement
service may enforce the policies given by the policy information and may provide
private keys only to authorized users.