Documente Academic
Documente Profesional
Documente Cultură
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 possesses a certain set of AND (“Knoxville” OR “San Francisco”)) OR
credentials or attributes. Currently, the only method (management-level > 5) OR “Name: Charlie
for enforcing such policies is to employ a trusted server Eppes”).
to store the data and mediate access control. However, By this, the head agent could mean that the memo
if 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 present 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 key encryption methods allow
∗ Supported the US Army Research Office under the CyberTA
a party to encrypt data to a particular user, but are
Grant No. W911NF-06-1-0316.
unable to efficiently handle more expressive types of en-
† 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 secret sharing 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 cipher- 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 cryptography.
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
mised. of {P1 , P2 , . . . , Pn }, i.e., A ⊆ 2{P1 ,P2 ,...,Pn } \{∅}. 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,
1 Goyal 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 Sq1 +1 , . . . , Sq satisfy the
M , and an access structure A over the universe of
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
defined as Pr[b′ = b] − 12 . 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
˜ for the set of
a set S̃ ⊆ S. It output a secret key SK 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 , v b ) = 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-
versary to query for any private keys that cannot be We say that G0 is a bilinear group if the group op-
used to decrypt the challenge ciphertext. In CP-ABE eration in G0 and the bilinear map e : G0 × G0 → G1
the ciphertexts are identified with access structures and are both efficiently computable. Notice that the map
the private keys with attributes. It follows that in our e is symmetric since e(g a , g b ) = e(g, g)ab = e(g b , g a ).
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 S1 , . . . , Sq1 .
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 Q i ∈ Zp and a set, S,
the Lagrange coefficient ∆i,S for
access tree structure a policy that private keys must of elements in Zp : ∆i,S (x) = j∈S,j6=i x−j
i−j . We will
satisfy in order to decrypt. additionally employ a hash function 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
describe the access trees, even though in our case the PK = G0 , g, h = g β , f = g 1/β , 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̃ = M e(g, g)αs , C = hs ,
Satisfying an access tree. Let T be an access tree ∀y ∈ Y : Cy = g qy (0) , Cy′ = H(att(y))qy (0) .
with root r. Denote by Tx the subtree of T rooted at
the node x. Hence T is the same as Tr . If a set of
KeyGen(MK, S). The key generation algorithm
attributes γ satisfies the access tree Tx , we denote it as
will take as input a set of attributes S and output a
Tx (γ) = 1. We compute Tx (γ) recursively as follows.
key that identifies with that set. The algorithm first
If x is a non-leaf node, evaluate Tx′ (γ) for all children
chooses a random r ∈ Zp , and then random rj ∈ Zp
x′ of node x. Tx (γ) returns 1 if and only if at least
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)/β ,
Dj = g r · H(j)rj , Dj′ = g rj .
4.2 Our Construction ∀j ∈ S :
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 random r̃ and r̃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
˜ = (D̃ = Df r̃ ,
SK function on the root node R of the tree T . If the tree is
∀k ∈ S̃ : D̃k = Dk g r̃ H(k)r̃k , D̃k′ = Dk′ g r̃k ). 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.
z∈Sx
Y ∆i,S ′ (0)Efficiency. The efficiencies of the key generation and
= (e(g, g)r·qparent(z) (index(z)) )
(by construction) encryption algorithms are both fairly straightforward.
x
z∈Sx
The encryption algorithm will require two exponentia-
Y r·qx (i)·∆i,S ′ (0)
= e(g, g) x tions for each leaf in the ciphertext’s access tree. The
z∈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.
This sort of functionality can be realized by extend-
"a : **0*" "a : ***0"
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
every attribute. In its simplest form, the decryption al- private key with the 4-bit attribute “a = 9”, we would
gorithm could require two pairings for every leaf of the instead 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-
2 Fewer 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 )
·
not connected to the original root of T along with any e(Di′ , Cℓ′ 1 ) e(Di′ , Cℓ′ 2 )
internal node x that now has fewer children than its zℓ zℓ
e(Di , Cℓ1 1 ) e(Di , Cℓ2 2 )
threshold kx . This is repeated until no further nodes = ′ zℓ 1 · ′ zℓ 2
are removed, and the result is restrict(T , M ). So given e(Di′ , Cℓ1 ) e(Di′ , Cℓ2 )
zℓ zℓ
an access tree T and a set of attributes γ that satisfies e(Di , Cℓ1 1 · Cℓ2 2 )
it, the natural problem is to pick a set M such that γ = ′ zℓ ′ zℓ .
e(Di′ , Cℓ1 1 · Cℓ2 2 )
satisfies restrict(T , M ) and the number of leaves in M
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
ρ(ℓ) = (ℓ, parent(ℓ), parent(parent(ℓ)), . . . r) . as a convenient set of tools we call the cpabe 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
itself) as sibs(x) = { y | parent(x) = parent(y) }. Given Based Cryptography (PBC) library [21].3 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
zℓ =
Y
∆i,S (0) i=index(x)
where S={ index(y) Generates a public key and a master key.
| y ∈ sibs(x) }
x∈ρ(ℓ)
cpabe-keygen
x6=r Given a master key, generates a private key for a
set of attributes, compiling numerical attributes
Then as necessary.
Y e(Di , Cℓ ) zℓ 3 PBC is in turn based on the GNU Multiple Precision arith-
DecryptNode(CT, SK, r) = .
e(Di′ , Cℓ′ ) metic library (GMP), a high performance arbitrary precision
ℓ∈L
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`
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.
2 3
0.14 naive
flatten
0.08
1 1.5
0.06
1
0.5 0.04
0.5
0.02
0 0 0
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.
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
G0 than in G1 . 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-
tribute Based Encryption for Fine-Grained Access
existing system.
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 Cryptosystems 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.
case of θ = αs is if there are two queries ν and ν ′ into linearPcombinations in order to cancel the terms of the
G1 such that ν 6= ν ′ but ν|θ=αs = ν ′ |θ=αs . We will form j∈T γj sr(j) .
show that this never happens. Suppose not. We observe (by referencing the table above) that
θ the only other term that the adversary has access to
Recall that since θ only occurs as e(g, g) , which
lives in G1 , the only dependence that ν or ν ′ can have that could involve monomials of the form sr(j) are ob-
(j)
on θ is by having some additive terms of the form γ ′ θ, tained by pairing r(j) + ti ri 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), X
γj sr(j) +
X
(j)
γαs+ γ(i,j,i′ ) λi′ r(j) + λi′ ti ri +other terms
which will reach a contradiction and establish the the-
j∈T (i,i′ )∈Tj′
orem.
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
function queries possible into G1 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 Sj , the set of attributes
In the group G1 , 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 L′j = {λ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 λi′ in Lj
can create a term containing αs is by pairing sβ with
(j) (j) such that λi′ is linearly independent of L′j when
(α + r )/β to get the term αs + sr . In this way,
written in terms of s and the µk ’s. By the case
the adversary
P could create a query polynomial contain-
(j) analysis, this means that in the adversary’s query
ing γαs + j∈T γj sr , for some set T and constants (j)
γ, γj 6= 0. there is a term of the form λi′ ti ri for some i ∈ Sj .
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.