版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验内容:用matlab实现hill生密码程序(包括加密、解密及破译三个环节)一实验目的实现hilh密码体系的关键环节(加密、解密、破译)二预备知识熟悉 mod、det、find 等 matlab 命令三实验内容与要求(1) 假设加密矩阵为爪;),用matlab编制程序,加密下面一段明文:shuxuejianmojingsai命令结果function hill()%输入密钥 disp(输入密钥(矩阵)的维数); n=input(");dispc输入密钥(矩阵,按行输入力; key=zeros(n,n);for j=l:nfor k=l:nkey(j,k)=input(n);enden
2、d d=det(key);%求矩阵的行列式 if d=0%判断矩阵是否可逆eiroif密钥矩阵不可逆,无法实现hill密码ixqteobacpqsbabuucaa丿,end%输入明文message=input(,输入明文 n;'s); m=size(message);m=m(2);if mod(m,n)二 0errorc输入错误,明文长度应为矩阵维数的 倍数');endfor i=l:mif message(i)>='a' && message(i)v 二 message(i)=message(i)-64;elseerroif输入错误,应该
3、输入字母j;endend%加密i=l;while i<m+lb=message(i:i+n-1 )a=key*b;a(i:i+n-l)=a'i=i+n;endfor i=l:mifa(i)>26a(i)=mod(a(i),26);enda(i)二a(i)+64;endstr=char(a);fprintf(* 密文为 %s*,str)(1 1、(2) 假设加密矩阵为, fij matlab编制程序,解密下面一2 3丿段 密文:axstzosa opbstksankopsaha uunsuuakga uzckopdo命令结果function hill2()%输入密钥disp(
4、输入密钥(矩阵)的维数);n=input(h);dispc输入密钥(矩阵,按行输入力; key=zeros(n,n);for j=l:nfor k=l:n key(j,k)=input(,'); endendd=det(key);%求矩阵的行列式if d=0%判断矩阵是否可逆 errorc密钥矩阵不可逆,无法实现hill密码 ');ytmhostcevueegtcygevtcicpkgepklghcungevssend%输入密文 message=input(输入密文 n'/s'); m=size(message);m=m(2);if mod(m5 n)=0err
5、or(*输入错误,密文长度应为矩阵维数的 倍数'); endfor i=l:mif message(i)>='a, && message(i)v二'z message(i)=message(i)-64;else errorc输入错误,应该输入字母j;endend%rl为d的逆while d>26d-mod(d,26);endswitch dcase 1rl=l;case 3rl=9;case 5rl=21;case 7rl=15case 9rl=3;case 11rl=19;case 15rl=7;case 17rl=23;case 19rl
6、=ll;case 21; rl=5;case 23门=17;case 25rl=25;otherwise disp(*d 倒数不存在'); enddetk=det(key); invk=inv(key); k=detk*invk;key2=rl*k;for i=l:nfor j=l:n key2(i,j)=mod(key2(i,j),26); ifkey2(i,j)<0key2(i,j)二 key2(i,j)+26;endendendi=l; while ivm+1p=message(i:i+n-1)1;a=key2*p;b(i:i+n-l)=a*;i=i+n;endfor i=
7、l:mif b(i)>26b(i)=mod(b(i),26);end ifb(i)=0b(i)=26;endb(i)=b(i)+64;endstr2=char(b);fprintf(*n对密文解密后明文为%snst end(3)甲方截获了一段密文:bkopgatrhmmbfcsdjccauu经分析这段密文是用hill?密码编译的,且这段密文的字母sdjc依次代表字母ijia,请破 译这段密文的内容结果matlab命令function hill3()%截获的密文messagel=input(f输入截获密文 n'/s'); for i=l:4if message l(i)&g
8、t;='a* && messagel(i)v='z message l(i)=message l(i)-64;elseerrorc*输入错误,应该输入大写字母j; endend%对应的明文message2=input(输入对应的明文 njs); for i=l:4讦 message2(i)>二a && message2(i)v='z message2(i)=message2(i)-64;elseerrorc输入错误,应该输入大写字母j; endend%求密钥的逆矩阵b=;b(l,l )=message 1 (1);b(2,1 )=m
9、essage 1 (2); b(l,2)=message 1 (3);b(2,2)=message 1 (4); d=det(b);while d>26d-mod(d,26);end switch dcase 1rl=l;case 3rl=9;case 5rl=21;case 7rl=15case 9 rl=3;case 11rl=19;case 15rl=7;case 17rl=23;osqdrwdxsmstgqwnwqbwdocase 19rl = ll;case 21; rl=5;case 23rl = 17;case 25rl=25;otherwise disp(*d 倒数不存在'); enddetk=det(b); invk=inv(b); k=detk*invk;for i=l:2for j= 1:2 k(i,j)=mod(k(i,j),26); if k(i,j)<0k(i,j)二k(i,j)+26;endendendc=;c( 1,1 )=message2( 1 );c(2,1 )=message2(2); c(1,2)=message2(3);c(2,2)=message2(4); keyl=c*k;for i=l:2for j= 1:2key l(i,j)=mod(key 1 (i,j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会计学原理题目及解析
- 医师资格考试试卷及解析
- 儿童戏剧教师试题
- 关键设备安全点检卡
- 雨课堂学堂在线学堂云《战略管理会计(黑龙江财经学院)》单元测试考核答案
- 医疗器械经营许可法律告知承诺书
- 劳动保障规章制度及管理规定
- 2026年二级注册计量师资格考试(计量专业实务与案例分析)历年参考题库
- 实木踢脚线安装施工工艺流程
- 矿井灾害事故应急演练总结
- 2026年测自己性格测试题及答案
- 2026中国文创产品市场消费趋势与商业模式创新研究报告
- 带状疱疹临床路径完整版
- 2025年广西初中学业水平考试中考(会考)地理试卷(真题+答案)
- ICU护士与家属及患者沟通技巧
- KTV消防安全管理制度
- 大国三农-辉煌成就版智慧树知到课后章节答案2023年下中国农业大学
- 2022勘察设计服务成本核算指南
- 光伏工程 危害辨识风险评价表(光伏)
- 2024年同等学力申硕《生物学学科综合水平考试》题库【历年真题+章节题库+模拟试题】
- 《高数双语》课件section 6.1
评论
0/150
提交评论