Next Article in Journal
Design and Demonstration of a Flying-Squirrel-Inspired Jumping Robot with Two Modes
Previous Article in Journal
High-Precision and Four-Dimensional Tracking System with Dual Receivers of Pipeline Inspection Gauge
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Revisiting NIZK-Based Technique for Chosen-Ciphertext Security: Security Analysis and Corrected Proofs

1
Graduate School of Information Security, Korea University, Seoul 02841, Korea
2
Department of Computer Science, Sangmyung University, Seoul 03016, Korea
*
Author to whom correspondence should be addressed.
Appl. Sci. 2021, 11(8), 3367; https://doi.org/10.3390/app11083367
Submission received: 11 March 2021 / Revised: 2 April 2021 / Accepted: 5 April 2021 / Published: 8 April 2021

Abstract

:
Non-interactive zero-knowledge (NIZK) proofs for chosen-ciphertext security are generally considered to give an impractical construction. An interesting recent work by Seo, Abdalla, Lee, and Park (Information Sciences, July 2019) proposed an efficient semi-generic conversion method for achieving chosen-ciphertext security based on NIZK proofs in the random oracle model. The recent work by Seo et al. demonstrated that the semi-generic conversion method transforms a one-way (OW)-secure key encapsulation mechanism (KEM) into a chosen-ciphertext secure KEM while preserving tight security reduction. This paper shows that the security analysis of the semi-generic conversion method has a flaw, which comes from the OW security condition of the underlying KEM. Without changing the conversion method, this paper presents a revised security proof under the changed conditions that (1) the underlying KEM must be chosen-plaintext secure in terms of indistinguishability and (2) an NIZK proof derived from the underlying KEM via the Fiat–Shamir transform must have the properties of zero-knowledge and simulation soundness. This work extended the security proof strategy to the case of identity-based KEM (IBKEM) and also revise the security proof for IBKEM of previous method by Seo et al. Finally, this work gives a corrected security proof by applying the new proofs to several existing (IB)KEMs.

1. Introduction

Non-interactive zero-knowledge (NIZK) proofs [1,2,3] are considered as some of the most fundamental and versatile cryptographic primitives [4,5]. One usage of NIZK is to construct public-key encryption schemes secure against chosen-ciphertext attacks (denoted as “CCA-security”) based on the Naor–Yung double encryption paradigm [6,7,8]. As building blocks, this approach uses any public-key encryption scheme secure against chosen-plaintext attacks (denoted as “CPA security”) and any NIZK proof system for all of NP [9,10]. However, the Naor–Yung paradigm has been perceived as a feasibility result for the existence of CCA-secure encryption schemes based on general cryptographic assumptions, leading to impractical constructions [11].
Interestingly, a recent work by Seo et al. [12] proposed a new semi-generic approach for constructing a CCA-secure (and practical) key encapsulation mechanism (KEM) based on NIZK proof systems derived from the Fiat–Shamir (FS) transform [13]. As building blocks, their technique uses a one-way (OW)-secure KEM and an FS-derived NIZK proof system to prove the relationship (such as equality or linearity) among discrete logarithms. In particular, the term “semi-generic” comes from the fact that the underlying OW-secure KEM should satisfy an additional property called “NIZK-compatibility”, meaning that the pair {ciphertext, key} can be an NIZK statement when randomness for KEM is used as a witness for NIZK. Seo et al. [12] demonstrated that their approach can transform an OW-secure (and NIZK-compatible) KEM into a CCA-secure KEM in the random oracle model without security loss.

1.1. Organization

In Section 1.2, we briefly review the semi-generic conversion method from Seo et al. and explain the flaw in the security proof of the method. In Section 1.3, we present the concept of corrected proofs. In Section 2, we present the details of the interactive proof systems for proving the equality and linearity of discrete logarithms, and we describe how FS-derived NIZK proof systems can achieve the properties of zero-knowledge and simulation soundness. In Section 3, we introduced the conversion method for CCA-secure KEM and present our corrected proofs using the hybrid argument of indistinguishability-based framework. As in [12], we can extend our strategy to the case of identity-based KEM (IBKEM); thus, a newly corrected security proof for the conversion of IBKEM is given in Section 4. In Section 5, we apply our security result to several (IB)KEMs used in [12] and provide new corrected theorems for each scheme. Finally, we conclude this paper in Section 6.

1.2. Flaw in Security Proof in Previous Research Literature

The new conversion in [12] works correctly, but we have identified a flaw in its security analysis. For easier explanation, consider the ElGamal KEM as an underlying scheme. Let G be a group of prime order p, and let ( g w , h w ) be a pair {ciphertext, key} for group elements g , h G , and a random w Z p . It is easy to see that the pair can be an NIZK statement stmt = ( g w , h w ) for equality of discrete logarithms when the randomness w is the witness (i.e., NIZK-compatible). Let com be a commitment ( g r , h r ) for a random r Z p . The Fiat–Shamir transform [13] gives the NIZK proof π = ( c , s ) , where s = r + c w Z p and c = H 1 ( stmt , com ) . Assuming that the hash function H 1 is modeled as a random oracle, the NIZK proof system is proven to be honest verifier zero-knowledge and sound. The concept behind the transformation proposed in [12] is to see the original ElGamal KEM as a designated verifier proof system by setting h = g x for a secret x (only known to the verifier) so that the element A 1 = g w is sufficient for the designated verifier NIZK statement. In the transformed variant of the ElGamal KEM, the resulting ciphertext consists of ( A 1 , π = ( c , s ) ) , and the decapsulation algorithm (as a designated verifier) first recovers A 2 = h w by computing ( g w ) x and then computes com = ( g s A 1 c , h s A 2 c ) along with stmt = ( g w , h w ) and π . It also verifies that π is a valid proof for the recovered statement stmt . If π is valid, the decapsulation algorithm computes the final KEM key as key = H 2 ( stmt , com , π ) for another hash function H 2 .
Seo et al. [12] demonstrated that the above variant of the ElGamal KEM is tightly CCA-secure based on the computational Diffie–Hellman (CDH) assumption. From a theoretical viewpoint, the first challenge in their security analysis is how to handle decapsulation queries issued by an adversary without knowing the secret key x. Let CT = ( A 1 , π = ( c , s ) ) be a queried ciphertext, and let H 1 , H 2 be modeled as random oracles. A reduction algorithm (simulator) finds a tuple in the H 1 query table such that c = H 1 ( A 1 , , , ) , say c = H 1 ( A 1 , A 2 , B 1 , B 2 ) , and checks that π is the valid NIZK proof for the statement ( A 1 , A 2 ) and the commitment ( B 1 , B 2 ) . If so, the simulator outputs the key key = H 2 ( A 1 , A 2 , B 1 , B 2 , π ) from the H 2 query table. The decapsulation works correctly because of the soundness of the underlying NIZK proof system, meaning that the adversary is forced to generate the proof π for the well-formed ciphertext such that log g A 1 = log h A 2 . The second challenge in their security analysis is to find the correct solution h a to a given CDH instance ( g , g a , h ) without security loss. The strategy in [12] is as follows: by using the zero-knowledge property, the simulator first generates a simulated proof π * = ( c * , s * ) with respect to the element A 1 * = g a for some unknown a Z p and implicitly sets c * = H 1 ( A 1 * , , B 1 * , ) and key * = H 2 ( A 1 * , , B 1 * , , π * ) , where “∘” and “⋄” indicate that the simulator does not know the entries. After the challenge ciphertext CT * = ( A 1 * , π * = ( c * , s * ) ) and the challenge key key * are given to the adversary, the simulator waits for the adversary to query the hash inputs ( A 1 * , , B 1 * , , π * ) for H 2 . Seo et al.’s assertion [12] is that because of the soundness of the NIZK proof system, there exists one query ( A 1 * , A 2 , B 1 * , B 2 , π * ) (with overwhelming probability) such that π * is valid among the queried inputs { ( A 1 * , , B 1 * , , π * ) } , in which case the entry A 2 is the solution to the given CDH instance. Thus, if their assertion was true, the adversary who succeeds in breaking the CCA-security of the variant must make the query, including the CDH solution, to H 2 ; otherwise, the adversary has no information on the challenge key.
However, we show that their assertion is not true for the following reasons. Let CT * = ( A 1 * , π * = ( c * , s * ) ) and key * be the challenge ciphertext and key, respectively. First, the adversary generates the value B 1 * by computing g s * ( A 1 * ) c * , which is the same as the value that the simulator calculated. Next, the adversary can generate the values A 2 and B 2 as follows: pick a random R Z p , and set A 2 = h R and B 2 = h s * ( A 2 ) c * . Finally, the adversary issues ( A 1 * , A 2 , B 1 * , B 2 , π * ) to the H 2 query. We can see that π * = ( c * , s * ) is valid with respect to the false statement ( A 1 * , A 2 ) and the relevant commitment ( B 1 * , B 2 ) ; furthermore, polynomially-many such simulated queries can be made after CT * and key * are given to the adversary. If the adversary issues the correct query such that A 2 = h a among the polynomially-many simulated queries, the simulator cannot specify which query relates to the correct statement ( A 1 * = g a , A 2 = h a ) associated with the CDH solution, unless it is given an oracle to solve the decisional Diffie–Hellman (DDH) problem. Moreover, the implicitly predetermined challenge key key * will be mapped to a certain wrong H 2 query input ( A 1 * , A 2 , B 1 * , B 2 , π * ) with “high” probability. Clearly, such inconsistent mapping will allow the adversary to distinguish between a real attack and a simulation.

1.3. Concept of Corrected Proofs

