密码学可证明安全CCA1
安全规约推荐书目:
《密码学中的可证明安全性》杨波 清华大学出版社
《Introduction to Security Reduction》Fuchun Guo;Willy Susilo;Yi Mu Springer
首先,关于密码学中的可证明安全放一张老图:
证明方法大类是两种:基于游戏的证明,基于模拟的证明;
基于游戏的证明又分为 安全规约,游戏跳跃。
安全规约部分在这本书中有比较详细的描述:
《Introduction to Security Reduction》Fuchun Guo;Willy Susilo;Yi Mu Springer
CCA1 安全方案及证明 在《密码学中的可证明安全性》有一个较好的游戏跳跃的例子如下:
Noar-Yung CCA方案
方案描述如下:
证明:
安全定理描述如下:
证明思路:
按照CCA安全模型,有以下的两个实验即为敌手输出两个等长消息m0,m1 模拟者随机选择加密,敌手不可区分,这里分别独立出这两个实验路径如下:
如果能证明这两个实验不可区分,那么就能证明这个方案是CCA安全的。实验的不可区分这里是使用一个一个不可区分游戏传递的。通过将逐步的修改实验1的参数,生成一个一个游戏,然后逐步证明这些游戏不可区分,最终就能证明这两个游戏不可区分。与安全规约不同的是,安全规约这里一般直接将区分方案规约到敌手拥有解决某个困难问题的能力上来。
《可证明安全性》对这两个实验不可区分证明动机描述如下:
7个游戏主要特点如下:
最终证明的图示如下:
1. Exp0与 Exp1 不可区分:由于零知识证明的零知识性可得。
2. Exp1 与 Exp2 不可区分:对于敌手而言,这相当于区分CT1是M1的密文还是M0的密文,由该方案的CPA安全,可得不可区分,并且此处不需要解密CT1。
3. Exp2 与 Exp3 不可区分:如果敌手能伪造一个不同明文的合法挑战密文,则就可以区分这个两个实验,因为解密结果会变得不同,但是由于零知识系统的可靠性,敌手不能伪造出整个证明,所以不可能发生敌手使用不同秘钥鉴别出区别的情况,所以不可区分。如果对应明文相同,那么CT0.CT1 用任意秘钥解出内容没有差别。
4 Exp3与Exp4 不可区分:由于加密方案的CPA安全,所以不可区分。
5.Exp4与Exp5 不可区分:与第三项实验2 与3 的不可区分原因相同。
6.Exp5 与 Exp6 不可区分:与第一项实验0与实验1的不可区分原因相同。