现代密码学3.2--计算安全/Computationally security
博主正在学习INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些笔记供自己回忆,如有错误请指正。整理成一个系列现代密码学,方便检索。
- 第二章定义的完美安全是一种理论上的讨论,而第三章需要定义的计算安全是一种更偏向实际需求的讨论。
- 3.1节讨论了如何定义计算安全的两种方法:具体方法和渐进方法,
- 3.2节:
- 对计算安全做出了定义:在唯密文攻击下满足不可区分性,介绍了此处的不可区分与第二章定义的“完美不可区分”的区别;
- 并通过与不可区分等价来引入语义安全的定义。
计算安全
基本语法
- 生成密钥算法/Gen:输入 1 n 1^n 1n,输出密钥 k k k,写作 k ← G e n ( 1 n ) k\leftarrow Gen(1^n) k←Gen(1n)。通常 ∣ k ∣ ≥ n |k|\ge n ∣k∣≥n,对于安全参数 n n n,我们至少可以抵御 2 n 2^n 2n的攻击,也就是说如果我们用穷举搜索,遍历所有的 k k k,最多是 2 ∣ k ∣ 2^{|k|} 2∣k∣种密钥,我们要求 ∣ k ∣ ≥ n |k|\ge n ∣k∣≥n,否则穷举搜索即可攻破。
- 加密算法/Enc:输入密钥 k k k和明文 m ∈ { 0 , 1 } ∗ m\in \{0,1\}^* m∈{ 0,1}∗,输出密文 c c c,是概率性算法(有随机数,同一明文每次加密可能得到不同密文)。
- 解密算法/Dec:输入密钥 k k k和密文 c c c,输出明文 m m m,是确定性算法(解密同一个密文,只可能得到同一明文)。
定义安全的两部分:攻击模型和安全条件
根据1.4节介绍的现代密码学的三大原则,安全定义包括两部分:安全条件和攻击模型,在此处需要对计算安全的定义需要考虑到这两部分。
攻击模型
根据1.4节中阐述的四个攻击模型,我们这里先考虑最弱的敌手能力:唯密文攻击。
安全条件
根据1.4节中介绍的正确的安全条件定义,敌手不能从密文中获取任何额外的信息,也被称为语义安全,与不可区分等价,下面介绍不可区分与语义安全的概念。
不可区分
本部分介绍计算安全中的不可区分与完美不可区分的两个不同,以及不可区分加密方案的定义。
与完美不可区分的两个不同
引入安全参数 n n n
算力
- 完美不可区分:敌手拥有无限算力
- 计算安全中的不可区分:敌手拥有有限算力,只能在 n n n的多项式时间内运行
攻破概率
- 完美不可区分: P r [ P r i K A , Π e a v = 1 ] = 1 2 Pr[PriK_{\mathcal{A},\Pi}^{eav}=1]=\frac{1}{2} Pr[PriKA,Πeav=1]=21
- 计算安全中的不可区分: P r [ P r i K A , Π e a v ( n ) = 1 ] ≤ 1 2 + n e g l ( n ) Pr[PriK_{\mathcal{A},\Pi}^{eav}(n)=1]\le \frac{1}{2}+negl(n) Pr[PriKA,Πeav(n)=1]≤21+negl(n)
明文 m 0 m_0 m0、 m 1 m_1 m1长度一致,即 ∣ m 0 ∣ = ∣ m 1 ∣ |m_0|=|m_1| ∣m0∣=∣m1∣
因为隐藏明文长度会使得会不能支持任意长度的明文,所以不能隐藏明文长度。那在暴露明文长度的情况下,如果有 ∣ m 0 ∣ = ∣ m 1 ∣ |m_0|=|m_1| ∣m0∣=∣m1∣,则 A \mathcal{A} A不能通过密文长度来判断加密的是 m 0 m_0 m0还是 m 1 m_1 m1。
定义不可区分
- 一个私钥加密方案 Π = ( G e n , E n c , D e c ) \Pi=(Gen,Enc,Dec) Π=(Gen,Enc,Dec)在有窃听者的情况下(EAV-secure),如果对于任意PPT敌手 A \mathcal{A} A,对于任意 n n n,有一个可忽略函数 n e g l negl negl,使得
P r [ P r i K A , Π e a v ( n ) = 1 ] ≤ 1 2 + n e g l ( n ) Pr[PriK_{\mathcal{A},\Pi}^{eav}(n)=1]\le \frac{1}{2}+negl(n) Pr[PriKA,Πeav(n)=1]≤21+negl(n),
则称这个加密方案 Π \Pi Π是不可区分的。 - 一个私钥加密方案 Π = ( G e n , E n c , D e c ) \Pi=(Gen,Enc,Dec) Π=(Gen,Enc,Dec)在有窃听者的情况下(EAV-secure),如果对于任意PPT敌手 A \mathcal{A} A,对于任意 n n n,有一个可忽略函数 n e g l negl negl,使得
∣ P r [ o u t A ( P r i K A , Π e a v ( n , 0 ) ) = 1 ] − P r [ o u t A ( P r i K A , Π e a v ( n , 1 ) ) = 1 ] ∣ ≤ n e g l ( n ) |Pr[out_{\mathcal{A}}(PriK_{\mathcal{A},\Pi}^{eav}(n,0))=1]-Pr[out_{\mathcal{A}}(PriK_{\mathcal{A},\Pi}^{eav}(n,1))=1]|\le negl(n) ∣Pr[outA(PriKA,Πeav(n,0))=1]−Pr[outA(PriKA,Πeav(n,1))=1]∣≤negl(n),
则称这个加密方案 Π \Pi Π是不可区分的。
以上这两种定义方式等价,证明:
P r [ P r i K A , Π e a v ( n ) = 1 ] − 1 2 Pr[PriK_{\mathcal{A},\Pi}^{eav}(n)=1]-\frac{1}{2} Pr[PriKA,Πeav(