Our strategy to revise Seo et al.’s proofs [12] is to change the security condition of the underlying KEM from OW to CPA while keeping their conversion method intact. In our corrected proofs, the underlying KEM must be CPA-secure in terms of indistinguishability, meaning (roughly) the following: given ( CT * , K * ) as a challenge, it is infeasible to determine whether the challenge key K * was correct or false with respect to the challenge ciphertext CT * . Now, the simulator attacking the CPA security of the underlying KEM is given ( CT * , K * ) and wants to determine whether K * is correct or false using the adversary against CCA-security. Let us assume that the underlying KEM is still NIZK-compatible, as defined in [12]. Given ( CT * , K * ) , the simulator proceeds as follows: it sets the pair as the NIZK statement, stmt * = ( CT * , K * ) , and generates a simulated proof π * for stmt * using the zero-knowledge property. Then, it computes the challenge key key * = H 2 ( stmt * , com * , π * ) , where com * is the relevant commitment for stmt * . Then, it gives the challenge ciphertext ( CT * , π * ) and the challenge key key * to the adversary. If K * is the correct key corresponding to CT * , then π * is the NIZK proof for the correct statement ( CT * , K * ) . Otherwise, π * is the NIZK proof for the false statement ( CT * , K * ) . Now that the simulator knows the candidate value K * of the KEM key, it does distinguish whether K * is correct or false by checking whether ( stmt * , com * , π * ) is issued to H 2 queries. Note that K * is not given to the adversary. If K * (including stmt * ) appears in H 2 queries, it is possible to ensure (with overwhelming probability) that K * is the correct key corresponding to CT * ; otherwise, K * is a false key. Furthermore, as long as the input ( stmt * , com * , π * ) is not queried to H 2 (modeled as a random oracle), the adversary obtains no information on the challenge key key * . It follows that success in breaking the CCA-security of the transformed KEM straightforwardly leads to success in breaking the CPA security of the underlying KEM without causing security loss. When applying our proof strategy to the above variant of the ElGamal KEM, it can be proved to be tightly CCA-secure under the DDH assumption.
In our corrected proofs, decapsulation queries are handled by the simulator in the same way as in [12]. However, the NIZK property required for answering decapsulation queries is (one-time) simulation soundness (SS) rather than soundness. This is because π * can be the simulated proof for the correct or false statement ( CT * , K * ) (given to the simulator) depending on K * . Furthermore, once ( CT * , π * ) is given to the adversary as a challenge, it should be difficult for the adversary to generate a pair of a new false statement and its relevant proof that are correctly verified. In particular, a new false statement includes any modification of stmt * = ( CT * , K * ) . Unlike in Seo et al.’s proofs [12], the simulator in ours knows all hash input values regarding stmt * and com * explicitly; thus, the security flaw mentioned above does not occur. Rather, making hash queries about stmt * by the adversary could increase the probability that the simulator will succeed in breaking the CPA security of the given KEM.
To show that the underlying NIZK proof system satisfies the simulation soundness property, we use the result of Faust et al. [14], which showed that (roughly) an FS-derived NIZK proof system Π FS is simulation-sound in the random oracle model if a canonical three-round interactive proof system Π (The transcript of Π consists of {commitment, challenge, and response}.) has the properties of completeness, soundness, and unique response. In fact, along with the soundness, the unique response property gives the effect of making the resulting NIZK proof π strongly unforgeable [15] when viewing π as a (one-time) signature. As a building block, the conversion by Seo et al. [12] uses an FS-derived NIZK proof system to prove the equality or linearity of discrete logarithms, and it is easy to show that a three-round interactive proof system for equality or linearity satisfies the property of unique response as well as soundness. Thus, by adapting the result in [14], all the underlying (FS-derived) NIZK proof systems in our corrected proofs have the simulation soundness property in the random oracle model.

2. Background

2.1. Notation

λ N is the security parameter. We say that a function ν : N R is n e g l i g i b l e if for every positive polynomial poly ( · ) , there exists an integer N > 0 such that for all x > N , it holds that | ν ( x ) | < poly ( x ) 1 . Given an algorithm A, we write y A to denote that y is the output of A. If A is a probabilistic algorithm, then y $ A denotes that y is computed by A using fresh random coins. When A is a set, a $ A denotes that a is chosen uniformly over A. For n N , we write [ n ] to denote the set { 1 , , n } . The above notation follows the notation from the work in [16].

2.2. Interactive Proof System

Let L = { stmt : wit s . t . ( stmt , wit ) R L } be an NP-language. We first review a three-move public coin proof system, where a prover wants to convince a verifier that a statement stmt belongs to L using a witness wit such that ( stmt , wit ) R L . Let a prover P = ( P 0 , P 1 ) and a verifier V = ( V 0 , V 1 ) be PPT algorithms that participate in the protocol. First, as inputs, com P 0 ( stmt , wit ; ρ ) takes a statement stmt , a witness wit , and a random string ρ and then computes a commitment com and sends it to a verifier V . Then, chal $ V 0 ( stmt , com ) inputs a statement stmt and commitment com , randomly chooses a challenge chal in the challenge space, and sends it to P . Finally, as inputs, resp P 1 ( com , chal , stmt , wit ; ρ ) takes com , chal , stmt , wit , and ρ ; generates a response resp ; and sends it to V . Then, as inputs, { 0 , 1 } V 1 ( stmt , com , chal , resp ) takes stmt , com , chal , and resp , and then outputs 0 or 1. When V 1 outputs 1, the verifier V is convinced that the statement stmt belongs to L .
We now review the following properties.

2.2.1. Completeness

If stmt L , any proper execution of the protocol between P and V ends with the verifier accepting P ’s proof. That is, the following holds:
Pr [ 1 V 1 ( stmt , com , chal , resp ) : stmt L com P 0 ( stmt , wit ; ρ ) chal $ V 0 ( stmt , com ) resp P 1 ( stmt , com , chal , wit ; ρ ) ] = 1 .

2.2.2. Honest Verifier Zero-Knowledge (HVZK)

There exists an efficient algorithm S called a zero-knowledge simulator such that for any PPT distinguisher, D = ( D 0 , D 1 ) , and for any ( stmt , wit ) R L , it holds that
Pr [ 1 D 1 ( π , δ ) : ( stmt , wit , δ ) D 0 π P ( stmt , wit ; λ ) , V ( stmt ; λ ) ] Pr [ 1 D 1 ( π , δ ) : ( stmt , wit , δ ) D 0 π S ( stmt , λ ) ] ,
where π P ( stmt , wit ; λ ) , V ( stmt ; λ ) denotes the resulting transcript returned at the end of the interaction between P and V on common input stmt and private input wit .

2.2.3. Soundness

If stmt L , any PPT adversary P * = ( P 0 * , P 1 * ) is accepted only with negligible probability. That is, the following holds:
Pr [ resp P 1 * ( stmt , com , chal ; ρ ) : stmt L com P 0 * ( stmt ; ρ ) chal $ V 0 ( stmt , com ) 1 V 1 ( stmt , com , chal , resp ) ] 0 .

2.2.4. Unique Response

An interactive proof system has the unique response if for any PPT adversary A and for any security parameter λ , it holds that
Pr [ ( stmt , com , chal , resp , resp ) A ( λ ) : V ( stmt , com , chal , resp ) = V ( stmt , com , chal , resp ) = 1 resp resp ] = 0 .

2.3. Protocol for Proving the Equality of Discrete Logarithms

We review the generalized interactive protocol for proving the equality of discrete logarithms [17,18,19]. Let G 1 , , G n be groups of prime order p, and let g i G i be a generator for i [ n ] . Now, we consider the NP-language
L = { ( g 1 , , g n , A 1 , , A n ) : x Z p s . t . A i = g i x for i [ n ] } .
The discrete logarithm wit = x is a witness for a statement: stmt = ( g 1 , , g n , A 1 , , A n ) . Then, the interactive protocol ( P , V ) for proving the above language is as follows.
  • For a statement stmt = ( g 1 , , g n , A 1 , , A n ) , the prover P selects a random exponent r Z p and computes a commitment com as follows.
    com = ( B 1 , , B n ) = ( g 1 r , , g n r ) .
  • The verifier V randomly selects a random challenge chal = c Z p .
  • P computes a response resp = s = r + c d Z p .
  • Given a proof π = ( com , chal , resp ) , V checks that
    B 1 = g 1 s A 1 c , , B n = g n s A n c .
It is well known that this protocol is a non-trivial three-round public coin interactive proof system satisfying completeness, HVZK, (statistical) soundness, and unique response properties.

2.4. Protocol for Proving the Linearity of Discrete Logarithms

We review the generalized interactive protocol for proving the linearity of discrete logarithms. Let G 1 , , G n + 1 be groups of prime order p, and let g i G i be a generator for i [ n + 1 ] . Now, we consider the NP-language
L = { ( g 1 , , g n , g n + 1 , A 1 , , A n , A n + 1 ) : ( x 1 , , x n ) Z p n s . t . A i = g i x i for i [ n ] , A n + 1 = g n + 1 x 1 + + x n } .
The discrete logarithm wit = ( x 1 , , x n ) is a witness for a statement stmt = ( g 1 , , g n , g n + 1 , A 1 , , A n , A n + 1 ) . Then, the interactive protocol ( P , V ) for proving the above language is as follows.
  • For a statement stmt = ( g 1 , , g n , g n + 1 , A 1 , …, A n , A n + 1 ) , the prover P selects random exponents ( r 1 , , r n ) Z p n and computes a commitment com as follows.
    com = ( B 1 , , B n , B n + 1 ) = ( g 1 r 1 , , g n r n , g n + 1 r 1 + + r n ) .
  • The verifier V randomly selects a random challenge chal = c Z p .
  • P computes a response resp = ( s 1 , , s n ) , where s i = r i + c x i Z p for i [ n ] .
  • Given a proof π = ( com , chal , resp ) , V checks that
    B 1 = g 1 s 1 A 1 c , , B n = g n s n A n c , and B n + 1 = g n + 1 s 1 + + s n A n + 1 c .
Similarly to the equality of discrete logarithms, this protocol is also a non-trivial three-round public coin interactive proof system satisfying completeness, HVZK, (statistical) soundness, and unique response properties.

2.5. NIZK in the Random Oracle Model

We can remove the interaction between P and V by replacing the challenge chal with a hash value H ( stmt , com ) computed by the prover, where H is a hash function modeled as a random oracle. By applying the Fiat–Shamir paradigm [13], we can transform an interactive protocol ( P , V ) into a non-interactive proof system ( P H , V H ).

Syntax

