Appendix C

Cryptographic Constructions

C.1 Cryptographic Constructions for ICN Naming Scheme

C.1.1 Preliminaries of Bilinear Map

The foundation of ABE-type algorithms is pairing computation. In this appendix, we adopt the design from [297] in terms of algebraic structure. Suppose we have two groups: an additive group G0Image and a multiplicative group G1Image with the same order n=spqImage, where pImage and qImage are two large prime numbers. We define a bilinear map e:G0×G0G1Image. This map has three properties:

•  Bilinearity. e(aP,bQ)=e(P,Q)abImage, for any P,QG0Image and a,bZpImage;

•  Nondegeneracy. e(g,h)1Image, where g and h are generators of G0Image;

•  Efficiency. Computing the pairing can be efficiently achieved.

C.1.2 ABE Security Model

As mentioned in Section 7.2.1, the proposed solution includes an upper-level ontology-based attribute management scheme and a lower-level ABE-based naming scheme. The upper-level is only focused on the relationship between attributes, which has little to do with security. In this section, we only focus on the naming scheme, which can be modeled in the form of a game between a challenger and an adversary. The challenger simulates the operations of the TTP and the attribute authorities, while the adversary tries to impersonate as a number of normal network nodes. The game consists of the following five steps:

•  Setup. The challenger runs the GlobalSetup algorithm and returns to the adversary the parameters.

•  Phase 1. The adversary can ask for an arbitrary number of user keys from the challenger. The challenger runs the NodeJoin algorithm for each user involved in the requests and returns the corresponding secret information. The adversary then plays the roles of these users to request for attributes from the challenger. The challenger runs the AuthoritySetup algorithm to create parameters for authorities and runs the KeyGen algorithm to generate keys on behalf of the authorities and the TTP.

•  Challenge. The adversary provides two messages M0Image and M1Image to the challenger, together with an access policy A such that none of the users created by the challenger has attributes satisfying A. The challenger flips a coin b and encrypts MbImage using A. It sends the ciphertext back to the adversary.

•  Phase 2. The adversary can ask for more attributes and users from the challenger. But if any single user can gain satisfactory attribute combinations for A, the challenger aborts the game.

•  Guess. The adversary makes a guess bImage for the real value of b.

The adversary's advantage in this game can be defined as ADV=P[b=b]12Image. The proposed scheme is secure if for all the polynomial time adversaries, the advantage is at most negligible in the game.

C.1.3 ABE-Based Naming Scheme

In this section, we use a composite order group G0Image with an order n=p2q2Image, where p and q are two large prime numbers. In other words, we fix the composite value s in Section C.1.1 as equal to pq. We also choose two subgroups GsImage and GtImage of G0Image such that s=pqImage, t=pqImage, and GsImage is orthogonal to GtImage. We deliberately choose such composite-order group configuration mainly because the proposed scheme is designed to support attribute rankings in GsImage. It follows RSA conditions to enforce one-direction deduction between attribute values. This is why the values of s and t are set to be products of two large prime numbers. Details of such process will be illustrated in Section C.1.4.

Attributes of an entity can be any value in strings. In our scheme, each attribute string AiImage corresponds to a triplet (Ii,ki,hi)Image, where Ii,ki,hiZnImage. SiImage and TiImage are assigned by the TTP. The mapping from a string to such a triplet is determined by the authority of attribute AiImage. An access policy can be expressed in Disjunctive Normal Form (DNF) of attributes. In each conjunctive clause of the DNF, the sequence of attributes is determined by the encrypter. The sequence encrypting a conjunctive clause (encryption sequence) is opposite to the decryption sequence. We define a public attribute APubImage in the scheme. Unlike other attributes, APubImage is associated with a triplet (SPub,TPub,IPub)Image. For each conjunctive clause, the encrypter adds APubImage at the end of the encryption sequence. In other words, the special attribute APubImage is always the last attribute in encryption and the first attribute in decryption.

In the proposed scheme, GlobalSetup algorithm is run by the TTP to generate global parameters for the system. For each node joining in the network, the TTP runs NodeJoin algorithm once to generate a unique secret for the node. For each attribute, the authority in charge runs AuthoritySetup algorithm to generate secrets associated with that attribute. Besides, this naming scheme includes the other three basic algorithms: KeyGen, Encrypt, and Decrypt. Once set up, the authority of an attribute runs KeyGen for each node carrying this attribute to allocate the inherent attribute secrets. Encrypt and Decrypt are respectively used by encrypters and decrypters for message passing.

