CTF 竞赛入门指南(CTF All In One)学习(十)
密码学
- 密码使用学
- 密码分析学
密码使用学
- 无**算法
- 对称**算法
- 公开**算法
对称**算法
- 双方共享一个**,并使用相同的加密和解密算法。
- 相关术语:
- 明文:被传递的消息。用 M 表示。对于计算机,M 指的是 2 进制。
- 密文:加密后的消息。用 C 表示,对于计算机,C 指的是 2 进制。
- 加密函数:作用于明文 M,得到密文 C,用 E 表示。
- 数学公式:????=????(????)
- 解密函数:作用于密文 C,还原明文 M,用 D 表示。
- 数学公式:????=????(????)
- 数学公式:????=????(????)
公开**算法
- 使用不同的加***和解***,是一种“由已知加***推导出解***在计算上是不可行的”密码体制。
- 解***是接收者专用的,对其他人保密。
密码分析学
古典密码学
常见替换密码
单表替换加密法:明文中的同一字母在加密时被同一固定的字母代换。
- 凯撒密码
- 简单替换密码
- 仿射密码
- Polybius密码
多表替换加密法:明文中的同一字母在加密时不是完全被同一固定的字母代换,可能是多个。
- 维吉尼亚密码
- ADFGVX密码
- Enigma密码机
单表置换密码
凯撒密码
算法:明文中的所有字母都在字母表上向后(或向前)按照一个固定数目
进行偏移后被替换成密文。
**:穷举。
简单替换密码
算法:将明文中所使用的字母替换为另一套字母表,形成新的对应关系。这种替换可以是任意的一对一关系。
**:穷举复杂度数量级是阶乘,因此很难用穷举破译。
仿射密码
加密函数:,其中
- 数字对(a,b)为**
- a和26互素,既:
- b为小于26的正整数
- 在英文中有26个字母,因此是
解密函数: