<<

Ciphertext-Policy Attribute-Based

John Bethencourt Amit Sahai ∗ Brent Waters † Carnegie Mellon University UCLA SRI International [email protected] [email protected] [email protected]

Abstract tributes can access it. For instance, the head agent may specify the following access structure for accessing In several distributed systems a user should only be this information: ((“Public Corruption Office” able to access data if a user posses a certain set of cre- AND (“Knoxville” OR “San Francisco”)) OR dentials or attributes. Currently, the only method for (management-level > 5) OR “Name: Charlie enforcing such policies is to employ a trusted server to Eppes”). store the data and mediate access control. However, if By this, the head agent could mean that the memo any server storing the data is compromised, then the should only be seen by agents who work at the public confidentiality of the data will be compromised. In this corruption offices at Knoxville or San Francisco, FBI paper we a system for realizing complex access officials very high up in the management chain, and a control on encrypted data that we call Ciphertext-Policy consultant named Charlie Eppes. Attribute-Based Encryption. By using our techniques encrypted data can be kept confidential even if the stor- As illustrated by this example, it can be crucial that age server is untrusted; moreover, our methods are the person in possession of the secret data be able to secure against collusion attacks. Previous Attribute- choose an access policy based on specific knowledge of Based Encryption systems used attributes to describe the underlying data. Furthermore, this person may the encrypted data and built policies into user’s keys; not know the exact identities of all other people who while in our system attributes are used to describe a should be able to access the data, but rather she may user’s credentials, and a party encrypting data deter- only have a way to describe them in terms of descriptive mines a policy for who can decrypt. Thus, our meth- attributes or credentials. ods are conceptually closer to traditional access control Traditionally, this type of expressive access control methods such as Role-Based Access Control (RBAC). is enforced by employing a trusted server to store data In addition, we provide an implementation of our sys- locally. The server is entrusted as a reference monitor tem and give performance measurements. that checks that a user presents proper certification be- fore allowing him to access records or files. However, services are increasingly storing data in a distributed 1 Introduction fashion across many servers. Replicating data across several locations has advantages in both performance and reliability. The drawback of this trend is that it is In many situations, when a user encrypts sensitive increasingly difficult to guarantee the security of data data, it is imperative that she establish a specific ac- using traditional methods; when data is stored at sev- cess control policy on who can decrypt this data. For eral locations, the chances that one of them has been example, suppose that the FBI public corruption of- compromised increases dramatically. For these reasons fices in Knoxville and San Francisco are investigating we would like to require that sensitive data is stored in an allegation of bribery involving a San Francisco lob- an encrypted form so that it will remain private even byist and a Tennessee congressman. The head FBI if a server is compromised. agent may want to encrypt a sensitive memo so that only personnel that have certain credentials or at- Most existing public encryption methods allow a party to encrypt data to a particular user, but are ∗ Supported the US Army Research Office under the CyberTA unable to efficiently handle more expressive types of en- Grant No. W911NF-06-1-0316. †Supported by NSF CNS-0524252 and the US Army Research crypted access control such as the example illustrated Office under the CyberTA Grant No. W911NF-06-1-0316. above. Our contribution. In this work, we provide the first In the work of [24, 15], collusion resistance is in- construction of a ciphertext-policy attribute-based en- sured by using a secret-sharing scheme and embedding cryption (CP-ABE) to address this problem, and give independently chosen secret shares into each private the first construction of such a scheme. In our system, key. Because of the independence of the randomness a user’s private key will be associated with an arbi- used in each invocation of the scheme, trary number of attributes expressed as strings. On collusion-resistance follows. In our scenario, users’ pri- the other hand, when a party encrypts a message in our vate keys are associated with sets of attributes instead system, they specify an associated access structure over of access structures over them, and so secret sharing attributes. A user will only be able to decrypt a - schemes do not apply. text if that user’s attributes pass through the cipher- Instead, we devise a novel private key randomization text’s access structure. At a mathematical level, ac- technique that uses a new two-level random masking cess structures in our system are described by a mono- methodology. This methodology makes use of groups tonic “access tree”, where nodes of the access struc- with efficiently computable bilinear maps, and it is the ture are composed of threshold gates and the leaves key to our security proof, which we give in the generic describe attributes. We note that AND gates can be bilinear group model [6, 28]. constructed as n-of-n threshold gates and OR gates Finally, we provide an implementation of our system as 1-of-n threshold gates. Furthermore, we can handle to show that our system performs well in practice. We more complex access controls such as numeric ranges provide a description of both our API and the structure by converting them to small access trees (see discussion of our implementation. In addition, we provide several in the implementation section for more details). techniques for optimizing decryption performance and measure our performance features experimentally. Our techniques. At a high level, our work is sim- ilar to the recent work of Sahai and Waters [24] and Organization. The remainder of our paper is struc- Goyal et al. [15] on key-policy attribute based encryp- tured as follows. In Section 2 we discuss related work. tion (KP-ABE), however we require substantially new In Section 3 we our definitions and give background techniques. In key-policy attribute based encryption, on groups with efficiently computable bilinear maps. ciphertexts are associated with sets of descriptive at- We then give our construction in Section 4. We then tributes, and users’ keys are associated with policies present our implementation and performance measure- (the reverse of our situation). We stress that in key- ments in Section 5. Finally, we conclude in Section 6. policy ABE, the encryptor exerts no control over who has access to the data she encrypts, except by her choice of descriptive attributes for the data. Rather, she must 2 Related Work trust that the key-issuer issues the appropriate keys to grant or deny access to the appropriate users. In Sahai and Waters [24] introduced attribute-based other words, in [24, 15], the “intelligence” is assumed encryption (ABE) as a new means for encrypted ac- to be with the key issuer, and not the encryptor. In our cess control. In an attribute-based encryption system setting, the encryptor must be able to intelligently de- ciphertexts are not necessarily encrypted to one par- cide who should or should not have access to the data ticular user as in traditional public key . that she encrypts. As such, the techniques of [24, 15] Instead both users’ private keys and ciphertexts will be do not apply to our setting, and we must develop new associated with a set of attributes or a policy over at- techniques. tributes. A user is able to decrypt a ciphertext if there At a technical level, the main objective that we must is a “match” between his private key and the cipher- attain is collusion-resistance: If multiple users collude, text. In their original system Sahai and Waters pre- they should only be able to decrypt a ciphertext if at sented a Threshold ABE system in which ciphertexts least one of the users could decrypt it on their own. In were labeled with a set of attributes S and a user’s pri- particular, referring back to the example from the be- vate key was associated with both a threshold param- ginning of this Introduction, suppose that an FBI agent eter k and another set of attributes S′. In order for a that works in the terrorism office in San Francisco col- user to decrypt a ciphertext at least k attributes must ludes with a friend who works in the public corruption overlap between the ciphertext and his private keys. office in New York. We do not want these colluders to One of the primary original motivations for this was be able to decrypt the secret memo by combining their to design an error-tolerant (or Fuzzy) identity-based attributes. This type of security is the sine qua non of encryption [27, 7, 12] scheme that could use biometric access control in our setting. identities. The primary drawback of the Sahai-Waters [24] there were other systems that attempted to address threshold ABE system is that the threshold semantics access control of encrypted data [29, 8] by using se- are not very expressive and therefore are limiting for cret sharing schemes [17, 9, 26, 5, 3] combined with designing more general systems. Goyal et al. intro- identity-based encryption; however, these schemes did duced the idea of a more general key-policy attribute- not address resistance to collusion attacks. Recently, based encryption system. In their construction a ci- Kapadia, Tsang, and Smith [19] gave a cryptographic phertext is associated with a set of attributes and a access control scheme that employed proxy servers. user’s key can be associated with any monotonic tree- Their work explored new methods for employing proxy access structure. 1 The construction of Goyal et al. servers to hide policies and use non-monontonic access can be viewed as an extension of the Sahai-Waters tech- control for small universes of attributes. We note that niques where instead of embedding a Shamir [26] secret although they called this scheme a form of CP-ABE, sharing scheme in the private key, the authority embeds the scheme does not have the property of collusion re- a more general secret sharing scheme for monotonic ac- sistance. As such, we believe that their work should not cess trees. Goyal et. al. also suggested the possibility be considered in the class of attribute-based encryption of a ciphertext-policy ABE scheme, but did not offer systems due to its lack of security against collusion at- any constructions. tacks. Pirretti et al. [23] gave an implementation of the threshold ABE encryption system, demonstrated 3 Background different applications of attribute-based encryption schemes and addressed several practical notions such as We first give formal definitions for the security key-revocation. In recent work, Chase [11] gave a con- of ciphertext policy attribute based encryption (CP- struction for a multi-authority attribute-based encryp- ABE). Next, we give background information on bilin- tion system, where each authority would administer a ear maps. Like the work of Goyal et al. [15] we define different domain of attributes. The primary challenge an access structure and use it in our security defini- in creating multi-authority ABE is to prevent collusion tions. However, in these definitions the attributes will attacks between users that obtain key components from describe the users and the access structures will be used different authorities. While the Chase system used the to label different sets of encrypted data. threshold ABE system as its underlying ABE system at each authority, the problem of multi-authority ABE is 3.1 Definitions in general orthogonal to finding more expressive ABE systems. Definition 1 (Access Structure [1]) Let In addition, there is a long history of access control {P1,P2,...,Pn} be a set of parties. A collection for data that is mediated by a server. See for exam- A ⊆ 2{P1,P2,...,Pn} is monotone if ∀B, C : if B ∈ A and ple, [18, 14, 30, 20, 16, 22] and the references therein. B ⊆ C then C ∈ A. An access structure (respectively, We focus on encrypted access control, where data is monotone access structure) is a collection (respec- protected even if the server storing the data is compro- tively, monotone collection) A of non-empty subsets {P1,P2,...,Pn} mised. of {P1,P2,...,Pn}, i.e., A ⊆ 2 \{∅}. The sets in A are called the authorized sets, and the sets Collusion Resistance and Attribute-Based En- not in A are called the unauthorized sets. cryption The defining property of Attribute-Based In our context, the role of the parties is taken by Encryption systems are their resistance to collusion the attributes. Thus, the access structure A will con- attacks. This property is critical for building cryp- tain the authorized sets of attributes. We restrict our tographic access control systems; otherwise, it is im- attention to monotone access structures. However, it possible to guarantee that a system will exhibit the is also possible to (inefficiently) realize general access desired security properties as there will exist devastat- structures using our techniques by having the not of an ing attacks from an attacker that manages to get a hold attribute as a separate attribute altogether. Thus, the of a few private keys. While we might consider ABE number of attributes in the system will be doubled. systems with different flavors of expressibility, prior From now on, unless stated otherwise, by an access work [24, 15] made it clear that collusion resistance structure we mean a monotone access structure. is a required property of any ABE system. An ciphertext-policy attribute based encryption Before attribute-based encryption was introduced scheme consists of four fundamental algorithms: Setup, 1Goyal et al. show in addition how to construct a key-policy Encrypt, KeyGen, and Decrypt. In addition, we allow ABE scheme for any linear secret sharing scheme. for the option of a fifth algorithm Delegate. Setup. The setup algorithm takes no input other none of the sets S1,...,Sq1 from Phase 1 satisfy than the implicit security parameter. It outputs the the access structure. The challenger flips a random ∗ public parameters PK and a master key MK. coin b, and encrypts Mb under A . The ciphertext CT∗ is given to the adversary. Encrypt(PK, M, A). The encryption algorithm Phase 2. Phase 1 is repeated with the restriction that takes as input the public parameters PK, a message none of sets of attributes S ,...,S satisfy the M, and an access structure A over the universe of q1+1 access structure corresponding to the challenge. attributes. The algorithm will encrypt M and produce a ciphertext CT such that only a user that possesses a Guess. The adversary outputs a guess b′ of b. set of attributes that satisfies the access structure will be able to decrypt the message. We will assume that the ciphertext implicitly contains A. The advantage of an adversary A in this game is ′ 1 defined as Pr[b = b] − 2 . We note that the model can easily be extended to handle chosen-ciphertext at- Key Generation(MK,S). The key generation al- tacks by allowing for decryption queries in Phase 1 and gorithm takes as input the master key MK and a set of Phase 2. attributes S that describe the key. It outputs a private key SK. Definition 2 An ciphertext-policy attribute-based en- cryption scheme is secure if all polynomial time adver- Decrypt(PK, CT, SK). The decryption algorithm saries have at most a negligible advantage in the above takes as input the public parameters PK, a ciphertext game. CT, which contains an access policy A, and a private key SK, which is a private key for a set S of attributes. 3.2 Bilinear Maps If the set S of attributes satisfies the access structure A then the algorithm will decrypt the ciphertext and We present a few facts related to groups with effi- return a message M. ciently computable bilinear maps. Let G0 and G1 be two multiplicative cyclic groups ˜ Delegate(SK, S). The delegate algorithm takes as of prime order p. Let g be a generator of G0 and e be input a secret key SK for some set of attributes S and a bilinear map, e : G0 × G0 → G1. The bilinear map e a set S˜ ⊆ S. It output a secret key SK˜ for the set of has the following properties: attributes S˜. 1. Bilinearity: for all u,v ∈ G0 and a, b ∈ Zp, we We now describe a security model for ciphertext- have e(ua,vb) = e(u,v)ab. policy ABE schemes. Like identity-based encryption 2. Non-degeneracy: e(g, g) 6= 1. schemes [27, 7, 12] the security model allows the ad- G versary to query for any private keys that cannot be We say that 0 is a bilinear group if the group op- G G G G used to decrypt the challenge ciphertext. In CP-ABE eration in 0 and the bilinear map e : 0 × 0 → 1 are both efficiently computable. Notice that the map the ciphertexts are identified with access structures and a b ab b a the private keys with attributes. It follows that in our e is symmetric since e(g , g ) = e(g, g) = e(g , g ). security definition the adversary will choose to be chal- lenged on an encryption to an access structure A∗ and 4 Our Construction can ask for any private key S such that S does not satisfy S∗. We now give the formal security game. In this section we provide the construction of our system. We begin by describing the model of access Security Model for CP-ABE trees and attributes for respectively describing cipher- texts and private keys. Next, we give the description Setup. The challenger runs the Setup algorithm and of our scheme. Finally, we follow with a discussion of gives the public parameters, PK to the adversary. security, efficiency, and key revocation. We provide our proof of security in Appendix A. Phase 1. The adversary makes repeated private keys corresponding to sets of attributes S ,...,S . 1 q1 4.1 Our Model Challenge. The adversary submits two equal length messages M0 and M1. In addition the adversary In our construction private keys will be identified gives a challenge access structure A∗ such that with a set S of descriptive attributes. A party that wishes to encrypt a message will specify through an the Lagrange coefficient ∆i,S for i ∈ Zp and a set, S, Z x−j access tree structure a policy that private keys must of elements in p: ∆i,S(x) = j∈S,j6=i i−j . We will ∗ satisfy in order to decrypt. additionally employ a hash functionQ H : {0, 1} → G0 Each interior node of the tree is a threshold gate and that we will model as a random oracle. The function the leaves are associated with attributes. (We note will map any attribute described as a binary string to that this setting is very expressive. For example, we a random group element. Our construction follows. can represent a tree with “AND” and “OR” gates by using respectively 2 of 2 and 1 of 2 threshold gates.) A Setup. The setup algorithm will choose a bilinear user will be able to decrypt a ciphertext with a given group G0 of prime order p with generator g. Next key if and only if there is an assignment of attributes it will choose two random exponents α, β ∈ Zp. The from the private key to nodes of the tree such that the public key is published as: tree is satisfied. We use the same notation as [15] to β 1/β α describe the access trees, even though in our case the PK = G0,g,h = g , f = g , e(g, g) attributes are used to identify the keys (as opposed to the data). and the master key MK is (β, gα). (Note that f is used only for delegation.) Access tree T . Let T be a tree representing an ac- cess structure. Each non-leaf node of the tree repre- Encrypt(PK, M, T ). The encryption algorithm en- sents a threshold gate, described by its children and crypts a message M under the tree access structure T . a threshold value. If numx is the number of chil- The algorithm first chooses a polynomial qx for each dren of a node x and kx is its threshold value, then node x (including the leaves) in the tree T . These 0 < kx ≤ numx. When kx = 1, the threshold gate is polynomials are chosen in the following way in a top- an OR gate and when kx = numx, it is an AND gate. down manner, starting from the root node R. For each Each leaf node x of the tree is described by an attribute node x in the tree, set the degree dx of the polynomial and a threshold value kx = 1. qx to be one less than the threshold value kx of that To facilitate working with the access trees, we define node, that is, dx = kx − 1. a few functions. We denote the parent of the node x Starting with the root node R the algorithm chooses in the tree by parent(x). The function att(x) is defined a random s ∈ Zp and sets qR(0) = s. Then, it chooses only if x is a leaf node and denotes the attribute asso- dR other points of the polynomial qR randomly to ciated with the leaf node x in the tree. The access tree define it completely. For any other node x, it sets T also defines an ordering between the children of ev- qx(0) = qparent(x)(index(x)) and chooses dx other points ery node, that is, the children of a node are numbered randomly to completely define qx. from 1 to num. The function index(x) returns such Let, Y be the set of leaf nodes in T . The ciphertext a number associated with the node x. Where the in- is then constructed by giving the tree access structure dex values are uniquely assigned to nodes in the access T and computing structure for a given key in an arbitrary manner. CT = T , C˜ = Me(g, g)αs, C = hs,