The GlobalSetup algorithm generates global parameters {GsImage, GtImage, φ, ψ, φβImage, e(φ,ψ)αImage, Enck()Image, Deck()Image, (PPub,SPub,TPub)Image, ROOTImage}, and global secrets {β, gαImage}, where α and β are random values and Enck()Image, Deck()Image are a pair of symmetric encryption algorithms.

Image
Algorithm C.1 GlobalSetup.

The NodeJoin algorithm is given in Algorithm C.2.

Image
Algorithm C.2 NodeJoin.

Each individual authority that manages an attribute AiImage will have to run AuthoritySetup to set up attribute secrets.

Image
Algorithm C.3 AuthoritySetup.

The KeyGen algorithm generates the private keys corresponding to each attribute for each node holding this attribute. It is defined in Algorithm C.4. When the node receives the keys from the authority, it checks if LUIDPUID=TPubImage is true. If it's true, it updates PUIDImage with PUID2Image and accepts the keys. This update is intended to prevent from replay attack on LUIDImage. Otherwise, it will discard the keys.

Image
Algorithm C.4 KeyGen.

The Encrypt algorithm works following the encryption sequence of each clause, by denoting each attribute from I1Image to ImImage, where m is the number of attributes in the clause. In the example of Fig. 7.6, I1=MRIImage, I2=PhysicianImage, I3=HospitalAImage, I4=APubImage, m=4Image. Choose a random value sZpImage, set I0=sImage, and follow Algorithm C.5.

Image
Algorithm C.5 Encrypt.

The Decrypt algorithm works in the decryption sequence. Note that the first attribute in a decryption sequence is always APubImage. The decrypter follows Algorithm C.6.

Image
Algorithm C.6 Decrypt.

When Decrypt algorithm succeeds, SkImage is the random data encrypting key embedded in C.

C.1.4 Attribute Rankings

The proposed ABE scheme extends the capabilities of traditional ABE schemes and is able to support a comparison between the values of the same attribute. In a real world scenario, this means, for instance, that two values, PhysicianImage and NurseImage, of attribute Occupation can be compared and have the relationship Physician>NurseImage, meaning that the PhysicianImage attribute subsumes all the privileges that the NurseImage has, but the NurseImage does not have any of the additional privileges the PhysicianImage has. Such capability is applicable when capabilities of the lower-ranking role (NurseImage) is a subset of that of the higher-ranking role (PhysicianImage). In traditional ABE solutions, each attribute value (PhysicianImage and NurseImage in the above example) corresponds to a set of cryptographic components that are designated for that specific attribute (Occupation in the example) of a specific user. Components for different values of the same attribute are not related. In other words, the key components of PhysicianImage are independent of those of NurseImage. To establish ranking relations between attribute values, certain connections need to be created between the corresponding key components. Specifically, a one-direction relation between values of the same attribute is supported in the proposed scheme. It allows a higher-ranking user (PhysicianImage) to be able to legally derive the corresponding lower-ranking role (NurseImage) key components for himself. However, the lower-ranking role cannot derive anything regarding the higher-ranking role.

Such capability can be achieved by deliberately assigning appropriate values in KeyGen algorithm. We assign hPImage for PhysicianImage and hNImage for NurseImage such that hP=hαPImage, hN=hαNImage, hZnImage, and αP<αNImage. Thus, we have SP=φhPImage and SN=φhNImage. This is different from traditional ABE scheme, where both SPImage and SNImage are randomly chosen. This is the connection we establish between comparable values (PhysicianImage and NurseImage) of the same attribute (Occupation). Recall that when we defined the order of GsImage, it was written as n=pqImage, where p and q are two large prime numbers. In other words, nImage is a composite number satisfying RSA algorithm requirements. If a user UPImage is assigned SP=φhαPImage, i.e., the key for PhysicianImage, it is able to calculate the corresponding key SNImage for NurseImage as long as αP<αNImage. This can be done as

SN=φhαN=(φhαP)hαNαP=(SP)hαNαP.

Image (C.1)

