您好,欢迎访问三七文档
实验2古典密码1实验2古典密码1.实验目的(1)了解古典密码中的基本加密运算。(2)了解几种典型的古典密码体制。(3)掌握古典密码的统计分析方法。2.实验内容(1)古典密码体制①简单移位加密(单表代换)该加密方法中,加密时将明文中的每个字母向前推移K位。经典恺撒密码加密变换就是这种变换,取k=3。步骤1:打开CAP4软件,并加载实验一附带的“mw.txt”,如图2-1所示。图2-1加载文件实验2古典密码2步骤2:采用恺撒加密方法手工加密“mw.txt”;打开CAP4菜单栏“Cipher”菜单项选择“simpleshift”选项,并选择移位值“shiftvalue”为3,加密步骤1中加载的文件,如图2-2所示。图2-2参数设置图2-3加密文件实验2古典密码3步骤3:比较二者的加密结果是否相同。步骤4:点击CAP4软件中的“Simpleanalysis”下的“shift”键,观察恺撒加密法的可能密钥值,并分析其攻击的难度,如图2-4所示。图2-4密钥分析②仿射密码加密(单表代换)在仿射密码加密(affinecipher)中,字母表中的字母被赋予一个数字,例如,a=0,b=1,c=2,…,z=25.仿射密码加密法的密钥为0~25之间的数字对(a,b)。a与26的最大公约数必须为1,这就是说能整除a和26的数只有1.现在假设m为明文字母的数字,而c为密文字母的数字,那么,这两个数字之间有如下关系:c=(am+b)(mod26)m=a-1(c-b)(mod26)其中,(mod26)的操作是:除以26,得其余数。例如,选取密钥为(7,3)。因为7与26互素,也就是只有公约数1,所以(7,3)可以作为仿射密码的加密钥。将“hot”转换成数字7、14、19,利用仿射等式生成:c(H)=(7×7+3)mod26=52mod26=0,即为字母“a“。c(O)=(7×14+3)mod26=101mod26=23,即为字母“x“.c(T)=(7×19+3)mod26=136mod26=6,即为字母”g”.这样,对于这个密钥,”hot”变成了“axg“.实验2古典密码4CAP4软件中实现仿射密码加密:步骤1:在CAP4软件中加载要加密地的明文“mw.txt“.步骤2:选取Cipher菜单下的AffineCipher菜单项,弹出如下对话框,如图2-5所示。图2-5设置加密密钥步骤3:选择图中”AffineCipher”中的“Encipher“选项进行加密,如图2-6所示。图2-6采用AffineCipher加密实验2古典密码5③维吉尼亚密码加密(多表代换)Vigenere加密法是一个很著名的多表代换加密法。该加密法是基于关键词的多表代换加密系统,但不像单表代换中的关键词加密那样,使用关键词来定义替换模式,它是先将明文按照关键字的长度分组,然后将分组中的每个字符与关键字中相应位置上的字符进行模26加密运算,这样每个明文字母都与一个关键词的字母关联。例如:如果关键词为”hold”,而明文为”thisistheplaintext”,那么,关键词—明文的关联如下所示:注意:以上的密文结果,也可以直接查找Vigenere表获取密文.例如:上面示例中的第一对是“ht“.在Vigenere表中查找”t”列和”h”行,找到结果密文字母”a”,重复这个过程。明文密钥实验2古典密码6CAP4软件中实现维吉尼亚加密:步骤1:在CAP4软件中加载要加密地的明文“mw.txt“.步骤2:选取Cipher菜单下的Vigenere菜单项,弹出如下对话框,如图2-7所示。图2-7设置加密密钥词步骤3:选择”Encipher”菜单项加密。(2)古典密码体制的统计分析因为古典密码学中的大部分加密都是基于英文字母的,所以其相应的明文和密文都会遵循相应的语言统计规律。根据明密文中的统计特性来破译密文,是古典密码学破译的基本方法。最容易观察的字母特性是其出现频率,所以古典密码的统计分析很多也是以字母出现频率做为主要线索的。然而,大多数频率分析是基于标准英语字母的常见频率表的,其中各个英文字母的出现频率如下:从高到低的顺序:ETAONIRSHDLUCMPFYWGBVJKQXZ通常由于所加密明文的性质不同,那么字母出现频率也会有所差异,所以,一般采用字母频率来破译时不能完全依照上述顺序进行相关对照来得出单表代换模式,而是考虑将频率分组。标准英文字母出现四个频率组:实验2古典密码7高ETAONIRSH中DLUCM低PFYWGBV缺少JKQXZ字母在分组中的位置可能有些变化,但很少出现在其他分组中。将密文中的字母出现频率进行统计后,可以将它们按照出现频率的高低,先进行简单分组,然后对照以上频率组,逐个分析,以便确定其单表代换模式。仅仅依靠以上规律通常还是很不充分的,很多时候还会用到双联字母或三联字母的出现频率来辅助破译。例如,TH,HE,IN,RE,DE,ST,EN,AT,OR,IS,ET,IT,AR,TE,HI,OF,THE,ING,ERE,FOR等都比较常出现。采用CAP4软件来实现古典密码的统计分析。①仿射密码的统计分析前提是,我们已经知道该段密文是采用仿射加密法加密的。步骤1:打开CAP4软件,加载已经获取的密文“fsbhmi.txt”,并按下”BasicTools”工具条中的“Freq”按钮,统计密文中每个字母出现的几率,如图2-8所示。图2-8统计密文字母频率通过统计可知,密文中出现频率最高的字母依次是X、H、N、T、C、K、J,故可假设密文字符X对应的是明文字符E,密文字符H对应的铭文字符为T。实验2古典密码8步骤2:打开CAP4中的“Simpleanalysis”工具条中的“Affine”按钮,输入上述字母对,如图2-9所示。图2-9验证猜测a注意:这里的k0,k1,表示仿射加密函数为y=k1x+k0mod26,所以其中k1的取值只能属于下列整数集合{1,3,5,7,9,11,15,17,19,21,23,25}。很明显,以上猜测有误,故可以进一步假设密文字母X对应的明文字符为E,密文字符N对应的明文字符为T,经测试可以知道,该猜测也不成立。接着测试可以发现密文字符X对应明文E,密文字符T对应T的假设也不成立。试假设密文C对应明文T。步骤3:进一步验证上述猜测,其结果如下所示,如图2-10所示。图2-10验证猜测b实验2古典密码9通过测试发现,此次假设成立,即该段密文采用的仿射变换函数可能为y=9x+13mod26.步骤4:采用上述假设结果,在CAP4软件的菜单项“Cipher”下选择“Affine”,解密密文,如图2-11所示。图2-11破译密文采用以上猜测结果破译密文所获取的明文,具有意义,所以可以认定该次加密操作采用的加密变换函数为:y=9x+13mod26.3.知识点(1)模运算(带余除法)若a,b为两个整数,b≠0,则唯一存在两个整数q和r,使得下式成立:a=bq+r,0≤r|b|.①模的定义如果a是一个整数,n是一个正整数,定义amodn为a除以n的余数a=n·a/n+(amodn).例1:113mod24=17实验2古典密码10②模算术运算由定义可知,运算(modn)将所有的整数映射到集合{0,1,…,n-1},那么在这个集合上进行的算术运算称为模算术。模算术有如下的性质:[(amodn)+(bmodn)]modn=(a+b)modn;[(amodn)–(bmodn)]modn=(a-b)modn;[(amodn)×(bmodn)]modn=(a×b)modn.因此,普通算术的加、减、乘、除运算规则可以平移到模算术中。③Zn上模运算的性质:定义比n小的非负整数集合为Zn,Zn={0,1,…,n-1},这个集合称为剩余类集,或模n的剩余类。更确切的说,Zn中的每个整数代表一个剩余类,我们可以将模n的剩余类表示为[0],[1],[2]…,[n-1]。例2:模4剩余类为:[0]={…,-16,-12,-8,-4,0,4,8,12,16…}[1]={…,-15,-11,-7,-3,1,5,9,13,17…}[2]={…,-14,-10,-6,-2,2,6,10,14,18…}[3]={…,-13,-9,-5,-1,3,7,11,15,19,…}在剩余类的所有整数中,我们通常用最小非负整数来代表这个剩余类。寻找与k模同余(指的是两个数对同一个数求模结果相同,例如:整数a和b对整数n求模结果相同,我们就说a和b模n同余,记为a≡b(modn))的最小非负整数的过程,称为模n的k约化。如果我们在Zn中进行模运算,该运算具有如下性质:交换律:(w+x)modn=(x+w)modn(w×x)modn=(x×w)modn结合律:[(w+x)+y]modn=[w+(x+y)]modn[(w×x)×y]modn=[w×(x×y)]modn分配率:[w×(x+y)]modn=[(w×x)+(w×y)]modn单位元:(0+w)modn=wmodn(1×w)modn=wmodn加法逆元(-w):对于Zn中的任意w,存在一个z,使得w+z=0modn.注意:一般来说,在Zn中,一个整数与n互素,那么在Zn中有它的一个乘法实验2古典密码11逆元,使得该整数与其逆元相乘模n为1.这里的互素指的是两个数的最大公约数为1.例3:在Z8中,整数1,3,5,7有一个乘法逆元,而2,4和6没有。特别提醒:我们密码学中用到的运算均为模运算,对于古典密码体制来说,用到的运算均为Z26上的模运算。(2)乘法逆元在仿射加密法中,我们是通过仿射函数变换来实现加密的,其加密变换函数一般表示为:ek(x)=ax+bmod26,那么该函数的逆函数(也就是相应的解密函数)为:dk(y)=1/a(y-b)mod26正如上面所述在密码学中,我们提及的运算一般是模运算,这里指的是Z26上的运算。在模运算中,将1/a表示为:a-1,称作a的乘法逆元,由乘法逆元性质可知:aa-1=1mod26.由于在Z26中并不是所有的整数都有乘法逆元,事实上,只有{1,3,5,7,9,11,15,17,19,21,23,25}才有乘法逆元,也就是说只有当加密变换函数中的a取上面这些值时,其才是可逆的,才能实现解密。另外,某个整数集上相关元素的乘法逆元的求解一般采用欧几里德扩展算法来实现(放在后续课程中讲解),这里直接给出Z26上相关整数的乘法逆元,以便参考:1-1mod26=1,3-1mod26=9,5-1mod26=21,7-1mod26=15,11-1mod26=19,17-1mod26=23,25-1mod26=254.常见问题解答(1)密码学研究的主要问题是什么?解答:密码学的基本目的是在通信双方之间应用不安全的信道进行通信时,设法保证通信安全。密码学研究对通信双方要传输的信息进行何种保密变换以防止未被授权的第三方窃取信息。此外,密码技术还可以用来进行信息鉴别、数据完整性校验、数字签名等。密码学包括密码编码学和密码分析学两大方向。(2)研究古典密码体制的意义何在?实验2古典密码12解答:古典密码学是密码学的渊源,虽然古典密码学比较简单而且容易破译,但研究古典密码学的设计原理和分析方法对于理解、设计及分析现代密码学技术是十分有益的。5.思考题(1)实验过程中,大家接触到的古典加密体制有哪几种?各有什么特点?(2)移位加密法有多少种密钥?试分析该加密法的安全性?(3)仿射加密方法比其他单表加密方法(比如:移位密码)更安全吗?为什吗?(4)设明文为“visitshanghaitomorrow”,密钥为“enjoy”,试用Vigenere算法对其加密。(5)在Alice和Bob的保密通信中,传送的密文是“rjjyrjtsymjxfggfymbjbnqqinxhzxxymjuqfs”,如果他们使用的是移位密码算法,试解密其通信内容。(6)已知下面一段密文是通过仿射加密法加密的,试用统计分析的方法来破译:oliawgphycgixzgntorgktaawphylxiiawgnylylyxtggiylrimkytcylgiolvtalxav
本文标题:实验二-古典密码
链接地址:https://www.777doc.com/doc-1766090 .html