cp-abe public key, access structure I have three questions regarding CP-ABE:

1) Is it correct to assume that in this scheme there is only one public key? Private keys are generated based on one's attributes that I do understand, by the authority.

Previously I thought I would be able to generate one's public key based on one's attribute (identity ID for example) and encrypt data with one's public key which I generated based on recipient's ID. But now I see it was wrong thinking, you need to encrypt data with a public key, which is only one throughout the lifetime of the system, and the encryption mechanism just takes into account the values of attributes which you've specified. Is that correct?

2) If above holds true and there is only one global public key based on a global secret then I assume there's no way for message originator to sign his message under this scheme. So that a recipient could verify that the message originator is really the one in possession of a given attribute (such as Id). I'm thinking of ways of implementing authentication under this scheme.

3) If one encrypts a message under specific access structure parameter values are these values in plaintext? I mean if one encrypts a message under attribute ID value '11' is everyone else able to see who the recipient actually is? I mean are they able to read the value '11'.
1) Is it correct to assume that in this scheme there is only one public key? Private keys are generated based on one's attributes that I do understand, by the authority.


No, each attribute is a public key. When you are encrypting a message, you form the access policy using the public keys of the various attributes needed from your policy.


  2) If above holds true and there is only one global public key based on a global secret then I assume there's no way for message originator to sign his message under this scheme. So that a recipient could verify that the message originator is really the one in possession of a given attribute (such as Id). I'm thinking of ways of implementing authentication under this scheme.


The above does not hold true, but I wanted to comment. Researchers have developed other primitives for attribute based signing. There has also been research published on attribute based signcryption, which combines the two.


  3) If one encrypts a message under specific access structure parameter values are these values in plaintext? I mean if one encrypts a message under attribute ID value '11' is everyone else able to see who the recipient actually is? I mean are they able to read the value '11'.


Under the original constructs, the access policy was public. So if you got a hold of a ciphertext and the policy, you could determine what attributes are necessary for decryption. Since then, researchers have developed methods to allow you to hide or keep private certain attributes in an access policy.