欢迎来到天天文库
浏览记录
ID:37239627
大小:88.58 KB
页数:7页
时间:2019-05-20
《Hill密码的加密》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Hill密码的加密、解密和破译实验报告吴林柱5100309888实验任务2、利用所介绍的Hill密码体制原理,根据所给定的26个英文字母的乱序表值(见表),设计与Hill4密码体制的加密、解密与破译框图并建立必要的计算机程序。设英文26个字母以下的乱序表与Z26中的整数对应:ABCDEFGHIJKLM523220101584182501613NOPQRSTUVWXYZ731196122421171422119(1)设,验证矩阵A能否作为Hill4,用框图画出你的验算过程,并编写相应的计算机程序。(2)设明文为HILLCRYPTOGRAPHICSYSTEMIS
2、TRADITIONAL。利用上面的表值与加密矩阵给此明文加密,并将得到的密文解密。画出加密与解密过程的框图并编写相应的计算机程序。(3)已知在上述给定值下的一段密文为JCOWZLVBDVLEQMXC,对应的明文为DELAYOPERATIONSU。能否确定对应的加密矩阵?给出你的判断过程。4、如下的密文据表10.1以Hill加密,密文为VIKYNOTCLKYRJQETIRECVUZLNOJTUYDIMHRFITQ。已获知其中相邻字母LK表示字母KE,试破译这份密文。5、找出元素属于Z26的所有可能的Hill密码加密矩阵。若截获了如下一段密文UTCQCVFOYQ
3、UVMGMGULFOLEYHDUDOPEASWXTIFBAMWT且知他是根据表10.1按Hill密码体制加密的,能否破译?实验解答2、(1)由定义可知,元素属于Zm的方阵A模m可逆的充要条件是,m和detA没有公共素因子。因此,框图如下:若detA与26没有公共素因子,则A可用。求detA与26的公共素因子求矩阵A的行列式detAMatlab程序:functiony=isInverse(M)D=det(M);ifgvd(D,26)~=1y=false;elsey=true;end;经验证,detA=-1,因此,A可作为Hill4密码体制的加密矩阵。(2)加密
4、框图:输出密文将密文字符串拼接起来将结果按表转换为密文将明文按四个一组与A相乘输入明文,并用哑字母补长解密框图:将明文字符串拼接起来将结果按表转换为字母密文四个一组与A-1相乘输入密文,并转换为矩阵加密程序:functionm=encryption(str)table=[523220101584182501613731196122421171422119];len=length(str);A=[8695;69510;5849;106114];tmp=blanks((floor(len/4)+1)*4-mod(len,4));ifmod(len,4)~=0fo
5、ri=1:length(tmp)tmp(i)=str(len);end;end;str=strcat(str,tmp);len=length(str);m=blanks(len);fori=1:4:lencol=eye(4,1);forj=1:4col(j)=table(str(i+j-1)-'A'+1);end;colcol=mod(A*col,26);colforj=1:4forz=1:26ifcol(j)==table(z)breakend;end;m(i+j-1)='A'+z-1;end;end;>>str=encryption('HILLCRYPT
6、OGRAPHICSYSTEMISTRADITIONAL');密文为'KEGTKPNJKYXRLAOLMZTPVYIUNHZSCEGDZRPZ'解密程序:functionstr=decryption(str0,A)table=[523220101584182501613731196122421171422119];len=length(str0);str=blanks(len);fori=1:4:lencol=eye(4,1);forj=1:4col(j)=table(str0(i+j-1)-'A'+1);end;col=A*col;forj=1:4forz=
7、1:26ifcol(j)==table(z)breakend;end;str(i+j-1)='A'+z-1;end;end;A的模26逆矩阵为:,(3)由定理可知,若密文模26可逆,则可以确定对应的加密矩阵。因此,可以根据表值求出密文对应的矩阵:det(P)=77881,易知77881与26互素,因此,可以求得加密矩阵。程序:functiony=translate(str)table=[523220101584182501613731196122421171422119];len=length(str);y=eye(len,1);fori=1:4:leny(
8、i)=table(str(i)-'A'+1);end
此文档下载收益归作者所有