代换密码也称代替密码,就是将明文中的每个字符替换成密文中的另外一个字符。代替后的各字母保持原来的位置,再对密文进行逆替换就可以恢复出明文。
将字母a,b,c…z用1,2,3…26表示,便得到了A1Z26代换密码。有时候数字也可以用2,3进制表示,加强了密码。
恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,移位密码,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母循环左移3位后被替换成密文,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以罗马共和时期恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。
若将英文字母表循环左移k(0≤k≤25)位得到替换表,则得到推广的凯撒密码体制。将英文字母分别对应为数字(0,1,2,…,25)。可以写出凯撒密码体制的一般形式为
明文空间 M=C=Z26;密钥空间 K1=K2=Z26;多表代换密码是指依次对明文的各组信息使用无限多的或有限个周期性重复的固定代换表进行替换来得到密文。若使用无限多的固定代换表(相对于明文变化是随机的),则称其为一次一密代换密码;若使用有限个周期性重复的固定代换表(相对于明文长度随机),则称其为周期多表代换密码。
一密代换密码:若使用不同期性重复的固定化表,则称其为周期多表代换密码。
一次一密代换密码是在理论上唯一不可破解的密码。这种密码对于明文的特性可实现完全隐藏,但由于需要的密钥量与明文所含信息单元个数一样,故其难以实用。
而周期多表代换密码的实际情形如下:在密钥给定(d个代换表排列T1T2…Td)个代换表中的情况下,加密密文m=m1m2m3的结果是c=T1(m1)…Td(md)Td+1(m1)…T2d(md)…,d被称为该多表代换密码的周期。
普莱费尔密码将明文字母按两个字母一组分成若干单元,然后将这些单元替换为密文字母组合,替换时基于一个5×5字母矩阵,该矩阵使用一个选定的关键词来构造,其构造方法如下。
从左到右、从上到下依次填入关键词的字母,若关键词中有重复字母,则第2次出现时略过, 然后将字母表中剩下的字母按字母顺序依次填入矩阵中,其中字母i和j看作同一个字符。 同时约定如下规则:矩阵表中的第1列看作第5列的右边一列,第1行是第5行的下一行。 对每对明文字母P1,P2,加密时根据它们在5行5列字母矩阵中的位置分别进行如下处理。
解密时,同样将明文分为两个字母一组,然后根据密钥产生的字母矩阵进行解密。 解密过程与加密过程基本相似,只是把其中的右边改成左边,下面改为上面即可。
设密钥为“LZCJM”,则根据前述的普莱费尔密码构造规则创建的字母矩阵如下表所示。
| L | Z | C | I/J | M |
| A | B | D | E | F |
| G | H | K | N | O |
| P | Q | R | S | T |
| U | V | W | X | Y |
若明文为“Playfair”,则首先把明文分成两个字母一组,然后对两个一组的明文分别加密, 加密代换如下表所示。
| pl | ay | fa | ir |
| ua | fu | ab | cs |
得到密文“uafuabcs”,解密过程取逆即可。
周期多表代换密码在一定程度上打破了明密异同规律,但是它具有明密等差规律。当周期d较小时,可将其确定,并通过对密文重排,使其获得问题转化为对单表代换密码的破译。对于周期d较大且密钥序列是伪随机的情况,可达到实际保密。对于周期d较大且密钥序列是随机的情况,可达到理论保密。