Next Article in Journal
A Mode-Matching Tailored-Galerkin Approach for Higher Order Interface Conditions and Geometric Variations
Next Article in Special Issue
A Novel Link Prediction Method for Social Multiplex Networks Based on Deep Learning
Previous Article in Journal
Joint Approximation of Analytic Functions by Shifts of Lerch Zeta-Functions
Previous Article in Special Issue
Efficient Associate Rules Mining Based on Topology for Items of Transactional Data
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Efficient and Privacy-Preserving Categorization for Encrypted EMR

1
School of Computer and Software Engineering, Xihua University, Chengdu 610039, China
2
School of Computer Science, Shaanxi Normal University, Xi’an 710119, China
*
Author to whom correspondence should be addressed.
These authors contributed equally to this work.
Mathematics 2023, 11(3), 754; https://doi.org/10.3390/math11030754
Submission received: 24 December 2022 / Revised: 21 January 2023 / Accepted: 27 January 2023 / Published: 2 February 2023
(This article belongs to the Special Issue Artificial Intelligence and Data Science)

Abstract

:
Electronic Health Records (EHRs) must be encrypted for patient privacy; however, an encrypted EHR is a challenge for the administrator to categorize. In addition, EHRs are predictable and possible to be guessed, although they are in encryption style. In this work, we propose a secure scheme to support the categorization of encrypted EHRs, according to some keywords. In regard to the predictability of EHRs, we focused on guessing attacks from not only the storage server but also the group administrator. The experiment result shows that our scheme is efficient and practical.

1. Introduction

With the tremendous benefits of cloud computing, more and more data are being outsourced to the cloud by data owners, and shared with authorized users [1,2,3]. Outsourcing electronic health records (EHRs) to a third party is the most common practice in health systems, providing both computational cost savings and quality service.
An electronic health record (EHR) is a technical tool for recording a patient’s health in a smart healthcare system. The EHR contains all information related to the patient’s health, including sensitive information, such as personal medical history, health reports, and medication records. Due to the sensitive patient data contained in EHRs, and the large storage space required for the data, cloud storage technology has been proposed for data storage management [4,5]; however, cloud service providers are not entirely trustworthy: for example, cloud servers can be curious [6], and for some reason can steal users’ data or compromise the integrity of the data.
To prevent sensitive data from being disclosed to cloud servers, patients encrypt the EHRs before uploading to the cloud server [7]; however, medical staff have to download and decrypt the data prior to searching, which makes the overhead cost much higher. To solve this problem, researchers have proposed public-key-encryption-based searchable encryption (PEKS), which allows servers to search encrypted data without revealing plaintext data (see [7,8,9,10,11]): for example, the public key searchable encryption scheme first proposed by Boneh et al. [8] has been applied to mail routing, where the mail server retrieves the data and sends the ciphertext of the message containing the keywords to the recipient. Khader et al. proposed a public key searchable encryption scheme based on K-Resilient IBE [11], which not only proved to be secure under the standard model, but also without using the bilinear pair, resulting in a significant improvement in operational efficiency.
However, searchable encryption (SE) only allows for searching on ciphertexts that have been encrypted under the same public keys, which makes it unsuitable for scenarios with different public key encryption. To solve this issue, a public key encryption with an equality test (PKEET) ([12,13]) was proposed, which was used to check whether two ciphertexts that were encrypted by different public keys contained the same plaintext. To reduce the storage cost of trapdoors, and the communication cost, Ling et al. [14] proposed the concept of group public key encryption with an equality test; however, Ling’s scheme failed to resolve the guessing attack from the group administrators in the system, which led to the security risk of data leakage. We have built on Ling’s results, to further improve the security of the scheme, and to combine it with the smart healthcare system.
In the traditional PKEET application scenario, any user can generate encrypted files, upload the ciphertext to the server, and wait for the result after the server test. The application of smart medical scenarios can lead to the privacy leakage of patient medical data. In order to solve this problem, we introduced a group-oriented PKEET into the medical scenario shown in Figure 1, taking the hospital as a group, with the patients uploading their encrypted electronic health records to the hospital. The third-party server could then perform an equality test on the ciphertexts within the group, after authorization, to determine whether the patient was suffering from the same symptoms, while the health records outwith the group could not be compared with the health records within the group: this ensured that external malicious attackers could not guess the internal patient’s health records, thus avoiding the leakage of patient privacy. When the server returned the test results to the doctor, the doctor could classify the patients in the group, according to their symptoms, to conduct better research for the disease.

1.1. Our Contributions

To support the efficient management of EMR, we introduced the notion of group-oriented PKEET. The main contributions of this scheme can be summarized as follows.
  • We improved the group-oriented PKEET proposed in [14], to be resistant to guessing attack even by the group administrator: in this way, patient privacy was enhanced.
  • We applied our group-oriented PKEET to the healthcare system, so that the EMR were managed efficiently and securely.

1.2. Related Work

Public key encryption with keyword search.
The concept of public key encryption with keyword search (PKE-KS) was first proposed by Boneh [8]. In the scheme, the receiver sends a trapdoor to the server, so that the server can search for specific keywords contained in the ciphertext.
Public key encryption with equality testing. Public key encryption with equality testing (PKEET) was introduced by Yang et al. [12]. In the scheme, the tester can arbitrarily check whether two ciphertexts encrypted with different public keys contain the same plaintext, without decrypting the ciphertext. To impose authorization mechanisms on PKEET, Tang proposed a strengthened PKEET (FG-PKEET) [13] to support fine-grained authorization. In the scheme, two users were required to jointly generate a token, and to authorize the tester to perform the equality test. In addition, Tang [15] presented an all-or-nothing PKEET (AoN-PKEET), which developed a fine-grained authorization mechanism that specified the users who performed the equality test. Ma et al. [16] proposed a public key encryption scheme to support the delegation equality test (PKE-DET), in which only the delegated party was required to handle the work in a practical multi-user environment: however, due to a large number of bilinear mapping operations, it could not be used in real scenarios. Huang et al. [17] proposed a public key encryption scheme with an authorization equality test (PKE-AET). In the PKE-AET, the protocol method was divided into receiver warrants and cipher warrants, to improve privacy protection.
Group encryption with equality testing. The concept of group encryption with equality testing was first proposed by Ling et al. [14]. The authors combined group mechanism with PKEET, and enabled equality testing on different users’ ciphertexts within a group, which reduced the storage cost of trapdoors and computation; however, Ling’s scheme was unable to resist a guessing attack from the group administrator, which was a serious privacy threat, especially in the healthcare system.

1.3. Organization

In the following, we briefly introduce some preliminaries in Section 2; we present the system definition and security model of the scheme in Section 3; in Section 4, we describe our scheme’s construction; in Section 5, we propose a formal security analysis; the comparison and performance evaluation are shown in Section 6; finally, we present this paper’s conclusion in Section 7.

2. Preliminaries

In this part, we give a brief introduction to the basic mathematical background, the bilinear map, the building block, and the cryptographic tool used.

2.1. Mathematical Background

Bilinear Map: Let G and G T be two multiplicative cyclic groups of prime order p. Suppose that g is G group’s generator. A bilinear map e ^ : G × G G T has the following properties:
  • bilinear: for any gG and a , b ∈ Z p * , e ^ (g a ,g b ) = e ^ (g,g) a b ;
  • non-degenerate: e ^ (g,g) ≠ 1;
  • computable: there is an effective algorithm for computing e ^ (g,g) for any gG.
Computational Diffie–Hellman Problem (CDH) [18]: Let G be a group of prime order p. The CDH problem is as follows: we represent by R the process of uniformly sampling a random element; if, given 3-tuple (g,ga,gb) ∈ G 3 as input and a , b R Z p * , we can say that the CDH problem is hard in G, any probabilistic polynomial time algorithm A computes g a b with negligible advantage ϵ :
Adv A , G CDH = def Pr A g , g a , g b = g a b ϵ

