5.6 信息论
1948年 和 1949年,克劳德·香农(Claude Shannon)发表了两篇论文《A mathematical theory of communication》、《Communication theory of secrecy systems》,它们构成了现代密码学的数学基础。在这些论文中,他定义了完美(或无条件)安全的概念,介绍了自然语言熵和统计分析的概念,使用概率论提供了第一个安全性证明,并给出了可证明安全性与密钥、明文和密文空间大小之间的精确联系。
在公钥密码中,人们感兴趣的是破解系统的计算难度。因此,安全性问题是一个相对的问题,如果人们假设某些潜在问题很难解决,那么给定的密码系统就很难破解。正确表述这些概念需要一定的谨慎。在本节中,我们简要介绍了香农的思想,并解释了它们与对称密钥系统的相关性。在《Communication theory of secrecy systems》中,Shannon提出了一种密码系统的安全理论,该理论假设我们拥有无限的计算资源。例如,对称密码,如简单替换密码(第1.1节)和维吉尼亚密码(第5.2节)在计算上是不安全的。由于资源有限,对手可以轻易破解这些密码。如果我们寻求无条件的安全性,我们要么寻求新的算法,要么修改已知算法的实现。事实上,香农表明,无条件安全的密码系统必须至少有与明文一样多的密钥,并且每个密钥必须以相等的概率使用。这意味着大多数实用的密码系统都不是无条件安全的。我们将在5.6.1 一节中讨论无条件安全的概念。
在《A mathematical theory of communication》中,香农发表了一种数学理论,该理论测量随机变量所揭示的信息量。当随机变量表示用于加密自然语言(如英语)的密码的可能明文或密文或密钥时,我们获得了关于密码安全的严格数学研究框架。香农将熵一词用于这一度量,因为它在形式上与统计力学中波尔兹曼对熵的定义相似,也因为香农将语言视为一个随机过程,即一个由产生符号序列的概率控制的系统。后来,物理学家 E.T.Jaynes 认为热力学熵可以解释为某种信息论熵的应用。作为系统 “不确定性” 的度量,熵的对数公式是通过要求它是连续的、单调的,并且满足一定的加性性质来确定的。我们将在第 5.6.2 一节中讨论信息论熵及其在密码学中的应用。
5.6.1 无条件安全
如果对密文的分析不会给密码分析员有关明文的任何信息,也不给任何未来密文的信息,则密码系统具有完全保密性。为了形式化这个概念,我们引入了变量、 、 ,它们表示可能的明文、密文和密钥。换句话说, 是一个随机变量,其值为可能的消息(明文), 是一个随机变量,其值为可能的密文, 是一个随机变量,其值为用于加密和解密的可能密钥。我们假设、 、 是相关的密度函数。密度函数与加密/解密公式 相关联,我们将利用该公式来证明(5.47)。
我们还考虑所有这些随机变量对的联合密度和条件密度,例如 和 等等。我们可以将变量名简化表示,例如,我们将 写做 以表示随机变量 和 的条件概率密度。
定义 一个密码系统具有无条件安全,当其满足
(5.45)
式(5.45)是什么意思,它表示任何特定明文的概率 都与密文无关。直观地说,这意味着密文对明文一无所知。
(5.46) f ( c | m ) = f ( c ) , ∀ c ∈ C a n d ∀ m ∈ M w i t h f ( m ) ≠ 0
式( 5.46)表示,任何特定密文的出现都有可能,与明文无关。
如果我们知道 和 ,则能确定 。为了表示这一点,我们注意到,对于给定密钥 ,密文等于 的概率与 的解密是明文的概率相同,当然假设 是由密钥 加密明文而来。这允许我们通过对所有可能的密钥求和,并使用命题5.24的分解公式(5.20),来计算总概率 。像往常一样,我们让 表示所有可能的密钥的集合, 和 是与密钥 相关的加密和解密函数。然后密文等于 的概率由以下公式给出
我们注意到,如果对于所有的密钥 都满足加密映射 (在实践中也通常是这样),那么式 (5.47) 中的和就是在所有 上。
例5.53
考虑第1.1节中描述的移位密码。假设以相等的概率选择26个可能的密钥(移位量)中的每一个,并且每个明文字符都使用新的、随机选择的移位量来加密。那么不难得出该密码系统具有无条件安全性。
回想一下,加密函数是一对一的,这意味着每个消息都会产生一个唯一的密文。也意味着密文至少和明文一样多。无条件安全对密钥、消息和密文空间的相对大小有额外的限制。我们首先研究一个不具有无条件安全的密码系统的例子。
例 5.54
假设密码系统具有两个密钥 和 ,三个明文、 、 ,以及三个密文、 、 。假设明文随机变量的密度函数 足
表 5. 12 描述了不同密钥如何作用于明文以产生密文
例如,用密钥 对明文 的加密是密文 。假设密钥使用的概率相等,我们可以使用式 (5.47) 计算密文等于 的概率:
另外,根据表中我们发现 ,因此,该密码系统不具备无条件安全性。这是符合我们直觉的,因为很明显这个系统的密文会泄露一些有关明文的信息。例如,如果我们看到密文 ,那么我们就知道消息是 或 ,它不可能是 。
我们前面提到过,密文的数量至少要和明文的数量一致,否则我们就无法进行正常的解密。然而对于无条件安全来说,密钥的数量至少要和明文的数量一样。
命题 5.55
一个具备无条件安全的密码学系统,其 ,其中 ,是有概率被选作明文的元素集合。
证明 :
我们首先固定一些密文 ,根据式 (5.46),无条件安全要求
即 有概率加密为密文 ,即实际存在一个密钥 满足 。另外,如果我们选取另外一个明文 ,那么与之对应的就需要另外一个密钥 ,否则的话就有 ,这与我们加密函数一对一的性质是相悖的。
都是非空的。此外,这些集合对于不同的 是不相交的。因此,每个明文 与一个或多个密钥相匹配,不同的 与不同的密钥匹配,这表明密钥的数量至少与 中明文的数量一样。
在无条件安全的系统中,由于密钥、密文和明文空间的相对大小受到限制,即
方便起见我们可以假设密钥空间、明文空间和密文空间的大小都相等。在这样的假设前提下,Shannon证明了一个描述无条件安全的定理
定理 5.56
假设密码系统满足 ,即密钥、明文和密文的数量都相等。当且仅当以下两个条件成立则系统满足无条件安全性:
对于给出的消息 和密文 ,都存在一个密钥 使得 可以加密问密文
证明
我们先证明 2,对于任意的明文 和密文 ,我们考虑能够将明文 加密为密文 的密钥集合
那么我们证明如果该密码系统具有无条件安全性,则对于每一个 和 都有 ,这等价于我们的条件2。
Claim 1: 如果 ,那么
假设 ,那么 ,由于加密函数 是单射的,也就意味着 ,于是我们反证了 Claim1。
Claim 2: 如果密码系统是无条件安全的,那么对于每一个 ,集合 都是非空的。
我们使用 的形式来描述无条件安全。我们知道,每个 是至少一个密钥的有效明文,因此 。类似地,每个 都是使用某个密钥对至少一个明文进行加密而来,因此 。因此,无条件安全意味着
但式子 只是表示 可能是 加密而来的另一种方式。因此,必须至少有一个密钥 满足 ,即,存在某个密钥 ,这证明了 Claim 2
Claim 3 如果密码系统是无条件安全的,那么
那么,根据 Claim 2 的每个 都大于或等于1的事实,于是每个 都必须等于1。这就完成了 Claim 3 的证明。
上面我们提到, Claim 3 等价于定理的条件 2,那么我们现在证明条件 1。考虑三元组集合
显然, 和 确定了 的唯一值,条件 2 表示 和 确定了 的唯一值,以及 的假设,表明 和 确定 的唯一值。于是,对于任意满足 的三元组 ,我们计算
(有一些密码系统,其中消息是密钥的一部分,在这种情况下, 和 将不是独立的。)
注意, 我们的证明表明,(5.50)对每个 和每个 都是正确的,因为对于每个 ,都有一个(唯一的) 满足 。
我们在 下对 式子(5.50)进行求和,然后除以 得到
这表明 是常数,与 的选择无关,这正是条件 1。同时,我们证明了 是常数这一有用事实,即每个密文都以相等的概率使用。
例 5.57(一次一密)
Vernam 的一次一密于1917年获得专利,是一种极其简单、完全保密的密码系统,尽管效率很低。密钥 由一串二进制数字 。它用于加密二进制明文字符串 ,通过将两个字符串逐位 “异或”( ) 运算在一起。。然后密文 由下式给出
每个密钥只使用一次,然后被丢弃,系统的名称也由此产生。由于每个密钥的使用概率相等,并且只有一个密钥将给定的 加密到给定的 ,即密钥 ,根据定理5.56 表明 Vernam 的一次一密具有无条件安全性。
不幸的是,如果 Bob 和 Alice 想要使用 Vernam 一次一密交换 位信息,他们必须已经知道 位共享的秘密信息,才能用作密钥。这使得 一次一密对于大规模通信网络来说太过不足。然而,在某些情况下,它们被使用,例如外交部门之间的绝密通信或间谍与其基地之间的短消息。
同样值得注意的是,只有在其钥匙从未被重复使用的情况下, 一次一密才能保持完全安全。当由于错误或难以提供足够的密钥材料而多次使用密钥时,则该密码系统可能容易受到密码分析的影响。这发生在现实世界中,当时苏联在第二次世界大战期间重用了一次一密。美国开展了一项名为 VENONA 项目的大规模密码分析工作,成功解密了大量文件。
原文始发于微信公众号(山石网科安全技术研究院):密码学 |5.6 信息论