Hill密码的加密论文(内含matlab程序代码)

合集下载

636.基于MATLAB频度分析择取的hill密码破译

636.基于MATLAB频度分析择取的hill密码破译

基于MATLAB 频度分析择取的hill 密码破译摘要本文对2Hill 密码破译问题进行了观察分析,发现密文中MG 连续出现两次,说明明文是英文的概率较小,所以猜测明文是由汉语拼音组成。

具体模型为:穷举反密钥(解密矩阵)⇒得到全部明文⇒计算机频度分析择取(攻击明文)⇒剩余少量几组明文⇒人为择选⇒取得可行明文⇒解得密钥。

首先通过穷举法攻击反密钥1A -解得所有明文。

接着通过MATLAB 程序频度分析攻击明文剔除不符字母出现频率的拼音明文,得到15组符合拼音字母出现频率的明文,最后人为从中选出正确可行的明文并通过计算机程序计算密钥矩阵。

破译得到的可行明文为:WEIRUANGONGSIJIJIANGTUICHUXINYIDAIBENTEN GG ,转化为拼音为:WEI ,RUAN ,GONG ,SI ,JI ,JIANG ,TUI ,CHU ,XIN ,YI ,DAI ,BEN ,TENG ,G ,其中最后一个字母为哑字母。

所以翻译成汉语就是:“微软公司即将推出新一代奔腾”。

根据密文与破译出的明文可以解得密钥(加密矩阵)为:52311⎛⎫ ⎪⎝⎭,反密钥(解密矩阵)为:51817⎛⎫ ⎪⎝⎭。

最后对模型进行了加密检验,即用加密矩阵和所得文明进行一次加密过程,得到的结果(密文)与题目中所截获的密文相同,证明了本模型的正确性。

本文的特色在于把密码学与统计学相结合,通过计算机编程实现,在11秒左右的时间,可以取得正确可行的明文。

而基于MATLAB 频度分析择取攻击明文,是最重要的一块,使得明文数量从426456976=个减少到了15个,减少人为用肉眼拣选的痛苦。

具体实现如下:统计汉语拼音字母的出现频率,计算出高频率的字母在42个字母组成的密文中的出现次数,通过计算机程序模拟攻击明文剔除未达到出现次数下限以及以A 、E 、I 、O 、U 开头的明文。

关键词 频度分析 统计法 穷举法 明文攻击 计算机择取 MATLABHill 密码的破译问题(程序题)我方截获了敌方的一段密文:UTCQCVFOYQUVMGMGULFOLEYHDUHOPEASWXTIFBAMWT已知它是根据下面明文字母表值按Hill2密码体制加密的,请将其解密。

用MATLAB实现HILL密码的加密与解密

用MATLAB实现HILL密码的加密与解密

用MATLAB实现HILL密码的加密与解密连德忠;吴文城;李美莲;李松幡;杨涛;王杰锋;尤齐春【摘要】在当今的通讯领域,信息的安全性非常重要,因此常常需要对信息进行加密和解密。

作为以代数为基础的密码学, HILL 密码具有一定的实用价值。

依照HILL 密码的原理,借助MATLAB,准确快速地实现HILL密码的加密和解密。

%In today's communications, the confidentiality of information is especially important, so we have to encrypt and decrypt our messages quite frequently. As a cryptography based on algebra, Hill Cipher is very valuable for us. In this paper, according to the principle of Hill Cipher, we encrypt and decrypt our messages quickly and exactly by using MATLAB.【期刊名称】《龙岩学院学报》【年(卷),期】2016(034)002【总页数】5页(P45-49)【关键词】HILL密码;加密;解密;MATLAB【作者】连德忠;吴文城;李美莲;李松幡;杨涛;王杰锋;尤齐春【作者单位】龙岩学院福建龙岩 364000;龙岩学院福建龙岩 364000;龙岩学院福建龙岩 364000;龙岩学院福建龙岩 364000;龙岩学院福建龙岩 364000;龙岩学院福建龙岩 364000;龙岩学院福建龙岩 364000【正文语种】中文【中图分类】O245在当今电子计算机发展迅速的年代,网络在社会生活中的各个领域起着至关重要的作用,从个人到家庭、团体、公司,直至政府机关、军队警察、国家领导人,无不借助网络传递各类信息。

Hill密码的加密解密矩阵的求法

Hill密码的加密解密矩阵的求法

Hill密码的加密解密矩阵的求法作者:杨淑菊来源:《价值工程》2016年第26期摘要:本文介绍了Hill密码算法思想,Hill密码加密解密过程,加密解密过程中模代数知识,结合实例,应用数学知识和Matlab语言,说明如何求Hill密码的加密矩阵以及解密矩阵,从而实现了Hill密码快速加密和解密。

Abstract: This paper introduces the idea of Hill encryption algorithm, encryption and decryption process of Hill cipher, modular algebra knowledge in the process of encryption and decryption. Combined with an example, using mathematical knowledge and Matlab language, it explains how to find the Hill cipher encryption matrix and decryption matrix, so as to achieve the fast encryption and decryption of Hill cipher.关键词: Hill密码;加密解密矩阵;模逆;MatlabKey words: Hill cipher;encryption and decryption matrix;module inverse;Matlab中图分类号:TP393.0 文献标识码:A 文章编号:1006-4311(2016)26-0285-030 引言随着互联网和通讯技术的迅猛发展与广泛应用,社会的信息化已经成为当今世界发展的潮流,互联网在国家经济社会发展和人民生活中起到重要作用,信息安全已成为国家安全的重要组成部分,维护信息安全不仅关系到国家利益,也关系人民群众的切身利益。

基于Hill密码的数字图像加密算法

基于Hill密码的数字图像加密算法

摘要:低阶的加密矩阵具有易于计算的特点,应用于加密将使算法效率提高。

混沌序列具有容易生成、对初始条件敏感等特点,可用于生成大量的低相关度的低阶矩阵。