2.2. Building Block

G-PKEET is the building block to construct our security [14]. The system model of G-PKEET is shown in Figure 2, which includes four entities: Group Administrator (GA); Sender; Receiver; and Cloud Server (CS).
  • Group Administrator (GA) is responsible for generating the group secret key, g s k , and the group public key, g p k , of the system; then, it keeps the g s k , and sends the g p k to the patient.
  • Sender: the patient encrypts the electronic medical record with the group public key (gpk) and with the patient’s own secret key (sk), to generate the ciphertext C, then stores it in the cloud server.
  • Cloud Server (CS): with the authorization, the cloud server is in charge of performing the equality test, and returns the result to the doctor.
  • Receiver: upon receiving the result from the cloud server, the receiver can classify the based on the result.
    The receiver can use their own private key to decrypt the ciphertext at the same time.

3. System Definition and Security Model

3.1. The Syntax of PKEET

Public key encryption with equality testing consists of the following algorithms ( Gen , Enc , Dec , Test ) operating over plaintext M , ciphertext space C , and key space K :
  • Gen ( 1 λ ): the algorithm inputs a security parameter, λ , and outputs a public/secret key pair ( p k , s k );
  • Enc ( pk , M ) : the algorithm inputs message M, the receiver’s public key, p k , and outputs a ciphertext, C;
  • Dec ( sk , C ) : the algorithm inputs a ciphertext, C, the receiver’s secret key, s k , and outputs a message, M;
  • Test ( C 1 , C 2 ) : the algorithm inputs two ciphertexts, C 1 , C 2 , and outputs 1, if C 1 and C 2 are encrypted from the same plaintexts, and 0 otherwise.

3.2. The Syntax of G-PKEET

As an improvement, the group public key encryption with equality testing consists of the following algorithms ( Setup , KeyGen user , KeyGen g roup , Join , Enc , Dec , Aut , Test ) operating over plaintext M , ciphertext space C , and key space K :
  • Setup ( λ ) : the algorithm inputs a security parameter, λ , and outputs p p as a system parameter;
  • KeyGen user ( pp ) : the algorithm inputs system parameter p p , and outputs (pk i ,sk i ) as a public/secret key pair;
  • KeyGen g roup ( pp ) : the algorithm inputs system parameter p p , and outputs g s k as a group secret key; it is run by GA;
  • Join ( gsk , pk i ) : the algorithm inputs a group secret key, g s k , a public key, p k i , and outputs g p k i as a group public key for group user U i ; it is run by GA;
  • Enc ( gpk i , sk i , pk j , M ) : the algorithm inputs a group public key, g p k , and a secret key, s k i , of the group user U i , a public key, p k j , of the group user U j , and a message, m, where U i and U j represent the receiver and sender, respectively, and outputs C i j as a ciphertext;
  • Dec ( gpk i , sk j , C i , j ) : the algorithm inputs a group public key, g p k i of the group user U i , a secret key, s k j , of the group user U j , where U i and U j represent the receiver and sender, respectively, and outputs message M;
  • Aut ( gsk ) : the algorithm inputs a group secret key, gsk, and outputs a group trapdoor gtd; it is run by GA;
  • Test ( C i , j , C i , j , gtd ) : the algorithm inputs two ciphertexts, C i , j , C i , j , a group trapdoor, gtd, and outputs 1, if C i , j and C i , j are encrypted from the same plaintexts, and 0 otherwise.

3.3. Security Models

To simplify the security analysis, we defined the following games and adversaries for the security model:
  • Type-I Adversary: the attacker authorized by GA cannot retrieve a message from the challenge ciphertext;
  • Type-II Adversary: the attacker unauthorized by GA cannot determine by which plaintext the challenge ciphertext is encrypted.
OW-CCA security against Type-I adversary.
Game 1: Let A 1 be a Type-I adversary.
1.
Setup: With a security parameter, λ , challenger C 1 runs the S e t u p algorithm to generate public parameter pp; then, it runs the K e y G e n u s e r algorithm to generate n group users’ public/secret key pair ( p k i , s k i ) ( 1 i n ); it runs the K e y G e n g r o u p algorithm, to generate a group secret key, gsk; it runs the J o i n algorithm, to generate n group user’s group public key, g p k i ( 1 i n ); and it runs the A u t algorithm, to generate a group trapdoor, g t d ; finally giving p p , all p k i , g p k i , and g t d to the adversary A 1 .
2.
Phase 1: A 1 makes the following queries for polynomial times:
  • O K e y query i : A 1 sends p k i , and gets s k i from the oracle;
  • O E n c query i , j , M : A 1 sends ( g p k i , s k i , p k j , M ), and gets the encryption result of M from the oracle;
  • O D e c query i , j , C i , j : A 1 sends ( g p k i , s k j , C i , j ), and gets the decryption result of C i , j from the oracle.
3.
Challenge: The challenge C 1 randomly selects a message, M, runs E n c ( g p k i * , s k i * , p k j * , M ) , and sends the output C ^ i * , j * to A 1 .
4.
Phase 2: A 1 issues queries, as in Phase 1: the constraint is that ( i * , j * , C ^ i * , j * ) cannot appear in O D e c .
5.
Guess: A 1 outputs a guess, M * : if M * = M , A 1 wins the game.
We define the advantage of A 1 in the Game 1 as
Adv A 1 OW - CCA ( λ ) = Pr [ M * = M ]
Definition 1.
The improved G-PKEET scheme is OW-CCA-secure if  Adv A 1 OW - CCA  is negligible for any probabilistic polynomial time OW-CCA adversary in the security parameters.
IND-CCA security against Type-II adversary.
Game 2: Let A 2 be a Type-II adversary.
1.
Setup: With a security parameter, λ , challenger C 2 runs the S e t u p algorithm to generate public parameter PP; then, it runs the K e y G e n u s e r algorithm to generate n group users’ public/secret key pair, ( p k i , s k i ) ( 1 i n ); it runs the K e y G e n g r o u p algorithm to generate a group secret key, gsk; it runs the J o i n algorithm to generate n group user’s group public key, g p k i ( 1 i n ); and it runs the A u t algorithm to generate a group trapdoor, g t d ; finally, it gives p p , all p k i , g p k i , and g t d to the adversary, A 2 .
2.
Phase 1: A 2 makes the following queries for polynomial times:
  • O K e y query i : A 2 sends p k i , and gets s k i from the oracle;
  • O E n c query i , j , M : A 2 sends ( g p k i , s k i , p k j , M ), and gets the encryption result of M from the oracle;
  • O D e c query i , j , C i , j : A 2 sends ( g p k i , s k j , C i , j ), and gets the decryption result of C i , j from the oracle.
3.
Challenge: A 2 randomly selects two messages, m 0 , m 1 , and sends them to challenge C 2 ; then, C 2 randomly selects σ R { 0 , 1 } , runs E n c ( g p k i * , s k i * , p k j * , M ) , and sends C ^ i * , j * to A 2 .
4.
Phase 2: A 2 issues queries, as in Phase 1. The constraint is that ( i * , j * , C ^ i * , j * ) cannot appear in O D e c .
5.
Guess: A 2 returns a guess, σ * . If σ * = σ , A 2 wins the game.
We define the advantage of A 2 in the Game 2 as
Adv A 2 INC - CCA ( λ ) = Pr σ * = σ 1 2
Definition 2.
The improved G-PKEET scheme is IND-CCA-secure if  Adv A 2 IND - CCA  is negligible for any probabilistic polynomial time IND-CCA adversary in the security parameters.

