Introduction
In cloud computing environment, users are allowed to outsource their data to cloud severs. In order to protect the privacy of data of users, these outsourced data have to be stored in an encrypted form. However, in order to efficiently extract some statistical information of the data for users in the future, it is necessary to search some information from the encrypted data in the cloud firstly.
This novel application brings many new security issues, such as auditing [1], outsourcing computation [2], [3], outsourcing verification [4] and encrypted data searching [5]. Boneh et al. [5] introduced a new concept — public key encryption with keyword search (PKEKS), which can search a keyword over the encrypted data but cannot decrypt it. Later, Yang et al. [6] put forward another new concept—public key encryption with equality test (PKEET), which combines the public key encryption (PKE) and searchable encryption (SE). The PKEET cannot only decrypt the encrypted keyword, but also can check if ciphertexts are encryptions of the same unknown keyword even if it is possible to use different public keys. Tang [7] proposed a PKEET with fine-grained authorization scheme (PKEET-FG), an extension of PKEET-FG [8] and all-or-nothing PKEET (AON-PKEET) [9] to improve the scheme. Ma et al. [10] presented a PKEET supporting flexible authorization (PKEET-FA). In their scheme there are 4 types of flexible authorizations. In order to simplify the certificate management of PKEET, Ma [11] presented an identity-based encryption with equality test (IBEET), and showed that the scheme was one-way secure under chosen ciphertext attack (OW-CCA). Also, Lee et al. [12] presented semi-generic construction of IBEET scheme and PKEET scheme, but their constructions need to use the encryption algorithm twice and a one-time signature, which aren’t efficient. Zhang and Xu [13] and Zhang et al. [14] proposed two schemes from lattices, which can be considered secure under quantum computing attacks. In order to make the scheme more flexible, Zhu et al. [15] and Wang et al. [16] proposed a key policy attribute based encryption scheme with equality test (KP-ABEET) and ciphertext policy attribute based encryption scheme with equality test (CP-ABEET) respectively and showed their corresponding security. However, Liao et al. [17] showed that the KP-ABEET scheme [15] wasn’t secure on their security model.
In this article, we analyze the security of IBEET and CP-ABEET as follows. We firstly prove that the IBEET scheme proposed by Ma isn’t one-way under chosen ciphertext attack and then we set forth the reason of insecurity and give some idea to improve the scheme. Next we prove that the CP-ABEET scheme proposed by Wang et al. isn’t indistinguishable against chosen plaintext attack in the standard model.
The rest of this paper is organized as follows. In section II, we recall basic concepts which will be used in the paper. We then recall an IBEET scheme proposed by Ma and show that the scheme isn’t secure based on their security models and improve the scheme in section III. In section IV we recall a CP-ABEET scheme proposed by Wang et al. and show that the scheme isn’t IND-CPA secure in the standard model. Finally, we conclude the paper in section V.
Preliminary
Here, we first recall some basic mathematical knowledge which will be used.
A. Bilinear Pairing
Let
Bilinearity: For any
,u,v,w \in \mathbb {G} \begin{align*} e(u,vw)=&e(u,v) e(u,w),\quad \mathrm {and} \\ e(uv,w)=&e(u,w) e(v,w).\end{align*} View Source\begin{align*} e(u,vw)=&e(u,v) e(u,w),\quad \mathrm {and} \\ e(uv,w)=&e(u,w) e(v,w).\end{align*}
Non-degeneracy: There are elements
, such thatg_{1},g_{2} \in \mathbb {G} , wheree(g_{1},g_{2}) \neq 1_{G_{\mathrm {T}}} is the identity element of1_{G_{\mathrm {T}}} .\mathbb {G}_{\mathrm {T}} Computability: For any elements
, there is an efficient algorithm to computeg_{1},g_{2} \in \mathbb {G} .e(g_{1},g_{2})
Definition 1:
Bilinear Diffie-Hellman problem (BDH problem). Let
Definition 2:
Twin-decision bilinear Diffie-Hellman problem (t-DBDH problem). Given two distributions \begin{align*} D_{0}=&\{g,g^{a},g^{b},g^{c},g^{u},g^{v},e(g,g)^{abc}, \\&e(g,g)^{auv}: a,b,c,u,v \in \mathbb {Z}_{q}\} \\ D_{1}=&\{g,g^{a},g^{b},g^{c},g^{u},g^{v},e(g,g)^{d}, \\&e(g,g)^{w}: a,b,c,d,u,v,w \in \mathbb {Z}_{q}\}\end{align*}
B. Model of IBEET and ABEET
An IBEET and ABEET include three entities, the key generator center (KGC), users and the cloud server, which are described in FIGURE 1. The KGC generates the private key of a user’s identity in IBEET and sets of attributes in ABEET, respectively. The users create their trapdoors by using their private keys and ciphertexts. The cloud server stores the users’ data (ciphertexts) and runs the test algorithm when it receives the corresponding trapdoors. The users receive their private keys over secure channels and the cloud server gets the ciphertexts and trapdoors over open channels which can be eavesdropped by adversaries.
Insecurity of an IBEET Scheme
A. Syntax of IBEET
An IBEET scheme [11] includes six algorithms: Setup, Extract, Enc, Dec, Trapdoor and Test. Let
: On input a security parameter\mathbf {Setup}(k) , the algorithm outputs public system parametersk and a master keyK .msk : On input\mathbf {Extract}(msk, ID) and an arbitrary identitymsk , the algorithm outputs a private keyID\in \{0,1\}^{*} for an identitysk_{ID} .ID : On input an identity\mathbf {Enc}(ID, M) and a plaintextID\in \{0,1\}^{*} , the algorithm outputs a ciphertextM\in \mathbb {M} .C\in \mathbb {C} : On input a ciphertext\mathbf {Dec}(sk_{ID}, C) and a private keyC\in \mathbb {C} , the algorithm outputs a plaintextsk_{ID} .M\in \mathbb {M} : On input the private key\mathbf {Trapdoor}(sk_{ID_{A}}, C) of identitysk_{ID_{A}} of a userID_{A} and a ciphertextA encrypted some plaintext by usingC\in \mathbb {C} , the algorithm outputs a trapdoorID_{A} . Iftd_{A} is empty string(ciphertext), then that means all ciphertexts correspond to the same trapdoorC .td_{A} : On input a ciphertext\mathbf {Test}(C_{A}, td_{A}, C_{B}, td_{B}) , a trapdoorC_{A} \in \mathbb {C} for an identitytd_{A} , and a ciphertextID_{A} , a trapdoorC_{B} \in \mathbb {C} for an identitytd_{B} , the algorithm outputs “1” ifID_{B} andC_{A} are generated by the same plaintext; Otherwise it outputs “0”.C_{B}
B. Security Model of IBEET
We recall the definition of the security concept of one-way against chosen ciphertext security(OW-ID-CCA) for IBEET scheme [11].
Setup: On input a security parameter
, the challengerk produces the system parameters\mathcal {C} by running the Setup algorithm. ThenK sends\mathcal {C} to the adversary and keeps the master keyK by itself.msk The Phase 1
Private key queries. The challenger
produces a private key\mathcal {C} of an identitysk_{i} by running the Extract algorithm. ThenID_{i} sends the private key\mathcal {C} of identitysk_{i} to adversaryID_{i} .\mathcal {A} Trapdoor queries
. At any time, in order to obtain a trapdoor of an identityTD_{i} , on input identityID_{i} , the adversaryID_{i} can query trapdoor oracle. The challenger gets trapdoor\mathcal {A} by running the above private key queries ontd_{i} , and then sends the trapdoorID_{i} totd_{i} .\mathcal {A} Decryption queries
. The challenger decrypts the ciphertext(ID_{i}, C_{i}) by running the decryption oracle, and then sends theC_{i} , which is an output of the decryption oracle, to adversaryM_{i} .\mathcal {A}
Challenge: Firstly the adversary
decides to submit an challenge identity\mathcal {A} which she/he selects. The only restricted condition is thatID^{*} didn’t appear in the private key queries in the phase 1, howeverID^{*} may be in the decryption queriesID^{*} or in the trapdoor queries. Then the challenger(ID^{*}, \cdot) randomly selects a plaintext\mathcal {C} and finally sends the challenge ciphertextM^{*}\in \mathcal {M} toC^{*}=\mathrm {Enc}(ID^{*},M^{*}) .\mathcal {A} The Phase 2.
Private key queries. If
, then the challengerID_{i} \not =ID^{*} responds it as that in the phase 1.\mathcal {C} Trapdoor queries
. For any identity, the challengerTD_{i} responds it as that in the phase 1.\mathcal {C} Decryption queries. If any ciphertext
, then the challenger(ID_{i}, C_{i})~ \neq ~(ID^{*},C^{*}) responds it as that in the phase 1.\mathcal {C}
Guess:
submits a guess\mathcal {A} .M' \in \mathcal {M}

