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 that$g_{1},g_{2} \in \mathbb {G}$ , where$e(g_{1},g_{2}) \neq 1_{G_{\mathrm {T}}}$ is the identity element of$1_{G_{\mathrm {T}}}$ .$\mathbb {G}_{\mathrm {T}}$ Computability: For any elements
, there is an efficient algorithm to compute$g_{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 parameters$k$ and a master key$K$ .$msk$ : On input$\mathbf {Extract}(msk, ID)$ and an arbitrary identity$msk$ , the algorithm outputs a private key$ID\in \{0,1\}^{*}$ for an identity$sk_{ID}$ .$ID$ : On input an identity$\mathbf {Enc}(ID, M)$ and a plaintext$ID\in \{0,1\}^{*}$ , the algorithm outputs a ciphertext$M\in \mathbb {M}$ .$C\in \mathbb {C}$ : On input a ciphertext$\mathbf {Dec}(sk_{ID}, C)$ and a private key$C\in \mathbb {C} $ , the algorithm outputs a plaintext$sk_{ID}$ .$M\in \mathbb {M}$ : On input the private key$\mathbf {Trapdoor}(sk_{ID_{A}}, C)$ of identity$sk_{ID_{A}}$ of a user$ID_{A}$ and a ciphertext$A$ encrypted some plaintext by using$C\in \mathbb {C}$ , the algorithm outputs a trapdoor$ID_{A}$ . If$td_{A}$ is empty string(ciphertext), then that means all ciphertexts correspond to the same trapdoor$C$ .$td_{A}$ : On input a ciphertext$\mathbf {Test}(C_{A}, td_{A}, C_{B}, td_{B})$ , a trapdoor$C_{A} \in \mathbb {C}$ for an identity$td_{A}$ , and a ciphertext$ID_{A}$ , a trapdoor$C_{B} \in \mathbb {C}$ for an identity$td_{B}$ , the algorithm outputs “1” if$ID_{B}$ and$C_{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 challenger$k$ produces the system parameters$\mathcal {C}$ by running the Setup algorithm. Then$K$ sends$\mathcal {C}$ to the adversary and keeps the master key$K$ by itself.$msk$ The Phase 1
Private key queries. The challenger
produces a private key$\mathcal {C}$ of an identity$sk_{i}$ by running the Extract algorithm. Then$ID_{i}$ sends the private key$\mathcal {C}$ of identity$sk_{i}$ to adversary$ID_{i}$ .$\mathcal {A}$ Trapdoor queries
. At any time, in order to obtain a trapdoor of an identity$TD_{i}$ , on input identity$ID_{i}$ , the adversary$ID_{i}$ can query trapdoor oracle. The challenger gets trapdoor$\mathcal {A}$ by running the above private key queries on$td_{i}$ , and then sends the trapdoor$ID_{i}$ to$td_{i}$ .$\mathcal {A}$ Decryption queries
. The challenger decrypts the ciphertext$(ID_{i}, C_{i})$ by running the decryption oracle, and then sends the$C_{i}$ , which is an output of the decryption oracle, to adversary$M_{i}$ .$\mathcal {A}$
Challenge: Firstly the adversary
decides to submit an challenge identity$\mathcal {A}$ which she/he selects. The only restricted condition is that$ID^{*}$ didn’t appear in the private key queries in the phase 1, however$ID^{*}$ may be in the decryption queries$ID^{*}$ or in the trapdoor queries. Then the challenger$(ID^{*}, \cdot)$ randomly selects a plaintext$\mathcal {C}$ and finally sends the challenge ciphertext$M^{*}\in \mathcal {M}$ to$C^{*}=\mathrm {Enc}(ID^{*},M^{*})$ .$\mathcal {A}$ The Phase 2.
Private key queries. If
, then the challenger$ID_{i} \not =ID^{*}$ responds it as that in the phase 1.$\mathcal {C}$ Trapdoor queries
. For any identity, the challenger$TD_{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 map$p$ with a random generator$e: \mathbb {G}\times \mathbb {G} \rightarrow \mathbb {G}_{\mathrm {T}}$ . Randomly select three cryptographic hash functions:$g\in \mathbb {G}$ , where$H_{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}}$ and$l_{1}$ are length of elements in$l_{2}$ and$\mathbb {G}$ , respectively.$\mathbb {Z}_{p}$ Select random elements
and let$s',s\in \mathbb {Z}_{p}$ and$g_{1}=g^{s'}$ . Here let$g_{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 key$K_{\mathrm {IBEET}}=(p,\mathbb {G},\mathbb {G}_{\mathrm {T}},e,g,g_{1},\,\,g_{2},\,\,H_{1}, H_{2},H_{3})$ is$msk$ .$(s',s) \in \mathbb {Z}_{p}^{2}$
Extract: On input an identity
, it works as follows:$ID \in \{0,1\}^{*}$ Firstly calculate
, and then calculate$h_{ID}=H_{1}(ID)\in \mathbb {G}$ as the private key, where$sk_{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 trapdoor$h_{ID}=H_{1}(ID)\in \mathbb {G}$ , which is the first element of$td_{ID}=h^{s'}_{ID}$ .$sk_{ID}$
Enc: On input a message
and an identity$M \in \mathbb {G}$ , it works as follows:$ID$ Firstly calculate
, and randomly pick three elements$h_{ID}=H_{1}(ID)\in \mathbb {G}$ ;$r_{1},r_{2},r_{3}\in \mathbb {Z}_{p}$ Set the ciphertext to be
, where$C=(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 ciphertext$C,sk_{ID}$ and the private key$C$ , where$sk_{ID}=(h^{s'}_{ID},h^{s}_{ID})$ is a ciphertext encrypted by using the identity$C=(C_{1},C_{2},C_{3},C_{4},C_{5})\in \mathbb {C}$ , the algorithm firstly calculates$ID$ 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 ciphertexts$C_{A},td_{ID_{A}},C_{B},td_{ID_{B}}$ and corresponding trapdoors$C_{A},~C_{B}$ respectively, to determine whether plaintexts$td_{ID_{A}},~td_{ID_{B}}$ and$M_{A}$ are equal or not, where$M_{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*}
and$td_{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 get$ID^{*}$ 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 set$r \in \mathbb {Z}_{p}^{*}$ . The adversary checks whether$C_{2}= (C_{2}^{*})^{r}$ is a part of a ciphertext having been on the list of decryption queries and encrypted by the identity$C_{2}$ . If it is on the list of decryption queries, then repeats above step (renew the random number$ID^{*}$ ); otherwise, the adversary calculates$r$ \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 sets$C^{*}$ 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 identity$C'=(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 responds$ID^{*}$ if the “ciphertext”$M'$ is a valid ciphertext; otherwise it responds$C'$ .$``\bot ''$ Finally, the adversary outputs
as a plaintext of the challenge ciphertext$M^{*}(=M')$ and the challenge identity$C^{*}$ .$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 key$k$ and the public parameter$MSK$ . And keep$Param$ secure.$MSK$ KeyGen. Take as input the public parameter
, the master key$Param$ and an attribute set$MSK$ . Generate the secret key$AL$ for the attribute set$SK$ .$W$ Enc. Take as input
, a plaintext message$Param$ and an access structure$M$ . Generate a ciphertext$W$ .$CT$ Trapdoor. Take as input the public parameter
, an attribute set$Param$ , an access structure$AL$ and$T'$ , generate the trapdoor$MSK$ for users.$TD$ Dec. Take as input the ciphertext
, the secret key$CT$ , generate the corresponding plaintext$SK$ of the ciphertext$M$ .$CT$ Test. Take as input two ciphertexts
, two trapdoors$CT_{A},~CT_{B}$ , it outputs 1 if the corresponding plaintext of$TD_{A},~TD_{B}$ and$CT_{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 parameter$k$ and sends it to$Param$ .$\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 structures$AL$ sends the corresponding private key$T_{i}.~\mathcal {C}$ to$SK$ .$\mathcal {A}$ Trapdoor queries:
runs the Trapdoor algorithm and outputs the trapdoor$\mathcal {C}$ and responds to$TD$ .$\mathcal {A}$
Challenge: The adversary
selects two messages$\mathcal {A}$ and$M_{0}$ with equal length and sends them to$M_{1}$ uniformly selects a random bit$\mathcal {C}.~\mathcal {C}$ , and computes$b \in \{0,1\}$ = Encrypt($CT^{*}$ ) as a challenge, where$Param,W,M_{b}$ is an access structure.$W$ Phase 2: Phase 1 is repeated. The only constraint is that
which satisfies the access structure$AL$ 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 parameter$1^{k})$ , produce$k$ and the master key$Param$ as follows.$MSK$ Generate two bilinear groups
with the same prime order$\mathbb {G},\mathbb {G}_{\mathrm {T}}$ , and generate a random generator$p$ . A map$g \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
elements$N$ and calculate$r_{1}, \cdots, r_{N} \in \mathbb {Z}_{p}$ for$R_{i} = g^{r_{i}}$ to$i= 1$ . Where$N$ is the number of system attributes.$N$ Randomly choose
and$\alpha, \alpha ', \gamma _{1}, \gamma _{2}, \gamma _{3} \in \mathbb {Z}_{p}$ and calculate$W_{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 key$Param = (\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 parameter$M$ and an access policy$Param$ , which contains:$W$ wildcards occur at positions$l_{1} \leq L_{1}$ positive attributes occur at positions$J = \{\omega _{1},\cdots, \omega _{l_{1}}\},\,\,l_{2} \leq L_{2}$ , and$X = \{x_{1},\cdots, x_{l_{2}}\}$ negative attributes occur at positions$l_{3} \leq L_{3}$ . By means of the Viéte’s formulas, for the wildcard position$Y = \{y_{1},\cdots, y_{l_{3}}\}$ in access structure, compute$\{\omega _{k}\}_{1, \cdots, l_{1}}$ and set$a_{\omega _{k}}$ . This algorithm creates the cipheretext$t_{\omega } = \sum _{k=0}^{l_{1}}a_{\omega _{k}}$ as follows.$CT$ Randomly pick
and calculate$z, 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 key$Param$ and a set of attributes$MSK$ which contains:$AL$ positive attributes appear at positions$l_{2} (\leq L_{2})$ negative attributes appear at positions$X = \{x'_{1}, \cdots, x'_{l_{2}}\},\,\,l_{3} \leq L_{3}$ . By means of the Viète’s formula, for all positive positions$Y' = (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
, calculate$s \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 to$sk_{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 to$sk'_{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 to$sk''_{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 to$sk_{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 to$sk'_{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 to$sk''_{4,i} = W_{2}^{\alpha ' s_{3}}\prod _{j \in Y'}g^{\alpha ' sr_{j}j^{i}},\,\,i$ . Set$L_{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 parameter$Param, AL, SK$ , a set of attributes$Param$ and the decryption secret key$AL$ , output a trapdoor$SK$ $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*}
, for$td_{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}$ to$i= 0$ .$L_{1}$ Dec(
): On input the ciphertext$CT,SK, S,S'$ and the decryption secret key$CT$ , 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*}
and$C'_{3}= g^{z}$ , then output the plaintext$H_{2}(V_{2}) = \frac {C_{1}}{M^{z}}$ . Here all$M$ above are coefficients in the unfolding polynomial$a_{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 trapdoors$CT_{A},~CT_{B}$ , respectively. This algorithm decides that the planitexts$TD_{A},~TD_{B}$ and$M_{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.