Let L : = { stmt : wit such that R ( stmt , wit ) = 1 } is an NP-language defined by a binary relation R, and H is a hash function (modeled as a random oracle). A non-interactive proof system ( P H , V H ) for L consists of two algorithms. The proving algorithm π $ P H ( stmt , wit ) takes as input a statement stmt and a witness wit such that R ( stmt , wit ) = 1 and outputs a proof π . The verification algorithm V H ( stmt , π ) { 0 , 1 } takes as input a statement stmt and a proof π and outputs 1 (true) or 0 (false).
We refer here to the zero-knowledge simulator S of a non-interactive zero-knowledge proof system [14] defined in the explicitly programmable random oracle model [20]. As a stateful algorithm, the simulator S can operate in two modes: ( h i , s t ) S ( 1 , s t , q i ) deals with answering random oracle queries such that h i = H ( q i ) , while ( π , s t ) S ( 2 , s t , stmt ) simulates the proof. Note that calls to S ( 1 , ) and S ( 2 , ) share the common state s t , which is updated after each operation.
Definition 1
(Unbounded Non-Interactive Zero-Knowledge [14]). Let L be an NP-language. Let ( S 1 , S 2 ) denote the oracles such that S 1 ( q i ) returns the first output of ( h i , s t ) S ( 1 , s t , q i ) and S 2 ( stmt , wit ) returns the first output of ( π , s t ) S ( 2 , s t , stmt ) if ( stmt , wit ) R L . We say a protocol ( P H , V H ) is an NIZK proof for language L in the random oracle model if there exists a PPT simulator S such that for all PPT distinguishers D , the advantage ϵ ZK such that
ϵ ZK ( λ ) = | Pr [ 1 D H ( · ) , P H ( · ) ( λ ) ] Pr [ 1 D S 1 ( · ) , S 2 ( · ) ( λ ) ] |
is negligible, where both P and S 2 oracles outputif ( stmt , wit ) R L .
Definition 2
(Unbounded Simulation Soundness [14]). Let L be an NP-language. Consider a proof system ( P H , V H ) for L with zero-knowledge simulator S . Let ( S 1 , S 2 ) denote the oracle such that S 1 ( q i ) returns the first output of ( h i , s t ) S ( 1 , s t , q i ) and S 2 returns the first output of ( π , s t ) S ( 2 , s t , stmt ) . We say that ( P H , V H ) is simulation-sound with respect to S in the random oracle model if for all PPT adversaries A the advantage ϵ SS such that
ϵ SS ( λ ) = Pr [ ( stmt * , π * ) A S 1 ( · ) , S 2 ( · ) ( λ ) : ( stmt * , π * ) T stmt * L V S 1 ( stmt * , π * ) = 1 ]
is negligible, where T is the list of pairs ( stmt i , π i ) , i.e., (true or false) statements queried to and proofs returned by the simulator.
Theorem 1
(Fiat–Shamir NIZKs [14]). Consider a three-round HVZK interactive proof system ( P , V ) for a language L NP with completeness. Let H be a function with range equal to the space of the verifier’s coins. In the random oracle model, the proof system ( P H , V H ) derived from ( P , V ) by applying the Fiat–Shamir transform is unbounded non-interactive zero-knowledge.
Theorem 2
(Simulation Soundness of Fiat–Shamir NIZKs [14]). Consider a three-round HVZK interactive proof system ( P , V ) for a language L NP with completeness, soundness, and unique response. In the random oracle model, the proof system ( P H , V H ) derived from ( P , V ) via the Fiat–Shamir transform is simulation-sound NIZK with respect to its canonical simulator S .
By applying the above theorems to the previous interactive protocols for proving the e q u a l i t y and l i n e a r i t y of discrete logarithms, we can obtain NIZK proof systems for the equality and linearity of discrete logarithms, which both have the properties of zero-knowledge and simulation soundness. Note that the two previous interactive protocols satisfy the completeness, HVZK, (statistical) soundness, and unique response properties.
To measure the concrete bounds of the advantages ϵ ZK and ϵ SS with respect to the two interactive protocols, we follow the proofs in [14] (Theorems 1 and 2 therein). First, ϵ ZK of the NIZK systems is bounded by the probability that the “good” NIZK simulator S fails and aborts during the simulation. Note that the NIZK simulator S fails when a collision of the random oracle H happens in the process of updating the hash table T H . Because the probability that a collision happens is at most q H 2 / p , where q H is the maximum number of H queries and p is the group order including the size of the challenge space, we see that ϵ ZK q H 2 / p . Second, ϵ SS of the NIZK scheme is bounded by q H · ϵ snd + q H 2 / p , where ϵ snd denotes the bound of advantage that the adversary violates the s o u n d n e s s of the proof system ( P , V ) . The s o u n d n e s s bound ϵ snd in the two interactive protocols is statistically the same as the inverse of the size of the challenge space, 1 / p , so we see that ϵ SS ( q H + q H 2 ) / p .

3. Conversion Method for CCA-Secure KEM

3.1. KEM

3.1.1. Syntax

We follow the syntax of KEM from the work in [16]. A key encapsulation mechanism KEM = ( KEM . Setup , KEM . Encap , KEM . Decap ) consists of three algorithms: The setup algorithm ( PK , SK ) $ KEM . Setup ( λ ) takes as input the security parameter λ and outputs a key pair ( PK , SK ) . The encapsulation algorithm ( K , CT ) $ KEM . Encap ( PK ) generates a key K and a ciphertext CT from input PK . The decapsulation algorithm K KEM . Decap ( PK , SK , CT ) takes as input a public key PK , a private key SK , and a ciphertext CT and outputs a key K .

3.1.2. Security Model of KEM

Here, we define the IND-{CPA,CCA} security of KEM by referring to [12]. First, a security experiment of IND-CPA played between a challenger C and an adversary A is described as follows.
  • Experiment Exp IND - CPA , b KEM , A ( λ )
  • ( PK , SK ) $ KEM . Setup ( λ ) ;
  • K 0 * $ K ; ( K 1 * , CT * ) $ KEM . Encap ( PK ) ;
  • b A ( PK , CT * , K b * );
  • Output b .
The advantage of A for breaking the IND-CPA security of KEM is defined as Adv IND - CPA KEM , A = | Pr 1 Exp IND - CPA , 1 KEM , A ( λ ) Pr 1 Exp IND - CPA , 0 KEM , A ( λ ) | .
Definition 3.
The KEM scheme is ( t , ϵ ) -IND-CPA-secure if for any polynomial time adversary A that runs in at most time t, we have Adv IND - CPA KEM , A < ϵ .
Now, the security experiment of IND-CCA, where the additional decapsulation oracle is given to an adversary A , is described as follows.
  • Experiment Exp IND - CCA , b KEM , A ( λ )
  • ( PK , SK ) $ KEM . Setup ( λ ) ;
  • K 0 * $ K ; ( K 1 * , CT * ) $ KEM . Encap ( PK ) ;
  • b A DecO ( · ) ( PK , CT * , K b * );
  • Output b .
The oracle DecO ( · ) takes as input CT and returns a key K KEM . Decap ( PK , SK , CT ) with the condition that A cannot query the challenge ciphertext CT * . The advantage of A for breaking the IND-CCA-security of KEM is defined as Adv IND - CCA KEM , A = | Pr 1 Exp IND - CCA , 1 KEM , A ( λ ) Pr 1 Exp IND -; CCA , 0 KEM , A ( λ ) | .
Definition 4.
The KEM scheme is ( t , ϵ , q d ) -IND-CCA-secure if for any polynomial time adversary A that runs in time at most t and issues at most q d decapsulation queries, then we have Adv IND - CCA KEM , A < ϵ .

3.2. Conversion Method

The conversion method is for a special case of KEM which is compatible with the NIZK schemes. We suppose that the KEM . Encap algorithm takes the public key pk and randomness x as inputs and returns a key k and a ciphertext ct (e.g., ( k , ct ) KEM . Encap ( pk ; x ) ) . Then, we say that a KEM is NIZK -compatible if a tuple ( pk , ct , k ) can be parsed as the statement for proving a relation for discrete logarithms using the witness x. For example, the ElGamal KEM and the linear KEM [21] are NIZK -compatible [12].
Let KEM = ( KEM . Setup , KEM . Encap , KEM . Decap ) be an IND-CPA-secure KEM and NIZK -compatible. Using the KEM and NIZK scheme, the generic construction of IND-CCA-secure KEM = ( KEM . Setup , KEM . Encap , KEM . Decap ) by Seo et al. [12] is described as follows.
KEM . Gen ( λ ): Given security parameter λ , the setup algorithm proceeds as follows.
  • Generate sk and pk by running KEM.Setup ( λ ) .
  • Choose H 1 : { 0 , 1 } * { 0 , 1 } k and H 2 : { 0 , 1 } * { 0 , 1 } for k , l Z + .
  • Output SK = sk and PK = ( H 1 , H 2 , pk ) .
KEM . Encap ( PK ): Given a public key PK = ( H 1 , H 2 , pk ) , the Encap algorithm proceeds as follows.
  • Choose the random coins x and compute ( ct , k ) KEM . Encap ( pk ; x ) .
  • Set stmt = ( pk , ct , k ) and wit = x .
  • Compute π P H 1 ( stmt , wit ).
    (a)
    Choose the random value r and compute com .
    (b)
    Compute c = H 1 ( stmt , com ) and the relevant s.
    (c)
    Output the proof π = ( s , c ) .
  • Set K H 2 ( stmt , com , π ) .
  • Output K and CT = ( ct , π ) .
KEM . Decap ( PK , SK , CT ): Given a public key PK = ( H 1 , H 2 , pk ) , a ciphertext CT = ( ct , π = ( s , c ) ) , and a private SK = sk , the Decap algorithm proceeds as follows.
  • Compute k KEM . Decap ( sk , ct ) .
  • Set stmt = ( pk , ct , k ) .
  • If 1 V H 1 ( stmt , π ), go on. Otherwise, abort.
    (a)
    Deterministically compute com .
    (b)
    If c = H 1 ( stmt , com ) , output 1. Otherwise, output 0.
  • Set K H 2 ( stmt , com , π ) and output K .

3.3. Security Proof