Definition 3:
We call an IBEET scheme to be OW-ID-CCA secure, if for all OW-ID-CCA adversaries,
C. Recall the Ma’s IBEET Scheme and its Security Analysis
Before we analyse the Ma’s IBEET scheme [11], we firstly recall it.
1) Recall the Ma’s IBEET Scheme
The construction of their scheme is as follows.
Setup: On input a security parameter
, it works as follows:k Produce some public parameters: two multiplicative groups
of prime order\mathbb {G},\mathbb {G}_{\mathrm {T}} , and an admissible bilinear mapp with a random generatore: \mathbb {G}\times \mathbb {G} \rightarrow \mathbb {G}_{\mathrm {T}} . Randomly select three cryptographic hash functions:g\in \mathbb {G} , whereH_{1}:\{0,1\}^{*} \rightarrow \mathbb {G},\,\,H_{2}: \mathbb {G}_{\mathrm {T}}\rightarrow \mathbb {G},\,\,H_{3}:\mathbb {G}_{\mathrm {T}} \rightarrow \{0,1\}^{l_{1}+l_{2}} andl_{1} are length of elements inl_{2} and\mathbb {G} , respectively.\mathbb {Z}_{p} Select random elements
and lets',s\in \mathbb {Z}_{p} andg_{1}=g^{s'} . Here letg_{2}=g^{s} be the message space and\mathbb {M} \subset \mathbb {G} be the ciphertext space. The public system parameters are\mathbb {C} \subset \mathbb {G}^{4} \times \{0,1\}^{l_{1}+l_{2}} . The master keyK_{\mathrm {IBEET}}=(p,\mathbb {G},\mathbb {G}_{\mathrm {T}},e,g,g_{1},\,\,g_{2},\,\,H_{1}, H_{2},H_{3}) ismsk .(s',s) \in \mathbb {Z}_{p}^{2}
Extract: On input an identity
, it works as follows:ID \in \{0,1\}^{*} Firstly calculate
, and then calculateh_{ID}=H_{1}(ID)\in \mathbb {G} as the private key, wheresk_{ID}=(h^{s'}_{ID},h^{s}_{ID}) is the master key.(s',s)
Trapdoor: On input an identity
, it works as follows:ID \in \{0,1\}^{*} Firstly calculate
, then set the trapdoorh_{ID}=H_{1}(ID)\in \mathbb {G} , which is the first element oftd_{ID}=h^{s'}_{ID} .sk_{ID}
Enc: On input a message
and an identityM \in \mathbb {G} , it works as follows:ID Firstly calculate
, and randomly pick three elementsh_{ID}=H_{1}(ID)\in \mathbb {G} ;r_{1},r_{2},r_{3}\in \mathbb {Z}_{p} Set the ciphertext to be
, whereC=(C_{1},C_{2},C_{3},C_{4},C_{5}) and where\begin{align*} C_{1}=&g^{r_{1}},\quad C_{2}=g^{r_{2}},~C_{4}=g^{r_{3}}, \\ C_{3}=&M^{r_{1}}H_{2}(U_{1}^{r_{2}}),\quad C_{5}=(M||r_{1})\oplus H_{3}(U_{2}^{r_{3}}),\end{align*} View Source\begin{align*} C_{1}=&g^{r_{1}},\quad C_{2}=g^{r_{2}},~C_{4}=g^{r_{3}}, \\ C_{3}=&M^{r_{1}}H_{2}(U_{1}^{r_{2}}),\quad C_{5}=(M||r_{1})\oplus H_{3}(U_{2}^{r_{3}}),\end{align*}
\begin{equation*} U_{1}=e(h_{ID},g_{1})\in \mathbb {G}_{\mathrm {T}},\quad U_{2} = e(h_{ID},g_{2})\in \mathbb {G}_{\mathrm {T}}.\end{equation*} View Source\begin{equation*} U_{1}=e(h_{ID},g_{1})\in \mathbb {G}_{\mathrm {T}},\quad U_{2} = e(h_{ID},g_{2})\in \mathbb {G}_{\mathrm {T}}.\end{equation*}
Dec(
): On input ciphertextC,sk_{ID} and the private keyC , wheresk_{ID}=(h^{s'}_{ID},h^{s}_{ID}) is a ciphertext encrypted by using the identityC=(C_{1},C_{2},C_{3},C_{4},C_{5})\in \mathbb {C} , the algorithm firstly calculatesID and then it outputs\begin{equation*} C_{5} \oplus H_{3}(e(h_{ID}^{s},C_{4}))=M||r_{1},\end{equation*} View Source\begin{equation*} C_{5} \oplus H_{3}(e(h_{ID}^{s},C_{4}))=M||r_{1},\end{equation*}
if the following equalities hold.M Otherwise, it outputs\begin{equation*} C_{1}=g^{r_{1}},\frac {C_{3}}{M^{r_{1}}}=H_{2}(e(h_{ID}^{s'},C_{2}))\end{equation*} View Source\begin{equation*} C_{1}=g^{r_{1}},\frac {C_{3}}{M^{r_{1}}}=H_{2}(e(h_{ID}^{s'},C_{2}))\end{equation*}
.``\bot '' Test(
): On input ciphertextsC_{A},td_{ID_{A}},C_{B},td_{ID_{B}} and corresponding trapdoorsC_{A},~C_{B} respectively, to determine whether plaintextstd_{ID_{A}},~td_{ID_{B}} andM_{A} are equal or not, whereM_{B} and\begin{equation*} C_{A}=(C_{A,1},C_{A,2},C_{A,3},C_{A,4},C_{A,5})=\mathrm {Enc}(M_{A},ID_{A})\end{equation*} View Source\begin{equation*} C_{A}=(C_{A,1},C_{A,2},C_{A,3},C_{A,4},C_{A,5})=\mathrm {Enc}(M_{A},ID_{A})\end{equation*}
\begin{equation*} C_{B}=(C_{B,1},C_{B,2},C_{B,3},C_{B,4},C_{A,5})=\mathrm {Enc}(M_{B},ID_{B}),\end{equation*} View Source\begin{equation*} C_{B}=(C_{B,1},C_{B,2},C_{B,3},C_{B,4},C_{A,5})=\mathrm {Enc}(M_{B},ID_{B}),\end{equation*}
andtd_{ID_{A}}=h^{s'}_{ID_{A}} . It firstly computes:td_{ID_{B}}=h^{s'}_{ID_{B}} and then it outputs “1” if the equation\begin{equation*} X_{A}=\frac {C_{A,3}}{H_{2}(e(h^{s'}_{ID_{A}},C_{A,2}))}, \quad X_{B}=\frac {C_{B,3}}{H_{2}(e(h^{s'}_{ID_{B}},C_{B,2}))},\end{equation*} View Source\begin{equation*} X_{A}=\frac {C_{A,3}}{H_{2}(e(h^{s'}_{ID_{A}},C_{A,2}))}, \quad X_{B}=\frac {C_{B,3}}{H_{2}(e(h^{s'}_{ID_{B}},C_{B,2}))},\end{equation*}
holds; otherwise it outputs “0”.\begin{equation*} e(C_{A,1},X_{B})=e(C_{B,1},X_{A})\end{equation*} View Source\begin{equation*} e(C_{A,1},X_{B})=e(C_{B,1},X_{A})\end{equation*}
2) Insecurity of Ma’s Scheme
Next, we will show that the IBEET scheme doesn’t satisfy the above OW-ID-CCA security, which was firstly defined in paper [11]. From the definition of the OW-ID-CCA attack, at any time any adversary can have access to the trapdoor oracle to obtain the trapdoor of any identity including the challenge identity
When the adversary obtains the challenge
, she/he checks whether the challenge identity(ID^{*}, C^{*}) is listed in trapdoor queries or not. It can getID^{*} by having access to the trapdoor queries before the guess stage if it is not listed in previous trapdoor queries (A better and easier way to do it is to pick the challenge identity from the list of trapdoor queries in the phase 1. Because the challenge identity is chosen by the adversary.).td_{ID^{*}}=h^{s'}_{ID^{*}} Secondly, the adversary calculates
and randomly selects\begin{equation*} V^{*}=\frac {C_{3}^{*}}{H_{2}(e(h_{ID^{*}}^{s'},C_{2}^{*}))},\end{equation*} View Source\begin{equation*} V^{*}=\frac {C_{3}^{*}}{H_{2}(e(h_{ID^{*}}^{s'},C_{2}^{*}))},\end{equation*}
to setr \in \mathbb {Z}_{p}^{*} . The adversary checks whetherC_{2}= (C_{2}^{*})^{r} is a part of a ciphertext having been on the list of decryption queries and encrypted by the identityC_{2} . If it is on the list of decryption queries, then repeats above step (renew the random numberID^{*} ); otherwise, the adversary calculatesr \begin{equation*} C_{3} = V^{*}H_{2}(e(h_{ID^{*}}^{s'},(C_{2}^{*})^{r})).\end{equation*} View Source\begin{equation*} C_{3} = V^{*}H_{2}(e(h_{ID^{*}}^{s'},(C_{2}^{*})^{r})).\end{equation*}
Thirdly, the adversary modifies the challenge ciphertext
and continues to perform the chosen ciphertext attack as follows. The adversary firstly setsC^{*} and then submits\begin{align*} C_{1}'=&C_{1}^{*},\quad C_{2}'= C_{2},~C_{3}'=C_{3}, \\ C_{4}'=&C_{4}^{*},\quad C_{5}'=C_{5}^{*},\end{align*} View Source\begin{align*} C_{1}'=&C_{1}^{*},\quad C_{2}'= C_{2},~C_{3}'=C_{3}, \\ C_{4}'=&C_{4}^{*},\quad C_{5}'=C_{5}^{*},\end{align*}
with the identityC'=(C_{1}',C_{2}',C_{3}',C_{4}',C_{5}')\,\,C'=(C_{1}',C_{2}',C_{3}',C_{4}',C_{5}') to the decryption queries as a ciphertext. The challenge respondsID^{*} if the “ciphertext”M' is a valid ciphertext; otherwise it respondsC' .``\bot '' Finally, the adversary outputs
as a plaintext of the challenge ciphertextM^{*}(=M') and the challenge identityC^{*} .ID^{*}



Therefore, the IBEET scheme is not OW-ID-CCA secure.
D. Reason of Insecurity
Now, we analyse the IBEET scheme and find out the reason why it is insecure as follows. Firstly, from the construction of the encryption algorithm in the IBEET scheme, it is easy to find out that it encrypts
Secondly, the IBEET scheme is a special IBE scheme, which needs to delegate the trapdoor to perform the test algorithm in the cloud server. So the value of
Finally, we explain that why the above scheme is not secure but security can have been proved. Because there is an obvious gap between views of two adversaries in the IBEET scheme and “PUBK” scheme in [11], but which was not considered in their paper. Since the adversary in IBEET scheme can obtain
E. Further Consideration
From the above analysis, we advise to set
Security Analysis of a CP-ABEET Scheme
Here, we first recall the notion of CP-ABEET and its security model. And then we review CP-ABEET scheme proposed by Wang et al. [16] and analyze its security.
A. Model of CP-ABEET and its Security Model
A CP-ABEET scheme includes six algorithms: Setup, KeyGen, Enc, Trapdoor, Dec and Test. The detailed is described as follows.
Setup. Take a security parameter
as input, and generate a master keyk and the public parameterMSK . And keepParam secure.MSK KeyGen. Take as input the public parameter
, the master keyParam and an attribute setMSK . Generate the secret keyAL for the attribute setSK .W Enc. Take as input
, a plaintext messageParam and an access structureM . Generate a ciphertextW .CT Trapdoor. Take as input the public parameter
, an attribute setParam , an access structureAL andT' , generate the trapdoorMSK for users.TD Dec. Take as input the ciphertext
, the secret keyCT , generate the corresponding plaintextSK of the ciphertextM .CT Test. Take as input two ciphertexts
, two trapdoorsCT_{A},~CT_{B} , it outputs 1 if the corresponding plaintext ofTD_{A},~TD_{B} andCT_{A} are the same messages; otherwise, it outputs 0.CT_{B}
Here, we review the definition of the security property defined in Wang et al.’s paper as follows [16].
Setup. The challenger
takes as input a security parameter\mathcal {C} , and outputs the public parameterk and sends it toParam .\mathcal {A} Phase 1.
runs the following queries polynomially many times.\mathcal {A} Key retrieve queries: The adversary
runs queries of the private keys of a set of attributes\mathcal {A} for many access structuresAL sends the corresponding private keyT_{i}.~\mathcal {C} toSK .\mathcal {A} Trapdoor queries:
runs the Trapdoor algorithm and outputs the trapdoor\mathcal {C} and responds toTD .\mathcal {A}
Challenge: The adversary
selects two messages\mathcal {A} andM_{0} with equal length and sends them toM_{1} uniformly selects a random bit\mathcal {C}.~\mathcal {C} , and computesb \in \{0,1\} = Encrypt(CT^{*} ) as a challenge, whereParam,W,M_{b} is an access structure.W Phase 2: Phase 1 is repeated. The only constraint is that
which satisfies the access structureAL does not appear in the key retrieve queries.W Guess:
outputs a bit\mathcal {A} .b'
The adversary
Definition 4:
The CP-ABEET scheme is selectively IND-CPA secure if the advantage of any polynomial-time adversary is negligible in security parameter
Note 1: The definition in the paper [16] required that the challenger
B. Recall the CP-ABEET Scheme and its Security Analysis
We recall the CP-ABEET scheme proposed by Wang et al. [16]. Wang et al. had shown that their scheme satisfies IND-CPA security. However, we will show that this security property doesn’t hold.
1) Recall the CP-ABEET Scheme
Setup(
: On input a security parameter1^{k}) , producek and the master keyParam as follows.MSK Generate two bilinear groups
with the same prime order\mathbb {G},\mathbb {G}_{\mathrm {T}} , and generate a random generatorp . A mapg \in \mathbb {G} is a bilinear map.e: \mathbb {G} \times \mathbb {G} \rightarrow \mathbb {G}_{\mathrm {T}} Select two hash functions
.H_{1}: \mathbb {G}_{\mathrm {T}} \rightarrow \mathbb {G} \times \mathbb {Z}_{p},\,\,H_{2}: \mathbb {G}_{\mathrm {T}} \rightarrow \mathbb {G} Randomly choose
elementsN and calculater_{1}, \cdots, r_{N} \in \mathbb {Z}_{p} forR_{i} = g^{r_{i}} toi= 1 . WhereN is the number of system attributes.N Randomly choose
and\alpha, \alpha ', \gamma _{1}, \gamma _{2}, \gamma _{3} \in \mathbb {Z}_{p} and calculateW_{1},W_{2} \in \mathbb {G} \begin{align*} u_{1}=&e(g,W_{2})^{\alpha \gamma _{1}}e(g,W_{1})^{\alpha \gamma _{1}}, \\ v_{1}=&e(g,W_{2})^{\alpha \gamma _{2}}e(g,W_{1})^{\alpha \gamma _{2}}, \\ u_{2}=&e(g,W_{2})^{\alpha '\gamma _{1}}e(g,W_{1})^{\alpha '\gamma _{1}}, \\ v_{2}=&e(g,W_{2})^{\alpha '\gamma _{3}}e(g,W_{1})^{\alpha '\gamma _{3}}.\end{align*} View Source\begin{align*} u_{1}=&e(g,W_{2})^{\alpha \gamma _{1}}e(g,W_{1})^{\alpha \gamma _{1}}, \\ v_{1}=&e(g,W_{2})^{\alpha \gamma _{2}}e(g,W_{1})^{\alpha \gamma _{2}}, \\ u_{2}=&e(g,W_{2})^{\alpha '\gamma _{1}}e(g,W_{1})^{\alpha '\gamma _{1}}, \\ v_{2}=&e(g,W_{2})^{\alpha '\gamma _{3}}e(g,W_{1})^{\alpha '\gamma _{3}}.\end{align*}
Set the public parameter
and keep the master keyParam = (\mathbb {G},\,\,\mathbb {G}_{\mathrm {T}},\,\,g,\,\,p,\,\,e,\,\,g^{\alpha },\,\,g^{\alpha '},\,\,W_{1},\,\,W_{2},\,\,u_{1},\,\,u_{2},\,\,v_{1},\,\,v_{2},\,\,R_{1},\,\,\cdots,\,\,R_{N},\,\,H_{1},\,\,H_{2}) secret.MSK = (\alpha,~\alpha ',~r_{1},~\cdots,~r_{N},~\gamma _{1},~\gamma _{2},~\gamma _{3})
Enc(M, Param, S, S’): On input a message
, public parameterM and an access policyParam , which contains:W wildcards occur at positionsl_{1} \leq L_{1} positive attributes occur at positionsJ = \{\omega _{1},\cdots, \omega _{l_{1}}\},\,\,l_{2} \leq L_{2} , andX = \{x_{1},\cdots, x_{l_{2}}\} negative attributes occur at positionsl_{3} \leq L_{3} . By means of the Viéte’s formulas, for the wildcard positionY = \{y_{1},\cdots, y_{l_{3}}\} in access structure, compute\{\omega _{k}\}_{1, \cdots, l_{1}} and seta_{\omega _{k}} . This algorithm creates the cipheretextt_{\omega } = \sum _{k=0}^{l_{1}}a_{\omega _{k}} as follows.CT Randomly pick
and calculatez, z_{1}, z_{2}, \in \mathbb {Z}_{p} \begin{align*} C_{0}=&H_{1}(u_{1}^{z_{1}}v_{1}^{z_{2}}) \oplus M\|z,\quad C_{1} = M^{z} H_{2}(u_{2}^{z_{1}}v_{2}^{z_{2}}), \\[-3pt] C_{2}=&g^{\frac {\alpha z_{1}}{t_{\omega }}},\quad C_{3} = g^{\frac {z_{2}}{t_{\omega }}},~C'_{2} = g^{\frac {\alpha ' z_{1}}{t_{\omega }}},~C'_{3} = g^{z}, \\[-3pt] C_{4}=&\left({W_{1} \prod _{i \in X}R_{i}^{\frac {\prod _{k=0}^{l_{1}}(i-\omega _{k})}{t_{\omega }}}}\right)^{z_{1}+z_{2}}, \\[-6pt] C_{5}=&\left({W_{2} \prod _{i \in Y}R_{i}^{\frac {\prod _{k=0}^{l_{1}}(i-\omega _{k})}{t_{\omega }}}}\right)^{z_{1}+z_{2}}.\end{align*} View Source\begin{align*} C_{0}=&H_{1}(u_{1}^{z_{1}}v_{1}^{z_{2}}) \oplus M\|z,\quad C_{1} = M^{z} H_{2}(u_{2}^{z_{1}}v_{2}^{z_{2}}), \\[-3pt] C_{2}=&g^{\frac {\alpha z_{1}}{t_{\omega }}},\quad C_{3} = g^{\frac {z_{2}}{t_{\omega }}},~C'_{2} = g^{\frac {\alpha ' z_{1}}{t_{\omega }}},~C'_{3} = g^{z}, \\[-3pt] C_{4}=&\left({W_{1} \prod _{i \in X}R_{i}^{\frac {\prod _{k=0}^{l_{1}}(i-\omega _{k})}{t_{\omega }}}}\right)^{z_{1}+z_{2}}, \\[-6pt] C_{5}=&\left({W_{2} \prod _{i \in Y}R_{i}^{\frac {\prod _{k=0}^{l_{1}}(i-\omega _{k})}{t_{\omega }}}}\right)^{z_{1}+z_{2}}.\end{align*}
Set
as the ciphertext.CT =(C_{0},C_{1},C_{2},C_{3},C_{4},C_{5},C'_{2},C'_{3},J)
KeyGen(Param, MSK, AL): On input the public parameter
, the master keyParam and a set of attributesMSK which contains:AL positive attributes appear at positionsl_{2} (\leq L_{2}) negative attributes appear at positionsX = \{x'_{1}, \cdots, x'_{l_{2}}\},\,\,l_{3} \leq L_{3} . By means of the Viète’s formula, for all positive positionsY' = (y'_{1}, \cdots, y'_{l_{3}}\} and negative positions\{x'_{i}\}_{i \in \{1, \cdots, l_{2}\}} , compute\{y'_{i}\}_{i \in \{1, \cdots, l_{3}\}} and set\{a_{x'_{i}}\},~\{a_{y'_{i}}\} . This algorithm produces the decryption secret key SK as follows:t'_{x} = \sum _{k=0}^{l_{2}}a_{x'},\,\,t'_{y} = \sum _{k=0}^{l_{3}}a_{y'} Select a random element
, calculates \in \mathbb {Z}_{p} and generate the decryption secret key as follows.s_{1} = \gamma _{1} + s,\,\,s_{2} = \gamma _{2} + s,\,\,s_{3} = \gamma _{3} + s where\begin{align*} sk_{1}=&g^{\frac {\alpha s}{t'_{x}}}, \quad sk_{2} = g^{\frac {\alpha s}{t'_{y}}}, ~sk'_{1} = g^{\frac {\alpha ' s}{t'_{x}}}, ~sk'_{2} = g^{\frac {\alpha ' s}{t'_{y}}}, \\[-4pt] sk_{3}=&\{sk_{3,0},sk_{3,1},\cdots, sk_{3,L_{1}}\},\end{align*} View Source\begin{align*} sk_{1}=&g^{\frac {\alpha s}{t'_{x}}}, \quad sk_{2} = g^{\frac {\alpha s}{t'_{y}}}, ~sk'_{1} = g^{\frac {\alpha ' s}{t'_{x}}}, ~sk'_{2} = g^{\frac {\alpha ' s}{t'_{y}}}, \\[-4pt] sk_{3}=&\{sk_{3,0},sk_{3,1},\cdots, sk_{3,L_{1}}\},\end{align*}
from 0 tosk_{3,i} = W_{1}^{s_{1}}\prod _{j \in X'}g^{sr_{j}j^{i}},\,\,i ;L_{1} where\begin{equation*} sk'_{3} = \{sk'_{3,0},sk'_{3,1},\cdots, sk'_{3,L_{1}}\},\end{equation*} View Source\begin{equation*} sk'_{3} = \{sk'_{3,0},sk'_{3,1},\cdots, sk'_{3,L_{1}}\},\end{equation*}
from 0 tosk'_{3,i} = W_{1}^{\alpha s_{2}}\prod _{j \in X'}g^{\alpha sr_{j}j^{i}},\,\,i ;L_{1} where\begin{equation*} sk''_{3} = \{sk''_{3,0},sk''_{3,1},\cdots, sk''_{3,L_{1}}\},\end{equation*} View Source\begin{equation*} sk''_{3} = \{sk''_{3,0},sk''_{3,1},\cdots, sk''_{3,L_{1}}\},\end{equation*}
from 0 tosk''_{3,i} = W_{1}^{\alpha ' s_{3}}\prod _{j \in X'}g^{\alpha ' sr_{j}j^{i}},\,\,i ;L_{1} where\begin{equation*} sk_{4} = \{sk_{4,0},sk_{4,1},\cdots, sk_{4,L_{1}}\},\end{equation*} View Source\begin{equation*} sk_{4} = \{sk_{4,0},sk_{4,1},\cdots, sk_{4,L_{1}}\},\end{equation*}
from 0 tosk_{4,i} = W_{2}^{s_{1}}\prod _{j \in Y'}g^{sr_{j}j^{i}},\,\,i ;L_{1} where\begin{equation*} sk'_{4} = \{sk'_{4,0},sk'_{4,1},\cdots, sk'_{4,L_{1}}\},\end{equation*} View Source\begin{equation*} sk'_{4} = \{sk'_{4,0},sk'_{4,1},\cdots, sk'_{4,L_{1}}\},\end{equation*}
from 0 tosk'_{4,i} = W_{2}^{\alpha s_{2}}\prod _{j \in Y'}g^{\alpha sr_{j}j^{i}},\,\,i ;L_{1} where\begin{equation*} sk''_{4} = \{sk''_{4,0},sk''_{4,1},\cdots, sk''_{4,L_{1}}\},\end{equation*} View Source\begin{equation*} sk''_{4} = \{sk''_{4,0},sk''_{4,1},\cdots, sk''_{4,L_{1}}\},\end{equation*}
from 0 tosk''_{4,i} = W_{2}^{\alpha ' s_{3}}\prod _{j \in Y'}g^{\alpha ' sr_{j}j^{i}},\,\,i . SetL_{1} as the decryption key.SK = (sk_{1},sk_{2},sk'_{1},sk'_{2},sk_{3},sk'_{3},sk''_{3},sk_{4},sk'_{4},sk''_{4})
Trapdoor(
): On input the public parameterParam, AL, SK , a set of attributesParam and the decryption secret keyAL , output a trapdoorSK TD = where\begin{equation*} (td_{1}, td_{2},(td_{3,i},td'_{3,i},td_{4,i},td'_{4,i})_{i \in [{0,L_{1}}]}),\end{equation*} View Source\begin{equation*} (td_{1}, td_{2},(td_{3,i},td'_{3,i},td_{4,i},td'_{4,i})_{i \in [{0,L_{1}}]}),\end{equation*}
, fortd_{1} = sk'_{1},\,\,td_{2}\,\,td_{3,i} = sk_{3,i},\,\,td'_{3,i} = sk''_{3,i},\,\,td_{4,i} = sk_{4,i},\,\,td'_{4,i} = sk''_{4,i} toi= 0 .L_{1} Dec(
): On input the ciphertextCT,SK, S,S' and the decryption secret keyCT , compute the plaintext as follows.SK If\begin{align*} V_{1}=&\frac {e\left({\prod _{j=1}^{l_{1}}sk_{3,j}^{a_{\omega _{j}}},C_{2}}\right) e\left({\prod _{j=1}^{l_{1}}(sk'_{3,j})^{a_{\omega _{j}}},C_{3}}\right)}{e(sk_{1},C_{4})^{t_{x'}}} \\&\times \frac {e\left({\prod _{j=1}^{l_{1}}sk_{4,j}^{a_{\omega _{j}}},C_{2}}\right)e\left({\prod _{j=1}^{l_{1}}(sk'_{4,j})^{a_{\omega _{j}}},C_{3}}\right)}{e(sk_{2},C_{5})^{t_{y'}}}, \\ V_{2}=&\frac {e\left({\prod _{j=1}^{l_{1}}sk_{3,j}^{a_{\omega _{j}}},C'_{2}}\right) e\left({\prod _{j=1}^{l_{1}}(sk''_{3,j})^{a_{\omega _{j}}},C_{3}}\right)}{e(sk'_{1},C_{4})^{t_{x'}}} \\&\times \frac {e\left({\prod _{j=1}^{l_{1}}sk_{4,j}^{a_{\omega _{j}}},C_{2}}\right)e\left({\prod _{j=1}^{l_{1}}(sk''_{4,j})^{a_{\omega _{j}}},C_{3}}\right)}{e(sk'_{2},C_{5})^{t_{y'}}}, \\ M\|z=&H_{1}(V_{1})\oplus C_{0}.\end{align*} View Source\begin{align*} V_{1}=&\frac {e\left({\prod _{j=1}^{l_{1}}sk_{3,j}^{a_{\omega _{j}}},C_{2}}\right) e\left({\prod _{j=1}^{l_{1}}(sk'_{3,j})^{a_{\omega _{j}}},C_{3}}\right)}{e(sk_{1},C_{4})^{t_{x'}}} \\&\times \frac {e\left({\prod _{j=1}^{l_{1}}sk_{4,j}^{a_{\omega _{j}}},C_{2}}\right)e\left({\prod _{j=1}^{l_{1}}(sk'_{4,j})^{a_{\omega _{j}}},C_{3}}\right)}{e(sk_{2},C_{5})^{t_{y'}}}, \\ V_{2}=&\frac {e\left({\prod _{j=1}^{l_{1}}sk_{3,j}^{a_{\omega _{j}}},C'_{2}}\right) e\left({\prod _{j=1}^{l_{1}}(sk''_{3,j})^{a_{\omega _{j}}},C_{3}}\right)}{e(sk'_{1},C_{4})^{t_{x'}}} \\&\times \frac {e\left({\prod _{j=1}^{l_{1}}sk_{4,j}^{a_{\omega _{j}}},C_{2}}\right)e\left({\prod _{j=1}^{l_{1}}(sk''_{4,j})^{a_{\omega _{j}}},C_{3}}\right)}{e(sk'_{2},C_{5})^{t_{y'}}}, \\ M\|z=&H_{1}(V_{1})\oplus C_{0}.\end{align*}
andC'_{3}= g^{z} , then output the plaintextH_{2}(V_{2}) = \frac {C_{1}}{M^{z}} . Here allM above are coefficients in the unfolding polynomiala_{k} .\prod _{k=0}^{l_{1}}(i-\omega _{k}) Test
: On input two ciphertexts(CT_{A}, CT_{B}, TD_{A}, TD_{B}, S') and the corresponding trapdoorsCT_{A},~CT_{B} , respectively. This algorithm decides that the planitextsTD_{A},~TD_{B} andM_{A} are equal or not as follows.M_{B} Compute
and if\begin{align*} Q'_{A}=&\frac {e\left({\prod _{j=1}^{l_{1}}td_{3,j,A}^{a_{\omega _{j},A}},C'_{2,A}}\right)e\left({\prod _{j=1}^{l_{1}}(td'_{3,j,A})^{a_{\omega _{j},A}},C_{3,A}}\right)}{e(td_{1,A},C_{4,A})^{t_{x'_{A}}}} \\&\times \frac {e\left({\prod _{j=1}^{l_{1}}td_{4,j,A}^{a_{\omega _{j},A}},C'_{2,A}}\right)e\left({\prod _{j=1}^{l_{1}}\!(td'_{4,j,A}) ^{a_{\omega _{j},A}},\!C_{3,A}}\right)}{e(td_{2,A},C_{5,A})^{t_{y'_{A}}}}, \\ Q_{A}=&\frac {C_{1,A}}{H_{2}(Q'_{A})}. \\ Q'_{B}=&\frac {e\left({\prod _{j=1}^{l_{1}}td_{3,j,B}^{a_{\omega _{j},B}},C'_{2,B}}\right)e\left({\prod _{j=1}^{l_{1}}(td'_{3,j,B})^{a_{\omega _{j},B}},C_{3,B}}\right)}{e(td_{1,B},C_{4,B})^{t_{x'_{B}}}} \\&\times \frac {e\left({\prod _{j=1}^{l_{1}}td_{4,j,B}^{a_{\omega _{j},B}},C'_{2,B}}\right) e\left({\prod _{j=1}^{l_{1}}\!(td'_{4,j,B})^{a_{\omega _{j},B}},\!C_{3,B}}\right)}{e(td_{2,B},C_{5,B})^{t_{y'_{B}}}}, \\ Q_{B}=&\frac {C_{1,B}}{H_{2}(Q'_{B})}.\end{align*} View Source\begin{align*} Q'_{A}=&\frac {e\left({\prod _{j=1}^{l_{1}}td_{3,j,A}^{a_{\omega _{j},A}},C'_{2,A}}\right)e\left({\prod _{j=1}^{l_{1}}(td'_{3,j,A})^{a_{\omega _{j},A}},C_{3,A}}\right)}{e(td_{1,A},C_{4,A})^{t_{x'_{A}}}} \\&\times \frac {e\left({\prod _{j=1}^{l_{1}}td_{4,j,A}^{a_{\omega _{j},A}},C'_{2,A}}\right)e\left({\prod _{j=1}^{l_{1}}\!(td'_{4,j,A}) ^{a_{\omega _{j},A}},\!C_{3,A}}\right)}{e(td_{2,A},C_{5,A})^{t_{y'_{A}}}}, \\ Q_{A}=&\frac {C_{1,A}}{H_{2}(Q'_{A})}. \\ Q'_{B}=&\frac {e\left({\prod _{j=1}^{l_{1}}td_{3,j,B}^{a_{\omega _{j},B}},C'_{2,B}}\right)e\left({\prod _{j=1}^{l_{1}}(td'_{3,j,B})^{a_{\omega _{j},B}},C_{3,B}}\right)}{e(td_{1,B},C_{4,B})^{t_{x'_{B}}}} \\&\times \frac {e\left({\prod _{j=1}^{l_{1}}td_{4,j,B}^{a_{\omega _{j},B}},C'_{2,B}}\right) e\left({\prod _{j=1}^{l_{1}}\!(td'_{4,j,B})^{a_{\omega _{j},B}},\!C_{3,B}}\right)}{e(td_{2,B},C_{5,B})^{t_{y'_{B}}}}, \\ Q_{B}=&\frac {C_{1,B}}{H_{2}(Q'_{B})}.\end{align*}
it outputs 1; Otherwise, it outputs 0.e(Q_{B},C'_{3,A}) = e(Q_{A},C'_{3,B})
2) The CP-ABEET Scheme ISN’t Secure for IND-CPA
Now, we analyze the IND-CPA security of the CP-ABEET scheme.
From the definition of \begin{align*}&\hspace {-1pc}V= \frac {e\left({\prod _{j=1}^{l_{1}}sk_{3,j}^{a_{\omega _{j}}},C'_{2}}\right)e\left({\prod _{j=1}^{l_{1}}(sk''_{3,j})^{a_{\omega _{j}}},C_{3}}\right)}{e(sk'_{1},C_{4})^{t_{x'}}} \\&\qquad \qquad \qquad \quad \times \frac {e\left({\prod _{j=1}^{l_{1}}sk_{4,j}^{a_{\omega _{j}}},C_{2}}\right)e\left({\prod _{j=1}^{l_{1}}(sk''_{4,j})^{a_{\omega _{j}}},C_{3}}\right)}{e(sk'_{2},C_{5})^{t_{y'}}},\end{align*}
\begin{equation*} X_{M_{b}} = \frac {C_{1}}{H_{2}(V)}.\end{equation*}
\begin{equation*} e(X_{M_{b}}, g) \stackrel {?}{=} e(M_{0}, C'_{3})\end{equation*}
Obviously, if the challenge ciphertext \begin{equation*} M_{b}^{z} = X_{M_{b}} = \frac {C_{1}}{H_{2}(V)}.\end{equation*}
Since \begin{equation*} e(X_{M_{b}}, g) = e(M_{b}^{z}, g) = e(M_{b}, g^{z}),\end{equation*}
\begin{equation*} e(M_{0}, C'_{3})= e(M_{0}, g^{z}).\end{equation*}
Thus, the attack can show that the CP-ABEET scheme isn’t IND-CPA secure.
C. Brief Summary and Future Work
Wang et al. wanted to construct a CP-ABEET scheme which is IND-CPA secure without random oracle. However, they omitted the adversary can access to the trapdoor oracle to get the trapdoor of any attribute set, which can be used to the Test algorithm. Furthermore, the adversary can choose a message
Conclusion
IBEET and ABEET are important cryptographic schemes to solve the searching encrypted data in cloud computing. They not only have the functionality of decryption, but also can compare the ciphertexts to determine whether the corresponding plaintexts are the same or not. However, some of the constructions have been omitted that the adversary could get the trapdoors in their security models, and that caused the schemes to be not secure. We analyzed the security of two schemes in this paper. We firstly proved that the IBEET scheme wasn’t one-way under chosen ciphertext attack and gave some idea to improve the scheme. Then we proved that the CP-ABEET scheme wasn’t indistinguishable against chosen plaintext attack in the standard model.