替代密码分为单表替换和多表替换两种形式。
单表替换的加密过程只有一张密码表,所有的字符都用同样的密码进行替换。
单表替换(如凯撒加密)简单总结:
明文和密文一一对应。
一般有以下两种方式进行破解:
密钥空间较小的情况下可暴力破解
在密文足够长的情况下,可使用词频分析法
当密钥空间足够大,而密文长度足够短的情况下,破解较为困难。
多表替换:
多表替换的加密过程有n张密码表,每个字符分别用不同的密码表进行替换。
多表替换的主要优点是解决了单表替换的频率分析问题。
如在凯撒密码的基础上,后来又发展出一种基于密钥的凯撒密码,其基本原理是利用一个密钥,将密钥的每一位转化为数字(一般为字母表对应顺序的数字),在分别以这一数字为密钥加密明文的每一位字母。
例如:
多表替换的典型代表:维吉尼亚密码
维吉尼亚密码对照表:
例题:
密文:DzareVmgjsdSylmxpDdxhvmgns
密钥:computer
我们可以编写python脚本: