文章目录
- 算法描述
- 定义
- 定义7.(PKE 公钥加密方案)一个公钥加密方案(PKE)包括如下三个PPT算法:KeyGen, Encrypt 和 Decrypt。
- 定义8.
- 定义9. (KEM 密钥封装方案)一个密钥封装方案(KEM)包括如下三个PPT算法:KeyGen, Encaps 和 Decaps。
- 定义10. (PKE 的 IND-CPA 安全度)设 PKE = (KeyGen, Encrypt, Decrypt) 为公钥加密方案。定义敌手A与挑战者之间的实验:
- 定义11. (KEM 的 IND-CCA 安全度)设 KEM = (KeyGen, Encaps, Decaps) 为密钥封装方案。定义敌手 A 与挑战者之间的实验:
算法描述
定义
定义7.(PKE 公钥加密方案)一个公钥加密方案(PKE)包括如下三个PPT算法:KeyGen, Encrypt 和 Decrypt。
-
KeyGen(1^k): 密钥生成算法输入安全参数1^k,输出公私钥对(pk, sk)。
-
Encrypt(pk, m): 加密算法输入公钥pk 和加密消息m ∈ M,输出密文c。
-
Decrypt(sk, c): 解密算法输入私钥sk 和密文c;输出加密消息m 或者 ⊥(解密失败)。
正确性 如果 ϵ 是一个可忽略数值函数,对所有的 m ∈ M,满足
Pr[(pk, sk) ← KeyGen(1^k) : C ← Encrypt(pk, m); Decrypt(sk, c) = m] > 1 - ϵ(λ)
则 PKE 方案正确性得以保证。
定义8.
(PKE δ-correctness[21])
如果
\mathbb{E}\left[ \max_{m \in \mathcal{M}} \Pr[\text{PKE.Dec}(sk, c) \ne m : c \leftarrow \text{PKE.Enc}(pk, m)] \right] \le \delta,
这里的期望取遍 (pk, sk) \leftarrow \text{PKE.KeyGen}() ,则一个消息空间为 \mathcal{M} 的公钥加密方案 PKE 是 δ-correctness。
定义9. (KEM 密钥封装方案)一个密钥封装方案(KEM)包括如下三个PPT算法:KeyGen, Encaps 和 Decaps。
KeyGen(1^k): 密钥生成算法输入安全参数1^k,输出公私钥对 (pk, sk)。
Encaps(pk): 封装算法输入公钥 pk,输出密文 c 和封装密钥 K。
Decaps(sk, c): 解封算法输入私钥 sk 和密文 c,输出封装密钥 K。
正确性 如果 ϵ 是一个可忽略数值函数,满足
Pr[(pk, sk) ← KeyGen(1^k) : (c, K) ← Encaps(pk); Decaps(sk, c) = K] > 1 - ϵ(λ)
则 KEM 方案正确性得以保证。
定义10. (PKE 的 IND-CPA 安全度)设 PKE = (KeyGen, Encrypt, Decrypt) 为公钥加密方案。定义敌手A与挑战者之间的实验:
实验 \text{IND-CPA}^b_{\text{PKE}, A}(k) :
- 挑战者运行 (pk, sk) \leftarrow \text{KeyGen}(\text{params}),将 pk 给 A;
- 敌手 A 输出相同长度消息 (m_0, m_1);
- 挑战者计算 \text{Encrypt}(pk, m_b) ,并将结果给 A;
- A 输出比特 (b’); 挑战者将 (b’) 作为实验输出。
- 敌手 A 破解 IND-CPA 安全的 PKE 的优势定义为
\text{Adv}^{\text{IND-CPA}}{PKE,A} = \left| \Pr[\text{IND-CPA}^1{PKE,A}(k) = 1] - \Pr[\text{IND-CPA}^0_{\text{PKE}, A}(k) = 1]\right|
则如果对任意多项式时间敌手 A 和任意 (k),设 ϵ 是可忽略数值函数,满足
\text{Adv}^{\text{IND-CPA}}_{\text{PKE}, A} \le ϵ(k)
我们称 PKE 为 IND-CPA 安全的。
定义11. (KEM 的 IND-CCA 安全度)设 KEM = (KeyGen, Encaps, Decaps) 为密钥封装方案。定义敌手 A 与挑战者之间的实验:
实验 \text{IND-CCA}^b_{\text{KEM}, A}(k):
-
挑战者运行 (pk, sk) \leftarrow \text{KeyGen}(\text{params}),将 pk 给 A;
-
A 可访问解封示谕器 \text{Decaps}(sk, \cdot);
-
挑战者计算 (c^{} , K_0^{} )\leftarrow \text{Encaps}(pk) 以及K_1^* \leftarrow K
挑战者将 ((c^, K_b^)) 给 (A); -
A 可以接着访问解封示谕器,但不允许访问密文 (c^*);最终 (A) 输出比特 b’ 。挑战者将 b’ 作为实验输出。
在量子随机谕示模型下,挑战者可另外运行随机谕示器。敌手 A 破解 IND-CCA 安全的 KEM 的优势定义为
\text{Adv}^{\text{IND-CCA}}{KEM,A} = \left| \Pr[\text{IND-CCA}^1{KEM,A}(k) = 1] - \Pr[\text{IND-CCA}^0_{\text{KEM}, A}(k) = 1] \right|
则如果对任意多项式时间敌手 A 和任意 k,设 ϵ 是可忽略数值函数,满足
\text{Adv}^{\text{IND-CCA}}_{\text{KEM}, A} \le ϵ(k),
我们称 KEM 为 IND-CCA 安全的。