MATLAB_Hilln密码程序(包括加密、解密及破译三个环节)实验报告书
更新时间:2024-05-05 21:24:01 阅读量: 综合文库 文档下载
数模实验一
实验内容:用MATLAB实现Hilln密码程序(包括加密、解密及破译三个环节) 一实验目的
实现Hilln密码体系的关键环节(加密、解密、破译) 二 预备知识
熟悉mod、det、find等Matlab命令 三 实验内容与要求
(1)假设加密矩阵为A=??03??,用
???12?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 结果 IXQTEOBACPQSBABUUCAA 1
d=det(key);%求矩阵的行列式 if d==0%判断矩阵是否可逆 error('密钥矩阵不可逆,无法实现Hill密码'); end %输入明文 message=input('输入明文 \\n','s'); m=size(message); m=m(2); if mod(m,n)~=0 error('输入错误,明文长度应为矩阵维数的倍数'); end for i=1:m if message(i)>='A' && message(i)<='Z' message(i)=message(i)-64; else error('输入错误,应该输入字母'); end end %加密 2
i=1; while i
disp('输入密钥(矩阵,按行输入)'); key=zeros(n,n); for j=1:n for k=1:n key(j,k)=input(' '); end end d=det(key);%求矩阵的行列式 if d==0%判断矩阵是否可逆 error('密钥矩阵不可逆,无法实现Hill密码'); end %输入密文 message=input('输入密文 \\n','s'); m=size(message); m=m(2); if mod(m,n)~=0 error('输入错误,密文长度应为矩阵维数的倍数'); end for i=1:m if message(i)>='A' 4
&&message(i)<='Z' message(i)=message(i)-64; else error('输入错误,应该输入字母'); end end %r1为d的逆 while d>26 d=mod(d,26); end switch d case 1 r1=1; case 3 r1=9; case 5 r1=21; case 7 r1=15 case 9 r1=3; case 11 5
r1=19; case 15 r1=7; case 17 r1=23; case 19 r1=11; case 21; r1=5; case 23 r1=17; case 25 r1=25; otherwise disp('d倒数不存在'); end detk=det(key); invk=inv(key); k=detk*invk; key2=r1*k; for i=1:n for j=1:n key2(i,j)=mod(key2(i,j),26); 6
if key2(i,j)<0 key2(i,j)=key2(i,j)+26; end end end i=1; while i
fprintf('\\n对密文解密后明文为%s\\n',str2) end (3)甲方截获了一段密文:
BKOPGATRHMMBFCSDJCCAUU
经分析这段密文是用Hill2密码编译的,且这段密文的字母SDJC依次代表字母IJIA,请破译这段密文的内容
Matlab命令 function hill3() %截获的密文 message1=input('输入截获密文 \\n','s'); for i=1:4 if message1(i)>='A' && 结果 OSQDRWDXSMSTGQ WNWQBWDO message1(i)<='Z' message1(i)=message1(i)-64; else error('输入错误,应该输入大写字母'); end end %对应的明文 8
message2=input('输入对应的明文 \\n','s'); for i=1:4 if message2(i)>='A' && message2(i)<='Z' message2(i)=message2(i)-64; else error('输入错误,应该输入大写字母'); end end %求密钥的逆矩阵 B=[]; B(1,1)=message1(1);B(2,1)=message1(2); B(1,2)=message1(3);B(2,2)=message1(4); d=det(B); while d>26 d=mod(d,26); end switch d case 1 r1=1; case 3 9
r1=9; case 5 r1=21; case 7 r1=15 case 9 r1=3; case 11 r1=19; case 15 r1=7; case 17 r1=23; case 19 r1=11; case 21; r1=5; case 23 r1=17; case 25 r1=25; otherwise disp('d倒数不存在'); 10
end detk=det(B); invk=inv(B); k=detk*invk; for i=1:2 for j=1:2 k(i,j)=mod(k(i,j),26); if k(i,j)<0 k(i,j)=k(i,j)+26; end end end C=[]; C(1,1)=message2(1);C(2,1)=message2(2); C(1,2)=message2(3);C(2,2)=message2(4); key1=C*k; for i=1:2 for j=1:2 key1(i,j)=mod(key1(i,j),26); if key1(i,j)<0 key1(i,j)=key1(i,j)+26; end 11
end end disp('密钥的逆矩阵:') key1 (4)编写通用的Hill密码软件(Matlab)
通用的Hill密码软件就是把上面三个函数放在一个m文件中就可,要实现某一功能时只要调用对应的具体函数即可。
12






正在阅读:
MATLAB_Hilln密码程序(包括加密、解密及破译三个环节)实验报告书05-05
2015-2016学年度青岛版九年级数学下期中检测题(附答案)09-11
南开大学2018年课程考试-审计学03-08
绿色的希望作文550字07-11
国际贸易题-商检、索赔、不可抗力与仲裁01-25
“材料科学与工程基础”第二章习题 答案题目整合版 - 图文04-19
钢板焊缝的接触法超声波检测 - 图文11-24
祁集中心学校节假日值班管理制度04-05
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 报告书
- 破译
- 解密
- 加密
- 环节
- 三个
- 包括
- 密码
- 实验
- 程序
- MATLAB
- Hilln
- 巧用数控车床对非圆曲线类零件加工
- (强烈推荐)低渗气田储层保护及水平井开采可行性研究报告
- 2016年高考监考员考试试题大全(最新版)
- 在全县烟草专卖及“两烟”打假打私工作会议上的讲话
- 党员介绍信模版
- 3个自由度机械手设计
- 蜗轮蜗杆减速器
- 保险代理人考试真题库一(7套)
- 一级医院工作制度与人员岗位职责
- 江苏三级偏软真题(08-10)
- 2016年运动会主持词
- 法务部内部管理工作制度
- 2014年英语户外课教学计划
- 生物无机化学思考题
- 北师大版小学五年级语文下册第三单元试卷1
- 3-关于进一步加强本市建筑起重机械监督管理的通知(沪建建管2009
- Access2003数据库的使用
- 法语口语620句,全背下来直接和法国人对话
- 蒙德(MODROL)IMS-GL2变频器说明书 - 图文
- 2014校务计划