Theorem 3.
Let H 1 and H 2 be modeled as random oracles with ϵ CR -collision resistance. Suppose that KEM is ( t , ϵ ) -IND-CPA-secure and NIZK -compatible with ϵ ZK -zero-knowledge and ϵ SS -simulation soundness. Then, the resulting KEM is ( t , ϵ , q d ) -IND-CCA-secure, where
ϵ 2 · ( ϵ CR + ϵ ZK + q d · ϵ SS + ϵ ) + 1 / | K | , t t + O ( q d t v ) .
Here, t v is the required time for verification in NIZK , and K is the key space of KEM .
Proof. 
We consider a sequence of hybrid games Game 0, …, Game 9. Game 0 is the actual IND-CCA security game, where an adversary is given a key from the encapsulation algorithm, and Game 9 is the actual game, where an adversary is given a key randomly chosen from a key space for the encapsulation query. Let Win i denote the event that A wins in the Game i. Table 1 summarizes the games described below and the properties used to prove indistinguishability between consecutive games.
Game 0. This is the actual IND - CCA security game, which is executed with b = 1 . Thus, the challenger always returns ( CT * , K * ) = KEM . Encap ( PK ) for the challenge.
Game 1. Let Coll be the event that a collision of the hash functions H 1 or H 2 occurs. This game is identical to Game 0 except that it aborts when the event Coll occurs during the simulation. Due to the collision resistance of the hash functions, we have
| Pr [ Win 1 ] Pr [ Win 0 ] | ϵ CR .
Game 2. This game is identical to Game 1 except that the challenge ciphertext CT * = ( ct * , π * ) is computed differently. Instead of using the real proving algorithm of NIZK , the challenger generates the challenge ciphertext using the simulator of NIZK (i.e., CT * = ( ct * , π sim * ) ). Due to the non-interactive zero-knowledge property of NIZK , we have
| Pr [ Win 2 ] Pr [ Win 1 ] | ϵ ZK .
Game 3. This game is identical to Game 2 except that the decapsulation query is operated differently. In the previous game, for a given ciphertext CT = ( ct , π = ( s , c ) ) , the challenger computes k KEM . Decap ( sk , ct ) using sk and returns K = H 2 stmt = ( pk , ct , k ) , com = ( com ct , com k ) only if 1 V H 1 ( stmt , π ) holds. In this game, the challenger retrieves a tuple ( stmt , com , c ) in the H 1 hash table such that c = H 1 ( stmt = ( pk , ct , ) , com = ( com ct , ) ) . If the statement stmt , commitment com , challenge c, and response s are verified (i.e., 1 V ( stmt , com , c , s )), then it returns K = H 2 ( stmt , com , π ) .
Note that an adversary cannot distinguish Game 3 from Game 2 unless it queries a ciphertext CT ˜ = ( ct ˜ , π ˜ = ( s ˜ , c ˜ ) ) such that proof π ˜ is verified with a retrieved tuple ( stmt ˜ , com ˜ , c ˜ ) in H 1 (i.e., 1 V ( stmt ˜ , com ˜ , c ˜ , s ˜ )) and stmt ˜ is a false statement. In other words, the adversary must forge a proof π ˜ for a false statement stmt ˜ to distinguish the games. Then, by the simulation soundness of NIZK with respect to q d decapsulation queries, we have
| Pr [ Win 3 ] Pr [ Win 2 ] | q d · ϵ SS .
Game 4. This game is identical to Game 3 except that the challenge ciphertext is computed differently. In the challenge phase, the challenger randomly selects k instead of getting k * from ( ct * , k * ) KEM . Encap ( pk ; x ) . The other procedures are the same as in Game 3. Finally, it outputs ( CT * , K * ) . We can show that a distinguisher between Game 4 and Game 3 implies an adversary that breaks the IND-CPA security of the underlying KEM scheme. For the sake of simplicity, we prove this later. Then, we have
| Pr [ Win 4 ] Pr [ Win 3 ] | ϵ IND - CPA KEM .
Game 5. This game is identical to Game 4 except that it is executed with b = 0 . In other words, the challenger always returns K * $ { 0 , 1 } instead of computing K * = H 2 ( stmt = ( ct * , k ) , com = ( com sim ct * , com sim k ) , π sim * = ( s , c ) ) . The adversary cannot distinguish Game 5 from Game 4 unless it queries the tuple stmt = ( ct * , k ) , com = ( com sim ct * , com sim k ) , π sim * = ( s , c ) to the H 2 oracle. Note that k is a random key from A ’s view because ct * is independent of k . Therefore, the probability that the adversary queries the tuple to the H 2 oracle is at most 1 / | K | . Then, we have
| Pr [ Win 5 ] Pr [ Win 4 ] | 1 / | K | .
Game 6. This game is identical to Game 5 except that the challenge ciphertext is computed differently. In the challenge phase, the challenger uses back k * from ( ct * , k * ) KEM . Encap ( pk ; x ) . The other procedures are the same as in Game 5. Finally, it outputs ( CT * , K * ) . Like the case between Game 4 and Game 3, we can show that a distinguisher between Game 6 and Game 5 implies an adversary that breaks the IND-CPA security of the underlying KEM scheme. For the sake of simplicity, we prove this later. Then, we have
| Pr [ Win 6 ] Pr [ Win 5 ] | ϵ IND - CPA KEM .
Game 7. This game is identical to Game 6 except that the decapsulation query is operated differently. In this game, the challenger changes back the operation of the decapsulation query to normal. For a given ciphertext CT = ( ct , π = ( s , c ) ) , the challenger computes k KEM . Decap ( sk , ct ) using sk and returns K = H 2 ( stmt = ( pk , ct , k ) , com = ( com ct , com k ) ) only if 1 V H 1 ( stmt , π ) holds. Like the case between Game 3 and Game 2, an adversary cannot distinguish Game 7 from Game 6 unless it submits a ciphertext with a forged proof for a false statement. Then, by the simulation soundness of NIZK with respect to q d decapsulation queries, we have
| Pr [ Win 7 ] Pr [ Win 6 ] | q d · ϵ SS .
Game 8. This game is identical to Game 7 except that the challenge ciphertext is computed differently. The challenger uses the real proving algorithm for NIZK instead of using simulated proofs. Due to the zero-knowledge property of NIZK , we have
| Pr [ Win 8 ] Pr [ Win 7 ] | ϵ ZK .
Game 9. This game is identical to Game 8 but it does not abort when the event Coll occurs during the simulation. Due to the collision resistance of the hash functions, we have
| Pr [ Win 9 ] Pr [ Win 8 ] | ϵ CR .
Note that Game 9 is identical to the IND - CCA security game executed with b = 0 . Then, we have
| Pr [ Win 0 ] Pr [ Win 9 ] | 2 · ( ϵ CR + ϵ ZK + q d · ϵ SS + ϵ IND - CPA KEM ) + 1 / | K | .
Lemma 1.
If there exists a polynomial time distinguisher D between Game 3 and Game 4, then there exists a polynomial time adversary A that breaks the IND-CPA security of KEM .
Proof. 
Let D be a distinguisher between Game 3 and Game 4. Then, we show how to construct an A that wins the IND-CPA security game of KEM using D with the same advantage.
A receives a public key pk as input. Then, A runs D by simulating Game 3 with changes as follows.
  • In the setup phase, A sends PK = ( H 1 , H 2 , pk ) to D .
  • In the challenge phase, the challenge ciphertext and key ( ct * , k b * ) are given to A . Then, A sets stmt = ( pk , ct * , k b * ) and generates a simulated proof π sim * on the statement stmt . A sets K * = H 2 ( stmt , com sim , π sim * ) , where com sim is the deterministically computed commitment from ( stmt , π sim * ). A sends ( CT * = ( ct * , π sim * ) , K * ) to D .
In the guess phase, D outputs its guess. If the guess is “Game 3”, then A outputs 1; otherwise, it output 0.
Note that if b = 1 , i.e., stmt = ( pk , ct * , k b * ) is a true statement or stmt = ( pk , ct * , k b * ) R L , the above simulation is identical to Game 3 from D ’s viewpoint. Otherwise, the above simulation is identical to Game 4. Therefore, we have
| Pr [ Win 4 ] Pr [ Win 3 ] | ϵ D = ϵ IND - CPA KEM .
 □
Lemma 2.
If there exists a polynomial time distinguisher D between Games 5 and 6, then there exists a polynomial time adversary A that breaks the IND-CPA security of KEM .
Proof 1.
Let D be a distinguisher between Games 5 and 6. Then, we show how to construct an A that wins the IND-CPA security game of KEM using D with the same advantage.
A receives a public key pk as input. Then, A runs D by simulating Game 5 with changes as follows.
  • In the setup phase, A sends PK = ( H 1 , H 2 , pk ) to D .
  • In the challenge phase, the challenge ciphertext and key ( ct * , k b * ) are given to A . Then, A sets stmt = ( pk , ct * , k b * ) and generates a simulated proof π sim * on the statement stmt . Moreover, A randomly chooses K * $ { 0 , 1 } and sends ( CT * = ( ct * , π sim * ) , K * ) to D .
In the guess phase, D outputs its guess. If the guess is “Game 6”, then A outputs 1; otherwise, it output 0.
Note that if b = 1 , i.e., stmt = ( pk , ct * , k b * ) is a true statement or stmt = ( pk , ct * , k b * ) R L , the above simulation is identical to Game 6 from D ’s viewpoint. Otherwise, the above simulation is identical to Game 5. Therefore, we have
| Pr [ Win 6 ] Pr [ Win 5 ] | ϵ D = ϵ IND CPA KEM .
 □
This completes the proof of the theorem. □

4. Conversion Method for CCA-Secure IBKEM

4.1. IBKEM

4.1.1. Syntax

An ID-based key encapsulation mechanism IBKEM consists of four algorithms ( IBKEM . Setup , IBKEM . KeyGen , IBKEM . Encap , and IBKEM . Decap ). The setup algorithm ( PP , MSK ) $ IBKEM . Setup ( λ ) takes as input the security parameter λ and outputs public parameters PP and a master secret key MSK . The key generation algorithm SK ID $ IBKEM . KeyGen ( PP , MSK , ID ) takes as input public parameters PP , the master secret key MSK , and an identity ID , and outputs an identity secret key SK ID . The encapsulation algorithm ( K , CT ) $ IBKEM . Encap ( PP , ID ) takes as input PP and ID , and generates a key K and a ciphertext CT . The decapsulation algorithm K IBKEM . Decap ( PP , CT , SK ID ) takes as input public parameters PP , a ciphertext CT , and an identity secret key SK ID , and then outputs a key K .

4.1.2. Security Model of IBKEM

Here, we define the IND-ID-{CPA,CCA} security of IBKEM by referring to [12]. First, the security experiment of IND-ID-CPA played between a challenger C and an adversary A is described as follows.
  • Experiment Exp IND - ID - CPA , b IBKEM , A ( λ )
  • ( PP , MSK ) $ IBKEM . Setup ( λ ) ;
  • ID * A KeyGenO ( · ) ( PP );
  • K 0 * $ K ; ( K 1 * , CT * ) $ IBKEM . Encap ( PP , ID * ) ;
  • b A KeyGenO ( · ) ( PP , CT * , K b * );
  • Output b .
The oracle KeyGen(·) takes as input an identity ID and returns an identity secret key SK ID $ IBKEM . KeyGen ( MSK , ID ) with the condition that A is not able to query the target identity ID * . Then, the advantage of A for breaking the IND-ID-CPA security of IBKEM is defined as Adv IND - ID - CPA IBKEM , A = | Pr 1 Exp IND - ID - CPA , 1 IBKEM , A ( λ ) Pr 1 Exp IND - ID - CPA , 0 IBKEM , A ( λ ) |.
Definition 5.
The IBKEM scheme is ( t , ϵ , q i d ) -IND-ID-CPA-secure if for any polynomial time adversary A that runs in time at most t and issues at most q i d key generation queries, then we have Adv IND - ID - CPA IBKEM , A < ϵ .
Now, the security experiment of IND-ID-CCA, where the additional decapsulation oracle is given to an adversary A , is described as follows.
  • Experiment Exp IND - ID - CCA , b IBKEM , A ( λ )
  • ( PP , MSK ) $ IBKEM . Setup ( λ ) ;
  • ID * A KeyGenO ( · ) , DecO ( · ) ( PP );
  • K 0 * $ K ; ( K 1 * , CT * ) $ IBKEM . Encap ( PP , ID * ) ;
  • b A KeyGenO ( · ) , DecO ( · ) ( PP , CT * , K b * );
  • Output b .
The oracle KeyGen(·) is the same as that in the IND-ID-CPA security game. The additional oracle DecO ( · ) takes as input ID and CT and returns a key K IBKEM . Decap ( PP , CT , SK ID ) , where SK ID $ IBKEM . KeyGen ( PP , MSK , ID ) . The restriction on the oracle DecO ( · ) is that A is not able to query the pair ( ID * , CT * ) . The advantage of A for breaking the IND-ID-CCA-security of IBKEM is defined as Adv IND - ID - CCA IBKEM , A = | Pr 1 Exp IND - ID - CCA , 1 IBKEM , A ( λ ) Pr 1 Exp IND - ID - CCA , 0 IBKEM , A ( λ ) | .
Definition 6.
The IBKEM scheme is ( t , ϵ , q i d , q d ) -IND-ID-CCA-secure if for any polynomial time adversary A that runs in time at most t and issues at most q i d key generation queries and q d decapsulation queries, then we have Adv IND - ID - CCA IBKEM , A < ϵ .

4.2. Conversion Method