4. Construction

  • S e t u p ( λ ) : this algorithm is performed by Key Generation Center (KGC). KGC inputs security parameter λ , and outputs public parameters p p = { G , G T , p , g , e , H 1 , H 2 , H 3 , H 4 } . H 1 , H 2 , H 3 , H 4 are four collision-resistant hash functions:
    -
    H 1 : { 0 , 1 } l 1 G,
    -
    H 2 :GG,
    -
    H 3 :G { 0 , 1 } l 1 + l 2 ,
    -
    H 4 : { 0 , 1 } * { 0 , 1 } λ , where l 1 and l 2 represent the length of message and the length of Z p .
  • K e y G e n u s e r ( p p ) : this algorithm is performed by the patient, who randomly selects x i , y i R Z p * , and outputs a public/secret key pair, p k i , s k i
p k i , s k i = ( ( g x i , g y i ) , ( x i , y i ) ) .
  • K e y G e n g r o u p ( p p ) : this algorithm is performed by the GA (for example, the hospital director), who randomly selects s 1 , s 2 Z p * , and: (1) outputs a group secret key, gsk = (s 1 , s 2 ); (2) sets the group trapdoor, gtd = s 2 .
  • J o i n ( g s k , p k i ) : this algorithm is performed by GA, and outputs a group public key for group patients, U i :
    gpk i = g x i s 1 , g s 2
  • E n c ( g p k i , s k i , p k j , M ) : this algorithm is performed by patient i. To encrypt E H R s , say M { 0 , 1 } * , patient i randomly chooses two random numbers, ζ 1 , ζ 2 R Z p * , and uses doctor j’s public key, p k j , to set the ciphertext, C = (C 1 ,C 2 ,C 3 ,C 4 ,C 5 ), as follows:
    C 1 = g x i y i s 1 ζ 1 , C 2 = H 1 ( M ) x i y i ζ 1 · H 2 ( g s 2 ζ 2 ) , C 3 = g ζ 2 , C 4 = H 3 ( g x j ζ 2 ) M g ζ 1 , C 5 = H 4 C 1 C 2 C 3 C 4 M g ζ 1 .
  • D e c ( g p k i , s k j , C i , j ) : this algorithm is performed by a doctor, and computes ( M | | g ζ 1 ) ← C 4 H 3 ( C 3 x j ) , then decides if the following equation holds:
    e ^ ( C 1 , g y i ) = e ^ ( g x i s 1 , g ζ 1 ) , C 5 = H 4 C 1 C 2 C 3 C 4 M g ζ 1 ;
    if yes, then the doctor obtains the EHRs’ M .
    In the decryption step, a verification operation is performed, to prevent attackers from decrypting the modified ciphertext to obtain the plaintext; data security is ensured.
  • A u t ( g s k ) : this algorithm is performed by GA, and outputs a group gtd = s 2 to the cloud server, for the next testing step.
  • T e s t ( C i , j , C i , j , g t d ) : the algorithm is performed by tester (cloud server). Given ciphertexts, group trapdoor, the algorithm outputs 1 if the following equation holds:
    e ^ ( C 1 , C 2 / H 2 ( ( C 3 ) s 2 ) ) = e ^ ( C 1 , C 2 / H 2 ( C 3 s 2 ) ) .
    Note: We presented a detailed construction for the G-PKEET scheme as above, and compared it to Ling et al.’s scheme [14]. We made some improvements to the encryption part, by using a pair of generated private keys to encrypt the EHRs, so that only the server could test the ciphertext if it got the group trapdoor.

5. Security Analysis

