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密码加密解蜜时矩阵的求法
c =(t I t m + + z fm d 6 l 七l + 2 : L k m ) o 2 ,
C 2=(2 +k2 + +k, ) d 6 I ml 2m2 L 2 mo 2 m,
例 一 :如 取 =
l 1 2 3
6 4 6
令 =1
2 1l 3 8

0 1 b 2 3 d l 5 p 1 6 q 1 7 4
表 1
5 f l 8 6 g l 9 t 7 h 2 0 21 8 9 J 2 2 1 0 k 23 l l l 2 4 y 2 5 1 2
~~一 Hi 密码 快速 加 密和解 密。 。。实现 l 实 用 第~ 智 l 关 键词 :Hi 密码 ;加 密 ;解 密;Maa70 l l tb . l
1 引 言
在 计算 机 网络 中 ,为 了保 证 数 据 的 安 全 .常 常 要 对 数 据 进 行 加 密 和 解 密 。 对 数 据进 行加 密 的 方法 很 多 ,H l 密 码 是 其 中 i l
字 。并 令其 行 列 式 的 值 等 于正 一 或 负 一 .可得 一 个 二 元 一次 或 二 元 二 次不 定 方 程 , 求 其 正 整数 解 。 现举 几 例 加 以说 明 。 可
4 8 v 6 9
l ~ Hi 加 密 算 法 的 基 本 思 想 是 将 个 明 文 字 母 通 过线 性 变 换 . l 将 它们 转 换 为个 密 文 字母 。 解 密 只 要 作 一 次 逆 变 换 就 可 以 了 。 ~ 密 钥 就 是 变 换 矩 阵 本 身 。 即 设 明 文 为 M =m m … , l2 ,经 过 线 ~变 换 得 密 文 C= k㈣ = f.… ・J 性 E c 2 . C。 ~ 其 中 一

hill密码算法

hill密码算法

hill密码算法
Hill密码算法是一种基于线性代数的密码算法,旨在实现块密码的加密和解密操作。

它由美国数学家莱斯利·斯普兰特·希尔(Leslie S. Hill)于1929年提出。

Hill密码算法的主要思想是利用矩阵运算和模运算来实现加密和解密过程。

算法的关键在于定义一个矩阵作为密钥,然后将明文分成固定长度的块,每个块用矩阵乘法进行加密或解密。

具体步骤如下:
1. 选择一个密钥矩阵K。

矩阵K的行列数应该是一个合法的平方数,一般为2x2或3x3。

2. 将明文分成长度为密钥矩阵行(列)数的块。

每个块可以表示为一个列向量。

3. 对于加密操作,将每个明文块表示为一个列向量X。

计算密文块C = K * X % 26,其中% 26表示模运算。

得到的密文块也表示为一个列向量。

4. 对于解密操作,将每个密文块表示为一个列向量C。

计算明文块X = K^-1 * C % 26,其中K^-1表示矩阵K的逆矩阵。

得到的明文块也表示为一个列向量。

5. 将每个块转换为对应的字母或字符,即完成加密或解密操作。

需要注意的是,密钥矩阵K的选择很重要,它应该是一个可逆矩阵,即存在逆矩阵K^-1,使得K * K^-1 = I,其中I为单位矩阵。

否则,加密和解密操作将无法正确进行。

Hill密码算法的优点是可以同时处理多个字符,提高了加密的效率和安全性。

然而,它的缺点是对于大型密钥矩阵的逆矩阵计算较为困难,且算法的安全性依赖于密钥的保密性。

hill密码-矩阵应用

hill密码-矩阵应用

13
信源 → 加密 → 信道 → 解密 → 信宿
1
1929年,希尔(Hill)通过矩阵理论对传输信息 年 希尔( 矩阵理论对传输信息 )通过矩阵理论 进行加密处理,提出了在密码史上有重要地位的希尔 进行加密处理,提出了在密码史上有重要地位的希尔 加密算法。下面我们介绍一下这种算法的基本思想。 加密算法。下面我们介绍一下这种算法的基本思想。 【准备】若要发出信息 action,现需要利用矩阵 准备】 , 乘法给出加密方法和加密后得到的密文, 乘法给出加密方法和加密后得到的密文,并给出相应 的解密方法。 的解密方法。
2
【假设】(1)假定 个英文字母与数字之间有以 假设】 )假定26个英文字母与数字之间有以 下的一一对应关系: 下的一一对应关系:
A վ 1
B վ 2
C վ 3
⋯ ⋯ ⋯
X վ 24
Y վ 25
Z վ 26
个字母分为一组, (2)假设将单词中从左到右,每3个字母分为一组, )假设将单词中从左到右, 个字母分为一组 并将对应的3个整数排成 维的行向量,加密后仍为3 个整数排成3维的行向量 并将对应的 个整数排成 维的行向量,加密后仍为 维的行向量,其分量仍为整数。 维的行向量,其分量仍为整数。
是事先约定的, 称为解密的钥匙 解密的钥匙, 可逆矩阵 A 是事先约定的,这个可逆矩阵 A 称为解密的钥匙, 或称为“密匙” ).即用 或称为“密匙” ).即用
1 −1 0 A −1 = 2 − 2 − 1 −1 1 1
从密码中恢复明码: 从密码中恢复明码:
1 −1 67 1 67 0 81 9 A−1 44 = 2 −2 −1 44 = 3 , A−1 52 = 15 43 −1 1 1 43 20 43 14

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密码算法原理

hill密码算法原理
Hill密码算法是一种基于线性代数的分组对称密码算法,它的
核心原理是将明文分成几个字母一组,然后利用矩阵乘法来实现加密和解密过程。

具体原理如下:
1. 密钥生成:选择一个正整数n,然后随机生成一个n×n的矩
阵K作为密钥矩阵。

2. 加密过程:
a. 将明文分组,每组n个字母。

如果最后一组不足n个字母,可以通过添加空格等方式补齐。

b. 将每个明文分组转换为一个列向量X,即向量X的每个元
素对应一个字母的数值,可以使用ASCII码表进行转换。

c. 对于每个明文向量X,进行矩阵乘法运算:C = K * X,其
中C为密文向量。

d. 将得到的密文向量C转换回字母形式。

3. 解密过程:
a. 将密文分组,每组n个字母。

b. 对于每个密文向量Y,进行矩阵乘法运算:X = K^-1 * Y,其中X为解密后的明文向量。

c. 将得到的明文向量X转换回字母形式。

需要注意的是,密钥矩阵K必须是可逆的,否则解密过程无
法正确进行。

同时,由于矩阵乘法运算的特性,对于某些明文分组,可能存在明文和密文相同的情况,这被称为"Hill同态"。

为了避免这种情况,通常会对字母表进行扩展或使用其他技巧进行加密。

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

(1). 破译以下Hill3体制的密文gvknipiwyhzrqfsmjbknsqfcdexpkrmspoducuqaixhmrdknscqydxhmryrzjijjmosfdnqtec xeikmsozzzlfnbspqaoipxaixmddorzxtsgnmmspqnemlirgeoslaqsbsplcsmfmegjixdbnxkt enixilqylelgzwplydxddvbfstzvyzjaqsxnfnptniilyreeeamdmjzwghjopvblfqlttbhnrnva思路分析:○1将密文输出成对应的ASCII码,减去97得到a~z范围为0~25,然后分成3*75的矩阵。

○2选取1*3矩阵[0 0 0]到[25 25 25]总共26*26*26个乘以上述矩阵并模26得到1*75的矩阵,统计0~25的个数记为O i(i为0~25)。

○3利用公式计算出g值,并对其进行由大到小排序,选出前50组对应的矩阵。

○4在这前50组中任取3组组成3*3矩阵(排除有约数有2和13的),右乘3*75矩阵,然后计算出0~25出现的频率(近似看成概率),根据统计规律比较,选出可能的明文。

○5从这些可能的明文中按照意义找出需要的明文。

字母统计规律程序代码如下:clc;clear all;fid=fopen('ciphertext.txt'); %打开要读的文本ciphertext=fread(fid)-97; %读取文本,并表示成0~25之间的数fclose(fid); %关闭文本A=reshape(ciphertext,3,75); %将明文矩阵重新排列成3*75的矩阵P=[8.167;1.492;2.782;4.253;12.702;2.228;... %统计概率矩阵2.015;6.094;6.966;0.153;0.772;4.025;...2.406;6.749;7.507;1.929;0.095;5.987;...6.327;9.056;2.758;0.978;2.360;0.150;...1.974;0.074]./100;G=zeros(17576,1); %记录g的值H=zeros(17576,3); %记录对应的矩阵for i=0:25 %用0~25产生26*26*26中矩阵for j=0:25for k=0:25B=[i j k];C=B*A;D=mod(C,26);O=zeros(26,1); %分别统计0~25的个数num=1;den=1;for m=1:26for n=1:75if D(n)==m-1O(m)=O(m)+1;endendnum=P(m)^O(m)*num; %计算分子den=factorial(O(m))*den;%计算分母endG(676*i+26*j+k+1,1)=num/den;H(676*i+26*j+k+1,:)=B;endendend[X,Y]=sort(G,'descend'); %Y表示按从大到小对应的下标M=Y(1:50); %找出前50大数对应的下标for i=1:50F(i,:)=H(M(i),:); %求出最大值所对应的矩阵Bendindex=nchoosek(1:10,3); %产生所取矩阵的行for i=1:120Q=[F(index(i,1),:);F(index(i,2),:);F(index(i,3),:)]; %得到可能的加密矩阵if (mod(det(Q),2)~=0)&&(mod(det(Q),13)~=0)plaintext=mod(Q*A,26);E=reshape(plaintext,225,1); %将可能的明文重排n=0:25;[R,S]=hist(E,n); %得到0~25出现的个数,R表示个数N=(R/length(plaintext))'; %计算出频率DIFF=P-N; %计算明文与统计规律之差V=DIFF.*DIFF./P; %计算差值的平方SUM=sum(V); %求差值平方的和Z(i,:)=SUM; %记录差值以及对应的矩阵endendK=find(Z(:)>0); %找出>0的J=[Z(K(:)),K];[x,y]=sort(J(:,1)); %x表示卡方由小到大排列,y保存卡方由小到大时对应的for i=1:5m=y(i);Q=[F(index(m,1),:);F(index(m,2),:);F(index(m,3),:)];plaintext=mod(Q*A,26);E=reshape(plaintext,225,1)+97;plaintext= fprintf('可能的plaintext(%d):\n%s\n',i,E);end执行结果:可能的plaintext(1): copebreaeiniisvhehosbimvorbannfosmozsesreeinvelrigincninvhehorbdtddaditvroeucus mschcoroannmumhmhreerurtwtrteyilfosmaziovthtnsaieiannthtsifteglileneeererrsgfeari nvlulncnupuntaepelilieiofoovornrenrsystighahneaerradachponoclcrxe可能的plaintext(2): codebreakingisthemostimportantformofsecretintelligenceintheworldtodayitproducesm uchmoreandmuchmoretrustworthyinformationthanspiesandthisintelligenceexertsgreati nfluenceuponthepoliciesofgovernmentsyetithasneverhadachroniclerxx可能的plaintext(3): cocebweaminiisshetoseimuorcansfolmocseyrevinielyigoncdinihexoredtvdanitirotuces mqchcorwanwmushmprevrultwhrtpyimfolmaqiosthnnsdieaanwthlsiateblirenoeeuerisg ieaainslujncdupinthepclifieaofeovernfenasystihhadneteryadgcheonaclmrxt可能的plaintext(4): cobebaeayinjistheyosdimhoroanafotmojsemretinweluiginceinwheyorodtrdasitironucus mcchnorbanamuihmoretrumtwcrtkyirfotmahiolthlnsxieeanathlsihteflieenleetergsgdeal inwlucnceuphntmepplieieeofdovjrnlenysyatinhaqnevergadtchaontclvrxs可能的plaintext(5): cdcerwekmigiitshmtoteipuotcatsfrlmfcscyrtvitielyieoneditihwxoledovdynipirdtueesuq cmcoewadwmcshoprtvrsltohrhpynmfrlmtqinstannpdisaadwtilsnatlblgrecoexuetisrietai fslejneduoinhheoclcfisaogeoeermfetasestthhsdnvtehyaagcreoiacemrxt根据意思合理性选出明文2为:code breaking is the most important form of secret intelligence in the world today .it produces much more and much more trust worthy information than spies and this intelligence exerts great influence upon the policies of governments .yet it has never had a chronicler. xx解密矩阵为:。

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

加密过程 将明文变换成另一种不能被非授权者所
加密变换 将明文变为密文的变换
解密变换 将密文变为明文的变换
密 钥
加密变换所使用的参数
简单的加密解密过程模型
发送者 明文 加密器 密文
普 通 信 道
接收者
明文
解密器
窃听、干扰
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
3 C 其中 2 15 O
20 3 21 18 A 1 15 3 19
计算A-1 21 18 det 1 2 (mod 26) 345(mod 26) 7 3 19
a –1(mod26) 1
21 15 3 19 7 23 11 5 17 25
怎样求模 m 倒数
即解方程
ax 1 (mod m)
定义 Euler 函数:
设 m 为一自然数,Zm中与m 互素的数的个 数称为m 的Euler 函数,记为 (m) 可借助软件 Euler 定理 对任意整数 k, m, 若k, m互素,则
i A i
1
关于模运算 (mon26)
模 m 等价 设 a , b为两个整数, 若 a b km, k Z 记作 a b(mod m) 称 a 模 m 等价于b, 剩余集
Zm {0,1, 2, , m 1} 称为模m的剩余集
设 a , b 为两个整数,
a b (mod m) a (mod m) b(mod m) (mod m)

b1 b3 a1 A b2 b4 a2
b1 A b2 b3 a1 b4 a2
a3 a4
a3 a4
1
一个破译例子
甲方截获了一段密文:OJWPISWAZUXAU
UISEABAUCRSIPLBHAAMMLPJJOTENH
HILL2密码的加密与解密
★ 假设要加密的明文是由26个字母所构成 ★ 将每个明文字母与 0 – 25 的一个数字建立
1–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
1 2 A 0 3
加 密: 左乘加密矩阵 直接结果
57 44 37 35 25 25 57 38 60 63 39 54 24 36 3 57 45 60
一个简单实例
明 文:Our marshal was shot
补充哑字母
分 组: ou rm ar sh al wa ss ho tt
对应向量
15 18 1 19 1 23 19 8 20 21 13 18 8 12 1 19 15 20
0 3 1 3
In[4]:= adja = deta inva 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=
明文:Clinton is going to visit a country in Middle East
实验任务
必做题 教材P 92-93 第1 , 2 , 3题
选做题 教材P 93 第 4题
密文:Kh lv wkh uxohu ri dqflhqw Urpd
明文:He is the ruler of ancient Roma
主要缺陷:字母出现频率不变
密码学名词
明 文 需要采用某种方法对其进行变换来隐蔽 它所载荷的信息或字符串 理解的隐蔽信息的消息或字符串的过程 密 文 明文经过加密过程的变换所得的消息或 字符串
数学实验
Hill 密码的加密、 解密与破译
上海交通大学
数学系
即使埃斯库罗斯被人们遗忘,阿 基米德仍会被人们记住,因为即使语 言文字会消亡,数学概念也不会消亡。 — G.H.Hardy 现代数学家象其他从事科学的人 们那样,在应用他们的原理方面化费 的心血比在了解这些原理方面多得多。 — G.B.Berkeley
1
1
破 译 密文向量
15 23 9 0 24 21 9 5 2 21 10 16 19 21 1 2119 1 1 3 18 9 12 8 1 13 12 10 15 5 8 19 16 2 1 13 13 16 10 20 14 8
密码的故事
战争和和平时期的间谍战
吕贝卡的故事-007的故事
基度山伯爵 (大仲马)
舞蹈人形
Conan Doyle 创作的歇洛克.福尔摩斯
这段符号的译文为 AM HERE ABE SLANE .
密码学 — Cryptography
源于希腊文字:秘密+书写,古老神秘的学科
目的
将信息传递给己方的接收者 防止敌方知道信息的内容 谁最先使用密码? Julius Caesar (恺撒)
1 8 0 9
In[7]:= b = {{5, 18, 11, 9, 25, 25, 5, 12, 8}, {11, 13, 2, 24, 10, 3, 5, 19, 8}}; c = Mod[inva1.b, 26]; MatrixForm[c] Out[7]//MatrixForm=
★ 选择一个加密矩阵 A —
二阶正整数值的矩阵Байду номын сангаас. 例如
1 2 A 0 3
★ 将明文字母依次按每两个字母一组查出其表
值,得到一组二维向量{ i }
★ 通过加密矩阵得到 { i },而 i
A i (mod 26)
★ 查向量i 的字母表值,即得到密文 ★ 利用加密矩阵的逆矩阵,由密文得到明文
明文向量 3 9 20 14 19 15 14 20 22 19 12 14 15 9 7 9 7 15 9 9
20 3 21 20 25 14 9 4 5 1 20 1 15 14 18 9 13 4 12 5 19 20
运算律
模 m 倒数
设 a Z m,若存在 b Z m 使得
ab 1(mod m),称 a 有模 m 倒数 1 b a (mod m) 记作
命 题
整数 a有模 m 倒数的充要条件为
a 与 m 无公共素因子
模 26 倒数表 a 1 3 9 5 7 9 11 15 17 19 21 23 25
密文向量
5 18 11 9 25 25 5 12 8 1113 2 24 10 3 5 19 8
密 文
ek rm kb ix yj yc ee ls hh
解 密
只要将解密矩阵
量,从而查出明文
左乘密文向量即可求得明文向
1 8 A (mod 26) 0 9
1
结 论
使用Hill密码时的加密矩阵应该模 26 可逆
使用Mathematica
In[1]:= a = {{1, 2}, {0, 3}}; MatrixForm[a] Out[1]//MatrixForm= 1 2 0 3 In[2]:= deta = Mod[Det[a], 26] Out[2]= 3 In[3]:= inva = Inverse[a]; MatrixForm[inva] 2 Out[3]//MatrixForm= 1
命 题
矩阵 A 模 m 可逆 | A | 与 m 无公共素 因子
1 1 *
模 m逆矩阵 A (mod m) | A | (mod m) A (mod m) 例 子
1 A 0
1
相关文档
最新文档