数学实验—Hill密码的加密、解密与破译

合集下载

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

Hill算法实验报告

Hill算法实验报告

}
注意:其中的bs为各小矩阵的行列式的值。

以上两段代码为关于如何进行逆矩阵转换的具体实现。

4.输入与输出:
本算法的输入为如下三项:
a. 已知明密文对每对的字符个数;
b. 已知的明文对(若干);
c. 与之相对应的密文对。

本算法的输出为如下三项:
a. 行代换后的明文矩阵;
b. 明文矩阵的逆矩阵;
c. 最终解得的密钥矩阵K。

5.最终运行结果:
输入如下所述:
已知明密文对每对的字符个数:2
已知的明文:fr,与之相对的密文:PQ;
已知的明文:id,与之相对的密文:CF;
输出为下图所示:
出现的问题以及解决方案:
问题1:所做出的密钥矩阵K中元素的数值是小数。

解决方案:由于忽视了每次矩阵的mod26计算,造成了最终得出的密钥矩阵K中的小数。

只需对每一个被除数每次+26直到除尽即可。

最后统一进行mod 26直到最简。

实验十-Hill密码的加密、解密与破译

实验十-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]
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密码加密例题

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密码体系

实验报告书-Hill密码体系
bkopgatrhmmbfcsdjccauu经分析这段密文是用hill2密码编译的且这段密文的字母sdjc依次代表字母ijia请破译这段密文的内容matlab命令结果的编写通用的hill密码程序并存放在hillm文件中hill程序会调用translatem文件中的translate函数用来对函数用来对ascii码串和字符串的转换
3
disp('输入密钥,按行输入'); A=[]; for i=1:n for j=1:n A(i,j)=input(''); end end if gcd(det(A),26)~=1 error('密钥矩阵模 26 不可逆,无法实现 Hill 密码'); end disp('输入所要加密的明文(A-Z) :'); message1=input('','s'); %translate 函数功能为 返回 A*message1 message2=translate(A,message1,n); disp(['加密后密文为:',message2]); break; case 2 %输入密钥 disp('输入密钥矩阵的阶数:'); n=input(''); disp('输入密钥,按行输入'); A=[]; for i=1:n for j=1:n A(i,j)=input(''); end end X=[1 0 9 0 21 0 15 0 3 0 19 0 0 0 7 0 23 0 11 0 5 0 17 0 25 0]; %按顺序存放 1-25 的 模 26 的倒数,0 代表无倒数 d=mod(det(A),26); %求矩阵的行列式并对 26 取模 if d==0 x=0; else x=X(d); end AA=[];%AA 为 A 的模 26 逆矩阵 if x==0 %判断矩阵是否模 26 可逆 error('密钥矩阵模 26 不可逆,无法实现 Hill 密码'); end B=det(A)*inv(A); %A 的伴随矩阵 AA=mod(round(x*B),26); disp('A 的模 26 的逆矩阵为 AA:'); disp(AA);

Hill密码

Hill密码
称A为 模m可逆,B为A的模m 逆矩阵,记
--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

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

Hill密码的加密、解密与破译
Hill密码的加密、解密与破译
一、问题背景和实验目的
保密通讯在军事、政治、经济斗争和竞争中的重 要性是不言而喻的.他采用的一种方式是:将原来的信 息(称为 明文) 经过加密,变成密文之后发送出去,使 敌方即使得到密文也读不懂,而合法的接收者收到密文 之后却可以按照预先约定好的方法加以解密,再翻译成 明文.而敌方却要千方百计从密文破译出明文来.一方 如何编制密码使之不易被破译,另一方则要找到其弱点 加以破译,这就构成了密码学的主要内容.
a (modm)(modm) a a (mod m ) a (mod m ) 1 2 1 2 * *
模运算意义下的矩阵逆概念
定义1 对于一个元素属于集合Gm的n阶方阵A,若 存在一个元素属于Gm的方阵B,使得 A B=B A=E(mod m) x 则称A为模m可逆,B为A的模 m的逆矩阵,记为 1 A B= (mod)。 定义2 对Gm的一个整数x,存在Gm的一个整数y, 使得xy=1(mod m),则称y为x的乘法逆(或 1 者称为倒数),记y= (x mod m)。 可以证明,如果x与m无公共素数因子,则x有唯 一的模m倒数 。
加 密 过 程 的 具 体 步
A乘以 ,得一新的2维列向量 Aa ,由 的两个分量反查字母表值得到的两 个字母即为密文字母。

例如 明文为 SHUXUEJIANMOJINGSAI , 加密矩阵为A=1 2 0 3Fra bibliotek 。
密文为
IX QT EO BA CP QS BA BU UC AA 在查字母表时利用了模运算概念 关于模运算有如下运算律

