查看原文
其他

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

文章来源:计算机与网络安全

1. 置换密码


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


明文:this is transposition cipher

密文:rehp ic noitisopsnart sisiht


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


原始明文:this is transposition cipher


排成矩阵:

置换规则:按列读取


形成密文:tiao ii rhsnsopitsinh srptce


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


明文:this is transposition cipher


词语密钥:password


根据上述,我们可以得到数字序列:4167352


排成矩阵:

根据数字序列的置换规则,得到密文: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。




版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。祝愿每一位读者生活愉快!谢谢!


推荐阅读




*六款免费网络延迟测试工具

*收藏丨Linux系统常用命令速查手册

*一起挖矿病毒事件的深度分析,结果你竟想不到~

                                                                                         

                                                                        


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存