核心原则

  • Kerckhoffs 原则:系统的安全性不应依赖于算法的保密,而应仅依赖于密钥的保密。不要使用“自制”的加密算法。

古典密码及其破解

  • 移位密码 (Shift Cipher):密钥空间太小 (),易受穷举攻击。
  • 单表代换 (Substitution Cipher):密钥空间大 (),但不改变明文的统计分布
    • 攻击方法:频率分析 (Frequency Analysis)。英文字母 ‘e’ 出现频率最高。
  • Vigenère 密码:多表代换。
    • 攻击方法:利用 Kasiski 测试确定密钥长度,然后通过重合指数 (Index of Coincidence) 分析。
    • 漏洞原因:密钥是重复使用的,对于每个子密文的第 ki 位尝试 25 种偏移可能,IoC 最接近 0.65 的就是密钥