A naive solution to the above requirements is to use Attribute-Based Encryption (ABE), which provides confidentiality and fine-grained access control. There are two general types of ABE: Ciphertext-Policy Attribute-Based Encryption (CP-ABE) [1]} and Key-Policy Attribute-Based Encryption (KP-ABE) [2]}. In CP-ABE, data is encrypted with a user-defined access structure, and a user with the relevant attributes can decrypt it [3]}. Contrarily to CP-ABE, KP-ABE encrypts data with a set of descriptive attributes, and a user with a key embedded with an appropriate access structure can decrypt the data [3]}. In this paper, we focus on CP-ABE. As an example, suppose a data owner (patient) wants to share part of their EHR with a specific healthcare professional with a specific role and responsibility according to a CP-ABE access policy defined by the patient. One doctor is assigned a specific set of attributes (e.g., {"doctor", "temporary", "oncology", "top secret"}) while another doctor may be assigned different attributes (e.g., {"doctor", "in charge", "dentistry", "confidential"}).
