在介绍密码学之前,先说明一下密码学的作用。
信息系统的硬件系统安全和操作系统安全是信息系统安全的基础,密码和网络安全等技术是信息系统安全的关键技术。信息系统安全即信息安全,信息安全学科是综合计算机、通信、电子、数学、物理、生物、管理、法律和教育 等学科,并发展演绎而形成的交叉学科。
信息安全的理论基础:
1. 数学 :
密码学——代数、数论、概率统计。
安全协议——逻辑学
信息对抗——博弈论
2. 信息论、控制论和系统论
3. 计算理论:可计算理论和计算复杂性理论
密码学:用基于数学方法的程序和保密的秘钥对信息进行编码,把信息变成一段杂乱无章难以理解的字符串,也就是把明文转变成密文。其主要目标是机密性 完整性 认证性 不可否认性
密码学主要分为两个分支:密码编码学,密码分析学
密码编码学:主要研究对信息进行变化,以保护信息在信道传递过程中不被敌手窃取、解读和利用的方法(如何加密)
密码分析学:过程与之相反
被动攻击:采用搭线窃听等方式直接获取未经过加密的明文或加密后的密文,并分析得知明文
主动攻击:采用删除、更改、增添、重放、伪造等手段主动向系统注入假的信息
参与方抵赖:通信双方中的某一方对所传输消息的否认
抗主动攻击的方法:认证
抗被动攻击的方法:加密
密码学的基本概念:
密码系统:明文空间、密文空间、密码方案、秘钥空间组成
明文:未经过加密的原始信息,一般情况下,用小写m(message消息)或p(plaintext明文)表示
明文空间:明文的全体
密文:经过伪装后的明文,一般情况下,用小写c(cipher密码)表示
密文空间:密文的集合,一般情况下,用大写的C表示
密码方案:确切的描述了加密变换和解密变换的具体规则(对明文进行加密时所使用的规则描述,对密文还原时所使用的规则),加密(E(m)),m为明文。解密(D(c)),c为密文
秘钥:加密和解密算法的操作在此元素控制下进行。一般用k(key秘钥)表示
秘钥空间:秘钥的全体
密码体制:完成加密和解密的算法,加密和解密过程通过密码体制+秘钥来控制的
根据分类标准的不同可以将密码体制分为
时期:古典密码、近代密码
保护内容:受限制的算法(算法的保密性基于保持算法的秘密)和基于秘钥的算法(算法的保密性仅仅基于对秘钥的保密)
加密/解密秘钥是否相同:对称秘钥密码体制和公钥密码体制
明文处理方式:分组密码和流密码
是否能进行可逆的加密变换分类:单向函数密码体制和双向变换密码体制
密码分析攻击类型:
1. 唯密文攻击 分析者根据所截获的一个或者一些密文进行攻击,目的是得到明文或秘钥
2. 已知明文攻击 分析者除了截获密文外,还有已知一些“密文-明文对”来破译密码
3. 选择明文攻击 分析者不仅可以得到一些“明文-密文对”,还可以任意选择希望被加密的明文,并获取相应的密文
4. 选择密文攻击 分析者可以选择一些密文,并得到相应的明文,任务推出秘钥
常见的古典密码包括:
模q算术:
分组密码的典型攻击方法:
强力攻击分为以下几种:
现代常规分组加密算法包括 DES,IDEA,RC5,RC6,AES,此外,还有Blowfish,CAST,RC2。
扩散(Diffusion):将每一位明文及密钥尽可能迅速地散布到较多个密文数字中去,以便隐蔽明文的统计特性。
混淆(Confusion):使明文和密文、密钥和密文之间的统计相关性极小化。使统计分析更为困难。
数字签名在信息安全,包括身份认证、数据完整性、不可否认性以及匿名性等方面有重要应用,可以说,数字签名是实现认证的重要工具。
数字签名是一种以电子形式给一个消息签名的方法,是只有信息发送方才能够进行的签名,是任何其他人都无法伪造的一段数字串,这段特殊的数字串同时也是对签名真实性的一种证明。
数字签名的特征:
- 签名是可信的:任何人都可以方便地验证签名的有效性。
- 签名是不可伪造的:除了合法的签名者之外,任何其他人伪造其签名是困难的(计算上不可行)
- 签名是不可复制的:对一个消息的签名不能通过复制变为对另一个消息的签名。如果一个消息的签名是从别处复制的,则任何人都可以发现消息与签名之间的不一致性。
- 签名的消息是不可改变的:经签名的消息不能被篡改。一旦签名的消息被篡改,则任何人都可以发现消息与签名之间的不一致性。
- 签名是不可抵赖的:签名者不能否认自己的签名。
数字签名的示意图如下:
此外,还有特殊的数字签名方式:
盲签名 双联签名 团体签名 不可争辩签名 多重签名方案 代理签名 数字时间戳