香农理论在密码学中的应用
概率论基础
假定x和y是分别定义在有限集合X和Y上的随机变量。联合概率 \(P(x_i,y_i)\) 是 \(x=x_i, y=y_i\) 的概率。条件概率 \(P(x_i \vert y_i )\) 是 \(y=y_i\) 时, \(x=x_i\) 的概率。如果对于任意\(x \in X , y \in Y\) 都有 \(P(x, y) = P(x)P(y)\) 则随机变量X和Y是统计独立的。
贝叶斯定理:
在密码体制中,就可以如下定义:
熵的含义
消息的信息量描述了消息的不确定性
香农从概率测量的角度来描述消息M的信息量,并用信息熵来进行度量:$$H(M) = - \sum^n_{i=1}P(x_i)log_2P(x_i)$$
其中n为事件总数,\(x_i\) 表示随机事件,\(log_2P(x_i)\) 表示自信息量。
熵的性质
密码体制组成部分熵的基本关系
假设(P,C,K,E,D)是一个密码体制。P代表明文空间、C表示密文空间,K表示密钥空间,E表示加密算法,D表示解密算法。
那么有 H(K|C) = H(K) + H(P) - H(C)
证明如下:
H(K,P,C) = H(C|K, P) + H(K, P)。 由于密钥和明文唯一决定密文,因此H(C|K, P) = 0, 而K和P是统计独立的,因此 H(K, P) = H(K) + H(P)
同样地,密钥和密文唯一决定明文,因此H(P|K,C) = 0。 于是H(K,P,C) = H(K, C)
H(K|C) = H(K, C) - H(C) = H(K, P, C) - H(C) = H(K) + H(P) - H(C)
相关性
自然语言的字符之间不是毫无关联的。为了衡量自然语言信源符号之间的依赖程度,引入了相关性和冗余度的概念。
信源符号之间的依赖程度称为信源的相关性。
假设信源有m个符号,那么对于不同情况可以分别计算信源的熵:
可以证明 \(H_0 \ge H_1 \ge H_2 \ge \cdots \ge H_{\infty}\)
也就是说,符号相关程度越大,熵值越小,反之亦然。
冗余度
为了描述信源的相关性,引入信源效率\(\eta\)和冗余度\(\gamma\)
可得,信源效率 \(\eta = \frac{H_{\infty}}{H_0}\) 信源冗余度为 \(\gamma = 1 - \eta\)
可见,\(H_0\) 是信源符号独立等概率分布时信源的熵,是每个符号所能携带的最大信息量。但实际上每个符号仅能携带 \(H_{\infty}\) 的信息。 因此 \(\gamma\) 就是信源中多余成分的比例。
唯一解距离
对于长度为S的密文序列 \(C^S = (C_1, C_2, \cdots , C_S)\) , 其密钥含糊度为 \(H(K|C^S)\) 有下界: \(H(K) - \gamma SH_0\)
当\(S = \frac{H(K)}{H_0 \gamma}\) 时, 称S为唯一解距离。当唯一解距离为无穷大时,系统称为理想保密系统。
唯一解距离只给出了存在性结论,而没有给出具体的破译方法。唯一解距离指出了当进行破译攻击时,可能解密出唯一有意义的明文所需要的最少密文量。唯一解距离越长,密码系统越好。 但是,这是假定分析者能利用明文语言的全部统计知识的条件下得到的。实际上由于自然语言的复杂性,目前没有任何一种分析方法能够做到这一点。所以 一般破译所需的密文量要远远大于理论值。
密码攻击类型
- 唯密文攻击 分析者除了拥有截获的密文以外没有其它可以利用的信息。(仅仅窃听)
- 已知明文攻击 不仅掌握了相当数量的密文,还有一些已知的明-密文对可供使用。(有内奸)
- 选择明文攻击 不仅能够获得一定数量的明-密文对,还可以选择任何明文并在使用同一未知密钥的情况下得到相应的密文(暂时控制加密机)
- 选择密文攻击 能够选择不同的加密密文,还能得到对应的明文。其任务是推算出密钥及密文对应的明文(暂时控制解密机)
- 选择文本攻击 (暂时控制加密机与解密机)
这五种攻击类型依次增强。能够抵御这五种类型的攻击是密码算法的基本要求。
密码体制的安全性
无条件安全
不论提供的密文有多少,密文中包含得的信息都不足以惟一地确定其对应的明文
具有无线计算资源的密码分析者也无法破译某个密码系统。
计算安全性
涉及攻破密码体制所需的计算工作量。
计算出或估算出破译它的计算量下限,利用已有的最好方法破译该密码系统所需要的努力超出了破译者的破译能力。
可证明安全性
通过有效的转化,将密码体制的任何有效攻击归约为一类已知难处理的问题。即使用多项式归约技术形式化证明一种密码体制的安全性。
这种方法只是说明了安全性和另一个问题相关的,并没有完全证明它是安全的。