密码的使用最早可以追溯到古罗马时期,《高卢战记》有描述恺撒曾经使用密码来传递信息,即所谓的“恺撒密码”,它是一种替代密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。因据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。这是一种简单的加密方法,这种密码的密度是很低的,只需简单地统计字频就可以破译。 现今又叫“移位密码”,只不过移动的为数不一定是3位而已。
密码术可以大致别分为两种,即易位和替换,当然也有两者结合的更复杂的方法。在易位中字母不变,位置改变;替换中字母改变,位置不变。
将替换密码用于军事用途的第一个文件记载是恺撒著的《高卢记》。恺撒描述了他如何将密信送到正处在被围困、濒临投降的西塞罗。其中罗马字母被替换成希腊字母使得敌人根本无法看懂信息。
苏托尼厄斯在公元二世纪写的《恺撒传》中对恺撒用过的其中一种替换密码作了详细的描写。恺撒只是简单地把信息中的每一个字母用字母表中的该字母后的第三个字母代替。这种密码替换通常叫做恺撒移位密码,或简单的说,恺撒密码。
尽管苏托尼厄斯仅提到三个位置的恺撒移位,但显然从1到25个位置的移位我们都可以使用, 因此,为了使密码有更高的安全性,单字母替换密码就出现了。
如:
明码表 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
密码表 Q W E R T Y U I O P A S D F G H J K L Z X C V B N M
明文 F O R E S T
密文 Y G K T L Z
只需重排密码表二十六个字母的顺序,允许密码表是明码表的任意一种重排,密钥就会增加到四千亿亿亿多种,我们就有超过4×1027种密码表。破解就变得很困难。
如何破解包括恺撒密码在内的单字母替换密码?
方法:字母频度分析
尽管我们不知道是谁发现了字母频度的差异可以用于破解密码。但是9世纪的科学家阿尔·金迪在《关于破译加密信息的手稿》对该技术做了最早的描述。
“如果我们知道一条加密信息所使用的语言,那么破译这条加密信息的方法就是找出同样的语言写的一篇其他文章,大约一页纸长,然后我们计算其中每个字母的出现频率。我们将频率最高的字母标为1号,频率排第2的标为2号,第三标为3号,依次类推,直到数完样品文章中所有字母。然后我们观察需要破译的密文,同样分类出所有的字母,找出频率最高的字母,并全部用样本文章中最高频率的字母替换。第二高频的字母用样本中2号代替,第三则用3号替换,直到密文中所有字母均已被样本中的字母替换。”
以英文为例,首先我们以一篇或几篇一定长度的普通文章,建立字母表中每个字母的频度表。
在分析密文中的字母频率,将其对照即可破解。
虽然设密者后来针对频率分析技术对以前的设密方法做了些改进,比如说引进空符号等,目的是为了打破正常的字母出现频率。但是小的改进已经无法掩盖单字母替换法的巨大缺陷了。到16世纪,最好的密码破译师已经能够破译当时大多数的加密信息。
局限性:
短文可能严重偏离标准频率,加入文章少于100个字母,那么对它的解密就会比较困难。
而且不是所有文章都适用标准频度:
1969年,法国作家乔治斯·佩雷克写了一部200页的小说《逃亡》,其中没有一个含有字母e的单词。更令人称奇的是英国小说家和拼论家吉尔伯特·阿代尔成功地将《逃亡》翻译成英文,而且其中也没有一个字母e。阿代尔将这部译著命名为《真空》。如果这本书用单密码表进行加密,那么频度分析破解它会受到很大的困难。
一套新的密码系统由维热纳尔(Blaise de Vigenere)于16世纪末确立。其密码不再用一个密码表来加密,而是使用了26个不同的密码表。这种密码表最大的优点在于能够克制频度分析,从而提供更好的安全保障。
举例:周期为e的换位将明文字母划分。
换位密码就是一种早期的加密方法,与明文的字母保持相同,区别是顺序被打乱了。
古典密码:
从远古到1949年香农发表《保密系统的通信理论》,这期间人类所使用的密码均称为古典密码,本文主要介绍三种古典密码,分别为置换密码,代换密码和轮换密码。
置换密码(又称为换位密码):
是指明文中各字符的位置次序重新排列得到密文的一种密码体制。
特点:保持明=文中所有的字符不变,只是利用置换打乱明文字符的位置和次序。
置换定义:有限集X上的运算σ:X→X,σ是一个双射函数,那么称σ为一个置换。
即任意x∈X,存在唯一的x’∈X,使得σ(x)=x’。
解密的时候会用到逆置换σ’,即任意x’∈X,存在唯一的x∈X,使得σ’(x’)=x且满足σσ’=I。
对置换有了一个基本的认识之后我们来谈一下置换密码,置换密码有两种,一种为列置换密码,一种为周期置换密码。
列置换密码:
列置换密码,顾名思义,按列换位并且按列读出明文序列得到密文,具体加密步骤如下:
将明文p以固定分组长度m按行写出nxm阶矩阵(若不m倍数,空余部分空格补充)。
按(1,2,3…m)的置换σ交换列的位置,σ为密钥。
把新得到的矩阵按列的顺序依次读出得到密文c。
解密过程如下:
将密文c以固定的长度n按列写成nxm阶矩阵。
按逆矩阵σ’交换列的位置。
把矩阵按着行依次读出为明文。
周期置换:
周期变换密码是将明文P按固定长度m分组,然后对每组的字符串按置换σ重新排列位置从而得到密文。
周期排列与列排列思想是一致的,只不过列排列是以矩阵的形式整列换位置,而周期是在分组以后对每组分别变换。懂得列排列就可以很容易地理解周期排列。
代换密码(又称为替代密码):
就是讲明文中的每个字符替代成密文中的另一个字符,替代后的各个字母保持原来的位置,在对密文进行逆替换就可以恢复出明文。
代换密码有分为单表代换密码和多表代换密码。
单表代换密码我们分别介绍凯撒密码和仿射密码。
凯撒密码:
凯撒密码依据凯撒密码代换表对26个英文字母进行替换。
根据密码算法加解密时使用替换表多少的不同,替代密码又可分为单表替代密码和多表替代密码。
单表替代密码的密码算法加解密时使用一个固定的替换表。单表替代密码又可分为一般单表替代密码、移位密码、仿射密码、密钥短语密码。
多表替代密码的密码算法加解密时使用多个替换表。 多表替代密码有弗吉尼亚密码、希尔(Hill)密码、一次一密钥密码、Playfair密码。 单表替代密码对明文中的所有字母都使用一个固定的映射(明文字母表到密文字母表)。设A={a0, a1,…, an-1}为包含了n个字母的明文字母表;
B={b0, b1,…, bn-1} 为包含n个字母的密文字母表,单表替代密码使用了A到B的映射关系:f:A→B, f ( ai )= bj
一般情况下,f 是一一映射,以保证加密的可逆性。加密变换过程就是将明文中的每一个字母替换为密文字母表的一个字母。而单表替代密码的密钥就是映射f或密文字母表。经常密文字母表与明文字母表的字符集是相同的,这时的密钥就是映射f。下面给出几种典型的单表替代密码。
⒈一般单表替代密码
一般单表替代密码的原理是以26个英文字母集合上的一个置换π为密钥,对明文消息中的每个字母依次进行变换。可描述为:明文空间M和密文空间C都是26个英文字母的集合,密钥空间K={π:Z26→Z26|π是置换},是所有可能置换的集合。
对任意π∈K,定义:
加密变换:eπ(m)=π(m)=c
解密变换:dπ(c) = π-1(c)=m, π-1是π的逆置换。
例:设置换π的对应关系如下:
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
q w e r t y u i o p a s d f g h j k l z x c v b n m
试用单表替代密码以π为密钥对明文消息message加密,然后写出逆置换 ,并对密文解密。
解:以π为密钥用单表替代密码对明文消息message加密,所得
密文消息为: π(m) π(e) π(s) π(s) π(a) π(g) π(e)=dtllqut
一般单表替代密码算法特点:
▲密钥空间K很大,|K|=26!=4×10^26 ,破译者穷举搜索计算不可行,1微秒试一个密钥,遍历全部密钥需要1013 年。
▲移位密码体制是替换密码体制的一个特例,它仅含26个置换做为密钥空间。
密钥π不便记忆。
▲针对一般替换密码密钥π不便记忆的问题,又衍生出了各种形式单表替代密码。
⒉移位密码
明文空间M、密文空间C都是和密钥空间K满足,即把26个英文字母与整数0,1,2,…,25一一对应。
加密变换,E={E:Z26→Z26, Ek (m) = m + k (mod26)| m∈M, k∈K }
解密变换,D={D:Z26→Z26, Dk (c) = c-k (mod26)| c∈C, k∈K }
解密后再把Z26中的元素转换英文字母。
显然,移位密码是前面一般单表替代密码的一个特例。当移位密码的 密钥k=3时,就是历史上著名的凯撒密码(Caesar)。根据其加密函数特 点,移位密码也称为加法密码。
⒊仿射密码
仿射密码也是一般单表替代密码的一个特例,是一种线性变换。仿射密码的明文空间和密文空间与移位密码相同,但密钥空间为 K={(k1,k2)| k1,k2∈Z26,gcd(k1,26)=1}
对任意m∈M,c∈C,k = (k1,k2)∈K,定义加密变换为 c = Ek (m) = k1 m +k2 (mod 26)
相应解密变换为: m = Dk (c) = k1 (c-k2) (mod 26)
其中,K1 k1=1mod26 。很明显,k1=1时即为移位密码,而k2=1则称为乘法密码。
⒋密钥短语密码
选用一个英文短语或单词串作为密钥,去掉其中重复的字母得到一个无重复字母的字符串,然后再将字母表中的其它字母依次写于此字母串后,就可构造出一个字母替代表。当选择上面的密钥进行加密时,若明文为“china”,则密文为“yfgmk”。显然,不同的密钥可以得到不同的替换表,对于明文为英文单词或短语的情况时,密钥短语密码最多可能有26!=4×1026个不同的替换表。 单表替代密码表现出明文中单字母出现的频率分布与密文中相同, 多表替代密码使用从明文字母到密文字母的多个映射来隐藏单字母出现 的频率分布,每个映射是简单替代密码中的一对一映射多表替代密码将 明文字母划分为长度相同的消息单元,称为明文分组,对明文成组地进 行替代,同一个字母有不同的密文,改变了单表替代密码中密文的唯一 性,使密码分析更加困难。
多表替代密码的特点是使用了两个或两个以上的替代表。著名的维吉尼亚密码和Hill密码等均是多表替代密码。
⒈维吉尼亚密码
维吉尼亚密码是最古老而且最著名的多表替代密码体制之一,与位移密码体制相似,但维吉尼亚密码的密钥是动态周期变化的。
该密码体制有一个参数n。在加解密时,同样把英文字母映射为0-25的数字再进行运算,并按n个字母一组进行变换。明文空间、密文空间及密钥空间都是长度为n的英文字母串的集合,因此可表示
加密变换定义如下:
设密钥 k=(k1,k2,…,kn), 明文m=(m1,m2,…,mn), 加密变换为:
Ek(m)=(c1,c2,…,cn),
其中ci(mi + ki)(mod26),i =1,2,…,n
对密文 c=(c1,c2,…,cn), 解密变换为:
Dk(c)=(m1,m2,…,mn), 其中 mi=(ci -ki)(mod26),i =1,2,…,n
⒉希尔(Hill)密码
Hill密码算法的基本思想是将n个明文字母通过线性变换,将它们转换为n个密文字母。解密只需做一次逆变换即可。
⒊一次一密密码(One Time Pad)
若替代码的密钥是一个随机且不重复的字符序列,这种密码则称为一次一密密码,因为它的密钥只使用一次。该密码体制是美国电话电报公司的Joseph Mauborgne在1917年为电报通信设计的一种密码,所以又称为Vernam密码。Vernam密码在对明文加密,前首先将明文编码为(0,1)序列,然后再进行加密变换。
设m=(m1 m2 m3 … mi …)为明文,k=(k1 k2 k3 … ki …)为密钥,其中mi,ki ∈(0,1), i≥1, 则加密变换为: c=(c1 c2 c3 … ci …) ,其中ci = mi Aring; ki , i≥1,
这里为模2加法(或异或运算)
解密变换为:
m=(m1 m2 m3 … mi …) ,其中mi = ci Aring; ki , i≥1,
在应用Vernam密码时,如果对不同的明文使用不同的随机密钥,这时Vernam密码为一次一密密码。由于每一密钥序列都是等概率随机产生的,敌手没有任何信息用来对密文进行密码分析。香农(Claude Shannon)从信息论的角度证明了这种密码体制在理论上是不可破译的。但如果重复使用同一个密钥加密不同的明文,则这时的Vernam密码就较为容易破译。
若敌手获得了一个密文c=(c1 c2 c3 … ci …) 和对应明文m=(m1 m2 m3 … mi …) 时,就很容易得出密钥 k=(k1 k2 k3 … ki …) ,其中ki = ciAring; mi,i≥1。 故若重复使用密钥,该密码体制就很不安全。
实际上Vernam密码属于序列密码,加密解密方法都使用模2加,这使软
硬件实现都非常简单。但是,这种密码体制虽然理论上是不可破译的,然而
在实际应用中,真正的一次一密系统却受到很大的限制,其主要原因在于该
密码体制要求:
① 密钥是真正的随机序列;
② 密钥长度大于等于明文长度;
③ 每个密钥只用一次(一次一密)。
这样,分发和存储这样的随机密钥序列,并确保密钥的安全都是很因难
的;另外,如何生成真正的随机序列也是一个现实问题。因此,人们转而寻
求实际上不对攻破的密码系统。
⒋Playfair密码
Playfair密码是一种著名的双字母单表替代密码,实际上Playfair密码属于一种多字母替代密码,它将明文中的双字母作为一个单元对待,并将这些单元转换为密文字母组合。替代时基于一个5×5的字母矩阵。字母矩阵构造方法同密钥短语密码类似,即选用一个英文短语或单词串作为密钥,去掉其中重复的字母得到一个无重复字母的字符串,然后再将字母表中剩下的字母依次从左到右、从上往下填入矩阵中,字母I,j占同一个位置。
加密方式无非是按照一定的数学变换进行加密,比如字母s和e日常出现概率高,那么换过之后的加密字母概率也很高。至于加密的公式,有软件可以专门破解。比如Hill加密,利用逆矩阵取模进行变换。相对来说这些都是比较简单的加密方式,破解多是暴力破解.
如果是凯撒密码,字母置换是整体位移的,那么可以看单个成词的,猜它是I;看3字词,猜它是the。如果是变种凯撒密码,字母置换不是位移而是用码表的,要复杂一点。思路还是词频,比如通过上面两个,可以先猜出3~4个字母,然后代入,代入以后继续根据更长的单词的词频来猜,循环往复,这样全部猜完了看读不读的通。中间可以结合字频,比如英文辅音字母当中C出现的比例高等等。
概率论:数学让密码学加速进化
你想过一个问题没有:
是什么因素决定了一个密码能否被破译呢?
对比一下古典密码和现代密码,你就能发现答案了。
古典密码学,加密和解密过程中,最小操作单位都是单个字符或者符号,所以古典密码学的核心就是移位法和替代法。
现代密码学,把研究对象用数来描述,再对数进行运算。不但突破了字母作为最小变化单位的限制,还可以使用更高等的数学工具做运算,因此破译就变得越来越难。
所以,加密时所用的数学工具,决定了一个密码能否被破译。
第二代的移位法和替换法的安全性很好,也比较好用,但到了16世纪,这个局面扭转了。因为概率论的出现,这两种加密法可以破解了。
自此之后,加密与解密的对抗战中,因为数学的应用,解密一方暂时占据优势。
两个破解 第二代加密法 最经典的案例。
一个发生在16世纪的苏格兰女王玛丽一世身上,一个发生在17世纪中后期到18世纪初的法国国王路易十四身上。
玛丽一世女王,她是我听说过的最刚烈的女人。在这门课《密码学人物列传》的模块中,我会专门用一讲详细讲讲她的故事。这节课,我们还是主要围绕密码展开。
27岁时,玛丽一世被自己的姑姑英格兰女王伊丽莎白一世关押了起来,一关18年。到44岁时,监狱里的她和外界反叛军密谋要杀害姑姑,一旦谋杀成功,她自己就能坐上王位。当时的信件都是通过特殊渠道传入监狱,最后由侍女在递送红酒时,藏在瓶塞中带进去。
玛丽一世很聪明,包含暗杀计划的并不是普通的信,而是加密过的。就算不慎落入伊丽莎白一世的手中,也没人看得懂。
其中用到的加密方法,就是替代法。所有的英文字母被类似符文的东西替换,一些常用词也用符号代替。具体的对应方式,你可以参考下面这个图表。
玛丽此后就通过这个特殊渠道和反叛军通信,几个月后,她熟练掌握,写信可以直接用密文,不用一个个字母查对照表了。
不幸的是,这个特殊消息传递的渠道里,竟然隐藏着一个双面间谍,他把情况汇报给了伊丽莎白。在位的女王正愁抓不到把柄,这下终于有机会名正言顺的处死玛丽了。
不过现在还急不得,必须抓到足够硬的证据,而且最好把整个阴谋背后所有的参与者一起除掉,所以伊丽莎白没有打草惊蛇。
此后玛丽和外界的通信,每一封都先经过双面间谍送到密码学校,花1个小时誊写好,然后再密封好,就像从没有被截获过那样,递出皇宫。密码学校的人再拿着誊写好的密文想法破解,最终他们成功了。
破解方法,就叫做“ 频率分析法 ”。这种方法其实在9世纪的阿拉伯就出现了,只是到了16世纪才被欧洲数学家注意到。
下面咱们讲讲它的原理。很简单,英文中字母出现的频率,是不一样的。比如字母e是出现频率最高的,占12.7%;其次是t,9.1%;然后是a,o,i,n等,最少的是z,只占0.1%。
英语中字母频率统计
除了英语,其他语言也有详细统计。
玛丽和外界用密文往来很多,字符总量足够多,全部收集到一起,统计哪个符号出现的比例最高,那个字符大概就是字母e。
当然,有些字母出现的频率极为接近,比如h,r和s,分别是6.09%,5.98%和6.32%。但只要稍微留意字母前后的关联,就可以区分出来。比如:t几乎不可能出现在b,d,g,j,k,m,q这些字母的旁边,h和e经常连在一起,ee一起出现的频率远比aa一起出现高得多等等。
频率分析法的实质,就是大幅降低字母排列组合的可能性。
从前我们假设每个符文都可以是26个字母的任意一个,有多少个替代符号出现,就有26的多少次方种可能。但频率分析法把很多符号的可能性大大降低,有的降低为只有1种可能,有的降低为只有2-3种可能。
这样一来,即便第一步统计各种符号出现的频率时并不完全确定,但只要再根据拼写规律筛选一下,替代符号对应的真实字母就确定了。
在审讯的过程中,尽管玛丽始终没有承认谋反,但证人和密码学专家一起向公众展示了密文和原文,讲解了解密规则,最后玛丽一世还是被砍了头。
这是加密和解密在皇权斗争中最著名的一次应用,解密法大胜。
解密方法公布后,替代法就不再有效。起码对欧洲王室来说,决心要破解的话,一定可以破。
加密一方当然不甘落败,怎么办?
很快就出现了另一种叫做“ 同音替代法 ”的方法。
比如说字母a可以用11,23,41三个数字替代,这三个数字翻译过来都是a。越常用的字母,比如e,就用越多的符号代替它。这种想法的终极目标,就是让每个数字出现的频率都大致相等。频率特征没有了,密码就不容易破解了。
同音替代法
从上面这张同音替代法的表格中可以看到,最常使用的e,替代的字符最多。
不过这种方法的解密法马上也出现了,就是通过字母前后顺序关系来猜。
最典型的例子是,q后面出现的最大可能是u,而q又是一个不常用的字母,有很大概率猜出来。其他字母猜出来的难度大一些,但只要肯花时间,总能破解。
史上最有名的采用同音替代法的密码,是法国国王路易十三、十四时期的“大密码”(Grand Chiffre)。它使用了40多年后,随着拿破仑倒台突然失传。直到1890年才被完整破解,破解方法就是从单词拼读规律入手的。
这套加密法用了587种数字,来表示不同的发音。其中陷阱还很多,比如有些数字只代表字母,不代表发音;很多数字是干扰字符,它们没有意义;还有一些数字既不是发音也不是字符,而是代表删掉前一个字符。
大密码被破解后,很多200年前路易十四的宫廷秘闻才大白于天下。
其中有一段,是法国宫廷传奇“铁面人”的新发现。铁面人的故事在欧洲,就像咱们关心康熙晚年雍正是怎么即位的故事那样。无数小说都以这个为背景,大仲马和伏尔泰都写过。
故事说的是一个犯人从1669年被捕后,一直关押。而且负责关押他的监狱长不论工作怎么调动,总把这个犯人带上,一关就是34年。按说这么重的罪,就让他把牢底坐穿吧。不,给他吃的都是美味,穿的都是华服,还可以弹琴,有医生定期探望,甚至转移监狱时都是高级马车护送。什么都有,只是没自由。
有狱卒看到过这个人在远离其他犯人的地方散步,脸上总带着一个铁面具,没人知道他长什么样。
铁面人到底是谁,有N种猜测,在大密码告破之前,有猜是路易十四同父异母哥哥的,有猜是路易十四亲生父亲的,有猜是英国国王私生子、法国财务大臣、意大利外交官的。之所以有争议,是因为每个说法都有漏洞。
在大密码告破后,又多了一种解释,那就是当时路易十四手下的德布隆德将军(Vivien de Bulonde)。解密后,有一封信是战争部长写给路易十四的,提到立即抓捕德布隆德将军,晚上关进牢房看管,白天可以允许他带着面具在城垛上活动。
这个说法虽然后来也发现了漏洞,但因大密码破解而公布的文件和信件,让法国宫廷内部的历史变得更有据可查。
你想过为什么替代法会被破解吗?是宫廷天才对猜字游戏很擅长,还是双面间谍的勇敢机智?
这些因素当然都有。但最重要的观察视角是——那个年代的数学突飞猛进,终于诞生了“ 概率 ”这种新概念。
今天的人听到“某个字母在一篇文章里出现的概率”这样的表述,当然不会觉得难以理解。但400多年前的人虽然也知道,硬币扔出去,女王头像一面朝上的机率是一半,这样粗浅的概率知识。但他们大都不会用这个视角衡量感兴趣的对象。
其实直到现在,大多数人也没什么机会用这个视角去思考,唯一涉及切身利益的就是买彩票。
而当年概率论之所以诞生,正因为第一个研究概率论的那个数学家卡尔达诺(Girolamo Cardano)是个赌徒,他还是三次方程一般解法的发现者,也是最早使用复数概念的人。世界上第一本概率著作《论赌徒的游戏》,就是他写的。正是这本书写完5年后,玛丽女王被姑姑囚禁了起来。
数学的发展,有两个高峰。一次是公元前500年到公元前300年,那之后一直在下滑,大约在公元500年跌到谷底。另一次高峰是在这1000年之后,大约在玛丽女王时代,才超越古希腊巅峰时期的水平,而且这个高峰现在还没出现最高值。
随着数学水平的提高,不只是密码学,所有使用到数学的应用学科也会跟着变。很多在1500年之前只是旁门左道的事情,逐渐成为独立的行业,或者单独的学科分支。
创文链接:
• 执剑与破壁的永恒之光
• 密码为什么要从俚语加密开始Why do passwords start with slang encryption
世界上最早的一种密码产生于公元前两世纪。是由一位希腊人提出的,人们称之为
棋盘密码,原因为该密码将26个字母放在5×5的方格里,i,j放在一个格子里,具体情
况如下表所示
1 2 3 4 5
1 a b c d e
2 f g h i,j k
3 l m n o p
4 q r s t u
5 v w x y z
这样,每个字母就对应了由两个数构成的字符αβ,α是该字母所在行的标号,β是列
标号。如c对应13,s对应43等。如果接收到密文为
43 15 13 45 42 15 32 15 43 43 11 22 15
则对应的明文即为secure message。
另一种具有代表性的密码是凯撒密码。它是将英文字母向前推移k位。如k=5,则密
文字母与明文与如下对应关系
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
F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
于是对应于明文secure message,可得密文为XJHZWJRJXXFLJ。此时,k就是密钥。为了
传送方便,可以将26个字母一一对应于从0到25的26个整数。如a对1,b对2,……,y对
25,z对0。这样凯撒加密变换实际就是一个同余式
c≡m+k mod 26
其中m是明文字母对应的数,c是与明文对应的密文的数。
随后,为了提高凯撒密码的安全性,人们对凯撒密码进行了改进。选取k,b作为两
个参数,其中要求k与26互素,明文与密文的对应规则为
c≡km+b mod 26
可以看出,k=1就是前面提到的凯撒密码。于是这种加密变换是凯撒野加密变换的
推广,并且其保密程度也比凯撒密码高。
以上介绍的密码体制都属于单表置换。意思是一个明文字母对应的密文字母是确定
的。根据这个特点,利用频率分析可以对这样的密码体制进行有效的攻击。方法是在大
量的书籍、报刊和文章中,统计各个字母出现的频率。例如,e出现的次数最多,其次
是t,a,o,I等等。破译者通过对密文中各字母出现频率的分析,结合自然语言的字母频
率特征,就可以将该密码体制破译。
鉴于单表置换密码体制具有这样的攻击弱点,人们自然就会想办法对其进行改进,
来弥补这个弱点,增加抗攻击能力。法国密码学家维吉尼亚于1586年提出一个种多表式
密码,即一个明文字母可以表示成多个密文字母。其原理是这样的:给出密钥
K=k[1]k[2]…k[n],若明文为M=m[1]m[2]…m[n],则对应的密文为C=c[1]c[2]…c[n]。
其中C[i]=(m[i]+k[i]) mod 26。例如,若明文M为data security,密钥k=best,将明
文分解为长为4的序列data security,对每4个字母,用k=best加密后得密文为
C=EELT TIUN SMLR
从中可以看出,当K为一个字母时,就是凯撒密码。而且容易看出,K越长,保密程
度就越高。显然这样的密码体制比单表置换密码体制具有更强的抗攻击能力,而且其加
密、解密均可用所谓的维吉尼亚方阵来进行,从而在操作上简单易行。该密码可用所谓
的维吉尼亚方阵来进行,从而在操作上简单易行。该密码曾被认为是三百年内破译不了
的密码,因而这种密码在今天仍被使用着。
古典密码的发展已有悠久的历史了。尽管这些密码大都比较简单,但它在今天仍有
其参考价值。