
Citation: Nyamsuren Vaanchig, Zhiguang Qin. Public key encryption with temporary and fuzzy keyword search[J]. Mathematical Biosciences and Engineering, 2019, 16(5): 3914-3935. doi: 10.3934/mbe.2019193
[1] | Han-Yu Lin, Tung-Tso Tsai, Hong-Ru Wu, Miao-Si Ku . Secure access control using updateable attribute keys. Mathematical Biosciences and Engineering, 2022, 19(11): 11367-11379. doi: 10.3934/mbe.2022529 |
[2] | Jiayuan Zhang, Rongxin Guo, Yifan Shi, Wanting Tang . An anti-impersonation attack electronic health record sharing scheme based on proxy re-encryption and blockchain. Mathematical Biosciences and Engineering, 2024, 21(6): 6167-6189. doi: 10.3934/mbe.2024271 |
[3] | Yuzhen Zhou, Erxi Zhu, Shan Li . An image encryption algorithm based on the double time-delay Lorenz system. Mathematical Biosciences and Engineering, 2023, 20(10): 18491-18522. doi: 10.3934/mbe.2023821 |
[4] | Guodong Ye, Huishan Wu, Kaixin Jiao, Duan Mei . Asymmetric image encryption scheme based on the Quantum logistic map and cyclic modulo diffusion. Mathematical Biosciences and Engineering, 2021, 18(5): 5427-5448. doi: 10.3934/mbe.2021275 |
[5] | Min Liu, Guodong Ye . A new DNA coding and hyperchaotic system based asymmetric image encryption algorithm. Mathematical Biosciences and Engineering, 2021, 18(4): 3887-3906. doi: 10.3934/mbe.2021194 |
[6] | Yifeng Yin, Zhaobo Wang, Wanyi Zhou, Yong Gan, Yanhua Zhang . Group key agreement protocol for edge computing in industrial internet. Mathematical Biosciences and Engineering, 2022, 19(12): 12730-12743. doi: 10.3934/mbe.2022594 |
[7] | Yiqin Bao, Qiang Zhao, Jie Sun, Wenbin Xu, Hongbing Lu . An edge cloud and Fibonacci-Diffie-Hellman encryption scheme for secure printer data transmission. Mathematical Biosciences and Engineering, 2024, 21(1): 96-115. doi: 10.3934/mbe.2024005 |
[8] | Kaimeng Chen, Chin-Chen Chang . High-capacity reversible data hiding in encrypted images based on two-phase histogram shifting. Mathematical Biosciences and Engineering, 2019, 16(5): 3947-3964. doi: 10.3934/mbe.2019195 |
[9] | Yuanshuo Liu, Defeng Wu, Zheng You . An enhanced A* method incorporating an encrypted memory database for ASV efficient local path planning. Mathematical Biosciences and Engineering, 2024, 21(2): 2302-2322. doi: 10.3934/mbe.2024101 |
[10] | Qing Ye, Qiaojia Zhang, Sijie Liu, Kaiqiang Chen . A novel chaotic system based on coupled map lattice and its application in HEVC encryption. Mathematical Biosciences and Engineering, 2021, 18(6): 9410-9429. doi: 10.3934/mbe.2021463 |
Public Key Encryption with Keyword Search (PEKS) is a desirable tool to provide searchable functionality over encrypted data for public key cryptosystems, and the concept of PEKS was first put forward by Boneh et al. [1]. PEKS allows a user to delegate a third party server to perform the search operation on encrypted data without learning about the data. Consider, for example, secure data outsourcing system, where data outsourced to third party storage server should be protected from any unauthorized parties including the storage server since it may contain sensitive information [2,3,4,5]. Suppose, Alice wants to send/share data to/with Bob through the secure data outsourcing system. To do so, Alice should encrypt the data as well as the keyword extracted from the data and then store them on the storage server. Later, to selectively retrieve the data from the storage server, Bob firstly generates a trapdoor for a certain keyword which is included in one of the searchable ciphertexts stored along with the data ciphertext Alice outsourced. Then he sends the trapdoor to the server to delegate it to perform a search operation on behalf of him.
Although PEKS [1] was the first realization of searchable encryption in public key settings, it has been proven to be insecure under Keyword Guessing Attack (KGA) [6,7,8] so that the keyword will be compromised by a malicious server. Subsequently, Xu et al. [9] proposed Public Key Encryption with Fuzzy Keyword Search (PEFKS) by enhancing the PEKS with fuzzy keyword search operation in order to tackle the insecurity under KGA. However, this sacrifices the efficiency for the security so that it doubles the overhead in a PEKS scheme in terms of communication cost of the search result from server to user as well as computational cost of search operation on user side. Later on, Abdalla et al. [10] introduced Public Key Encryption with Temporary Keyword Search (PETKS) scheme as a generalization of PEKS by limiting the time period in which the trapdoor can be used. The temporary property of the PETKS limits the period in which the trapdoor could be used such that the server is only allowed to test whether ciphertexts generated in the period, for which the trapdoor is issued, contain the keyword. That is to say that the server only can perform the search operation on a subset of ciphertexts generated in the time period of the given trapdoor, not on all ciphertexts. Although the PETKS offers more efficient performance on search operation by limiting the size of ciphertext set on which search operation to be performed, it also remains vulnerable to KGA as the PEKS does. Therefore, it is an open problem to propose a public key encryption scheme with keyword search that offers at least the same security level with the PEFKS while limiting the lifetime of keyword trapdoor to be used. Moreover, in some contexts, it might be a desire for users who want to securely retrieve data created only in a limited period of time besides containing a particular keyword. To the best of our knowledge, there is no solution which deals with the open problem and fulfills the desire at the same time.
By addressing the above-mentioned problem and desire simultaneously, we propose a Public Key Encryption Scheme with Temporary and Fuzzy Keyword Search(PETFKS). To accomplish the goal of this study, we encounter the following major challenges: (a) how to prevent the KGA while offering more efficient performance on search operation, (b) how to achieve a mechanism that limits the lifetime of a trapdoor, (c) how to enable time-dependent data retrieval. In the proposed scheme, we thus overcome these challenges by using a fuzzy function –which maps two or more keywords to the same fuzzy value to prevent KGA by third party server from learning the exact keyword contained in the data– and an encryption tree –which is represented by a keyword and time structure to limit the lifetime of trapdoor. Intuitively, the proposed PETFKS scheme enriches the PEFKS scheme with temporary property. Main contributions of this work are summarized as follows.
● First, we formalize an unambiguous concept of Public Key Encryption Scheme with Temporary and Fuzzy Keyword Search. In PETFKS, the third party server filters out the most non-matched exact keyword searchable ciphertexts by performing a search operation on temporary and fuzzy keyword searchable ciphertexts of the searchable ciphertexts by means of temporary and fuzzy keyword trapdoor that contains a fuzzy keyword and a time interval, and it returns a small size of a matched exact keyword searchable ciphertext set to the data receiver. After receiving the set of the matched exact keyword searchable ciphertexts, the data receiver can locate a subset of the matched exact keyword searchable ciphertexts by locally performing an exact search operation on the matched set sent by the server by means of exact keyword trapdoor that contains an exact keyword.
● Next, we define a rigorous notion of PETFKS-IND-CKA(Indistinguishability under Chosen Keyword Attack) and PETFKS-IND-sCKA-KGA(Indistinguishability under selectively Chosen Keyword Attack and Keyword Guessing Attack) securities for the proposed scheme by concerning the security requirements of keyword confidentiality, forward and backward secrecy, and keyword guessing resistance.
● Then, we provide a concrete construction of PETFKS using the bilinear pairing, an encryption tree, and a fuzzy function.
● Furthermore, we prove that the proposed scheme is adaptively secure in the random oracle model under the BDH assumption concerning the security requirements of keyword confidentiality and backward and forward secrecy as well as it is selectively secure in the random oracle model under the BDH assumption concerning the resistance of keyword guessing attack.
● Moreover, we conduct the experimental simulation of the proposed scheme and the related works.
● Finally, we provide security and efficiency analyses by comparing the proposed scheme to the related works. The analyses indicate that the proposed scheme makes a threefold contribution to the practical application of public key encryption with keyword search, namely offering secure search operation, limiting the lifetime of trapdoor and enabling secure time-dependent data retrieval.
There has been many works [11,12,13,14] concerning the fact that data must be stored and transmitted in encrypted form such that if the storage server is compromised or the communication channel is intercepted the data disclosure will be limited. In recent years, PEKS draws the widespread attention of researchers. Since the first introduction of PEKS by Boneh et al. [1], many works have been proposed to improve the functionality of PEKS. In order to overcome the limitation of PEKS that performs a search operation for a certain keyword, some public key encryption with conjunctive keyword search schemes have been proposed in [15,16,17], by enabling search operation for boolean combinations of several keywords. By limiting the time period in which the trapdoor can be used, public key encryption with temporary keyword search scheme is proposed as a generalization of PEKS. Shi et al. [18] proposed public key encryption that focuses on multi-dimensional comparisons and range queries. The concept of public key encryption with delegated keyword search [19] is proposed to enable users to delegate the server to check whether encrypted data is infected by malware by giving the server a delegated master trapdoor that does not reveal users' private key. Yu et al. [20] proposed efficient public key encryption with revocable keyword search scheme to restrict the search power of the server by means of trapdoor that performs a search operation for the keyword in a certain time. Public key encryption with authorized keyword search scheme that allows the authority to authorize users to search different keyword sets is proposed by Peng et al. [21].
By enhancing the security of PEKS, some works have been proposed. Baek et al. [22] extended the PEKS scheme by removing a secure channel between users and a server. With concerning the offline keyword guessing attack in PEKS, Tang et al. [23] and Yang et al. [24] are proposed public key encryption with registered keyword search and public key encryption with keyword scheme not using pairing, respectively. Public key encryption with fuzzy keyword search scheme [9] is also proposed to address the keyword guessing attack in PEKS by means of a novel fuzzy function. In this paper, we proposed a Public Key Encryption Scheme with Temporary and Fuzzy Keyword Search. Our proposed offers secure search operation on server side and more efficient search operation on user side at the same time. Furthermore, it limits the lifetime of trapdoor as well as fulfills the desire for secure time-dependent data retrieval. To the best of our knowledge, our scheme overcomes the drawbacks in public key encryption with keyword search, which are not able to be tackled by the existing works.
We organize the rest of the paper as follows. In Section 2, we review preliminaries. In Section 3 and Section 4, we define the system model and the algorithm definitions of the proposed scheme, separately. Security requirements and security models are described in Section 5. The proposed Public Key Encryption Scheme with Temporary and Fuzzy Keyword Search (PETFKS) is presented in Section 6. The security and efficiency analyses of the proposed scheme are provided in Section 7. Finally, a conclusion is given in Section 8.
Now we review the bilinear map which plays important role in the construction of the proposed PETFKS scheme and Bilinear Diffie-Hellman assumption on which the security of the proposed PETFKS scheme is based.
Let G1 and G2 be two multiplicative groups of prime order p. Let g be a generator of G1 and e be a bilinear map, e:G1×G1→G2 with the following properties [25,26]:
1. Bilinearity: for all u,v∈G1 and a,b∈Zp, we have e(ua,vb)=e(u,v)ab.
2. Non-degeneracy: e(g,g)≠1.
3. Computability: There is an efficient algorithm to compute e(u,v) for ∀u,v∈G1.
The BDH problem[25] in ⟨G1,G2,p,g⟩ is as follows: Given g,gα,gβ,gγ∈G1 as input, compute e(g,g)αβγ∈G2. We say that BDH is hard if all polynomial time algorithms have a negligible advantage in solving the BDH problem.
We consider a scenario illustrated in Figure 1 as an application of public key cryptosystem with temporary and fuzzy keyword search (PETFKS), in which a data receiver(DR) retrieves data from a cloud server(CS) storing ciphertexts published by data senders(DS). More precisely, the system is described as the below.
The DR sets up the system and publishes the public parameters publicly. Each DS who wants to send/share data to/with the DR generates a data ciphertext by encrypting the data under the DR's identity, as that in IBE does, and also generates a set of searchable ciphertexts from a set of keywords extracted from the data as well as a time slot defined by the DS himself/herself. Each searchable ciphertext consists of a temporary and fuzzy keyword searchable (TFKS) ciphertext and an exact keyword searchable (EKS) ciphertext. That is to say that each TFKS ciphertext contains a fuzzy value of a keyword and is created for the time slot, and each EKS ciphertext contains a keyword. Then the DS sends the data ciphertext along with its searchable ciphertexts to the CS. The CS stores each data ciphertext along with its searchable ciphertexts. To retrieve the data ciphertext that created in a time period and also contains a keyword, the DR first generates a pair of trapdoors, one is a temporary and fuzzy keyword (TFK) trapdoor and another is an exact keyword (EK) trapdoor. Then the DR sends only the TFK trapdoor to the CS. Upon receiving the TFK trapdoor, the CS performs a fuzzy search operation on TFKS ciphertexts of searchable ciphertexts and returns a set of EKS ciphertexts of which corresponding TFKS ciphertexts are matched with the TFK trapdoor as the fuzzy search result to the DR. After receiving the fuzzy search result, the DR performs an exact search operation on the fuzzy search result by using the EK trapdoor in order to selectively find the ciphertext that contains the keyword. With the result of the exact search, the DR is able to request the CS to retrieve the data ciphertext he/she wants. After receiving the requested data ciphertext from the CS, the DR decrypts it with his/her secret key to obtain the data, as that in IBE does.
Let W be a uniformly distributed keyword space and T be a time space, respectively. The PETFKS system consists of the following algorithms:
Setup(λ,W,T)→(PP,mk). This algorithm takes as input a security parameter λ, a uniformly distributed keyword space W and a time space T. It then outputs public parameters PP and the master key mk. Here PP contains a fuzzy function Fuz(wi,W) that takes a keyword wi∈W and outputs a fuzzy value.
Trapdoor(PP,mk,wi,s,e)→(TDFwi,TDEwi). This algorithm takes as input the public parameters PP, the master key mk, a keyword wi∈W, a time period defined by two time slots s,e, where s,e∈T and s≤e. This algorithm then outputs a pair of trapdoors: a temporary and fuzzy keyword (TFK) trapdoor TDFwi and an exact keyword (EK) trapdoor TDEwi.
PETFKS(PP,wi,t)→CT. This algorithm takes as input the public parameters PP, a keyword wi∈W and a time slot t∈T, and then it outputs a searchable ciphertext CT that consists of a temporary and fuzzy keyword searchable (TFKS) ciphertext CTF and an exact keyword searchable (EKS) ciphertext CTE.
FuzzTest(PP,CT,TDFwi)→1|0. This algorithm takes as input the public parameters PP, a searchable ciphertext CT and a TFK trapdoor TDFwi, and it returns 1 meaning "yes" or 0 meaning "no".
ExactTest(PP,CTE,TDEwi)→1|0. This algorithm takes as input the public parameters PP, an EKS ciphertext CTE and an EK trapdoor TDEwi, and it returns 1 meaning "yes" or 0 meaning "no".
Correctness. A PETFKS system is correct if for all (PP,mk) generated by Setup(λ,W,T), CT computed by PETFKS(PP,wi,t) and (TDFw′i,TDEw′i) obtained Trapdoor(PP,mk,w′i,s,e), where {s,t,e}∈T and {wi,w′i}∈W,
1. FuzzTest(CT,TDFw′i) returns 1 as long as Fuz(wi,W)=Fuz(w′i,W) and t∈[s..e].
2. ExactTest(CTE,TDEw′i) returns 1 as long as wi=w′i.
In our system, we consider that the CS is semi-trusted to delegate it to perform fuzzy search operations on encrypted data on behalf of the DS. Although the CS performs the search operation honestly, it may try to learn as much information as possible while performing fuzzy search operations on encrypted data. In addition, any other unauthorized entities are assumed to be dishonest and malicious so that they might attempt to learn about data to which they are not authorized to access. Considering the potential attacks from the adversaries to our system, as discussed above, we define the following security requirements for our system:
● Keyword Confidentiality: Any searchable ciphertext must not reveal any information about the corresponding keyword. In other words, given a searchable ciphertext, any adversary including the CS cannot know that the searchable ciphertext is the encryption of which keyword among a set of keywords in keyword space.
● Forward and Backward Secrecy: Any TFK trapdoor of a keyword and a time period should not reveal the information about the searchable ciphertexts containing the same keyword but not included in the time period. That is say, given a TFK trapdoor created for a keyword and a time period, the CS should not test positively the searchable ciphertexts containing the same keyword but not included in the time period of the given TFK trapdoor.
● Keyword Guessing Resistance: Given a TFK trapdoor of a keyword which is likely to be concealed in any of the searchable ciphertexts, the CS cannot determine which searchable ciphertext is the encryption of which keyword among the keywords having the same fuzzy value.
Now we define formal notions of security for our system by considering the security requirements defined above. Capturing the keyword confidentiality and backward and forward secrecy requirements defined above, we first define PETFKS-IND-CKA (Indistinguishability under Chosen Keyword Attack) security model for a PETFKS system by using the following game between a challenger and the adversary A. PETFKS-IND-CKA security game:
Setup. The challenger takes a security parameter λ and runs Setup algorithm. Then it gives the public parameters PP to the adversary and keeps the system master key to itself.
Phase 1. The adversary adaptively makes TFK trapdoor queries (w1,s1,e1),...,(wm,sm,em) to Trapdoor oracle. The challenger responds by generating the TFK trapdoors TDFwi corresponding to the keyword wi and the time period [si..ei].
Challenge. Once the adversary decides that Phase 1 is over, it sends the challenger two keywords w∗0,w∗1 and a time slot t∗ on those it wishes to be challenged. The only constraint is that the adversary did not query for the TFK trapdoors for either of the pair of a keyword w∗0 and a time period containing t∗ or the pair of a keyword w∗1 and a time period containing t∗. The challenger picks a random bit b∈{0,1} and sets the challenge searchable ciphertext CT∗=PETFKS(PP,w∗b,t∗). Then it sends CT∗ as the challenge to the adversary.
Phase 2. The A can continue making TFK trapdoor queries (wm+1,sm+1,em+1),...,(wn,sn,en) to Trapdoor oracle as long as each of the queries does not violate the constraint on the challenge.
Guess. Finally, the adversary outputs b′∈{0,1} and it wins the game if b=b′.
We refer to such an adversary A as a PETFKS-IND-CKA adversary, and we define the A's advantage in breaking PETFKS system as:
AdvAPETFKS-IND-CKA(λ)=|Pr[b=b′]−12|. |
Definition 1. A PETFKS system is said to be secure against an adaptively chosen keyword attack if any polynomial time PETFKS-IND-CKA adversary has a negligible advantage in the above security game.
Note that, in the PETFKS-IND-CKA security model, we make use of sufficient condition for key-privacy [27] to achieve keyword confidentiality in our scheme.
Now, we describe PETFKS-IND-sCKA-KGA (Indistinguishability under selectively Chosen Keyword Attack and Keyword Guessing Attack) security model, by capturing the resistance to keyword guessing requirement defined above, for a PETFKS system by the following game between a challenger and the adversary A. PETFKS-IND-sCKA-KGA security game:
Init. The adversary A declares two keywords, w∗0 and w∗1, that have the same fuzzy value, Fuz(w∗0,W)=Fuz(w∗1,W), on those it wishes to be challenged.
Setup. This phase is the same as Setup in the PETFKS-IND-CKA security game.
Phase 1. This phase is the same as Phase 1 in the PETFKS-IND-CKA security game.
Challenge. The adversary A sends the challenger a time slot t∗. The challenger picks a random bit b∈{0,1} and sets the challenge searchable ciphertext CT∗=PETFKS(PP,w∗b,t∗). Then it sends CT∗ as the challenge to the adversary A.
Phase 2. The A can continue making queries to the Trapdoor oracle for the TFK trapdoors TDFwi for any keywords wi (even the challenge keywords w∗0, w∗1) and any time periods [s..e] (even time periods containing the challenge time slot t∗).
Guess. The adversary A outputs b′∈{0,1} and wins the game if b=b′.
We refer to such an adversary A as a PETFKS-IND-sCKA-KGA adversary, and we define A's advantage in attacking PETFKS system as:
AdvAPETFKS-IND-sCKA-KGA(λ)=|Pr[b=b′]−12|. |
Definition 2. A PETFKS system is said to be secure against a selectively chosen keyword attack and keyword guessing attack if any polynomial PETFKS-IND-sCKA-KGA adversary has a negligible advantage in the above PETFKS-IND-CKA-KGA security game.
Setup(λ,W,T). This algorithm takes as input a security parameter λ, a uniformly distributed keyword space W and a time space T. Let BGen(1λ) be the bilinear map generator, Fuz(wi,W) be a fuzzy function which maps two or more keywords to the same fuzzy value, and N:N→N be a polynomially bounded function. The size of T is polynomial in the security parameter and it is defined by N(λ)=2l(λ) for some l(λ)=O(log(λ)). For simplicity, let l denote l(λ). Our scheme represents time slots with a full binary tree of height l+1 as in Katz's scheme [28]. That is to say, our construction makes use of a full binary tree with the root node associated with a keyword and all the lower level nodes represent the time structure. For simplicity, we call this full binary tree an encryption tree. In the encryption tree, the root node is labeled with a keyword wi∈W and its left child and right child are labeled with "0" and "1", respectively, and other nodes are recursively labeled as follows: if a node is labeled with x its children are labeled with "x0" and "x1", corresponding to its left child and right child. In such a way, for each time slot t∈[0..N(λ)−1] there is a leaf node labeled with binary representation of t, which is l-bit string as t1...tl. Hence, from an encryption tree with the root node associated with a keyword wi∈W and each leaf node associated with each time slot t∈[0..N(λ)−1], keyword-time tuples are constructed for TFK trapdoors as well as for TFKS ciphertexts. A keyword-time tuple is a vector of strings (wi,t1,...,tl), and t|k=(t1,...,tk) denotes a vector containing the first k bits of the binary representation of the time slot t, where 1≤k≤l. The algorithm runs as follows:
1. runs BGen on the security parameter λ to generate a prime p, two groups G1,G2 of order p, and an admissible bilinear map e:G1×G1→G2.
2. chooses an arbitrary generator g∈G1.
3. chooses a random aR←Zp and sets P=ga.
4. defines a fuzzy function Fuz(wi,W) which takes a keyword wi∈W as input and outputs a fuzzy value as follows by depending on whether the size of the uniformly distributed keyword space |W| is even or not:
● if |W| is even, the output of Fuz(wi,W) is
{wi−1||wi,if i is even,wi||wi+1,if i is odd. |
● otherwise, the output of Fuz(wi,W) is
{w|W|−2||w|W|−1||w|W|,if i≥|W|−2,wi−1||wi,if i is even,wi||wi+1,if i is odd, |
where || denotes concatenation. Note that the description of the fuzzy function follows the work [9].
5. chooses two cryptographic hash functions H1:{0,1}∗→G1,H2:G2→{0,1}n for some n∈N.
6. outputs the public parameters PP=(p,g,e,G1,G2,P, W,T,H1,H2,Fuz) and the master key mk=a.
Trapdoor(PP,mk,wi,s,e). This algorithm takes as input the public parameters PP, the master key mk, a keyword wi∈W, and a time period defined by two time slots s,e, where 0≤s≤e≤N(λ)−1. This algorithm then outputs a pair of trapdoors, a TFK trapdoor TDFwi, and an EK trapdoor TDEwi as follows:
1. computes SF=H1(Fuz(wi,W))a.
2. builds an encryption tree with a root node associated the keyword wi and each leaf node associated with each time slot in the time space T.
3. constructs a set of keyword-time tuples T, from the encryption tree, for the keyword wi, and the given time period represented by s and e as follows:
● if s≠e, then let k be the smallest index representing the highest level in the encryption tree so that k≠1 and sk≠ek. Thus, the set T is constructed in a way that containing the keyword-time tuples (wi,s1,...,sl),(wi,e1,...,el), and the keyword-time tuples in which time bits are the right siblings of all nodes on the path from (wi,s1,...,sk+1) to (wi,s1,...,sl) and the left siblings of all nodes on the path from (wi,e1,...,ek+1) to (wi,e1,...,el). Here, (s1,...,sl) are time bits representing s, (e1,...,el) are time bits representing e, si and ei (1≤i≤k+1) denote the i-th bit of the binary representation of the time slot s and e, respectively. For example, given T=16, suppose s=1 and e=7, then we build an encryption tree with the root node associated with a keyword wi as shown in Figure 2, and obtain the binary representations of s and e as "000" and "110", respectively. Since the k=2 as we can see from an encryption tree in Figure 2, the set T is constructed as {(wi,0,0,0),(wi,1,1,0),(wi,0,1),(wi,0,0,1), (wi,1,0)}, containing 5 keyword-time tuples.
● if s=e, then let k be the smallest index representing the highest level in the encryption tree so that k=1 and sk=ek. Thus, the set T is constructed in a way that only containing a keyword-time tuple (wi,e1,...,el), where ei is the i-th bit of the binary representation of the time slot e. For instance, suppose s=e=7 when T=16, then the binary representation of s and e is "110". From an encryption tree in Figure 2, we can see that the k=1 such that the set T is constructed as {(wi,1,1,0)}, only containing a keyword-time tuple.
4. computes for each keyword-time tuple j∈T as follows:
● chooses sj,1,...,sj,rR←Zp, where r is the size of j and 1≤r≤l
● computes TDj=(ˆDj=SF∏rk=1H1(tj,|k)sj,k,{D′j,k=gsj,k}k=1,...,r). Here, we denote the k bits of the binary representation of the time slot tj,1,...,tj,k with ti,|k, where k = 1, ...r.
5. outputs TDFwi={TDj}∀j∈T and TDEwi=H1(wi)a.
PETFKS(PP,wi,t). This algorithm takes as input the public parameters PP, a keyword wi∈W and a time slot t∈T, and then it outputs a searchable ciphertext CT. This algorithm runs as follows:
1. constructs a keyword-time tuple (wi,t1,...,tl) for wi and t from the encryption tree.
2. chooses ˜C∈{0,1}n.
3. computes QF=H1(Fuz(wi,W)) and QE=H1(wi).
4. chooses r1,r2R←Zp, and computes ˆCF=gr1,ˆCE=gr2 and {C′k=H1(t|k)r1}k=1,...,l
5. computes CF=˜C⊕H2(e(QF,Pr1)) and CE=˜C⊕H2(e(QE,Pr2)).
6. forms the TFKS ciphertext as CTF=(CF,ˆCF,{C′k}k=1,...,l) and the EKS ciphertext as CTE=(˜C,CE,ˆCE).
7. outputs a searchable ciphertext as CT=(˜C,CTF,CTE).
FuzzTest(PP,CT,TDFwi). This algorithm takes as input the public parameters PP, a searchbable ciphertext CT and a TFK trapdoor TDFwi and tests if ˜C=CF⊕H2(e(ˆDj,ˆCF)/∏rk=1e(D′j,k,C′k)) for any TDj∈TDFwi. If so for any TDj∈TDFwi, it returns 1; If not, it returns 0. The test computes the following :
1. ∀TDj∈TDFwi:
K=e(ˆDj,ˆCF)/∏rk=1e(D′j,k,C′k)=e(SF∏rk=1H1(tj,|k)sj,k,gr1)/∏rk=1e(gsj,k,H1(t|k)r1)
=e(SF,gr1)e(∏rk=1H1(tj,|k)sj,k,gr1)/∏rk=1e(gsj,k,H1(t|k)r1)
=e(SF,gr1)e(H1(tj,|k),g)r1∑rk=1sj,k/e(g,H1(t|k))r1∑rk=1sj,k=e(SF,gr1)=e(H1(Fuz(wi,W))a,gr1)
2. ˜C=CF⊕H2(K)=˜C⊕H2(e(QF,Pr1))⊕H2(e(H1(Fuz(wi,W))a,gr1))
=˜C⊕H2(e(H1(Fuz(wi,W)),(ga)r1))⊕H2(e(H1(Fuz(wi,W))a,gr1))
=˜C⊕H2(e(H1(Fuz(wi,W)),g)ar1)⊕H2(e(H1(Fuz(wi,W)),g)ar1)
ExactTest(PP,CTE,TDEwi). This algorithm takes as input the public parameters PP, an EKS ciphertext CTE and an EK trapdoor TDEwi, and tests if ˜C=CE⊕H2(e(ˆCE,TDEwi)). If so, it returns 1; If not, it returns 0. The test computes the following: ˜C=CE⊕H2(e(ˆCE,TDEwi))=˜C⊕H2(e(QE,Pr2))⊕H2(e(gr2,H1(wi)a))
=˜C⊕H2(e(H1(wi),(ga)r2))⊕H2(e(gr2,H1(wi)a))=˜C⊕H2(e(H1(wi),g)ar2)⊕H2(e(g,H1(wi))ar2)
Before giving security proofs of the proposed PETFKS scheme, we give a comparison between the proposed PETFKS scheme and the related works by considering security requirements defined in Section 5, as shown in Table 1. As can be seen in Table 1, PEFKS [9] and our PETFKS schemes overcome insecurity of PEKS [1] and PETKS [10] schemes. We first show the PETFKS-IND-CKA security of our PETFKS scheme by the following theorem.
Security Properties | PEKS [1] | PEFKS [9] | PETKS [10] | PETFKS |
Keyword Confidentiality | Yes | Yes | Yes | Yes |
Backward and Forward Secrecy | NA | NA | Yes | Yes |
Keyword Guessing Resistance | No | Yes | No | Yes |
Theorem 1. Suppose the hash functions H1,H2 are random oracles. Then our PETFKS scheme is PETFKS-IND-CKA-secure in the random oracle model assuming BDH is intractable in groups generated by BGen(1λ).
Proof. Assume there is an adversary A that has advantage ϵ in breaking PETFKS-IND-CKA security of the PETFKS scheme. Suppose A makes at most qH2 hash function queries to H2 and at most qT TFK trapdoor queries to Trapdoor oracle. We build a simulator B that is able to solve the BDH problem with advantage at least 2ϵ/e(1+qT)qH2, where e is the base of the natural logarithm. Before the game starts, the challenger sets the BDH parameters ⟨p,G1,G2,e⟩ generating by BGen(1λ) and a random instance ⟨g,gα,gβ,gγ⟩ of the BDH problem for a random g∈G1 and α,β,γ∈Zp, where p is order of the G1,G2 and gives them to the simulator B. Let D=e(g,g)αβγ∈G2 be the solution to this BDH problem. The simulator's goal is to output D. The B acts as the adversary A's challenger in the PETFKS-IND-CKA game and interacts with the A as follows:
Setup. The B sets P=gβ and gives the public parameters PP=(p,g,e,G1,G2,P,W,T,H1,H2,Fuz) to the A.
The simulator B will program the random oracles H1 and H2 as follows.
● H1-queries. The adversary A can query the random oracle H1 at any time. In order to respond the queries, the B maintains a list called L1. Each entry in the list is a tuple of form ⟨Keyword-time-tuple, Point-tuple, Scalar-tuple, Secret-tuple, Coin-tuple⟩. For the j-th query, the tuple is formed as ⟨{v(j)0,...,v(j)r},{P(j)0,...,P(j)r},{x(j)0,...,x(j)r},{s(j)0,...,s(j)r},{c(j)0,...,c(j)r}⟩, where 0≤r≤l. Initially, this list is set as empty. Whenever the A queries the random oracle H1 for any keyword-time-tuple (v(j)0,...,v(j)r), the B responds as follows:
1. let h be the largest integer 0≤h≤r such that {v(j)0,...,v(j)h}={v(y)0,...,v(y)h} for some tuple ⟨{v(y)0,...v(y)r},{P(y)0,...,P(y)r},{x(y)0,...,x(y)r},{s(y)0,...,s(y)r},{c(y)0,...,c(y)r}⟩ already appears on the L1, or let h=−1 if such a tuple doesn't exist.
2. for 0≤k≤h, the B sets P(j)k=P(y)k,x(j)k=x(y)k,s(j)k=s(y)k,c(j)k=c(y)k.
3. for h<k≤r,
(a) chooses a random x(j)kR←Zp;
(b) if k=0, then generates a random coin c(j)0∈{0,1} so that Pr[c(j)0=0]=δ for some δ that will be determined later. If c(j)0=1, then sets P(j)0=gα; else sets P(j)0=gx(j)0. It also sets s(j)0=⊥;
(c) else if c(j)k−1=1, then randomly chooses s(j)kR←Zp and generates a random coin c(j)k∈{0,1} so that Pr[c(j)k=0]=δ for some δ that will be determined later. If c(j)k=1, sets P(j)k=gx(j)k; else sets P(j)k=gx(j)k−(gα+∑k−1z=1gs(j)zx(j)z)1/s(j)k;
(d) else if c(j)k−1=0, chooses a random s(j)kR←Zp and sets c(j)k=0 and P(j)k=gx(j)k.
4. adds ⟨{v(j)0,...v(j)r},{P(j)0,...,P(j)r},{x(j)0,...,x(j)r},{s(j)0,...,s(j)r},{c(j)i,0,...,c(j)i,r}⟩ to L1 and returns {P(j)0,...,P(j)r)} to the A.
● H2-queries. The A can make queries to the random oracle H2 at any time. In order to respond to these queries, the B keeps track of all the queries by maintaining a list called L2. Each entry in the list is a tuple of the form ⟨Kj,Vj⟩. The list H2 is initially empty. To respond to query H2(Kj), the B proceed as follows:
1. if the query Kj already appears on the list L2 in a tuple ⟨Kj,Vj⟩ then respond with H2(Kj)=Vj.
2. otherwise, the B picks a random value Vj∈{0,1}n for H2(Kj) and adds the tuple ⟨Kj,Vj⟩ to the L2. It responds to A with H2(Kj)=Vj.
Phase 1. w and [s..e] be a pair of keyword and time period. When the A issues a TFK trapdoor query for w,s,e to Trapdoor oracle, the B responds as follows:
1. constructs a set T exactly as Trapdoor algorithm does. Let a set T be {(w,t1,...,tr),...}, where 1≤r≤l.
2. for each keyword-time-tuple i∈T, does the following:
(a) runs the algorithm for responding to H1-queries to obtain a tuple ⟨{vi,0,...,vi,r},{Pi,0,...,Pi,r}, {xi,0,...,xi,r},{si,0,...,si,r},{ci,0,...,ci,r}⟩ in L1 such that vi,0=Fuz(wi,W) and {vi,k=(ti,|k)}1≤k≤r.
(b) if ci,r=1, then B aborts.
(c) for 0≤k≤r, does the following:
● if k=0 and ci,0=1, then sets ˆDi=⊥.
● if k=0 and ci,0=0, then computes ˆDi=(gβ)xi,0.
● if k>0 and ci,k−1=0 and ci,k=0, then computes ˆDi=ˆDi+Psi,ki,k and D′i,k=gsi,k.
● if k>0 and ci,k−1=1 and ci,k=1, then computes ˆDi=ˆDi+⊥ and D′i,k=(gβ)si,k.
● if k>0 and ci,k−1=1 and ci,k=0, then computes ˆDi=ˆDi+(gβ)xi,ksi,k and D′i,k=(gβ)si,k.
● constructs TDi=(ˆDi,k,{D′i,k}k=1,...,r).
(d) constructs TDFw={TDi}∀i∈T.
(e) runs the algorithm for responding to H1-queries to obtain a tuple ⟨v0,P0,x0,s0,c0⟩ such that v0=w be the corresponding tuple on the L1.
(f) sets TDEw=(gβ)x0 for w.
3. gives TDFw to algorithm A
Challenge. Once the adversary A decides that Phase 1 is over, it outputs two keywords w∗0,w∗1 and a time slot t∗, on those it wishes to be challenged. The B responds as follows:
1. constructs two keyword-time-tuples from w∗0,w∗1, and t∗ as (w∗0,t∗1,...,t∗l) and (w∗1,t∗1,...,t∗l), Note that these two tuples differ on level 1, but are otherwise equal.
2. runs the algorithm for responding to H1-queries twice to obtain tuples for (w∗0,t∗1,...,t∗l) and (w∗1,t∗1,...,t∗l). For i=0,1, let ⟨{v∗i,0,...,v∗i,l},{P∗i,0,...,P∗i,l},{x∗i,0,...,x∗i,l},{s∗i,0,...,s∗i,l},{c∗i,0,...,c∗i,l}⟩ such that v∗i,0=Fuz(w∗i,W) and {v∗k=(t∗i,|k)}k=1,...,l and ⟨v∗i,0,P∗i,0,x∗i,0,s∗i,0,c∗i,0⟩ such that v∗i,0=w∗i be the corresponding tuples on the L1.
3. if both or either of c∗0,l=0 and c∗1,l=0, then B aborts;
4. otherwise, the B randomly picks b∈{0,1} and ˜C∗∈{0,1}n, and sets CT∗F=(ˆC∗F=gγ,{C′∗k=(gγ)x∗k}k=1,...,l,C∗F∈{0,1}n). Note that C∗F is implicitly defined as ˜C∗⊕H2(e(H1(w∗b),Pγ))=˜C∗⊕H2(e(gα,(gβ)γ)). It also chooses a random r2R←Zp CT∗E=(˜C∗,ˆC∗E=gr2,C∗E=˜C∗⊕H2(e(gx∗0,Pr2)).
5. constructs the challenge searchable ciphertext CT∗=(˜C∗,CT∗F,CT∗E)
6. returns CT∗ to the A.
Phase 2. The A can continue issue TFK trapdoor queries for any keywords w(j) and any time periods s(j),e(j), where only restriction is that t∗∉[s(j)..e(j)]. The B responds to these queries as before.
Guess. Eventually, the A outputs its guess b′∈{0,1} indicating the challenge CT∗ is the result of PETFKS(PP,w∗0,t∗) or PETFKS(PP,w∗1,t∗). At this point, the B picks a random tuple (K,V) from L2 and outputs K as its solution to the BDH problem.
To complete the proof of Theorem 1, we first analyze the probability that the B does not abort during the simulation.
Claim 1.1. The probability that the B does not abort during Phase 1, Phase 2 and Challenge phases is 1/e(1+qT).
Proof of Claim 1.1. Suppose the A issues a total of qT TFK trapdoor queries. Then the probability that the B does not abort as a result of TFK trapdoor queries is δqT and the probability that the B does not abort during the challenge phase is 1−δ. Therefore, the probability that the B does not abort during the simulation is δqT(1−δ). This value is maximized at δopt=1−1/(qT−1). Using δopt, the probability that B does not abort during simulation is at least 1/e(1+qT).
Now we show that the B outputs the correct answer D with probability at least 2/qH2 by the following two claims. The proof is based on comparing A's behavior in the simulated game and the real PETFKS-IND-CKA attack game.
Let E be the event that the A queries for the oracle H2 for D. Let PrR[⋅] and PrB[⋅] denote the probability that an event occurs in the real attack and the simulation, respectively.
Claim 1.2. PrB[E] = PrR[E] as long as the B does not abort.
Proof of Claim 1.2. Let Ei be the event that the A issues a query for H2(D) within its first i queries to the H2 oracle. We prove by induction on i that PrR[Ei] = PrB[Ei] for all i≥0. Clearly, PrR[E0]=PrB[E]=0. Now assume that, for some i>0, we have that PrR[Ei−1] = PrB[Ei−1]. So, we show that PrR[Ei]=PrB[Ei]. We know that
PrR[Ei]=PrR[Ei|Ei−1]PrR[Ei−1]PrR[Ei|¬Ei−1]PrR[¬Ei−1]=PrR[Ei−1]PrR[Ei|¬Ei−1]PrR[¬Ei−1] | (7.1) |
We argue that PrR[Ei|¬Ei−1]=PrB[Ei|¬Ei−1]. To see this, observe that as long as the A does not make a query for H2(D), its view during the simulation is identical to its view in the real attack. Moreover, the public parameters and the challenge are distributed as in the real attack. Similarly, all responses to H2-queries are uniform and independent in {0,1}n. Therefore, PrB[Ei|¬Ei−1]=PrR[Ei|¬Ei−1]. It follows by the (1) and the inductive hypothesis that PrR[Ei]=PrB[Ei]. By induction on i, we obtain that PrR[E]=PrB[E].
We show that PrB[E]≥2ϵ. This will prove that the B outputs D with probability at least 2ϵ/qH2.
Claim 1.3. We have PrR[E]≥2ϵ.
Proof of Claim 1.3. In the real attack, if the A never issues a query for H2(e(H1(w∗b,Pr1))), then the last component C∗F of the ciphertext is independent of the A's view (since H2(D) is independent of A's view). Therefore, in the real attack, Pr[b=b′|¬E]=1/2. By definition of the A, we know that |PrR[b=b′]−1/2|≥ϵ. We show that these two facts imply that PrR[E]≥2ϵ. To do so, we first derive simple upper and lower bounds on PrR[b=b′]:
PrR[b=b′]=PrR[b=b′|¬E]PrR[¬E]+Pr[b=b′|E]Pr[RE]≤PrR[b=b′|¬E]PrR[¬E]+PrR[E]=12PrR[¬E]+PrR[E]=12+12PrR[E], |
PrR[b=b′]≥PrR[b=b′|¬E]PrR[¬E]=12−12PrR[E] |
It follows that ϵ≤|PrR[b=b′]−1/2|≤12PrR[E]. Therefore, PrR[E]≥2ϵ.
Since PrR[E]=PrB[E] by Claim 1.2 and PrR[E]≥2ϵ by Claim 1.3, we know that PrB[E]≥2ϵ. Hence, at the end of the simulation, D appears in some tuple on the L2 with probability at least 2ϵ. It follows that the B outputs the correct answer with probability at least 2ϵ/qH2 as required.
With combining Claims 1.1, 1.2, and 1.3, the B's advantage in solving the BDH problem is at least 2ϵ/e(1+qT)qH2, from which the Theorem 1 follows.
Now we show the PETFKS-IND-sCKA-KGA security of our PETFKS scheme by the following theorem.
Theorem 2. Suppose the hash functions H1,H2 are random oracles. Then our PETFKS scheme is PETFKS-IND-sCKA-KGA-secure in the random oracle model assuming BDH problem is hard in groups generated by BGen(1λ).
Proof. Suppose there is an adversary A that has advantage ϵ in attacking PETFKS-IND-sCKA-KGA security of the PETFKS scheme. Suppose A makes at most qH2 hash function queries to H2. We construct a simulator B that is able to solve the BDH problem with advantage at least 2ϵ/qH2. Before the game starts, the challenger sets the BDH parameters as them in previous security proof and gives them to the simulator B. The B acts as the adversary A's challenger in the PETFKS-IND-sCKA-KGA game and interacts with the A as follows:
Init. The B runs the A and receives w∗0 and w∗1, that have the same fuzzy value, Fuz(w∗0,W)=Fuz(w∗1,W).
Setup. The B sets P=gβ and gives the public parameters PP=(p,g,e,G1,G2,P,W,T,H1,H2,Fuz) to the A.
The simulator B will program the random oracles H1 and H2 as follows.
● H1-queries. The A can query the random oracle H1 at any time. In order to respond the queries, the B maintains a list called L1. Each entry in the list is a tuple of form ⟨Keyword-time-tuple, Point-tuple, Scalar-tuple, Secret-tuple⟩. For j-th query, the tuple is formed as ⟨{v(j)0,...,v(j)r},{P(j)0,...,P(j)t},{x(j)0,...,x(j)r},{s(j)0,...,s(j)r},{c(j)0,...,c(j)r}⟩, where 0≤r≤l. Initially, L1 is set as empty. Whenever the A queries the random oracle H1 for any value {v(j)0,...,v(j)r}, the B responds as follows:
1. let h be the largest integer 0≤h≤r such that {v(j)0,...,v(j)h}={v(y)0,...,v(y)h} for some tuple ⟨{v(y)0,...v(y)r},{P(y)0,...,P(y)r},{x(y)0,...,x(y)r},{s(y)0,...,s(y)r},{c(y)0,...,c(y)r}⟩ already appears on the L1, or let h=−1 if such a tuple doesn't exist.
2. for 0≤k≤h, B sets P(j)k=P(y)k,x(j)k=x(y)k,s(j)k=s(y)k,c(j)k=c(y)k.
3. for h<k≤r,
(a) chooses a random x(j)kR←Zp;
(b) if k=0 and v(j)0 is equal to w∗0 or w∗1, then sets P(j)0=gα and x(j)0=⊥; else sets P(j)0=gx(j)0. It also sets s(j)0=⊥;
(c) else chooses a random s(j)kR←Zp and sets P(j)k=gx(j)k;
4. adds ⟨{v(j)0,...v(j)r},{P(j)0,...,P(j)r},{x(j)0,...,x(j)r},{s(j)0,...,s(j)r},{c(j)0,...,c(j)r}⟩ to L1 and returns {P(j)0,...,P(j)r)} to the A.
● H2-queries. The B responds to H2 queries in the same way it does in the PETFKS-IND-CKA security game.
Phase 1. Let w and [s..e] be a pair of keyword and time period. When the A issues a TFK trapdoor query for w,s,e to Trapdoor oracle, the B responds as follows:
1. constructs a set T exactly as Trapdoor algorithm does. Let a set T be {(w,t1,...,tr),...}, where 1≤r≤l.
2. for each keyword-time-tuple i∈T, does the following:
(a) runs the algorithm for responding to H1-queries to obtain a tuple ⟨{vi,0,...,vi,r},{Pi,0,...,Pi,r}, {xi,0,...,xi,r},{si,0,...,si,r}⟩ in L1 such that vi,0=Fuz(wi,W) and {vi,k=(ti,|k)}1≤k≤r.
(b) computes ˆDi=(gβ)xi,0+∑rk=1Psi,ki,k and {D′i,k=gsi,k}k=1,...,r.
(c) constructs TDi=(ˆDi,k,{D′i,k}k=1,...,r).
(d) constructs TDFw={TDi}∀i∈T.
(e) runs the algorithm for responding to H1-queries to obtain a tuple ⟨v0,P0,x0,⊥,c0⟩ such that v0=w be the corresponding tuple on the L1.
(f) sets TDEw=(gβ)x0 for w≠w∗0 and w≠w∗1.
3. gives TDFw to the A
Challenge. Once the A decides that Phase 1 is over, it outputs a time slot t∗. The B responds as follows:
1. constructs two keyword-time-tuples from w∗0,w∗1, and t∗ as (w∗0,t∗1,...,t∗l) and (w∗1,t∗1,...,t∗l), Note that these two tuples differ on level 1, but are otherwise equal.
2. randomly picks b∈{0,1}.
3. runs the algorithm for responding to H1-queries twice to obtain tuples for (w∗b,t∗1,...,t∗l) and w∗b. Let ⟨{v∗0,...,v∗l},{P∗0,...,P∗l},{x∗0,...,x∗l},{s∗0,...,s∗l}⟩ such that v∗0=Fuz(w∗b,W) and {v∗k=(t∗b,|k)}k=1,...,l and ⟨v∗0,P∗0,⊥,⊥⟩ such that v∗0=wb be the corresponding tuples on the L1.
4. chooses a random r1R←Zp and ˜C∗∈{0,1}n, and sets CT∗F=(ˆC∗F=gr1,{C′∗k=(P∗k)r1}k=1,...,l,C∗F=˜C∗⊕H2(e(gx∗0,Pr1)) and CT∗E=(˜C∗,ˆC∗E=gγ,C∗E∈{0,1}n. Note that C∗E is implicitly defined as ˜C∗⊕H2(e(H1(w∗b),Pγ))=˜C∗⊕H2(e(gα,gβγ)).
5. constructs CT∗=(˜C,CT∗F,CT∗E)
6. returns CT∗ to A.
Phase 2. The A can continue issue TFK trapdoor queries for any keywords w(j) and any time periods [s(j)..e(j)] to Trapdoor oracle. The B responds to these queries as before.
Guess. Eventually, the A outputs its guess b′∈{0,1} indicating the challenge CT∗ is the result of PETFKS(PP,w∗0,t∗) or PETFKS(PP,w∗1,t∗). At this point, the B picks a random tuple (K,V) from L2 and outputs K as its solution to the BDH problem.
This completes the description of the simulator B. Since the A is allowed to issue TFK trapdoor queries to Trapdoor oracle for any pair of keyword and time period including the challenge ones, the B does not abort during the simulation as a result of the A's TFK trapdoor queries. It remains to show that the B correctly outputs D with probability at least 2ϵ/qH2.
Claim 2.1. Suppose that in the real attack the A is given the public parameters PP=(p,g,e,G1,G2,P=gβ,W,T,H1,H2,Fuz) and asks to be challenged on w∗0,w∗1 and a time slot t∗. In response, the A is given a challenge CT∗=⟨˜C,CT∗F=(ˆC∗F=gr1,{C′∗k=(P∗k)r1}k=1,...,l,C∗F=˜C∗⊕H2(e(gx∗0,Pr1)), CT∗E=(˜C∗,ˆC∗E=gγ,C∗E∈{0,1}n)⟩. Then in the real attack game the A issues query for either for H2(e(H1(w∗0),Pr2) or H2(e(H1(w∗1),Pr2) with probability al least 2ϵ.
Proof of Claim 2.1. Let H be the event that in the real attack the A issues a query for either of H2(e(H1(w∗0),Pr2) or H2(e(H1(w∗0),Pr2). Then, when H takes place we know that the bit b∈{0,1} indicating whether C∗E is an EKS ciphertext of w∗0 or w∗1 is independent of the A's view. Therefore, the A's output b′ will satisfy b=b′ with probability at most 1/2. By definition of the A, we know that in the real attack |Pr[b=b′]−1/2|≥ϵ. We show that these two facts imply that Pr[H]≥2ϵ. To do so, we first derive simple upper and lower bounds on Pr[b=b′]:
Pr[b=b′]=Pr[b=b′|¬H]Pr[¬H]+Pr[b=b′|H]Pr[H]≤Pr[b=b′|¬H]Pr[¬H]+Pr[H]=12Pr[¬H]+Pr[H]=12+12Pr[H], |
Pr[b=b′]≥Pr[b=b′|¬H]Pr[¬H]=12−12Pr[H] |
It follows that ϵ≤|Pr[b=b′]−1/2|≤12Pr[H]. Therefore, in the real attack, Pr[H]≥2ϵ.
Now, assuming the B does not abort, we know that B simulates a real attack game perfectly up to the moment when the A issues a query for either H2(e(H1(w∗0),Pγ) or H2(e(H1(w∗1),Pγ). Therefore, at the end of the simulation, D appears in some tuple on the L2 with probability at least 2ϵ. It follows that the B outputs the correct answer with probability at least 2ϵ/qH2 as required.
By Claim 2.1, the B's advantage in solving the BDH problem is at least 2ϵ/qH2, from which the Theorem 2 follows.
Now we give efficiency analysis of our scheme by comparing with the other related public key encryption with keyword search schemes, PEFKS[9] and PETKS[10], as these schemes support the properties, namely fuzzy keyword search and temporary property, as our scheme does. The comparisons are made in terms of storage overhead, communication cost, and computational efficiency. Now we describe the notations used in the comparisons. Let |G1|, |G2|, and |Zp| denote the size of an element in the source group, the target group, and the field Zp, respectively. In addition, let t denote the size of the system time space and s be the number of time slots included in the time period of the trapdoor, which is s<t. Moreover, let n denote the total number of searchable ciphertexts stored in the cloud server and m be the total number of searchable ciphertexts including the keyword in the search query for each time slot in the system time space.
Storage Overhead. From Table 2, we can see the storage overhead on each entity in the schemes, namely data receiver (DR), data sender (DS) and cloud server (CS). The public parameters and master key contribute the storage overhead on DS and DR, respectively. In our scheme, storage overhead on DR and DS is equal to the ones in PEFKS [9] and PETKS [10]. The main storage overhead on CS comes from searchable ciphertexts. Since our scheme supports both fuzzy keyword search and temporary property, the storage overhead on CS in our scheme is quite more than that in PEFKS [9] due to the components representing the temporary property, and it is slightly more than that in PETKS [10] due to the EKS ciphertexts.
Entity | Our Scheme | PEFKS [9] | PETKS [10] |
DR | |Zp| | |Zp| | |Zp| |
DS | 2|G1| | 2|G1| | 2|G1| |
CS | n((2+log(T))|G1|+2|G2|) | n(2|G1|+2|G2|) | n((1+log(T))|G1|+|G2|) |
Communication Cost. In Table 3, we discuss communication cost between the entities in the schemes. In all the schemes, the communication cost from DR to DS comes from public parameters, and it is equal in all the schemes. The communication cost between DR and CS comes from the transmission of a trapdoor, and smaller in PEFKS [9] and it is higher in PETKS [10] comparing to our scheme. The size of a searchable ciphertext results in communication cost from DS to CS, and in our scheme, it is much higher than that in PEFKS [9] owing to the components representing the temporary property, and slightly higher than that in PETKS [10] because of the EKS ciphertexts. Due to the resistance of KGA, both our scheme and PEFKS [9] bring communication cost from CS to DR before transmitting the data ciphertexts, and it much less than in our scheme by means of temporary property.
Entity | Our Scheme | PEFKS [9] | PETKS [10] |
DR to DS | 2|G1| | 2|G1| | 2|G1| |
DS to CS | (2+log(T))|G1|+2|G2| | 2|G1|+2|G2| | (1+log(T))|G1|+|G2| |
DR to CS | s((1+log(T))|G1|) | |G1| | s((1+log(T))|G1|+|Zp|) |
CS to DR | sm(|G1|+|G2|) | tm(2|G1|+2|G2|) | NA |
Computational Efficiency. To evaluate the computational efficiency of our scheme, we implemented our scheme and other related schemes, PEFKS [9] and PETKS [10]. The implementations use the PBC library [29] and 160-bit elliptic curve group based on the supersingular curve y2=x3+x over a 512-bit finite field. All the experiments were carried out on 2.50GHz, Intel(R) Core(TM) i5, 8GB memory and running Ubuntu 16.04. All the experiment results are the average of 20 trials.
We compare the computational efficiency of our scheme and PEFKS [9] regarding system setup and test operation on DR, and the computational efficiency of our scheme and PETKS [10] with regard to trapdoor generation, searchable ciphertext generation and test operation on CS decryption, as shown in Figure 3. The computational efficiency of the system setup in PETKS [10] is equal to that of our scheme, and the PETKS scheme [10] does not perform test operation on DR. Hence, we show the system setup time and test operation time on DR in our scheme by comparing to the ones in PEFKS [9] by excluding PETKS [10], and the computational costs in both the schemes are nearly close, as shown in Figure 3(a). In order to test the computational cost of trapdoor generation, searchable ciphertext generation and test operation on CS, we run our code for several choices of time spaces T={32,64,128,256,512}, and several choices of time intervals [s,e] and time slots t depending on the chosen time space. As we can see from Figure 3(b), 3(c) and 3(d), the time space is divided into 4 equal parts as 1, 14T, 12T, 34T, T and use these time slots to test trapdoor generation time, searchable ciphertext generation time and test operation time on CS. For example, when time space is T=32, the choices of time intervals [s,e] for trapdoor generation are [8,8], [8,24], and [1,32] and time slots t for searchable ciphertext generation and positive result of test operation on CS are 1,8,16,24,32. From the choices of the time intervals and time slots, we can see the interval for trapdoor is growing from a time slot [8,8] to whole time space [1,32]. Given a trapdoor generated on [1,32], the time slot for the positive search result of a test operation on CS is also growing by the same size. Figure 3(b), 3(c), and 3(d) show that even though the cost of each operation scales linearly with the size of the time space, they remain similar in both schemes for the given time space. Overall, although our scheme is a little less efficient than other schemes, it makes a great effort on decreasing the communication cost from CS to DR such that computational cost of the test operation on DR is brought down. Therefore, we conclude the performance of our scheme is practical since our scheme provides secure keyword search and temporary property at the same time.
In this paper, we proposed a Public Key Encryption Scheme with Temporary and Fuzzy Keyword Search (PETFKS). It offers secure search operation on server side and more efficient search operation on user side at the same time, limits the lifetime of trapdoor as well as fulfills the desire for secure time-dependent data retrieval, which are not able to be tackled by the existing works. Furthermore, the PETFKS-IND-CKA and PETFKS-IND-sCKA-KGA securities of the PETFKS scheme are formalized concerning the security requirements of keyword confidentiality, forward and backward secrecy and keyword guessing resistance. Moreover, the rigorous security proof is given to show that the proposed scheme is PETFKS-IND-CKA and PETFKS-IND-sCKA-KGA secure in the random oracle model under the BDH assumption. Based on the analyses conducted with regard to security and efficiency of the proposed scheme and related works, we demonstrate that our proposed scheme is a practical solution to the open problem and an effective response to the gap in public key encryption with keyword search.
This work was supported in part by the National Natural Science Foundation of China (No.61672135), the National Science Foundation of China-Guangdong Joint Foundation (No.U1401257), the Sichuan Science-Technology Support Plan Program (No.2018GZ0236 and No.2017FZ0004), and the Fundamental Research Funds for the Central Universities (No.2672018ZYGX2018J057). The authors gratefully acknowledge the anonymous reviewers for their valuable comments.
[1] | D. Boneh, G. Di Crescenzo, R. Ostrovsky, et al., Public key encryption with keyword search, Advances in Cryptology - EUROCRYPT 2004 (Lecture Notes in Computer Science), 3027 (2004), 506–522. |
[2] | H. Xiong, H. Zhang and J. Sun, Attribute-based Privacy-Preserving Data Sharing for Dynamic Groups in Cloud Computing, IEEE Syst. J., (2018), 1–22. |
[3] | H. Xiong, Q. Mei and Y. Zhao, Efficient and Provably Secure Certificateless Parallel Key-Insulated Signature without Pairing for IIoT Environments, IEEE Syst. J., (2018). |
[4] | Q. Jiang, Y. Qian, J. Ma, et al., User centric three-factor authentication protocol for cloud-assisted wearable devices, Int. J. Commun. Syst., e3900, (2018). |
[5] | J. Sun, Y. Bao, X. Nie, et al., Attribute-hiding Predicate Encryption with Equality Test in Cloud Computing, IEEE Access, 6, (2018), 31621–31629. |
[6] | J. W. Buyn, H. S. Rhee, H. A. Park, et al., O -line keyword guessing attacks on recent keyword search schemes over encrypted data Proc. SDM'06, Seoul, Korea, (2006), 75–83. |
[7] | I. R. Jeong, J. O. Kwon, D. Hong, et al., Constructing PEKS schemes secure against keyword guessing attacks is possible? Comput. Commun., 32, (2009), 394–396. |
[8] | C. Chen, B. Xiang, Y. Liu, et al., A Secure Authentication Protocol for Internet of Vehicles, IEEE Access, (2019). |
[9] | P. Xu, H. Jin, Q. Wu, et al., Public-key encryption with fuzzy keyword search: A provably secure scheme under keyword guessing attack, IEEE T. Comput., 62, (2013), 2266–2277. |
[10] | M. Abdalla, M. Bellare, D. Catalano, et al., Searchable encryption revisited: Consistency properties, relation to anonymous IBE, and extensions, Advances in Cryptology-CRYPTO 2005 (Lecture Notes in Computer Science), 3621 (2005), 205–222. |
[11] | H. Xiong, Y. Zhao, L. Peng, et al., Partially policy-hidden attribute-based broadcast encryption with secure delegation in edge computing, Future Gener. Compu. Sy., 97, (2019), 453–461. |
[12] | H. Xiong, K. R. Choo and A. V. Vasilakos, Revocable Identity-Based Access Control for Big Data with Verifiable Outsourced Computing, IEEE T. Big Data, (2017). |
[13] | H. Xiong and J. Sun, Comments on Verifiable and exculpable outsourced attribute-based encryption for access control in cloud computing, IEEE T. Depend. Secure Comput., 14, (2017), 461–462. |
[14] | K. H. Yeh, A Secure Transaction Scheme With Certificateless Cryptographic Primitives for IoTBased Mobile Payments, IEEE Syst. J., 12, (2018), 2027–2038. |
[15] | P. Golle, J.Staddon and B. Waters, Secure Conjunctive Keyword Search over Encrypted Data, Applied Cryptography and Network Security - ACNS 2004 (Lecture Notes in Computer Science), 3089, (2004), 31–45. |
[16] | D. J. Park, K. Kim and P. J. Lee Guo, Public Key Encryption with Conjunctive Field Keyword Search, Information Security Applications-WISA 2004 (Lecture Notes in Computer Science), 3325, (2004), 73–86. |
[17] | Y. H. Hwang and P. J. Lee, Public Key Encryption with Conjunctive Keyword Search and Its Extension to a Multi-user System, Pairing-Based Cryptography-Pairing 2007 (Lecture Notes in Computer Science), 4575 (2007), 2–22. |
[18] | E. Shi, J. Bethencourt, T. H. Chan, et al., Multi-Dimensional Range Query over Encrypted Data, in 2007 IEEE Symposium on Security and Privacy (SP '07), Berkeley, CA, (2007), 350–364. |
[19] | L. Ibraimi, S. Nikova, P. Hartel, et al., Public Key Encryption with Authorized Keyword Search, Applied Cryptography and Network Security-ACNS 2011 (Lecture Notes in Computer Science), 6715 (2011), 532–549. |
[20] | J. Zhang and J. Mao, Efficient public key encryption with revocable keyword search in cloud computing, Cluster Comput., 19 (2016), 1211–1217. |
[21] | P. Jiang, Y. Mu, F. Guo, et al., Public Key Encryption with Authorized Keyword Search, Information Security and Privacy-ACISP 2016 (Lecture Notes in Computer Science), 9723 (2016), 170–186. |
[22] | J. Baek, R. Safavi-Naini and W. Susilo, Public Key Encryption with Keyword Search Revisited, Proc. ICCSA '08, Perugia, Italy, (2008), 1249–1259. |
[23] | Q. Tang and L. Chen, Public-Key Encryption with Registered Keyword Search, Public Key Infrastructures, Services and Applications-EuroPKI 2009 (Lecture Notes in Computer Science), 6391 (2009), 163–178. |
[24] | H. Yang, C. Xu and H. Zhao, An Efficient Public Key Encryption with Keyword Scheme Not Using Pairing, in '11 First International Conference on Instrumentation, Measurement, Computer, Communication and Control, Beijing, China, (2011), 900–904. |
[25] | D. Boneh and M. Franklin, Identity-Based Encryption from the Weil Pairing, Advances in Cryptology CRYPTO 2001(Lecture Notes in Computer Science), 2139 (2001), 213–229. |
[26] | H. Xiong and Z. Qin, Revocable and Scalable Certificateless Remote Authentication Protocol with Anonymity for Wireless Body Area Networks, IEEE T. Inf. Foren. Sec., 10 (2015), 1442–1455. |
[27] | S. Halevi, PBC (Pairing-Based Cryptography) library, IACR Cryptology ePrint Archive,(2005), Available from: https://eprint.iacr.org/2005/005.pdf. |
[28] | J. Katz, A Forward-Secure Public-Key Encryption Scheme, IACR Cryptology ePrint Archive, (2002), Available from: https://eprint.iacr.org/2002/060.pdf. |
[29] | B. Lynn, A sufficient condition for key-privacy, Available from: https://crypto.stanford. edu/pbc/, Accessed on: Sep. 15, 2018. |
1. | Nyamsuren Vaanchig, Zhiguang Qin, Batjargal Ragchaasuren, Constructing secure‐channel free identity‐based encryption with equality test for vehicle‐data sharing in cloud computing, 2020, 2161-3915, 10.1002/ett.3896 | |
2. | Yong Ding, Hui Xu, Yujue Wang, Fang Yuan, Hai Liang, Shui Yu, Secure Multi-Keyword Search and Access Control over Electronic Health Records in Wireless Body Area Networks, 2021, 2021, 1939-0122, 1, 10.1155/2021/9520941 | |
3. | Tian Yang, Sha Ma, Jiaojiao Du, Chengyu Jiang, Qiong Huang, Revocable Public Key Encryption with Equality Test without Pairing in Cloud Storage, 2024, 67, 0010-4620, 642, 10.1093/comjnl/bxad006 |
Security Properties | PEKS [1] | PEFKS [9] | PETKS [10] | PETFKS |
Keyword Confidentiality | Yes | Yes | Yes | Yes |
Backward and Forward Secrecy | NA | NA | Yes | Yes |
Keyword Guessing Resistance | No | Yes | No | Yes |
Entity | Our Scheme | PEFKS [9] | PETKS [10] |
DR | |Zp| | |Zp| | |Zp| |
DS | 2|G1| | 2|G1| | 2|G1| |
CS | n((2+log(T))|G1|+2|G2|) | n(2|G1|+2|G2|) | n((1+log(T))|G1|+|G2|) |
Entity | Our Scheme | PEFKS [9] | PETKS [10] |
DR to DS | 2|G1| | 2|G1| | 2|G1| |
DS to CS | (2+log(T))|G1|+2|G2| | 2|G1|+2|G2| | (1+log(T))|G1|+|G2| |
DR to CS | s((1+log(T))|G1|) | |G1| | s((1+log(T))|G1|+|Zp|) |
CS to DR | sm(|G1|+|G2|) | tm(2|G1|+2|G2|) | NA |