网站大量收购独家精品文档,联系QQ:2885784924

Hill密码的加密.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hill密码的加密

Hill密码的加密、解密和破译 实验报告 吴林柱 5100309888 实验任务 利用所介绍的Hill密码体制原理,根据所给定的26个英文字母的乱序表值(见表),设计与Hill4密码体制的加密、解密与破译框图并建立必要的计算机程序。设英文26个字母以下的乱序表与Z26中的整数对应: A B C D E F G H I J K L M 5 23 2 20 10 15 8 4 18 25 0 16 13 N O P Q R S T U V W X Y Z 7 3 1 19 6 12 24 21 17 14 22 11 9 设,验证矩阵A能否作为Hill4,用框图画出你的验算过程,并编写相应的计算机程序。 设明文为HILL CRYPTOGRAPHIC SYSTEM IS TRADITIONAL。利用上面的表值与加密矩阵给此明文加密,并将得到的密文解密。画出加密与解密过程的框图并编写相应的计算机程序。 已知在上述给定值下的一段密文为JCOWZLVBDVLEQMXC,对应的明文为DELAY OPERATIONSU。能否确定对应的加密矩阵?给出你的判断过程。 如下的密文据表10.1以Hill加密,密文为VIKYNOTCLKYRJQETIRECVUZLNOJTUYDI MHRFITQ。已获知其中相邻字母LK表示字母KE,试破译这份密文。 找出元素属于Z26的所有可能的Hill密码加密矩阵。若截获了如下一段密文 UTCQCVFOYQUVMGMGULFOLEYHDUDOPEASWXTIFBAMWT 且知他是根据表10.1按Hill密码 体制加密的,能否破译? 实验解答 2、 由定义可知,元素属于Zm的方阵A模m可逆的充要条件是,m和det A没有公共素因子。因此,框图如下: Matlab程序: function y=isInverse(M) D=det(M); if gvd(D,26)~=1 y=false; else y=true; end; 经验证,det A=-1,因此,A可作为Hill4密码体制的加密矩阵。 (2) 加密框图: 解密框图: 加密程序: function m=encryption(str) table=[5 23 2 20 10 15 8 4 18 25 0 16 13 7 3 1 19 6 12 24 21 17 14 22 11 9]; len=length(str); A=[8 6 9 5;6 9 5 10;5 8 4 9;10 6 11 4]; tmp=blanks((floor(len/4)+1)*4-mod(len,4)); if mod(len,4)~=0 for i=1:length(tmp) tmp(i)=str(len); end; end; str=strcat(str,tmp); len=length(str); m=blanks(len); for i=1:4:len col=eye(4,1); for j=1:4 col(j)=table(str(i+j-1)-A+1); end; col col=mod(A*col,26); col for j=1:4 for z=1:26 if col(j)==table(z) break end; end; m(i+j-1)=A+z-1; end; end; str=encryption(HILLCRYPTOGRAPHICSYSTEMISTRADITIONAL); 密文为KEGTKPNJKYXRLAOLMZTPVYIUNHZSCEGDZRPZ 解密程序: function str=decryption(str0,A) table=[5 23 2 20 10 15 8 4 18 25 0 16 13 7 3 1 19 6 12 24 21 17 14 22 11 9]; len=length(str0); str=blanks(len); for i=1:4:len col=eye(4,1); for j=1:4 col(j)=table(str0(i+j-1)-A+1); end; col=A*col; for j=1:4 for z=1:26 if col(j)==table(z) break end; end; st

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档