CTF 竞赛入门指南(CTF All In One)学习(十)

密码学

  • 密码使用学
  • 密码分析学

密码使用学

  • 无**算法
  • 对称**算法
  • 公开**算法

CTF 竞赛入门指南(CTF All In One)学习(十)

对称**算法

  • 双方共享一个**,并使用相同的加密和解密算法。
  • 相关术语:
    • 明文:被传递的消息。用 M 表示。对于计算机,M 指的是 2 进制。
    • 密文:加密后的消息。用 C 表示,对于计算机,C 指的是 2 进制。
    • 加密函数:作用于明文 M,得到密文 C,用 E 表示。
      • 数学公式:????=????(????)
    • 解密函数:作用于密文 C,还原明文 M,用 D 表示。
      • 数学公式:????=????(????)

公开**算法

  • 使用不同的加***和解***,是一种“由已知加***推导出解***在计算上是不可行的”密码体制。
  • 解***是接收者专用的,对其他人保密。

密码分析学

CTF 竞赛入门指南(CTF All In One)学习(十)

古典密码学

常见替换密码

单表替换加密法:明文中的同一字母在加密时被同一固定的字母代换。

  • 凯撒密码
  • 简单替换密码
  • 仿射密码
  • Polybius密码

多表替换加密法:明文中的同一字母在加密时不是完全被同一固定的字母代换,可能是多个。

  • 维吉尼亚密码
  • ADFGVX密码
  • Enigma密码机

单表置换密码

凯撒密码

算法:明文中的所有字母都在字母表上向后(或向前)按照一个固定数目
进行偏移后被替换成密文。
**:穷举。

简单替换密码

算法:将明文中所使用的字母替换为另一套字母表,形成新的对应关系。这种替换可以是任意的一对一关系。
**:穷举复杂度数量级是阶乘,因此很难用穷举破译。

仿射密码

加密函数:C=(aM+b)mod 26C=(aM+b) mod\space 26,其中

  • 数字对(a,b)为**
  • a和26互素,既:gcd(a,26)=1gcd⁡(a,26)=1
  • b为小于26的正整数
  • 在英文中有26个字母,因此是 mod 26mod\space 26

解密函数:M=a1(Cb)mod 26M=a^{−1} (C−b)mod\space 26