Hill密码的加密论文内含matlab程序代码_第1页
Hill密码的加密论文内含matlab程序代码_第2页
Hill密码的加密论文内含matlab程序代码_第3页
Hill密码的加密论文内含matlab程序代码_第4页
Hill密码的加密论文内含matlab程序代码_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Hill密码的加密,解密与破译摘要对于问题1.1:本文采用密码通信,对明文进行加密。利用已知的密钥矩阵,首先,将密文转化为对应表值数字。其次,对密文的数字转化为矩阵。最后,对明文解密。对于问题1.2:本文给出一组明文和密文 ,二者满足构成密钥的条件,通过求解的到密钥,并进行问题1.1的解题过程破译这段密文。对于问题2.1:本文给出密码矩阵A,并求出该矩阵的值是否与26互素,加以判断。若互素则能成为密钥,否则不能构成密钥。对于问题2.2:利用问题2.1所给的密码矩阵A,按照问题1.1的解题思路,将得到的密文解密。对于问题2.3:本文给出一段密码的密文和其对应的明文,通过检验二者是否满足构成密钥的

2、条件,若满足解的密钥,并写出求解过程;若不满足加以说明。对于问题3:本文给出明文频数最高的字母TH和HE,及密文频数最高的字母RH和NI。两两组合得到两组“密钥”,并检验它们是否满足构成密钥的条件,若满足则解除密钥。对于问题4:本文给出频数最高的相邻明文字母KE和相邻密文字母LK,采用密码通信,利用所给字母与其他字母组合,构造22的矩阵,并检验是否满足构成密钥的条件,加以排除得到所要的密钥。若有满足条件的矩阵,破译所给密文。对于问题5:本文采用密码通信,根据26个字母搭配出22的所有矩阵,利用矩阵的值与26互质,加以排除不符合条件的矩阵,并求出满足条件的密钥,破译该段密文,再利用密文是否通顺加

3、以排除,得到所要的明文和密钥。关键字 密钥 mod(26)逆 mod(26)倒数 一、Hill2密码的数学模型的主要符号说明w Hill密钥的维数A 密钥矩阵S 明文Y 密文m 所用的表值编号YW 哑文二、Hill2密码的数学模型Hill2密码是一种传统的密码体制加密过程的具体步骤如下: (1)、根据明文字母的表值将明文信息用数字表示,设明文信息只需要26个拼音字母AZ(也可能不止26个,如还有数字、标点符号等),通信双方给出这26个字母表值(见表10.1明文字母的表值)。 (2)、选择一个二阶可逆整数方阵A,称为Hill2密码的加密矩阵,它是这个加密体制的“密钥”(是加密的关键,仅通讯双方掌

4、握)。问题(1)已给出了这个二阶矩阵。(3)、将明文字母依次逐对分组。Hill2密码的加密矩阵为二阶矩阵,则明文字母2个一组(可以推广至Hilln密码,则每n个明文字母为一组)。若最后一组只有一个字母,则补充一个没有实际意义的哑字母,这样使每一组都由2个明文字母组成。查出每个明文字母的表值,构成一个二维列向量。 (4)、A乘以,得一新的2维列向量=A,由的两个分量反查字母表值得到的两个字母即为密文字母。 以上4步即为Hill2密码的加密过程。解密过程,即为上述过程的逆过程。1、实际问题:1.1、问题陈述甲方收到与之有秘密通信往来的乙方的一个密文信息,密文内容:W O W U Y S B A C

5、 P G Z S A V C O V K P E W C P A D K P P A B U J C Q L Y X Q E Z A A C P P 按照甲方与乙方的约定,他们之间的密文通信采用密码,密钥为二阶矩阵,且汉语拼音的26个字母与0-25之间的整数建立一一对应的关系,称之为字母的表值,具体的表值见表1,问这段密文的原文是什么?1.2、问题分析:首先给出如下定义:定义 1:设为定义在集合上的 阶方阵,若存在一个定义在上的方阵,使得则称模可逆,为的 模逆矩阵,记为定义 2:设,若存在使得 ,则称为的 模倒数 或乘法逆,记作 。由于所有加密与解密过程都是在模26意义下进行的,所以要对一段明

6、文进行加密,必须使得密钥矩阵满足与26是互素的。根据程序画出流程如图如下:输入“A”密钥“密文”,“m”(所选表值)“w”(维数)判断密文长度是否能被w整除将密文转化为表值所对应的数据用哑文补充使其被w整除YesNo判断A是否在mod26下可逆加密输出结束YesNo1.3程序运行结果:Y =WOWUYSBACPGZSAVCOVKPEWCPADKPPABUJCQLYXQEZAACPP; m=1; A=1 2;0 3; YW=XYZ; S=jie_mi2(Y,A,YW,m)S =MEIGUOJIANGZAITAIPINGYANGJINXINGHAIDIHESHIYANN Y=jia_mi2(S,A

7、,YW,m) Y=WOWUYSBACPGZSAVCOVKPEWCPADKPPABUJCQLYXQEZAACPP2.1、问题陈述 甲方截获了一段密文:O J W P I S W A Z U X A U U I S E A B A U C R S I P L B H A A M M L P J J O T E N H 经分析这段密文是用密码编译的,且这段密码的字母UCRS一次代表字母TACO,问能否破译这段密文的内容?2.2、问题分析根据题意明文与密文存在一一对应关系:设,且存在:经过查表得到:所以,用穷举法得到满足上述等式的密钥矩阵,再进一步判断是否与26互素,若互素则可以求出在26意义下的模倒

8、数。模倒数表如下:表1a13579111517192123251921153197231151725显然,由上式所确定的密钥矩阵是惟一的,通过求解出模26意义下的密钥逆矩阵进行解密。2.3、程序运算结果 a=TACO; b=UCRS; m=1; A=qiujie_miyao(a,b,m)A = 1 1 0 3 Y=OJWPISWAZUXAUUISEABAUCRSIPLBHAAMMLPJJOTENH; YW2=XYZ; S=jie_mi2(Y,A,YW,m)S =CLINTONISGOINGTOVISITACOUNTRYINMIDDLEEASTT二、实验任务问题11.1、问题陈述在问题(2)中,

9、若已知密文的前4个字母OJWP分别代表TACO,问能否将此密文破译?不能,因为解得的密钥的行列式与26不互素,不能得到对应的模26逆矩阵。求解密钥矩阵流程图如下输入“ming_wen”,”mi_wen”,”w”,“w”,m为对应的表值,w为对维数判断密钥矩阵行列式是否为1Yes输出结束NoooooooO20561oooo1.2、运行结果 a=TACO; b=OJWP; m=1; A=qiujie_miyao(a,b,m)A = 16 724 24 D=det(A)D = 216 n=gcd(D,26)n =2问题二利用密码体制的原理,根据给定的26个英文字母的乱序表值(见表2),设计与建立密码

10、体制的加密,解密与破译框图并建立必要的计算机程序,设英文26个字母以下面的乱序表与中的整数对应:表2ABCDEFGHIJKLM523220101584182501613NOPQRSTUVWXYZ7311961224211714221192.1.1、问题陈述设,验证矩阵A能否作为密码体制的加密矩阵,用框图画出你的验算过程,并编写相应的计算机程序。2.1.2、问题分析A可用作密钥,因为其行列式值为-1,与26互素。2.1.3、运行结果编程计算得A的模26逆矩阵如下: A =invmod(A)A = 23 20 5 1 2 11 18 1 2 20 6 2525 2 22 25det(A)|A| =