In this section, we show that our improved G-PKEET scheme is OW-CCA-secure against a Type-I adversary, and IND-CCA-secure against a Type-II adversary with the random oracles.
Theorem 1.
The improved G-PKEET scheme is OW-CCA-secure against a Type-I adversary, based on the CDH problem in the random oracle model.
Proof. 
Let A 1 be a probabilistic polynomial time (PPT) adversary attacking the OW-CCA security. Assuming that A 1 makes, at most, q H 1 > 0 H 1 hash queries, q H 2 > 0 H 2 hash queries, q H 3 > 0 H 3 hash queries, q H 4 > 0 H 4 hash queries, q K > 0 secret key queries, q E n c > 0 encryption queries, q D e c > 0 decryption queries, and q A u t > 0 authorization queries. Let Adv A 1 OW - C C A ( λ ) represent the advantage of A 1 in the following games. We will demonstrate the security proof through a series of games. □
Game 1.0:
1.
p p p , G , G T , e ^ , g , 1 i n , ( x i , y i ) R Z p * , sk i = ( x i , y i ), pk i = ( g x i , g y i ), s 1 , s 2 R Z p * , gsk = (s 1 , s 2 ), gpk i = (g x i s 1 , g s 2 ), gtd = s 2 . H 1 , H 2 , H 3 , and H 4 are random oracles. H-query. The challenger prepares four hash tables, to record and respond to queries.
O H 1 query v 1 : given a v 1 G , the challenger randomly selects u R Z p * , computes h 1 = g u G , saves ( v 1 , u , h 1 ) into T 1 , and sends h 1 to A 1 .
O H 2 query v 1 : given a v 1 G , the challenger chooses a compatible random value, h 2 , and saves ( v 1 , h 2 ) into T 2 for O H 2 .
O H 3 query v 1 : given a v 1 G , the challenger chooses a compatible value, h 3 , uniformly from the set { 0 , 1 } l 1 + l 2 that is returned, and saves ( v 1 , h 3 ) into T 3 for O H 3 .
O H 4 query v 1 : given a v 1 G , the challenger chooses a compatible value, h 4 , uniformly from the set { 0 , 1 } λ that is returned, and saves ( v 1 , h 4 ) into T 4 for O H 4 .
2.
state A 1 O H 1 , O H 2 , O H 3 , O H 4 , O K e y , O E n c , O D e c ( P P , { p k i , g p k i } i = 1 n , g t d , i * , j * ) , where the oracles are simulated as follows, and j * cannot appear in O K e y oracle:
O K e y query i : input index i; the challenger sends ( x i , y i ) to A 1 ;
O E n c query i , j , M : input two indexes, i, j, and a plaintext M; the challenger runs the E n c algorithm, and returns C i , j = E n c ( g p k i , s k i , p k j , M ) ;
O D e c query i , j , C i , j : input two indexes, i,j, and a ciphertext, C i , j ; the challenger runs the D e c algorithm, and returns M = D e c ( g p k i , s k j , C i , j ) .
3.
M R { 0 , 1 } l 1 , ζ 1 , ζ 2 R Z p * , C ^ i * , j * = ( C ^ 1 , C ^ 2 , C ^ 3 , C ^ 4 , C ^ 5 ) , and computes:
C ^ 1 = g x i * y i * s 1 ζ 1 , C ^ 2 = H 1 ( M ) x i * y i * ζ 1 · H 2 ( g s 2 ζ 2 ) , C ^ 3 = g ζ 2 , C ^ 4 = H 3 ( g x j * ζ 2 ) M g ζ 1 , C ^ 5 = H 4 C ^ 1 C ^ 2 C ^ 3 C ^ 4 M g ζ 1 .
4.
M A 1 O ( H 1 , H 2 , H 3 , H 4 ) , O ( K e y , E n c , D e c ) ( s t a t e , C ^ i * , j * ) . The constraint is that ( i * , j * , C ^ i * , j * ) cannot appear in O D e c , and j * cannot appear in O K e y .
Let S 1.0 denote the event M = M in Game 1.0. Thus, the advantage of A 1 is as follows:
Adv A 1 OW - CCA ( q H 1 , q H 2 , q H 3 , q H 4 , q K e y , q E n c , q D e c ) = P r [ S 1.0 ]
Game 1.1: In this game, the performance of the challenger is the same as in Game 1.0, except for the following:
1.
O E n c query i , j , M : the challenge C 1 selects ζ 1 , ζ 2 R Z p * , and returns a ciphertext, C i , j , to A 1 , then computes
C 1 = g x i y i s 1 ζ 1 , C 3 = g ζ 2 ;
it executes a query on O H 1 , with input M to return h 1 , a query on O H 2 , with input g s 2 ζ 2 to return h 2 , and a query on O H 3 , with input g x j ζ 2 to return h 3 ; then, it computes
C 2 = h 1 x i y i ζ 1 · h 2 , C 4 = h 3 ( M | | g ζ 1 ) .
and, finally, it executes a query on O H 4 with input ( C 1 | | C 2 | | C 3 | | C 4 | | M | | g ζ 1 ) to return h 4 ; then, it sets
C 5 = h 4 .
The challenger saves ( v 1 , h 1 ), ( v 1 , h 2 ), ( v 1 , h 3 ), ( v 1 , h 4 ) to T 1 , T 2 , T 3 , T 4 , and returns C i , j to A 1 .
O D e c query i , j , C i , j : the challenger executes a query on O H 3 on input C 3 x j , and gets the answer h 3 ; it then computes C 4 h 3 , to get M | | g ζ 1 , and checks if the following equations hold:
C 1 = g x i y i s 1 ζ 1 , C 5 = H 4 C 1 C 2 C 3 C 4 M g ζ 1 .
If either fails to be maintained, the challenger sends ⊥ to A 1 ; otherwise, it sends M to A 1 .
2.
M R { 0 , 1 } l 1 , ζ 1 , ζ 2 R Z p * , W * R { 0 , 1 } l 1 + l 2 , C ^ i * , j * = ( C ^ 1 , C ^ 2 , C ^ 3 , C ^ 4 , C ^ 5 ) computes
C ^ 1 = g x i * y i * s 1 ζ 1 , C ^ 2 = H 1 ( M ) x i * y i * ζ 1 · H 2 ( g s 2 ζ 2 ) ; C ^ 3 = g ζ 2 , C ^ 4 = W 1.1 * M g ζ 1 ; C ^ 5 = H 4 ( C ^ 1 | | C ^ 2 | | C ^ 3 | | C ^ 4 | | M | | g ζ 1 ) .
Finally, the challenger saves the tuple ( g x j * ζ 2 , W 1.1 * ) into tables T 3 for O H 3 .
Let S 1.1 denote the event M = M in Game 1.1. Given the idealness of the random oracle, Game 1.1 is the same as Game 1.0, and we have
P r [ S 1.1 ] = P r [ S 1.0 ]
Game 1.2: In this game, the performance of the challenger is the same as in Game 1.1, except for the following:
1.
O H 3 query v 1 is the same as that in Game 1.1; in addition, if A 1 asks ( C ^ 3 ) x j * , denote this event by E 1 ;
2.
O D e c query i , j , C i , j is the same as that in Game 1.1; in addition, if A 1 requests the decryption of ( C ^ 1 , C ^ 2 , C ^ 3 , C ^ 4 , C ^ 5 ) after receiving the challenge ciphertext C ^ i * , j * , where C ^ 4 C ^ 4 , the challenger sends ⊥ to A 1 ;
3.
M R { 0 , 1 } l 1 , ζ 1 , ζ 2 R Z p * , W 2.1 * R { 0 , 1 } l 1 + l 2 , C ^ i * , j * = ( C ^ 1 , C ^ 2 , C ^ 3 , C ^ 4 , C ^ 5 ) is defined as follows:
C ^ 1 = g x i * y i * s 1 ζ 1 , C ^ 2 = H 1 ( M ) x i * y i * ζ 1 · H 2 ( g s 2 ζ 2 ) , C ^ 3 = g ζ 2 , C ^ 4 = W 2.1 * , C ^ 5 = H 4 ( C ^ 1 | | C ^ 2 | | C ^ 3 | | C ^ 4 | | M | | g ζ 1 ) .
Finally, the tuple ( g x j * ζ 2 , W 2.1 * ( M | | g ζ 1 ) ) is saved into tables T 3 for O H 3 .
Let S 1.2 denote the event that M = M in Game 1.2. The challenge ciphertext generated in Game 1.1 is identically distributed to that in Game 1.2, as C ^ 4 is a random value in both Game 1.1 and Game 1.2; therefore, if event E 1 does not happen, Game 1.2 is identical to Game 1.1, and we have
Pr S 1.2 Pr S 1.1 Pr E 1 .
Next, we show that the event (3) holds.
Lemma 1.
Event E1 happens in Game 1.2 with negligible probability if the CDH problem is intractable.
Proof. 
Suppose that Pr[E 1 ] is non-negligible. We construct a PPT algorithm, B 1 , to break the CDH assumption. Given a tuple, ( G , G T , p , e ^ , g , g α , g β ), it runs A 1 , and works as follows: □
1.
B 1 sets PP = ( G , G T , p , g , e ^ ); it chooses two random values, s 1 , s 2 R Z p * , 1 i * , j * n , and sets gsk = ( s 1 , s 2 ) , s k j * = α , p k j * = g α , and g p k j * = ( ( g α ) 1 s , g 2 s ) . Then, it chooses random value x i R Z p * , and sets s k i = x i , p k i = g i x , g p k i = ( g x i s 1 , g s 2 ) , and gtd = s 2 . H 1 , H 2 , H 3 , H 4 are four random oracles. H-query. B 1 prepares four hash tables to record and respond to queries, where all the hash tables are initialized to empty:
O H 1 query v 1 : same as that in Game 1.1;
O H 4 query v 1 : same as that in Game 1.1;
O H 3 query v 1 : same as that in Game 1.1;
O H 2 query v 1 : same as that in Game 1.1, except that if A 1 asks ( C ^ 3 ) x j * = g α β , we denote this event by E 1 .
2.
state A 1 O H 1 , O H 2 , O H 3 , O H 4 , O K e y , O E n c , O D e c ( p p , { p k i , g p k i } i = 1 n , g t d , i , j ) , where the oracles are simulated as follows:
O K e y q u e r y i : same as that in Game 1.1;
O E n c q u e r y i , j , M : same as that in Game 1.1, except that if query i , j * , M , B 1 chooses random values, ζ 1 , ζ 2 R Z p * , and outputs a ciphertext, C i , j = ( C 1 , C 2 , C 3 , C 4 , C 5 ) , defined as
C 1 = ( g α ) s 1 ζ 1 , C 3 = g ζ 2 ,
then it executes a query on O H 1 , with input M to return ( v 1 , u M , h 1 ) , a query on O H 2 , with input g s 2 r 2 to return h 2 , and a query on O H 3 , with input g x j ζ 2 to return h 3 ; then, it computes
C 2 = ( g α ) u M ζ 1 · h 2 , C 4 = h 3 ( M | | g ζ 1 ) ;
finally, it executes a query on O H 4 , with input ( C 1 | | C 2 | | C 3 | | C 4 | | M | | g ζ 1 ) to return h 4 , and sets C 5 = h 4 .
The challenger saves ( v 1 , h 1 ) to table T 1 for O H 1 , ( v 1 , h 2 ) to table T 2 for O H 2 , ( v 1 , h 3 ) to table T 3 for O H 3 , ( v 1 , h 4 ) to table T 4 for O H 4 , and returns C i , j to A 1 .
O D e c query i , j , C i , j : same as that in Game 1.1. In addition to query i , j * , C i , j , if A 1 asks the decryption of ( C ^ 1 , C ^ 2 , C ^ 3 , C ^ 4 , C ^ 5 ) after obtaining the challenger ciphertext C ^ i * , j * , and C ^ 4 C ^ 4 , the challenger sends ⊥ to A 1 . For the tuple ( v 1 , h 3 ), B 1 , after computing M | | g ζ 1 = C 4 h 3 , verifies if C 1 = g x i y i s 1 ζ 1 ; otherwise, it returns ⊥; then, it inputs ( C 1 | | C 2 | | C 3 | | C 4 | | M | | g ζ 1 ) to get h 4 , and verifies if C 5 = h 4 : if so, it returns M; if a compatible tuple does not exist, it returns ⊥.
3.
M R { 0 , 1 } l 1 , ζ 1 R Z p * , ( W * ) R { 0 , 1 } l 1 + l 2 , C ^ i * , j * = ( C ^ 1 , C ^ 2 , C ^ 3 , C ^ 4 , C ^ 5 ) , defined as follows:
C ^ 1 = g x i * y i * s 1 ζ 1 , C ^ 2 = H 1 ( M ) x i * y i * ζ 1 · H 2 ( ( g β ) s 2 ) , C ^ 3 = g β , C ^ 4 = ( W * ) M g ζ 1 , C ^ 5 = H 4 ( C ^ 1 | | C ^ 2 | | C ^ 3 | | C ^ 4 | | M | | g ζ 1 ) ;
finally, it saves the tuple ( Δ , C 4 ) into table T 3 , where Δ Indicates that the value is unknown.
4.
M A 1 O ( H 1 , H 2 , H 3 , H 4 ) , O ( K e y , E n c , D e c ) ( s t a t e , C ^ i * , j * ) . The constraints are that j * cannot appear in O K e y , and ( i * , j * , C ^ i * , j * ) cannot appear in O D e c .
Indistinguishable simulation. Based on the setting of the simulation, the correctness and randomness of the simulation hold, given a ciphertext C i , j = ( C 1 , C 2 , C 3 , C 4 , C 5 ) for a decryption query, if j j * , B 1 is able to execute decryption simulation; if j = j * , we have the following scenarios:
  • C 3 α has been queried to O H 3 before decryption query is asked: in this case, C 4 is uniquely determined after C 3 α is queried to O H 3 ; then, the decryption oracle is perfectly simulated;
  • C 3 α has never been queried to O H 3 when the decryption query is asked: in this case, ⊥ is returned by the decryption oracle if the simulation fails; however, the idealness of the random oracle happens with probability 1 / 2 l 1 + l 2 .