提出了一种以古典的Hill密码为理论基础的图像加密算法,通过Logistic映射生成相应低阶加密矩阵,并利用其进行数字图像加密,得到了较好的结果。

关键词:Hill密码;Logistic;映射;图像加密1 引言随着互联网技术与多媒体技术的快速发展, 人们之间的多矩阵中序列可取任意一种排列。

排列方式作为密钥的一部分。

为论述简易,下文中序列取默认排列方式。

媒体通信逐渐成为信息交流的重要手段。

人们通过网络交流的Eij 是一个取值于[0,255] 的整数,其取值视加密者的需要各种信息往往与自身利益相关。

因此,信息的保密与安全显得日益重要。

图像在人们用于交互的多媒体信息占有较大比重。

传统的加密技术将其作为普通数据流进行加密,而不考虑图像数据的特点,因此有一定的局限性[1]。

Hill 密码是一类替代密码,其优点有可隐藏明文字母频率,表示简洁,易于计算机实现,可使用可逆矩阵加密解密等。

可将之应用于图像加密。

Hill 密码的关键在于加密矩阵。

如果加密矩阵不可逆,密文将无法还原成明文。

Bibhudendra 等人提出应用构造自逆矩阵[2]对信息进行加密以克服这一弱点。

其自逆矩阵的构造采用伪随机数并且元素之间具有很强相关性,因此易于破解。

文献[1]就此提出使用混沌序列来构造加密矩阵,但是其构造方法较为复杂。

文中应用低阶方阵构成的序列来对图像进行加密,其计算简易,可轻松解决加密矩阵的可逆性控制问题;又应用混沌映射产生序列中方阵的元素,使方阵之间的相关性较低,从而使密文难于破解。

2 图像的矩阵模型对于任一大小为m×n的图像I,I中的每个像素P ij(i= 0,1,2,…m;j=0,1,2,…n)的颜色都由三原色红、绿、蓝(R、G、B)组成。

像素的任意原色在计算机中表示为一个整数x,取值范围为x∈[0,255]。

Hill密码的加密

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 可用。

实验报告书MATLAB编制通用的Hilln密码程序

实验报告书MATLAB编制通用的Hilln密码程序
p=message(i:i+n-1)';
a=key2*p;
B(i:i+n-1)=a';
i=i+n;
end
for i=1:m
if B(i)>26
B(i)=mod(B(i),26);
End
if B(i)==0
B(i)=26;
end
B(i)=B(i)+64;
end
str2=char(B);
fprintf('\n对密文解密后明文为%s\n',str2)
命令
结果
function hill2()
%输入密钥
disp('输入密钥(矩阵)的维数');
n=input('');
disp('输入密钥(矩阵,按行输入)');
key=zeros(n,n);
for j=1:n
for k=1:n
key(j,k)=input(' ');
end
end
d=det(key);%求矩阵的行列式
if message(i)>='A' && 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
命令
结果
function hill()

实验内容Hill2密码体系

实验内容Hill2密码体系
end
M(find(M==26))=0;
N(find(N==26))=0;
n=mod(det(N),26);
j=1;
whilemod(n*j,26)~=1
j=j+1;
end
N=mod(j*det(N)*inv(N),26);
A=mod(M*N,26);% AΪÃܳ×
Len=length(str);
(3)甲方截获了一段密文:
BKOPGATRHMMBFCSDJCCAUU
经分析这段密文是用Hill2密码编译的,且这段密文的字母SDJC依次代表字母IJIA,请破译这段密文的内容
Matlab命令
结果
str='BKOPGATRHMMBFCSDJCCAUU';
str1='SDJC';str2='IJIA';
实验内容:Hill2密码体系
(1)假设加密矩阵为A= ,用MATLAB编制程序,加密下面一段明文:SHUXUEJIANMOJINGSAI
命令
结果
str='SHUXUEJIANMOJINGSAI';
Length=length(str);
ifmod(Length,2)~=0
str=[str,str(Length)];
命令
结果
str='AXSTZOSAOPBSTKSANKOPSAHAUUNSUUAKGAUZCKOPDO';
Length=length(str);
B=zeros(2,Length/2);
fori=1:Length/2
B(1,i)=str(2*i-1)-64;
B(2,i)=str(2*i)-64;

Hill密码中剩余阵的逆矩阵的求法及Matlab实现

Hill密码中剩余阵的逆矩阵的求法及Matlab实现

Keywords:Hill password;Residual matrix;Inverse matrix. Matlab
0 引言
并给出两个求剩余逆矩阵的算法。
信息在计算机网络传输过程中,为了确保数据的保 密性和可靠性,常常需要对数据进行加密和解密。在众 多传统数据加密算法中,由 Lester S. Hill 在 1929 年提出 的 Hill 密码是其中一种第一次在密码学中运用矩阵论 原理的替换密码算法[1]。其基本思想是假设要加密的明 文由 26 个英文字母构成,首先对每个字母进行数字化编 码:A=0,B=1,C=2……,Z=25;其次把一串明文字母分成 多组 n 维向量,跟一个 n×n 模 26 意义下可逆的密钥矩阵 K 相乘得到多组 n 维向量形式的密文,其中称模 26 意义 下密钥矩阵 K 为剩余阵[2-5]。解密时就是简单地由密文 n 维向量与剩余阵 K 的逆矩阵 K-1 相乘得到明文。但是 在学习时,不容易明白密钥剩余矩阵 K 可逆的充要条 件。在解密时,对密钥剩余阵 K 的逆矩阵 K-1 的求法也 感到困难。本文给出剩余阵的逆矩阵存在的充要条件,
A B C D E F GH I J K LM 0 1 2 3 4 5 6 7 8 9 10 11 12 N O P Q R S T U VWX YZ 13 14 15 16 17 18 19 20 21 22 23 24 25
收稿日期:2014-12-06 作者简介:邢玉清(1981-),男,河南周口人,硕士研究生,讲师,主要研究领域为:网络安全。
第6期
科技通报
185
(2)选择一个 n 阶可逆剩余阵 K ,称为 Hill 密码的 密钥矩阵,它是这个加密体制的“密钥”(此密钥是加密 的关键,仅通讯双方掌握)。

