实验十 Hill密码的加密、解密与破译
MATLAB_Hilln密码程序(包括加密、解密及破译三个环节)实验报告书

数模实验一 实验内容:用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:nfor k=1:nkey(j,k)=input('');endend IXQTEOBACPQSBABUU CAAi=1; while i<m+1B=message(i:i+n-1)';a=key*B;A(i:i+n-1)=a';i=i+n;endfor i=1:m if A(i)>26A(i)=mod(A(i),26);endA(i)=A(i)+64;endstr=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)。
Hill密码的加密

Hill 密码的加密、解密和破译 实验报告吴林柱 5100309888实验任务2、利用所介绍的Hill 密码体制原理,根据所给定的26个英文字母的乱序表值(见表),设计与Hill 4密码体制的加密、解密与破译框图并建立必要的计算机程序。
设英文26个字母以下的乱序表与Z 26中的整数对应: 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 731196122421171422119(1)设⎪⎪⎪⎪⎪⎭⎫⎝⎛=4116109485105965968A ,验证矩阵A 能否作为Hill 4,用框图画出你的验算过程,并编写相应的计算机程序。
(2)设明文为HILL CRYPTOGRAPHIC SYSTEM IS TRADITIONAL 。
利用上面的表值与加密矩阵给此明文加密,并将得到的密文解密。
画出加密与解密过程的框图并编写相应的计算机程序。
(3)已知在上述给定值下的一段密文为JCOWZLVBDVLEQMXC ,对应的明文为DELAY OPERATIONSU 。
能否确定对应的加密矩阵?给出你的判断过程。
4、如下的密文据表10.1以Hill 加密,密文为VIKYNOTCLKYRJQETIRECVUZLNOJTUYDI MHRFITQ 。
已获知其中相邻字母LK 表示字母KE ,试破译这份密文。
5、找出元素属于Z 26的所有可能的Hill 密码加密矩阵。
若截获了如下一段密文UTCQCVFOYQUVMGMGULFOLEYHDUDOPEASWXTIFBAMWT 且知他是根据表10.1按Hill 密码 体制加密的,能否破译?实验解答2、(1)由定义可知,元素属于Z m 的方阵A 模m 可逆的充要条件是,m 和det A 没有公共素因子。
因此,框图如下:求矩阵A 的行列式 det A 若det A 与26没有公共素因子,则A 可用。
实验十-Hill密码的加密、解密与破译

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]
miwen(k)=dxzm(b);
end
mw0='';
for k=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
2.学习掌握线Hill密码体制的加密、解密和破译过程.
实验环境
MatlabR2012b
实验内容:
实际问题:(1)甲方收到与之有秘密通信来往的乙方的一个密文信息,密文内容:QSIUYSBACPGZSAVCOVKPEWCPADKPPABUJCQLYXQEZAACPP
按照甲方与乙方的约定,他们之间的密文通信采用Hill2密码。密钥为二阶矩阵 。且汉语拼音的26个字母与0~25之间的整数建立一一对应的关系,称之为字母的表值,具体的表值见表10.1.问这段密文的原文是什么?
1.(1)
disp('输入密钥矩阵的为数');
n=input('');
disp('输入密钥矩阵(按行输入)');
Hill 密码的加密解密与破译.ppt