Satisfying an access tree. Let T be an access tree qy (0) ′ qy (0) ∀y ∈ Y : Cy = g , Cy = H(att(y)) . with root r. Denote by Tx the subtree of T rooted at  the node x. Hence T is the same as T . If a set of r KeyGen(MK,S). The key generation algorithm attributes γ satisfies the access tree T , we denote it as x will take as input a set of attributes S and output a T (γ) = 1. We compute T (γ) recursively as follows. x x key that identifies with that set. The algorithm first If x is a non-leaf node, evaluate T ′ (γ) for all children x chooses a random r ∈ Z , and then random r ∈ Z x′ of node x. T (γ) returns 1 if and only if at least p j p x for each attribute j ∈ S. Then it computes the key as kx children return 1. If x is a leaf node, then Tx(γ) returns 1 if and only if att(x) ∈ γ. SK = D = g(α+r)/β, r rj ′ rj 4.2 Our Construction ∀j ∈ S : Dj = g · H(j) , Dj = g . 

Let G0 be a bilinear group of prime order p, and let Delegate(SK, S˜). The delegation algorithm takes in g be a generator of G0. In addition, let e : G0 × G0 → a secret key SK, which is for a set S of attributes, and G1 denote the bilinear map. A security parameter, κ, another set S˜ such that S˜ ⊆ S. The secret key is of ′ will determine the size of the groups. We also define the form SK = (D, ∀j ∈ S : Dj, Dj ). The algorithm chooses randomr ˜ andr ˜k∀k ∈ S˜. Then it creates a new Now that we have defined our function secret key as DecryptNode, we can define the decryption algo- rithm. The algorithm begins by simply calling the ˜ ˜ r˜ SK = (D = Df , function on the root node R of the tree T . If the tree is ˜ ˜ r˜ r˜k ˜ ′ ′ r˜k ∀k ∈ S : Dk = Dkg H(k) , Dk = Dkg ). satisfied by S we set A = DecryptNode(CT, SK, r) = e(g, g)rqR(0) = e(g, g)rs. The algorithm now decrypts The resulting secret key SK˜ is a secret key for the by computing set S˜. Since the algorithm re-randomizes the key, a delegated key is equivalent to one received directly from C/˜ (e(C, D)/A) = C/˜ e hs, g(α+r)/β /e(g, g)rs = M. the authority.     4.3 Discussion Decrypt(CT, SK). We specify our decryption pro- cedure as a recursive algorithm. For ease of exposition we present the simplest form of the decryption algo- We now provide a brief discussion about the security rithm and discuss potential performance improvements intuition for our scheme (a full proof is given in Ap- in the next subsection. pendix A), our scheme’s efficiency, and how we might We first define a recursive algorithm handle key revocation. DecryptNode(CT, SK,x) that takes as input a ci- ˜ ′ phertext CT = (T , C,C, ∀y ∈ Y : Cy, Cy), a private Security intuition. As in previous attribute-based key SK, which is associated with a set S of attributes, encryption schemes the main challenge in designing our and a node x from T . scheme was to prevent against attacks from colluding If the node x is a leaf node then we let i = att(x) users. Like the scheme of Sahai and Waters [24] our and define as follows: If i ∈ S, then solution randomizes users private keys such that they cannot be combined; however, in our solution the secret e(Di, Cx) DecryptNode(CT, SK,x) = sharing must be embedded into the ciphertext instead e(D′, C′ ) i x to the private keys. In order to decrypt an attacker e gr · H(i)ri ,hqx(0) clearly must recover e(g, g)αs. In order to do this the = e(gri , H(i)qx(0))  attacker must pair C from the ciphertext with the D = e(g, g)rqx(0). component from some user’s private key. This will re- sult in the desired value e(g, g)αs, but blinded by some If i∈ / S, then we define DecryptNode(CT, SK,x) = ⊥. value e(g, g)rs. This value can be blinded out if and We now consider the recursive case when x is a only if enough the user has the correct key compo- non-leaf node. The algorithm DecryptNode(CT, SK,x) nents to satisfy the secret sharing scheme embedded in then proceeds as follows: For all nodes z that are chil- the ciphertext. Collusion attacks won’t help since the dren of x, it calls DecryptNode(CT, SK,z) and stores blinding value is randomized to the randomness from the output as Fz. Let Sx be an arbitrary kx-sized set a particular user’s private key. of child nodes z such that Fz 6= ⊥. If no such set ex- While we described our scheme to be secure against ists then the node was not satisfied and the function chosen attacks, the security of our scheme returns ⊥. can efficiently be extended to chosen ciphertext at- Otherwise, we compute tacks by applying a random oracle technique such as that of the the Fujisaki-Okamoto transformation [13]. ∆ ′ (0) i,Sx i=index(z) Fx = Fz , where ′ Alternatively, we can leverage the delegation mecha- Sx={index(z):z∈Sx} zY∈Sx nism of our scheme and apply the Cannetti, Halevi, r·q (0) ∆ ′ (0) and Katz [10] method for achieving CCA-security. = (e(g, g) z ) i,Sx

