斯坦福Dan Boneh密码学——01 香农密码与完美安全

斯坦福Dan Boneh密码学——01 香农密码与完美安全#


网安专硕,在导师推荐下,本周开始学习斯坦福大学Dan Boneh教授的密码学教材,全英文900页,密码学真的太难入门了。。读教材的同时做了一些笔记,以后还会同步更新分享出来,笔记有纰漏差错的地方还请大家指正!
ps:原笔记是用Typora的Markdown语法记的,所以格式上有些地方的显示会有些问题。见谅。


香农密码

什么是香农密码?

其实香农密码就是一个简化版的密码概念,本身就是一对(E,D)函数,其中c = E(k, m) 与 m = D(k, c),m是消息明文,c是密文,k则是密钥。我们要求解密“撤销”加密;也就是说,密码必须满足以下正确性属性:对于所有密钥k和所有消息m,我们有D(k, E(k, m) ) = m。

密钥、消息和密文的形式

密钥、消息和密文一般来说都是字节序列,当然,它们也可以是其他类型的数学对象,例如整数或整数元组(可能位于某个指定的区间),或其他更复杂的数学对象类型(多项式、矩阵或组元素)。不管这些数学对象有多么奇特,实际上,它们必须在某个时刻表示为字节序列,以便在计算机中存储和在计算机之间传输。

一次性密码本

一次性密码中,密钥、消息和密文是相同长度的位字符串。{0,1}L 表示的是长度为L,内容为0或1的数据集。
在这里插入图片描述

满足这样的定义,E(k,m):= k⊕m 以及 D(k,c):= k⊕c 。异或非常好理解,如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。所以有:
斯坦福Dan Boneh密码学——01 香农密码与完美安全_第1张图片
在这种情况下,加密和解密函数碰巧是相同的,但当然,并非所有密码都具有此属性。之所以称为一次性密码本,是因为是因为加密所用的密钥是一次性的,即密钥只会使用一次。在对它尝试解密的过程中,所有的排列组合都会出现,因此我们无法判断其中哪一个才是正确的明文。

可变长度一次性密码

可变长度一次性密码中,密钥是某些固定长度L的位字符串,而消息和密文是可变长度的位字符串(最多L)。注意,密钥长度固定,消息和密文长度则可变!


{0,1}≤L 表示长度最多为L的所有位串的集合(包括空串)。对于键k∈ {0,1}L 和长度为 l 的消息m∈ {0, 1}≤L ,加密解密函数定义如下:

E(k,m):= k[0..l−1]⊕m D(k,c):= k[0..l−1]⊕c

替换密码

替换密码也是一种香农密码,设∑是一个有限的符号字母表(例如,字母a–Z加上一个空格符号)。消息空间M和密文空间C都是来自某个固定长度L的∑的符号序列。
在这里插入图片描述
密钥空间K由∑上的所有置换组成;也就是说,每个k∈ K是从∑到自身的一对一函数。注意,K是一个非常大的集合。简单来说,密钥K在明文和密文之间定义了一种一对一的规则。比如明文中的一个字母会对应密文中的另一个字母。解密直接做逆运算即可:
斯坦福Dan Boneh密码学——01 香农密码与完美安全_第2张图片
附加一次性密码本

其实非常好理解,可以把下面的这个 k 解释为一个随机添加的偏置量:
在这里插入图片描述


完美的安全

什么是“安全”密码?

直觉上,答案是安全密码是一种加密消息即使在看到其加密后仍然“隐藏良好”的密码。在此我们只担心加密单个消息而不关心完整性。上面提到的一次性密码本实际上满足了安全的定义,但是它并不实用,从某种意义上说,密钥必须和消息一样长:如果Alice想向Bob发送1GB文件,他们必须已经共享了1GB密钥!

怎么做到“安全”密码?

任何完全安全的密码都必须具有至少与其消息空间一样大的密钥空间。这一事实为开发更弱的安全性定义提供了动机,但从实际角度来看,这是可以接受的,并且允许使用短密钥加密长消息。对于敌手来说,有的时候虽然只拿到了密文,无法直接解开,但他对密文的了解会增加猜测加密消息的概率。

如果Alice在密钥k下对消息m进行加密,而窃听对手获得密文c,那么Alice只希望在密钥k难以猜测的情况下对m保密,这意味着,至少密钥k应该从很大的密钥空间中随机选择。要说m是“很好隐藏的”,至少意味着在不了解k的情况下,很难从c中完全确定m;然而,这还不够。尽管对手可能不知道k,但我们假定他确实知道加密算法和k的分布。事实上,我们将假定,当消息被加密时,密钥k总是随机、一致地从密钥空间中的所有密钥中选择。

完美安全的定义
ϵ \epsilon ϵ=(E,D)是定义在(K,M,C)上的香农密码。考虑一个概率实验,其中随机变量k均匀分布在k上。如果所有m0,m1∈ M、 和所有c∈ C、 我们有:
在这里插入图片描述
然后我们说 ϵ \epsilon ϵ是一个完全安全的香农密码。也就是说,每个消息明文序列映射出来的密文概率都是一样的,这样的话敌手就不会通过密文来推测密钥的分布,从而得到明文信息。根据以上,我们可以引出以下有关完美安全的定理:

定理1:
简单来说,就是如果随机变量k均匀分布在k上,那么对于m,每个随机变量E(k,m)∈ M、 具有相同的分布。
斯坦福Dan Boneh密码学——01 香农密码与完美安全_第3张图片
通过以上我们可以得出,一次性密码本是一种非常安全的香农密码。因为 K := M := C := {0,1}L。对于任何固定消息m∈ {0,1}L和密文c∈ {0,1}L,有一个唯一的密钥k∈ {0,1}L满足方程k⊕m = c.

而可变长度一次性密码本就显然不符合这个定义,因为密文与相应的明文具有相同的长度。实际上,让我们选择一个长度为1的任意字符串,称之为m0,而长度为2的任意字符串称之为m1。此外,假设c是一个任意长度的1字符串,k是一个均匀分布在密钥空间上的随机变量。那么我们有:
在这里插入图片描述
任何密文都会泄漏相应明文的长度。虽然我们总是可以“填充”短消息以有效地使所有消息都相等长,但从实际角度来看,这可能是不可接受的,因为这是对带宽的浪费。同理,替换密码不满足完美安全,附加一次性密码本则满足。

定理2:
ϵ \epsilon ϵ =(E,D)是定义在(K,M,C)上的香农密码。考虑一个概率实验,其中k是均匀分布在k上的随机变量。那么E是完全安全的当且仅当对于C上的每个谓词φ,对于所有m0,m1∈ M、 我们有:
在这里插入图片描述
谓词是什么?假设窃听对手将一些谓词φ应用于他获得的密文。谓词φ(密文空间上的布尔值函数)可能非常简单,比如奇偶校验函数(即密文中1位的数量是偶数还是奇数),或者可能是更复杂的统计测试类型。

定理3:
斯坦福Dan Boneh密码学——01 香农密码与完美安全_第4张图片
定理4:
香农定理指出,实现完美安全性的唯一方法是拥有与消息一样长的密钥。
在这里插入图片描述

你可能感兴趣的:(密码学,安全,人工智能,网络安全,同态加密)