当前位置:首页 > MATLAB - Hilln密码程序(包括加密、解密及破译三个环节)实验报告书
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
共分享92篇相关文档