希尔密码
希尔密码是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。
每个字母当作26进制数字:A=0, B=1, C=2... 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果模26。
注意用作加密的矩阵(即密匙)在<math>mathbb_^n</math>必须是可逆的,否则就不可能译码。只有矩阵的行列式和26互质,才是可逆的。
三、Hill cipher(希尔密码)
Hill cipher是1929年提出的一种密码体制。
设d是一正整数,定义 。Hill cipher的主要思想是利用线性变换方法,不同的是这种变换是在 上运算。
例如:设d=2,每个明文单元使用 来表示,同样密文单元用 表示,具
体的加密中, 将被表示为 的线性组合。
如:
利用线性代数的知识,可得
这个运算在 上进行,即mod26,密钥K一般取一个m*m的矩阵,记为 。对明文 ,以 ,则加密算法为:
也可表示成 。
例:对明文attack,利用密钥 进行加密。
第一步:将明文分为两两一组:at ta ck
第二步:计算:
同理,
因此,密文为VBDEKQ
解密算法:因为 ,由于K必须可逆,即 ,所以 ,如何计算K的逆,有两种算法:一种是利用伴随矩阵,另一种是利用初等变换,无论采用何种算法都可以。
例;设 ,求K的逆。
解法一、因为 ,因此K的逆存在。显然在mod26下 的余为1,即337/26=1
或337=x mod26,显然x=1。所以
,即:
注意: , , 在mod26下是7。由此我们有在 在mod26下的逆分别是: , , , , 。
例:密文为:YIFZMA 设密钥为 ,找出它的明文。
解: ,所以
因此明文为cureka。
例子:
原文:Mr Hill made this code.
abcdefghijklmnopqrstuvwxyz
01234567890123456789012345
_______m___r___h___i___l___l___m___a___d___e___t___h___i___s___c___o___d___e
______12__17___7___8__11__11__12___0___3___4__19___7___8__18___2__14___3___4
m_12_144_204__88__96_132_132_144___0__36__48_228__98__96_216__24_168__36__48
r_17_204_289_119_136_187_187_204___0__51__68_323_119_136_306__34_238__51__68
h__7__88_119__49__56__77__77__84___0__21__28_133__49__49_126__14__98__21__28
i__8__96_136__56__64__88__88__96___0__24__32_154__56__56_144__16_112__24__32
l_11_132_187__77__88_121_121_132___0__33__44_209__77__88_198__22_154__33__44
l_11_132_187__77__88_121_121_132___0__33__44_209__77__88_198__22_154__33__44
m_12_144_204__84__96_132_132_144___0__36__48_228__84__96_216__24_168__36__48
a__0___0___0___0___0___0___0___0___0___0___0___0___0___0___0___0___0___0___0
d__3__36__51__21__24__33__33__36___0___9__12__57__21__24__54___6__52___9__12
e__4__48__68__28__32__44__44__48___0__12__16__76__28__32__72___8__56__12__16
t_19_228_323_133_152_209_209_228___0__57__76_361_133_152_342__38_266__57__76
h__7__98_119__49__56__77__77__98___0__21__28_133__49__56_126__14__98__21__28
i__8__96_136__56__64__88__88__96___0__24__32_152__56__56_144__16_112__24__32
s_18_216_306_126_144_198_198_216___0__54__72_342_126_144_324__36_252__54__72
c__2__24__34__14__16__22__22__24___0___6___8__38__14__16__36___4__28___6___8
o_14_168_238__98_112_154_154_168___0__42__56_266__98_112_252__28_169__42__56
d__3__36__51__21__24__33__33__36___0___9__12__57__21__24__54___6__52___9__12
e__4__48__68__28__32__44__44__48___0__12__16__76__28__32__72___8__56__12__16
用其中的一行作为密文既可
例子:
密文:l 11 242 44 121 22 154 132 44 209 154 154 220 187 22 121 220 11
解答:全部除以11,按a=0 …… z=25,列出字母 WELCOME TO OUR CLUB