zY∈Sx ∆ ′ (0) Efficiency. The efficiencies of the key generation and r·qparent(z)(index(z)) i,S = (e(g, g) ) x (by construction) encryption algorithms are both fairly straightforward. zY∈Sx The encryption algorithm will require two exponentia- r·qx(i)·∆ ′ (0) = e(g, g) i,Sx tions for each leaf in the ciphertext’s access tree. The

zY∈Sx ciphertext size will include two group elements for each = e(g, g)r·qx(0) (using polynomial interpolation) tree leaf. The key generation algorithm requires two exponentiations for every attribute given to the user, and return the result. and the private key consists of two group elements for for every time period before X. When a party encrypts a message on some date Y , a user with a key expiring on date X should be able to decrypt iff X ≥ Y and "a : 0***" the rest of the policy matches the user’s attributes. In this manner, different expiration dates can be given to different users and there does not need to be any close "a : *0**" coordination between the parties encrypting data and the authority. "a : **0*" "a : ***0" This sort of functionality can be realized by extend- ing our attributes to support numerical values and our Figure 1. Policy tree implementing the integer policies to support integer comparisons. To represent comparison “a < 11”. a numerical attribute “a = k” for some n-bit integer k we convert it into a “bag of bits” representation, pro- ducing n (non-numerical) attributes which specify the value of each bit in k. As an example, to give out a pri- every attribute. In its simplest form, the decryption al- vate key with the 4-bit attribute “a = 9”, we would in- gorithm could require two pairings for every leaf of the stead include “a : 1***”, “a : *0***”, “a : **0*”, and access tree that is matched by a private key attribute “a : ***1” in the key. We can then use policies of AND and (at most2) one exponentiation for each node along and OR gates to implement integer comparisons over a path from such a leaf to the root. However, there such attributes, as shown for “a < 11” in Figure 1. might be several ways to satisfy a policy, so a more There is a direct correspondence between the bits of intelligent algorithm might try to optimize along these the constant 11 and the choice of gates. Policies for ≤, lines. In our implementation description in Section 5 >, ≥, and = can be implemented similarly with at most we described various performance enhancements. n gates, or possibly fewer depending on the constant. It is also possible to construct comparisons between Key-revocation and numerical attributes. Key- two numerical attributes (rather than an attribute and Revocation is typically a difficult issue in identity- a constant) using roughly 3n gates, although it is less based encryption [27, 7] and related schemes. The core clear when this would be useful in practice. challenge is that since the party encrypting the data does not obtain the receiver’s certificate on-line, he is 5 Implementation not able to check if the the receiving party is revoked. In attribute-based encryption the problem is even more In this section we discuss practical issues in imple- tricky since several different users might match the de- menting the construction of Section 4, including several cryption policy. The usual solution is to append to optimizations, a description of the toolkit we have de- each of the identities or descriptive attributes a date veloped, and measurements of its performance. for when the attribute expires. For instance, Pirretti et al. [23] suggest extending each attribute with an expi- 5.1 Decryption Efficiency Improvements ration date. For example, instead of using the attribute “Computer Science” we might use the attribute “Com- While little can be done to reduce the group opera- puter Science: Oct 17, 2006”. tions necessary for the setup, key generation, and en- This type of method has a several shortcomings. cryption algorithms, the efficiency of the decryption al- Since the attributes incorporate an exact date there gorithm can be improved substantially with novel tech- must be agreement on this between the party encrypt- niques. We explain these improvements here and later ing the data and the key issuing authority. If we wish give measurements showing their effects in Section 5.3. for a party to be able to specify policy about revocation dates on a fine-grained scale, users will be forced to go Optimizing the decryption strategy. The recur- often to the authority and maintain a large amount of sive algorithm given in Section 4 results in two pairings private key storage, a key for every time period. for each leaf node that is matched by a private key at- Ideally, we would like an attribute-based encryption tribute, and up to one exponentiation for every node system to allow a key authority to give out a single key occurring along the path from such a node to the root with some expiration date X rather than a separate key (not including the root). The final step after the recur- 2Fewer exponentiations may occur if there is an unsatisfied sive portion adds an additional pairing. Of course, at internal node along the path. each internal node with threshold k, the results from all but k of its children are thrown away. By consid- Using this method, the number of exponentiations in ering ahead of time which leaf nodes are satisfied and the entire decryption algorithm is reduced from |M|−1 picking a subset of them which results in the satisfac- (i.e., one for every node but the root) to |L|. The tion of the entire access tree, we may avoid evaluating number of pairings is 2|L|. DecryptNode where the result will not ultimately be used. Merging pairings. Still further reductions (this More precisely, let M be a subset of the nodes in an time in the number of pairings) are possible by com- access tree T . We define restrict(T ,M) to be the ac- bining leaves using the same attribute. If att(ℓ1) = cess tree formed by removing the following nodes from att(ℓ2) = i for some ℓ1, ℓ2 in L, then

