文章目录
0. 概念
0.1 密码学能做什么
- 机密性:如何使得某个数据自己能看懂,别人看不懂
- 认证:如何确保数据的正确来源,如何保证通信实体的真实性
- 完整性:如何确保数据在传输过程中没有被删改
- 不可否认性:如何确保用户行为的不可否认性
0.2 攻击类型
- 被动攻击
被动攻击又分为两类,一类是获取消息的内容;第二类是进行业务流的分析。 - 主动攻击
这种攻击包括对数据流的某些篡改或产生某些假的数据流。主要分三类:
①中断:是对系统的可用性进行攻击,如破坏计算机硬件、网络或文件管理系统。
②篡改:是对系统的完整性进行攻击,如修改数据文件中的数据、替换某一程序使其执行不同的功能、修改网络中传送的消息内容等。
③伪造:是对系统的真实性进行攻击。如在网络中插入伪造的消息或在文件中插入伪造的记录。
0.3 安全业务与安全属性
-
保密任务
保护数据以防被动攻击。
机密性- 保证信息为授权者使用而不泄露给未经授权者
- 别人“看不到”或“看不懂”
-
认证业务
用于保证通讯的真实性
认证- 消息认真,保证消息来源真实性
- 身份认证,确保通信实体的真实性
- 证明“你就是你”
-
不可否认性
要求无论发送方还是接收方都不能抵赖所进行的传输
不可否认业务
用于防止通信双方中的某一放对所传输消息的否认。消息发出和接受能被确认。
0.4 密码学基本概念
- 明文:没有加密的信息
- 密文:加密后的信息
- 加密变换:从明文到密文的变换
- 解密变换:从密文到明文的变换
- 密钥:加密和解密是在密钥控制下进行的
0.5 密码算法分类
体制分类:
- 对称密码(单钥密码,私钥密码):加密密钥和解密密钥相同
包括:分组密码、流密码… - 非对称密码(双钥密码,公钥密码):加密密钥和解密密钥不同
包括:公钥密码、数字签名…
按功能分类:
加密算法:用于机密性解决方案
杂凑函数:用于完整性解决方案
数字签名:用于认证和不可否认性
0.6 可破译和不可破译密码
可破译的:能够根据密文确定明文或者密钥,或根据明文及对应的密文确定密钥,称为可破译密码
否则称为不可破译密码
0.7 密码体制的攻击方法
- 穷举攻击:通过穷举所有密钥来进行破译
对抗:可增大密钥的数量 - 统计分析攻击:通过分析密文和明文的统计规律来破译
对抗:设法使明文和密文的统计规律不一样 - 解密变换攻击:针对加密和变换的数学基础,通过数学求解设法找到解密变换
对抗:选用具有坚实的数学基础和足够复杂的加密算法
密码分析者通常可以在下述情况下进行攻击:
(1)唯密文攻击:密码分析者只知道一些密文。只能通过统计特性分析其中的规律。
(2)已知明文攻击:密码分析者得到了一些明文和相应的密文。
(3)选择明文攻击:密码分析者可以任意制造或者选择一些明文,并得到相应的密文。
(4)选择密文攻击:密码分析者可以任意制造或者选择一些密文,并得到相应的明文。
唯密文攻击的强度最弱,攻击强度依次增加。
1. 古典密码
2和3是查表代换,根据对每个字母逐个进行还是多个字母同时进行,分为单表代换密码和多表代换密码。
1.1 置换密码
明文中的字或字母被重新排列,字或字母本身不变,但位置发生了变化。置换密码又称移位密码。如:报文倒置法。
1.2 单表代换密码
构建字符之间的一一映射关系
1.2.1 加法密码
凯撒(Caesar)密码是一种加法密码
1.2.2 乘法密码
1.2.3 仿射密码
仿射密码是加法密码和乘法密码的结合
其中 a^{-1}
表示 a 的逆元,即
1.2.4 密钥短语代替密码
这种密码选用一个英文短语或者单词串作为密钥,称为密钥字或密钥短语。
例如:HAPPY NEW YEAR,去掉其中重复字母和空格得到HAPYNEWR,以此写入字母表中,得到
再依照表进行代替
1.3 多表代换密码
1.3.1 矩阵形式计算
1.3.2 维吉尼亚密码
RELATIONS作为密钥
再对照表格,找出密文