Similar to the previous KEM, this conversion method is for a special case of IBKEM which is compatible with the NIZK schemes. We suppose that the IBKEM . Encap algorithm takes public parameters pp , an identity ID , and random coins x as inputs and returns a key k and a ciphertext ct (e.g., ( k , ct ) IBKEM . Encap ( pp , ID ; x ) ) . Then, we say that an IBKEM scheme is NIZK -compatible if a tuple ( pp , ID , ct , k ) can be parsed as the statement for proving a relation for discrete logarithms using the witness x. For instance, the Boneh–Franklin IBKEM and Boneh–Boyen IBKEM are NIZK -compatible [12].
Let IBKEM = ( IBKEM . Setup , IBKEM . KeyGen , IBKEM . Encap , IBKEM . Decap ) be IND-ID-CPA-secure and NIZK -compatible. Using the IBKEM and NIZK scheme, the generic construction of the CCA-secure IBKEM = ( IBKEM . Setup , IBKEM . KeyGen , IBKEM . Encap , IBKEM . Decap ) by Seo et al. is described as follows.
IBKEM . Setup ( λ ): Given security parameter λ , the setup algorithm proceeds as follows.
  • Generate msk and pp by running IBKEM.Setup ( λ ) .
  • Choose H 1 : { 0 , 1 } * { 0 , 1 } k and H 2 : { 0 , 1 } * { 0 , 1 } for k , l Z + .
  • Output MSK = msk and PP = ( pp , H 1 , H 2 ) .
IBKEM . KeyGen ( PP , MSK , ID ): Given public parameters PP = ( pp , H 1 , H 2 ) , a master secret key MSK , and an identity ID , the KeyGen algorithm proceeds as follows.
  • Compute sk ID $ IBKEM . KeyGen ( pp , msk , ID ) .
  • Set SK ID = sk ID and output SK ID .
IBKEM . Encap ( PP , ID ): Given public parameters PP = ( pp , H 1 , H 2 ) and an identity ID , the Encap algorithm proceeds as follows.
  • Choose the randomness x and compute ( ct , k ) IBKEM . Encap ( pp , ID ; x ) .
  • Set stmt = ( pp , ID , ct , k ) and wit = x .
  • Run π P H 1 ( stmt , wit ).
    (a)
    Choose the randomness r and compute com .
    (b)
    Compute c = H 1 ( stmt , com ) and the relevant s.
    (c)
    Output the proof π = ( s , c ) .
  • Set K H 2 ( stmt , com , π ) .
  • Output K and CT = ( ct , π ) .
IBKEM . Decap ( PP , CT , SK ID ): Given a public key PP = ( pp , H 1 , H 2 ) , a ciphertext CT = ( ct , π = ( s , c ) ) , and a private SK ID = sk ID , the Decap algorithm proceeds as follows.
  • Compute k IBKEM . Decap ( pp , ct , sk ID ) .
  • Set stmt = ( pp , ID , ct , k ) .
  • If 1 V H 1 ( stmt , π ), go on. Otherwise, abort.
    (a)
    Deterministically compute com .
    (b)
    If c = H 1 ( stmt , com ) , output 1. Otherwise, output 0.
  • Set K H 2 ( stmt , com , π ) and output K .

4.3. Security Proof

Theorem 4.
Let H 1 and H 2 be modeled as random oracles with ϵ CR -collision resistance. Suppose that IBKEM is ( t , ϵ , q i d ) -IND-ID-CPA-secure and NIZK -compatible with ϵ ZK -zero-knowledge and ϵ SS -simulation soundness. Then, the resulting IBKEM is ( t , ϵ , q i d , q d ) -IND-ID-CCA-secure, where
ϵ 2 · ( ϵ CR + ϵ ZK + q d · ϵ SS + ϵ ) + 1 / | K | , t t + O ( q d t v ) .
Here, t v is the required time for verification in the NIZK and K is the key space of IBKEM .
Proof. 
We consider a sequence of hybrid games Game 0,…, Game 9. Game 0 is the actual IND-ID-CCA security game, where an adversary is given a key from the encapsulation algorithm for the encapsulation query, and Game 9 is the actual IND-ID-CCA game, where an adversary is given a key randomly chosen from a key space for the encapsulation query. Let Win i denote the event that A wins in Game i. Table 2 summarizes the games described below and the properties used to prove indistinguishability between consecutive games.
Game 0. This is the IND - ID - CCA security game executed with b = 1 . Thus, the challenger always returns ( CT * , K * ) = IBKEM . Encap ( PP , ID * ) for the challenge.
Game 1. Let Coll be the event that a collision of the hash functions H 1 or H 2 occurs. This game is identical to Game 0 except that it aborts when the event Coll occurs during the simulation. Due to the collision resistance of the hash functions, we have
| Pr [ Win 1 ] Pr [ Win 0 ] | ϵ CR .
Game 2. This game is identical to Game 1 except that the challenge ciphertext is computed differently. Instead of using the real proving algorithm of NIZK , the challenger generates challenge ciphertext using the simulator of NIZK (i.e., CT * = ( ct * , π sim * ) ). Due to the non-interactive zero-knowledge property of NIZK , we have
| Pr [ Win 2 ] Pr [ Win 1 ] | ϵ ZK .
Game 3. This game is identical to Game 2 except that the decapsulation query is operated differently. In the previous game, for a given pair CT = ( ct , π = ( s , c ) ) , ID , the challenger runs SK ID $ IBKEM . KeyGen ( PP , MSK , ID ) , computes K $ IBKEM . Decap ( PP , CT , SK ID ) , and returns K . In this game, if ID = ID * , the challenger retrieves a tuple ( stmt , com , c ) in the H 1 hash table such that c = H 1 stmt = ( pp , ID * , ct , ) , com = ( com ct , ) ; then, it returns K = H 2 ( stmt , com , π ) only when these statement stmt , commitment com , challenge c, and response s are verified (i.e., 1 V ( stmt , com , c , s )). Otherwise, if ID ID * , it generates SK ID using MSK and decapsulates the ciphertext CT using SK ID , as in the previous game.
Note that an adversary cannot distinguish Game 3 from Game 2 unless it queries a ciphertext CT ˜ = ( ct ˜ , π ˜ = ( s ˜ , c ˜ ) ) such that proof π ˜ is verified with a retrieved tuple ( stmt ˜ , com ˜ , c ˜ ) in H 1 (i.e., 1 V ( stmt ˜ , com ˜ , c ˜ , s ˜ )) and stmt ˜ is a false statement. In other words, the adversary must forge a proof π ˜ for a false statement stmt ˜ to distinguish the games. Then, by the simulation soundness of NIZK with respect to q d decapsulation queries, we have
| Pr [ Win 3 ] Pr [ Win 2 ] | q d · ϵ SS .
Game 4. This game is identical to Game 3 except that the challenge ciphertexts are computed differently. In the challenge phase, the challenger randomly selects k instead of computing k * IBKEM . Encap ( pp , ID * ; x ) . The other procedures are the same as in Game 3. Finally, it outputs ( CT * , K * ) . We can show that a distinguisher between Game 4 and Game 3 implies an adversary that breaks the IND-ID-CPA security of the IBKEM scheme. For the sake of simplicity, we prove this later. Then, we have
| Pr [ Win 4 ] Pr [ Win 3 ] | ϵ IND - ID - CPA IBKEM .
Game 5. This game is identical to Game 4 except that it is executed with b = 0 . In other words, the challenger always returns K * $ { 0 , 1 } instead of computing K * = H 2 ( stmt = ( pp , ID * , ct * , k ) , com = ( com sim ct * , com sim k ) , π sim * = ( s , c ) ) . A cannot distinguish Game 5 from Game 4 unless A queries the tuple ( stmt = ( pp , ID * , ct * , k ) , com = ( com sim ct * , com sim k ) , π sim * = ( s , c ) ) to the H 2 oracle. Note that k is random from A ’s viewpoint because ct * is independent of k . Therefore, the probability that A queries the tuple to the H 2 oracle is 1 / | K | . Then, we have
| Pr [ Win 5 ] Pr [ Win 4 ] | 1 / | K | .
Game 6. This game is identical to Game 5 except that the challenge ciphertexts are computed differently. In the challenge phase, the challenger uses back k * IBKEM . Encap ( pp , ID * ; x ) . The other procedures are the same as in Game 5. Finally, it outputs ( CT * , K * ) . Like the case between Game 4 and Game 3, we can show that a distinguisher between Game 6 and Game 5 implies an adversary that breaks the IND-ID-CPA security of the IBKEM scheme. For the sake of simplicity, we prove this later. Then, we have
| Pr [ Win 6 ] Pr [ Win 5 ] | ϵ IND - ID - CPA IBKEM .
Game 7. This game is identical to Game 6 except that the decapsulation query is operated differently. In this game, the challenger changes the operation of decapsulation query back to normal. For a given pair ( CT , ID ) , the challenger generates SK ID using MSK and decapsulates the ciphertext CT using SK ID . Like the case between Game 3 and Game 2, A cannot distinguish Game 7 from Game 6 unless it submits a ciphertext with a forged proof for a false statement. Then, by the simulation soundness of NIZK with respect to q d decapsulation queries, we have
| Pr [ Win 7 ] Pr [ Win 6 ] | q d · ϵ SS .
Game 8. This game is identical to Game 7 except that the challenge ciphertext is computed differently. The challenger uses the real proving algorithm for NIZK instead of using simulated proofs. Due to the zero-knowledge property of NIZK , we have
| Pr [ Win 8 ] Pr [ Win 7 ] | ϵ ZK .
Game 9. This game is identical to Game 8 but it does not abort when the event Coll occurs during the simulation. Due to the collision resistance of the hash functions, we have
| Pr [ Win 9 ] Pr [ Win 8 ] | ϵ CR .
Note that Game 9 is identical to the IND - ID - CCA security game executed with b = 0 . Then, we have
| Pr [ Win 0 ] Pr [ Win 9 ] | 2 · ( ϵ CR + ϵ ZK + q d · ϵ SS + ϵ IND - ID - CPA IBKEM ) + 1 / | K KEM | .
Lemma 3.
If there exists a polynomial time distinguisher D between Game 3 and Game 4, then there exists a polynomial time adversary A that breaks the IND-ID-CPA security of IBKEM .
Proof. 
Let D be a distinguisher between Game 3 and Game 4. Then, we show how to construct A so that it wins the IND-ID-CPA security game of IBKEM using D with the same advantage.
A receives as input a public parameter pp . Then, A runs D by simulating Game 3 with changes as follows.
  • In the setup phase, A sends PP = ( pp , H 1 , H 2 ) to D .
  • When asked a decapsulation query (CT,ID), if ID ID * , A queries ID for key generation oracle of its challenger, decapsulates CT , and returns it to D . Otherwise, if ID ID * , the procedure is the same as in Game 3.
  • In the challenge phase, the distinguisher D sends ID * to A . Then, A sends ID * to its challenger and receives the challenge ciphertext and key pair. Given the pair ( ct * , k b * ) , A sets stmt = ( pp , ID * , ct * , k b * ) and generates simulated proof π sim * on the statement stmt . Furthermore, A sets K * = H 2 ( stmt , com sim , π sim * ) , where com sim is deterministically computed commitment from ( stmt , π sim * ), and sends ( CT * = ( ct * , π sim * ) , K * ) to D .
In the guess phase, D outputs its guess. If the guess is “Game 3”, A outputs 1; otherwise, it output 0.
Note that if b = 1 , i.e., stmt = ( pp , ID * , ct * , k b * ) is a true statement or stmt = ( pp , ID * , ct * , k b * ) R L , the above simulation is identical to Game 3 from D ’s viewpoint. Otherwise, the above simulation is identical to Game 4. Therefore, we have
| Pr [ Win 4 ] Pr [ Win 3 ] | ϵ D = ϵ IND - ID - CPA IBKEM .
 □