T (while leaving the thresholds unmodified). First, we z z ℓ1 ℓ2 remove all nodes not in M. Next we remove any node e(Di,Cℓ1 ) e(Di,Cℓ2 ) ′ ′ · ′ ′ e(Di,C ) e(Di,C ) not connected to the original root of T along with any ℓ1 ! ℓ2 ! z z internal node x that now has fewer children than its ℓ ℓ e(Di,C 1 ) e(Di,C 2 ) ℓ1 ℓ2 threshold kx. This is repeated until no further nodes = ′ z · ′ z ′ ℓ1 ′ ℓ2 e(Di,Cℓ ) e(Di,Cℓ ) are removed, and the result is restrict(T ,M). So given 1 2 zℓ zℓ an access tree T and a set of attributes γ that satisfies e(Di,C 1 · C 2 ) ℓ1 ℓ2 = ′ z ′ z . it, the natural problem is to pick a set M such that γ ′ ℓ1 ℓ2 e(Di,Cℓ · Cℓ ) satisfies restrict(T ,M) and the number of leaves in M 1 2 is minimized (considering pairing to be the most ex- Using this fact, we may combine all the pairings for pensive operation). This is easily accomplished with a each distinct attribute in L, reducing the total pairings straightforward recursive algorithm that makes a single to 2m, where m is the number of distinct attributes traversal of the tree. We may then use DecryptNode appearing in L. Note, however, that the number of on restrict(T ,M) with the same result. exponentiations increases, and some of the exponenti- ations must now be performed in G0 rather than G1. Direct computation of DecryptNode. Further Specifically, if m′ is the number of leaves sharing their improvements may be gained by abandoning the attribute with at least one other leaf, we must perform ′ ′ DecryptNode function and making more direct com- 2m exponentiations in G0 and |L| − m in G1, rather putations. Intuitively, we imagine flattening out the than zero and |L| respectively. If exponentiations in G0 tree of recursive calls to DecryptNode, then combin- (an elliptic curve group) are slower than in G1 (a finite ing the exponentiations into one per (used) leaf node. field of the same order), this technique has the poten- Precisely, let T be an access tree with root r, γ be a tial to increase decryption time. We further investigate set of attributes, and M ⊆ T be such that γ satis- this tradeoff in Section 5.3. fies restrict(T ,M). Assume also that M is minimized so that no internal node has more children than its 5.2 The cpabe Toolkit threshold. Let L ⊆ M be the leaf nodes in M. Then for each ℓ ∈ L, we denote the path from ℓ to r as We have implemented the construction of Section 4 cpabe ρ(ℓ) = (ℓ, parent(ℓ), parent(parent(ℓ)), ...r) . as a convenient set of tools we call the pack- age [4], which has been made available on the web Also, denote the set of siblings of a node x (including under the GPL. The implementation uses the Pairing 3 itself) as sibs(x) = { y | parent(x) = parent(y) }. Given Based Cryptography (PBC) library [21]. The inter- this notation, we may proceed to directly compute the face of the toolkit is designed for straightforward invo- result of cation by larger systems in addition to manual usage. DecryptNode(CT, SK, r). First, for each ℓ ∈ L, com- It provides four command line tools. pute z as follows. ℓ cpabe-setup i=index(x) Generates a public key and a master key. zℓ = ∆i,S(0) where S={ index(y) | y ∈ sibs(x) } cpabe-keygen x∈Yρ(ℓ) x6=r Given a master key, generates a private key for a set of attributes, compiling numerical attributes Then as necessary. zℓ e(D , C ) 3 DecryptNode(CT, SK, r) = i ℓ . PBC is in turn based on the GNU Multiple Precision arith- e(D′, C′) metic library (GMP), a high performance arbitrary precision ℓY∈L i ℓ i=att(ℓ) arithmetic implementation suitable for cryptography.