关系
U C
21 3
1
A1
其中
1
20 1
T A
R S
18 19
2
A
2
其中
2
3 15
C O
A
20 1
3
15
21
3
18
19
计算A-1
★ 选择一个加密矩阵 A — 二阶正整数值的矩阵 . 例如
A 1 2 0 3
★ 将明文字母依次按每两个字母一组查出其表
值,得到一组二维向量{i}
★ 通过加密矩阵得到{i},而 i Ai (mod 26)
★ 查向量i 的字母表值,即得到密文
★ 利用加密矩阵的逆矩阵,由密文得到明文
i A1i
关于模运算 (mon26)
1
2 3
0
1 3
Out[4]//MatrixForm=
3 2
0
1
In[5]:=ideta = 9
Out[5]= 9
In[6]:=inva1 = Mod[ideta adja, 26]; MatrixForm[inva1]
Out[6]//MatrixForm=
1 8
0
9
In[7]:= b = {{5, 18, 11, 9, 25, 25, 5, 12, 8},
战争和和平时期的间谍战 吕贝卡的故事-007的故事
基度山伯爵 (大仲马) 舞蹈人形
Conan Doyle 创作的歇洛克.福尔摩斯 这段符号的译文为 AM HERE ABE SLANE .
hill密码加密例题

hill密码加密例题Hill密码是一种基于线性代数的密码算法,它使用矩阵运算来进行加密和解密。
下面我将给出一个Hill密码加密的例题,并从多个角度进行全面解答。
假设我们要加密的明文是:"HELLO",并且我们选择使用2x2的密钥矩阵进行加密。
密钥矩阵可以表示为:K = [[2, 3],。
[1, 4]]现在,我们将按照Hill密码的加密步骤来进行加密:步骤1: 明文转化为数字。
首先,我们需要将明文转化为对应的数字。
通常可以使用字母表来进行映射,比如A对应0,B对应1,以此类推。
在这个例题中,我们使用A=0,B=1,C=2,...,Z=25的映射方式。
所以,"HELLO"可以转化为[7, 4, 11, 11, 14]。
步骤2: 分组。
然后,我们将数字分组,每个组的长度与密钥矩阵的行数相同。
在这个例题中,由于密钥矩阵是2x2的,所以我们将数字分组为[[7, 4], [11, 11], [14]]。
步骤3: 矩阵乘法。
接下来,我们将每个分组与密钥矩阵进行矩阵乘法运算。
对于每个分组,我们将其转化为一个行向量,并与密钥矩阵进行乘法运算。
在这个例题中,第一个分组[7, 4]与密钥矩阵K进行乘法运算,得到的结果为[2, 29]。
步骤4: 取模运算。
然后,我们对矩阵乘法的结果进行取模运算,通常取模26。
这是因为我们使用了26个字母的字母表。
在这个例题中,对于矩阵乘法的结果[2, 29],我们进行取模26运算,得到[2, 3]。
步骤5: 数字转化为密文。
最后,我们将取模运算的结果转化为对应的字母。
在这个例题中,[2, 3]对应的字母是"C"和"D"。
所以,加密后的密文为"CD"。
综上所述,使用2x2的密钥矩阵K对明文"HELLO"进行Hill密码加密后得到的密文为"CD"。
从多个角度来看,Hill密码的加密过程涉及到了线性代数的矩阵运算,包括矩阵乘法和取模运算。
Hill密码的加密与解密_矩阵

加密过程 将明文变换成另一种不能被非授权者所
加密变换 将明文变为密文的变换
解密变换 将密文变为明文的变换
密 钥
加密变换所使用的参数
简单的加密解密过程模型
发送者 明文 加密器 密文
普 通 信 道
接收者
明文
解密器
窃听、干扰
HILL2密码
明文分组(两个一组),按组转换成密文
同一字母在不同组中所对应密码不同
21 18 (mod 26) 15 19 18 (mod 26) 3 21 3 19 25 16 7 3
1
20 3 21 18 1 17 A (mod26) 1 15 3 19 0 9
Mathematica: Eulerphi[m]
k
故所求 x为
( m)
1 (mod m)
x a ( m )1 (mod m)
aij Z m , 矩阵模 m 可逆 设 A aij nn 为 n 阶方阵, 若存在 B bij nn , bij Z m , 使得 AB E (mod m) ,称 B 为 A 的模 m逆矩 阵,记作 B A1 (mod m)
15 18 1 19 1 23 19 8 20 21 13 18 8 12 1 19 15 20
HILL2密码的破译
关键是求得加密矩阵的逆—解密矩阵 只要分析出两个明文向量(线性无关)与 相应的密文向量
若有 b1
a1 b3 a3 A A b2 a2 b4 a4
R 18 2 A 2 S 19
实验报告书-Hill密码体系

实验内容:Hill n 密码体系 一 实验目的实现Hill n 密码体系的关键环节(加密、解密、破译) 二 预备知识熟悉mod 、det 、find 等Matlab 命令 三 实验内容与要求(1)假设加密矩阵为A =⎪⎪⎭⎫⎝⎛3201,用M A T L A B 编制程序,加密下面一段明文:SHUXUEJIANMOJINGSAI(2)假设加密矩阵为A =1103⎛⎫⎪⎝⎭,用M A T L A B编制程序,解密下面一段密文:AXSTZOSAOPBSTKSAN OPSAHAUUNSUUAKGAUZC K KOP D O(3)甲方截获了一段密文:BKOPGATRHMMBFC SDJC CAUU经分析这段密文是用Hill 2密码编译的,且这段密文的字母SDJC依次代表字母IJIA ,请破(4)编写通用的Hill密码软件(Matlab或C++) Shiyan.m代码function mima=shiyan(x,A)n=length(x);x2=double(x)-96;x3=reshape(x2,2,n/2);x4=A*x3;x5=mod(reshape(x4,1,n),26)+96;x5(find(x5==96))=122;mima=char(x5);sy2.m代码:function mingwen=sy2(x,A)n=length(x);x2=double(x)-96;x3=reshape(x2,2,n/2);a=floor(det(A));aa=qiumoni(a);A_inv=mod(aa*det(A)*inv(A),26);x4=A_inv*x3;x5=mod(reshape(x4,1,n),26)+96;x5(find(x5==96))=122;mingwen=char(x5);qiumoni代码:function aa=qiumoni(a)a=a;aa=0;for i=1:25if mod(a*i,26)==1aa=i;breakendendif aa==0disp('没有该模的逆')endsy3.m代码:function A=sy3(a1,a2)C=reshape(double(a1)-96,2,2);P=reshape(double(a2)-96,2,2);c=mod(det(C),26);cc=qiumoni(c);%qiumoni请参见(2)C_inv=mod(cc*det(C)*inv(C),26);A=mod(P*C_inv,26)%使用说明:%先建立Shiyan.m、sy2.m、qiumoni.m、sy3.m三个M文件%1、进行加密操作:% 将加密的内容写在“x=’’”中的单引号中,将加密矩阵写在“A=’’”的单引号中,接着%输入“mima=shiyan(x,A)”即可得到密文。
Hill密码

--1
B=A (mod m)
12
例: A={ 0 3 }
18
B ={ 0 9 }
有AB = E(mod m)
--1
A可逆, A= B A模m可逆的判定:
A模m可逆的充要条件是,m和|A|没有公共素 数因子。
证明:如果ab=1(mod m)称a模m可逆,b
收到的加密消息。尽管加密消息的办法众所周知,但只
有那些指定的人才能解开它们。这种想法基于这样的事
实:存在数秒内能找到非常大的素数(譬如100位长) 以及使它们相乘的方法,但是,用已知的算法,即使用 最快的计算机也需要数年的时间来分解具有200位的整数。
(2)因此,收到这个消息的人,找到两个较大的素 数p和 q (p,q保密)。
找出元素属于Z26 的所有可能的Hill2 密码加密矩阵,若 截获了如下一段密文
UTCQCVFOYQUVMGMGULFOLEYHDUHOPEASWXTI
FBAMWT 且已知它是根据表1,且按 Hill2 密码体制加密,你能否将 其解密?
六:RSA公钥加密方案。 1:原理 (1)这是一种每个人都公开知道如何解开他或她所
72 mod 85=13 M
6:任务: (1):当n=85,r=3时用RSA方案确定发送电文
CHINA。 (2):当p=5,q=17,r=3时用RSA方案对接收52和
72解密。 (3):在RSA方案中,当p=5,q=17,r=5时,确定s
的值;问如取r=4来解密,能否可行?
m为1,r 的这个幂指数的前一个的幂 的 mod m就是s 。
4
3
例:r = 3 , m = 16 有3 = 1(mod 16) 则有s = 3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验环境
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,问能否破译这段密文的内容?