This means that when we assign attributes to UPImage, we can choose to assign the value hαNαPImage to the user together with SPImage. Thus, when the user needs to decode some message dedicated for NurseImage, he can easily calculate SNImage following equation (C.1). However, if another user UNImage has the attribute NurseImage, he cannot deduce SPImage following the same equation in a similar way. This is because in this case, αPαN<0Image. Under RSA assumption, h1Image cannot be efficiently computed due to the secrecy of nImage. A benefit of such extension to our original scheme is that it allows the ranking relations among attributes without incurring too much workload on the TTP side. Only eligible users, PhysicianImage owners in this example, can use such capability, and the value hαNαPImage is only useful to eligible users.

With such a knowledge, the TTP can assign two more values, Δh and Δr, to user UPImage in KeyGen algorithms. When needed, the user can derive his key values corresponding to attribute NurseImage afterwards. The modified step 3 of KeyGen is as follows:

XP,UID=φrUIDSPrP,YP=φrP,ZP,UID=e(φ,ψ)rUIDIP,LUID=TPub1/PUID,Δh=h(αNαP)rP,Δr=ΔhIN/IP.

Image

Thus, the rUIDImage for UPImage's NurseImage attribute is changed to rUID=rUIDΔhImage. Correspondingly, we have:

XN,UID=(XP,UID)Δh=φrUIDΔhSNrP=φrUIDSNrP,YN=YP,ZN,UID=(ZP,UID)Δr=(e(φ,ψ)rUIDIP)ΔhIN/IP=e(φ,ψ)rUIDΔhIP=e(φ,ψ)rUIDIP,LUID=LUID.

Image

Here, we need to point out that to make sure that the values of h for two comparable attributes are the same, comparable attributes need to be managed by the same authority. This means that one single authority defines the relative order between these attributes. This requirement makes sense in a real-world scenario since in most cases a single authority (the hospital in this example) defines values of the same attribute (job position).

C.1.5 Security Proof Sketch

In this section, we provide a sketch of security proof following the structure in [63]. Before going into details of the proof, we firstly modify the security game described in Section C.1.2. This modification follows the same idea as in [63] and it is intended to change from differentiating two random messages M0,M1Image to differentiating e(φ,ψ)αsj,e(φ,ψ)θjImage so that the generated intermediate results can be represented using the four mappings introduced in Section C.1.5.2. The goal of such modification is essentially to facilitate the following security proof. To differentiate these two games, we call the one in Section C.1.2 as Game1 and the modified game as Game2.

C.1.5.1 Modified Game

Game2 consists of five steps similar to Game1. The steps Setup, Phase1, and Phase 2 are the same as in Game1. The Challenge step is different in that the challenger does not choose one message to construct the ciphertext C. Instead, it outputs CjImage as

