Hill密码的加密论文(内含matlab程序代码)
Hill密码的加密,解密与破译
摘要
对于问题1.1:本文采用密码通信,对明文进行加密。利用已知的密钥矩阵,首先,将密文转化为对应表值数字。其次,对密文的数字转化为矩阵。最后,对明文解密。
对于问题1.2:本文给出一组明文和密文 ,二者满足构成密钥的条件,通过求解的到密钥,并进行问题1.1的解题过程破译这段密文。
对于问题2.1:本文给出密码矩阵A,并求出该矩阵的值是否与26互素,加以判断。若互素则能成为密钥,否则不能构成密钥。
对于问题2.2:利用问题2.1所给的密码矩阵A,按照问题1.1的解题思路,将得到的密文解密。
对于问题2.3:本文给出一段密码的密文和其对应的明文,通过检验二者是否满足构成密钥的条件,若满足解的密钥,并写出求解过程;若不满足加以说明。
对于问题3:本文给出明文频数最高的字母TH和HE,及密文频数最高的字母RH和NI。两两组合得到两组“密钥”,并检验它们是否满足构成密钥的条件,若满足则解除密钥。
对于问题4:本文给出频数最高的相邻明文字母KE和相邻密文字母LK,采用密码通信,利用所给字母与其他字母组合,构造2×2的矩阵,并检验是否满足构成密钥的条件,加以排除得到所要的密钥。若有满足条件的矩阵,破译所给密文。
对于问题5:本文采用密码通信,根据26个字母搭配出2×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,称为Hill2密码的加密矩阵,它是这个加密体制的“密钥”(是加密的关键,仅通讯双方掌握)。问题(1)已给出了这个二阶矩阵。
(3)、将明文字母依次逐对分组。Hill2密码的加密矩阵为二阶矩阵,则明文字母2个一组(可以推广至Hilln密码,则每n个明文字母为一组)。若最后一组只有一个字母,则补充一个没有实际意义的哑字母,这样使每一组都由2个明文字母组成。查出每个明文字母的表值,构成一个二维列向量α。
(4)、A乘以α,得一新的2维列向量β=Aα,由的两个分量反查字母表值得到的两个字母即为密文字母。 以上4步即为Hill2密码的加密过程。解密过程,即为上述过程的逆过程。
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
按照甲方与乙方的约定,他们之间的密文通信采用密码,密钥为二阶矩阵,且汉语拼音的26个字母与0-25之间的整数建立一一对应的关系,称之为字母的表值,具体的表值见表1,问这段密文的原文是什么?
1.2、问题分析:
首先给出如下定义:
定义 1:设为定义在集合上的 阶方阵,若存在一个定义在上的方阵,使得
则称模可逆,为的 模逆矩阵,记为
定义 2:设,若存在使得 ,则称为的 模倒数 或乘法逆,记作 。
由于所有加密与解密过程都是在模26意义下进行的,所以要对一段明文进行加密,必须使得密钥矩阵满足与26是互素的。
根据程序画出流程如图如下:
1.3程序运行结果:
>>Y =’WOWUYSBACPGZSAVCOVKPEWCPADKPPABUJCQLYXQEZAACPP’;
>> 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=
WOWUYSBACPGZSAVCOVKPEWCPADKPPABUJCQLYXQEZAACPP
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 经分析这段密文是用密码编译的,且这段密码的字母UCRS一次代表字母TACO,问能否破译这段密文的内容