置换密码
将明文字符按照某种规律重新排列形成密文
代替密码
构造一个或多个密文字母表,然后用密文字母表中的字母或者字母组来代替明文字母或字母组,各字母或字母组的相对位置不变,但其本身的值改变了
单表代替密码
-
加法密码(凯撒密码):密文=(明文+密钥)(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
例:
唯密文攻击
获取大量密文,通过字符的出现频率判断对应加密关系:
例如:
双频,字母跟随关系,构词规则,词义
移位密码,仿射密码和单表代换密码都没有破坏明文的频率统计规律,可以使用该方法