Chapter 1:第1.1节 — 第1.3节 教材:Introduction to Modern Cryptography (Third Edition)

Chapter 1

现代密码学与经典密码学的区别

1. 安全的形式化定义。它是任何密码原语与协议设计是必不可少的第一步。
     原因:如果你都不知道你的目标是什么,如何去实现它
2. 精确的假设。
3. 严格的安全证明

1.1 Cryptography and Modern Cryptography

(1). 在20世纪之前(1970s),密码学更多的是一门艺术,而不是科学;
(2). 历史上,密码的主要消费者是军队和政府部门。简而言之,密码学已经从一套为少数小众应用程序确保秘密通信的启发式技术,发展成为一门帮助全世界普通人更普遍地保护系统安全的科学。
(3). 学习完本书后,应该达到的水平:
(a)应该了解普通密码原语提供的安全保证;
(b)注意这些原语的标准(安全)结构;
(c)能够根据新方案的安全性证明对其进行基本的评估(或缺乏)以及这些证明背后的数学假设。

1.2 The Setting of Private-Key Encryption

在这里插入图片描述
在这里插入图片描述
(1)对称加密方案由3个算法组成:密钥生成算法、加密算法、解密算法

1. 密钥生成算法Gen:是一个从某种分布式密钥空间均匀、随件选择一个密钥k的概论算法.
2. 加密算法Enc:该算法的输入为密钥K和消息m,输出密文c。用Enck(m) 表示用密钥k加密明文m.
3. 解密算法Dec:该算法的输入为密钥k和密文c,输出为明文m。用Dec(c)表示用密钥k解密密文c,得到明文m。

(2)Kerckhoffs’ principle

(a)敌手知道方案的所有算法,只有密钥是敌手不知道的;
(b)修改密钥是简单的,但是改变(设计)算法是困难的;
(c)鼓励公众进行公共审查,发现方案的不足之处。

1.3 Historical Ciphers and Their Cryptanalysis

(1)凯撒密码(Caesar’s cipher)
原理:进行移位
(2)拥有足够大的密钥空间的移位密码
原理:其实凯撒密码的变体,
在这里插入图片描述
(3)移位密码的安全性分析
密码k选择只有26中可能,解密后的明文有26中(通过暴力破解或穷举搜索攻击),从其中选出“Makes Sense(有意义的)”的那种。

  • 为了抵抗暴力破解或穷举攻击,需要将密钥空间设置的足够大。
  • “infeasible”的理解:涉及到敌手的资源(计算能力和存储能力等)和信息保密时间长度。
  • 密钥空间足够大是安全性方案的必要条件,不是充分条件。

(4)单表代换密钥(The mono-alphabetic substitution cipher)

  • 和移位密码的区别:移位密码中,明文和密文的映射是移位固定的;而单表代换的移位是任意的,实际上它是一种置换(双射,保证能够解密)。密钥k的空间大小为26!(大小接近2的88次方),密钥暴力破解是不可行的。
    在这里插入图片描述

