资源描述:
《数学建模实验报告-Hill密码体系.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、东南大学《数学实验》报告学号09008132姓名张晓波成绩实验内容:Hilln密码体系一实验目的实现Hilln密码体系的关键环节(加密、解密、破译)二预备知识熟悉mod、det、find等Matlab命令三实验内容与要求(1)假设加密矩阵为A=,用MATLAB编制程序,加密下面一段明文:SHUXUEJIANMOJINGSAI命令结果disp('输入密钥矩阵的维数');n=input('');disp('输入密钥矩阵');key=zeros(n,n);forj=1:nfork=1:nkey(j,k)=i
2、nput('');endendd=det(key);ifd==0error('密钥矩阵不可逆');endmessage=input('输入明文','s');m=length(message);%得到字符串长度check=mod(m,n);%模除确定多余的字符数ifcheck>0>>jianmo输入密钥矩阵的维数2输入密钥矩阵1203输入明文SHUXUEJIANMOJINGSAI密文为IXQTEOBACPQSBABUUCAA>>8addstr(1:check)=message(m);%添加messa
3、ge=[messageaddstr];m=length(message);%重新获得长度endfori=1:mifmessage(i)>='A'&&message(i)<='Z'message(i)=message(i)-64;elseerror('输入错误');endendi=1;whilei26A(i)=mod(A(i),26);endA(i)=A(i)+64
4、;endstr=char(A);fprintf('密文为%s',str)(2)假设加密矩阵为A=,用MATLAB编制程序,解密下面一段密文:命令结果disp('输入密钥矩阵的维数');n=input('');disp('输入密钥矩阵');key=zeros(n,n);forj=1:nfork=1:nkey(j,k)=input('');>>jiemi输入密钥矩阵的维数2输入密钥矩阵1108endendd=det(key);ifd==0error('密钥矩阵不可逆!');endmessage=input
5、('输入密文','s');m=length(message);check=mod(m,n);ifcheck>0addstr(1:check)=message(m);message=[messageaddstr];m=length(message);endfori=1:mifmessage(i)>='A'&&message(i)<='Z'message(i)=message(i)-64;elseerror('输入错误!');endendwhiled>26d=mod(d,26);endswitchdc
6、ase1r1=1;case3r1=9;case5r1=21;case7r1=15case9r1=3;case11r1=19;case15r1=7;case17r1=23;3输入密文AXSTZOSAOPBSTKSANKOPSAHAUUNSUUAKGAUZCKOPDO明文为SHUXUEJIANMOYUJISUANJIYINGYONGFUXIUZHUANYE>>8case19r1=11;case21;r1=5;case23r1=17;case25r1=25;otherwisedisp('d倒数不存在!');
7、enddetk=det(key);invk=inv(key);k=detk*invk;key2=r1*k;fori=1:nforj=1:nkey2(i,j)=mod(key2(i,j),26);ifkey2(i,j)<0key2(i,j)=key2(i,j)+26;endendendi=1;whilei26B(i)=mod(B(i),26);endifB(i)=
8、=0B(i)=26;endB(i)=B(i)+64;endstr2=char(B);fprintf('明文为%s',str2)8(3)甲方截获了一段密文:BKOPGATRHMMBFCSDJCCAUU经分析这段密文是用Hill2密码编译的,且这段密文的字母SDJC依次代表字母IJIA,请破译这段密文的内容Matlab命令结果message=input('输入截获密文','s');fori=1:4ifmessage(i)>='A'&&message(