基于MATLAB数据加密方法研究及仿真

基于MATLAB数据加密方法研究及仿真

数据加密方法研究及仿真----基于MATLAB加密仿真摘要:信息是当今社会的一种非常重要的战略资源,密码技术作为保护信息安全最核心技术之一,一直是数据加密专家研究的重点。

本文对加密技术进行了整体介绍,说明了加密技术的分类和原理。

主要介绍的是基于MATLAB的Hill加密算法,并通过编写程序实现Hill加密算法对数据的加密及仿真。

关键词:数据加密;数据仿真;Hill密码;1数据加密技术的重要性和种类、应用1.1加密的重要性随着计算机网络的发展,使计算机应用更加广泛与深入,同时也使得计算机的安全问题日益突出和复杂。

网络安全面临诸多威胁,我们熟知的有:计算机病毒,黑客入侵,机密文件泄露,社会工程,DOS(拒绝服务攻击),DDOS(分布式拒绝服务攻击)等等。

此外,由于科学技术的不断提高,电子商务越来越流行,这使商家能够高效率地从事商业上的往来。

然而如何确保数据的可靠性、真实性、保密性,这个问题越来越受到人们的关注。

密码技术作为保护信息安全的主要手段之一,使用密码技术不仅可以保证信息的机密性,而且可以保证信息的完整性和确证性,防止信息被篡改、伪造和假冒。

同时,密码技术是其他安全技术的基础,比如数字签名和密钥管理,因此,密码技术受到安全专家的高度关注和重视。

现在,各国都在大力开发和改进密码技术,用以应对日益严重的信息安全问题,保障社会的快速发展,保护国家安全。

1.2加密的种类按作用不同[1],数据加密技术主要分为数据传输,数据存储以及数据完整性的鉴别,密钥管理技术四种。

(1)数据传输加密技术:其目的是对传输中的数据流加密,常用的方法有线路加密和端-端加密两种。

(2)数据存储加密技术:其目的是防止在存储环节上的数据失密,可分为密文存储和存取控制两种。

(3)数据完整性鉴别技术:其目的是对介入信息的传送、存取、处理的人的身份和相关数据内容进行验证,达到保密的要求,一般包括口令、密钥、身份、数据等项的鉴别,系统通过对比验证对象输入的特征值是否符合预先设定的参数,实现对数据的安全保护。

Hill密码加密的密文破译

Hill密码加密的密文破译

Hill密码加密的密文破译姓名:谭周兴学号:13091076明文:breathtaking密文:RUPOTENTOIFVHill密码:将明文的每个字母当作26进制数字:A=0, B=1, C=2... 一串字母当成n 维向量,跟一个n×n的矩阵M相乘,再将得出的结果MOD26,得到密文。

密钥矩阵M必须是在Z26上可逆才能译码。

明文对应的数字:1,17,4,0,19,7,19,0,10,8,13,6密文对应的数字:17,20,15,14,19,4,13,19,14,8,5,21分析:一共有12位数字,则密钥矩阵可能是1*1、2*2、3*3、4*4、6*6、12*12(为12的因子)维的。

根据已有的明密文不能破译4*4及其以上的密钥矩阵,另外明文里面含有0,从而排除1*1的情况,因而考虑2*2阵和3*3阵。

1、2*2矩阵:将明文按行写成一些2*2矩阵,如A1=[11740],B=[17201514]。

A1M(mod26)=B,矩阵A1在实数域内是可逆矩阵,判断A1在Z26上是否可逆,计算det(A1)(mod 26)=10,与26不互素,故A1不可逆,M无法根据A1得到。

继续上述步骤,A2=[40197]。

计算det(A2)(mod 26)=2,与26不互素,故A2不可逆,M无法根据A2得到。