单表代换密码能够字母频率统计攻破

  • 对于任何给定的密钥k,每个字母的映射是固定的,即如果字母e被映射为D,然后明文中字母e的出现都将导致密文中字母D的出现;
  • 英文文本中单个字母的频率分布是已知的(如下图所示)。
    Average letter frequencies for English-language text
    该攻击的工作原理是将密文中字符的频率分布制表,即记录A出现的概率为12%,B出现的概率为3%,以此类推。然后将这些频率与正常英语文本的已知字母频率进行比较。然后可以根据观察到的频率分布猜测映射的对应关系。由于e是英语文本中出现频率最高的字母,所以可以猜测密文中出现频率最高的字符对应的是明文字符e,以此类推。一些猜测可能是错误的,但足够多的猜测将是正确的,以使相对快速的解密(特别是利用英语的其他知识,例如q通常后面跟着u, h可能出现在t和e之间)。
    (5)对移位密码的改进攻击
  • 使用字母频率表,对移位密码的攻击需要使用每个可能的密钥解密密文,然后检查哪个密钥生成的明文是“有意义的”。这种方法的一个缺点是,它难以实现自动化操作,因为计算机很难检查给定的明文是否有意义。更重为糟糕的是,在某种特殊的情况下,明文字符遵循与英语文本相同的分布,但该明文本身不是有效的英语文本,检查该明文“有意义”将是无效的。
  • 将字母表中的a,b,c,…与数字0,1,2,3,…对应,pi表示字母表中第i哥字母在英语文本中出现的频率,如p0=0.082,看上图所知。将26个字母的频率pi进行相加得:
    在这里插入图片描述
  • 现在,假设我们被给定了密文,让qi表示这个密文中第i个字母出现的频率;也就是说,qi仅仅是字母表中第i个字母在密文中的出现次数除以密文的长度。如果密钥是k,那么pi应该大致等于q(i+k),因为第i个字母被映射到(i +k)个密文字母上。(我们用i+k代替更麻烦的[i+k mod 26])
    在这里插入图片描述
    对于取值范文为{0,1,2,…,25}的每个j,我们期望Ik≈0.065 (其中k是实际的密钥)。通过对j值得遍历,计算所有Ij的值,将其与0.065进行对比。如果相等,则此时的k值就是所要求的密钥值。该方法实现了计算机的自动化
    (6)维吉尼亚密码(亦称为多表代换密码)
  • 可以实现对单表代换密码的统计攻击,因为密钥定义了一个固定的映射,该映射逐字应用于明文。可以通过使用多表代换密码来阻止这种攻击,其中密钥定义了应用于明文字符的映射。
  • 在这里,一个密钥k可以将2个字符块ab映射到DZ,同时,将ac映射到TY(注意,此处明文字符a没有映射到固定的密文字符)。多表代换密码“平滑”了字符在密文中的频率分布,使其更难进行统计分析
  • 现在,密钥被看作是一串字母;加密是通过将每个明文字符按密钥字符所指示的数量来移动实现的,必要时在密钥中绕行。(如果密钥长度为1,则退化为移位密码)。 例如,加密消息**“tellhimaboutme”使用钥匙“cafe”**的过程如下图所示:
    在这里插入图片描述
    通过观察,我们发现:加密第一,第五,第九字母…与移位密码(密钥为字母c)中的情况完全一样。以此类推,第二,第六,第十字母…密钥为a的情况;第三,第七,……与f字符;第四,第八…字符与e。注意到,在上面的例子中,l被映射一次到Q,一次映射到p。此外,密文字符E有时从E得到,有时从a得到。因此,密文的字符频率被“平滑”掉了。

如果密钥k足够长,破解这个密码就会令人望而生畏。事实上,很多人都认为它是牢不可破的,”尽管它是在16世纪发明的,但直到数百年后才有人对它进行了系统的攻击。

(7)维吉尼亚密码的攻破

  • 密钥k的长度(周期)t 是已知的。将密码k表示为k=k1k2k3…kt,其中每一个ki是一个字母。密文c=c1c2c3…可以被分成t部分,每一个部分可以看作是一个移位密码的密文块(其中密钥是一个字母)。对于取值范围为{1,… ,t}的j,密文为:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 密钥k的长度(周期)未知。
    首先要注意的是,只要密钥k的最大长度T不是太大,我们可以简单地重复上述攻击T次(每个可能值t属于{1,2,…,T}。这导致最多有T种不同的候选明文,其中真正的明文可能很容易识别。因此,该种情况下,未知的密钥长度并不是一个严重的障碍。

  • 还有一些更有效的方法,从已观察到的密文中确定密钥的长度。
    第一种方法:Kasiski方法
    该方法的第一步是识别密文中长度为2或3的重复模式。这些可能是在纯文本中频繁出现的某些双字母或三元组合的结果。例如,考虑一下常见的单词“the”。这个单词将根据它在明文中的位置映射到不同的密文字符。但是,如果它在相同的相对位置出现两次,那么它将被映射到相同的密文字符。因此,对于足够长的纯文本,很有可能出现这种情况“the”将被重复映射到相同的密文字符。考虑以下密钥为“beads”的具体例子:
    在这里插入图片描述
    通过观察,我们发现:单词The有时映射到ULE,有时映射到LII,有时映射到XHH。然而,它被两次映射到LII,在足够长的文本中,它很可能被多次映射到每个可能性。Kasiski的观察是,这些重复出现的现象之间的距离(假设它们不是巧合)是密钥长度(周期)的倍数。在上面的例子中,周期为5,LII两次出现之间的距离为30,是密钥k长度(周期)的6倍。因此,重复序列之间距离的最大公约数(假设它们不重合)将产生密钥长度t或其倍数。

  • 另一种方法,称为重合索引法(index of coincidence method),其更易实现自动化操作。回想一下,如果密钥长度是t,那么密文字符:
    在这里插入图片描述
    在这里插入图片描述

  • 密文长度和密码分析攻击。
    上述对维吉尼亚密码(多表代换密码)的攻击需要比以前攻击更长的密文。

1.4 Principles of Modern Cryptography

  • 原则1:形式化定义
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值