代替密码
什么是代替密码?
首先构造一个或多个密文字母表,然后用密文字母表中的字母或字母组来代替明文字母或字母组,各字母或字母组的相对位置不变,但其自身发生改变。
代替密码又分为单表代替密码、多表代替密码和多名代替密码。
一、单表代替密码
单表代替密码又称简单代替密码,它只使用一个密文字母表,并且由密文字母表中的一个字母代替明文字母表中的一个字母。
所以说单表代替建立了由密文到明文的一对一的映射关系。
下面介绍集中典型的简单代替密码。
1.加法密码
加法密码的映射函数为:
其中,k是满足0<k<n的正整数
著名的加法密码是古罗马的凯撒大帝使用过的一种密码,其密文字母表就是明文字母表循环右移3位(k=3)后得到的字母表,如:
明文CHINA转换成密文后就是FKLQD
缺点:
- 明文空间 = 密文空间
- 明文语言集已知(用于英文字母)且易于识别
- 结构简单,单字母代替
- 不能改变字母的统计特性
2、乘法密码
乘法密码是通过对字母等间隔抽取以获得密文,其加密和解密可分别表示为:
其中,m,c,k是满足0≤m,c,k≤25且gcd(k,n) = 1即k和n互素
3、仿射密码
仿射密码是加法密码和乘法密码的结合,映射函数为:
其中,要求(k1,n)= 1,0≤k0<n,且不允许同时有k1 = 1和k0 = 0
4、密钥词语代替密码
选用一个词语作为密钥编制密码的方法在置换密码中曾得到应用。这一方法同样可以用于代替密码中。首先随机选择一个词语作为密钥,去掉重复字母,把结果作为矩阵的第一行。其次在明文字母表中矩阵第二行开始,将剩余字母依次写入矩阵的其余行。最后按照某一顺序从矩阵中取出字母构成密文字母表。例如:
密钥: H O N G Y E
矩阵: H O N G Y E
A B C D F I
J K L M P Q
R S T U V W
X Z
A = {A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z}
B = {H,A,J,R,X,O,B,K,S,Z,N,C,L,T,G,D,M,U,Y,F,P,V,E,I,Q,W}
明文: C H I N A
密文: J K S T H
密文字母表由密钥词语、矩阵大小和写入选出顺序共同确定。
二、多表代替密码
由于单表代替密码只是用一个密文字母表,很容易破解。提高密码强度的一个方法是采用多个密文字母表。
最典型的多表代替密码是Vigenre密码。
维吉尼亚密码使用26个密文字母表,将26个密文字母表排在一起成为Vigenre方阵,如下图所示:
维吉尼亚密码的规则是用明文字母在方阵中的列和密钥字母在方阵中的行的交点处的字母来代替该明文字母。例如,明文字母为p,密钥字母为y,就用交点处的n来代替字母p。
维吉尼亚密码的解密就是利用维吉尼亚方阵进行反替换。例如,密文J,密钥是X,首先根据密钥J找到密文字母表,再查找密文X所在的列,该列与明文字母表的交点就是对应的明文O
三、多名代替密码
为了抵抗频率分析攻击,希望密文中不残留明文字母的频率痕迹。一种明显的方法是设法将密文字母的频率分布拉平。
频率分析攻击对单表代替密码最有效,它利用了字母或字符出现的频率来进行攻击。下图是字母的频率统计图:
与简单代替密码类似,只是映射是一对多的,每个明文字母可以加密成多个密文字母。
例如, A可能对应于5、13、25
B可能对应于7、9、31、42
• 当对字母的赋值个数与字母出现频率成比例时。这是因为密文符号的相关分布会近似于平的,可以挫败频率分析。
• 然而,若明文字母的其它统计信息在密文中仍很明显时,那么同音代替密码仍然是可破译的。
—— 摘自百度百科