Data encryption has been employed using a public and private key architecture. In such an architecture, a public key is generated and published, and a private or secret key is also generated and secretly shared with those entities that are allowed to decrypt data. When data is encrypted, it is encrypted using the public key and the only entity that can decrypt the data is one who has the private key.
Attribute based encryption is a type of encryption that is commonly employed in an environment where a message is encrypted, but the entity that encrypts the message does not necessarily know who will be accessing the data. For instance, in a company or other similar organization, it may be common for a person in the organization to encrypt data so that it can only be viewed by people with sufficient credentials. By way of example, assume that a Vice President of Personnel encrypts a memorandum or other item of information which is only to be viewed by persons on the Vice President's personnel team and the Human Resource Director. Regardless of the specific names of those people, the Vice President may want to encrypt the data so that only that group of individuals (whoever they are), with the appropriate credentials, can view the encrypted information. This is sometimes referred to as credential-based encryption. More generally, the data can be encrypted to any predefined set of attributes. The data is encrypted to a first set of attributes, and the entity that is decrypting the data need only have attributes that are sufficiently close to the first set of attributes. If they are, then the decrypting entity can decrypt the data.
In attribute-based encryption, the user's key and ciphertext is labeled with attributes. The user is only allowed to decrypt the ciphertext if the user's key has attributes that sufficiently overlap with attributes on the label of the ciphertext.
Another type of attribute-based encryption is referred to as “key policy attribute-based encryption” (KP-ABE). In KP-ABE, each user's private key has an associated access structure which specifies the type of ciphertext the key can decrypt. If the user's access structure is sufficiently close to that specified by the ciphertext, and if the user's key has attributes that are sufficiently close to the attributes on the label of the ciphertext, then the user can decrypt the ciphertext.
Some work is currently being done in quantum computing. Quantum computing uses the principles of quantum mechanics to represent and manipulate data. Though quantum computers are not yet commercially available, it is believed that quantum computers will be available within the reasonably near future.
Quantum computers will likely be able to solve many current encryption problems. That is, a quantum computer will likely be able to break a great many current encryptions systems, so that they will no longer be secure.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.