当前位置: 首页 > 工具软件 > IND > 使用案例 >

IND-CPA、IND-CCA1和IND-CCA2详解

公冶鸣
2023-12-01

安全概念中IND-CPA、IND-CCA1和IND-CCA2

1.IND-CPA (INDistinguishability under Chosen Plaintext Attack)

  • 选择明文攻击下的不可区分性

为了保证更强的安全性,GoldWasser和Micali在1984年提出了概率加密,引入更强的安全目标:语义安全。理论上已证明,语义安全(Semantic Security,SS)等价于密文不可区分性。

密文不可区分性

敌手和挑战者商定目标密码体制,选定加密密钥pk,然后进行以下各阶段:
寻找阶段: 敌手选择两个等长的明文 m 0 m_0 m0 m 1 m_1 m1
猜测阶段: 敌手被挑战者告知其中一个明文 m b m_b mb和随机数r的加密结果 C b C_b Cb,判断 C b C_b Cb C 0 C_0 C0还是 C 1 C_1 C1,其中b是保密的。
若 b = 0 , C 0 = E n c p k ( m 0 , r ) 若 b = 1 , C 1 = E n c p k ( m 1 , r ) 若b=0,C_0=Enc_{pk}(m_0,r) \\若b=1,C_1=Enc_{pk}(m_1,r) b=0C0=Encpk(m0,r)b=1C1=Encpk(m1,r)
敌手的目标是以大于 1 2 \frac {1}{2} 21的概率猜对b的值.下面定义敌手的优势:
A d v 敌 手 = ∣ P r [ b ← E n c p k ( m 0 , r ) ] − P r [ b ← E n c p k ( m 1 , r ) ] ∣ Adv_{敌手}=|Pr[b\leftarrow Enc_{pk}(m_0,r)]-Pr[b\leftarrow Enc_{pk}(m_1,r)]| Adv=Pr[bEncpk(m0,r)]Pr[bEncpk(m1,r)]
如果 A d v 敌 手 Adv_{敌手} Adv为可以忽略,那么可以认为 C 0 C_0 C0 C 1 C_1 C1不可区分。

IND-CCA1(INDistinguishability under Chosen Ciphertext Attack)

  • 选择密文攻击下的不可区分性

相对前者,增加敌手可以在收到 C b C_b Cb之前,调用一次加密或解密的能力。下面是具体流程:
训练: 敌手向挑战者请求任意密文的解密(多项式有界次数),即选取密文C给挑战者,挑战者返回解密结果给敌手。
挑战: 敌手A选择两个等长的明文 m 0 m_0 m0 m 1 m_1 m1,再从挑战者接受 m b m_b mb加密后的密文 C b C_b Cb,b是随机的;
猜测: 敌手输出 b ′ b^{'} b,若 b ′ = b b^{'}=b b=b,则敌手成功。
若 b = 0 , C 0 = E n c p k ( m 0 , r ) 若 b = 1 , C 1 = E n c p k ( m 1 , r ) 若b=0,C_0=Enc_{pk}(m_0,r) \\若b=1,C_1=Enc_{pk}(m_1,r) b=0C0=Encpk(m0,r)b=1C1=Encpk(m1,r)
敌手的目标是以大于 1 2 \frac {1}{2} 21的概率猜对b的值.下面定义敌手的优势:
A d v 敌 手 = ∣ P r [ b ′ = b ] − 1 2 ] ∣ Adv_{敌手}=|Pr[b^{'}=b]-\frac {1}{2}]| Adv=Pr[b=b]21]
如果 A d v 敌 手 Adv_{敌手} Adv可以忽略,那么认为此密码体制在非适应性选择密文攻击下具有不可区分性,称为IND-CCA1安全。

IND-CCA2(INDistinguishability under adaptive Chosen Ciphertext Attack)

  • 自适应选择密文攻击下的不可区分性

相对前者,不限制敌手调用解密的时间。下面是具体流程:
训练1: 敌手向挑战者请求任意密文的解密(多项式有界次数),即选取密文C给挑战者,挑战者返回解密结果给敌手。
挑战: 敌手A选择两个等长的明文 m 0 m_0 m0 m 1 m_1 m1,再从挑战者接受 m b m_b mb加密后的密文 C b C_b Cb,b是随机的;
训练2: 敌手继续向挑战者请求任意密文的解密(多项式有界次数),即选取密文C(C不能是 C b C_b Cb)给挑战者,挑战者返回解密结果给敌手。
猜测: 敌手输出 b ′ b^{'} b,若 b ′ = b b^{'}=b b=b,则敌手成功。
若 b = 0 , C 0 = E n c p k ( m 0 , r ) 若 b = 1 , C 1 = E n c p k ( m 1 , r ) 若b=0,C_0=Enc_{pk}(m_0,r) \\若b=1,C_1=Enc_{pk}(m_1,r) b=0C0=Encpk(m0,r)b=1C1=Encpk(m1,r)
敌手的目标是以大于 1 2 \frac {1}{2} 21的概率猜对b的值.下面定义敌手的优势:
A d v 敌 手 = ∣ P r [ b ′ = b ] − 1 2 ] ∣ Adv_{敌手}=|Pr[b^{'}=b]-\frac {1}{2}]| Adv=Pr[b=b]21]
如果 A d v 敌 手 Adv_{敌手} Adv可以忽略,那么认为此密码体制在适应性选择密文攻击下具有不可区分性,称为IND-CCA2安全。

总结

目前普遍认为,任何新提出的公钥加密算法都应该在适应性选择密文攻击下达到语义安全性,即IND-CCA2。

参考文章

“完全或无”、IND-CPA、IND-CCA1、IND-CCA2的详细说明
“IND-”安全概念的简单解释
如何理解"语义安全(semantic security)"

 类似资料: