1 Introduction
1.1 Related Work
1.2 Contributions
1.3 Organization
2 Preliminaries
2.1 Bilinear Pairings
2.2 Generic Bilinear Group Model
2.3 Entropy
-
(1) ${H_{\infty }}(X)=-{\log _{2}}({\max _{x}}$Pr$[X=x])$ denotes the min-entropy of a finite random variable X.
-
(2) ${\widetilde{H}_{\infty }}(X|Z)=-lo{g_{2}}({E_{z\gets Z}}[{\max _{x}}$Pr$[X=x|Z=z]])$ denotes the average conditional min-entropy of a random variable X under a correlated random variable Z.
Lemma 1.
Lemma 2.
3 Framework and Security Notions
-
– Only computation leakage: This property means that only permanent/temporary secret (private) keys accessed and involved in a current calculation round could be leaked to a side-channel adversary.
-
– Bounded leakage of single observation: The length of leakage information in a single calculation round (observation) is limited to some λ bits. This property indicates that the leakage information of each calculation round is bounded to some fraction of secret information.
-
– Independent leakage: The leakage information of all the calculation rounds is independent with each other.
-
– Overall unbounded leakage: This property means that the total amount of leakage information is unbounded. In such a case, secret (private) keys must be updated (refreshed) before/after each calculation round.
3.1 Framework of LR-CL-KE Scheme
Definition 1.
-
– Setup: Taking a security parameter as input, the key generation centre (KGC) runs this algorithm to generate the first system secret key $({\mathit{SK}_{0,1}},{\mathit{SK}_{0,2}})$ and the public parameters $\mathit{PP}$. The KGC then publishes $\mathit{PP}$ and keeps $({\mathit{SK}_{0,1}},{\mathit{SK}_{0,2}})$ in secret. The KGC also selects a symmetric cryptosystem with encryption function $E()$ and decryption function $D()$.
-
– Initial key extract: For the i-th user with identity ID, the KGC uses this algorithm to generate the first initial key $({\mathit{DID}_{0}},\mathit{QID})$ of the user. This algorithm consists of two sub-algorithms Extract-1 and Extract-2 defined below, in which the current system secret key $({\mathit{SK}_{i-1,1}},{\mathit{SK}_{i-1,2}})$ is used and is updated to $({\mathit{SK}_{i,1}},{\mathit{SK}_{i,2}})$.
-
• Extract-1: Given a random number γ, ${\mathit{SK}_{i-1,1}}$ and the user’s identity ID, this sub-algorithm generates $\mathit{QID}$ and temporary information ${\mathit{TI}_{\mathit{IE}}}$, and updates ${\mathit{SK}_{i-1,1}}$ to ${\mathit{SK}_{i,1}}$.
-
• Extract-2: Given ${\mathit{TI}_{\mathit{IE}}}$, and ${\mathit{SK}_{i-1,2}}$, this sub-algorithm generates ${\mathit{DID}_{0}}$ and updates ${\mathit{SK}_{i-1,2}}$ to ${\mathit{SK}_{i,2}}$.
-
-
– Set secret value: This algorithm is performed by a user with identity ID to generate the user’s secret key ${\mathit{SID}_{0}}$ and the partial public key $\mathit{RID}$.
-
– Set private key: This algorithm is performed by a user with identity ID. This algorithm takes the user’s first initial key $({\mathit{DID}_{0}},\mathit{QID})$ and secret key ${\mathit{SID}_{0}}$ as input to set the user’s private key ($({\mathit{DID}_{0,1}},{\mathit{DID}_{0,2}})$, (${\mathit{SID}_{0,1}},{\mathit{SID}_{0,2}}$)).
-
– Set public key: This algorithm is performed by a user with identity ID. This algorithm takes the initial key $({\mathit{DID}_{0}},\mathit{QID})$ and the partial public key $\mathit{RID}$ as input, and outputs the user’s public key $\mathit{PID}=(\mathit{QID},\mathit{RID})$.
-
– Encrypt: Given a plain-message $msg$ and the public key $\mathit{PID}=(\mathit{QID},\mathit{RID})$ of a receiver with identity ID, this algorithm first generates a random value C and the associated encryption key K, and then generates $CT={E_{K}}(msg)$ by using the encryption function $E()$ of a symmetric cryptosystem. Finally, $(C,CT)$ is sent to the receiver.
-
– Decrypt: This algorithm consists of two sub-algorithms Decrypt-1 and Decrypt-2, run by a receiver. For the j-th Decrypt round, the user with identity ID adopts her/his current private key ($({\mathit{DID}_{j-1,1}},{\mathit{DID}_{j-1,2}})$, $({\mathit{SID}_{j-1,1}},{\mathit{SID}_{j-1,2}})$) to decrypt the ciphertext (C, $CT$) by performing two sub-algorithms. In addition, the current private key ($({\mathit{DID}_{j-1,1}},{\mathit{DID}_{j-1,2}})$, (${\mathit{SID}_{j-1,1}}$, ${\mathit{SID}_{j-1,2}}$)) is also updated to ((${\mathit{DID}_{j,1}}$, ${\mathit{DID}_{j,2}}$), (${\mathit{SID}_{j,1}}$, ${\mathit{SID}_{j,2}}$)).
-
• Decrypt-1: Given ${\mathit{DID}_{j-1,1}}$ and ${\mathit{SID}_{j-1,1}}$, this algorithm outputs ${\mathit{DID}_{j,1}}$, ${\mathit{SID}_{j,1}}$ and the temporary information ${\mathit{TI}_{D}}$.
-
• Decrypt-2: Given C, $CT$, ${\mathit{TI}_{D}}$, ${\mathit{DID}_{j-1,2}}$ and ${\mathit{SID}_{j-1,2}}$, this algorithm generates ${\mathit{DID}_{j,2}}$ and ${\mathit{SID}_{j,2}}$ while obtaining the encryption key K. Finally, the receiver can obtain the plain message $msg$ by ${D_{K}}(CT)$ using the decryption function $D()$ of a symmetric cryptosystem.
-
3.2 Security Notions of LR-CL-KE Scheme
-
– $\Lambda {f_{\mathit{IE},i}}={f_{\mathit{IE},i}}$(${\mathit{SK}_{i-1,1}}$, params).
-
– $\Lambda {h_{\mathit{IE},i}}={h_{\mathit{IE},i}}$(${\mathit{SK}_{i-1,2}}$, ${\mathit{TI}_{\mathit{IE}}}$, params).
-
– $\Lambda {f_{D,j}}={f_{D,j}}$(${\mathit{DID}_{j-1,1}}$, ${\mathit{SID}_{j-1,1}}$, params).
-
– $\Lambda {h_{D,j}}={h_{D,j}}$(${\mathit{DID}_{j-1,2}}$, ${\mathit{SID}_{j-1,2}}$, ${\mathit{TI}_{D}}$, params, skeys).
-
• Type I Adversary (Outsider): This kind of adversary simulates the role of an outsider who can replace the public key of any user with another one chosen by herself/himself. That is, a Type I adversary may decide the secret key of any user with her/his choice. In addition, a Type I adversary may obtain the leakage information of a user’s initial key in the decryption phase while leaking partial information of the KGC’s system secret key in the Initial key extract phase.
-
• Type II Adversary (Honest-but-curious KGC): This kind of adversary simulates the role of the honest-but-curious KGC who owns the system’s secret key and is disallowed to perform the public key replacement. In other words, a Type II adversary holds the initial key of any entity. In addition, a Type II adversary may obtain the leakage information of a user’s secret key in the decryption phase.
Definition 2 (LR-CL-IND-CCA).
-
– Setup. The challenger $\mathcal{B}$ takes a security parameter l as input, and runs the Setup algorithm to generate the first system secret key $({\mathit{SK}_{0,1}},{\mathit{SK}_{0,1}})$ and the public parameters $\mathit{PP}$. $\mathit{PP}$ is sent to the adversary $\mathcal{A}$. In addition, if $\mathcal{A}$ is of Type II adversary, $\mathcal{B}$ also sends $({\mathit{SK}_{0,1}},{\mathit{SK}_{0,1}})$ to $\mathcal{A}$. If $\mathcal{A}$ is of Type I adversary, the first system secret key $({\mathit{SK}_{0,1}},{\mathit{SK}_{0,1}})$ is kept secret by $\mathcal{B}$.
-
– Phase 1. In this phase, the adversary $\mathcal{A}$ may adaptively issue the following queries:
-
• Initial key extract query (ID). For the i-th Initial key extract query along with a user’s identity ID, the challenger $\mathcal{B}$ uses the current system secret key $({\mathit{SK}_{i-1,1}},{\mathit{SK}_{i-1,2}})$ to generate the user’s first initial key (${\mathit{DID}_{0}}$, $\mathit{QID}$) while updating (${\mathit{SK}_{i-1,1}}$, ${\mathit{SK}_{i-1,2}}$) to (${\mathit{SK}_{i,1}}$, ${\mathit{SK}_{i,2}}$). Finally, $\mathcal{B}$ returns (${\mathit{DID}_{0}}$, $\mathit{QID}$) to $\mathcal{A}$.
-
• Initial key extract leak query (${f_{\mathit{IE},i}},{h_{\mathit{IE},i}},i$): By providing two leakage functions ${f_{\mathit{IE},i}}$ and ${h_{\mathit{IE},i}}$, $\mathcal{A}$ can issue the Initial key extract leak query only once for the i-th Initial key extract query. The challenger $\mathcal{B}$ computes the leakage information ($\Lambda {f_{\mathit{IE},i}},\Lambda {h_{\mathit{IE},i}}$) and returns it to $\mathcal{A}$.
-
• Public key retrieve query (ID). Upon receiving this query along with an identity ID, $\mathcal{B}$ returns the corresponding public key $\mathit{PID}=(\mathit{QID},\mathit{RID})$.
-
• Public key replace query (ID, ${\mathit{PID}^{\prime }}=({\mathit{QID}^{\prime }},{\mathit{RID}^{\prime }})$). Upon receiving this query along with (ID, ${\mathit{PID}^{\prime }}$), $\mathcal{B}$ records the replacement. It means that the adversary $\mathcal{A}$ has replaced the user’s public key with ${\mathit{PID}^{\prime }}=({\mathit{QID}^{\prime }},{\mathit{RID}^{\prime }})$.
-
• Secret key extract query (ID). When the challenger $\mathcal{B}$ receives this query along with an identity ID, $\mathcal{B}$ returns the secret key ${\mathit{SID}_{0}}$. Moreover, the query is forbidden if Public key replace query (ID) has been previously queried in this game.
-
• Decrypt query (ID, C). For the j-th Decrypt round, upon receiving this query along with an identity ID and a ciphertext C, the challenger $\mathcal{B}$ uses the user’s current private key (${\mathit{DID}_{j-1}}=({\mathit{DID}_{j-1,1}},{\mathit{DID}_{j-1,2}}$), ${\mathit{SID}_{j}}=({\mathit{SID}_{j-1,1}},{\mathit{SID}_{j-1,2}}$)) to generate the encryption key K by running two sub-algorithms Decrypt-1 and Decrypt-2. The challenger $\mathcal{B}$ then returns K to $\mathcal{A}$. It is worth mentioning that the current private key $({\mathit{DID}_{j-1}}=({\mathit{DID}_{j-1,1}},{\mathit{DID}_{j-1,2}})$, ${\mathit{SID}_{j}}=({\mathit{SID}_{j-1,1}}$, ${\mathit{SID}_{j-1,2}}$)) is also updated to (${\mathit{DID}_{j}}=({\mathit{DID}_{j,1}},{\mathit{DID}_{j,2}})$, ${\mathit{SID}_{j}}=({\mathit{SID}_{j,1}},{\mathit{SID}_{j,2}}$)).
-
• Decrypt leak query (${f_{D,j}}$, ${h_{D,j}}$, j): By providing two leakage functions ${f_{D,j}}$ and ${h_{D,j}}$, $\mathcal{A}$ can issue the Decrypt leak query only once for the j-th Decrypt query. $\mathcal{B}$ computes the leakage information ($\Lambda {f_{D,j}}$, $\Lambda {h_{D,j}}$) and returns it to $\mathcal{A}$. In addition, if $\mathcal{A}$ is of Type II adversary (honest-but-curious KGC), ($\Lambda {f_{D,j}}$, $\Lambda {h_{D,j}}$) includes only the leakage information of a user’s secret key (${\mathit{SID}_{j-1,1}}$, ${\mathit{SID}_{j-1,2}}$) since $\mathcal{A}$ knows the initial key of any entity. If $\mathcal{A}$ is of Type I adversary (outsider), the adversary may obtain the leakage information of a user’s initial key $({\mathit{DID}_{j-1,1}},{\mathit{DID}_{j-1,2}})$ since an outsider owns the secret key of any entity.
-
-
– Challenge. The adversary $\mathcal{A}$ chooses a target identity ID${^{\ast }}$ and a plaintext pair ($ms{g_{0}^{\ast }}$, $ms{g_{1}^{\ast }}$) to the challenger $\mathcal{B}$. Two restrictions are described as follows.
-
1. If $\mathcal{A}$ is of Type I adversary (outsider), the Initial key extract query (ID${^{\ast }}$) is not queried in Phase 1.
-
2. If $\mathcal{A}$ is of Type II adversary (honest-but-curious KGC), it is disallowed to issue the queries on the Secret value extract query and Public key replace query on ID${^{\ast }}$ in Phase 1.
-
-
– Guess. The adversary $\mathcal{A}$ outputs ${\beta ^{\prime }}\in \{0,1\}$ and wins this game if ${\beta ^{\prime }}=\beta $.
Remark
4 The Proposed LR-CL-KE Scheme
-
– Setup: Given a security parameter l, the KGC first generates two multiplicative groups G and ${G_{T}}$ of prime order p and then randomly picks a generator g of G. Let $e:G\times G\to {G_{T}}$ be an admissible bilinear pairing. The KGC also selects a symmetric cryptosystem with encryption function $E()$ and decryption function $D()$. The KGC runs the following steps to generate the first system secret key $({\mathit{SK}_{0,1}},{\mathit{SK}_{0,1}})$ and the public parameters $\mathit{PP}$:
-
(1) Randomly pick $x\in {Z_{p}^{\ast }}$ and compute $X={g^{x}}$ and ${X_{T}}=e({g^{x}},g)$.
-
(2) Randomly pick $\alpha \in {Z_{p}^{\ast }}$ and set the first system secret key $({\mathit{SK}_{0,1}},{\mathit{SK}_{0,1}})=({g^{\alpha }},X\cdot {g^{\alpha }})$.
-
(3) Randomly pick ${u_{i0}}$, ${u_{i1}}\in {Z_{q}^{\ast }}$ and compute ${U_{0}}$= ${g^{{u_{i0}}}}$ and ${U_{1}}$= ${g^{{u_{i1}}}}$.
-
(4) Publish $\mathit{PP}=(G,{G_{T}},e,p,g,{X_{T}},{U_{0}},{U_{1}},E,D)$.
-
-
– Initial key extract: For the i-th Initial key extract round, upon receiving a user’s identity ID, the KGC generates the first initial key $({\mathit{DID}_{0}},\mathit{QID})$ of the user by running two sub-algorithms Extract-1 and Extract-2 as follows. In addition, the current system secret key $({\mathit{SK}_{i-1,1}},{\mathit{SK}_{i-1,2}})$ is also updated to $({\mathit{SK}_{i,1}},{\mathit{SK}_{i,2}})$. Finally, the KGC sends the first initial key $({\mathit{DID}_{0}},\mathit{QID})=(X\cdot {({U_{0}}\cdot {U_{1}^{ID}})^{\gamma }},{g^{\gamma }})$ to the user via a secure channel. Note that the user may validate the correctness of $({\mathit{DID}_{0}},\mathit{QID})$ by checking the equality $e(g,{\mathit{DID}_{0}})={X_{T}}\cdot e(\mathit{QID},{U_{0}}\cdot {U_{1}^{ID}})$.
-
– Set secret value: A user with identity ID chooses a random number $z\in {Z_{p}^{\ast }}$ and computes the first secret key ${\mathit{SID}_{0}}$ and the partial public key $\mathit{RID}$, where $({\mathit{SID}_{0}},\mathit{RID})=({g^{z}},e({g^{z}},g))$.
-
– Set private key: Given the initial key $({\mathit{DID}_{0}},\mathit{QID})$ and the secret key ${\mathit{SID}_{0}}$, the user sets her/his private key by the steps below:
-
– Set public key: Given the initial key $({\mathit{DID}_{0}},\mathit{QID})$ and the partial public key $\mathit{RID}$, the user with identity ID sets her/his public key $\mathit{PID}=(\mathit{QID},\mathit{RID})=({g^{\gamma }},e({g^{z}},g))$.
-
– Decrypt: For the j-th Decrypt round, given the ciphertext $(C,CT)$, the receiver with identity ID uses the current private key ($({\mathit{DID}_{j-1,1}},{\mathit{DID}_{j-1,2}})$, (${\mathit{SID}_{j-1,1}}$, ${\mathit{SID}_{j-1,2}}$)) to recover the plaintext $msg$ by performing two sub-algorithms as follows. In addition, the current private key ($({\mathit{DID}_{j-1,1}},{\mathit{DID}_{j-1,2}})$, (${\mathit{SID}_{j-1,1}}$, ${\mathit{SID}_{j-1,2}}$)) is also updated to ((${\mathit{DID}_{j,1}}$, ${\mathit{DID}_{j,2}}$), (${\mathit{SID}_{j,1}}$, ${\mathit{SID}_{j,2}}$)).
-
• Decrypt-1: The receiver uses ${\mathit{DID}_{j-1,1}}$ and ${\mathit{SID}_{j-1,1}}$ to compute the temporary information ${\mathit{TI}_{1}}$ and ${\mathit{TI}_{2}}$ by the following steps:
-
• Decrypt-2: Given C, $CT$, ${\mathit{TI}_{1}}$ and ${\mathit{TI}_{2}}$, the receiver uses ${\mathit{DID}_{j-1,2}}$ and ${\mathit{SID}_{j-1,2}}$ to return plaintext $msg$ by the following steps:
-
(1) Compute ${\mathit{DID}_{j,2}}={\mathit{DID}_{j-1,2}}\cdot {g^{-b}}$ and ${\mathit{SID}_{j,2}}={\mathit{SID}_{j-1,2}}\cdot {g^{-c}}$.
-
(2) Compute ${K^{\prime }_{1}}={\mathit{TI}_{1}}\cdot e(C,{\mathit{SID}_{j,2}})$ and ${K^{\prime }_{2}}={\mathit{TI}_{2}}\cdot e(C,{\mathit{DID}_{j,2}})$.
-
(3) The encryption key is computed by ${K^{\prime }}={K^{\prime }_{1}}\oplus {K^{\prime }_{2}}$.
-
(4) Obtain the plaintext $msg={D_{{K^{\prime }}}}(CT)$ by using a symmetric cryptosystem.
-
-
5 Security Analysis
-
– Setup${_{\mathit{NL}}}$: In this algorithm, the KGC generates the system secret key $X={g^{x}}$, where x is a random number picked from ${Z_{p}^{\ast }}$. Moreover, the public parameters $\mathit{PP}=(G,{G_{T}},e,p,g,{X_{T}},{U_{0}},{U_{1}})$ are identical to those in the proposed LR-CL-KE scheme. Finally, the KGC publishes the public parameters $\mathit{PP}$.
-
– Initial key extract${_{\mathit{NL}}}$: The KGC generates the initial key $(\mathit{DID},\mathit{QID})=(X\cdot {({U_{0}}\cdot {U_{1}^{ID}})^{\gamma }},{g^{\gamma }})$ of a user with identity ID, where γ is picked from ${Z_{p}^{\ast }}$ randomly. The KGC then sends the initial key $(\mathit{DID},\mathit{QID})$ to the user via a secure channel.
-
– Set secret value${_{\mathit{NL}}}$: A user chooses a random number z in ${Z_{p}^{\ast }}$, and computes the user’s secret key $\mathit{SID}={g^{z}}$ and the associated partial public key $\mathit{RID}=e({g^{z}},g)$.
-
– Set private key${_{\mathit{NL}}}$: A user sets her/his private key $(\mathit{DID},\mathit{SID})=(X\cdot {({U_{0}}\cdot {U_{1}^{ID}})^{\gamma }},{g^{z}})$.
-
– Set public key${_{\mathit{NL}}}$: A user sets her/his public key $\mathit{PID}=(\mathit{QID},\mathit{RID})$.
-
– Encrypt${_{\mathit{NL}}}$: Given the public key $\mathit{PID}=(\mathit{QID},\mathit{RID})$ of a user with identity ID, the sender randomly chooses $k\in {Z_{p}^{\ast }}$, and then computes $C={g^{k}}$, ${K_{1}}={(\mathit{RID})^{k}}$ and ${K_{2}}={({X_{T}}\cdot e(\mathit{QID},{U_{0}}\cdot {U_{1}^{ID}}))^{k}}$. The encryption key is $K={K_{1}}\oplus {K_{2}}$. The ciphertext ($C,CT={E_{K}}(msg)$) is sent to the receiver, where $msg$ is the plaintext.
-
– Decrypt${_{\mathit{NL}}}$: Upon receiving a user’s identity ID and the ciphertext $(C,CT)$, the receiver uses the private key $(\mathit{DID},\mathit{SID})$ to get the encryption key $K={K_{1}}\oplus {K_{2}}$ by computing ${K_{1}}=e(C,\mathit{SID})$ and ${K_{2}}=e(C,\mathit{DID})$. Then she/he can decrypt the plaintext $msg={D_{K}}(CT)$.
Theorem 1.
Proof.
-
– Setup: The challenger $\mathcal{B}$ constructs two lists ${L_{G}}$ and ${L_{T}}$ to record the elements in the groups G and ${G_{T}}$, respectively.
-
• The list ${L_{G}}$ consists of elements of the form (${P_{G,m,n,r}}$, ${\phi _{G,m,n,r}}$). Each ${P_{G,m,n,r}}$ is a multivariate polynomial consists of a finite numbers of variates in G with coefficients in ${Z_{p}}$. For a multivariate polynomial ${P_{G,m,n,r}}$, the challenger $\mathcal{B}$ uses a bit string ${\phi _{G,m,n,r}}$ to communicate with ${\mathcal{A}_{\mathit{NL}-I}}$. The first index “G” in ${P_{G,m,n,r}}$ or ${\phi _{G,m,n,r}}$ indicates that ${P_{G,m,n,r}}$ or ${\phi _{G,m,n,r}}$ is an element in G and is an element in ${G_{T}}$ if the index G is replaced by T. Moreover, the second index “m” indicates the type of query. The third and fourth indices “n” and “r” indicate the r-th element in $G/{G_{T}}$ which appeared in the n-th query. Four tuples $(g,{\phi _{G,I,1,1}})$, $(X,{\phi _{G,I,1,2}})$, $({U_{0}},{\phi _{G,I,1,3}})$ and $({U_{1}},{\phi _{G,I,1,4}})$ are initially added in the list ${L_{G}}$.
-
• The list ${L_{T}}$ is used to record the elements with the form of $({P_{T,m,n,r}},{\phi _{T,m,n,r}})$. The meanings of all indexes of ${P_{T,m,n,r}}$ are the same with the descriptions of ${P_{G,m,n,r}}$ earlier. ${P_{T,m,n,r}}$ is a multivariate polynomial with coefficients in ${Z_{p}}$ and variates in G or ${G_{T}}$. For each multivariate polynomial ${P_{T,m,n,r}}$, the challenger $\mathcal{B}$ uses the bit string ${\phi _{T,m,n,r}}$ to communicate with ${\mathcal{A}_{\mathit{NL}-I}}$. The tuple $({X_{T}},{\phi _{T,I,1,1}})$ is initially added into ${L_{T}}$.
-
-
– Phase 1: In this phase, ${\mathcal{A}_{\mathit{NL}-I}}$ can adaptively issue the following queries at most q times totally.
-
• Group G query ${Q_{G}}$ (${\phi _{G,Q,i,1}}$, ${\phi _{G,Q,i,2}}$, operation): For the i-th group query ${Q_{G}}$, ${\mathcal{A}_{\mathit{NL}-I}}$ queries $\mathcal{B}$ along with two bit strings $({\phi _{G,Q,i,1}},{\phi _{G,Q,i,2}})$ and an operation (multiplication or division). The challenger $\mathcal{B}$ performs the following steps.
-
(i) $\mathcal{B}$ first translates two bit strings ${\phi _{G,Q,i,1}}$ and ${\phi _{G,Q,i,2}}$ into two polynomials ${P_{G,Q,i,1}}$ and ${P_{G,Q,i,2}}$, respectively, in the following way. $\mathcal{B}$ tries to find a pair (${P_{G,m,n,r}}$, ${\phi _{G,m,n,r}}$) in ${L_{G}}$ such that ${\phi _{G,m,n,r}}={\phi _{G,Q,i,1}}$. If so, $\mathcal{B}$ sets ${P_{G,Q,i,1}}={P_{G,m,n,r}}$. Otherwise, $\mathcal{B}$ defines a new variate ${S_{G,Q,i,1}}$ in G, sets ${P_{G,Q,i,1}}={S_{G,Q,i,1}}$, and records $({P_{G,Q,i,1}},{\phi _{G,Q,i,1}})$ in ${L_{G}}$. Similarly, $\mathcal{B}$ also translates the bit string ${\phi _{G,Q,i,2}}$ to ${P_{G,Q,i,2}}$.
-
(ii) $\mathcal{B}$ computes the polynomial ${P_{G,Q,i,3}}={P_{G,Q,i,1}}+{P_{G,Q,i,2}}$ if the operation is multiplication, or ${P_{G,Q,i,3}}={P_{G,Q,i,1}}-{P_{G,Q,i,2}}$ if the operation is division.
-
(iii) $\mathcal{B}$ uses ${P_{G,Q,i,3}}$ to find an element $({P_{G,m,n,r}},{\phi _{G,m,n,r}})$ in ${L_{G}}$ such that ${P_{G,m,n,r}}={P_{G,Q,i,3}}$. If so, $\mathcal{B}$ returns ${\phi _{G,m,n,r}}$ to ${\mathcal{A}_{\mathit{NL}-I}}$. Otherwise, $\mathcal{B}$ randomly chooses a bit string, denoted by ${\phi _{G,Q,i,3}}$, which is distinct from all bit strings recorded in ${L_{G}}$ and ${L_{T}}$. Finally, $\mathcal{B}$ records $({P_{G,Q,i,3}},{\phi _{G,Q,i,3}})$ in ${L_{G}}$ and returns ${\phi _{G,Q,i,3}}$ to ${\mathcal{A}_{\mathit{NL}-I}}$.
-
-
• Group ${G_{T}}$ query ${Q_{T}}$(${\phi _{T,Q,i,1}}$, ${\phi _{T,Q,i,2}}$, operation): For the i-th group query ${Q_{T}}$, ${\mathcal{A}_{\mathit{NL}-I}}$ queries $\mathcal{B}$ along with two bit strings (${\phi _{T,Q,i,1}}$, ${\phi _{T,Q,i,2}}$) and an operation (multiplication or division). The process of this query is similar to that of the Group G query ${Q_{G}}$. $\mathcal{B}$ finally returns ${\phi _{T,Q,i,3}}$ to ${\mathcal{A}_{\mathit{NL}-I}}$. After this query, the polynomials ${P_{T,Q,i,1}}$, ${P_{T,Q,i,2}}$ and ${P_{T,Q,i,3}}$ are recorded in ${L_{T}}$.
-
• Pairing query ${Q_{P}}$$({\phi _{G,P,i,1}},{\phi _{G,P,i,2}})$: For the i-th pairing query ${Q_{P}}$, ${\mathcal{A}_{\mathit{NL}-I}}$ takes as input two bit strings ${\phi _{G,P,i,1}}$ and ${\phi _{G,P,i,2}}$. $\mathcal{B}$ performs the following steps:
-
(i) $\mathcal{B}$ first translates two bit strings ${\phi _{G,P,i,1}}$ and ${\phi _{G,P,i,2}}$ to two polynomials ${P_{G,P,i,1}}$ and ${P_{G,P,i,2}}$, respectively. This step is similar to the Step 1 of the Group G query ${Q_{G}}$.
-
(ii) $\mathcal{B}$ computes the polynomial ${P_{T,P,i,1}}={P_{G,P,i,1}}\cdot {P_{G,P,i,2}}$.
-
(iii) $\mathcal{B}$ uses ${P_{T,P,i,1}}$ to find $({P_{T,m,n,r}},{\phi _{T,m,n,r}})$ in ${L_{T}}$ such that ${P_{T,m,n,r}}={P_{T,P,i,1}}$. If so, $\mathcal{B}$ returns ${\phi _{T,m,n,r}}$ to ${\mathcal{A}_{\mathit{NL}-I}}$. Otherwise, $\mathcal{B}$ randomly chooses a bit string, denoted by ${\phi _{T,P,i,1}}$, which is distinct from all bit strings recorded in ${L_{G}}$ and ${L_{T}}$. Then $\mathcal{B}$ records $({P_{T,P,i,1}},{\phi _{T,P,i,1}})$ in ${L_{T}}$ and returns ${\phi _{T,P,i,1}}$ to ${\mathcal{A}_{\mathit{NL}-I}}$.
-
-
• Initial key extract query ${Q_{\mathit{IE}}}$(${\mathit{ID}_{\mathit{IE},i}}$): For the i-th Initial key extract query, ${\mathcal{A}_{\mathit{NL}-I}}$ queries $\mathcal{B}$ along with a user’s identity $I{D_{\mathit{IE},i}}\in {Z_{p}^{\ast }}$. $\mathcal{B}$ tries to find ${\mathit{ID}_{\mathit{IE},i}}$ in ${L_{\mathit{IK}}}$. If so, $\mathcal{B}$ obtains the corresponding multivariate polynomials ${P_{G,IE,i,1}}$ and ${P_{G,IE,i,2}}$ of the user’s initial key $\mathit{DID}$ and $\mathit{QID}$. $\mathcal{B}$ then returns two corresponding bit strings ${\phi _{G,IE,i,1}}$ and ${\phi _{G,IE,i,2}}$ to ${\mathcal{A}_{\mathit{NL}-I}}$. Otherwise, $\mathcal{B}$ performs three steps as follows:
-
(i) $\mathcal{B}$ selects one variate ${T_{G,IE,i,2}}$ in G (which denotes the $\mathit{QID}$ of ${\mathit{ID}_{\mathit{IE},i}}$) and sets ${P_{G,IE,i,2}}$=${T_{G,IE,i,2}}$. Moreover, $\mathcal{B}$ randomly chooses a bit string, denoted by ${\phi _{G,IE,i,2}}$, which is distinct from all bit strings recorded in ${L_{G}}$ and ${L_{T}}$. Then $\mathcal{B}$ records (${P_{G,IE,i,2}}$, ${\phi _{G,IE,i,2}}$) in ${L_{G}}$.
-
(ii) $\mathcal{B}$ computes the polynomial ${P_{G,IE,i,1}}=X+({U_{0}}+{\mathit{ID}_{\mathit{IE},i}}\cdot {U_{1}})\cdot {T_{G,IE,i,2}}$, which represents the $\mathit{DID}$ of ${\mathit{ID}_{\mathit{IE},i}}$.
-
(iii) Finally, $\mathcal{B}$ chooses a bit string ${\phi _{G,IE,i,1}}$, which is distinct from all bit strings recorded in ${L_{G}}$ and ${L_{T}}$. Then $\mathcal{B}$ records (${P_{G,IE,i,1}}$, ${\phi _{G,IE,i,1}}$) in ${L_{G}}$ and returns (${\phi _{G,IE,i,1}}$, ${\phi _{G,IE,i,2}}$ ) to ${\mathcal{A}_{\mathit{NL}-I}}$.
-
-
• Secret key extract query ${Q_{\mathit{SE}}}$(${\mathit{ID}_{SE,i}}$): For the i-th Secret key extract query, ${\mathcal{A}_{\mathit{NL}-I}}$ queries the challenger $\mathcal{B}$ along with an identity ${\mathit{ID}_{SE,i}}$. $\mathcal{B}$ performs the following steps and finally outputs the bit strings (${\phi _{T,SE,i,1}}$, ${\phi _{T,SE,i,2}}$), which represent the secret key ($\mathit{SID}$, $\mathit{RID}$) to ${\mathcal{A}_{\mathit{NL}-I}}$:
-
(i) The challenger $\mathcal{B}$ checks whether the secret key of identity ${\mathit{ID}_{SE,i}}$ has been recorded in ${L_{\mathit{SK}}}$. If so, $\mathcal{B}$ returns the bit strings (${\phi _{T,SE,i,1}}$, ${\phi _{T,SE,i,2}}$), which represents the secret key $(\mathit{SID},\mathit{RID})$ to ${\mathcal{A}_{\mathit{NL}-I}}$. Otherwise, $\mathcal{B}$ defines a new variate ${T_{G,SE,i,2}}$ in G and sets ${P_{G,SE,i,1}}={T_{G,SE,i,1}}$, which represents the $\mathit{SID}$ of ${\mathit{ID}_{SE,i}}$. Moreover, $\mathcal{B}$ randomly chooses a new bit string, denoted by ${\phi _{G,SE,i,1}}$, which is distinct from all bit strings recorded in ${L_{G}}$ and ${L_{T}}$. Then $\mathcal{B}$ records (${P_{G,SE,i,1}}$, ${\phi _{G,SE,i,1}}$) in ${L_{G}}$.
-
(ii) $\mathcal{B}$ sets the polynomial ${P_{T,SE,i,2}}={T_{G,SE,i,1}}\cdot g$, which represents the $\mathit{RID}$ for ${\mathit{ID}_{SE,i}}$.
-
(iii) Finally, $\mathcal{B}$ first randomly chooses a new bit string, denoted by ${\phi _{T,SE,i,2}}$, which is distinct from all bit strings recorded in ${L_{G}}$ and ${L_{T}}$. Then $\mathcal{B}$ records (${P_{T,SE,i,2}}$, ${\phi _{T,SE,i,2}}$) in ${L_{T}}$ and returns (${\phi _{G,SE,i,1}}$, ${\phi _{T,SE,i,2}}$) to ${\mathcal{A}_{\mathit{NL}-I}}$.
-
-
• Public key retrieve query ${Q_{\mathit{PK}}}({\mathit{ID}_{PK,i}})$: Upon receiving the i-th Public key retrieve query with an identity ${\mathit{ID}_{PK,i}}\in {Z_{p}^{\ast }}$ as input, the challenger $\mathcal{B}$ performs the following three steps:
-
(i) $\mathcal{B}$ checks whether ${\mathit{ID}_{PK,i}}$ has been recorded in ${L_{\mathit{IK}}}$. If so, $\mathcal{B}$ obtains the corresponding polynomial of $\mathit{QID}$ for ${\mathit{ID}_{PK,i}}$ in ${L_{\mathit{IK}}}$. Otherwise, $\mathcal{B}$ performs the Initial key extract query along with identity ${\mathit{ID}_{PK,i}}$ to generate the polynomial of $\mathit{QID}$.
-
(ii) $\mathcal{B}$ also checks whether ${\mathit{ID}_{PK,i}}$ has been recorded in ${L_{\mathit{SK}}}$. If so, $\mathcal{B}$ obtains the corresponding polynomial of $\mathit{RID}$ for ${\mathit{ID}_{PK,i}}$ in ${L_{\mathit{SK}}}$. Otherwise, $\mathcal{B}$ performs the Secret key extract query with identity ${\mathit{ID}_{PK,i}}$ to generate the polynomial of $\mathit{RID}$ for ${\mathit{ID}_{PK,i}}$.
-
(iii) Finally, C returns two bit strings of polynomials representing $\mathit{QID}$ and $\mathit{RID}$ by searching ${L_{G}}$ and ${L_{T}}$, respectively.
-
-
• Public key replace query ${Q_{\mathit{PR}}}({\mathit{ID}_{\mathit{PR},i}},{\phi _{T,\mathit{PR},i,2}})$: By this query, the adversary ${\mathcal{A}_{\mathit{NL}-I}}$ is allowed to use the bit string ${\phi _{T,\mathit{PR},i,2}}$ to replace the partial public key $\mathit{RID}$ of a user with identity ${\mathit{ID}_{\mathit{PR},i}}$. That is, ${\mathcal{A}_{\mathit{NL}-I}}$ can select a valid secret key $\mathit{SID}$ (i.e. bit string ${\phi _{T,\mathit{PR},i,2}}$) by herself/himself and set the corresponding $\mathit{RID}$. $\mathcal{B}$ then records this replacement. More precisely, upon receiving this query, $\mathcal{B}$ first translates ${\phi _{T,\mathit{PR},i,2}}$ into the corresponding polynomial ${P_{T,\mathit{PR},i,2}}$ by the list ${L_{T}}$. Since ${\mathcal{A}_{\mathit{NL}-I}}$ has the ability to generate the user’s secret key by asking the group oracles, $\mathcal{B}$ can obtain the polynomial ${P_{G,\mathit{PR},i,1}}$ by searching ${P_{T,\mathit{PR},i,2}}={P_{G,\mathit{PR},i,1}}\cdot g$ in the list ${L_{G}}$. The challenger $\mathcal{B}$ then updates the user’s secret key (${\mathit{ID}_{\mathit{PR},i}}$, ${\mathit{SID}_{\mathit{PR},i}}$, ${\mathit{RID}_{\mathit{PR},i}})=({\mathit{ID}_{\mathit{PR},i}}$, ${P_{G,\mathit{PR},i,1}}$, ${P_{T,\mathit{PR},i,2}}$) in ${L_{\mathit{SK}}}$.
-
• Decrypt query ${Q_{D}}$(${\mathit{ID}_{D,i}},{C_{i}},C{T_{i}}$): For the i-th Decrypt round, when ${\mathcal{A}_{\mathit{NL}-I}}$ queries $\mathcal{B}$ along with a user’s identity ${\mathit{ID}_{D,i}}$ and a ciphertext pair (${C_{i}},C{T_{i}}$), $\mathcal{B}$ performs the following two parts to obtain the encryption key K:
-
(1) When $\mathcal{B}$ receives the query, $\mathcal{B}$ first obtains the user’s initial key $\mathit{DID}$ and secret key $\mathit{SID}$ from the lists ${L_{\mathit{IK}}}$ and ${L_{\mathit{SK}}}$, respectively, by the following procedures:
-
(i) $\mathcal{B}$ uses ${\mathit{ID}_{D,i}}$ to find the user’s initial key $\mathit{DID}$ in the list ${L_{\mathit{IK}}}$. If so, $\mathcal{B}$ obtains $\mathit{DID}$ in ${L_{\mathit{IK}}}$. Otherwise, $\mathcal{B}$ issues the query ${Q_{\mathit{IE}}}$(${\mathit{ID}_{D,i}}$) to obtain $\mathit{DID}$.
-
(ii) $\mathcal{B}$ uses ${\mathit{ID}_{D,i}}$ to find the user’s secret key $\mathit{SID}$ in the list ${L_{\mathit{SK}}}$. If so, $\mathcal{B}$ obtains $\mathit{SID}$ in ${L_{\mathit{SK}}}$. Otherwise, $\mathcal{B}$ issues the query ${Q_{\mathit{SE}}}$(${\mathit{ID}_{D,i}}$) to obtain $\mathit{SID}$.
-
(iii) Hence, $\mathcal{B}$ has obtained the polynomials ${P_{G,IE,k,1}}$ and ${P_{G,SE,l,1}}$, which represent $\mathit{DID}$ and $\mathit{SID}$, respectively.
-
-
(2) The challenger $\mathcal{B}$ obtains the encryption key K by performing the following steps:
-
(i) $\mathcal{B}$ checks whether the corresponding polynomial of the ciphertext ${C_{i}}$ has been recorded in the list ${L_{G}}$. If so, $\mathcal{B}$ obtains the polynomial ${P_{G,D,i,3}}$. Otherwise, $\mathcal{B}$ defines a new variate ${T_{G,D,i,3}}$ in G and sets ${P_{G,D,i,3}}={T_{G,D,i,3}}$. Moreover, $\mathcal{B}$ randomly chooses a bit string, denoted by ${\phi _{G,D,i,3}}$, which is distinct from all bit strings in ${L_{G}}$ and ${L_{T}}$.
-
(ii) $\mathcal{B}$ computes the polynomial ${P_{T,D,i,1}}={P_{G,SE,l,1}}\cdot {T_{G,D,i,1}}$ (which denotes ${K_{1}}$) and the polynomial ${P_{T,D,i,2}}={P_{G,IE,l,1}}\cdot {T_{G,D,i,1}}$ (which denotes ${K_{2}}$). $\mathcal{B}$ uses ${P_{T,D,i,1}}$ and ${P_{T,D,i,2}}$ to respectively find $({P_{T,m,j,r}},{\phi _{T,m,j,r}})$ and $({P_{T,m,j,2}},{\phi _{T,m,j,2}})$ in ${L_{T}}$ (i.e. $PT,m,j,r={P_{T,D,i,1}}$ and ${P_{T,m,j,2}}={P_{T,D,i,2}}$). If so, $\mathcal{B}$ then sets the ${\phi _{T,D,i,1}}={\phi _{T,m,j,r}}$ and ${\phi _{T,D,i,2}}={\phi _{T,m,j,2}}$. Otherwise, $\mathcal{B}$ randomly chooses two bit strings, denoted by ${\phi _{T,D,i,1}}$ and ${\phi _{T,D,i,2}}$, which represent the bit strings of ${K_{1}}$ and ${K_{2}}$, respectively. Then $\mathcal{B}$ records (${P_{T,D,i,1}}$, ${\phi _{T,D,i,1}}$) and (${P_{T,D,i,2}}$, ${\phi _{T,D,i,2}}$) in ${L_{T}}$.
-
-
-
-
– Challenge: The adversary ${\mathcal{A}_{\mathit{NL}-I}}$ gives a target identity ID${^{\ast }}$ and a plaintext pair $(ms{g_{0}^{\ast }},ms{g_{1}^{\ast }})$ to $\mathcal{B}$. Because ${\mathcal{A}_{\mathit{NL}-I}}$ is an outsider, ID${^{\ast }}$ is disallowed to be queried in the Initial key extract query of Phase 1. The challenger $\mathcal{B}$ first chooses a random bit $\beta \in \{0,1\}$, then $\mathcal{B}$ defines a new variate ${T_{G,C,1,3}}$ in G and sets ${P_{G,C,1,3}}={T_{G,C,1,3}}$ (which denotes ${C^{\ast }}$). Moreover, $\mathcal{B}$ randomly chooses a bit string, denoted by ${\phi _{G,C,i,3}}$. Afterwards, $\mathcal{B}$ obtains K by the same steps described in the second part of the Decrypt query. At the end of this phase, the challenger $\mathcal{B}$ computes the ciphertext $C{T^{\ast }}={E_{K}}(ms{g_{\beta }^{\ast }})$. Finally, $\mathcal{B}$ returns ${C^{\ast }}$ and $C{T^{\ast }}$ to ${\mathcal{A}_{\mathit{NL}-I}}$.
-
– Guess: The adversary ${\mathcal{A}_{\mathit{NL}-I}}$ outputs ${\beta ^{\prime }}\in \{0,1\}$. If ${\beta ^{\prime }}=\beta $, we say that the adversary ${\mathcal{A}_{\mathit{NL}-I}}$ wins the game ${g_{\mathit{NL}-I}}$.
-
(1) In the Phase 1, ${\mathcal{A}_{\mathit{NL}-I}}$ may issue eight kinds of queries ${Q_{G}}$, ${Q_{T}}$, ${Q_{P}}$, ${Q_{\mathit{IE}}}$, ${Q_{\mathit{SE}}}$, ${Q_{\mathit{PK}}}$, ${Q_{\mathit{PR}}}$, ${Q_{D}}$. We define several collections (sets) as follows:
-
• $\{S\}$: The collection of all used variates ${S_{G,Q,i,j}}$ in the query ${Q_{G}}$ and ${S_{G,P,i,j}}$ in the query ${Q_{P}}$.
-
• $\{V\}$: The collection of all used variates ${V_{T,Q,i,j}}$ in the query ${Q_{T}}$.
-
• $\{T\}$: The collection of all used variates ${T_{G,IE,i,2}}$ in the query ${Q_{\mathit{IE}}}$, ${T_{G,D,i,3}}$ in the query ${Q_{D}}$ and ${T_{G,SE,i,1}}$ in the query ${Q_{\mathit{SE}}}$.
-
• $\{\mathit{PG}\}$: The collection of all used polynomials ${P_{G,Q,i,k}}$ , ${P_{G,IE,i,k}}$ and ${P_{G,D,i,k}}$ in the Phase 1.
-
• $\{\mathit{PT}\}$: The collection of all used polynomials ${P_{T,Q,i,k}}$ and ${P_{T,P,i,k}}$ in the Phase 1.
-
-
(2) Let ${q_{O}}$ denote the total number of three queries ${Q_{G}}$, ${Q_{T}}$ and ${Q_{P}}$ while ${q_{\mathit{IE}}}$, ${q_{\mathit{SE}}}$, ${q_{\mathit{PK}}}$, ${q_{\mathit{PR}}}$ and ${q_{D}}$, respectively, represent the numbers of ${Q_{\mathit{IE}}}$, ${Q_{\mathit{SE}}}$, ${Q_{\mathit{PK}}}$, ${Q_{\mathit{PR}}}$ and ${Q_{D}}$. Note that ${\mathcal{A}_{\mathit{NL}-I}}$ can issue all kinds of queries at most q times in total. Hence, we have $q\geqslant {q_{O}}+{q_{\mathit{IE}}}+{q_{\mathit{SE}}}+{q_{\mathit{PK}}}+{q_{\mathit{PR}}}+{q_{D}}$. Let $|{L_{G}}|$ and $|{L_{T}}|$ be the total numbers of elements in ${L_{G}}$ and ${L_{T}}$, respectively. Therefore, $|{L_{G}}|$+ $|{L_{T}}|$ is bounded by $6q$ due to the following reasons:
-
• For each query of ${Q_{G}}$, ${Q_{T}}$ or ${Q_{P}}$, at most 3 elements are recorded in ${L_{G}}$ or ${L_{T}}$.
-
• For each query of ${Q_{\mathit{IE}}}$ or ${Q_{\mathit{SE}}}$, at most 2 new elements are recorded in ${L_{G}}$ or ${L_{T}}$.
-
• For each query of ${Q_{\mathit{PK}}}$, at most 4 new elements are recorded in ${L_{G}}$ or ${L_{T}}$.
-
• For each query of ${Q_{\mathit{PR}}}$, at most 2 new elements are recorded in ${L_{G}}$ or ${L_{T}}$.
-
• For each query of ${Q_{D}}$, at most 6 new elements are recorded in ${L_{G}}$ or ${L_{T}}$.
\[ |{L_{G}}|+|{L_{T}}|\leqslant 5+3{q_{O}}+2{q_{\mathit{IE}}}+2{q_{\mathit{SE}}}+4{q_{\mathit{PK}}}+2{q_{\mathit{PR}}}+6{q_{D}}+1.\]Let $6\leqslant 3{q_{O}}+4{q_{\mathit{IE}}}+4{q_{\mathit{SE}}}+2{q_{\mathit{PK}}}+4{q_{\mathit{PR}}}$, we have -
-
(3) In the following, we discuss the degrees of all multivariate polynomials in $\{{P_{G}}\}$.
-
• All polynomials in $\{S\}$ and $\{T\}$ are of degree 1.
-
• In ${Q_{\mathit{IE}}}$, each polynomial ${P_{G,\mathit{IE},i,k}}$ has degree at most 2.
-
• In ${Q_{\mathit{SE}}}$, each polynomial ${P_{G,\mathit{SE},i,1}}$ has degree 1.
-
• In ${Q_{D}}$, each polynomial ${P_{G,D,i,k}}$ has degree at most 2.
-
• In ${Q_{G}}$, the polynomial ${P_{G,Q,i,3}}$ is generated by ${P_{G,Q,i,3}}={P_{G,Q,i,1}}+{P_{G,Q,i,2}}$. Hence the degree of ${P_{G,Q,i,3}}$ is less than or equal to the maximal degree of ${P_{G,Q,i,1}}$ and ${P_{G,Q,i,2}}$.
-
-
(4) In the following, we obtain that the degrees of all multivariate polynomials in $\{{P_{T}}\}$ are at most 4:
-
• All polynomials in {V} are of degree 1.
-
• In ${Q_{P}}$, the degree of each polynomial ${P_{T,P,i,k}}$ is at most 4 since each polynomial ${P_{G}}$ has degree at most 2.
-
• In ${Q_{\mathit{SE}}}$, the degree of each polynomial ${P_{T,\mathit{SE},i,2}}$ is 2.
-
• In ${Q_{T}}$, the polynomial ${P_{T,Q,i,3}}$ is generated by ${P_{T,Q,i,3}}={P_{T,Q,i,1}}+{P_{T,Q,i,2}}$. Hence, the degree of ${P_{G,Q,i,3}}$ is less than or equal to the maximal degree of ${P_{T,Q,i,1}}$ and ${P_{T,Q,i,2}}$.
-
-
• Case 1. There is a collision in G or ${G_{T}}$ which can be described as follows:
-
(i) In the list ${L_{G}}$, there exist two polynomials ${P_{G,i}}$ and ${P_{G,j}}$ such that ${P_{G,i}}$(x , ${u_{0}}$, ${u_{1}}$, $\{s\}$, $\{t\})={P_{G,j}}(x,{u_{0}},{u_{1}},\{s\},\{t\})$.
-
(ii) In the list ${L_{T}}$, there exist two polynomials ${P_{T,i}}$ and ${P_{T,j}}$ such that ${P_{T,i}}(x,{u_{0}},{u_{1}},s,\{t\},\{v\})={P_{T,j}}(x,{u_{0}},{u_{1}},s,\{t\},\{v\})$ .
-
-
• Case 2. The adversary ${\mathcal{A}_{\mathit{NL}-I}}$ outputs ${\beta ^{\prime }}=\beta $ in the Guess phase.
-
• Case 1. If ${\mathcal{A}_{\mathit{NL}-I}}$ can find any collisions within G or ${G_{T}}$, one can solve the discrete logarithm problem in G or ${G_{T}}$. Let ${P_{G,i}}$ and ${P_{G,j}}$ denote two distinct polynomials in ${L_{G}}$. Then we obtain the polynomials ${P_{G,C}}={P_{G,i}}-{P_{G,j}}$ is a non-zero polynomial of degree at most 2. By applying Lemma 2 in Section 2 with $\lambda =0$, the probability that ${P_{G,C}}(x,{u_{0}},{u_{1}},\{s\},\{t\})=0$ in ${Z_{q}}$ is at most $\frac{2}{p}$. Since there are $\left(\genfrac{}{}{0pt}{}{|{L_{G}}|}{2}\right)$ different pairs $({P_{G,i}},{P_{G,j}})$, the probability that Case 1 occurs is at most $\frac{2}{p}\left(\genfrac{}{}{0pt}{}{|{L_{G}}|}{2}\right)$. Similarly, the collision probability in ${L_{T}}$ is at most $\frac{4}{p}\left(\genfrac{}{}{0pt}{}{|{L_{T}}|}{2}\right)$ since the polynomials in ${L_{T}}$ have degree at most 4.
-
• Case 2. If ${\mathcal{A}_{\mathit{NL}-I}}$ can’t find any collision in G or ${G_{T}}$, the view of ${\mathcal{A}_{\mathit{NL}-I}}$ in the game ${g_{\mathit{NL}-I}}$ is identical to that in the real CL-IND-CCA game. If the adversary ${\mathcal{A}_{\mathit{NL}-I}}$ doesn’t obtain any useful information in the game ${g_{\mathit{NL}-I}}$, she/he still has the probability $\frac{1}{2}$ on average to output a correct ${\beta ^{\prime }}=\beta $.
Theorem 2.
Proof.
-
– Setup: In this phase, the challenger $\mathcal{B}$ constructs two lists ${L_{G}}$ and ${L_{T}}$ to record the elements in G and ${G_{T}}$, respectively. $\mathcal{B}$ also maintains two lists ${L_{\mathit{IK}}}$ and ${L_{\mathit{SK}}}$ to record the user’s initial key and the user’s secret key, respectively. The forms of ${L_{G}}$, ${L_{T}}$, ${L_{\mathit{IK}}}$ and ${L_{\mathit{SK}}}$ are the same with those described in the game ${g_{\mathit{NL}-I}}$. At the end of this phase, the challenger $\mathcal{B}$ sends the bit strings of the public parameters $\mathit{PP}$ to ${\mathcal{A}_{\mathit{NL}-\mathit{II}}}$. Since ${\mathcal{A}_{\mathit{NL}-\mathit{II}}}$ represents an honest-but-curious KGC, $\mathcal{B}$ also sends the system secret key X (using the form of bit string) to ${\mathcal{A}_{\mathit{NL}-\mathit{II}}}$.
-
– Phase 1: Since ${\mathcal{A}_{\mathit{NL}-\mathit{II}}}$ models the honest-but-curious KGC, ${\mathcal{A}_{\mathit{NL}-\mathit{II}}}$ can obtain the user’s initial key by issuing the queries ${Q_{G}}$, ${Q_{T}}$ and ${Q_{P}}$. Meanwhile, ${\mathcal{A}_{\mathit{NL}-\mathit{II}}}$ is not allowed to perform the Public key replacement query. In this phase, ${\mathcal{A}_{\mathit{NL}-\mathit{II}}}$ can adaptively issue the queries as follows:
-
• Group G query ${Q_{G}}$(${\phi _{G,Q,i,1}}$, ${\phi _{G,Q,i,2}}$, operation): The query is identical to ${Q_{G}}$ presented in the game ${g_{\mathit{NL}-I}}$.
-
• Group ${G_{T}}$ query ${Q_{T}}$(${\phi _{T,Q,i,1}}$, ${\phi _{T,Q,i,2}}$, operation): The query is identical to ${Q_{T}}$ presented in the game ${g_{\mathit{NL}-I}}$.
-
• Pairing query ${Q_{P}}$(${\phi _{G,P,i,1}}$, ${\phi _{G,P,i,2}}$ ): The query is identical to ${Q_{P}}$ presented in the game ${g_{\mathit{NL}-I}}$.
-
• Secret key extract query ${Q_{\mathit{SE}}}$(${\mathit{ID}_{\mathit{SE},i}}$): The query is identical to ${Q_{\mathit{SE}}}$ presented in the game ${g_{\mathit{NL}-I}}$.
-
• Public key retrieve query ${Q_{\mathit{PK}}}$(${\mathit{ID}_{\mathit{PK},i}}$): For the i-th Public key retrieve query with an identity ${\mathit{ID}_{PK,i}}$, $\mathcal{B}$ runs three steps as follows:
-
(i) $\mathcal{B}$ checks whether ${\mathit{ID}_{PK,i}}$ was recorded in ${L_{\mathit{IK}}}$. If so, $\mathcal{B}$ may obtain the corresponding polynomial of $\mathit{QID}$ for ${\mathit{ID}_{PK,i}}$. Otherwise, $\mathcal{B}$ uses the records of the queries ${Q_{G}}$, ${Q_{T}}$ and ${Q_{P}}$ to obtain the corresponding polynomials of $\mathit{DID}$ and $\mathit{QID}$ for ${\mathit{ID}_{\mathit{PK},i}}$ while updating the list ${L_{\mathit{IK}}}$ for ${\mathit{ID}_{\mathit{PK},i}}$.
-
(ii) $\mathcal{B}$ checks whether ${\mathit{ID}_{\mathit{PK},i}}$ was recorded in ${L_{\mathit{SK}}}$. If so, $\mathcal{B}$ may obtain the corresponding polynomial of $\mathit{RID}$ for ${\mathit{ID}_{\mathit{PK},i}}$. Otherwise, $\mathcal{B}$ may issue the Secret key extract query ${Q_{\mathit{SE}}}({\mathit{ID}_{PK,i}})$ to obtain the corresponding polynomial of $\mathit{RID}$ for ${\mathit{ID}_{\mathit{PK},i}}$.
-
(iii) Finally, $\mathcal{B}$ returns $\mathit{QID}$ and $\mathit{RID}$ (with the form of bit strings) by searching the lists ${L_{G}}$ and ${L_{T}}$, respectively.
-
-
• Decrypt query ${Q_{D}}({\mathit{ID}_{D,i}},{C_{i}},C{T_{i}})$: For the i-th Decrypt round, when ${\mathcal{A}_{\mathit{NL}-\mathit{II}}}$ queries $\mathcal{B}$ along with a user’s identity ${\mathit{ID}_{D,i}}$ and a ciphertext pair $({C_{i}},C{T_{i}})$, $\mathcal{B}$ performs the following two parts to obtain the encryption key K:
-
(1) $\mathcal{B}$ first obtains the user’s initial key $\mathit{DID}$ and secret key $\mathit{SID}$ from the lists ${L_{\mathit{IK}}}$ and ${L_{\mathit{SK}}}$ as follows:
-
(i) $\mathcal{B}$ checks whether the user’s initial key $\mathit{DID}$ of ${\mathit{ID}_{D,i}}$ has been recorded in ${L_{\mathit{IK}}}$. If so, $\mathcal{B}$ obtains the corresponding polynomial of $\mathit{DID}$ for ${\mathit{ID}_{D,i}}$ in ${L_{\mathit{IK}}}$. Otherwise, $\mathcal{B}$ uses the records of the queries ${Q_{G}}$, ${Q_{T}}$ and ${Q_{P}}$ to obtain the corresponding polynomials of $\mathit{DID}$ and $\mathit{QID}$ for ${\mathit{ID}_{D,i}}$ while updating the list ${L_{\mathit{IK}}}$ for ${\mathit{ID}_{D,i}}$.
-
(ii) $\mathcal{B}$ uses ${\mathit{ID}_{D,i}}$ to find the user’s secret key $\mathit{SID}$ in the list ${L_{\mathit{SK}}}$. If so, $\mathcal{B}$ obtains $\mathit{SID}$ in ${L_{\mathit{SK}}}$. Otherwise, $\mathcal{B}$ issues the query ${Q_{\mathit{SE}}}$(${\mathit{ID}_{D,i}}$) to obtain $\mathit{SID}$.
-
(iii) Hence, $\mathcal{B}$ have obtained the corresponding polynomials ${P_{G,IE,k,1}}$ and ${P_{G,SE,l,1}}$, which represent $\mathit{DID}$ and $\mathit{SID}$, respectively.
-
-
(2) $\mathcal{B}$ can obtain the encryption key K by using the same steps in the Decrypt query of the game ${g_{\mathit{NL}-I}}$.
-
-
-
– Challenge: This phase is similar to the Challenge phase described in ${g_{\mathit{NL}-I}}$. The only difference is that ID${^{\ast }}$ is not allowed to be queried in the Secret key extract query of Phase 1 since ${\mathcal{A}_{\mathit{NL}-\mathit{II}}}$ is the honest-but-curious KGC.
-
– Guess: The adversary ${\mathcal{A}_{\mathit{NL}-\mathit{II}}}$ outputs ${\beta ^{\prime }}\in \{0,1\}$. If ${\beta ^{\prime }}=\beta $, we say that the adversary ${\mathcal{A}_{\mathit{NL}-\mathit{II}}}$ wins the game ${g_{\mathit{NL}-\mathit{II}}}$.
Theorem 3.
Proof.
-
– Setup: The phase is identical to that of the game ${g_{\mathit{NL}-I}}$.
-
– Phase 1: In this phase, the adversary ${\mathcal{A}_{\mathit{LR}-I}}$ can issue two additional leakage queries than the adversary ${\mathcal{A}_{\mathit{NL}-I}}$ in the game ${g_{\mathit{NL}-I}}$, namely, Initial key extract leak query and Decrypt leak query. In order to record the leakage information for two kinds of leak queries, we build four initial-empty lists ${L_{f,IE}}$, ${L_{h,\mathit{IE}}}$, ${L_{f,D}}$ and ${L_{h,D}}$ as follows:\[\begin{array}{l}\displaystyle {L_{f,\mathit{IE}}}=\big\{({f_{\mathit{IE},i}},\Lambda {f_{\mathit{IE},i}}),1\leqslant i\leqslant {q_{\mathit{IE}}}\big\},\\ {} \displaystyle {L_{h,\mathit{IE}}}=\big\{({h_{\mathit{IE},i}},\Lambda {h_{\mathit{IE},i}}),1\leqslant i\leqslant {q_{\mathit{IE}}}\big\},\\ {} \displaystyle {L_{f,D}}=\big\{({f_{D,j}},\Lambda {f_{D,j}}),1\leqslant j\leqslant {q_{D}}\big\},\\ {} \displaystyle {L_{h,D}}=\big\{({h_{D,j}},\Lambda {h_{D,j}}),1\leqslant j\leqslant {q_{D}}\big\}.\end{array}\]Two leakage functions ${f_{\mathit{IE},i}}$ and ${h_{\mathit{IE},i}}$ are, respectively, used to model the adversary’s leak ability for two sub-algorithms Extract-1 and Extract-2 of the i-th Initial key extract round. Also, two leakage functions ${f_{S,j}}$ and ${h_{S,j}}$ are, respectively, used to model the adversary’s leak ability for two sub-algorithms Decrypt-1 and Decrypt-2 of a user’s j-th Decrypt round. Moreover, the leakage information $\Lambda {f_{\mathit{IE},i}}$, $\Lambda {h_{\mathit{IE},i}}$, $\Lambda {f_{D,j}}$ and $\Lambda {h_{D,j}}$ denote the outputs of four leakage functions ${f_{\mathit{IE},i}}$ , ${h_{\mathit{IE},i}}$, ${f_{D,j}}$ and ${h_{D,j}}$, respectively. In the following, we describe two additional leakage queries as follows:
-
• Initial key extract leak query $({f_{\mathit{IE},i}},{h_{\mathit{IE},i}},i)$: For the i-th Initial key extract query, ${\mathcal{A}_{\mathit{LR}-I}}$ can issue the Initial key extract leak query only once by providing two leakage functions ${f_{\mathit{IE},i}}$ and ${h_{\mathit{IE},i}}$ such that $|{f_{\mathit{IE},i}}|\leqslant \lambda $ and $|{h_{\mathit{IE},i}}|\leqslant \lambda $. $\mathcal{B}$ computes and sends the leakage information $(\Lambda {f_{\mathit{IE},i}},\Lambda {h_{\mathit{IE},i}})$ to ${\mathcal{A}_{\mathit{LR}-I}}$, where $\Lambda {f_{\mathit{IE},i}}={f_{\mathit{IE},i}}({\mathit{SK}_{i-1,1}},{\gamma _{i}},{a_{i}})$ and $\Lambda {h_{\mathit{IE},i}}={h_{\mathit{IE},i}}({\mathit{SK}_{i-1,2}},{\mathit{TI}_{\mathit{IE}}},{a_{i}})$. Meanwhile, $\mathcal{B}$ records $({f_{\mathit{IE},i}},\Lambda {f_{\mathit{IE},i}})$ in the list ${L_{f,IE}}$ and $({h_{\mathit{IE},i}},\Lambda {h_{\mathit{IE},i}})$ in the list ${L_{h,\mathit{IE}}}$.
-
• Decrypt leak query $({f_{D,j}},{h_{D,j}},j)$: For the j-th Decrypt query, ${\mathcal{A}_{\mathit{LR}-I}}$ can issue the Decrypt leak query only once by providing two leakage functions ${f_{D,j}}$ and ${h_{D,j}}$ such that $|{f_{D,i}}|\leqslant \lambda $ and $|{h_{D,i}}|\leqslant \lambda $. $\mathcal{B}$ computes and sends the leakage information $(\Lambda {f_{D,j}},\Lambda {h_{D,j}})$ to ${\mathcal{A}_{\mathit{LR}-I}}$, where $\Lambda {f_{D,j}}={f_{D,j}}({\mathit{DID}_{j-1,1}},{b_{j}},{c_{j}})$ and $\Lambda {h_{D,j}}={h_{D,j}}({\mathit{DID}_{j-1,2}},{\mathit{TI}_{1,j}},{\mathit{TI}_{2,j}},{b_{j}},{c_{j}},{K_{1,j}},{K_{2,j}},{K_{j}})$. Meanwhile, $\mathcal{B}$ records $({f_{D,j}},\Lambda {f_{D,j}})$ in the list ${L_{f,D}}$ and (${h_{D,j}}$, $\Lambda {h_{D,j}}$) in the list ${L_{h,D}}$.
-
-
– Challenge: The adversary ${\mathcal{A}_{\mathit{LR}-I}}$ gives a target identity ID${^{\ast }}$ and a plaintext pair ($ms{g_{0}^{\ast }}$, $ms{g_{1}^{\ast }}$) to $\mathcal{B}$. This phase is identical to the Challenge phase in ${g_{\mathit{NL}-I}}$. Finally, $\mathcal{B}$ sends ${C^{\ast }}$ and $C{T^{\ast }}$ to ${\mathcal{A}_{\mathit{LR}-I}}$.
-
– Guess: The adversary ${\mathcal{A}_{\mathit{LR}-I}}$ outputs ${\beta ^{\prime }}\in \{0,1\}$. If ${\beta ^{\prime }}=\beta $, we say that the adversary ${\mathcal{A}_{\mathit{LR}-I}}$ wins the game ${g_{\mathit{LR}-I}}$.
-
• ${\gamma _{i}}$: The value ${\gamma _{i}}$ is used to generate the initial key $({\mathit{DID}_{0}},\mathit{QID})$ for ${\mathit{ID}_{\mathit{IE},i}}$ in the Initial key extract query. By Definition 2 in Section 3.2, if ${\mathit{ID}_{\mathit{IE},i}}$ has been queried in the Initial key extract query, it is not allowed to be a target identity in the Challenge phase. Hence, the leakage of ${\gamma _{i}}$ is useless for ${\mathcal{A}_{\mathit{LR}-I}}$.
-
• $({\mathit{SK}_{i-1,1}},{\mathit{SK}_{i-1,2}})$: Since the system secret key $X={\mathit{SK}_{i-1,1}}\cdot {\mathit{SK}_{i-1,2}}$, obtaining some leakage information of ${\mathit{SK}_{i,1}}$ and ${\mathit{SK}_{i,2}}$ is contributive to learn partial information of X for ${\mathcal{A}_{\mathit{LR}-I}}$. Indeed, ${\mathcal{A}_{\mathit{LR}-I}}$ can learn at most 2λ bits of the system secret key X.
-
• ${a_{i}}$: The parameter ${a_{i}}$ is used to generate the next system secret key $({\mathit{SK}_{i,1}},{\mathit{SK}_{i,2}})$ from $({\mathit{SK}_{i-1,1}},{\mathit{SK}_{i-1,2}})$. Hence, ${\mathcal{A}_{\mathit{LR}-I}}$ may obtain at most λ bits of ${\mathit{SK}_{i,1}}$ and ${\mathit{SK}_{i,2}}$, respectively.
-
• ${\mathit{TI}_{\mathit{IE}}}$: The temporary information ${\mathit{TI}_{\mathit{IE}}}$ is only used to generate the initial key ${\mathit{DID}_{0}}$ for ${\mathit{ID}_{\mathit{IE},i}}$. ${\mathit{TI}_{\mathit{IE}}}$ is helpless in this game ${g_{\mathit{LR}-I}}$ since ${\mathit{ID}_{\mathit{IE},i}}$ is not allowed to be a target identity in the Challenge phase.
-
• $({\mathit{DID}_{j-1,1}},{\mathit{DID}_{j-1,2}})$: Since the user’s first initial key ${\mathit{DID}_{0}}={\mathit{DID}_{j-1,1}},{\mathit{DID}_{j-1,2}}$, obtaining some leakage information of ${\mathit{DID}_{j-1,1}}$ and ${\mathit{DID}_{j-1,2}}$ is contributive to learn partial information of ${\mathit{DID}_{0}}$ for ${\mathcal{A}_{\mathit{LR}-I}}$. Indeed, ${\mathcal{A}_{\mathit{LR}-I}}$ can learn at most 2λ bits of the user’s initial key ${\mathit{DID}_{0}}$.
-
• $({\mathit{TI}_{1,j}},{\mathit{TI}_{2,j}})$: The temporary information ${\mathit{TI}_{1,j}}$ and ${\mathit{TI}_{2,j}}$ are used to compute ${K_{1,j}}$ and ${K_{2,j}}$, respectively. Since each encryption key ${K_{j}}={K_{1,j}}\oplus {K_{2,j}}$ is independent with each other, obtaining ${\mathit{TI}_{1,j}}$ and ${\mathit{TI}_{2,j}}$ is helpless in the Guess phase.
-
• ${b_{j}}$: The parameter ${b_{j}}$ is used to compute the user’s initial key $({\mathit{DID}_{j,1}},{\mathit{DID}_{j,2}})$ from $({\mathit{DID}_{j-1,1}},{\mathit{DID}_{j-1,2}})$. Therefore, ${\mathcal{A}_{\mathit{LR}-I}}$ can learn at most λ bits of ${\mathit{DID}_{j,1}}$ and ${\mathit{DID}_{j,2}}$, respectively.
-
• ${c_{j}}$: The parameter ${c_{j}}$ is used to compute the user secret key $({\mathit{SID}_{j,1}},{\mathit{SID}_{j,2}})$ from $({\mathit{SID}_{j-1,1}},{\mathit{SID}_{j-1,2}})$. Therefore, ${\mathcal{A}_{\mathit{LR}-I}}$ can learn at most λ bits of ${\mathit{SID}_{j,1}}$ and ${\mathit{SID}_{j,2}}$, respectively.
-
• $({K_{1,j}},{K_{2,j}},{K_{j}})$: For the j-th Decrypt query, ${\mathcal{A}_{\mathit{LR}-I}}$ can use the leakage function ${h_{D,j}}$ to obtain the leakage information about $({K_{1,j}},{K_{2,j}},{K_{j}})$ once for totally at most λ bits. Since ${K_{1,j}}$ and ${K_{2,j}}$ can only be used to generate ${K_{j}}$, adversary ${\mathcal{A}_{\mathit{LR}-I}}$ can learn at most λ bits information about ${K_{j}}$ in the game ${g_{L-IR}}$.
-
(1) The event $\mathit{EI}$ denotes that the adversary ${\mathcal{A}_{\mathit{LR}-I}}$ may obtain ${\mathit{DID}_{0}}$ completely from the leakage information $\Lambda {f_{D,j}}$ and $\Lambda {h_{D,j}}$.
-
(2) The event $\mathit{ES}$ denotes that the adversary ${\mathcal{A}_{\mathit{LR}-I}}$ may obtain the system secret key X completely from the leakage information $\Lambda {f_{\mathit{IE},i}}$ and $\Lambda {h_{\mathit{IE},i}}$.
-
(3) The event $\mathit{EC}$ denotes that the adversary ${\mathcal{A}_{\mathit{LR}-I}}$ may output a correct ${\beta ^{\prime }}$.
Proof.
Proof.
Theorem 4.
Proof.
-
– Setup: The phase is identical to that of ${g_{\mathit{NL}-\mathit{II}}}$.
-
– Phase 1: In this phase, ${\mathcal{A}_{\mathit{LR}-\mathit{II}}}$ can issue an extra leakage query (i.e. Decrypt leak query) than the adversary ${\mathcal{A}_{\mathit{NL}-\mathit{II}}}$ in the game ${g_{\mathit{NL}-\mathit{II}}}$. In order to record the leakage information for the Decrypt leak query, we build two initial-empty lists ${L_{f,D}}$ and ${L_{h,D}}$, which are identical to those in the game ${g_{\mathit{LR}-I}}$.
-
– Challenge: The adversary ${\mathcal{A}_{\mathit{LR}-\mathit{II}}}$ gives a target identity ID${^{\ast }}$ and a plaintext pair ($ms{g_{0}^{\ast }}$, $ms{g_{1}^{\ast }}$) to $\mathcal{B}$. This phase is identical to the Challenge phase in ${g_{\mathit{NL}-\mathit{II}}}$. Finally, $\mathcal{B}$ sends ${C^{\ast }}$ and $CT$* to ${\mathcal{A}_{\mathit{LR}-\mathit{II}}}$.
-
– Guess: The adversary ${\mathcal{A}_{\mathit{LR}-\mathit{II}}}$ outputs ${\beta ^{\prime }}\in \{0,1\}$. If ${\beta ^{\prime }}=\beta $, we say that the adversary ${\mathcal{A}_{\mathit{LR}-\mathit{II}}}$ wins the game ${g_{\mathit{LR}-\mathit{II}}}$.
-
• $({\mathit{SID}_{j-1,1}},{\mathit{SID}_{j-1,2}})$: Since the user’s secret key ${\mathit{SID}_{0}}={\mathit{SID}_{j-1,1}}\cdot {\mathit{SID}_{j-1,2}}$, obtaining some leakage information of ${\mathit{SID}_{j-1,1}}$ and ${\mathit{SID}_{j-1,2}}$ is contributive to learn the partial information of ${\mathit{SID}_{0}}$ for ${\mathcal{A}_{\mathit{LR}-\mathit{II}}}$. Indeed, ${\mathcal{A}_{\mathit{LR}-\mathit{II}}}$ can learn at most 2λ bits of the user’s secret key ${\mathit{SID}_{0}}$.
-
(1) The event $\mathit{EU}$ denotes that the user’s secret key ${\mathit{SID}_{0}}$ can be obtained completely by ${\mathcal{A}_{\mathit{LR}-\mathit{II}}}$ from the leakage information $\Lambda {f_{D,j}}$ and $\Lambda {h_{D,j}}$.
-
(2) The event $\mathit{EC}$ denotes that ${\mathcal{A}_{\mathit{LR}-\mathit{II}}}$ can guess ${\beta ^{\prime }}$ correctly.
Proof.
6 Performance Analysis
Table 1
The LR-CL-PKE scheme (Xiong et al., 2013) | The proposed LR-CL-KE scheme | |
Encryption cost | $(n+4){T_{e}}$ | $4{T_{e}}+4{T_{p}}$ |
Decryption cost | $(n+2){T_{p}}$ | $4{T_{e}}+4{T_{p}}$ |
Security model | Standard model (Dual system) | GBG model |
Security property | LR-CCA1 | LR-CCA1 |
Leakage model | Bounded leakage | Continue leakage |