古典密码 | Personal Blog

古典密码

置换密码

将明文字符按照某种规律重新排列形成密文

代替密码

构造一个或多个密文字母表,然后用密文字母表中的字母或者字母组来代替明文字母或字母组,各字母或字母组的相对位置不变,但其本身的值改变了

单表代替密码

  • 加法密码(凯撒密码):密文=(明文+密钥)(mod26)

  • 乘法密码:密文=(明文*密钥)(mod26) (密钥,26)=1

  • 仿射密码:密文=(明文*密钥1+密钥2)(mod26) (密钥1,26)=1

  • 其他的对任意确定替换

多表代替密码

多表代换密码首先将明文M分为由n个字母构成的分 组M1,M2,…,Mj ,对每个分组Mi的加密为:
Ci=AMi+B(modN),i=1,2,…j
其中(A,B)是密钥,A是n*n的可逆矩阵,满足gcd(|A|,N)=1,B=(B1,B2,…,Bn)T;
C=(C1,C2,…,Cn)T;
Mi=(m1,m2,…,mn)T

例:

唯密文攻击

获取大量密文,通过字符的出现频率判断对应加密关系: 例如:
双频,字母跟随关系,构词规则,词义

移位密码,仿射密码和单表代换密码都没有破坏明文的频率统计规律,可以使用该方法