E 2 denotes the event that a valid ciphertext is refused in the simulation: then, we have Pr E 2 q D / 2 l 1 + l 2 , which is negligible, so that B 1 executes the decryption simulation correctly, but with negligible probability. The simulation is indistinguishable from Game 1.2.
Probability of successful simulation. If the simulated game is not aborted, then the probability of successful simulation is 1.
Analysis. As A 1 queries ( C ^ 3 ) α with probability Pr E 1 , B 1 is able to solve the CDH problem with probability Pr E 1 , and we have Pr E 1 = Adv A 1 CDH . In addition, if E 2 does not occur, we have Pr E 1 ¬ E 2 = Pr E 1 .
Pr E 1 = Pr E 1 E 2 Pr E 2 + Pr E 1 ¬ E 2 Pr ¬ E 2 Pr E 1 ¬ E 2 Pr ¬ E 2 = Pr E 1 1 Pr E 2 Pr E 1 Pr E 2 .
Therefore, according to Adv A 1 CDH Pr E 1 q D / 2 l 1 + l 2 , we have
Pr E 1 Adv A 1 CDH + q D / 2 l 1 + l 2 ,
which is negligible. This completes the proof of Lemma 1.
Finally, in Game 1.2, we analyze the challenge ciphertext C ^ i * , j * :
C ^ 1 = g x i * y i * s 1 ζ 1 , C ^ 2 = H 1 ( M ) x i * y i * ζ 1 · H 2 ( g s 2 ζ 2 ) , C ^ 3 = g ζ 2 , C ^ 4 = W * M g ζ 1 , C ^ 5 = H 4 ( C ^ 1 | | C ^ 2 | | C ^ 3 | | C ^ 4 | | M | | g ζ 1 ) .
Note that C ^ 1 , C ^ 3 , and C ^ 4 are independent from the message M. Given the one-wayness of hash functions, A 1 can figure out M from C ^ 2 and C ^ 5 with a negligible probability ε ; thus, we have
Pr S 1.2 ε
According to (1)–(5), we have
Adv A 1 OW - CCA ( q H 1 , q H 2 , q H 3 , q H 4 , q K e y , q E n c , q D e c ) Adv A 1 CDH + q D / 2 l 1 + l 2 + ε ,
which is negligible. This completes the proof of Theorem 1.
Theorem 2.
The improved G-PKEET scheme is IND–CCA-secure against a Type-II adversary based on the CDH problem in the random oracle model.
Proof. 
Let A 2 be a probabilistic polynomial time (PPT) adversary attacking the IND-CCA security. Assuming that A 2 makes, at most, q H 1 > 0 H 1 hash queries, q H 2 > 0 H 2 hash queries, q H 3 > 0 H 3 hash queries, q H 4 > 0 H 4 hash queries, q K > 0 secret key queries, q E n c > 0 encryption queries, q D e c > 0 decryption queries, and q A u t > 0 authorization queries, let Ad v A 2 IND - C C A ( λ ) represent the advantage of A 2 in the following games. We will demonstrate the security proof through a series of games. □
Game 2.0:
1.
p p p , G , G T , e ^ , g , 1 i n , ( x i , y i ) R Z p * , sk i = ( x i , y i ), pk i = ( g x i , g y i ), s 1 , s 2 R Z p * , gsk = (s 1 , s 2 ), gpk i = (g x i s 1 , g s 2 ), gtd = s 2 . H 1 , H 2 , H 3 , and H 4 are random oracles. H-query. The challenger prepares four hash tables, to record and respond to queries:
O H 1 query v 1 : given a v 1 G , the challenger randomly selects u R Z p * , computes h 1 = g u G , saves ( v 1 , u , h 1 ) into T 1 , and sends h 1 to A 2 ;
O H 2 query v 1 : given a v 1 G , the challenger chooses a compatible random value h 2 , and saves ( v 1 , h 2 ) into T 2 for O H 2 ;
O H 3 query v 1 : given a v 1 G , the challenger chooses a compatible value h 3 uniformly from the set { 0 , 1 } l 1 + l 2 that is returned, and saves ( v 1 , h 3 ) into T 3 , for O H 3 ;
O H 4 query v 1 : given a v 1 G , the challenger chooses a compatible value h 4 uniformly from the set { 0 , 1 } λ that is returned, and saves ( v 1 , h 4 ) into T 4 , for O H 4 ;
2.
( M 0 , M 1 ) A 2 O H 1 , O H 2 , O H 3 , O H 4 , O K e y , O E n c , O D e c ( P P , { p k i , g p k i } i = 1 n , g t d , i , j ) , where the oracles are simulated as follows:
O E n c query i , j , M : input two indexes, i, j, and a plaintext M; the challenger runs E n c algorithm, and returns C i , j = E n c ( g p k i , s k i , p k j , M );
O D e c query i , j , C i , j : input two indexes, i, j, and a ciphertext, C i , j ; the challenger runs a D e c algorithm, and returns M = D e c ( g p k i , s k j , C i , j ).
3.
b R { 0 , 1 } , ζ 1 , ζ 2 R Z p * , C ^ i * , j * = ( C ^ 1 , C ^ 2 , C ^ 3 , C ^ 4 , C ^ 5 ) computes:
C ^ 1 = g x i * y i * s 1 ζ 1 , C ^ 2 = H 1 ( M b ) x i * y i * ζ 1 · H 2 ( g s 2 ζ 2 ) , C ^ 3 = g ζ 2 , C ^ 4 = H 3 ( g x j * ζ 2 ) M b g ζ 1 , C ^ 5 = H 4 ( C ^ 1 | | C ^ 2 | | C ^ 3 | | C ^ 4 | | M b | | g ζ 1 ) .
4.
b A 2 O H 1 , O H 2 , O H 3 , O H 4 , O K e y , O E n c , O D e c ( C ^ i * , j * ) . The constraints are that j * cannot appear in O K e y , and ( i * , j * , C ^ i * , j * ) cannot appear in O D e c .
Let S 2.0 denote the event b = b in Game 2.0. Thus, the advantage of A 2 is as follows:
Adv A 2 IND - CCA ( q H 1 , q H 2 , q H 3 , q H 4 , q K e y , q E n c , q D e c ) = | P r [ S 2.0 ] 1 / 2 |
Game 2.1: In this game, the performance of challenger is the same as in Game 2.0, except for the following:
1.
O E n c query i , j , M : the challenger chooses two random values, ζ 1 , ζ 2 R Z p * , and returns a ciphertext, C i , j , then computes
C 1 = g x i y i s 1 ζ 1 , C 3 = g ζ 2 .
It executes a query on O H 1 with input M to return h 1 , a query on O H 2 with input g s 2 ζ 2 to return h 2 , and a query on O H 3 with input g x j ζ 2 to return h 3 ; then, it computes
C 2 = h 1 x i y i ζ 1 · h 2 , C 4 = h 3 ( M | | g ζ 1 ) ,
and, finally, executes a query on O H 4 , with input ( C 1 | | C 2 | | C 3 | | C 4 | | M | | g ζ 1 ) to return h 4 , then sets: C 5 = h 4 .
The challenger saves ( v 1 , h 1 ), ( v 1 , h 2 ), ( v 1 , h 3 ), ( v 1 , h 4 ) to T 1 , T 2 , T 3 , T 4 , and returns C i , j to A 2 .
2.
b R { 0 , 1 } , ζ 1 , ζ 2 R Z p * , W * R { 0 , 1 } l 1 + l 2 , C ^ i * , j * = ( C ^ 1 , C ^ 2 , C ^ 3 , C ^ 4 , C ^ 5 ) computes:
C ^ 1 = g x i * y i * s 1 ζ 1 , C ^ 2 = H 1 ( M ) x i * y i * ζ 1 · H 2 ( g s 2 ζ 2 ) , C ^ 3 = g ζ 2 , C ^ 4 = W * M b g ζ 1 , C ^ 5 = H 4 ( C ^ 1 | | C ^ 2 | | C ^ 3 | | C ^ 4 | | M b | | g ζ 1 ) .
Finally, the tuple ( g x j * ζ 2 , W * ) is saved into tables, T 3 , for O H 3 .
3.
b A 2 O H 1 , O H 2 , O H 3 , O H 4 , O K e y , O E n c , O D e c ( C ^ i * , j * ) . The constraints are that j * cannot appear in O K e y , and ( i * , j * , C ^ i * , j * ) cannot appear in O D e c .
  • Let S 1.1 denote the event b = b in Game 2.1. The idealness of the random oracle, Game 2.1, is the same as Game 1.0, and we have
