文章目录
- 对称加密
- 替换加密
- 为什么需要密码分析
- 攻击类型
- 1. **Ciphertext Only(仅密文攻击)**
- 2. **Known Plaintext(已知明文攻击)**
- 3. **Chosen Plaintext(选择明文攻击)**
- 4. **Chosen Ciphertext(选择密文攻击)**
- 多少个密钥比特位才足够?
- 模运算
- 移位(或凯撒)或单字母替换密码
- 维吉纳尔密码(16世纪,罗马)——一种多字母替代密码
- 仿射密码
复习复习PPT,期中玛德全考PPT了,一天一章
对称加密
起因:不安全的通道如果第三方有访问权限可以查看到通信内容
解决方案:采用对称密码加密。第三方只获得密文,看起来像随机的比特
如果两边使用相同的密钥K,则加密和解密是逆操作
重要提示:密钥必须通过安全通道在Alice和Bob之间传输。安全通道可以这样实现,例如,通过手动安装Wi-Fi保护访问(WPA)协议的密钥或人工信使传递。然而,只有当攻击者不知道密钥K才安全,可以简化密钥K的安全传输和存储。
替换加密
- 历史加密,理解暴力攻击与分析攻击的好工具,加密字母而不是比特(就像二战前的所有密码一样)
蛮力攻击(或穷举密钥搜索)
- 要求(至少)1个明文-密文对(x0, y0)
- 检查所有可能的密钥,直到满足条件:dK(y0) = x0( 简单地尝试每个可能的替换表,直到出现智能明文(注意每个替换表都是一个密钥)…有多少替换表(=键)?26 × 25 ×…× 3 × 2 × 1 = 26!2的88次方)在今天的计算机上搜索2的88个密钥是完全不可行的
为什么是2的88个?因为对于26个字母的替换表,每个字母都可以被替换为其他25个字母中的任意一个,但不能重复
-
字母频率分析
字母在英语中有非常不同的频率 此外:明文字母的频率在密文中被保留。例如,“e”是英语中最常见的字母;在一个典型的英语文本中,几乎13%的字母都是“e”。其次最常见的是“t”,约占9%。不仅单个字母的频率可以用于攻击,而且字母对的频率(例如,“th”在英语中非常常见),字母三元组等也可以用于攻击。
重要的一课:即使替换密码有足够大的密钥空间2的88次方。它可以很容易地被分析方法打败。这是一个很好的例子,说明加密方案必须承受所有类型的攻击。
为什么需要密码分析
密码分析对现代密码系统至关重要:如果没有人试图破坏我们的密码方法,我们永远不会知道它们是否真正安全。
Kerckhoff原理在现代密码学中至关重要:一个密码系统应该是安全的,即使攻击者(Oscar)知道系统的所有细节,除了密钥。
为了在实践中实现Kerckhoff原理:只使用已经被优秀的密码学家分析了几年的众所周知的密码!(理解密码学只处理这样的密码) 备注:不要依赖算法的保密性来保证加密系统的安全。虽然很多人可能会觉得,如果加密算法是秘密的,这样会增加难度,使其更安全,但历史表明,依赖“秘密算法”往往是危险的。一旦这种“秘密算法”被逆向工程或泄露,系统就极易被破解。例如,DVD 内容保护系统(CSS)曾试图通过保密算法来保护内容,但最终被成功逆向工程并破解了。
攻击类型
1. Ciphertext Only(仅密文攻击)
- 已知信息:
- 加密算法(Encryption algorithm)
- 密文(Ciphertext)
- 描述:
- 在这种攻击中,攻击者只知道密文和加密算法,而不知道任何对应的明文或密钥。
- 攻击的目标是通过分析密文推导出明文或密钥。
- 这是最困难的攻击类型,因为已知的信息最少。
2. Known Plaintext(已知明文攻击)
- 已知信息:
- 加密算法(Encryption algorithm)
- 密文(Ciphertext)
- 一个或多个明文-密文对(Plaintext-Ciphertext pairs)
- 描述:
- 在这种攻击中,攻击者已经掌握了一些已知的明文及其对应的密文。
- 通过分析这些明文-密文对,攻击者试图推导加密算法的密钥或其他未解密的密文对应的明文。
3. Chosen Plaintext(选择明文攻击)
- 已知信息:
- 加密算法(Encryption algorithm)
- 密文(Ciphertext)
- 攻击者选择的明文及其对应的密文(Plaintext chosen by cryptanalyst together with its corresponding ciphertext)
- 描述:
- 在这种攻击中,攻击者可以选择一些明文,并通过加密机制获取它们的对应密文。
- 通过分析这些数据,攻击者试图推导密钥或攻击算法。
- 这种攻击假设攻击者能够部分控制加密系统。
4. Chosen Ciphertext(选择密文攻击)
- 已知信息:
- 加密算法(Encryption algorithm)
- 密文(Ciphertext)
- 攻击者选择的密文及其对应的解密明文(Ciphertext chosen by cryptanalyst together with its corresponding decrypted plaintext)
- 描述:
- 在这种攻击中,攻击者可以选择一些密文,并通过解密机制获取它们对应的明文。
- 通过分析解密后的数据,攻击者试图推导密钥或攻击算法。
- 这种攻击假设攻击者能够部分控制解密系统。
- 攻击难度排序(从难到易):
- Ciphertext Only(仅密文攻击)
- Known Plaintext(已知明文攻击)
- Chosen Plaintext(选择明文攻击)
- Chosen Ciphertext(选择密文攻击)
多少个密钥比特位才足够?
攻击者只需要找到一种有效的攻击方法,就可以破解系统。即使密钥空间非常大,攻击者仍然可以通过其他手段成功攻击系统。那么密钥再大也没用
模运算
为什么我们需要学习模运算?对于非对称密码(RSA,椭圆曲线等)非常重要 一些历史密码学算法有用
- 模数不同余数不同
- 模除方法和计算逆元
- 摸中求幂化简
- 加减乘除
移位(或凯撒)或单字母替换密码
穷举式密钥搜索(密钥空间只有26!) 字母频率分析,类似于针对替代密码的攻击