11、-1.00002.2.1、问题陈述设明文为HILLCRYPTOGRAPHICSYSTEMISTRADITIONAL.利用上面的表值与加密矩阵给明文加密,并将得到的密文解密。画出加密与解密过程的框图并编写相应的计算机程序。框图如下:2.2.2、运行结果 A=8 6 9 5;6 9 5 10;5 8 4 9;10 6 11 4; YW=Z; m=2; w=4; S=HILLCRYPTOGRAPHICSYSTEMISTRADITIONAL; Y=jia_mi2(S,A,YW,m,w)Y =KEGTKPNJKYXRLAOLMZTPVYTUNHZSCEGDZRPZ S=jie_mi2(Y,A,YW,m,

12、w)S =HILLCRYPTOGRAPHICSYSTEMISTRADITIONAL2.3.1、问题陈述已知在上述给定表值下的一段密码的密文为:JCOWZLVBDVLEQMXC,对应的明文为DELAYOPERATIONSU,能否确定对应的加密矩阵?给出你的判断过程。能。232、运行结果 a=DELAYOPERATIONSU; b=JCOWZLVBDVLEQMXC; m=2; w=4; A=qiujie_miyao(a,b,m,w)A = 8 6 9 5 6 9 5 10 5 8 4 910 6 11 4问题33.1、问题重述设已知一份为密码体系,其中出现频数最高的双字母是RH和NI,而在明文语言

13、中,出现频数最高的双字母为TH和HE。由这些信息按表3给出的表值能得到什么样的加密矩阵?表3ABCDEFGHIJJKLM0123456789101112NOPQRSTUVWXYZ131415161718192021222324253.2、问题分析不能,因为两组组合解得的两个矩阵的行列式值都不与26互素,不能得到对应的模26逆矩阵。3.3、运行结果 a=THHE; b=RHNI; m=3; w=2; A=qiujie_miyao(a,b,m,w)A = 3 24 24 25 D=gcd(det(A),26)D = 1 b=NIRH; A=qiujie_miyao(a,b,m,w) b=NIRH;

14、A=qiujie_miyao(a,b,m,w)A = 11 24 9 25 D=gcd(det(A),26)D = 1问题44.1、问题重述如下的密文据表1以Hill2加密,密文为VIKYNOTCLKYRJQETIRECVUZLNOJTUYDIMHRCFITQ已获知其中相邻字母LK表示字母KE,试破译这份密文。4.2、问题分析通过密文LK对应的明文KE得出:,且存在,其中为密钥。所以,求得的必满足:4.3、运行结果a=KE; b=LK; Y=VIKYNOTCLKYRJQETIRECVUZLNOJTUYDIMHRCFITQ; m=1; SJ=po_yi04(Y,a,b,m)问题55.1、问题重述

15、找出元素属于的所有可能的密码加密矩阵。若截获了如下一段密文UTCQCVFOYQUVMGMGULFOEYHDUHOPEASWXTIFBAMWT且已知它是根据表1按密码体制加密的,你能否将其解密?5.2、问题分析能,将密文通过所有可能密钥进行解密,对结果进行筛选,进行人工分析即可得出结果。程序:%加密程序%function mi_wen=ja_mi(A,ming_wen,m,w)%A为解密矩阵,m为选取参考表值类型,w维数n=length(ming_wen);switch m%将密文转换相应的数字 case 1 ming_wen=zimu_to_shuzi1(ming_wen); case 2 m

16、ing_wen=zimu_to_shuzi2(ming_wen); case 3 ming_wen=zimu_to_shuzi3 (ming_wen); endZ=;if mod(n,w)=0 S=ming_wen;else for i=1:w-mod(n,w)%判断密文长度是否能被w整除 Z(i)=ming_wen(n); S=ming_wen,Z; endendming_wen=S;n=length(ming_wen);H=zeros(w,n/w);for i=1:n/w H(:,i)=ming_wen(i*w-w+1:i*w);endmi_wen=mod(A*H,26);C=;for i

17、=1:n/w C=C,mi_wen(:,i);endmi_wen=C;switch m%将密文转换相应的数字 case 1 mi_wen=shuzi_to_zimu1(mi_wen); case 2 mi_wen=shuzi_to_zimu2(mi_wen); case 3 mi_wen=shuzi_to_zimu3(mi_wen); endmi_wen=char(mi_wen);end%解密程序%function ming_wen=jie_mi(A,mi_wen,m,w)%解密%A为解密矩阵,m为选取参考表值类型,w维数n=length(mi_wen);switch m case 1 mi_

