密码学总结一
一.概述
- 信息安全三要素
机密性(确保信息不被非法获取)
完整性(确保能够发现信息是否被改动过)
可用性(确保系统正常提供服务) - 两种攻击形式
被动攻击(对机密性的破坏,窃听)
主动攻击(对完整性,可用性的破坏,篡改,冒充) - 密码学主要功能
保证机密性,保证完整性,提供非否认(防范“否认干过的事”) - 密码学组成
密码编码学,密码分析学 - 两个术语
- 密钥(key):用于“变换”,加解密的辅助输入,是一些随机串
- 口令(password):用于“身份认证”,确认对方或证明自己的身份
- 柯克霍夫斯原则 密码学基本原则
即使密码系统的任何
细节已为人所知
只要密钥没有泄漏
它也应该是
安全的。 - 柯克霍夫斯原则意义在于,密码算法很难保密
- 知道算法的人可能叛变
- 设计者有个人喜好
- 频繁更换算法不现实
- 加密算法(函数)必须是一个单射函数
hash函数不是加密函数,不是单射意味着无法解密 - 实用的加密体制必须满足的两个条件
- 容易性:加密算法、解密算法都应该易于计算
- 安全性:对于任何攻击者,即使获得了密文,也很难恢复出明文、所用的密钥
- 区别两种技术
- 隐写术
- 特点:保护的是信息本身 (把信息隐藏起来)
- 缺点:一旦发现隐藏的方法,信息就会暴露 (安全性差)
- 加密术
- 置换(又称易位)
- 特点:明文中字符与密文中相同,只是出现的位置发生变化
- 密钥是什么:改变位置的规则
- 代换(又叫替换,代替)
- 特点:明文中出现的字母不一定出现在密文中,但位置保持不变
- 密钥是什么:代换规则
- 置换(又称易位)
- 区别
- 隐写术:保护的是信息本身,传递的仍是原来的信息,只是被藏了起来,一旦发现隐藏的方法,信息就会暴露
- 加密术:保护的是信息内容,传递的是变换后的密文,而不是原来的明文,不知道密钥,很难恢复信息
- 隐写术
- 密码学史上的重要事件
- 1949,香农发表论文《保密系统的通信原理》
- 意义:密码学的理论基础之一,发表30年后才显示出它的价值
- 1976,Diffie,Hellman发表论文《密码学的新方向》
- 意义:开辟了公钥密码学的新领域,可以说,没有公钥密码的研究就没有现代密码学
- 1977,RSA密码体制出现
- 意义:公钥密码领域最杰出的代表,事实上的标准,密码学史上的里程碑
4.1978,DES(数据加密标准)出现 - 意义:美国的数据加密标准,用于政府等非机密单位及商业的保密通信
- 意义:公钥密码领域最杰出的代表,事实上的标准,密码学史上的里程碑
- 它们标志密码学理论与技术的革命性变革,宣布了现代密码学的开始
- 1949,香农发表论文《保密系统的通信原理》
- 密码分析的分类方法
依据攻击者知道的信息多少,可以按如下分类,攻击强度依次增强- 唯密文攻击:只有一些密文,好的现代密码系统对此通常是免疫的
- 已知明文攻击 :已有很多明文/密文对
- 选择明文攻击:可以任意选择明文,并可获得相应密文
- 选择密文攻击:可以任意选择密文,并可获得相应明文
- 几点说明
- 设计上安全的密码算法,由于实现或使用不当,可能引入安全漏洞(社工(雾)
- 破译的主要目的:恢复密钥,通过密文计算密钥,至少要和计算明文一样困难
- 密钥应随机选择
- 并不一定恢复出整个明文才算成功破译,有时候,恢复出明文的部分信息,甚至几个关键单词,也算成功破译。部分破译又往往成为全部破译的突破口
- 密钥空间要足够大,以抵抗密钥穷举攻击
- 政府或军事应用中,也存在保密算法的情况。不过前提是,算法必须是安全的。通过保密算法进一步加强安全性。
- 两个观念转变
- 概率
- 抛弃“百分之百”的想法
- 相对
- 抛弃“绝对”的想法,安全都是相对的
- 概率
二.古典密码
1. 置换密码
- 概念
古典密码的一种最基本的处理技术,改变明文中各字符的相对位置
但明文字符本身的取值不变。 - 工作原理
将明文按一定长度m进行分组,把每组的字符按位置变换规则 π 重排位置 - 密钥
- 就是置换π,π的描述中其实包含了分组长度m的信息
- 密钥空间大小 m!(第一个有m种选择,第二个有m-1种...)
2. 代换
- 概念
古典密码的另一种最基本的处理技术,改变明文中各字符的取值但明文字符的出现位置不变 - 工作原理
- 建立一张或多张代换表 (明文字符到密文字符的对应关系、映射)
- 加密时将明文字符依次通过查表,找到相应的密文字符
- 明文字符被逐个替换,生成无任何语义的字符串,即密文
- 密钥
代换密码的密钥就是代换表 - 移位密码
- 工作原理
- 加密 : 把明文中每个字母代换为字母表中其后的第k个字母
- 解密 : 与加密相反,把密文中每个字母代换为字母表中其前的第k个字母
- 凯撒密码是k=3的移位密码
- 密钥
- 密钥是k
- 密钥大小26
- 工作原理
- 简单代换密码
- 工作原理
- 使用一张固定的代换表,明文字母到密文字母的对应关系不一定像移位密码那样有规律
- 密钥
- 密钥空间很大,有26!个
- 工作原理
- 频率分析:简单代换密码的终结者
- 简单代换密码的软肋:加密过程中,明文字母与密文字母的映射关系始终固定不变。因此,密文字母与对应的明文字母的出现频率完全一样。
- 基本原理
- 找若干与明文同种语言写的文章,统计出字母频率,以此作为参考
- 统计密文的字母频率
- 比照参考文章,分析密文中的字母频率,找到字母之间的映射关系
- 破译方法 = 统计分析 + 大胆猜测
- 古人应付频率分析的手段
- 命名密码
- 工作原理:根据代换表,首先对明文中出现的常用单词进行代换,余下的字母再逐个代换,这样,相同的明文字母就被代换成不同的密文字符,从而隐藏了字母频率。
- 同音密码(命名密码本质上也属于同音密码)
- 命名密码
3.多表代换密码
- 起因
命名密码、同音密码都属于单表代换密码,不能很好地隐藏频率特性。
早在15世纪,阿尔伯提就提出:单表代换密码最大的问题是加密时始终使用一张代换表。如果同时使用两张不同的代换表,就可以有效改变字母频率。阿尔伯提依此设计了一个密码盘,它是有记载的最早的多表代换密码。他的思想被不断发展,最终成型于16世纪,维吉尼亚密码横空出世。 - 维吉尼亚密码
-
工作原理
该密码体制有一个参数m(密钥的长度)加解密时,将消息分为m个字母一组进行变换。变换时,使用26张代换表,根据不同的密钥字母,每个明文字母使用不同的代换表进行加解密。注意:在维吉尼亚密码中,代换表不再是密钥了。 -
维吉尼亚密码的代换表
具体使用哪一行由密钥决定
-
同一明文字母对应多个密文字母,相同密文字母未必对应同一明文字母
-
密钥空间和密钥长度有关,为26^m个密钥
-
- 维吉尼亚密码相关分析
- 在维吉尼亚密码的分析中,要先确定密钥长度,再确定具体密钥
确定密钥长度的常用方法有两种:
Kasiski测试法
重合指数法 - 维吉尼亚密码的特点
- 用给定的m个移位代换表周期性地对明文字母加密
- 当两个相同的明文段间隔的字母数为m或m的整数倍时,将加密成相同的密文段
- 假设密文中出现两个相同的段落,对应的明文段不一定相同,但相同的可能性很大
- Kasiski测试法
- 搜索长度至少为3的相同的密文段,记下它们距离密文开头的距离
- m可能就是这些距离的最大公约数的一个因子
- 重合指数法
-
假设一个含有n个字母的串,从中任取两个字母,共有C(2,n)种
-
假设f0, f1, …, f25 分别表示 A, B, …, Z 在串中出现的次数。从该串中任取两个字母,如果它俩都等于第i个字母的话,共有C(2,fi)种
-
那么,从该串中任取两个字母,它俩相等的概率是多少?
Ic(x)就称作重合指数(x为字符串)
-
字母出现频率表
如果 x 是有意义的英语文本串,a, b, …, z在上表中的“出现概率”分别为p0, p1, …, p25, 那么其重合指数为
-
也就是说,当我们把密文分为m段时,算出各段的重合指数符合0.065,或是和其相差不大,则说明密钥长度为m
-
- 在维吉尼亚密码的分析中,要先确定密钥长度,再确定具体密钥
4.总结
- 置换密码、单表代换密码、维吉尼亚密码等对己知明文攻击都是非常脆弱的
- 即使用唯密文攻击,大多数古典密码体制都容易被攻破,因为它们不能很好地隐藏明文消息的统计特征