论文部分内容阅读
人类文明发展到使用语言和文字后,就产生了保密通信和身份认证问题,这是密码学的主要任务。古典密码学与其说是一门科学,不如说更像是一门艺术,它们反映出古人的高超智慧和绝妙想象力,并且蕴涵了现代密码学思想的萌芽。1949年,信息论的创始人香农(Shannon)发表了名为《保密系统的通信理论》的文章,为密码技术的研究奠定了理论基础,由此密码学成了一门科学。而在此之前的编码方法被称为古典密码学。
大约在公元前700年,古希腊军队用一种叫作Scytale的圆木棍来进行保密通信。其使用方法是:把长带子状羊皮纸缠绕在圆木棍上,然后在上面写字;解下羊皮纸后,上面只有杂乱无章的字符,只有再次以同样的方式缠绕到同样粗细的棍子上,才能看出所写的内容。
这种Scytale圆木棍也许是人类最早使用的文字加密解密工具,据说主要是古希腊城邦中的斯巴达人在使用它,所以又被叫作“天书”。
斯巴达棒的加密原理属于密码学中的“移位法”(Transition)加密,因为它通过改变文本中字母的阅读顺序来达到加密的目的。
公元100多年前,古罗马的执政官和军队统帅恺撒发明了一种把所有的字母按字母表顺序循环移位的文字加密方法。例如,当规定按字母表顺移3位的话,那么a就写成d,b写成e,c写成f,…,x写成a,y写成b,z写成c。
比如,Knowledge is power(知识就是力量),就写成:NQRZOHGJHLVSRZHU。
从密码学的角度来看,恺撒加密法属于“单字母表替换”加密,而且替换的规则很简單。然而,恺撒加密的思想对于西方古典密码学的发展有较大影响。事实上,直到第二次世界大战结束,西方所使用的加密方法大多属于“字母表替换”加密,只是替换的规则越来越复杂而已。
替换加密就是把普通信文中的文字符号替换成其他文字符号以达到加密的目的,其替换规则只有合法的通信者知道。西方国家大都使用拼音文字,只有二十几个字母和几个标点符号,文字符号较少,所以很适合用替换法加密。如上文提到的恺撒密码,就是一种替换加密。加密过程就是按照恺撒密码字母替换表替换,把每一个明文字母替换成密文行中相应的一个字母。
这种加密方法具有“明密异同性”,利用频率分析法可以破解。
于是,从15世纪中叶起,欧洲人开始研究设计“多字母表替换加密”方法,即明文中同一个字母在不同的位置上会有不同的替换符号。其中最有名的当属维吉尼亚密码(Vigenère Cipher)。它主要使用一张字母矩阵表,其中第一行是任意给定的字母表,第二行是第一行左循环移一位,最后一位的字母移至第一位,而形成的字母替换表。第三行又是第二行左循环移一位,以下各行以此类推。加密时,对于明文中的同一个字母,当其第一次出现时,使用表的第一行来替换,第二次出现时使用第二行替换,以此类推。如果该字母出现次数已超过矩阵的行数,则回到第一行继续下去。解密同加密一样,也是从上到下逐行进行。
维吉尼亚密码后来出现过多种改进和变形。其中一种变形就是,由密钥确定密文所在的行,明文确定明文所在列,在加密方阵中,行和列的交叉就是相应的明文。
例如:密钥k=best,明文m=data security,密文C=EELTTIUNSMLR。
维吉尼亚加密过程中,一个明文字母根据在明文中出现的顺序或者密钥的不同,会有多种变化,最多能有26种变化。而恺撒密码加密与明文字母的顺序没有关系,只有一种变换。所以恺撒密码是“单表密码体制”,而维吉尼亚密码是“多表密码体制”。显然,多表加密比单表加密复杂许多,因此其破解难度也加大许多。自从维吉尼亚加密术出现以后,多表加密成为欧洲人最常用的加密方法。
公元7世纪开始兴盛的阿拉伯民族是最早系统总结并使用密码分析方法的民族。
1987年,科学家发现了肯迪约在公元850年写的《解码手册》。
书中关于密码分析的描述如下:如果我们已经知道了一份密文所使用的语言,要破解它的一种方法是找一份用同样语言写的明文,大约有一页纸的长度。然后统计其中每个字母出现的次数,把出现频率最高的字母叫作“第一”,出现频率次高的字母叫作“第二”,以此类推,直到数完明文中所有的字母。然后再看要破解的那份密文,同样对其中的符号做频率排序。我们找到出现频率最高的那个符号并把它替换为上述的“第一”字母,找到出现频率次高的符号并把它替换为“第二”字母,找到再次高的符号并替换为“第三”字母,直到数完密文中的所有符号。这是历史上最早的研究用频率分析法破解密码的文献,比西方的同类文献早了大约300年。基于字母和单词的统计学特性的频率分析方法一直是破解密码最基本和最常用的方法。
例如,已知经恺撒密码加密过的密文:
HQGHDYRUWRVHHWKHJRRGLQHYHUBVLWXDWLRQ
统计得出“H”是出现次数最多的字母,频率为0.194。
根据英文中字母出现概率的统计数据,字母“e”出现概率最高,为0.127。
那么,密文字母H的明文就应该是e,H对应的数字为7,e对应的数字为4,于是根据恺撒密码加密规则:C=m k(mod26),其中:C为密文,m为明文,k为密钥。可以得出密钥k=3,将密文中的字母向右移3位,就可得到明文。解密后得出明文:Endeavor to see the good in every situation(努力在每个情况下看到好的一面)。
第二次世界大战中的密码战,是当时敌对双方最优秀的科学大脑和最先进的科技之间的生死较量,但究其所依据的加密原理,仍然是替换和移位,破解原理是基于字母和单词的频率分析,只是复杂的程度不同而已。当然,肯迪的方法只能破解较原始的单表替换加密方法,对于较复杂的多表替换加密方法是无能为力的。然而,对于多表古典密码体制,利用密文的重合指数方法和密文中字母统计规律相结合,同样可以破译。
本文结束之前,为了增加读者的兴趣,给大家出一个小小练习题。已知维吉尼亚密码加密过的密文LRGPMIVZFMKIPAWK,密钥为best,那么它的明文是什么?(答案在本期找)
(责任编辑/刘京 美术编辑/胡美岩)
中国古代密码
从古到今,军队历来是使用密码最频繁的地方,因为保护己方秘密并洞悉敌方秘密是克敌制胜的重要条件。中国古代有着丰富的军事实践和发达的军事理论,其中不乏巧妙、规范和系统的保密通信和身份认证方法。
1.兵书《六韬》中的“阴符”和“阴书”
“阴符”和“阴书”中的“阴”显然是指“机密”,“符”是指“符号”,也有编码的意思;而古文中的“书”是指“信件”或“文件”。所以,按照字面意义理解,“阴符”和“阴书”就是后来密码学中的“加密后的信息”或“密文”,其加密的方法,相当于现代密码学中变换的代替或移位。
2.虎符和信牌
虎符、信牌和符契,都具有验证身份的作用。其中“符”字本义是指古代朝廷下命令的凭证;部首的“竹”表明最早的“符”是用竹子做的。“符”通常做成两部分,使用时一分为二,验证时合二为一;只有同一符的两部分才能完美地合在一起;这就是常用词“符合”的来历。近代间谍史上,常有人把纸币钞票一撕为二,作为接头联络的工具,其原理同“符”。现代密码学中,运用公钥-私钥体系进行身份认证的方法也与“符”相通。
古希腊“天书”
大约在公元前700年,古希腊军队用一种叫作Scytale的圆木棍来进行保密通信。其使用方法是:把长带子状羊皮纸缠绕在圆木棍上,然后在上面写字;解下羊皮纸后,上面只有杂乱无章的字符,只有再次以同样的方式缠绕到同样粗细的棍子上,才能看出所写的内容。
这种Scytale圆木棍也许是人类最早使用的文字加密解密工具,据说主要是古希腊城邦中的斯巴达人在使用它,所以又被叫作“天书”。
斯巴达棒的加密原理属于密码学中的“移位法”(Transition)加密,因为它通过改变文本中字母的阅读顺序来达到加密的目的。
古罗马恺撒密码
公元100多年前,古罗马的执政官和军队统帅恺撒发明了一种把所有的字母按字母表顺序循环移位的文字加密方法。例如,当规定按字母表顺移3位的话,那么a就写成d,b写成e,c写成f,…,x写成a,y写成b,z写成c。
比如,Knowledge is power(知识就是力量),就写成:NQRZOHGJHLVSRZHU。
从密码学的角度来看,恺撒加密法属于“单字母表替换”加密,而且替换的规则很简單。然而,恺撒加密的思想对于西方古典密码学的发展有较大影响。事实上,直到第二次世界大战结束,西方所使用的加密方法大多属于“字母表替换”加密,只是替换的规则越来越复杂而已。
欧洲加密术
替换加密就是把普通信文中的文字符号替换成其他文字符号以达到加密的目的,其替换规则只有合法的通信者知道。西方国家大都使用拼音文字,只有二十几个字母和几个标点符号,文字符号较少,所以很适合用替换法加密。如上文提到的恺撒密码,就是一种替换加密。加密过程就是按照恺撒密码字母替换表替换,把每一个明文字母替换成密文行中相应的一个字母。
这种加密方法具有“明密异同性”,利用频率分析法可以破解。
于是,从15世纪中叶起,欧洲人开始研究设计“多字母表替换加密”方法,即明文中同一个字母在不同的位置上会有不同的替换符号。其中最有名的当属维吉尼亚密码(Vigenère Cipher)。它主要使用一张字母矩阵表,其中第一行是任意给定的字母表,第二行是第一行左循环移一位,最后一位的字母移至第一位,而形成的字母替换表。第三行又是第二行左循环移一位,以下各行以此类推。加密时,对于明文中的同一个字母,当其第一次出现时,使用表的第一行来替换,第二次出现时使用第二行替换,以此类推。如果该字母出现次数已超过矩阵的行数,则回到第一行继续下去。解密同加密一样,也是从上到下逐行进行。
维吉尼亚密码后来出现过多种改进和变形。其中一种变形就是,由密钥确定密文所在的行,明文确定明文所在列,在加密方阵中,行和列的交叉就是相应的明文。
例如:密钥k=best,明文m=data security,密文C=EELTTIUNSMLR。
维吉尼亚加密过程中,一个明文字母根据在明文中出现的顺序或者密钥的不同,会有多种变化,最多能有26种变化。而恺撒密码加密与明文字母的顺序没有关系,只有一种变换。所以恺撒密码是“单表密码体制”,而维吉尼亚密码是“多表密码体制”。显然,多表加密比单表加密复杂许多,因此其破解难度也加大许多。自从维吉尼亚加密术出现以后,多表加密成为欧洲人最常用的加密方法。
破译古典密码
公元7世纪开始兴盛的阿拉伯民族是最早系统总结并使用密码分析方法的民族。
1987年,科学家发现了肯迪约在公元850年写的《解码手册》。
书中关于密码分析的描述如下:如果我们已经知道了一份密文所使用的语言,要破解它的一种方法是找一份用同样语言写的明文,大约有一页纸的长度。然后统计其中每个字母出现的次数,把出现频率最高的字母叫作“第一”,出现频率次高的字母叫作“第二”,以此类推,直到数完明文中所有的字母。然后再看要破解的那份密文,同样对其中的符号做频率排序。我们找到出现频率最高的那个符号并把它替换为上述的“第一”字母,找到出现频率次高的符号并把它替换为“第二”字母,找到再次高的符号并替换为“第三”字母,直到数完密文中的所有符号。这是历史上最早的研究用频率分析法破解密码的文献,比西方的同类文献早了大约300年。基于字母和单词的统计学特性的频率分析方法一直是破解密码最基本和最常用的方法。
例如,已知经恺撒密码加密过的密文:
HQGHDYRUWRVHHWKHJRRGLQHYHUBVLWXDWLRQ
统计得出“H”是出现次数最多的字母,频率为0.194。
根据英文中字母出现概率的统计数据,字母“e”出现概率最高,为0.127。
那么,密文字母H的明文就应该是e,H对应的数字为7,e对应的数字为4,于是根据恺撒密码加密规则:C=m k(mod26),其中:C为密文,m为明文,k为密钥。可以得出密钥k=3,将密文中的字母向右移3位,就可得到明文。解密后得出明文:Endeavor to see the good in every situation(努力在每个情况下看到好的一面)。
第二次世界大战中的密码战,是当时敌对双方最优秀的科学大脑和最先进的科技之间的生死较量,但究其所依据的加密原理,仍然是替换和移位,破解原理是基于字母和单词的频率分析,只是复杂的程度不同而已。当然,肯迪的方法只能破解较原始的单表替换加密方法,对于较复杂的多表替换加密方法是无能为力的。然而,对于多表古典密码体制,利用密文的重合指数方法和密文中字母统计规律相结合,同样可以破译。
练习题
本文结束之前,为了增加读者的兴趣,给大家出一个小小练习题。已知维吉尼亚密码加密过的密文LRGPMIVZFMKIPAWK,密钥为best,那么它的明文是什么?(答案在本期找)
(责任编辑/刘京 美术编辑/胡美岩)
知识链接:
中国古代密码
从古到今,军队历来是使用密码最频繁的地方,因为保护己方秘密并洞悉敌方秘密是克敌制胜的重要条件。中国古代有着丰富的军事实践和发达的军事理论,其中不乏巧妙、规范和系统的保密通信和身份认证方法。
1.兵书《六韬》中的“阴符”和“阴书”
“阴符”和“阴书”中的“阴”显然是指“机密”,“符”是指“符号”,也有编码的意思;而古文中的“书”是指“信件”或“文件”。所以,按照字面意义理解,“阴符”和“阴书”就是后来密码学中的“加密后的信息”或“密文”,其加密的方法,相当于现代密码学中变换的代替或移位。
2.虎符和信牌
虎符、信牌和符契,都具有验证身份的作用。其中“符”字本义是指古代朝廷下命令的凭证;部首的“竹”表明最早的“符”是用竹子做的。“符”通常做成两部分,使用时一分为二,验证时合二为一;只有同一符的两部分才能完美地合在一起;这就是常用词“符合”的来历。近代间谍史上,常有人把纸币钞票一撕为二,作为接头联络的工具,其原理同“符”。现代密码学中,运用公钥-私钥体系进行身份认证的方法也与“符”相通。