网络安全攻防:密码技术之古典密码

计算机与网络安全
置换密码是一种通过变换矩阵大小选出的顺序组合,而密钥仅仅是便于记忆。因此,置换密码比较简单,经不起穷举攻击(穷举攻击无视顺序),但值得注意的是,如果把它与其他密码技术混合应用,也是可以得到相对安全且高效的密码。

1.置换密码

置换密码就是把明文中的字母或数字重新排列,字母或数字本身不变,但其位置发生了改变,示例如下。

明文:this is transposition cipher

密文:rehp ic noitisopsnart sisiht

显然,本例是一种直接将明文按倒序排列的简单置换加密算法,可被直接分析。因此,我们可进一步将明文按某一顺序排成一个矩阵,然后按置换规则的顺序选出矩阵中的字母序列,最后按固定长度读取字母即形成密文,示例如下。

原始明文:this is transposition cipher

排成矩阵:

1.jpeg

置换规则:按列读取

形成密文:tiao ii rhsnsopitsinh srptce

由此可以看出,改变矩阵的大小和置换规则可以得到不同形式的密码。通常,我们先选定一个词语作为密钥,去掉重复字母然后按字典顺序给密钥字母一个数字编号,就可以得到一组与密钥对应的数字序列,最后以此数字序列作为置换规则选出密文。

明文:this is transposition cipher

词语密钥:password

排成矩阵:

2.jpeg

根据数字序列的置换规则,得到密文:hath ts iiphtripsocin iessor

其实,置换密码是一种通过变换矩阵大小选出的顺序组合,而密钥仅仅是便于记忆。因此,置换密码比较简单,经不起穷举攻击(穷举攻击无视顺序),但值得注意的是,如果把它与其他密码技术混合应用,也是可以得到相对安全且高效的密码。

2.替代密码

替代密码的原理是使用替代法进行加密,就是将明文中的字符用其他字符替代后形成密文。例如,明文字母a、b、c、d,用D、E、F、G做对应替换后形成密文。

替代密码包括多种类型,如单表替代密码、多明码替代密码、多字母替代密码、多表替代密码等。下面我们介绍一种典型的单表替代密码,凯撒(Caesar)密码,又叫循环移位密码。它的加密方法就是将明文中的每个字母用此字符在字母表中后面第k个字母替代。它的加密过程可以表示为:

E(m)=(m+k)modn

其中,m为明文字母在字母表中的位置数;n为字母表中的字母个数;k为密钥;E(m)为密文字母在字母表中对应的位置数;modn为n的取模运算。

例如,对于明文字母H,其在字母表中的位置数为8,设k=4,则按照上式计算出来的密文为L。

E(8)=(m+k)modn=(8+4)mod 26=12=L

凯撒密码是一种典型的单表替代算法,由于对明文字母进行统一的偏移替代,因此密钥极易被穷举破解。为了提高破解难度,多表替代密码则是在加解密时使用了多个替换表,代表性算法有维吉尼亚密码(Virginia)、希尔(Hill)密码、一次一密钥密码、Playfair密码等。

下面简要介绍一下维吉尼亚密码。该密码体制有一个参数n,在加解密时,同样把英文字母映射为0~25的数字再进行运算,并按n个字母一组进行变换。明文空间、密文空间及密钥空间都是长度为n的英文字母串的集合,加密体制描述如下。

加密变换定义为:设密钥k=(k1,k2,…,kn),明文m=(m1,m2,…,mn),密文c=(c1,c2,…,cn)。

加密变换为:Ek(m)=(c1,c2,…,cn),其中,ci=(mi+ki)mod26,i=1,2,…,n。

解密变换为:Dk(c)=(m1,m2,…,mn),其中,mi=(ci-ki)mod26,i=1,2,…,n。

例如,对明文this is substitution cipher进行替代加密。若采用凯撒密码,密钥K=1,则密文为uijt jt tvctujuvujpo djqifs;若采用维吉尼亚密码,密钥K=cipher,即K=(3,9,16,8,5,18),则密文为vpxz mj ucqzxzvcipse eqeoii。

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论