18、wen=zimu_to_shuzi1(mi_wen);%将密文转换相应的数字 case 2 mi_wen=zimu_to_shuzi2(mi_wen);%将密文转换相应的数字 case 3 mi_wen=zimu_to_shuzi3(mi_wen);%将密文转换相应的数字 endZ=;if mod(n,w)=0 S=mi_wen;else for i=1:w-mod(n,w)%判断密文长度是否能被w整除 Z(i)=mi_wen(n); S=mi_wen,Z; endendmi_wen=S;n=length(mi_wen);H=zeros(w,n/w);for i=1:n/w H(:,i)=mi

19、_wen(i*w-w+1:i*w);endB=invmod(A);B=mod(B,26);ming_wen=mod(B*H,26);C=;for i=1:n/w C=C,ming_wen(:,i);endming_wen=C;switch m case 1 ming_wen=shuzi_to_zimu1(ming_wen);%将密文转换相应的数字 case 2 ming_wen=shuzi_to_zimu2(ming_wen);%将密文转换相应的数字 case 3 ming_wen=shuzi_to_zimu3(ming_wen);%将密文转换相应的数字 endming_wen=char(mi

20、ng_wen);end%密钥求解%function A=miyao_qiujie(a,b,m,w)%求解密钥矩阵%a为明文,b为密文,m为所选表值,w为密钥矩阵维数switch m case 1 a=zimu_to_shuzi1(a); b=zimu_to_shuzi1(b); case 2 a=zimu_to_shuzi2(a); b=zimu_to_shuzi2(b); case 3 a=zimu_to_shuzi3(a); b=zimu_to_shuzi3(b);endswitch w case 2%二维密钥 ac=; bd=; for i=0:25 for j=0:25 ifmod(i

21、*a(1)+j*a(2),26)=b(1)&mod(i*a(3)+j*a(4),26)=b(3) ac=i,j; end if mod(i*a(1)+j*a(2),26)=b(2)&mod(i*a(3)+j*a(4),26)=b(4) bd=i,j; end end end A=ac;bd; case 3%三维密钥 abc=; def=; ghi=; for i=0:25 for j=0:25 for k=0:25 if mod(i*a(1)+j*a(2)+k*a(3),26)=b(1)&mod(i*a(4)+j*a(5)+k*a(6),26)=b(2)&mod(i*a(7)+j*a(8)+k

22、*a(9),26)=b(3) abc=i,j,k; end if mod(i*a(1)+j*a(2)+k*a(3),26)=b(4)&mod(i*a(4)+j*a(5)+k*a(6),26)=b(5)&mod(i*a(7)+j*a(8)+k*a(9),26)=b(6) def=i,j,k; end if mod(i*a(1)+j*a(2)+k*a(3),26)=b(7)&mod(i*a(4)+j*a(5)+k*a(6),26)=b(8)&mod(i*a(7)+j*a(8)+k*a(9),26)=b(9) ghi=i,j,k; end end end end A=abc;def;ghi; cas

23、e 4%四维密钥 abcd=; efgh=; ijkl=; mnop=; for i=0:25 for j=0:25 for k=0:25 for l=0:25 if mod(i*a(1)+j*a(2)+k*a(3)+l*a(4),26)=b(1)&mod(i*a(5)+j*a(6)+k*a(7)+l*a(8),26)=b(2)&mod(i*a(9)+j*a(10)+k*a(11)+l*a(12),26)=b(3)&mod(i*a(13)+j*a(14)+k*a(15)+l*a(16),26)=b(4) abcd=i,j,k,l; end if mod(i*a(1)+j*a(2)+k*a(3)+l*a(4),26)=b(5)&mod(i*a(5)+j*a(6)+k*a(7)+l*a(8),26)=b(6)&mod(i*a(9)+j*a(10)+k*a(11)+l*a(12),26)=b(7)&mod(i*a(13)+j*a(14)+k*a(15)+l*a(16),26)=b(8) efgh=i,j,k,l; end if mod(i*a(1)+j*a(2)+k*a(3)+l*a(4),26)=b(9)&mod(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论