第1章 概述
1.1 计算机安全概念
1.1.1 计算机安全的定义
计算机安全:对于一个自动化的信息系统,采取保护措施确保信息系统资源(硬件,软件,固件,信息/数据和通信)的完整性,可用性和保密性。
计算机安全的三个关键目标CIA:
·保密性confidentiality:对信息的访问和公开进行授权限制
·数据保密性 ·隐私性
·完整性integrity:防止对信息的不恰当修改和破坏,确保信息的不可否认性和真实性
·数据完整性 ·系统完整性
·可用性availability:确保对信息的及时和可靠的访问与使用
其他安全概念
·真实性authenticity
·可追溯性accountability
1.1.2 例子
保密性:学生的分数信息
完整性:医院数据库内的病人过敏信息
可用性:大学公共网站
1.1.3 计算机安全的挑战
1.满足保密性,认证,不可否认或完整性的机制十分复杂
2.各种潜在的攻击
3.安全机制设计的逆向思维,和使用的物理位置逻辑位置
4.安全机制使用的算法和协议
1.2 OSI安全框架
ITU-T(国际电信联盟电信标准化组)推荐方案X.800,即OSI安全框架,给出了系统化的方法定义对安全的要求和措施。OSI安全框架主要关注安全攻击,安全机制和安全服务
1.3 安全攻击
1.3.1 被动攻击
对传输进行窃听和监测。攻击者目标是获得传输的信息。信息内容泄露和流量分析是两种被动攻击
1.3.2 主动攻击
包括对数据流修改或伪造,分为四类:伪装,重播,消息修改和拒绝服务。
1.4 安全服务
X.800定义:通信开放系统的协议层提供的服务。分为5类14个特定服务
1.5 安全机制
1.6 网络安全模型
第一部分 对称密码
第2章 传统加密技术
对称密码是一种加解密使用相同密钥的密码体制,又称传统密码或单钥加密。
针对它的攻击方法有基于密码算法性质的密码分析,基于穷举密钥的穷举攻击
计算机出现前的传统对称密码使用代替、置换技术。代替是将明文元素映射为密文元素,置换技术将明文元素的位置进行系统的置换。
转轮机密码系统即使用代替技术的复杂硬件设备
隐写术是将秘密信息隐藏于其他更大信息中的一种技术
2.1 对称密码模型
2.1.1 密码编码学
转换明文为密文的运算类型:代替和置换。代替是将明文中每个元素映射成另一个元素,置换是将明文中的元素重新排列
所用的密钥数:双方使用相同的密钥,这种密码称为对称密码,单钥密码,秘密钥密码,传统密码
使用不同的密钥,称为非对称密码,双钥或公钥密码
处理明文的方法:分组密码每次处理一组元素,输出一组元素。流密码连续的处理元素,每次输出一个元素
2.1.2 密码分析学和穷举攻击
攻击密码系统的目标是恢复使用的密钥,而不是仅仅恢复明文。攻击传统的密码体制的方法:
密码分析学:利用算法的特征推导特定的明文或密钥
穷举攻击:攻击者对一条密文尝试所有可能的密钥,直到转换为明文。平均而言,获得成功至少要尝试可能密钥的一半。
以下是密码攻击的几种类型。
唯密文攻击难度最大,也是最易防范,因为攻击者拥有的信息量最少。
已知明文攻击,比如特定文件有标准的文件头等等。与已知明文攻击关系紧密的是可能词攻击,比如攻击者处理特定信息就可能直到其中的部分内容。
选择明文攻击,如果分析者能获得信源系统,让发送方在发送的信息中插入一段选择的信息,那么选择明文攻击就有可能实现。
选择密文攻击和选择文本攻击在密码分析技术中很少用到
只有相对较弱的算法才抵挡不住唯密文攻击,一般加密算法起码要经受住已知明文攻击
加密算法的标准:破译密码的代价超出密文信息的价值,时间超出密文信息的有效生命期。如果加密体制满足任意一条,则在计算上是安全的.
问题是估计攻击者成功破译密文所需的工作量是非常困难的.以穷举攻击为例考虑所需的时间代价,平均来说,要获得成功必须尝试所有可能密钥的一半.
不同密钥空间所耗用的时间
DES(数据加密标准) 56位密钥
3DES(数据加密标准)168位密钥
AES(数据加密标准) 128位密钥
可见,DES算法已经不再安全
2.2 代替技术
2.2.1 Caesar 密码
最早的代替密码:对字母表的每个字母用它之后的第三个字母来代替
可以用穷举攻击分析方法的特征:已知加密和解密算法;需要测试的密钥只有25个;明文语言已知易于识别
2.2.2 单表代替密码
对于Caesar密码仅有25种可能的密钥,不够安全,且允许任意代替,密钥空间将会急剧增大.
先了解置换:一般n个元素的集合有n!个置换.
单表代替密码:密文行是26个字母的任意置换,有26!以上的可能的密钥,比DES密钥空间大10个数量级,每条消息用一个字母表(明文字母到密文字母的映射)加密
攻击方法:如果密码分析者知道明文的属性,就可以利用语言的一些规律进行攻击.比如将密文中字母使用的相对频率统计出来,与英文字母使用频率分布进行比较
单表代替密码较易被攻破,因为有原始字母使用频率的统计学特征.
对策:对每个字母提供多种替代,称为同音词,一个明文单元变换成不同密文单元,随机选其中一个同音词.如果对每个明文元素分配到密文元素的个数与此明文元素的使用频率成一定比例关系,则破坏了使用频率信息.即使是同音词方法,明文中每个元素仅对密文中一个元素产生影响,多字母语法模式仍然残留在密文中,会是密码分析相对简单.
对明文中多个字母一起加密,采用多表代替密码可以减少代替密码里明文结构在密文中的残留度.
2.2.3 Playfair 密码
多字母代替密码,把明文中的双字母音节作为一个单元将其转换成密文的双字母音节.基于由密钥词构成的5*5字母矩阵
2.2.4 Hill密码
多表代替密码
优点:隐蔽了单字母频率特性,Hill用的矩阵越大,隐藏的频率信息越多.能抵抗唯密文攻击.但是较易被已知明文攻击破解.
2.2.5 多表代替加密
Vigenere密码
Vernam密码
2.2.6 一次一密
2.3 置换技术
2.4 转轮机
多次置换得到的算法对密码分析有很大难度,对代替密码也适用.具体轮转机密码系统基本原理了解即可,为DES密码指明方向
2.5 隐写术
隐写术,隐藏信息的存在,一种简单却耗时的隐写术可由一段文本字词重新排列而成.例如在一整段文本中用每个单词的第一个字母连起来就可以连起来就可以拼出隐藏的信息.
缺点:需要额外的付出来隐藏相对较少的信息,一旦破解就毫无价值了.解决方法比如具体的加入方法由密钥来决定,另一种方法是将消息先加密再将其隐写.
优点:适用于通信双方不愿秘密通信的事实被人发现,可以通过加密标志信息找出进行消息隐藏的发送方或接收方.
第3章 分组密码和数据加密标准
3.1 分组密码原理
3.1.1 流密码与分组密码
流密码:一次加密数据流的一位或一个字节。古典流密码有密钥自动产生的vigenere密码和vernam密码。
分组密码:是将一个明文分组作为整体加密并得到与明文等长的密文分组。典型的分组大小由64位或128位。
分组密码和流密码一样,两个用户共享一个对称加密密钥。一般来说,分组密码的应用范围更广
3.1.2 feistel密码结构设计
分组密码加密是可逆的,每一个明文分组对应唯一一个密文分组,称为可逆变换或非奇异变换
3.1.3 fristel密码
代替:每个明文元素被唯一的替换为相应的密文元素
置换:明文元素的序列被替换为该序列的一个置换。也就是说,序列中没有元素被添加删除或替换,但序列中元素出现的顺序改变了
3.2 数据加密标准
数据加密标准(DES)的算法本身指的是数据加密算法(DEA)。DES采用64位分组长度和56位的密钥长度。将64位的输入经过一系列变换得到64位输出,解密也使用了相同的步骤和密钥