° cpabe-keygen -o sara priv key pub key master key \

³ ³ ³` ` sysadmin it department ³office = 1431 hire date = date +%s

° cpabe-keygen -o kevin priv key pub key master key \ ³

business staff strategy team ³executive level = 7 \

³ ³ ³` ` ³office = 2362 hire date = date +%s

° cpabe-enc pub key security report.pdf (sysadmin and (hire date < 946702800 or security team)) or (business staff and 2 of (executive level >= 5, audit group, strategy team))

Figure 2. Example usage of the cpabe toolkit. Two private keys are issued for various sets of attributes (normal and numerical) using cpabe-keygen. A document is encrypted under a complex policy using cpabe-enc.

cpabe-enc to their “bag of bits” representation and comparisons Given a public key, encrypts a file under an access into their gate-level implementation. tree specified in a policy language. cpabe-dec 5.3 Performance Measurements Given a private key, decrypts a file. We now provide some information on the perfor- The cpabe toolkit supports the numerical attributes mance achieved by the cpabe toolkit. Figure 3 displays and range queries described in Section 4.3 and provides measurements of private key generation time, encryp- a familiar language of expressions with which to specify tion time, and decryption time produced by running access policies. These features are illustrated in the cpabe-keygen, cpabe-enc, and cpabe-dec on a range sample usage session of Figure 2. of problem sizes. The measurements were taken on In this example, the cpabe-keygen tool was first a modern workstation.4 The implementation uses a used to produce private keys for two new employees, 160-bit elliptic curve group based on the supersingular “Sara” and “Kevin”. A mix of regular and numeri- curve y2 = x3 +x over a 512-bit finite field. On the test cal attributes were specified; in particular shell back- machine, the PBC library can compute pairings in ap- ticks were used to store the current timestamp (in sec- proximately 5.5ms, and exponentiations in G and G onds since 1970) in the “hire date” attribute. The 0 1 take about 6.4ms and 0.6ms respectively. Randomly cpabe-enc tool was then used to encrypt a security selecting elements (by reading from the Linux kernel’s sensitive report under a complex policy (in this case /dev/urandom) is also a significant operation, requiring specified on the standard input). The policy allows de- about 16ms for G and 1.6ms for G . cryption by sysadmins with at least a certain seniority 0 1 As expected, cpabe-keygen runs in time precisely (hired before January 1, 2000) and those on the secu- linear in the number of attributes associated with the rity team. Members of the business staff may decrypt key it is issuing. The running time of cpabe-enc is also if they are in the audit group and the strategy team, almost perfectly linear with respect to the number of or if they are in one of those teams and are an execu- leaf nodes in the access policy. The polynomial opera- tive of “level” five or more. So in this example, Kevin tions at internal nodes amount to a modest number of would be able to use the key stored as kevin priv key multiplications and do not significantly contribute to to decrypt the resulting document, but Sara would not the running time. Both remain quite feasible for even be able to use hers to decrypt the document. the largest problem instances. As demonstrated by this example, the policy lan- The performance of cpabe-dec is somewhat more guage allows the general threshold gates of the under- interesting. It is slightly more difficult to measure in lying scheme, but also provides AND and OR gates for the absence of a precise application, since the decryp- convenience. These are appropriately merged to sim- tion time can depend significantly on the particular plify the tree, that is, specifying the policy “(a and access trees and set of attributes involved. In an at- b) and (c and d and e)” would result in a single gate. The tools also handle compiling numerical attributes 4The workstation’s processor is a 64-bit, 3.2 Ghz Pentium 4. 2 3 0.14 naive flatten 2.5 0.12 merge 1.5 2 0.1

