- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
古典密码学之希尔密码
信息与计算科学0902班
任龙杰
090701031
古典密码学之希尔密码
希尔密码(Hill Password)是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。每个字母当作26进制数字:A=0, B=1, C=2... 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果模26。注意用作加密的矩阵(即密匙) 在math\mathbb_^n/math必须是可逆的,否则就不可能译码。只有矩阵的行列式和26互质,才是可逆的。
安全性:
希尔密码不是足够安全的, 如今已被证实, 关于希尔密码的破解不在本文范围内, 有兴趣的朋友可以研读相关书籍以了解相关破译方法。
希尔密码所需要掌握的前置知识:
1. 线性代数基础知识;
2. 初等数论基础知识;
约定:
1. 希尔密码常使用Z26字母表, 在此贴中, 我们也以Z26最为字母表进行讲解.在附带源码中有两种字母表选择。
2. 大家都知道最小的质数是2, 1 既不是质数也不是合数. 在此我们定义1对任何质数的模逆为其本身。
3. 因为对于任意质数n, 有: 1*1 % n = 1 的. 也应该是很好理解的。
相关概念:
线性代数中的逆矩阵: 在线性代数中, 大家都知道,对于一个n阶矩阵 M , 如果存在一个n阶矩阵 N ,使得 M * N = E (其中:
E为n阶单位矩阵), 则称矩阵 N 为矩阵 M 的逆矩阵, 并记为 M^-1.
比如 2阶矩阵 M = [3,6] , 则很容易得知其逆矩阵 :
[2,7]
M^-1 = [7/9, -2/3]
[-2/9, 1/3] 。
关于这个逆矩阵是如何计算出的, 通常的有两种方法:
一是使用伴随矩阵, 通过计算行列式得到. 所用公式为: M^-1 = M^* / D . (其中M^*为M的伴随矩阵, D为M的行列式的值)
二是通过增广矩阵, 在M右侧附加一个n阶单位矩阵, 再通过初等变换将增广矩阵的左侧变换为一个n阶单位矩阵, 这时右侧便是所求的逆矩阵。
示例:
密文:l 11 242 44 121 22 154 132 44 209 154 154 220 187 22 121 220 11
解答:根据第一项,全部除以11, 因为l是第12个字母,即l=12-k,得k=1 按a=0 …… z=25,列出字母 WELCOME TO OUR CLUB
希尔密码
加密
例如:密钥(密码学中好象没有密匙一词)矩阵
1 3
0 2
明文:HI THERE
去空格,2个字母一组,根据字母表顺序换成矩阵数值如下,末尾的E为填充字元:
HI TH ER EE
8 20 5 5
9 8 18 5
HI 经过矩阵运算转换为 IS,具体算法参考下面的说明:
|1 3| 8 e1*8+3*9=35 MOD26=9 =I
|0 2| 9 e0*8+2*9=18 MOD26=18=S
用同样的方法把“HI THERE”转换为密文“IS RPGJTJ”,注意明文中的两个E分别变为密文中的G和T。
解密
解密时,必须先算出密钥的逆矩阵,然后再根据加密的过程做逆运算。
逆矩阵算法公式:
|A B| = 1/(AD-BC) * | D -B|
|C D| |-C A|
例如密钥矩阵=
|1 7|
|0 3|
AD-BC=1*3-0*7=3 3*X=1 mod26 所以 X=9
因此
|1 7| 的逆矩阵为: 9 * |3 -7|
|0 3| |0 1|
假设密文为“FOAOESWO”
FO AO ES WO
6 1 5 23
15 15 19 15
9* |3 -7| | 6| = 9*(3*6-7*15)=-783 mod26 = 23=W
|0 1| |15| = 9*(0*6+1*15)= 135 mod26 = 5 =E
所以密文“FOAOESWO”的明文为“WEREDONE”
文档评论(0)