P r [ S 2.1 ] = P r [ S 2.0 ] .
  • Game 2.2: in this game, the performance of the challenger is the same as in Game 2.1, except for the following:
1.
O H 3 query v 1 : same as that in Game 2.1, except that if A 2 asks ( C ^ 3 ) x j * , we denote this event by E 1 .
2.
O D e c q u e r y i , j , C i , j : same as that in Game 2.1, except that if A 2 asks the decryption of ( C ^ 1 , C ^ 2 , C ^ 3 , C ^ 4 , C ^ 5 ) after receiving the challenge ciphertext C ^ i * , j * , where C ^ 4 C ^ 4 , the challenger sends ⊥ to A 2 .
3.
b R { 0 , 1 } , ζ 1 , ζ 2 R Z p * , W 2.1 * R { 0 , 1 } l 1 + l 2 , C ^ i * , j * = ( C ^ 1 , C ^ 2 , C ^ 3 , C ^ 4 , C ^ 5 ) , defined as follows:
C ^ 1 = g x i * y i * s 1 ζ 1 , C ^ 2 = H 1 ( M ) x i * y i * ζ 1 · H 2 ( g s 2 ζ 2 ) , C ^ 3 = g ζ 2 , C ^ 4 = W 2.1 * , C ^ 5 = H 4 ( C ^ 1 | | C ^ 2 | | C ^ 3 | | C ^ 4 | | M b | | g ζ 1 ) .
Finally, the tuple ( g x j * ζ 2 , W 2.1 * ( M b | | g ζ 1 ) is saved into tables T 3 .
Let S 2.2 denote the event that b = b in Game 2.2. The challenge ciphertext generated in Game 2.1 is identically distributed to that in Game 2.2, as C ^ 4 is a random value in both Game 2.1 and Game 2.2; therefore, if event E 1 does not happen, Game 1.2 is equal to Game 2.1, and we have
Pr E 1 Adv A 2 CDH + q D / 2 l 1 + l 2 .
Game 2.3: In this game, the performance of the challenger is the same as in Game 2.2, except for the following:
1.
b R { 0 , 1 } , ζ 1 , ζ 2 R Z p * , W 3.1 * R { 0 , 1 } l 1 + l 2 , W 3.2 * R G , C ^ i * , j * = ( C ^ 1 , C ^ 2 , C ^ 3 , C ^ 4 , C ^ 5 ) , defined as follows:
C ^ 1 = g x i * y i * s 1 ζ 1 , C ^ 2 = H 1 ( M ) x i * y i * ζ 1 · W 3.2 * , C ^ 3 = g ζ 2 , C ^ 4 = W 3.1 * , C ^ 5 = H 4 ( C ^ 1 | | C ^ 2 | | C ^ 3 | | C ^ 4 | | M b | | g ζ 1 ) .
Finally, the tuple ( g x j * ζ 2 , W 3.1 * ( M b | | g r 1 ) ) , ( g s 2 ζ 2 , W 3.2 * ) is saved into table T 3 , T 2 .
Let S 2.3 denote the event b = b in Game 2.3. Given the idealness of the random oracle, Game 2.3 is the same as Game 2.2, and we have
P r [ S 2.3 ] = P r [ S 2.2 ] .
Game 2.4: In this game, the performance of the challenger is the same as in Game 2.3, except for the following:
1.
O H 2 query v 1 : same as that in Game 2.3, except that if A 2 asks ( C ^ 3 ) s 2 , we denote this event by E 3 ;
2.
O D e c query i , j , C i , j : same as that in Game 2.3, except that if A 2 asks the decryption of ( C ^ 1 , C ^ 2 , C ^ 3 , C ^ 4 , C ^ 5 ) after receiving the challenge ciphertext C ^ i * , j * , where C ^ 2 C ^ 2 and C ^ 4 C ^ 4 , the challenger sends ⊥ to A 2 ;
3.
b R { 0 , 1 } , ζ 1 , ζ 2 R Z p * , W 4.1 * R { 0 , 1 } l 1 + l 2 , W 4.2 * R G , C ^ i * , j * = ( C ^ 1 , C ^ 2 , C ^ 3 , C ^ 4 , C ^ 5 ) , defined as follows:
C ^ 1 = g x i * y i * s 1 ζ 1 , C ^ 2 = W 4.2 * , C ^ 3 = g ζ 2 , C ^ 4 = W 4.1 * , C ^ 5 = H 4 ( C ^ 1 | | C ^ 2 | | C ^ 3 | | C ^ 4 | | M b | | g ζ 1 ) .
Finally, the tuple ( g x j * ζ 2 , W 4.1 * ( M b | | g ζ 1 ) ) , ( g s 2 ζ 2 , W 4.2 * / H 1 ( M b ) x i * y i * ζ 1 ) is saved to table T 3 , T 2 .
Let S 2.4 denote the event that b = b in Game 2.4. The challenge ciphertext generated in Game 2.3 is equally distributed to that in Game 2.4, as C 4 * is a random value in both Game 2.3 and Game 2.4; therefore, if event E 3 does not happen, Game 2.4 is the same as Game 2.3, and we have
Pr S 2.4 Pr S 2.3 Pr E 3 .
Next, we show that the event (8) holds.
Lemma 2.
Event  E 3  happens in Game 2.4 with negligible probability if the  CDH  problem is intractable.
Proof. 
Suppose that Pr[E 3 ] is non-negligible. We construct a PPT algorithm, B 2 , to break the CDH assumption. Given a tuple ( G , G T , p , e ^ , g , g α , g β ), it runs A 2 , and works as follows. □
1.
B 2 sets PP = ( G , G T , p , g , e ); it chooses two random values ( x i , y i ) R Z p * , and sets s k i = ( x i , y i ) , p k i = ( g x i , g y i ) , 1 i , j n ; it chooses a random value, s 1 R Z p * , and sets g s k = ( s 1 , ) , g p k i = ( g x i s 1 , g α ) , 1 i , j n , and gtd = ⊤. H 1 , H 2 , H 3 , H 4 are four random oracles.
H-query. B 2 prepares four hash tables to record and respond to queries, where all the hash tables are initialized to empty:
O H 1 query v 1 : same as that in Game 2.3;
O H 2 query v 1 : same as that in Game 2.3;
O H 4 query v 1 : same as that in Game 2.3;
O H 3 query v 1 : same as that in Game 2.3, except that A 2 asks ( C ^ 3 ) s 2 = g α β , and we denote this event by E 3 .
2.
state A 2 O H 1 , O H 2 , O H 3 , O H 4 , O K e y , O E n c , O D e c ( P P , { p k i , g p k i } i = 1 n , i * , j * ) , where the oracles are simulated as follows, and j * cannot appear in O K e y :
O K e y query i : same as that in Game 2.3;
O E n c query i , j , M : same as that in Game 2.3;
O D e c query i , j , C i , j : same as that in Game 2.3.
3.
b R { 0 , 1 } , ζ 1 , ζ 2 R Z p * , W 4.1 * R { 0 , 1 } l 1 + l 2 , W 4.2 * R G , C ^ i * , j * = ( C ^ 1 , C ^ 2 , C ^ 3 , C ^ 4 , C ^ 5 ) , defined as follows:
C ^ 1 = g x i * y i * s 1 ζ 1 , C ^ 2 = W 4.2 * , C ^ 3 = g β , C ^ 4 = W 4.1 * , C ^ 5 = H 4 ( C ^ 1 | | C ^ 2 | | C ^ 3 | | C ^ 4 | | M b | | g ζ 1 ) .
Finally, the tuple ( ( g c ) x j * , W 4.1 * ( M b | | g ζ 1 ) ) is saved into table T 3 for O H 3 , and the tuple ( , W 4.2 * / H 1 ( M b ) x i * y i * ζ 1 ) into table T 2 for O H 2 .
4.
b A 2 O H 1 , O H 2 , O H 3 , O H 4 , O K e y , O E n c , O D e c ( C ^ i * , j * ) . The constraints are that j * cannot appear in O K e y , and ( i * , j * , C ^ i * , j * ) cannot appear in O D e c .
Indistinguishable simulation. Based on the setting of the simulation, the correctness and randomness of the simulation hold, and we have the following scenarios:
  • C 3 α has been queried to O H 3 before decryption query is asked: in this case, C 4 is uniquely determined after C 3 α is queried to O H 3 ; then, the decryption oracle is perfectly simulated.
  • C 3 α has never been queried to O H 3 when the decryption query is asked: in this case, ⊥ is returned by the decryption oracle if the simulation fails. The idealness of the random oracle happens with probability 1 / p .
E 4 denotes the event that a valid ciphertext is refused in the simulation: then we have Pr E 4 q D / p , which is negligible, so that B 2 executes the decryption simulation correctly, except with negligible probability. The simulation is indistinguishable from Game 2.4.
Probability of successful simulation. If the simulated game is not aborted, then the probability of successful simulation is 1.
Analysis. As A 2 queries ( C ^ 3 ) α to O H 2 with probability Pr E 3 , then B 2 is able to solve the CDH problem with probability Pr E 3 . We have Pr E 3 = Adv A CDH . In addition, if E 2 does not occur, the simulated game is indistinguishable from Game 2.4. We have Pr E 3 ¬ E 4 = Pr E 3 .
Pr E 3 = Pr E 3 E 4 Pr E 4 + Pr E 3 ¬ E 4 Pr ¬ E 4 Pr E 3 ¬ E 4 Pr ¬ E 4 = Pr E 3 1 Pr E 4 Pr E 3 Pr E 4 .
Therefore, according to Adv A CDH Pr E 1 q D / 2 l 1 + l 2 , we have
Pr E 3 Adv A CDH + q D / p ,
which is negligible. This completes the proof of Lemma 2.

6. Comparison and Performance Evaluation

In this section, we compare the theoretical analysis of our scheme with four other schemes [13,16,19,20] and we analyze the performance evaluation of the scheme.

6.1. Comparison

We compare these schemes in terms of computational and storage overhead, and the data details are shown as follows. The computational cost of an exponentiation and a bilinear pairing operation are denoted by Exp and P, respectively. We show the efficiency comparison and security comparison in Table 1.
According to Table 1, the computation cost in our scheme for Enc is 5Exp. Compared with [16,19,20], we have less computation cost. In the Dec phase, although the computation is slightly higher than other schemes, we need to do an integrity check on the message, when decrypting, to guarantee the security of the user data. Finally, the computation cost of the Test in our scheme is 2P + 4Exp lower than the scheme in [16]. In addition, regarding security, as with [16,19,20], our scheme also satisfies OW-CCA and IND-CCA against the adversary.

6.2. Performance Evaluation

To obtain the running time of the experiment in our scheme, we set up the following environment. The host operating system was Windows 10 for 64 bit, with an Intel(R) Core(TM) i7-10875H [email protected] GHz CPU and 16 GB RAM. Java 1.8 was the execution language. The public parameter data for the experiment was obtained from Charm. The cycle group G was based on a non-supersingular elliptic curve over a finite field with a 512-bit length prime number.
The experiment focused on evaluating the computing overheads, including encryption time, decryption time, and equality test time.
Figure 3 shows the relationship between the number of the encrypted file and the encryption time. Although it seemed to take longer to encrypt, we could use the offline encryption method, where some encryption steps that were not related could be computed beforehand. In this way, we could reduce the amount of time spent online. For this simulation experiment, we performed a rigorous linear fit to the data, and derived a value of linear K, K = 14.736.
Figure 4 shows the relationship between the size of the decryption file and the decryption time. As the recipient has to check the integrity of the encrypted data after retrieving it from the cloud server, to ensure that it has not been tampered with, it is inevitably more time-consuming than other solutions, but at the same time, we ensure the integrity of the user’s data, so that the medical staff can make an accurate diagnosis. For this simulation experiment, we performed a rigorous linear fit to the data, and derived a value of linear K, K = 4.04.
Figure 5 shows that the length of time for testing increased with the number of files. For this simulation experiment, we performed a rigorous linear fit to the data, and derived a value of linear K, K = 11.164.

7. Conclusions

In this paper, we propose the scheme named G-PKEET, to categorize patients’ EHRs without privacy leakage, and to prove the computational and performance efficiency of this scheme. Our scheme could apply to group scenarios: only a group trapdoor needs to be generated and authorized to the cloud server for the equality test. We undertook a security analysis. We proved that our scheme can resist a guessing attack not only from the storage server but also from the group administrator. A performance evaluation demonstrated our scheme’s lower overheads compared to other, related schemes. This paper combines G-PKEET with Smart Healthcare; in real life, we can also apply this technology to private set intersection (PSI), firewall filtering, mail system filtering, encrypted databases, etc.
Finally, users need to pay attention to the fact that the number of comparisons grew with the number of ciphertexts in the two-comparison test, and that it took a lot of time to compare a large number of ciphertexts. In the future, we will study how to use efficient batch equality testing to improve testing efficiency.

Author Contributions

Data curation, S.C.; Writing—original draft, Z.Z.; Writing—review & editing, S.Z.; Visualization, F.H. All authors have read and agreed to the published version of the manuscript.

Funding

This work was supported by Chengdu Science and Technology Program under Grants 2021-YF08-00151-GX, and by Sichuan Science and Technology Program under Grants 2020 JDTD0007.

Data Availability Statement

Not applicable.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Yu, Y.; Li, Y.; Tian, J. Blockchain-based solutions to security and privacy issues in the Internet of Things. IEEE Wirel. Commun. 2019, 25, 12–18. [Google Scholar] [CrossRef]
  2. Amato, A.; Coronato, A. An IoT-aware architecture for smart healthcare coaching systems. In Proceedings of the 2017 IEEE 31st International Conference on Advanced Information Networking and Applications (AINA), Taipei, Taiwan, 27–29 March 2017; pp. 1027–1034. [Google Scholar]
  3. Demirkan, H. A smart healthcare systems framework. IT Prof. 2013, 15, 38–45. [Google Scholar] [CrossRef]
  4. Rao, Y.S. A secure and efficient ciphertext-policy attribute-based signcryption for personal health records sharing in cloud computing. Future Gener. Comput. Syst. 2017, 67, 133–151. [Google Scholar] [CrossRef]
  5. Au, M.H.; Yuen, T.H.; Liu, J.K. A general framework for secure sharing of personal health records in cloud system. J. Comput. Syst. Sci. 2017, 90, 46–62. [Google Scholar] [CrossRef]
  6. Bösch, C.; Hartel, P.; Jonker, W. A survey of provably secure searchable encryption. ACM Comput. Surv. (CSUR) 2014, 47, 1–51. [Google Scholar] [CrossRef]
  7. Xhafa, L.; Li, J.; Zhao, G.; Li, J.; Chen, X.; Wong, D. Designing cloud-based electronic health record system with attribute-based encryption. Multimed. Tools Appl. 2015, 74, 3441–3458. [Google Scholar] [CrossRef]
  8. Boneh, D.; Crescenzo, G.D.; Ostrovsky, R.; Persiano, G. Public key encryption with keyword search. In International Conference on the Theory and Applications of Cryptographic Techniques; Springer: New York, NY, USA, 2004; pp. 506–522. [Google Scholar]
  9. Yau, W.C.; Heng, S.H.; Goi, B. Off-Line keyword guessing attacks on recent public key encryption with keyword search schemes. In International Conference on Autonomic and Trusted Computing; Springer: New York, NY, USA, 2008. [Google Scholar]
  10. Ma, S.; Huang, Q. A new framework of IND-CCA secure public key encryption with keyword search. Comput. J. 2020, 63, 1849–1858. [Google Scholar] [CrossRef]
  11. Khader, D. Public key encryption with keyword search based on K-resilient IBE. In Proceedings of the International Conference on Computational Science and Its Applications (ICCSA 2006), Glasgow, UK, 8–11 May 2006; pp. 298–308. [Google Scholar]
  12. Yang, G.M.; Tan, C.H.; Huang., Q.; Wong, D.S. Probabilistic public key encryption with equality test. In Proceedings of the Topics in Cryptology-CT-RSA 2010: The Cryptographers’ Track at the RSA Conference 2010, San Francisco, CA, USA, 1–5 March 2010; Springer: Berlin/Heidelberg, Germany; pp. 119–131. [Google Scholar]
  13. Tang, Q. Towards public key encryption scheme supporting equality test with fine-grained authorization. In Australasian Conference on Information Security and Privacy; Springer: New York, NY, USA, 2011; pp. 389–406. [Google Scholar]
  14. Ling, Y.H.; Ma, S.; Huang, Q.; Li, X.; Ling, Y.Z. Group public key encryption with equality test against offline message recovery attack. Inf. Sci. 2020, 510, 16–32. [Google Scholar] [CrossRef]
  15. Tang, Q. Public key encryption supporting plaintext equality test and user-specified authorization. Secur. Commun. Netw. 2012, 5, 1351–1362. [Google Scholar] [CrossRef]
  16. Ma, S.; Zhang, M.; Huang, Q.; Yang, B. Public key encryption with delegated equality test in a multi-user setting. Comput. J. 2015, 58, 986–1002. [Google Scholar] [CrossRef] [Green Version]
  17. Huang, K.; Tso, R.; Chen, Y.C.; Rahman, S.; Alomgren, A.; Alamri, A. PKE-AET: Public Key Encryption with Authorized Equality Test. Comput. J. 2015, 58, 2686–2697. [Google Scholar] [CrossRef]
  18. Jae, H.S. Short Signatures from Diffie-Hellman, revisited: Sublinear Public Key, CMA security, and tighter reduction. Cryptol. ePrint Arch. 2014. Available online: https://eprint.iacr.org/2014/138 (accessed on 1 December 2022).
  19. Ma, S.; Huang, Q.; Zhang, M.; Yang, B. Efficient public key encryption with equality test supporting flexible authorization. IEEE Trans. Inf. Forensics Secur. 2014, 10, 458–470. [Google Scholar] [CrossRef]
  20. Lin, H.; Zhao, F.; Gao, F.; Susilo, W.; Shi, Y. Lightweight public key encryption with equality test supporting partial authorization in cloud storage. Comput. J. 2020, 64, 1226–1238. [Google Scholar] [CrossRef]
Figure 1. A typical G-PKEET application scenario.
Figure 1. A typical G-PKEET application scenario.
Mathematics 11 00754 g001
Figure 2. G-PKEET system model.
Figure 2. G-PKEET system model.
Mathematics 11 00754 g002
Figure 3. Encryption time according to messages.
Figure 3. Encryption time according to messages.
Mathematics 11 00754 g003
Figure 4. Decryption time according to messages.
Figure 4. Decryption time according to messages.
Mathematics 11 00754 g004
Figure 5. Test time according to messages.
Figure 5. Test time according to messages.
Mathematics 11 00754 g005
Table 1. Comparison of Computational Cost.
Table 1. Comparison of Computational Cost.
SchemesEncDecTestSecurity
[13]5Exp3Exp2POW-CCA
[19]6Exp5Exp2P + 2ExpOW/IND-CCA
[16]1P + 5Exp1P + 4Exp4P + 2ExpOW/IND-CCA
[20]6Exp5Exp2P + (6n − 2)ExpOW/IND-CCA
Ours5Exp1P + 2Exp2P + 4ExpOW/IND-CCA
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Zhao, Z.; Zeng, S.; Cheng, S.; Hao, F. Efficient and Privacy-Preserving Categorization for Encrypted EMR. Mathematics 2023, 11, 754. https://doi.org/10.3390/math11030754

AMA Style

Zhao Z, Zeng S, Cheng S, Hao F. Efficient and Privacy-Preserving Categorization for Encrypted EMR. Mathematics. 2023; 11(3):754. https://doi.org/10.3390/math11030754

Chicago/Turabian Style

Zhao, Zhiliang, Shengke Zeng, Shuai Cheng, and Fei Hao. 2023. "Efficient and Privacy-Preserving Categorization for Encrypted EMR" Mathematics 11, no. 3: 754. https://doi.org/10.3390/math11030754

APA Style

Zhao, Z., Zeng, S., Cheng, S., & Hao, F. (2023). Efficient and Privacy-Preserving Categorization for Encrypted EMR. Mathematics, 11(3), 754. https://doi.org/10.3390/math11030754

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop