好久没有写博客了,本来说的是自从成绩出来要好好准备复试,结果距离成绩出来一个月了,复试一点动静都没有,那我还是一边准备相关的专业课,一边按专业的形式,把相关的专业课知识再过一遍,哎~真是太难了!我都快忘了我自己考过研了。好了,废话不多说,下面开始进入正题!
信息安全
- 信息安全技术是防范攻击的一种有效的技术手段保证,也是维护信息安全的一项基本措施。
信息安全的四大基本属性
- 保密性:指信息不会泄露给未授权访问的用户、实体,或被非法利用。保密性实质上就是信息只给合法授权用户使用,而限制其他人访问。保密性按性质分又可分为:
- 传输保密性:对传输中的数据信息的保密,解决方法一般是加密传输。
- 存储保密性:在存储数据时的数据保密,通常通过访问控制来实现。
- 完整性:指数据未经授权不能被改变的特性。即,就是保证计算机信息数据不会受外界事件干扰而被改变和丢失。
- 可控性:指对想信息的传播和内容具有可以控制的能力。
- 可用性:指可授权访问实体的特性。即,当需要时能否正常存取和访问信息。各种对网络的破坏、身份否认、拒绝以及延迟使用都破坏了信息的可用性。
信息安全的主流技术
- 现代密码学和数据加密技术
- 防火墙技术
- 入侵侦测系统
- 代理服务器技术
- 身份认证
- 安全扫描
密码学的基本概念和原理
密码技术通过信息的变换和编码,将机密的敏感信息换成黑客难以读懂的乱码型文字,主要目的有两个:
- 使不知道如何解密的黑客不可能从其截获的乱码中得到任何有意义的信息。
- 使黑客不可能伪造任何乱码型的信息。
密码学的两个分支
- 密码编码学:对信息编码以实现信息隐蔽
- 密码分析学:研究分析破译密码的学问
密码系统的5个基本要素
- 明文:被隐藏的原始消息
- 密文:被加密处理后的消息
- 加密算法:对明文加密时采用的一组规则是加密算法
- 解密算法:对密文进行解密时采用的一组规则称为解密算法
- 密钥:密钥是密码系统的关键,通常它的安全性决定着密码系统的安全性
下面看一下这5个基本要素在一个密码系统中的体现:
密码体制的分类
- 明文转换成密文的操作类型
- 替换:明文的每一个元素被映射到另外一个元素
- 换位:明文的元素都被再排列
特点:所有的操作都可逆。大多数体制或称为乘积体制包含了多级替换和换位组合。
乘积密码:实际上是换位密码和替换密码的有限次组合,属于混合密码。由于换位密码是字符的一种线性变化,能扩散输入和输出的相关性,而替代密码则能使输入和输出称为非线性。因此,成绩密码在相当程度上可以抵御破译者的攻击。
- 使用的密钥数:
- 如果发送者和接收者使用同一密钥,该体制就是对称、单钥、秘密密钥或者称传统加密 。
- 如果发送者和接收者使用不同密钥,该体制就是不对称、双钥、或者说公钥加密。
- 明文的处理方式
- 分组密码:一次处理一个输入元素分组,产生与分组对应的一个输出分组。
- 流密码:在运行过程中连续处理输入元素,每次产生一个输出元素。
密码系统的分类
-
对称密码体制和非对称密码体制
- 对称密码体制:又称单钥密码体制。它的特点是无论加密还是解密都使用同一个密钥,所以该密码体制的安全性取决于密钥的安全性。常见的对称加密算法有DES,3DES和AES。
优点:
安全性高,加密速度快。
缺点:
一、是随着网络规模的扩大,密钥的管理成为一个难点。
二、是无法解决消息确认问题。
三、是缺乏自动检测密钥泄露的能力。 - 非对称加密体制,又称双钥体制,加密密钥和解密密钥不同,此时不需要安全信道来传送密钥,而只需利用本地密钥发生器产生解密密钥,并以此来控制解密操作。常见的双药体制的加密算法有RSA。
优点:
一、由于双钥体制的加密和解密密钥不同,且能公开加密密钥,而仅需保密解密密钥,所以双钥密码易于进行密钥管理。
二、双钥体制可以提供身份认证和数字签名等新功能。
缺点:
密码算法比较复杂,加密解密速度慢。
- 对称密码体制:又称单钥密码体制。它的特点是无论加密还是解密都使用同一个密钥,所以该密码体制的安全性取决于密钥的安全性。常见的对称加密算法有DES,3DES和AES。
-
分组密码体制和序列密码体制
- 分组密码体制是利用一个时变变换对明文进行逐个位处理。其加密方式是首先将明文序列以固定长度进行分组,每一组的明文用相同的密钥和加密函数进行运算。为了减少存储量和提高运算速度,密钥的长度一般不大,因而加密函数的复杂性称为系统安全的关键。分组密码设计的核心是构造既具有可逆性又具有很强的非线性的算法。加密函数重复地使用代替和置换两种基本的加密变换。常见的分组加密算法有:DES,3DES和AES。
优点:
一、明文信息具有良好的扩散性
二、对插入的敏感性高
三、不需要密钥同步
四、具有较强的适应性,适宜作为加密标准
缺点:
一、加密速度慢
二、错误易于扩散和传播 - 序列密码体制的加密过程是把明文序列与等长的密钥序列进行逐位模2加。解密过程是把密文序列与等长的密钥序列进行逐位模2加。
序列密码的安全性主要依赖于密钥序列。
优点:
一、处理速度快,实时性好
二、错误传播范围小
三、不存在串破译问题
四、适用于军事、外交等保密信道
缺点:
一、明文扩散性差
二、插入信息的敏感性差
三、需要密钥同步
- 分组密码体制是利用一个时变变换对明文进行逐个位处理。其加密方式是首先将明文序列以固定长度进行分组,每一组的明文用相同的密钥和加密函数进行运算。为了减少存储量和提高运算速度,密钥的长度一般不大,因而加密函数的复杂性称为系统安全的关键。分组密码设计的核心是构造既具有可逆性又具有很强的非线性的算法。加密函数重复地使用代替和置换两种基本的加密变换。常见的分组加密算法有:DES,3DES和AES。
-
确定型密码体制和概率密码他体制
- 确定型密码体制指的是当明文和密钥确定后,密文的形式也就唯一确定。
- 概率密码体制指的是当明文和密钥确定以后,密文的形式仍是不确定的,最后产生出来的密文通过客观随机因素从一个密文集合选出。如插入式密码算法。
概率密码体制增加了破译的难度,但可能会显著增加密文的长度,从而增加加密和传送的代价。
-
单向函数密码体制和双向函数密码体制
- 单向密码体制只适用于一些不需要解密的场合,它可容易地将明文加密成密文,但反之是很困难的甚至是不可能的。这种技术可用于将产生的密文当做对应明文的一个内容完整性证明。因为明文内容改变之后相应的密文内容也会改变。比较知名的单项密码函数是MD5,称为消息摘要算法或者杂凑函数算法。
- 双向密码体制可进行可逆的加密、解密变换,绝大多数加密算法属于这一类。
Feistel 密码结构
对于很多对称分组加密算法(包括DES),其结构由IBM的Horest Feistel在1973年首次详细描述,加密算法的输入长度是2w比特的明文分组及密钥K。明文被分成两半:L0和R0。这两半数据通过n轮处理后合成密文分组。第i轮输入为Li-1和Ri-1,由前一轮产生,同时子密钥Ki由密钥K产生。通常,子密钥Ki与密钥K不同,子密钥相互之间也各不相同,他们都是通过子密钥产生算法生成的。
Feistel 密码结构是所有对称分组密码都使用的更通用结构的一个特例。
对称分组密码的具体操作取决于以下参数和设计属性
- 分组大小:越大的分组意味着越高的安全性,但减小了加密解密的速率。128比特大小的分组是一个合理的折中并且几乎是进来分组密码设计的普遍选择。
- 密钥大小:越长的密钥意味着越高的安全性,但会减小加密解密的速率。现代算法最普遍的密钥长度是128比特。
- 迭代轮数:多轮处理能提供更好的安全性。迭代轮数的典型大小是16。
- 子密钥产生算法:此算法的复杂度越高,密码破译难度就越高。
- 轮函数:越高的复杂度意味着对破译越高的阻力。
三个常见的对称分组加密算法的介绍
一、数据加密标准(Data Encryption Standard)
DES由原美国国家标准局(现美国国家标准与技术研究所,NIST)于1977年采用,是目前最广泛使用的加密方案。这个算法本身被称为数据加密算法(DEA)。
采用DES算法加密的明文长度为64比特,密钥长度为56比特,更长的明文被划分为64比特的分组来处理,采用16轮迭代。
DES在1998年7月被证明不安全,使用当前的技术,甚至不需要使用特殊的专用硬件即可破解DES。
二、三重DES
3DES使用3个密钥并执行3次DES算法,其组合过程依照加密-解密-加密(EDE)的顺序进行:
3DES加密过程中的第二步使用的解密没有密码方面的意义。它的唯一好处是让3DES的使用者能够解密原来单重DES使用者加密的数据。
通过3个不同的密钥,3DES的有效密钥长度为168比特。3DES也允许使用两个密钥,即令K1=K3,这样密钥长度就是112比特。
FIPS 46-3包含了3DES的如下规定:
- 3DES是FIPS批准的可选对称加密算法。
- 使用单个56比特密钥的原始DES,只在以往系统的标准下允许,新设计必须支持3DES。
- 鼓励使用以往DES系统的政府机构转换到3DES系统。
- 预计3DES与高级加密标准AES将作为FIPS批准的算法共存,并允许3DES逐步过渡到AES。
3DES是一个强大的算法,因为底层密码算法是DEA,DEA声称的对基于其算法的破译的抵抗能力,3DES同样也有。
三、高级加密标准AES
3DES算法的优点
- 由于168比特的密钥长度,它克服了DEA对付穷举攻击的不足。
- 3DES的底层加密算法和DEA相同,而这个算法比任何其他算法都经过了更长时间、更详细的审查,除穷举方法以外没有发现任何有效的基于此算法的攻击。
3DES算法的缺点
- 算法软件运行相对较慢。
- DEA和 3DES都使用64比特大小的分组。但是出于效率和安全原因,需要更大的分组。
AES使用的分组为128比特,密钥长度可以为128、192或256比特,加密和解密算法的输入都是一个128比特的分组。
值得指出的特点之一是该结构不是Feistel 结构。典型的Feistel 结构,数据分组的一半用来代替另一半,然后两部分对换。AES没有使用Feistel 结构,而是在每轮替换和移位时都并行处理整个数据分组。
最后一个小问题:为什么公钥密码能够用作身份认证数字签名?
- 这是基于公钥加密算法的特点所提供的功能。
- 公钥加密算法有两个不同的密钥,一个是公开密钥,一个是私有密钥。
- 一个用作加密的时候,另一个用作解密。
- 使用其中一个密钥把明文加密后所得的密文,只能用相对应的另一个密钥才能解密得到原来的明文。
- 虽然两个密钥在数学上相关,但如果知道其中一个,并不能凭此计算出另外一个。因此其中一个可以公开,称为公钥,任意向外发布。
- 不公开的密钥为私钥,必须用户自行严格秘密保管,绝不透过任何途径向任何人提供,也不会透露给通信的另一方,即使另一方被信任。
- 所以,它可提供身份认证数字签名的功能。