0.08 1 1.5 0.06 1 0.5 0.04

time to encrypt (seconds) 0.5 time to decrypt (seconds) 0.02

0 0 0 time to generate private key (seconds) 0 10 20 30 40 50 0 20 40 60 80 100 0 20 40 60 80 100 attributes in private key leaf nodes in policy leaf nodes in policy

(a) Key generation time. (b) Encryption time. (c) Decryption time with various levels of optimization.

Figure 3. Performance of the cpabe toolkit. tempt to average over this variation, we ran cpabe-dec attributes in a key or leaves in a policy tree. The per- on a series of ciphertexts that had been encrypted un- formance of cpabe-dec depends on the specific access der randomly generated policy trees of various sizes. tree of the ciphertext and the attributes available in The trees were generated by starting with only a root the private key, and can be improved by some of the node, then repeatedly adding a child to a randomly optimizations considered in Section 5.1. In all cases, selected node until the desired number of leaf nodes the toolkit consumes almost no overhead beyond the was reached. At that point random thresholds were se- cost of the underlying group operations and random lected for each internal node. Since the time to decrypt selection of elements. Large private keys and policies also depends on the particular attributes available, for are possible in practice while maintaining reasonable each run of cpabe-dec, we selected a key uniformly at running times. random from all keys satisfying the policy. This was accomplished by iteratively taking random subsets of the attributes appearing in leaves of the tree and dis- 6 Conclusions and Open Directions carding those that did not satisfy it. A series of runs of cpabe-dec conducted in this manner produced the We created a system for Ciphertext-Policy Attribute running times displayed in Figure 3 (c). Based Encryption. Our system allows for a new type of These measurements give some insight into the ef- encrypted access control where user’s private keys are fects of the optimizations described in Section 5.1 (all specified by a set of attributes and a party encrypting of which are implemented in the system). The line data can specify a policy over these attributes specify- marked “naive” denotes the decryption time result- ing which users are able to decrypt. Our system allows ing from running the recursive DecryptNode algorithm policies to be expressed as any monotonic tree access and arbitrarily selecting nodes to satisfy each threshold structure and is resistant to collusion attacks in which gate. By ensuring that the final number of leaf nodes an attacker might obtain multiple private keys. Finally, is minimized when making these decisions and replac- we provided an implementation of our system, which ing the DecryptNode algorithm with the “flattened” included several optimization techniques. algorithm to reduce exponentiations, we obtain the im- In the future, it would be interesting to con- proved times denoted “flatten”. Perhaps most inter- sider attribute-based encryption systems with different estingly, employing the technique for merging pairings types of expressibility. While, Key-Policy ABE and between leaf nodes sharing the same attribute, denoted Ciphertext-Policy ABE capture two interesting and “merge”, actually increases running time in this case, complimentary types of systems there certainly exist due to fact that exponentiations are more expensive in other types of systems. The primary challenge in this G G 0 than in 1. line of work is to find a new systems with elegant forms In summary, cpabe-keygen and cpabe-enc run in of expression that produce more than an arbitrary com- a predictable amount of time based on the number of bination of techniques. One limitation of our system is that it is proved se- [14] R. Gavriloaie, W. Nejdl, D. Olmedilla, K. E. Seamons, cure under the generic group heuristic. We believe an and M. Winslett. No registration needed: How to use important endeavor would be to prove a system secure declarative policies and negotiation to access sensitive under a more standard and non-interactive assump- resources on the semantic web. In ESWS, pages 342– tion. This type of work would be interesting even if 356, 2004. it resulted in a moderate loss of efficiency from our [15] V. Goyal, O. Pandey, A. Sahai, and B. Waters. At- existing system. tribute Based Encryption for Fine-Grained Access Conrol of Encrypted Data. In ACM conference on Computer and Communications Security (ACM CCS), References 2006. [16] H. Harney, A. Colgrove, and P. D. McDaniel. Princi- ples of policy in secure groups. In NDSS, 2001. [1] A. Beimel. Secure Schemes for Secret Sharing and Key Distribution. PhD thesis, Israel Institute of Technol- [17] M. Ito, A. Saito, and T. Nishizeki. Secret Sharing ogy, Technion, Haifa, Israel, 1996. Scheme Realizing General Access Structure. In IEEE Globecom. IEEE, 1987. [2] M. Bellare and P. Rogaway. Random oracles are prac- tical: A paradigm for designing efficient protocols. In [18] M. H. Kang, J. S. Park, and J. N. Froscher. Access con- ACM conference on Computer and Communications trol mechanisms for inter-organizational workflow. In Security (ACM CCS), pages 62–73, 1993. SACMAT ’01: Proceedings of the sixth ACM sympo- sium on Access control models and technologies, pages [3] J. Benaloh and L. J. Generalized Secret Sharing 66–74, New York, NY, USA, 2001. ACM Press. and Monotone Functions. In Advances in Cryptol- ogy – CRYPTO, volume 403 of LNCS, pages 27–36. [19] A. Kapadia, P. Tsang, and S. Smith. Attribute-based Springer, 1988. publishing with hidden credentials and hidden policies. [4] J. Bethencourt, A. Sahai, and B. Waters. The cpabe In NDSS, 2007. toolkit. http://acsc.csl.sri.com/cpabe/. [20] J. Li, N. Li, and W. H. Winsborough. Automated [5] G. R. Blakley. Safeguarding cryptographic keys. In trust negotiation using cryptographic credentials. In National Computer Conference, pages 313–317. Amer- ACM Conference on Computer and Communications ican Federation of Information Processing Societies Security, pages 46–57, 2005. Proceedings, 1979. [21] B. Lynn. The Pairing-Based Cryptography (PBC) li- [6] D. Boneh, X. Boyen, and E.-J. Goh. Hierarchical iden- brary. tity based encryption with constant size ciphertext. http://crypto.stanford.edu/pbc. In R. Cramer, editor, EUROCRYPT, volume 3494 of [22] P. D. McDaniel and A. Prakash. Methods and limita- Lecture Notes in Computer Science, pages 440–456. tions of security policy reconciliation. In IEEE Sym- Springer, 2005. posium on Security and Privacy, pages 73–87, 2002. [7] D. Boneh and M. Franklin. Identity Based Encryp- [23] M. Pirretti, P. Traynor, P. McDaniel, and B. Wa- tion from the Weil Pairing. In Advances in Cryptology ters. Secure Atrribute-Based Systems. In ACM con- – CRYPTO, volume 2139 of LNCS, pages 213–229. ference on Computer and Communications Security Springer, 2001. (ACM CCS), 2006. [8] R. W. Bradshaw, J. E. Holt, and K. E. Seamons. Con- [24] A. Sahai and B. Waters. Fuzzy Identity Based Encryp- cealing complex policies with hidden credentials. In tion. In Advances in Cryptology – Eurocrypt, volume ACM Conference on Computer and Communications 3494 of LNCS, pages 457–473. Springer, 2005. Security, pages 146–157, 2004. [25] J. T. Schwartz. Fast probabilistic algorithms for veri- [9] E. F. Brickell. Some ideal secret sharing schemes. fication of polynomial identities. J. ACM, 27(4):701– Journal of Combinatorial Mathematics and Combina- 717, 1980. torial Computing, 6:105–113, 1989. [26] A. Shamir. How to share a secret. Commun. ACM, [10] R. Canetti, S. Halevi, and J. Katz. Chosen Cipher- 22(11):612–613, 1979. text Security from Identity Based Encryption. In [27] A. Shamir. Identity Based and Signa- Advances in Cryptology – Eurocrypt, volume 3027 of ture Schemes. In Advances in Cryptology – CRYPTO, LNCS, pages 207–222. Springer, 2004. volume 196 of LNCS, pages 37–53. Springer, 1984. [11] M. Chase. Multi-authority attribute-based encryp- [28] V. Shoup. Lower bounds for discrete logarithms and tion. In (To Appear) The Fourth Theory of Cryptog- related problems. In EUROCRYPT, pages 256–266, raphy Conference (TCC 2007), 2007. 1997. [12] C. Cocks. An identity based encryption scheme based [29] N. P. Smart. Access control using pairing based cryp- on quadratic residues. In IMA Int. Conf., pages 360– tography. In CT-RSA, pages 111–121, 2003. 363, 2001. [30] T. Yu and M. Winslett. A unified scheme for resource [13] E. Fujisaki and T. Okamoto. Secure integration of protection in automated trust negotiation. In IEEE asymmetric and symmetric encryption schemes. In Symposium on Security and Privacy, pages 110–122, CRYPTO, pages 537–554, 1999. 2003. [31] R. Zippel. Probabilistic algorithms for sparse polyno- A Security Proof mials. In E. W. Ng, editor, EUROSAM, volume 72 of Lecture Notes in Computer Science, pages 216–226. In this section, we use the generic bilinear group Springer, 1979. model of [6, 28] and the random oracle model [2] to argue that no efficient adversary that acts generically on the groups underlying our scheme can break the se- curity of our scheme with any reasonable probability. At an intuitive level, this means that if there are any vulnerabilities in our scheme, then these vulnerabilities must exploit specific mathematical properties of ellip- tic curve groups or cryptographic hash functions used when instantiating our construction. While from a security standpoint, it would be prefer- able to have a proof of security that reduces the problem of breaking our scheme to a well-studied complexity-theoretic problem, there is reason to believe that such reductions will only exist for more complex (and less efficient) schemes than the one we give here. We also stress that ours is the first construction which offers the security properties we are proposing here; we strongly encourage further research that can place this kind of security on a firmer theoretical foundation.