1
据此我们不加证明地给出如下命题: 命题 元素属于Gm的方阵A模m可逆的充要条件 是: m和detA没有公因子。易见,所选加密矩阵 必须符合模A可逆的条件。

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

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

Z m = {0,1, 2,⋯ , m − 1} 称为模m的剩余集
设 a , b 为两个整数,
a + − b (mod m) × + − b(mod m) (mod m) ×
简单的加密解密过程模型
发送者 明文 加密器 密文
普 通 信 道
接收者
明文
解密器 窃听、干扰
HILL2密码
明文分组(两个一组),按组转换成密文 同一字母在不同组中所对应密码不同
HILL2密码的加密与解密
★ 假设要加密的明文是由26个字母所构成 ★ 将每个明文字母与 0 – 25 的一个数字建立
1–1对应关系,称为明文字母的表值
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
★ 通过加密矩阵得到 {β i },而 β i
1 2 A= 0 3
★ 将明文字母依次按每两个字母一组查出其表
= Aα i (mod 26)
★ 查向量βi 的字母表值,即得到密文 ★ 利用加密矩阵的逆矩阵,由密文得到明文
αi = A βi
−1
关于模运算 (mon26)
模 m 等价 设 a , b为两个整数, 若 a − b = km, k ∈ Z 记作 a = b(mod m) 称 a 模 m 等价于b, 剩余集 运算律
密文向量
5 18 11 9 25 25 5 12 8 11 13 2 24 10 3 5 19 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
将字母转化为数字: function Y=letter_num(X) %按照数学实验书 P111 表 10.4 将字母转化为数字 %参数说明,输入项:X 由每个字母组成的字符串 % 输出项:Y 由每个数字组成的行向量 %例如 A B C D 对应的数字是 5 23 2 20 %其调用格式为:Y=letter_num('ABCD'). n=length(X); if rem(X,2)~=0 X(n+1)=X(n); n=n+1; end Y=zeros(1,n); for i=1:n if X(i)=='A' Y(i)=5; elseif X(i)=='B' Y(i)=23; elseif X(i)=='C' Y(i)=2; elseif X(i)=='D' Y(i)=20; elseif X(i)=='E' Y(i)=10;
二、 建立数学模型 2.加密过程:
黔南民族师范学院数学实验报告
(1).根据所给的明文把其进行依次逐对分组,然后再根据所给字母表值 写成一个数据的二阶矩阵 如 I 18 的形式,如果最后一组只有一个字母
H 4
则补充一个没有意义的哑字母。 ( 2 ) . 选 择 A1 作 为 加 密 矩 阵 即 加 密 矩 阵 的 密 钥 , 然 后 用
明文 加密矩阵 密文 普通信道 敌方截获 加密矩阵的逆矩阵 明文
3. (1).把所截获的密文 SDJC 进行依次逐对分组,然后再根据所给字母表值 写成数据的二阶矩阵 1 : D 4
I 9 IJIA 的矩阵 1 : J 2 10 I 9 A 1 x2 所有按解密过程有 B * 1 1 和 B * 2 2 x4 S 19 J 10 2 : C 再给出对应明文 3
黔南民族师范学院数学实验报告 Y(i)=9; else error('请正确输入 A 到 Z 的字母') end end end function Y=letter_num(X) %按照数学实验书 P111 表 10.4 将字母转化为数字 %参数说明,输入项:X 由每个字母组成的字符串 % 输出项:Y 由每个数字组成的行向量 %例如 A B C D 对应的数字是 5 23 2 20 %其调用格式为:Y=letter_num('ABCD'). n=length(X); if rem(X,2)~=0 X(n+1)=X(n); n=n+1; end Y=zeros(1,n); for i=1:n if X(i)=='A' Y(i)=5; elseif X(i)=='B' Y(i)=23; elseif X(i)=='C' Y(i)=2; elseif X(i)=='D' Y(i)=20; elseif X(i)=='E' Y(i)=10; elseif X(i)=='F' Y(i)=15; elseif X(i)=='G' Y(i)=8; elseif X(i)=='H' Y(i)=4; elseif X(i)=='I'
验证矩阵 Ai(i = 1; 2; 3; 4)能否作为 Hill2 密码体制的加密矩阵. 2. 设明文为 HILL CRY PTOGRAPHIC SY STEM IS TRADITIONAL 利用上面的表 值, 任选一个加密矩阵 Ai 给此明文加密, 并将得到的密文解密. 画出加密与解密过程 的框图并编写相应的 Matlab 程序. 3.
- II -
Hill 密码的加密、解密与破译
可以判断,A1 和 A4 能作为加密矩阵。 2、2
求倒数的程序:
function b=Hill2_countdown(a) %在 mod 26 情况下求倒数 % if a==1 b=1; elseif a==3 b=9; elseif a==5 b=21; elseif a==7 b=15; elseif a==9 b=3; elseif a==11 b=19; elseif a==15 b=7; elseif a==17 b=23; elseif a==19 b=11; elseif a==21 b=5; elseif a==23 b=17; elseif a==25; b=25; else error('该数在 mod 26 下没有倒数')
黔南民族师范学院数学实验报告
end end
判断矩阵 A 是否为加密矩阵并求其逆矩阵:
function A1=Hill2_key(A) %判断 A 矩阵是否能作为加密矩阵并求逆矩阵 a=mod(det(A),26); if a==13|rem(a,2)==0 error('A 矩阵不能作为加密矩阵') end b=Hill2_countdown(a); A1=mod((b*[A(2,2) -A(1,2);-A(2,1) A(1,1)]),26); end
- IV -
Hill 密码的加密、解密与破译 elseif X(i)=='F' Y(i)=15; elseif X(i)=='G' Y(i)=8; elseif X(i)=='H' Y(i)=4; elseif X(i)=='I' Y(i)=18; elseif X(i)=='J' Y(i)=25; elseif X(i)=='K' Y(i)=0; elseif X(i)=='L' Y(i)=16; elseif X(i)=='M' Y(i)=13; elseif X(i)=='N' Y(i)=7; elseif X(i)=='O' Y(i)=3; elseif X(i)=='P' Y(i)=1; elseif X(i)=='Q' Y(i)=19; elseif X(i)=='R' Y(i)=6; elseif X(i)=='S' Y(i)=12; elseif X(i)=='T' Y(i)=24; elseif X(i)=='U' Y(i)=21; elseif X(i)=='V' Y(i)=17; elseif X(i)=='W' Y(i)=14; elseif X(i)=='X' Y(i)=22; elseif X(i)=='Y' Y(i)=11; elseif X(i)=='Z'
黔南民族师范学院
数学实验报告
题目
Hill 密码的加密、解密与破译
制作成员
李成燕 黎庭庭 孙礼磊
班级
学号 1105015152
任务
问题求解和程序设计 流程 建立数学模型 上机实Fra bibliotek结果的分析 与结论
11 数应(1) 班
110501535 1105015119
2013 年 5 月 26 日
Hill 密码的加密、解密与破译
- VI -
Hill 密码的加密、解密与破译 Y(i)=18; elseif X(i)=='J' Y(i)=25; elseif X(i)=='K' Y(i)=0; elseif X(i)=='L' Y(i)=16; elseif X(i)=='M' Y(i)=13; elseif X(i)=='N' Y(i)=7; elseif X(i)=='O' Y(i)=3; elseif X(i)=='P' Y(i)=1; elseif X(i)=='Q' Y(i)=19; elseif X(i)=='R' Y(i)=6; elseif X(i)=='S' Y(i)=12; elseif X(i)=='T' Y(i)=24; elseif X(i)=='U' Y(i)=21; elseif X(i)=='V' Y(i)=17; elseif X(i)=='W' Y(i)=14; elseif X(i)=='X' Y(i)=22; elseif X(i)=='Y' Y(i)=11; elseif X(i)=='Z' Y(i)=9; else error('请正确输入 A 到 Z 的字母')
(2).设一个二阶矩阵 B=
x1 x3
即有
19 x1 4 x 2 9 19 x3 4 x 4 10

10 x1 3 x 2 9 10 x3 3 x 4 1
然后解出结果后模掉 26 得出 B 即解密矩阵。 (3) .按照求出的 B, 把密文分组然后再根据所给字母表值写成一个数据 的二阶矩阵,然后左乘以 B 就可以得到明文。 三、 问题求解和程序设计流程 2、1 分别计算 4 个矩阵行列式的值为:3,22,4,21
Hill 密码的加密、解密与破译(A)
一、 实验目的
1. 复习线性代数, 矩阵, 线性空间与线性变换等概念和运算. 2. 熟悉 Hill 密码体制的加密, 解密和破译过程. 3. Hill 密码体制的加密, 解密和破译过程的 Matlab 编程实践.
实验问题
Hill2 密码的加密, 解密和破译 1.利用所介绍的 Hill2 密码体制原理, 根据给定的 26 个英文字母的乱序表值(表 A1) 表 A1: 26 个英文字母的乱序表值
相关文档
最新文档