MATLAB_Hilln密码程序(包括加密、解密及破译三个环节)实验报告书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数模实验一 实验内容:用MATLAB 实现 Hill n 密码程序(包括加密、解密及破译三个环节)
一 实验目的
实现Hill n 密码体系的关键环节(加密、解密、破译)
二 预备知识
熟悉mod 、det 、find 等Matlab 命令
三 实验内容与要求
(1)假设加密矩阵为A =⎪⎪⎭⎫ ⎝⎛3201,用MATLAB 编制程序,加密下面
一段明文:SHUXUEJIANMOJINGSAI 命令
结果 function hill()
%输入密钥
disp('输入密钥(矩阵)的维数');
n=input('');
disp('输入密钥(矩阵,按行输入)');
key=zeros(n,n);
for j=1:n
for k=1:n
key(j,k)=input('');
end
end IXQTEOBACPQSBABUU CAA
i=1; while i<m+1
B=message(i:i+n-1)';
a=key*B;
A(i:i+n-1)=a';
i=i+n;
end
for i=1:m if A(i)>26
A(i)=mod(A(i),26);
end
A(i)=A(i)+64;
end
str=char(A);
fprintf('密文为%s',str)
(2)假设加密矩阵为A =1103⎛⎫ ⎪⎝⎭
,用MATLAB 编制程序,解密下面一AXSTZOSAOPBSTKSAN OPSAHAUUNSUUAKGAUZC K KOP D O 段密文: 命令
结果 function hill2()
%输入密钥
disp('输入密钥(矩阵)的维数');
n=input('');
YTMHOSTCEVUEEGTC YGEVTCICPKGEPKLG HCU@NGEVSS
(3)甲方截获了一段密文:
BKOPGATRHMMBFC SDJC CAUU
经分析这段密文是用Hill2密码编译的,且这段密文的字母SDJC依次代表字母IJIA,请破译这段密文的内容
(4)编写通用的Hill密码软件(Matlab)。