应用矩阵编制Hill密码.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
应用矩阵编制Hill密码 密码学在经济和军事方面起着极其重要的作用. 现代密码学涉及很多高深的数学知识. 这里无法展开介绍. 信 信 源 噪声 信 宿 信 道 攻击 解 密 请求重传 加 冗 编 码 加 密 识 错 纠 错 图29 保密通信的基本模型 密码学中将信息代码称为密码, 尚未转换成密码的文字信息称为明文, 由密码表示的信息称为密文. 从明文到密文的过程称为加密, 反之为解密. 1929年, 希尔(Hill)通过线性变换对待传输信息进行加密处理, 提出了在密码史上有重要地位的希尔加密算法. 下面我们略去一些实际应用中的细节, 只介绍最基本的思想. 【模型准备】若要发出信息action, 现需要利用矩阵乘法给出加密方法和加密后得到的密文, 并给出相应的解密方法. 【模型假设】(1) 假定每个字母都对应一个非负整数, 空格和26个英文字母依次对应整数0~26(见下表). 表9 空格及字母的整数代码表 空格 A B C D E F G H I J K L M 0 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 26 (2) 假设将单词中从左到右, 每3个字母分为一组, 并将对应的3个整数排成3维的行向量, 加密后仍为3维的行向量, 其分量仍为整数. 【模型建立】设3维向量x为明文, 要选一个矩阵A使密文y = xA, 还要确保接收方能由y准确地解出x. 因此A必须是一个3阶可逆矩阵. 这样就可以由y = xA得x = yA?1. 为了避免小数引起误差, 并且确保y也是整数向量, A和A?1的元素应该都是整数. 注意到, 当整数矩阵A的行列式= ?1时, A?1也是整数矩阵. 因此原问题转化为 (1) 把action翻译成两个行向量: x1, x2. (2) 构造一个行列式= ?1的整数矩阵A(当然不能取A = E). (3) 计算x1A和x2A (4) 计算A?1. 【模型求解】(1) 由上述假设可见x1 = (1, 3, 20), x2 = (9, 15, 14). (2) 对3阶单位矩阵E =进行几次适当的初等变换(比如把某一行的整数被加到另一行, 或交换某两行), 根据行列式的性质可知, 这样得到的矩阵A的行列式为1或?1. 例如A =, |A| = ?1. (3) y1 = x1A = (1, 3, 20)= (67, 44, 43), y2 = Ax2 = (9, 15, 14)= (81, 52, 43). (4) 由(A, E) =可得 A?1 =. 这就是说, 接收方收到的密文是67, 44, 43, 81, 52, 43. 要还原成明文, 只要计算(67, 44, 43)A?1和(81, 52, 43)A?1, 再对照表9“翻译”成单词即可. 【模型分析】如果要发送一个英文句子, 在不记标点符号的情况下, 我们仍然可以把句子(含空格)从左到右每3个字符分为一组(最后不足3个字母时用空格补上). 【模型检验】(67, 44, 43) A?1 = (1, 3, 20), (81, 52, 43)A?1 = (9, 15, 14). 参考文献 杨威, 高淑萍, 线性代数机算与应用指导, 西安: 西安电子科技大学出版社, 2009. 页码: 98-102. Matlab实验题 按照上面的加密方法, 设密文为: 112, 76, 57, 51, 38, 18, 84, 49, 49, 68, 41, 32, 83, 55, 37, 70, 45, 25, 问恢复为原来的信息是什么?

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档