Lemma 4.
If there exists a polynomial time distinguisher D between Game 5 and Game 6, then there exists a polynomial time adversary A that breaks the IND-ID-CPA security of IBKEM .
Proof. 
Let D be a distinguisher between Game 5 and Game 6. Then, we show how to construct A that wins the IND-ID-CPA security game of IBKEM using D with the same advantage.
A receives as input a public parameter pp . Then, A runs D by simulating Game 5 with changes as follows.
  • In the setup phase, A sends PP = ( pp , H 1 , H 2 ) to D .
  • When asked a decapsulation query (CT,ID), if ID ID * , A queries ID for key generation oracle of its challenger, decapsulates CT , and returns it to D . Otherwise, if ID ID * , the procedure is the same as in Game 3.
  • In the challenge phase, the distinguisher D sends ID * to A . Then, A sends ID * to its challenger and receives the challenge ciphertext and key pair. Given the pair ( ct * , k b * ) , A sets stmt = ( pp , ID * , ct * , k b * ) and generates simulated proof π sim * on the statement stmt . Then, A randomly chooses K * $ { 0 , 1 } and sends ( CT * = ( ct * , π sim * ) , K * ) to D .
In the guess phase, D outputs its guess. If the guess is “Game 6”, A outputs 1; otherwise, it output 0.
Note that if b = 1 , i.e., stmt = ( pp , ID * , ct * , k b * ) is a true statement or stmt = ( pp , ID * , ct * , k b * ) R L , the above simulation is identical to Game 6 from D ’s viewpoint. Otherwise, the above simulation is identical to Game 5. Therefore, we have
| Pr [ Win 6 ] Pr [ Win 5 ] | ϵ D = ϵ IND - ID - CPA IBKEM .
 □
This completes the proof of the theorem. □

5. Application

In this section, we review the applications described by Seo et al. [12].

5.1. CCA-Secure ElGamal KEM

Let GGen DDH ( λ ) be a group generator generating a group G = ( G , p , g ) , where the DDH assumption holds. In the ElGamal KEM , a public key consists of two group elements ( g , h = g x ) G 2 with corresponding private key x Z p . The encapsulation is done by computing ct = g w G and k = h w G , and decapsulation is done by computing k = ( ct ) x G . Based on this scheme, the transformed IND-CCA-secure scheme is described as follows.
KEM . Gen ( λ ): For a security parameter λ , the setup algorithm proceeds as follows.
  • Generate G = ( G , p , g ) by running GGen ( λ ) .
  • Choose a random exponent x Z p and set h = g x G .
  • Choose hash functions H 1 : { 0 , 1 } * { 0 , 1 } k Z p and H 2 : { 0 , 1 } * { 0 , 1 } .
  • Output SK = x and PK = ( G , p , g , h , H 1 , H 2 ) .
KEM . Encap ( PK ): For a public key PK = ( G , p, g, h, H 1 , H 2 ) , the Encap algorithm proceeds as follows.
  • Choose the random exponent w Z p .
  • Set stmt = ( g , h , g w , h w ) and wit = w .
  • Compute π P H 1 ( stmt , wit ).
    (a)
    Choose the random exponent r Z p and set com = ( g r , h r ) G 2 .
    (b)
    Set c = H 1 ( stmt , com ) and s = r + w c Z p .
    (c)
    Output the proof π = ( s , c ) .
  • Set K H 2 ( stmt , com , π ) .
  • Output K and CT = ( g w , π ) .
KEM . Decap ( PK , CT , SK ): For a public key PK = ( G , p, g, h, H 1 , H 2 ) , a ciphertext CT = ( ct , π = ( s , c ) ) , and a private SK = x , the Decap algorithm proceeds as follows.
  • Set k = ( ct ) x and stmt = ( g , h , ct , k ) G 4 .
  • If 1 V H 1 ( stmt , π ), go on. Otherwise, abort.
    (a)
    Set com = ( g s · ct c , h s · k c ) G 2 .
    (b)
    If c = H 1 ( stmt , com ) , output 1. Otherwise, output 0.
  • Set K H 2 ( stmt , com , π ) and output K .
Theorem 5.
Suppose that the ( t d d h , ϵ d d h ) DDH assumption holds in G , and H 1 and H 2 are random oracles. Then, the ElGamal KEM is ( t , ϵ , q d ) -IND-CCA-secure, where
ϵ ϵ d d h 2 + q H 1 2 2 k 1 + q H 2 2 2 1 + 2 q H 1 2 + 2 q d · ( q H 1 + q H 1 2 ) + 1 p , t d d h t + O ( q d t e ) .
Here, { q H 1 , q H 2 } are the numbers of { H 1 , H 2 } queries, t e is the required time for exponentiation in G , and p is the group order.
Proof. 
We can obtain the proof by applying Theorem 3 to the facts that ϵ ϵ d d h , t d d h t , ϵ ZK q H 1 2 / p , and ϵ SS ( q H 1 + q H 1 2 ) / p . Moreover, we use the fact that t v becomes similar to t e in Theorem 3. □

5.2. CCA-Secure Linear KEM

Let GGen DLIN ( λ ) be a group generator generating a group G = ( G , p ) , where the decision linear assumption [21] holds. In the linear KEM , a public key consists of three group elements ( g 1 , g 2 , h ) G 3 such that h = g 1 x 1 = g 2 x 2 with corresponding private key ( x 1 , x 2 ) Z p 2 . The encapsulation is done by computing ct = ( g 1 w 1 , g 2 w 2 ) G and k = h w 1 + w 2 G , and decapsulation is done by computing k = ( g 1 w 1 ) x 1 ( g 2 w 2 ) x 2 G . Based on this scheme, the transformed IND-CCA-secure scheme is described as follows.
KEM . Gen ( λ ): For security parameter λ , the setup algorithm proceeds as follows.
  • Generate G = ( G , p ) by running GGen DLIN ( λ ) .
  • Choose a random generator g 1 G and a random exponent x 1 Z p .
  • Choose a random exponent t and set g 2 = g 1 t G and x 2 = x 1 t 1 Z p such that g 1 x 1 = g 2 x 2 = h for some h G .
  • Choose hash functions H 1 : { 0 , 1 } * { 0 , 1 } k Z p and H 2 : { 0 , 1 } * { 0 , 1 } .
  • Output SK = ( x 1 , x 2 ) and PK = ( G , p , g 1 , g 2 , h, H 1 , H 2 ) .
KEM . Encap ( PK ): For a public key PK = ( G , p, g 1 , g 2 , h, H 1 , H 2 ) , the Encap algorithm proceeds as follows.
  • Choose random exponents w 1 , w 2 Z p .
  • Set stmt = ( g 1 , g 2 , h , g 1 w 1 , g 2 w 2 , h w 1 + w 2 ) and wit = ( w 1 , w 2 ) .
  • Compute π P H 1 ( stmt , wit ).
    (a)
    Choose random exponents r 1 , r 2 Z p .
    (b)
    Set com = ( g 1 r 1 , g 2 r 2 , h r 1 + r 2 ) G 3 .
    (c)
    Compute c = H 1 ( stmt , com ) and s 1 = r 1 + w 1 c , s 2 = r 2 + w 2 c Z p .
    (d)
    Output the proof π = ( s 1 , s 2 , c ) .
  • Set K H 2 ( stmt , com , π ) .
  • Output K and CT = ( g 1 w 1 , g 2 w 2 , π ) .
KEM . Decap ( PK , CT , SK ): For a public key PK = ( G , p, g 1 , g 2 , h, H 1 , H 2 ) , a ciphertext CT = ( ct 1 , ct 2 , π = ( s 1 , s 2 , c ) ) , and a private SK = ( x 1 , x 2 ) , the Decap algorithm proceeds as follows.
  • Compute k = ct 1 x 1 ct 2 x 2 G and set stmt = ( g 1 , g 2 , h, ct 1 , ct 2 , k ) .
  • If 1 V H 1 ( stmt , π ), go on. Otherwise, abort.
    (a)
    Set com = ( g 1 s 1 · ct 1 c , g 2 s 2 · ct 2 c , h ( s 1 + s 2 ) · k c ) G 3 .
    (b)
    If c = H 1 ( stmt , com ) , output 1. Otherwise, output 0.
  • Set K H 2 ( stmt , com , π ) and output K .
Theorem 6.
Suppose that the ( t d l i n , ϵ d l i n ) decision linear assumption holds in G , and H 1 and H 2 are random oracles. Then, the linear KEM is ( t , ϵ , q d ) -IND-CCA-secure, where
ϵ ϵ d l i n 2 + q H 1 2 2 k 1 + q H 2 2 2 1 + 2 q H 1 2 + 2 q d · ( q H 1 + q H 1 2 ) + 1 p , t d l i n t + O ( q d t e ) .
Here, { q H 1 , q H 2 } are the numbers of { H 1 , H 2 } queries, t e is the required time for exponentiation in G , and p is the group order.
Proof. 
We can obtain the proof by applying Theorem 3 to the facts that ϵ ϵ d l i n , t d l i n t , ϵ ZK q H 1 2 / p , and ϵ SS ( q H 1 + q H 1 2 ) / p . Moreover, we use the fact that t v becomes similar to t e in Theorem 3. □

5.3. CCA-Secure Boneh–Franklin IBKEM

Let GGen DBDH ( λ ) be a bilinear group generator generating a group G = ( G 1 , G 2 , G T , p , e ) , where the DBDH assumption [22,23] holds. In the Boneh–Franklin IBKEM [22], public parameters consist of two group elements ( g , h ) G 2 2 such that h = g x with corresponding master secret key x Z p . For an identity ID , the secret key is generated by computing sk ID = H ( ID ) x G 1 . The encapsulation is done by computing ct = g w G 2 and k = e ( H ( ID ) , h ) w G T , and decapsulation is done by computing k = e ( H ( ID ) x , ct ) G T . Based on this scheme, the transformed IND-CCA-secure scheme is described as follows.
IBKEM . Setup ( λ ): For security parameter λ , the setup algorithm proceeds as follows.
  • Generate G = ( G 1 , G 2 , G T , p , e ) $ GGen DBDH ( λ ) .
  • Select a random generator g G 2 .
  • Select a random exponent x Z p and compute h = g x G 2 .
  • Select hash functions H : { 0 , 1 } * G 1 , H 1 : { 0 , 1 } * { 0 , 1 } k Z p and H 2 : { 0 , 1 } * { 0 , 1 } .
  • Output MSK = x and PP = ( G , g , h , H , H 1 , H 2 ) .
IBKEM . KeyGen ( PP , MSK , ID ): For public parameters PP = ( G , g , h , H , H 1 , H 2 ) , a master secret key MSK = x , and an identity ID , the KeyGen algorithm proceeds as follows.
  • Compute SK ID = H ( ID ) x G 1 .
  • Output SK ID .