Cj={e(φ,ψ)αsjif b=1,e(φ,ψ)θjif b=0.

Image

Here, all the θjImage are randomly chosen from ZnImage following independent uniform distribution.

Suppose an adversary adv1 in Game1 has the advantage of ϵ, the corresponding adversary adv2 in Game2 can be constructed according to the following strategy:

•  Forward all the messages between adv1 and the challenger during Setup, Phase1, and Phase 2;

•  In the Challenge step, adv2 gets two messages M0Image and M1Image from adv1 and the challenge C from the challenger. adv2 flips a coin δ and sends C=MδCImage to adv1 as the challenge for adv1 in Game1. adv2 generates its guess based on the output δImage from adv1. If δ=δImage, then the guess is 1; otherwise, it is 0.

The advantage that adv2 has in this game can be calculated as δ2Image.

In the following, we will show that no polynomial adversary can distinguish between e(φ,ψ)αsImage and e(φ,ψ)θImage. Therefore, no adversary can have nonnegligible advantage in the security model.

C.1.5.2 Security Guarantee in the Modified Game

In this section, we follow the generic group model introduced in [247] and use a simulator to model the modified security game between the challenger and the adversary. The simulator chooses random generators φGsImage and ψGtImage. It then encodes any member in GsImage and GtImage to a random string following two mappings: f0,f1:Zn{0,1}lognImage. It also encodes any member in G1Image to a random string in a similar way: f2:Zn{0,1}lognImage. One additional mapping f3Image is used to convert elements in ZnImage to string representations: f3:Zn{0,1}lognImage. The four mappings should be invertible so that the simulator and the adversary can map between the strings and the elements of corresponding algebraic structures in both directions. Four oracles are provided to the adversary by the simulator to simulate the group operations in GsImage, GtImage, G1Image, and the pairing. Only the string representations can be applied to the oracles. The results are returned from the simulator in the string representations as well. The oracles will strictly accept inputs from the same group. The simulator plays the role as the challenger in the modified game.

•  Setup. The simulator chooses GsImage, GtImage, G1Image, e, φ, ψ, and random values α, β. It also defines the mappings f0Image, f1Image, f2Image and the four oracles mentioned above. The simulator chooses the public attribute parameters IPubZnImage, SPub=f0(μ)GsImage, TPub=f1(λ)GtImage, and ROOTG1Image, where λ and μ are random strings. The public parameters are GsImage, GtImage, φ:=f0(1)Image, ψ:=f1(1)Image, φβ:=f0(β)Image, e(φ,ψ)α:=f2(α)Image, (SPub,TPub,IPub)Image, and ROOTImage.

•  Phase 1. When the adversary runs NodeJoin for a new user with UID, the simulator generates a random number rUIDZnImage. It returns to the adversary with DUID=f1((α+rUID)/β)Image, XPub,UID=f0(rUID)f0(μrPub,UID)=f0(rUID+μrPub,UID)Image, YPub=f0(rPub)Image, and ZPub,UID=f2(rUIDIPub)Image, here rPub,UIDZnImage is a random number chosen by the simulator. When the adversary requests a new attribute AiImage that has not been used before, the simulator randomly chooses Ii,ki,hiZnImage and Si=f0(hi)GsImage, Ti=f1(hi)GtImage to simulate the process for setting up an attribute authority. For each attribute key request made from the adversary, the simulator computes Xi,UID=φrUIDSiri=f0(rUID+hiri)Image, Yi=φri=f0(ri)Image, and Zi,UID=e(φ,ψ)rUIDIi=f2(rUIDIi)Image, where riImage is a random number chosen from ZnImage. The simulator passes all these values to the adversary as the attribute keys associated with AiImage.

•  Challenge. When the adversary asks for a challenge, the simulator flips a coin b and chooses a random value sZnImage. If b=1Image, the simulator calculates C=f2(αs)Image; if b=0Image, it picks a random value sZnImage and calculates C=f2(s)Image. In addition, it calculates C=φβsImage and C=EncK(ROOT)Image. It also computes other components of the ciphertext following Encrypt: C1,n=f1((In1In)ln)Image, C2,n=f1(hn(In1In)ln)Image, and C3,n=f3((kntn)1)Image, where hnZnImage is a random number chosen by the simulator.

•  Phase 2. The simulator interacts with the adversary similar as in Phase 1 with the exception that the adversary cannot acquire attribute keys enabling a single user to satisfy the access policy AImage. The output of this step is similar to that of Phase 1 except that the simulator acquires more user IDs and attributes in this step.

From the above game, we can see that the adversary only acquires the string representation of random values in ZnImage, ZnImage and combinations of the values. We can model all the queries as rational functions and further assume that different terms always result in different string representations [63]. As shown in [63], the probability that two terms share the same string representation is O(q2/n)Image, where q is the number of queries made by the adversary. We assume in the rest of the proof that no such collision happens.

Now we argue that the adversary's views are identically distributed between the two cases when C=f1(αs)(b=1)Image and when C=f1(s)(b=0)Image. As a matter of fact, what the adversary can view from the modified game with the simulator are independent elements that are uniformly chosen and the only operation that the adversary can do on these elements is to test if two of them are equal or not. Thus, the situation that the views of the adversary differ can only happen when there are two different terms ν1Image and ν2Image that are equal when b=1Image. Since αs and sImage only occur in group G1Image, the results from f1Image cannot be paired. Queries by the adversary can only be in the form of additive terms. Then we have ν1ν2=γαsγsImage, where γ is a constant. By transformation, we have ν1ν2+γs=γαsImage. This implies that by deliberately constructing a query ν1ν2+γsImage, the adversary may be able to get the value of e(g,g)γαsImage. Now we prove that such a query cannot be constructed by the adversary based on the information it gets from the game.

In fact, the information that an adversary can acquire from this game can be listed as in Table C.1. This table excludes values related to LUIDImage as it has nothing related to αs. To construct the desired value, the adversary can map two elements from GsImage and GtImage into one element in G1Image. He can also use elements in ZnImage to change the exponentials. From this table, we can easily see that to obtain a value containing αs, the adversary can pair βs and (α+rUID)/βImage to get αs+rUIDsImage in G1Image. In fact, this is the only way to get a term containing αs. But it is not feasible in that both βs and (α+rUID)/βImage belong to GtImage while the pairing requires one element from GsImage and GtImage each.

Table C.1

Query information accessible to the adversary

μ β rUID+μrPub,UID Image
r Pub h i rUID + hiri
r i (In1 − In)hn tn(In1 − In)hn
λ (α + rUID)/β βs
h i
α r UID I Pub r UID I i
I Pub I i k i
(kntn)1 Image h i

Therefore, based on the information an adversary can get from the proposed scheme, the attacker cannot differentiate a random ciphertext from an authentic one. The security of the proposed scheme is proved. □

C.2 Partitioning CP-ABE

Essentially, the basic idea of P-CP-ABE to outsource intensive but noncritical part of the encryption and decryption algorithm to the service providers while retaining critical secrets. As we can prove later in this section, the outsourcing of computation does not reduce the security level compared with original CP-ABE schemes, where all computations are performed locally.

The encryption complexity of CP-ABE grows linearly in the size of access policy. During the encryption, a master secret is embedded into ciphertext according to the access policy tree in a recursive procedure, where, at each level of the access policy, the secret is split to all the subtrees of the current root. However, the security level is independent on the access policy tree. In other words, even if the ESP possesses secrets of most but not all parts of the access policy tree, the master secret is still information theoretically secure given there is at least one secret that is unknown to ESP. Thus, we can safely outsource most of encryption complexity to ESP by just retaining a small amount of secret information, which is processed locally.

As for the decryption, the CP-ABE decryption algorithm is computationally expensive since bilinear pairing operations over ciphertext and private key is a computational intensive operation. P-CP-ABE addresses this computation issue by securely blinding the private key and outsourcing the expensive Pairing operations to the DSP. Again, the outsourcing will not expose the data content of the ciphertext to the DSP. This is because the final step of decryption is performed by the decrypters.

C.2.1 System Setup and Key Generation

The TA first runs Setup to initiate the P-CP-ABE system by choosing a bilinear map: e:G0×G0G1Image of prime order p with the generator g. Then, TA chooses two random α, β ZpImage. The public parameters are published as

PK=G0,g,h=gβ,e(g,g)α.

Image (C.2)

The master key is MK=(β,gα)Image, which is only known by the TA.

Each user needs to register with the TA, who authenticates the user's attributes and generates proper private keys for the user. An attribute can be any descriptive string that defines, classifies, or annotates the user to which it is assigned. The key generation algorithm takes as input a set of attributes S assigned to the user, and outputs a set of private key components corresponds to each of attributes in S. The GenKey algorithm performs the following operations:

1.  Chooses a random rZpImage;

2.  Chooses a random rjZpImage for each attribute jSImage;

3.  Computes the private key as:

SK=D=g(α+r)/β;jS:Dj=gr×H(j)rj;Dj=grj;

Image

4.  Sends SK to the DO through a secure channel.

C.2.2 P-CP-ABE Encryption

To outsource the computation of Encryption and preserve the data privacy, a DO needs to specify a policy tree T=TESPTDOImage, where ⋀ is an AND logic operator connecting two subtrees TESPImage and TDOImage. TESPImage is the data access policy that will be performed by the ESP and TDOImage is a DO controlled data access policy. TDOImage usually has a small number of attributes to reduce the computation overhead at the DO, in which it can be a subtree with just one attribute (see the example shown in Fig. C.1).

Image
Figure C.1 Illustration of access policy T=TESPTDOImage.

In practice, if TDOImage has one attribute, DO can randomly specify a 1-degree polynomial qR(x)Image and sets s=qR(0)Image, s1=qR(1)Image, and s2=qR(2)Image. Then DO sends {s1,TESP}Image to ESP, which is denoted as

DO{s1,TESP}ESP.

Image

Here, we must note that sending s1Image and TESPImage will not expose any secret of our solution.

ESP then runs the Encrypt(s1,TESP)Image algorithm, which is described below:

1.  xTESPImage, randomly choose a polynomial qxImage with degree dx=kx1Image, where kxImage is the secret sharing threshold value:

(a)  For the root node of TESPImage, i.e., RESPImage, choose a dRESPImage-degree polynomial with qRESP(0)=s1Image.

(b)  xTESPRESPImage set dxImage-degree polynomial with qx(0)=qparent(x)(index(x))Image.

2.  Generate a temporal ciphertext:

CTESP={yYESP:Cy=gqy(0),Cy=H(att(y))qy(0)},

Image

where YESPImage is the set of leaf nodes in TESPImage.

At the meantime, the DO performs the following operations:

1.  Perform Encrypt(s2,TDO)Image and derive:

CTDO={yYDO:Cy=gqy(0),Cy=H(att(y))qy(0)}.

Image

2.  Compute C˜=Me(g,g)αsImage and C=hsImage, where M is the message.

3.  Send CTDO,C˜,CImage to the ESP:

DO{CTDO,C˜,C}ESP.

Image

On receiving the message from the DO, ESP generates the following ciphertext:

CT=T=TESPTDO;C˜=Me(g,g)αs;C=hs;yYESPYDO:Cy=gqy(0);Cy=H(att(y))qy(0).

Image

Finally, the ESP sends CT to the SSP.

C.2.3 Outsourcing Decryption

CP-ABE decryption algorithm is computationally expensive since bilinear pairing is an expensive operation. P-CP-ABE addresses this computation issue by outsourcing the expensive Pairing operations to the DSP. Again, the outsourcing will not expose the data content of the ciphertext to the DSP.

To protect the data content, the DO first blinds its private key by choosing a random tZpImage and then calculates D˜=Dt=gt(α+r)/βImage. We denote the blinded private key as SK˜Image:

SK˜=D˜=gt(α+r)/β,jS:Dj=grH(j)rj,Dj=grj.

Image (C.3)

Before invoking the DSP, the DO first checks whether its owned attributes satisfy the access policy TImage. If so, the DO sends {SK˜}Image to the DSP, and requests the SSP to send the ciphertext to the DSP. On receiving the request, the SSP sends CT={T;C=hs;yY1Y2:Cy=gqy(0);Cy=H(att(y))qy(0)}Image and CTCTImage to the DSP:

SSP{CT}DSP.

Image (C.4)

Once the DSP receives both {SK˜}Image and CTImage, it then runs the Decrypt(SK˜,CT)Image algorithm as follows:

1.  yY=YESPYDOImage, the DSP runs a recursive function DecryptNode(CT,SK˜,R)Image, where R is the root of TImage. The recursion function is the same as defined in [63] and DecryptNode(CT,SK˜,y)Image is proceeded as follows:

DecryptNode(CT,SK˜,y)=e(Di,Cy)e(Di,Cy)=e(grH(i)ri,gqy(0))e(gri,H(i)qy(0))=e(g,g)rqy(0)=Fy.

Image

The recursion is processed as follows: ∀y which is a child of x, it calls DecryptNode(CT;SK˜;y)Image and stores the output as FyImage. Let SxImage be an arbitrary kxImage-sized set of children nodes y, the DSP computes:

Fx=ySxFyΔi,Sx(0)=ySx(e(g;g)rqy(0))Δi;Sx(0)=ySx(e(g;g)rqparent(y)(index(y)))Δi;Sx(0)=ySx(e(g;g)rqx(i)Δi;Sx(0)=e(g,g)rqx(0),

Image (C.5)

where i=index(z)Image and Sx={index(z):zSx}Image, Δi;Sx(0)Image is the Lagrange coefficient. Finally, the recursive algorithm returns A=e(g,g)rsImage.

2.  Then, one computes

e(C,D˜)=e(hs,gt(α+r)/β)=e(g,g)trse(g,g)tαs.

Image

3.  And sends {A=e(g,g)rs,B=e(C,D˜)=e(g,g)trse(g,g)tαs}Image to the DO:

DSP{A,B}DO.

Image

On receiving {A,B}Image, DO calculates B=B1/t=e(g,g)rse(g,g)αsImage and then it recovers the message:

M=C˜(B/A)=Me(g,g)αs(e(g,g)rse(g,g)αs)/e(g,g)rs.

Image

Bibliography

[63] J. Bethencourt, A. Sahai, B. Waters, Ciphertext-policy attribute-based encryption, IEEE Symposium on Security and Privacy. Washington, DC, USA. 2007:321–334.

[247] V. Shoup, Lower bounds for discrete logarithms and related problems, Proceedings of International Conference on the Theory and Application of Cryptographic Techniques, ser. EUROCRYPT. 1997.

[297] Y. Zhu, H. Hu, G.-J. Ahn, M. Yu, H. Zhao, Comparison-based encryption for fine-grained access control in clouds, Proceedings of the ACM Conference on Data and Application Security and Privacy, ser. CODASPY. 2012.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset