第二十八个知识点:什么是公钥密码学的IND-CCA安全定义?

第二十八个知识点:什么是公钥密码学的IND-CCA安全定义?

我们将在这篇博客中讨论公钥加密的IND-CCA安全。

IND-CCA安全代表选择明文的不可伪造性。这样的安全方案的思想就是给定一个密文,攻击者不能说出给定密文是什么样的明文加密得到的。在这个模型中,攻击者被允许使用加密问询和解密问询。闻讯既可以在第三步和第四步之前也可以在之后。公钥的IND-CCA的find-then-guess安全游戏的描述:

1.生成公钥和私钥\((p_k,s_k)\)。攻击者A能够获得公钥\(p_k\)

2.私密的指定\(b \leftarrow \{0,1\}\)

3.攻击者A可以进行解密问询\(Dec_{s_k}\),和加密问询\(Enc_{p_k}\)

4.A输出一对消息\((m_0,m_1)\)

5.我们输出加密\(c = Enc_{p_k}(m_b)\)

6.攻击者被允许使用更多的加密和解密,例如在第三步中,但是我们不被允许要求解密\(c\)

7.A输出\(b^{‘}\)。如果\(b = b^{‘}\),A就获胜了。

我们说A获胜的概率\(Adv(A) = 2*|Pr[A wins]-1/2|\)。如果这个概率是可忽略的(negligible),那么就说这个方案是IND-CCA安全的。

IND-CCA安全有另外一个版本,真实还是随机。主要的不同就是第五步中并不是由攻击者输出的消息。二十一个随机的\(m^{‘}\)。A必须区分它是真的还是随机的。概率和安全和上述定义基本相同。

这两个定义是等价的,如果一个方案在实数或随机意义上对对手a是IND-CCA安全的,我们可以构造一个对手B用于查找和猜测,这样两个优势都是相等的。类似地,如果一个方案对对手a是发现和猜测安全的,我们可以构造一个这样的对手B使得:

\[Adv_{find-and-guess}(A)=2 \cdot Adv_{real-or-random}(B) \]

posted @ 2020-01-31 15:41  WangZhuo2000  阅读(3778)  评论(1编辑  收藏  举报