IBKEM . Encap ( PP , ID ): For public parameters PP = ( G , g, h, H, H 1 , H 2 ) and an identity ID , the Encap algorithm proceeds as follows.
  • Select a random exponent w Z p .
  • Compute Q ID = e ( H ( I D ) , h ) G T .
  • Set stmt = ( g , h , ID , g w , Q ID w ) and wit = w .
  • Compute π P H 1 ( stmt , wit ).
    (a)
    Choose the random exponent r Z p .
    (b)
    Set com = ( g r , Q ID r ) G 2 × G T .
    (c)
    Compute c = H 1 ( stmt , com ) and s = r + w c .
    (d)
    Output the proof π = ( s , c ) .
  • Set K H 2 ( stmt , com , π ) .
  • Output K and CT = ( g w , π ) .
IBKEM . Decap ( PP , CT , SK ID ): For public parameters PP = ( G , g , h , H , H 1 , H 2 ) , a ciphertext CT = ( ct , π = ( s , c ) ) , and a private SK ID , the Decap algorithm proceeds as follows.
  • Compute k = e ( SK ID , ct ) G T .
  • Set stmt = ( g , h , ID , ct , k ) .
  • If 1 V H 1 ( stmt , π ), go on. Otherwise, abort.
    (a)
    Compute Q ID = e ( H ( ID ) , h ) G T .
    (b)
    Set com = ( g s · ct c , Q ID s · k c ) G 2 × G T .
    (c)
    If c = H 1 ( stmt , com ) , output 1. Otherwise, output 0.
  • Compute K H 2 ( stmt , com , π ) and output K .
Theorem 7.
Suppose that the ( t d b d h , ϵ d b d h ) DBDH assumption holds in G , and H 1 and H 2 are random oracles. Then, the Boneh–Franklin IBKEM is ( t , ϵ , q i d , q d ) -IND-ID-CCA-secure, where
ϵ e ( 1 + q i d ) ϵ d b d h 2 + q H 1 2 2 k 1 + q H 2 2 2 1 + 2 q H 2 + 2 q H 1 2 + 2 q d · ( q H 1 + q H 1 2 ) + 1 p , t d b d h t + O ( ( q i d + q H + q d ) t e ) .
Here, { q H , q H 1 , q H 2 } are the numbers of { H , H 1 , H 2 } queries, t e is the required time for exponentiation in G , and p is the group order.
Proof. 
We can obtain the proof by applying Theorem 4 to the facts that ϵ e ( 1 + q i d ) ϵ d b d h , t d b d h t + O ( ( q i d + q H ) t e ) , ϵ ZK q H 1 2 / p , and ϵ SS ( q H 1 + q H 1 2 ) / p . Moreover, we use the fact that t v becomes similar to t e in Theorem 4. □

5.4. CCA-Secure Boneh–Boyen IBKEM

Let GGen DBDH ( λ ) be a bilinear group generator generating a group G = ( G 1 , G 2 , G T , p , e ) , where the DBDH assumption holds. In the Boneh–Boyen IBKEM [24], public parameters consist of four group elements ( g 1 , y 1 , y 2 , Λ = e ( g 1 , g 2 ) α ) G 1 3 × G T such that y 1 = g 1 x , y 2 = g 1 y with corresponding master secret key ( g 2 , x , y , α ) G 2 × Z p 3 . For an identity ID , the secret key is generated by computing sk ID = ( d 1 , d 2 ) = ( g 2 α + ( x + H ( ID ) y ) t , g 2 t ) G 2 2 . The encapsulation is done by computing ct = ( ct 1 , ct 2 ) = g 1 w , ( y 1 y 2 H ( ID ) ) w G 1 2 and k = Λ w G T , and decapsulation is done by computing k = e ( ct 1 , d 1 ) / e ( ct 2 , d 2 ) G T . Based on this scheme, the transformed IND-CCA-secure scheme is described as follows.
IBKEM . Setup ( λ ): For security parameter λ , the setup algorithm proceeds as follows.
  • Generate G = ( G 1 , G 2 , G T , p , e ) $ GGen DBDH ( λ ) .
  • Select two random generators g 1 G 1 and g 2 G 2 .
  • Select random exponents x , y , α Z p .
  • Compute y 1 = g 1 x , y 2 = g 1 y , and Λ = e ( g 1 , g 2 ) α .
  • Select hash functions H : { 0 , 1 } * Z p , H 1 : { 0 , 1 } * { 0 , 1 } k Z p and H 2 : { 0 , 1 } * { 0 , 1 } .
  • Output MSK = ( g 2 , x , y , α ) and PP = ( G , g 1 , y 1 , y 2 , Λ , H, H 1 , H 2 ) .
IBKEM . KeyGen ( PP , MSK , ID ): For public parameters PP = ( G , g 1 , y 1 , y 2 , Λ , H , H 1 , H 2 ) , a master secret key MSK = ( g 2 , x , y , α ) , and an identity ID , the KeyGen algorithm proceeds as follows.
  • Select a random exponent t Z p .
  • Compute SK ID = ( g 2 α + ( x + H ( ID ) y ) t , g 2 t ) G 2 2 .
  • Output SK ID .
IBKEM . Encap ( PP , ID ): For public parameters PP = ( G , g 1 , y 1 , y 2 , Λ , H, H 1 , H 2 ) and an identity ID , the Encap algorithm proceeds as follows.
  • Select a random exponent w Z p .
  • Compute Q ID = y 1 y 2 H ( ID ) G 1 .
  • Set stmt = ( g 1 , y 1 , y 2 , Λ , ID , g 1 w , Q ID w , Λ w ) and wit = w .
  • Compute π P H 1 ( stmt , wit ).
    (a)
    Select the random exponent r Z p .
    (b)
    Set com = ( g 1 r , Q ID r , Λ r ) G 1 2 × G T .
    (c)
    Compute c = H 1 ( stmt , com ) and s = r + w c .
    (d)
    Output the proof π = ( s , c ) .
  • Set K H 2 ( stmt , com , π ) .
  • Output K and CT = ( g 1 w , Q ID w , π ) .
IBKEM . Decap ( PP , CT , SK ID ): For public parameters PP = ( G , g 1 , y 1 , y 2 , Λ , H , H 1 , H 2 ) , a ciphertext CT = ( ct 1 , ct 2 , π = ( s , c ) ) , and a private SK ID = ( d 1 , d 2 ) , the Decap algorithm proceeds as follows.
  • Compute k = e ( ct 1 , d 1 ) / e ( ct 2 , d 2 ) G T .
  • Set stmt = ( g 1 , y 1 , y 2 , Λ , ID , ct 1 , ct 2 , k ) .
  • If 1 V H 1 ( stmt , π ), go on. Otherwise, abort.
    (a)
    Compute Q ID = y 1 y 2 H ( ID ) G 1 .
    (b)
    Set com = ( g 1 s · ct 1 c , Q ID s · ct 2 c , Λ s · k c ) G 1 2 × G T .
    (c)
    If c = H 1 ( stmt , com ) , output 1. Otherwise, output 0.
  • Set K H 2 ( stmt , com , π ) and output K .
Theorem 8.
Suppose that the ( t d b d h , ϵ d b d h ) DBDH assumption holds in G , and H 1 and H 2 are random oracles. Then, the Boneh–Boyen IBKEM is ( t , ϵ , q i d , q d ) -IND-ID-CCA-secure, where
ϵ q H · ϵ d b d h 2 + q H 1 2 2 k 1 + q H 2 2 2 1 + 2 q H 2 + 2 q H 1 2 + 2 q d · ( q H 1 + q H 1 2 ) + 1 p , t d b d h t + O ( ( q i d + q H + q d ) t e ) .
Here, { q H , q H 1 , q H 2 } are the numbers of { H , H 1 , H 2 } queries, t e is the required time for exponentiation in G , and p is the group order.
Proof. 
We can obtain the proof by applying Theorem 4 to the facts that ϵ q H · ϵ d b d h , t d b d h t + O ( q i d t e ) , ϵ ZK q H 1 2 / p , and ϵ SS ( q H 1 + q H 1 2 ) / p . Moreover, we use the fact that t v becomes similar to t e in Theorem 4. □

6. Conclusions

This paper shows the security proof of the recent work for the CCA conversion method in [12] has a flaw and proposes the corrected proof for the method. The CCA conversion method [12] from OW-CPA-KEM to IND-CCA-KEM is a tightly secure conversion and is based on the Random Oracle model. Without changing the basic conversion method, this paper proposes the new corrected security proof of the conversion method. If the security proof for the newly designed cryptography scheme is not correct, there may exist some vulnerability in the system using the scheme. Therefore, this report on the flaw of security proof of the conversion method [12] and the fixed security proof should be considered by developers that use this conversion method. With the revised CCA conversion method, one can obtain an IND-CCA-KEM scheme from an IND-CPA-KEM scheme, and an IND-ID-CCA-IBKEM scheme from an IND-ID-CPA-IBKEM scheme, respectively. This paper provides the revised applications of the CCA conversion method which are the practical encryption schemes and the ID-based encryption schemes. As a result, information systems such as software tools, image processing, and sound transmission [25,26,27] that require information security can use those applications of the CCA conversion method to enhance data privacy.
However, this work has the limitations that the new security proof assumes the stronger condition that an underlying CPA-KEM is secure in terms of IND instead of OW. As future work, we note that proving the security of the conversion method with a weaker assumption that an underlying CPA-KEM is secure in terms of OW is an interesting open question.

Author Contributions

Conceptualization, J.H.P.; Formal analysis, Y.L. and J.H.P.; methodology, Y.L. and J.H.P.; validation, D.H.L. and J.H.P.; writing—original draft preparation, Y.L. and J.H.P.; writing—review and editing, Y.L., D.H.L., and J.H.P.; supervision, J.H.P.; project administration, D.H.L.; All authors have read and agreed to the published version of the manuscript.

Funding

