A method of securing an object at an access level includes selecting a profile
for a user, including a credential having an encrypted credential public key, an
encrypted credential public key encryption key, and a multiple-level access identifier.
A working key is generated by binding a domain value with a random value. The object
is encrypted with the working key. A random value encryption key is generated based
on the shared value by decrypting the credential public key encryption key with
the profile key encryption key, decrypting the credential public key with the credential
public key encryption key, generating an ephemeral key pair, and generating a shared
value based on the ephemeral private key and the credential public key. The random
value is encrypted with the random value encryption key, and the encrypted object,
the ephemeral public key, and the encrypted random value are provided for an authorized recipient.