当前位置:
文档之家› 实验十 Hill密码的加密、解密与破译
实验十 Hill密码的加密、解密与破译
2.学习掌握线Hill密码体制的加密、解密和破译过程.
实验环境
MatlabR2012b
实验内容:
实际问题:(1)甲方收到与之有秘密通信来往的乙方的一个密文信息,密文内容:QSIUYSBACPGZSAVCOVKPEWCPADKPPABUJCQLYXQEZAACPP
按照甲方与乙方的约定,他们之间的密文通信采用Hill2密码。密钥为二阶矩阵 。且汉语拼音的26个字母与0~25之间的整数建立一一对应的关系,称之为字母的表值,具体的表值见表10.1.问这段密文的原文是什么?
(3)甲方截获了一段密文:
TYITSFAFIRAFXKOLWRPSFUXXPI
已知这段密文是用Hill2密码编译的,且这段密文的字母PS对应的明文字母为KE,问能否破译这段密文?
实验任务:
1.利用所介绍的Hill2密码体制的原理,根据给定的26个英文字母的乱序表值(见表10.4),设计与建立Hill4密码体制的加密、解密与破译框图并建立必要的计算机程序.设英文26个字母以下面的乱序表与Z26中的整数对应:
利用上面的表值与加密矩阵给此明文加密,并将得到的密文解密.画出加密与解密过程的框图并编写相应的计算机程序.
(3)已知在上述给定表值下的一段Hill4密码的密文为
JCOW ZLVB DVLE QMXC
对应的明文为
DELAY OPERATIONSU
能否确定对应的加密矩阵?给出你的判断过程.
实验过程(模型公式、程序、运算结果):
end
X(k)=bm(b);
end
n=length(X);
ifmod(n,4)
X(ceil(n/4)*4)=0;
end
X=reshape(X,4,length(X)/4);
Y=mod(A*X,26);
y=Y(:)';
miwen='';
fork=1:length(y)
[a,b]=max(y(k)==bm);
error('A不可作为加密矩阵')
else
sprintf('A可作加密矩阵')
end
输出结果:A可作加密矩阵
(2)MAYLAB程序:
clc;clear;
bm=[5,23,2,20,10,15,8,4,18,25,0,16,13,7,3,1,19,6,12,24,21,17,14,22,11,9];
实 验 报 告
课程名称:数学实验
学院名称:数学与统计学院
班 级:
姓 名:
学 号:
2013-2014学年第2学期
数 学 与 统 计 学 院 制
实验地点
应用数学实验室
课程类别
①公共课□ ②专业课■
实验日期
实验
编组
第 组
实验所
用时间
2小时
实验名称
Hill加密、解密与破译
实验目的:
1.复习线性代数中模运算意义下的矩阵乘法、求逆矩阵、线性无关、线性空间与线性变换等概念和运算;
A=[8 6 9 5;6 9 5 10;5 8 4 9;10 6 11 4];
s='jintianshixingqisi';
dxzm='A':'Z';
xxzm='a':'z';
fork=1:length(s)
ifk>length(s)
break
end
ifs(k)==' ';
s(k)=[];
end
end
A
B
C
D
E
F
G
H
I
J
K
L
M
5
23
2
20
10
15
8
4
18
25
0
16
13
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
7
3
1
19
6
12
24
21
17
14
22
11
9
(1)设 ,验证A能否作为Hill4密码体制的加密矩阵.用框图画出你的验算过程,并编写相应的计算机程序.
(2)设明文为
HILL CRYPTOGRAPHIC SYSTEM IS TRADITIONAL
1.(1)
disp('输入密钥矩阵的为数');
n=input('');
disp('输入密钥矩阵(按行输入)');
key=zeros(n,n);
forj=1:n
fork=1:n
key(j,k)=input('');
end
end
d=round(mod(det(key),26));
ifd==0,2,4,6,8,10,12,13,14,16,18,20,22,24
n=length(s);
fork=1:n
ifs(k)>='A'&&s(k)<='Z'
sh=(s(k)==dxzm);
[a,b]=max(sh);
elseifs(k)>='a'&&s(k)<='z'
sh=(s(k)==xxzm);
[a,b]=max(sh);Байду номын сангаас
end
b=mod(b,26);
ifb==0
b=26;
miwen(k)=dxzm(b);
end
mw0='';
fork=1:n
mw0(k)=miwen(k);
end
disp(['密文是',mw0])
执行结果:
密文是:BFQYYXRBSGTDPJJZXK
(3)
function Y=invmod(C,P)
D=det(P);
D=round(D)
if gcd(D,26)~=1
实验分析:通过计算机程序可以实现Hill加密、解密与破译,但并不是每个矩阵都可以作为加密矩阵,作为加密矩阵必须满足一定的条件。
考核结果
教师签名: 年 月 日
disp('Error');
else
for i=1:25
if mod(i*D,26)==1
break
end;
end;
invD=i;
Y=mod(D*inv(P)*invD,26);
end;
Y=mod(C*Y,26);
y=true
运行结果:y=[25 9 20 19 ;2 16 17 13;3 17 16 22;14 23 10 2]
表10.1 明文字母的表值
A
B
C
D
E
F
G
H
I
J
K
L
M
1
2
3
4
5
6
7
8
9
10
11
12
13
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
14
15
16
17
18
19
20
21
22
23
24
25
0
(2)甲方截获了一段密文:
QJWPISWAZUXAUUISEABAUCRSIPLBHAAMMLPJJOTENH,经分析这段密文是用Hill2密码编译的,且这段密文的字母UCRS依次代表字母TACO,问能否破译这段密文的内容?