有许多方案可以用某些安全概念来宣传自己,通常是IND-CPA或IND-CCA2,例如,普通的ElGamal具有IND-CPA安全性,但不提供IND-CCA安全性。最常见的是“ IND-”,用于针对特定类型的攻击者进行广告宣传。安全概念的意思。建议使用(简单的)正式攻击场景的描述。请至少概述正式攻击(例如真实或随机)。解释了“ IND-”之间的关系(例如IND-CCA表示IND-CPA)。
有问题的概念是:


IND-CPA
IND-CCA
IND-CCA1
IND-CCA3


评论

您在哪里看到了IND-CCA3? $ \; $

@RickyDemer,不是经常。直到现在,仅在某些论文中时不时。我认为第一篇提到它的论文就是这样。

CRYPT'98的Bellare,Desai,Pointcheval和Rogaway撰写的这篇论文在PKE(IND-CCA3除外)的背景下提供了对大多数概念的“规范”定义,最重要的是,给出了含义和分离。
如果您正在寻找签名方案,我们会在这里提供有关这些问题的问答。

#1 楼

理想的加密方案$ E $对于每个密文$ C = E(K,M)$,如果密钥对对手来说仍然是秘密的,那么识别$ M $的可能性就可以忽略不计。由于这在实践中是不可能的,因此第二种最合理的方法是定义足够强大的约束以满足某些安全性定义。 $ \ operatorname {IND-} $表示法在游戏方面提供了这样的定义,其中挑战者保留其关键秘密,而对手则具有某些功能,并且他的目标是破坏加密系统。

为了保持通用性,加密方案将具有密钥生成算法$ KG $,它将生成密钥对$ K_E $,$ K_D $,加密算法$ E $和解密算法$ D $。加密始终是可恢复的,但是加密和解密密钥可以不同(覆盖公共密钥加密):$ D(K_D,E(K_E,M))= M $


IND- CPA:在选择的纯文本攻击下的可识别性


换句话说:对手生成了两个长度相等的消息。质询者随机决定对其中之一进行加密。对手试图猜测哪个消息已加密。

算法:


挑战者:$ K_E,K_D $ = KG(安全参数)
专家:$ m_0,m_1 = $选择两条相同长度的消息。向挑战者发送$ m_0,m_1 $。在多项式时间内执行其他操作,包括调用加密预言机。
挑战者:$ b = $在0和1之间随机选择专家:在多项式时间内执行其他操作,包括调用加密oracle。输出$ guess $。
如果$ guess = b $,则对手获胜

进一步说明:这种情况引入的主要概念是多项式界。现在,我们对加密货币的期望从获胜的可能性可忽略不计,到在合理的时间范围内获胜的可能性可以忽略不计。对消息长度的限制旨在通过仅比较密文的长度来防止对手轻易赢得比赛。但是,此要求太弱了,尤其是因为它仅假设对手和挑战者之间只有一次交互。


IND-CCA1:在选择的密文攻击下的可识别性


换句话说:游戏的目标与IND-CPA中的目标相同。对手还有一个附加功能:调用加密或解密预言机。这意味着:攻击者可以在获取质询密文之前对任意消息进行加密或解密。

算法:参数)
专家(整数倍的次数):分别为任意明文或密文调用加密或解密oracle 专家:在以下位置执行其他操作多项式时间。输出$ guess $

如果$ guess = b $,则对手获胜

进一步评论:IND-CCA1考虑重复交互的可能性,这意味着安全性不会因时间。


IND-CCA2:自适应选择密文攻击下的可识别性


换句话说:除了在IND-CCA1下的功能现在,攻击者可以在收到$ C $之后获得对oracle的访问权限,但无法将$ C $发送到解密oracle。

算法:


挑战者:$ K_E,K_D $ = KG(安全参数)
对手(任意次数):调用加密或解密oracle以获取任意明文/密文
对手:$ m_0,m_1 = $选择两个长度相同的消息
挑战者:$ b = $在0到1之间随机选择
挑战者:$ C:= E(K_E,m_b)$将$ C $发送给对手。
专家:在多项式时间内执行其他运算,包括对Oracle的调用,用于不同于$ C $的密文。输出$ guess $。
如果$ guess = b $,则对手获胜

进一步评论:IND-CCA2建议在知道密文之后使用解密oracle在某些方案中可以提供合理的优势,因为可以根据特定的密文对Oracle进行定制。

基于@SEJPM提供的参考,添加了IND-CCA3的概念。我添加它是为了保持完整性,但指出它的资源很少,这似乎很重要,我的解释可能会引起误解。选择的密文攻击


换句话说:不可能以不可忽略的概率创建有效的伪造。为对手提供了两对加密/解密预言。第一对执行预期的加密和解密操作,而第二对定义如下:$ \ mathcal {E} _K $:返回随机字符串的加密。 $ \ mathcal {D} _K:$返回无效值。它不是以游戏的形式呈现,而是使用优势的数学概念呈现的:通过使用有效的预言片来提高获胜的概率,而不是“假”预言片下的成功概率。

公式:$ \ mathbf {Adv} ^ {ind-cca3} _ {\ pi}(A)= Pr \ left [K \ overset {\ $} {\ leftarrow} \ mathcal {K}:A ^ {\ mathcal { E} _K(\ cdot),\ mathcal {D} _K(\ cdot)} \ Rightarrow 1 \ right]-Pr \ left [A ^ {\ mathcal {E} _K(\ $ | \ cdot |),\ perp (\ cdot)} \ Rightarrow 1 \ right] $

进一步的评论:引入IND-CCA3的论文集中在一个基本概念上。 IND-CCA3等效于经过身份验证的加密。 ,\ cdot)$。

评论


$ \ begingroup $
IND-CCA3。这样是否可以将其添加到答案中?
$ \ endgroup $
– SEJPM♦
15年7月6日在18:48

$ \ begingroup $
IND-CCA通常是指IND-CCA2。请参阅我在问题评论中提到的论文
$ \ endgroup $
–cygnusv
15年7月6日在20:45



$ \ begingroup $
我编辑了答案,以将信息包括在评论中。我相信我对IND-CCA3的解释是准确的,但是由于这是我第一次遇到它,所以我可能会误会它。随时发表评论或编辑。
$ \ endgroup $
– Sergio A. Figueroa
15年7月6日在22:13

$ \ begingroup $
以下几点评论:(1)由于要同时涵盖对称和非对称加密,因此必须指定对手可以访问加密预言(在非对称情况下为冗余)。 (2)在IND-CPA游戏的第1步和第2步之间,对手还可以在多项式时间内执行操作。 (3)IND-CCA1并不暗示非恶意(至少对于非对称情况,Bellare等人证明了IND-CCA1并不暗示NM-CPA)
$ \ endgroup $
–cygnusv
15年7月7日在7:03

$ \ begingroup $
大约整整一年的不活动之后,我通过这篇文章“修复”了一些问题。我(在不知不觉中不得不承认)并入了@ user2768建议的修复程序,并删除了没有增加任何价值的EDIT注释。我还遵循@ b00n12的建议,并添加了有关访问IND-CPA加密oracle的说明。
$ \ endgroup $
– SEJPM♦
17-10-2在20:44