det(A3)(mod 26)=23,和M互素,如图计算A3的代数余子式A*=(detA)*A-1mod26(矩阵元素元素属于实数域)和A-1.A-1=A*|A|-1(这里的矩阵元素和行列式的逆属于Z26.|A|-1计算用如下代码即可:#include<stdio.h>void main(){int i,a;scanf("%d",&a);for(i=0;i<=25;i++){if((a*i)%26==1)break;}printf("%d",i);}算得M=[13 1;12 9]。

Hill密码的加密、解密与破译

Hill密码的加密、解密与破译

⎡8 6 9 5⎤
⎢ ⎢
6
9
5
10⎥⎥
⎢5 8 4 9⎥
⎢⎣10
6 11
4
⎥ ⎦
计算机求解
设置明文字母表后,选择【根据明文密文求解加密矩阵…】,选择【Hill4 (4*4)矩阵】,输 入明文 DELAYOPERATIONSU,密文 JCOWZLVBDVLEQMXC,单击【求解加密矩阵】,在左下角可 以得到加密矩阵:
(3)理论计算
由于求解四阶的加密矩阵需要四组线性无关的明文向量和密文向量。所以原问题就是判断 所给的明文和密文所对应的列向量组是否线性相关。 先根据表值写出明文对应的列向量:
⎛ 25 ⎞
⎜ ⎜
2
⎟ ⎟
⎜3⎟
⎜ ⎝
1
4
⎟ ⎠
⎛9⎞
⎜ ⎜
1
6
⎟ ⎟
⎜17 ⎟
⎜ ⎝
2
3
⎟ ⎠
⎛ 20 ⎞
⎜ ⎜
17
⎟ ⎟
⎜16 ⎟
⎡8 6 9 5⎤
⎢ ⎢
6
9
5
10⎥⎥
⎢5 8 4 9⎥
⎢⎣10
6 11
4
⎥ ⎦
第三题
理论计算
找出RH NI对应的列向量为:
与TH HE对应的列向量为:
⎛⎜⎝177⎞⎟⎠,
⎛13⎞ ⎜⎝8⎟⎠
⎛⎜⎝179 ⎞⎟⎠,⎛⎜⎝ 74 ⎞⎟⎠
由出现的频率统计可知有两种可能:THHE→RHNI,THHE→NIRH
利用上面的表值与加密矩阵给此明 文加密,并将得到的密文解密,画出加密与解 密过程的框图并编写相应的计算机程序。 (3)已知在上述给定表值下的一段 Hill4 密码的密文为

数学实验-希尔密码的破译

数学实验-希尔密码的破译

数学实验:希尔密码的破译一、问题重述:找出元素属于Z(26)的所有可能的Hill密码加密矩阵,若截获了如下一段密文:CKYNOHKQMAXJQBHAZWUHDAOQWXIPQZBKMPUTIPVSWSBYXKKWQHADMBDM且知道它是根据表10.1按Hill(2)密码加密的,你能否将他解密?二、基本思路:(1)先穷举列出所有可以作为解密矩阵的矩阵,然后依次解密得到明文对应的数字矩阵,通过程序运行可以得到明文(2)通过频率统计攻击不符合要求的明文进行筛选,得到符合要求的明文,然后进行人工选择即可。

三、解答:1、将字母转化为数字矩阵。

我们通过matlab编程实现,代码如下:function [Z] = zimu_shuzi(X,a)%a是字符串长度除以2X=strrep(X,'Z','@');Y=abs(X)-64;for i=1:aZ(:,i)=Y(1,2*i-1:2*i)';endZ=mod(Z,26);%此程序经检验无误。

End经过此程序后我们得到2、将此值赋给C,对C应用程序暴力破解,其代码如下:function[]= Copyblpj_hypy(a,d,C)%输入解密矩阵的第一个元素a,密文长度的一半d,及密文矩阵。

for b=0:25for i=0:25for j=0:25X=[a,b;i,j];D=det(X);D=round(D);if gcd(D,26)~=1elseH=mod(X*C,26);D=0;for k=1:dD(1,2*k-1:2*k)=H(:,k)';endD=mod(D,26);M=char(D+64);M=strrep(M,'@','Z');%由于表10-1中Z的值域ascii码不能应用其他字母的对应关系,所以先用替换的方法换成@保证程序正确运行ifsize(strfind(M,'I'),2)>=3&&size(strfind(M,'N'),2)>=3&&size(strfind(M, 'D'),2)<=2&&size(strfind(M,'C'),2)<=2&&size(strfind(M,'L'),2)<=2&&siz e(strfind(M,'Q'),2)<=2&&size(strfind(M,'K'),2)<=2&&size(strfind(M,'V' ),2)==0%通过汉语拼音的频率来攻击、筛选。

Hill密码的加密论文(内含matlab程序代码)

Hill密码的加密论文(内含matlab程序代码)

Hill密码的加密,解密与破译摘要对于问题1.1:本文采用Hill密码通信,对明文进行加密。

利用已知的密钥矩阵,2首先,将密文转化为对应表值数字。

其次,对密文的数字转化为矩阵。

最后,对明文解密。

对于问题1.2:本文给出一组明文和密文,二者满足构成密钥的条件,通过求解的到密钥,并进行问题1.1的解题过程破译这段密文。

Hill密码矩阵A,并求出该矩阵的值是否与26互素,加以对于问题2.1:本文给出4判断。

若互素则能成为密钥,否则不能构成密钥。

对于问题2.2:利用问题2.1所给的密码矩阵A,按照问题1.1的解题思路,将得到的密文解密。

Hill密码的密文和其对应的明文,通过检验二者是否对于问题2.3:本文给出一段4满足构成密钥的条件,若满足解的密钥,并写出求解过程;若不满足加以说明。

对于问题3:本文给出明文频数最高的字母TH和HE,及密文频数最高的字母RH和NI。

两两组合得到两组“密钥”,并检验它们是否满足构成密钥的条件,若满足则解除密钥。

Hill密对于问题4:本文给出频数最高的相邻明文字母KE和相邻密文字母LK,采用2码通信,利用所给字母与其他字母组合,构造2×2的矩阵,并检验是否满足构成密钥的条件,加以排除得到所要的密钥。

若有满足条件的矩阵,破译所给密文。

Hill密码通信,根据26个字母搭配出2×2的所有矩阵,利对于问题5:本文采用2用矩阵的值与26互质,加以排除不符合条件的矩阵,并求出满足条件的密钥,破译该段密文,再利用密文是否通顺加以排除,得到所要的明文和密钥。

关键字密钥 mod(26)逆 mod(26)倒数一、Hill2密码的数学模型的主要符号说明w Hill密钥的维数A 密钥矩阵S 明文Y 密文m 所用的表值编号YW 哑文二、Hill2密码的数学模型密码是一种传统的密码体制加密过程的具体步骤如下:Hill2(1)、根据明文字母的表值将明文信息用数字表示,设明文信息只需要26个拼音字母A~Z(也可能不止26个,如还有数字、标点符号等),通信双方给出这26个字母表值(见表10.1明文字母的表值)。

Hill密码的加密解密

Hill密码的加密解密

【实验十】Hill密码的加密、解密与破译一、实验目的本实验主要涉及代数,利用模运算下的矩阵乘法、求逆矩阵、线性无关、线性空间与线性变换等概念和运算,学习Hill密码体制的加密、解密和破译过程二、实验任务任务五找出元素属于Z26的所有可能的Hill2密码加密矩阵。

若截获了如下一段密文:UTCQCVFOYQUVMGMGULFOLEYHDUHOPEASWXTIFBAMWT且已知它是根据表10.1按Hill2密码体制加密的,你能否将其解密?分析:对于第一问,找出元素属于Z26的所有可能的Hill2密码加密矩阵,我们只需要用枚举法即可。

关键在于第二问的解密,根据我们编写的C++程序,共有约15万个可能的加密矩阵,也就对应着同等数量的可能明文。

所以问题的重点就在于如何从这么多数量的明文中筛选出有意义的信息。

1、找出元素属于Z26的所有可能的Hill2密码加密矩阵C++源代码(枚举加密矩阵部分):chain_mat* head=new chain_mat; //加密矩阵用链表储存head->next=NULL;chain_mat* now=head;int n=0;for(int a=0;a<26;a++)for(int b=0;b<26;b++)for(int c=0;c<26;c++)for(int d=0;d<26;d++){intdet=a*d-b*c;if(det%2!=0&&det%13!=0) //判断是否模26可逆{chain_mat* newm=new chain_mat;newm->dat[0][0]=a;newm->dat[0][1]=b;newm->dat[1][0]=c;newm->dat[1][1]=d;n++; //累加符合要求的矩阵数量now->next=newm;now=now->next;now->next=NULL;}}运行结果:n=157248由于矩阵数量过多,我们将其存储在matrixlist.txt文件中C++源代码(输出矩阵部分):voidoutput_mat(chain_mat* head){ofstreamoutfile;outfile.open("matrixlist.txt");chain_mat* now=head->next;while(now!=NULL){outfile<<now->dat[0][0]<<'\t'<<now->dat[0][1]<<'\n'<<now->dat [1][0]<<'\t'<<now->dat[1][1]<<"\n=========="<<endl;now=now->next;}outfile.close();}下面给出matrixlist.txt中部分内容(完整文件将发至邮箱):0 11 0==========0 11 1==========0 11 2==========0 11 3==========0 11 4==========0 11 5==========0 11 6==========0 11 7==========0 11 8==========0 11 9==========0 11 10==========2.解密题中密文首先需要做的是对矩阵进行模逆运算C++源代码(模26逆矩阵运算部分):voidinv(chain_mat* m1){intdet=m1->dat[0][0]*m1->dat[1][1]-m1->dat[0][1]*m1->dat[1][0];det=reci(det);inttmp;tmp=m1->dat[0][0]*det;m1->dat[0][0]=m1->dat[1][1]*det;m1->dat[1][ 1]=tmp;m1->dat[0][1]*=-1*det;m1->dat[1][0]*=-1*det;for(inti=0;i<2;i++)for(int j=0;j<2;j++){m1->dat[i][j]%=26;if(m1->dat[i][j]<0)m1->dat[i][j]+=26;}}然后用逆矩阵乘密文向量,得到可能明文序列,存入名为me1的string数组中C++源代码(模26逆矩阵运算部分):n=0;while(now!=NULL)inv(now);for(inti=0;i<sizeof(str)-1;i+=2){int s1=now->dat[0][0]*co1[i]+now->dat[0][1]*co1[i+1];int s2=now->dat[1][0]*co1[i]+now->dat[1][1]*co1[i+1];s1%=26;s2%=26;if(s1<0)s1+=26;if(s2<0)s2+=26;if(s1==0)s1=26;if(s2==0)s2=26;me1[n]+=('A'+s1-1);me1[n]+=('A'+s2-1);}n++;inv(now);now=now->next;}至此,我们得到了157248条可能的明文,接下来就要考虑筛选的问题。

实验十【Hill密码的加密解密与破译】

实验十【Hill密码的加密解密与破译】

Hill 密码的加密、解密与破译[实验十] Hill 密码的加密、解密与破译一、实验目的本实验主要涉及代数,利用模运算意义下的矩阵乘法、求逆矩阵、线性无关、线性空间与线性变换等概念和运算,学习Hill 密码体制的加密、解密和破译过程。

二、实验内容(1)甲方收到与之有秘密通信往来的乙方的一个密文信息,密文内容: W O W U Y S B A C P G Z S A V C O V K P E W C P A D K P P A B U J C Q L Y X Q E Z A A C P P按照甲方与乙方的约定,他们之间的密文通信采用Hill 2密码,密钥为二阶矩阵 且汉语拼音的26个字母与0~25之间的整数建立一一对应的关系,称之为字母的表值,具体的表值见表10. 1 明文字母的表值。

问这段密文的原文是什么?(2)甲方截获了一段密文: O J W P I S W A Z U X A U U I S E A B A U CR S I P L B H A A M M L P J J O T E N H 经分析这段密文是用Hill 2密码编译的,且这段密文的字母UCRS 依次代表字母TACO ,问能否破译这段密文的内容?三、Hill 2密码的数学模型 Ⅰ、加密与解密过程Hill 2密码是一种传统的密码体制,它的加密过程可用以下框图描述:⎪⎭⎫⎝⎛=3021A明文------加密器------密文------普通信道------解密器密码分析(敌方截获)----- 明文在这个过程中,运用的数学手段是矩阵运算,加密过程的具体步骤如下: 1.根据明文字母的表值将明文信息用数字表示,设明文信息只需要26个拼音字母A~Z (也可能不止26个,如还有数字、标点符号等),通信双方给出这26个字母表值(见表10.1明文字母的表值)。

2.选择一个二阶可逆整数方阵A ,称为Hill 2密码的加密矩阵,它是这个加密体制的“密钥”(是加密的关键,仅通讯双方掌握)。

Hill密码的加解密过程

Hill密码的加解密过程
输入明文I
输入明文N
输入明文G
H =2 15 7 20 8 13 6 19 10 3 21
11 16 1 18 13 2 3 4 3 1 21
ans =B
ans =K
ans =O
ans =P
ans =G
ans =A
ans =T
ans =R
ans =H
ans =M
ans =M
ans =B
ans =F
ans =C
ans =F
ans =U
ans =M
ans =U
ans =R
ans =E
ans =A
ans =I
ans =J
ans =I
ans =A
ans =T
ans =I
ans =N
ans =G中文意思为:关心父母,热爱家庭
2,已知密文与密钥,求对应的明文,如将上述的密文翻译成明文,设密钥为A=[1,1;0,3]
end
for n=1:11
D(1,n)=y(2*n-1);
D(2,n)=y(2*n);
end
H=mod(B*D,26);
for u=1:11
for v=1:2
setstr(H(v,u)+64)
end
end
输出的结果为:
ans =G
ans =U
ans =A
ans =N
ans =X
ans =I
ans =N
m=input('输入要加密的明文字母的个数');
if mod(m,2)==0
for i=1:m
a=input('输入明文','s');

实验6 Hill密码

实验6  Hill密码

电子信息工程系实验报告了解加密和解密原理,掌握模运算下的矩阵运算以及数字与字符串之间的转换。

2.实验环境硬件:PC机,基本配置CPU PII以上,内存4G以上;软件:Matlab 版本7.13.实验原理保密通信具有悠久的历史,现在更是被广泛应用于军事、经济、商业等各行各业。

在保密通信中奖原信息称为明码,加密后的信息称为密码。

如果不知道加密方法,一般人无法知道明文内容,这样就起到了保密的作用。

加密和解密的过程可以抽象为一个数学模型。

4.实验内容及结果分析4.1 根据移位加密法编写一段加密和解密的程序,并将所编程序应用于明文“HELLOWORLD”,密钥取3.加密程序代码如下所示:n=input('please input n:');x=input('please input x:');x1=double(x);x2=x1+n;if x2>90x2=65+x2-91;endy=char(x2)当n=3,x=‟HELLOWORLD‟时,y= …KHOORZRUOG‟解密程序代码如下所示:n=input('please input n:');x=input('please input x:');x1=double(x);x2=x1-n;if x2<65x2=90-(64-x2);endy=char(x2)当n=3,x=‟ KHO ORZRUOG‟时,y= …HELLOWORLD ‟4.2 甲方收到与之有秘密通信往来的另一方的一个密文信息,密文内容为: JCFOAMOOLABUOHFAXOIKVLYWQSTPKPYABHROARXAMO按照甲方与乙方的约定,他们之间的密文通信采用Hill2密码,密钥为矩阵1203A ⎡⎤=⎢⎥⎣⎦, 26个字母的表值如正文所示,问这段密文的原始明文是什么? 解密程序代码如下所示:clear;clc;close all ;A=[1 2;0 3];a=mod(det(A),26);for k=0:25if rem(k*a,26)==1b=k;break ;endendB=mod(b*[A(2,2),-A(1,2);-A(2,1),A(1,1)],26);x='JCFOAMOOLABUOHFAXOIKVLYWQSTPKPYABHROARXAMO'x2=double(x);x3=(x2-64).*(x2>64 & x2<90)+(x2-90).*(x2==90);x4=reshape(x3,2,length(x3)/2);x5=mod(B*x4,26);x6=x5(:)';x7=(x6+64).*(x6<26 & x6>0)+(x6+90).*(x6==0);y=char(x7)运行可得y=‟HA VEAMEETINGATNINESUNDAYMORNINGINTHEOFFICE‟。

一阶双曲构建Hill密码及计算机模拟

一阶双曲构建Hill密码及计算机模拟

一阶双曲构建Hill密码及计算机模拟
吴礼燕;姚正安;杜毅
【期刊名称】《现代计算机(专业版)》
【年(卷),期】2008(000)012
【摘要】讨论用PDEs构建Hill密码的方法.以一阶线性非齐次双曲方程混合问题的形式给出加、解密问题的模型,由差分格式算法设计可用于加、解密的矩阵方程.改进的Hill密码系统中,矩阵变化多样、密钥空间大且便于传输和管理.用MatLab 编制软件实现加、解过程并对部分结果进行分析.
【总页数】4页(P41-43,51)
【作者】吴礼燕;姚正安;杜毅
【作者单位】广西民族大学数学与计算机科学学院,南宁,530006;中山大学数学与计算科学学院,广州,510275;中山大学数学与计算科学学院,广州,510275
【正文语种】中文
【相关文献】
1.用MATLAB实现HILL密码的加密与解密 [J], 连德忠;吴文城;李美莲;李松幡;杨涛;王杰锋;尤齐春
2.一种基于Hill密码思想的数据库密码编码算法 [J], 王未今;元继学
3.一阶双曲构建Hill密码及计算机模拟 [J], 汤永龙;黄锦
4.一阶双曲构建分组大小可变的分组密码 [J], 吴礼燕
5.自可逆矩阵在Hill密码算法中的应用 [J], 杨录峰
因版权原因,仅展示原文概要,查看原文内容请购买。

基于Hill密码的数字图像加密算法

基于Hill密码的数字图像加密算法

基于Hill密码的数字图像加密算法
刘吉伟
【期刊名称】《电脑编程技巧与维护》
【年(卷),期】2010(000)015
【摘要】低阶的加密矩阵具有易于计算的特点,应用于加密将使算法效率提高.混沌序列具有容易生成、对初始条件敏感等特点,可用于生成大量的低相关度的低阶矩阵.提出了一种以古典的Hill密码为理论基础的图像加密算法,通过Logistic映射生成相应低阶加密矩阵,并利用其进行数字图像加密,得到了较好的结果.
【总页数】3页(P81-83)
【作者】刘吉伟
【作者单位】
【正文语种】中文
【相关文献】
1.一种基于流密码和遗传算法的高效数字图像加密算法探索 [J], 牛振喜
2.基于有限域逆二次特征问题动态设计的HILL密码体系 [J], 黄贤通
3.一种基于Hill密码思想的数据库密码编码算法 [J], 王未今;元继学
4.基于矩阵问题实现的具有数字签名功能的Hill密码体制 [J], 宋明明;涂登平
5.基于有限域中的一类逆二次特征问题设计的新HILL密码体系 [J], 严深海
因版权原因,仅展示原文概要,查看原文内容请购买。

HILL加密C程序实现

HILL加密C程序实现

HILL加密C程序实现
刘生福;杨桂琴;江山
【期刊名称】《牡丹江师范学院学报(自然科学版)》
【年(卷),期】2006(000)003
【摘要】主要针对传统矩阵加密/解密处理的一种特殊多字母代换体制:HILL加密方案进行描述,给出了加密/解密过程的理论概述,分析了HILL方案设计加密/解密算法.用C语言实现程序.
【总页数】3页(P9-11)
【作者】刘生福;杨桂琴;江山
【作者单位】牡丹江师范学院,黑龙江,牡丹江,157012;牡丹江师范学院,黑龙江,牡丹江,157012;牡丹江师范学院,黑龙江,牡丹江,157012
【正文语种】中文
【中图分类】TP3
【相关文献】
1.用MATLAB实现HILL密码的加密与解密 [J], 连德忠;吴文城;李美莲;李松幡;杨涛;王杰锋;尤齐春
2.用逆向思维求Hill密码加密解密时的矩阵 [J], 徐小华
3.DES数据加密算法的VC程序实现 [J], 吕莉
4.DES数据加密算法的VC程序实现 [J], 吕莉
5.Hill加密算法的改进 [J], 王容;廖群英;王云莹;曾茂俊;宁宇光;洪思奥
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Hill密码的加密,解密与破译摘要对于问题1.1:本文采用Hill密码通信,对明文进行加密。

利用已知的密钥矩阵,2首先,将密文转化为对应表值数字。

其次,对密文的数字转化为矩阵。

最后,对明文解密。

对于问题1.2:本文给出一组明文和密文,二者满足构成密钥的条件,通过求解的到密钥,并进行问题1.1的解题过程破译这段密文。

Hill密码矩阵A,并求出该矩阵的值是否与26互素,加以对于问题2.1:本文给出4判断。

若互素则能成为密钥,否则不能构成密钥。

对于问题2.2:利用问题2.1所给的密码矩阵A,按照问题1.1的解题思路,将得到的密文解密。

Hill密码的密文和其对应的明文,通过检验二者是否对于问题2.3:本文给出一段4满足构成密钥的条件,若满足解的密钥,并写出求解过程;若不满足加以说明。

对于问题3:本文给出明文频数最高的字母TH和HE,及密文频数最高的字母RH和NI。

两两组合得到两组“密钥”,并检验它们是否满足构成密钥的条件,若满足则解除密钥。

Hill密对于问题4:本文给出频数最高的相邻明文字母KE和相邻密文字母LK,采用2码通信,利用所给字母与其他字母组合,构造2×2的矩阵,并检验是否满足构成密钥的条件,加以排除得到所要的密钥。

若有满足条件的矩阵,破译所给密文。

Hill密码通信,根据26个字母搭配出2×2的所有矩阵,利对于问题5:本文采用2用矩阵的值与26互质,加以排除不符合条件的矩阵,并求出满足条件的密钥,破译该段密文,再利用密文是否通顺加以排除,得到所要的明文和密钥。

关键字密钥 mod(26)逆 mod(26)倒数一、Hill2密码的数学模型的主要符号说明w Hill密钥的维数A 密钥矩阵S 明文Y 密文m 所用的表值编号YW 哑文二、Hill2密码的数学模型密码是一种传统的密码体制加密过程的具体步骤如下:Hill2(1)、根据明文字母的表值将明文信息用数字表示,设明文信息只需要26个拼音字母A~Z(也可能不止26个,如还有数字、标点符号等),通信双方给出这26个字母表值(见表10.1明文字母的表值)。

(2)、选择一个二阶可逆整数方阵A,称为Hill密码的加密矩阵,它是这个加密体2制的“密钥”(是加密的关键,仅通讯双方掌握)。

问题(1)已给出了这个二阶矩阵。

(3)、将明文字母依次逐对分组。

Hill密码的加密矩阵为二阶矩阵,则明文字母22密码,则每n个明文字母为一组)。