This work was supported by Institute for Information & Communications Technology Promotion (IITP) grant funded by the Korean Government (MSIT) (No. 2016-6-00600, A Study on Functional Encryption: Construction, Security Analysis, and Implementation.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

Not applicable.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Blum, M.; Feldman, P.; Micali, S. Non-interactive zero-knowledge and its applications. In Proceedings of the Twentieth Annual ACM Symposium on Theory of Computing (STOC’88), Chicago, IL, USA, 2–4 May 1988; ACM: New York, NY, USA, 1998; pp. 103–112. [Google Scholar]
  2. Blum, M.; Santis, A.D.; Micali, S.; Persiano, G. Noninteractive zero-knowledge. SIAM J. Comput. 1991, 20, 1084–1118. [Google Scholar] [CrossRef] [Green Version]
  3. Feige, U.; Lapidot, D.; Shamir, A. Multiple non-interactive zero knowledge proofs based on a single random string. In Proceedings of the 31st Annual Symposium on Foundations of Computer Science, St. Louis, MO, USA, 22–24 October 1990; pp. 308–317. [Google Scholar]
  4. Ma, S.; Deng, Y.; He, D.; Zhang, J.; Xie, X. An efficient NIZK scheme for privacy-preserving transactions over account-model blockchain. IEEE Trans. Depend. Secur. Comput. 2021, 18, 641–651. [Google Scholar] [CrossRef]
  5. Lin, C.; Luo, M.; Huang, X.; Choo, K.-K.R.; He, D. An Efficient Privacy-Preserving Credit Score System Based on Noninteractive Zero-Knowledge Proof. IEEE Syst. J. 2021, 1–10. [Google Scholar] [CrossRef]
  6. Naor, M.; Yung, M. Public-key cryptosystems provably secure against chosen ciphertext attacks. In Proceedings of the Twenty-Second Annual ACM Symposium on Theory of Computing, STOC’90, Baltimore, MD, USA, 14–16 May 1990; Ortiz, H., Ed.; ACM: New York, NY, USA, 1990; pp. 427–437. [Google Scholar]
  7. Dolev, D.; Dwork, C.; Naor, M. Nonmalleable cryptography. SIAM J. Comput. 2000, 30, 391–437. [Google Scholar] [CrossRef]
  8. Sahai, A. Non-malleable non-interactive zero knowledge and adaptive chosen-ciphertext security. In Proceedings of the 40th Annual Symposium on Foundations of Computer Science, FOCS ’99, New York, NY, USA, 17–18 October 1999; pp. 543–553. [Google Scholar]
  9. Feige, U.; Lapidot, D.; Shamir, A. Multiple noninteractive zero knowledge proofs under general assumptions. SIAM J. Comput. 1999, 29, 1–28. [Google Scholar]
  10. Rothblum, R.D.; Sealfon, A.; Sotiraki, K. Toward Non-interactive Zero-Knowledge Proofs for NP from LWE. J. Cryptol. 2021, 34, 3. [Google Scholar] [CrossRef]
  11. Boneh, D.; Canetti, R.; Halevi, S.; Katz, J. Chosen-ciphertext security from identity-based encryption. SIAM J. Comput. 2007, 36, 1301–1328. [Google Scholar] [CrossRef]
  12. Seo, M.; Abdalla, M.; Lee, D.H.; Park, J.H. New technique for chosen-ciphertext security based on non-interactive zero-knowledge. Inf. Sci. 2019, 490, 18–35. [Google Scholar] [CrossRef]
  13. Fiat, A.; Shamir, A. How to prove yourself: Practical solutions to identification and signature problems. In Conference on the Theory and Application of Cryptographic Techniques, CRYPTO’ 86; Lecture Notes in Computer Science; Odlyzko, A.M., Ed.; Springer: Berlin/Heidelberg, Germany, 1986; Volume 263, pp. 186–194. [Google Scholar]
  14. Faust, S.; Kohlweiss, M.; Marson, G.A.; Venturi, D. On the non-malleability of the Fiat-Shamir transform. In Progress in Cryptology—INDOCRYPT’12; Lecture Notes in Computer Science; Galbraith, S., Nandi, M., Eds.; Springer: Berlin/Heidelberg, Germany, 2012; Volume 7668, pp. 60–79. [Google Scholar]
  15. Abdalla, M.; Fouque, P.; Lyubashevsky, V.; Tibouchi, M. Tightly secure signatures from lossy identification schemes. J. Cryptol. 2016, 29, 597–631. [Google Scholar] [CrossRef] [Green Version]
  16. Lee, Y.; Lee, D.H.; Park, J.H. Tightly CCA-secure encryption scheme in a multi-user setting with corruptions. Des. Codes Cryptogr. 2020, 88, 2433–2452. [Google Scholar] [CrossRef]
  17. Camenisch, J.; Stadler, M. Proof Systems for General Statements about Discrete Logarithms; Technical Report 260; Institute for Theoretical Computer Science (ETH Zurich): Zürich, Switzerland, 1997; pp. 1–13. [Google Scholar]
  18. Chaum, D.; Evertse, J.H.; van de Graaf, J. An Improved Protocol for Demonstrating Possession of Discrete Logarithms and Some Generalizations. In Advances in Cryptology—EUROCRYPT’ 87; Lecture Notes in Computer Science; Chaum, D., Price, W.L., Eds.; Springer: Berlin/Heidelberg, Germany, 1987; Volume 304, pp. 127–141. [Google Scholar]
  19. Goh, E.J.; Jarecki, S. A Signature Scheme as Secure as the Diffie-Hellman Problem. In Advances in Cryptology—EUROCRYPT’03; Lecture Notes in Computer Science; Biham, E., Ed.; Springer: Berlin/Heidelberg, Germany, 2003; Volume 2656, pp. 401–415. [Google Scholar]
  20. Wee, H. Zero Knowledge in the Random Oracle Model, Revisited. In Advances in Cryptology—ASIACRYPT’09; Lecture Notes in Computer Science; Matsui, M., Ed.; Springer: Berlin/Heidelberg, Germany, 2009; Volume 5912, pp. 417–434. [Google Scholar]
  21. Boneh, D.; Boyen, X.; Shacham, H. Short Group Signatures. In Advances in Cryptology—CRYPTO’04; Springer: Berlin/Heidelberg, Germany, 2004; Volume 3152, pp. 41–55. [Google Scholar]
  22. Boneh, D.; Franklin, M.K. Identity-Based Encryption from the Weil Pairing. In Advances in Cryptology—CRYPTO‘01; Lecture Notes in Computer Science; Kilian, J., Ed.; Springer: Berlin/Heidelberg, Germany, 2001; Volume 2139, pp. 213–229. [Google Scholar]
  23. Libert, B. New Secure Applications of Bilinear Maps in Cryptography. Ph.D. Thesis, Universitï Catholique de Louvain, Ottignies-Louvain-la-Neuve, Belgium, 2006. [Google Scholar]
  24. Boneh, D.; Boyen, X. Efficient Selective-Id Secure Identity-Based Encryption without Random Oracles. In Advances in Cryptology—EUROCRYPT 2004; Lecture Notes in Computer Science; Cachin, C., Camenisch, J., Eds.; Springer: Berlin/Heidelberg, Germany, 2004; Volume 3027, pp. 223–238. [Google Scholar]
  25. Buraga, S.C.; Dospinescu, O. A knowledge-based pilot study on assessing the music influence. Comput. Mater. Contin. 2021, 66, 2857–2873. [Google Scholar] [CrossRef]
  26. Shankar, K.; Elhoseny, M. Trust based cluster head election of secure message transmission in MANET using multi secure protocol with TDES. J. Univers. Comput. Sci. 2019, 25, 1221–1239. [Google Scholar]
  27. Dospinescu, O.; Brodner, P. Integrated Applications with Laser Technology. Informatică Economică 2013, 17, 53–61. [Google Scholar] [CrossRef]
Table 1. Values or operations of K * , CT * , SK , and DecO(·) in each game and properties ensuring the indistinguishability of consecutive games. RO + SS denotes that the simulator retrieves k from a random oracle table and checks the validity of the ciphertext based on the SS property.
Table 1. Values or operations of K * , CT * , SK , and DecO(·) in each game and properties ensuring the indistinguishability of consecutive games. RO + SS denotes that the simulator retrieves k from a random oracle table and checks the validity of the ciphertext based on the SS property.
Game K * stmt * CT * SKDecO(·)Property
0 H 2 ( stmt * , com , π real * ) ( pk , ct * , k * ) ct * , π real * sk KEM . Decap ( · ) -
1 H 2 ( stmt * , com , π real * ) ( pk , ct * , k * ) ct * , π real * sk KEM . Decap ( · ) CR
2 H 2 ( stmt * , com , π sim * ) ( pk , ct * , k * ) ct * , π sim * sk KEM . Decap ( · ) ZK
3 H 2 ( stmt * , com , π sim * ) ( pk , ct * , k * ) ct * , π sim * - RO + SS SS
4 H 2 ( stmt * , com , π sim * ) ( pk , ct * , k ) ct * , π sim * - RO + SS IND-CPA
5 K $ { 0 , 1 } ( pk , ct * , k ) ct * , π sim * - RO + SS 1 / | K |
6 K $ { 0 , 1 } ( pk , ct * , k * ) ct * , π sim * - RO + SS IND - CPA
7 K $ { 0 , 1 } ( pk , ct * , k * ) ct * , π sim * sk KEM . Decap ( · ) SS
8 K $ { 0 , 1 } ( pk , ct * , k * ) ct * , π real * sk KEM . Decap ( · ) ZK
9 K $ { 0 , 1 } ( pk , ct * , k * ) ct * , π real * sk KEM . Decap ( · ) CR
Table 2. Values or operations of K * , CT * , SK , and DecO(·) in each game and properties ensuring the indistinguishability of consecutive games. RO + SS denotes that the simulator retrieves k from a random oracle table and checks the validity of the ciphertext based on the SS property.
Table 2. Values or operations of K * , CT * , SK , and DecO(·) in each game and properties ensuring the indistinguishability of consecutive games. RO + SS denotes that the simulator retrieves k from a random oracle table and checks the validity of the ciphertext based on the SS property.
Game K * stmt * CT * SKDecO(·)Property
0 H 2 ( stmt * , com , π real * ) ( pp , ID * , ct * , k * ) ct * , π real * sk IBKEM . Decap ( · ) -
1 H 2 ( stmt * , com , π real * ) ( pp , ID * , ct * , k * ) ct * , π real * sk IBKEM . Decap ( · ) CR
2 H 2 ( stmt * , com , π sim * ) ( pp , ID * , ct * , k * ) ct * , π sim * sk IBKEM . Decap ( · ) ZK
3 H 2 ( stmt * , com , π sim * ) ( pp , ID * , ct * , k * ) ct * , π sim * - RO + SS SS
4 H 2 ( stmt * , com , π sim * ) ( pp , ID * , ct * , k ) ct * , π sim * - RO + SS IND-ID-CPA
5 K $ { 0 , 1 } ( pp , ID * , ct * , k ) ct * , π sim * - RO + SS 1 / | K |
6 K $ { 0 , 1 } ( pp , ID * , ct * , k * ) ct * , π sim * - RO + SS IND-ID-CPA
7 K $ { 0 , 1 } ( pp , ID * , ct * , k * ) ct * , π sim * sk IBKEM . Decap ( · ) SS
8 K $ { 0 , 1 } ( pp , ID * , ct * , k * ) ct * , π real * sk IBKEM . Decap ( · ) ZK
9 K $ { 0 , 1 } ( pp , ID * , ct * , k * ) ct * , π real * sk IBKEM . Decap ( · ) CR
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Lee, Y.; Lee, D.H.; Park, J.H. Revisiting NIZK-Based Technique for Chosen-Ciphertext Security: Security Analysis and Corrected Proofs. Appl. Sci. 2021, 11, 3367. https://doi.org/10.3390/app11083367

AMA Style

Lee Y, Lee DH, Park JH. Revisiting NIZK-Based Technique for Chosen-Ciphertext Security: Security Analysis and Corrected Proofs. Applied Sciences. 2021; 11(8):3367. https://doi.org/10.3390/app11083367

Chicago/Turabian Style

Lee, Youngkyung, Dong Hoon Lee, and Jong Hwan Park. 2021. "Revisiting NIZK-Based Technique for Chosen-Ciphertext Security: Security Analysis and Corrected Proofs" Applied Sciences 11, no. 8: 3367. https://doi.org/10.3390/app11083367

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