人若有志 就不会在半坡停止!
----------------------------------------------------------------------------------
一、基本概念
密码学(cryptology)是研究数据的安全保密问题的一门科学,它是信息安全等相关议题(如认证、访问控制)的核心。
密码学主要包括两个分支:密码编码学和密码分析学。
密码编码学 主要研究如何对数据进行编码,保证数据内容不被非法获取;密码分析学 主要研究如何对加密数据进行破译,以获取数据内容或伪造数据。
二、密码编码
密码技术可分为两种:对称密码与非对称密码(公钥密码)。
对称密码:使用的加密密钥与解密密钥相同。根据对明文的处理方式,主要分为两种类型:分组密码与流密码。
分组密码:以明文序列中的特定长度内容(称为分组或块)作为基本单位,利用加密算法与密钥对每个分组进行加密或解密的方法。
典型算法:DES、AES、IDEA、Blowfish、RC5 等。 * 应用较流密码更为广泛。
流密码:以明文序列中的单个元素(字符或位)作为基本单位,利用加密算法与密钥连续对每个元素进行加密或解密的方法。
典型算法:Vigenere、Vernam、RC4 等。 * 随时间变化的加密方法,具有处理速度快、硬件易实现等优点。
非对称密码(公钥密码):使用的加密密钥与解密密钥不相同。(后续章节介绍)
早期的密码编码方法称为古典密码,根据将明文转换为密文的操作方式,密码技术可分为两种类型:代换密码和置换密码。
代换密码:分为单表代换和多表代换。
单表代换:明文字符通过一个字符映射表单次映射得到密文字符。
典型算法:单表代换密码、移位密码、仿射密码、密钥短语密码等。 * 安全性较差。
多表代换:明文字符通过多个字符映射表多次映射得到密文字符。
典型算法:Vigenere、Vernam、Playfair、Hill 等。 * 多次映射。
置换密码:分为列置换和周期置换。
密码分析攻击主要分为 5 个类型:
1. 唯密文攻击:已知 算法 + 密文。
2. 已知明文攻击:已知 算法 + 密文 + 一个 / 多个明文 / 密文对。
3. 选择明文攻击:已知 算法 + 密文 + 分析者选择的明文及其对应密文。
4. 选择密文攻击:已知 算法 + 密文 + 分析者选择的猜测性的密文及其对应已破译的明文。
5. 选择文本攻击:已知 算法 + 密文 + 分析者选择的明文及其对应密文 + 分析者选择的猜测性的密文及其对应已破译的明文。
加密算法安全性评估:
1. 破译密文付出的代价超过被加密信息的价值。
2. 破译密文需要的时间超过被加密信息的寿命。