The generic bilinear group model. We follow [6] here: We consider two random encodings ψ0, ψ1 of the additive group Fp, that is injective maps ψ0, ψ1 : Fp → m {0, 1} , where m > 3 log(p). For i = 0, 1 we write Gi = {ψi(x) : x ∈ Fp}. We are given oracles to compute the induced group action on G0, G1 and an oracle to compute a non-degenerate bilinear map e : G0 × G0 → G1. We are also given a random oracle to represent the hash function H. We refer to G0 as a generic bilinear group. The following theorem gives a lower bound on the advantage of a generic adversary in breaking our CP- ABE scheme.

Theorem 1 Let ψ0, ψ1, G0, G1 be defined as above. For any adversary A, let q be a bound on the total num- ber of group elements it receives from queries it makes to the oracles for the hash function, groups G0 and G1, and the bilinear map e, and from its interaction with the CP-ABE security game. Then we have that the ad- vantage of the adversary in the CP-ABE security game is O(q2/p).

Proof. We first make the following standard obser- vation, which follows from a straightforward hybrid ar- gument: In the CP-ABE security game, the challenge ciphertext has a component C˜ which is randomly either αs αs M0e(g, g) or M1e(g, g) . We can instead consider a modified game in which C˜ is either e(g, g)αs or e(g, g)θ, where θ is selected uniformly at random from Fp, and the adversary must decide which is the case. It is clear and C = hs. For each relevant attribute i, we have λi ′ tiλi that any adversary that has advantage ǫ in the CP- Ci = g , and Ci = g . These values are sent to the ABE game can be transformed into an adversary that adversary. has advantage at least ǫ/2 in the modified CP-ABE (Note, of course, that if the adversary asks for a de- game. (To see this consider two hybrids: one in which cryption key for a set of attributes that pass the chal- αs the adversary must distinguish between M0e(g, g) lenge access structure, then the simulation does not and e(g, g)θ; another in which it must distinguish be- issue the key; similarly if the adversary asks for a chal- θ αs tween e(g, g) and M1e(g, g) . Clearly both of these lenge access structure such that one of the keys already are equivalent to the modified game above.) From now issued pass the access structure, then the simulation on, we will bound the adversary’s advantage in the aborts and outputs a random guess on behalf of the modified game. adversary, just as it would in the real game.) We now introduce some notation for the simulation We will show that with probability 1 − O(q2/p), of the modified CP-ABE game. Let g = ψ0(1) (we will taken over the randomness of the the choice of variable x y write g to denote ψ0(x), and e(g, g) to denote ψ1(y) values in the simulation, the adversary’s view in this in the future). simulation is identically distributed to what its view At setup time, the simulation chooses α, β at ran- would have been if it had been given C˜ = e(g, g)αs. dom from Fp (which we associate with the integers from We will therefore conclude that the advantage of the 0 to p − 1). Note that if β = 0, an event that happens adversary is at most O(q2/p), as claimed. with probability 1/p, then setup is aborted, just as it When the adversary makes a query to the group ora- would be in the actual scheme. The public parame- cles, we may condition on the event that (1) the adver- ters h = gβ, f = g1/β, and e(g, g)α are sent to the sary only provides as input values it received from the adversary. simulation, or intermediate values it already obtained When the adversary (or simulation) calls for the from the oracles, and (2) there are p distinct values in evaluation of H on any string i, a new random value the ranges of both φ0 and φ1. (This event happens with ti is chosen from Fp (unless it has already been cho- overwhelming probability 1−O(1/p).) As such, we may sen), and the simulation provides gti as the response keep track of the algebraic expressions being called for to H(i). from the oracles, as long as no “unexpected collisions” When the adversary makes its j’th key generation happen. More precisely, we think of an oracle query query for the set S of attributes, a new random value as being a rational function ν = η/ξ in the variables j (j) (j) (j) r is chosen from Fp, and for every i ∈ Sj , new ran- θ,α,β,ti’s, r ’s, ri ’s, s, and µk’s. An unexpected (j) F collision would be when two queries corresponding to dom values ri are chosen from p. The simulator ′ ′ (α+r(j))/β two distinct formal rational functions η/ξ 6= η /ξ but then computes: D = g and for each i ∈ Sj , (j) (j) (j) where due to the random choices of these variables’ val- r +tiri ′ ri ′ ′ we have Di = g and Di = g . These values , we have that the values of η/ξ and η /ξ coincide. are passed onto the adversary. We now condition on the event that no such unex- When the adversary asks for a challenge, giving two pected collisions occur in either group G0 or G1. For G A messages M0,M1 ∈ 1, and the access tree , the sim- any pair of queries (within a group) corresponding to ulator does the following. First, it chooses a random s distinct rational functions η/ξ and η′/ξ′, a collision oc- F ′ ′ from p. Then it uses the linear secret sharing scheme curs only if the non-zero polynomial ηξ −ξη evaluates associated with A (as described in Section 4) to con- to zero. Note that the total degree of ηξ′ −ξη′ is in our struct shares λi of s for all relevant attributes i. We case at most 5. By the Schwartz-Zippel lemma [25, 31], stress again that the λi are all chosen uniformly and the probability of this event is O(1/p). By a union F independently at random from p subject to the lin- bound, the probability that any such collision happens ear conditions imposed on them by the secret sharing is at most O(q2/p). Thus, we can condition on no such scheme. In particular, the choice of the λi’s can be per- collision happening and still maintain 1 − O(q2/p) of fectly simulated by choosing ℓ random values µ1, . . . µℓ the probability mass. F uniformly and independently from p, for some value Now we consider what the adversary’s view would of ℓ, and then letting the λi be fixed public linear com- have been if we had set θ = αs. We will show that binations of the µk’s and s. We will often think of subject to the conditioning above, the adversary’s view the λi as written as such linear combinations of these would have been identically distributed. Since we are independent random variables later. in the generic group model where each group element’s Finally, the simulation chooses a random θ ∈ Fp, representation is uniformly and independently chosen, and constructs the encryption as follows: C˜ = e(g, g)θ the only way that the adversary’s view can differ in the (j) ′ ′ ′ ′ (j) ′ titi λiti titi λi tir + titi ri′ (j) (j) (j) tiri′ ti α + r αs + sr (j) (j) ′ ′ ′ (j) ′ λiλi tiλiλi λi r + λi tiri λiri (j) (j) (j) λi titi′ λiλi′ tiλir + titi′ λir ′ tiλir ′ ′ i ′ i i (j) (j) (j) (j ) (j) (j) (j ) (j) (j) tiλi (r + tir )(r + ti′ r ′ ) (r + tir )r ′ r + tir ′ i i i i i (j) (j ) (j) ri ri′ ri s Table 1. Possible query types from the adversary.

