原文链接:http://blog.youkuaiyun.com/ddk3001/article/details/53997927
说明:本文内容是《CISSP Official Study Guide(第7版)》第6章(Cryptography and Symmetric Key Algorithms)和第7章(PKI and Cryptographic Applications)的学习总结。这两章全面介绍了密码学的知识,本文是概要总结,可作为地图参考,对于其中的细节,请查阅相关书籍和资料。
1 密码学基础
1.1 密码学的目标
目标 | 说明 | 技术 |
---|---|---|
机密性 | 保证数据未被泄露 | 秘密密钥系统、公开密钥系统 |
完整性 | 保证数据未被修改 | 秘密密钥系统、公开密钥系统。 保护消息:数字签名 (第7章)。 保护文件:Hash算法 (第21章)。 |
身份验证 | 对用户声明的身份进行验证。 A要确认正在通信的对方是B, 即,B要使A相信他是B。 |
挑战/响应技术 |
不可否认 | 为接收者提供担保, 保证消息确实来自发送者,而不是其他人。 A说消息来自B,B否认不了。 即,A要使B不能否则消息是他发送的。 |
公开密钥系统:因为只有自己持有私钥。 不能使用秘密密钥系统, 因为B可以说消息是A自己做的。 |
FIPS Federal Information Processing Standard 联邦信息处理标准
FIPS 140-2 密码模块的安全需求 :为密码模块定义了硬件和软件需求
1.2 密码学的数学原理
1、One-Way Function单向函数
公钥密码系统都是建立在单向函数的基础上。
2、Nonce 随机数
在加密过程中添加Nonce,从而获得更大强度。
例子:IV(初始化向量) 参见DES
3、零知识证明
零知识证明:在不向第三方揭示事实本身的情况下,向第三方证明你对事实的了解。
密码学:使用公钥加密系统,能提供零知识证明。
4、Split Knowledge 分割知识
分割知识:责任分离
例子:密钥托管(key escrow)。
- 密钥、数字签名、数字证书可以存储在托管数据库中。
- 如果用户密钥丢失,可以从托管数据库中提取密钥。
- “M of N控制”要求:N个人中至少有M个人一起工作,才能完成这项工作。
5、工作函数
工作函数:从成本或时间方面来度量密码系统的强度。
1.3 密码算法(Cipher)
1、One-Time pad 一次性密码本
主要障碍:很难生成、分发和保护冗长的密钥
主要应用:保护极其敏感的通信,实际中只用于短消息。
2、Running Key Cipher 滚动密钥密码
书籍密码,用于生成一次性密码本所需的密钥
3、混淆(Confusion)和扩散(Diffusion)
密码学算法依赖两种基本操作来隐藏明文信息:混淆和扩散
Confusion :明文与密钥的关系十分复杂,攻击者不能通过通过观察明文和密文的关系来确定密钥。
Diffusion :明文的改变导致多种变化,这种变化会扩散到整个密文中。
密码算法 :“替换”引入了混淆,“换位”引入了扩散。
1.4 现代密码学
秘密密钥系统 | 公开密钥系统 |
---|---|
机密性 | 机密性、完整性、身份验证、不可否认性 |
带外交换密钥 密钥需要经常更新 剔除用户困难 |
带内交换公钥 只有用户私钥被破坏时,才需要重建密钥 容易剔除用户 |
速度快 用于批量数据加密 |
慢度速 用于少量数据加密(数字签名、数字信封、数字证书) |
不可扩展:n(n-1)/2 每两人之间都需要一个密钥 |
可扩展:2n 每个人需要两个密钥(公钥和私钥) |
Hash算法
2 对称密钥加密
2.1 对称加密算法
DES | Data Encryption Standard | 数据加密标准 |
AES | Advanced Encryption Standard | 高级加密标准 |
IDEA | International Data Encryption Algorithm | 国际数据加密算法 |
2.1.1 DES
1977年 美国政府发布 用于政府通信
DES已经不再安全,2001年AES取代了DES
DES:分组长度64位,密钥长度56位(另外有8位用作奇偶校验或随意设置),16轮加密。
算法过程:http://wenku.baidu.com/view/ed21dc80b9d528ea81c7796b.html?re=view