若最后一组只有一个字母,个一组(可以推广至Hilln则补充一个没有实际意义的哑字母,这样使每一组都由2个明文字母组成。

查出每个明文字母的表值,构成一个二维列向量α。

(4)、A乘以α,得一新的2维列向量β=Aα,由的两个分量反查字母表值得到的两个字母即为密文字母。

以上4步即为Hill密码的加密过程。

解密过程,即为上述2过程的逆过程。

1、实际问题:1.1、问题陈述甲方收到与之有秘密通信往来的乙方的一个密文信息,密文内容:W O W U Y S B A C P G Z S A V C O V K P E W C P A D K P P A B U J C Q L Y X Q E Z A A C P P按照甲方与乙方的约定,他们之间的密文通信采用2Hill 密码,密钥为二阶矩阵1203A ⎛⎫= ⎪⎝⎭,且汉语拼音的26个字母与0-25之间的整数建立一一对应的关系,称之为字母的表值,具体的表值见表1,问这段密文的原文是什么? 1.2、问题分析: 首先给出如下定义:定义 1:设A 为定义在集合m Z 上的 n 阶方阵,若存在一个定义在m Z 上的方阵B ,使得(mod 26)AB BA E ==则称A 模m 可逆,B 为A 的 模 m 逆矩阵,记为 1(mod )B A m -=定义 2:设m a Z ∈,若存在m b Z ∈使得 1ab =,则称b 为a 的 模m 倒数 或乘法逆,记作 1(mod )b a m -=。

由于所有加密与解密过程都是在模26意义下进行的,所以要对一段明文进行加密,必须使得密钥矩阵满足A 与26是互素的。

根据程序画出流程如图如下:1.3程序运行结果:>>Y =’WOWUYSBACPGZSA VCOVKPEWCPADKPPABUJCQL YXQEZAACPP’; >> m=1; >> A=[1 2;0 3]; >> YW='XYZ';>> S=jie_mi2(Y ,A,YW,m) S =MEIGUOJIANGZAITAIPINGYANGJINXINGHAIDIHESHIYANN >> Y=jia_mi2(S,A,YW,m) Y=WOWUYSBACPGZSA VCOVKPEWCPADKPPABUJCQL YXQEZAACPP 2.1、问题陈述甲方截获了一段密文:O J W P I S W A Z U X A U U I S E A B A U C R S I P L B H A A M M L P J J O T E N H 经分析这段密文是用2Hill 密码编译的,且这段密码的字母UCRS 一次代表字母TACO ,问能否破译这段密文的内容? 2.2、问题分析根据题意明文与密文存在一一对应关系:设a c A b d ⎛⎫= ⎪⎝⎭,26,,,a b c d Z ∈且存在:T C U R A A O CS ⎛⎫⎛⎫= ⎪ ⎪⎝⎭⎝⎭经过查表得到:2032118115319a c b d ⎛⎫⎛⎫⎛⎫= ⎪⎪ ⎪⎝⎭⎝⎭⎝⎭所以,用穷举法得到满足上述等式的密钥矩阵,再进一步判断A 是否与26互素,若互素则可以求出在26意义下的模倒数。

模倒数表如下:表1显然,由上式所确定的密钥矩阵A 是惟一的,通过11*(mod 26)(mod 26)A A A --=⨯求解出模26意义下的密钥逆矩阵1A -进行解密。

2.3、程序运算结果 >> a='TACO'; >> b='UCRS'; >> m=1;>> A=qiujie_miyao(a,b,m) A =1 1 0 3>> Y='OJWPISWAZUXAUUISEABAUCRSIPLBHAAMMLPJJOTENH'; >> YW2='XYZ'; >> S=jie_mi2(Y ,A,YW,m) S =CLINTONISGOINGTOVISITACOUNTRYINMIDDLEEASTT二、实验任务问题1 1.1、问题陈述在问题(2)中,若已知密文的前4个字母OJWP 分别代表TACO ,问能否将此密文破译?不能,因为解得的密钥的行列式与26不互素,不能得到对应的模26逆矩阵。

求解密钥矩阵流程图如下1.2、运行结果 >> a='TACO'; >> b='OJWP'; >> m=1;>> A=qiujie_miyao(a,b,m) A =16 724 24 >> D=det(A) D = 216 >> n=gcd(D,26) n = 2问题二利用2Hill密码体制的原理,根据给定的26个英文字母的乱序表值(见表2),设计与建立4Hill密码体制的加密,解密与破译框图并建立必要的计算机程序,设英文26个字母以下面的乱序表与26Z中的整数对应:表22.1.1、问题陈述设8695695105849106114A⎛⎫⎪⎪=⎪⎪⎝⎭,验证矩阵A能否作为4Hill密码体制的加密矩阵,用框图画出你的验算过程,并编写相应的计算机程序。

2.1.2、问题分析A可用作密钥,因为其行列式值为-1,与26互素。

2.1.3、运行结果编程计算得A的模26逆矩阵如下:>> A =invmod(A)A =23 20 5 12 11 18 12 20 6 2525 2 22 25det(A)|A| =-1.00002.2.1、问题陈述设明文为HILLCRYPTOGRAPHICSYSTEMISTRADIT I ONAL.利用上面的表值与加密矩阵给明文加密,并将得到的密文解密。

画出加密与解密过程的框图并编写相应的计算机程序。

框图如下:2.2.2、运行结果>> A=[8 6 9 5;6 9 5 10;5 8 4 9;10 6 11 4];>> YW='Z';>> m=2;>> w=4;>> S='HILLCRYPTOGRAPHICSYSTEMISTRADITIONAL';>> Y=jia_mi2(S,A,YW,m,w)Y =KEGTKPNJKYXRLAOLMZTPVYTUNHZSCEGDZRPZ>> S=jie_mi2(Y,A,YW,m,w)S =HILLCRYPTOGRAPHICSYSTEMISTRADITIONAL2.3.1、问题陈述Hill密码的密文为:JCOWZLVBDVL E QMXC,对应的明文已知在上述给定表值下的一段4为DELAYOPERATIONSU,能否确定对应的加密矩阵?给出你的判断过程。

能。

2.3.2、运行结果>> a='DELAYOPERATIONSU';>> b='JCOWZLVBDVLEQMXC';>> m=2;>> w=4;>> A=qiujie_miyao(a,b,m,w)A =8 6 9 56 9 5 105 8 4 910 6 11 4问题33.1、问题重述Hill密码体系,其中出现频数最高的双字母是RH和NI,而在明文语设已知一份为2言中,出现频数最高的双字母为TH和HE。

由这些信息按表3给出的表值能得到什么样的加密矩阵?表33.2、问题分析不能,因为两组组合解得的两个矩阵的行列式值都不与26互素,不能得到对应的模26逆矩阵。

3.3、运行结果>> a='THHE';>> b='RHNI';>> m=3;>> w=2;>> A=qiujie_miyao(a,b,m,w)A =3 2424 25>> D=gcd(det(A),26)D =1>> b='NIRH';>> A=qiujie_miyao(a,b,m,w)>> b='NIRH';A=qiujie_miyao(a,b,m,w)A =11 249 25>> D=gcd(det(A),26)D =1问题44.1、问题重述如下的密文据表1以Hill 2加密,密文为VIKYNOTCLKYRJQETIRECVUZLNOJTUYDIMHRCFITQ已获知其中相邻字母LK 表示字母KE ,试破译这份密文。

相关文档
最新文档