case of θ = αs is if there are two queries ν and ν′ into linear combinations in order to cancel the terms of the G ′ ′ (j) 1 such that ν 6= ν but ν|θ=αs = ν |θ=αs. We will form j∈T γjsr . show that this never happens. Suppose not. WeP observe (by referencing the table above) that Recall that since θ only occurs as e(g, g)θ, which the only other term that the adversary has access to ′ (j) lives in G1, the only dependence that ν or ν can have that could involve monomials of the form sr are ob- (j) ′ (j) ′ on θ is by having some additive terms of the form γ θ, tained by pairing r + tiri with some λi , since the ′ where γ is a constant. Therefore, we must have that λi′ terms are linear combinations of s and the µk’s. ′ ′ ′ ν − ν = γαs − γθ, for some constant γ 6= 0. We can In this way, for sets Tj and constants γ(i,j,i ) 6= 0, then artificially add the query ν − ν′ + γθ = γαs to the adversary can construct a query polynomial of the the adversary’s queries. But we will now show that the form: adversary can never construct a query for e(g, g)γαs (subject to the conditioning we have already made), (j) (j) (j) γαs+ γ sr + γ ′ λ ′ r + λ ′ t r +other terms which will reach a contradiction and establish the the-  j (i,j,i ) i i i i  jX∈T (i,iX′)∈T ′   orem.  j  What is left now is to do a case analysis based on Now, to conclude this proof, we do the following case the information given to the adversary by the simula- analysis: tion. For sake of completeness and ease of reference for the reader, in Table 1 we enumerate over all rational Case 1 There exists some j ∈ T such that the set of secret G ′ ′ ′ function queries possible into 1 by means of the bilin- shares Lj = {λi : ∃i : (i, i ) ∈ Tj} do not allow for ear map and the group elements given the adversary in the reconstruction of the secret s. the simulation, except those in which every monomial If this is true, then the term sr(j) will not be involves the variable β, since β will not be relevant to canceled, and so the adversary’s query polynomial constructing a query involving αs. Here the variables i cannot be of the form γαs. and i′ are possible attribute strings, and the variables ′ j and j are the indices of secret key queries made by Case 2 For all j ∈ T the set of secret shares Lj = {λi′ : ′ ′ the adversary. These are given in terms of λi’s, not ∃i : (i, i ) ∈ Tj} do allow for the reconstruction of µk’s. The reader may check the values given in Table 1 the secret s. against the values given in the simulation above. Fix any j ∈ T . Consider S , the set of attributes G j In the group 1, in addition to the polynomials in belonging to the j’th adversary key request. By the table above, the adversary also has access to 1 and the assumption that no requested key should pass α. The adversary can query for arbitrary linear combi- the challenge access structure, and the properties nations of these, and we must show that none of these of the secret sharing scheme, we know that the set polynomials can be equal to a polynomial of the form ′ Lj = {λi : i ∈ Sj} cannot allow for the reconstruc- γαs. Recall that γ 6= 0 is a constant. tion of s. As seen above, the only way that the adversary Thus, there must exist at least one share λ ′ in L can create a term containing αs is by pairing sβ with i j such that λ ′ is linearly independent of L′ when (α + r(j))/β to get the term αs + sr(j). In this way, i j written in terms of s and the µ ’s. By the case the adversary could create a query polynomial contain- k (j) analysis, this means that in the adversary’s query ing γαs + j∈T γjsr , for some set T and constants (j) there is a term of the form λi′ tir for some i ∈ Sj . γ, γj 6= 0. P i In order for the adversary to obtain a query poly- However, (examining the table above), there is no nomial of the form γαs, the adversary must add other term that the adversary has access to that can cancel this term. Therefore, any adversary query polynomial of this form cannot be of the form γαs.