单表代替密码
置换密码:将明文中的字母重新排列,字母本身不变,但其位置发生改变。
代替密码:将明文字母替换成其他字母、数字或符号。
代替密码分为单表代替密码、单字母代替密码、多字母代替密码和多表代替密码。
单表代替密码定义
假设所采用语言的字母表含有个字母,即
集合上上置换的全体记为,则是上的对称群。
定义1 设是一列置换,是一列明文,其中σi是SYM(Zq)中元素。变换将明文组加密成密文组即
称上述加密方式为代替加密。
注:
1.当时,称为单表代替加密;否则,称其为多表代替加密。
2.称为代替加密密表。
3.由于的阶等于,故单表代替密码共有个(其中含恒等代替加密)不同的代替加密密表。
单字母单表代替密码——移位代替密码
以下将个字母的字母表与模中数作一一对应,医用每个字母对应的数字代替该字母。
移位代替密码是最简单的一种代替密码。其加密变换为
显然,移位代替密码的密钥空间中的元素个数为,其中是恒等变换。
凯撒密码的一般形式
1.将英文字母表移位得到替换表,则得一般得算法。
2.共有26种可能的密码算法(25种可用)
3.将每个字母分配一个数值,如等,则算法可表示为:
(a)加密算法:
(b)解密算法:
单字母单表代替密码——乘法代替密码
乘法代替密码的加密变换为:
这种密码又叫采样密码,因为其密文字母表是将明文字母表按下标每隔k位取出一个字母排列而成(字母表首尾相连)
注:
1.当.即k与互素时明文字母与密文字母一一对应。
2.若为素数,则有个可用密钥;否则只有个可用密钥。其中是的欧拉函数,等于小于且与互素的正整数的个数。 对于,与互素且小于的正整数个数为,除去的恒等变换,还有种选择,即和。
单字母单表代替密码——仿射代替密码
将移位代替密码和乘法代替密码结合起来就构成仿射代替密码。其加密变换为 其中gcd(k1,q)=1,以[k1,k0]表示仿射代替密码的密钥。
注:
1.当时,就得到乘法代替密码;当时,就得到移位代替密码。
2.时,可用的密钥数为26×12-1=311个。
因为,所以存在,故仿射代替密码的解密变换为
单字母单表代替密码——密钥短语密码
可以通过下述方法对加法代替密码进行改造,得到一种密钥可以灵活变化的密码。具体步骤如下:
1.选一个英文短语,称其为密钥字或密钥短语;
2.按顺序去掉重复的字母;
3.将它依次写在明文字母表之下;
4.将明文字母表中未在短语中出现过的字母依次写在此短语之后,构造出一个代替表。
多字母单表代替密码——Playfair密码
Playfair算法基于一个由密钥词构成的5×5字母矩阵。(两个两个字母加密)
以monarchy为例,填充矩阵方法如下:
1.将密钥词(去掉重复字母)从左向右,从上到下填在矩阵格子中;
2.将剩余的字母按字母表的顺序从左到右、从上到下填在矩阵剩下的格子里;
3.字母I和J暂且当作一个字母。
Playfair密码的加解密步骤:
加密:
1.明文分组(填充):2个字母1组
2.同行字母对加密:循环向右,ei→FK
3.同列字母对加密:循环向下,cu→EM,xi→AS
4.其它字母对加密:矩形对角线字母,且按行排序,hs→BP,es→IL(或JL)
解密:加密的逆向操作
多字母单表代替密码——希尔(Hill)密码
将m个连续的明文字母替换为m个密文字母,由m个线性方程决定,在方程中每个字母被指定为一个数(a=0,b=1,……,z=25) (三个三个字母加密)
Hill密码的加解密过程:
加密:
明文分组并编码 C≡KP mod 26, 其中,K为密钥矩阵,P、C分别为明、密文分组。
解密:
密文分组并编码 P≡1/K×C mod 26, 对密钥矩阵K的要求:在mod 26下可逆。