参考:骆婷老师的PPT
《introduction to modern cryphtography》–Jonathan Katz, Yehuda Lindell(现代密码学——原理与协议)中相关章节
密码学复习笔记 这个博主好有意思
哈工大密码学课程 张宇老师的课件
B站视频 密码学原理《Introduction to modern Cryptography》
初步笔记,如有错误请指正
快速补充一些密码相关的背景知识
在本节中,我们将详细讨论现代密码学中加密方案的完善保密性定义和基本属性。
哈工大密码学课程 张宇老师的课件
在本节课程中,我们学习信息论意义上的安全——完美保密。完美保密的安全在信息论上是无需前提假设的,但其存在实践上的局限性,是完美中的不完美。本节将学习若干“等价”的完美保密定义,从中体会看似不同的定义却存在相同的本质,并且体会理解对同一个概念,从不同的角度去定义,对理解和应用这个概念是至关重要的。
以小写字母表示一个具体值,用花体字母表示一个集合,用大写字母表示随机变量
密钥,明文,密文分别为 k ∈ K , m ∈ M , c ∈ C k \in \mathcal{K}, m \in \mathcal{M}, c \in \mathcal{C} k∈K,m∈M,c∈C.
密钥生成,加密算法,解密算法分别为 k ← G e n , c : = E n c k ( m ) , m : = D e c k ( c ) k \gets \mathsf{Gen}, c:= \mathsf{Enc}_k(m), m:= \mathsf{Dec}_k(c) k←Gen,c:=Enck?(m),m:=Deck?(c).
加密方案: Π = ( G e n , E n c , D e c ) \Pi = (\mathsf{Gen}, \mathsf{Enc}, \mathsf{Dec}) Π=(Gen,Enc,Dec).
随机变量: K , M , C K, M, C K,M,C 对应密钥,明文,密文.
概率: Pr ? [ K = k ] , Pr ? [ M = m ] , Pr ? [ C = c ] \Pr[K=k], \Pr[M=m], \Pr[C=c] Pr[K=k],Pr[M=m],Pr[C=c],随机变量为某一个具体值的概率
直觉:一个加密方案是安全的,那么敌手在获得密文后,密文应该对敌手猜测明文没有任何帮助。 敌手是知道明文本来的概率分布,例如,敌手知道明文是一个真或假问题的答案:真、假,并且知道两种答案的概率。敌手也知道加密方案。敌手要根据密文确定明文中的答案。如果加密方案是安全的,则密文应该对敌手猜测答案没有任何效果。
换句话说,根据密文来猜测答案和不知道密文猜测答案对敌手来说是一样的。从概率的角度看,在获得密文后的某个明文后验似然(posteriori likehood)应该与该明文被发送的先验概率(priori probability)没有差别。
定义:在 M \mathcal{M} M上 Π \Pi Π是完美保密的,若对于 M \mathcal{M} M上的任意概率分布, ? m ∈ M \forall m \in \mathcal{M} ?m∈M 与 ? c ∈ C \forall c \in \mathcal{C} ?c∈C , 且 Pr ? [ C = c ] > 0 \Pr[C = c] > 0 Pr[C=c]>0:
Pr ? [ M = m ∣ C = c ] = Pr ? [ M = m ] . \Pr[M=m | C=c] = \Pr[M=m]. Pr[M=m∣C=c]=Pr[M=m].
上面的公式表示,给定密文的条件下,明文的概率分布与预先知道的相同,即知道密文对猜测明文没有帮助。
下面看一个例子,这个方案是完美保密的吗?For M = K = { 0 , 1 } , E n c k ( m ) = m ⊕ k \mathcal{M}=\mathcal{K} = \{ 0,1 \} , \mathsf{Enc}_k(m)= m \oplus k M=K={0,1},Enck?(m)=m⊕k. 这里的 ⊕ \oplus ⊕是异或。
尽管这个方案看起来很简单(可能是最简单的),但答案是肯定的,是完美保密。下面我们来证明。
一比特上的完美保密
这里假设 M \mathcal{M} M上的概率分布是 Pr ? [ M = 1 ] = p \Pr[M=1] = p Pr[M=1]=p和 Pr ? [ M = 0 ] = 1 ? p \Pr[M=0]= 1-p Pr[M=0]=1?p,计算 Pr ? [ M = 1 ∣ C = 0 ] \Pr[M=1 | C=0] Pr[M=1∣C=0]。
根据贝叶斯定理:
Pr ? [ M = 1 ∣ C = 0 ] = Pr ? [ C = 0 ∣ M = 1 ] ? Pr ? [ M = 1 ] / Pr ? [ C = 0 ] \Pr[M=1 | C=0] = \Pr[C=0 | M=1] \cdot \Pr[M=1] / \Pr[C=0] Pr[M=1∣C=0]=Pr[C=0∣M=1]?Pr[M=1]/Pr[C=0]
= Pr ? [ M ⊕ K = 0 ∣ M = 1 ] ? p / ( Pr ? [ C = 0 ∣ M = 1 ] ? Pr ? [ M = 1 ] + Pr ? [ C = 0 ∣ M = 0 ] ? Pr ? [ M = 0 ] ) = \Pr[M \oplus K =0 | M=1] \cdot p / (\Pr[C=0 | M=1] \cdot \Pr[M=1]+\Pr[C=0 | M=0] \cdot \Pr[M=0]) =Pr[M⊕K=0∣M=1]?p/(Pr[C=0∣M=1]?Pr[M=1]+Pr[C=0∣M=0]?Pr[M=0])
= Pr ? [ 1 ⊕ K = 0 ] ? p / ( Pr ? [ 1 ⊕ K = 0 ] ? p + Pr ? [ 0 ⊕ K = 0 ] ? ( 1 ? p ) ) = \Pr[1 \oplus K = 0] \cdot p / (\Pr[1 \oplus K = 0] \cdot p +\Pr[0 \oplus K = 0] \cdot (1-p)) =Pr[1⊕K=0]?p/(Pr[1⊕K=0]?p+Pr[0⊕K=0]?(1?p))
= 1 2 p / ( 1 2 p + 1 2 ( 1 ? p ) ) = p = Pr ? [ M = 1 ] = \frac{1}{2} p / (\frac{1}{2}p + \frac{1}{2}(1-p)) = p = \Pr[M=1] =21?p/(21?p+21?(1?p))=p=Pr[M=1]
注意: Pr ? [ 1 ⊕ K = 0 ] = 1 2 ≠ Pr ? [ M = 1 , C = 0 ] = p ? 1 2 \Pr[1 \oplus K = 0] = \frac{1}{2} \neq \Pr[M=1, C=0] = p \cdot \frac{1}{2} Pr[1⊕K=0]=21?=Pr[M=1,C=0]=p?21?
这里需要理解到,只要密钥是均匀随机的,密文的概率分布不受明文的概率分布的影响(注意密文不独立于明文,而是由明文和密钥一起决定的),密文不会携带明文的统计模式,从而安全。
完美保密定义的等价公式
完美不可区分性作为一个理想化的概念,在加密理论中起着基础和指导作用,帮助设计者理解和追求更高水平的安全性。然而,在实际应用中,通常会根据可用资源和具体需求,对这一标准进行适当的调整和权衡。
完美保密的局限性
完美保密
一定需要密钥空间大于等于明文空间,即
∣
K
∣
≥
∣
M
∣
|\mathcal{K}| \ge |\mathcal{M}|
∣K∣≥∣M∣。
香农定理的例题
窃听不可区分实验(Eavesdropping Indistinguishability Experiment)
这里引入密码学中最重要的思想实验:存在一个挑战者,挑战敌手不能破解加密方案,并配合敌手做一个实验。
敌手根据自己的策略选择两个不同的长度相同的明文,并发送给挑战者;
挑战者随机挑选其中一个明文,并新生成一个密钥,用加密方案来加密选中的明文,得到密文(称为一个挑战),并将密文发送给敌手;
敌手根据收到的密文,猜测哪一个明文被加密了。如果猜对了,则敌手在这次实验中成功。
实验中的一个重点在于实验可重复足够多次。每次实验中挑战者都是生成新的密钥。
总结