1、应用矩阵编制 Hill 密码密码学在经济和军事方面起着极其重要的作用. 现代密码学涉及很多高深的数学知识. 这里无法展开介绍. 信信 源源噪声噪声信信 宿宿 信信 道道 攻击攻击 解解 密密 请求重传请求重传 加加 冗冗 编编 码码 加加 密密 识识 错错 纠纠 错错 图 29 保密通信的基本模型密码学中将信息代码称为密码, 尚未转换成密码的文字信息称为明文, 由密码表示的信息称为密文. 从明文到密文的过程称为 加密, 反之为解密. 1929 年, 希尔(Hill)通过线性变换对待传输信息进行加密处理, 提出了在密码史上有重要地位的希尔加密算法. 下面我们略去一些实际应用中的细节, 只介绍最基
2、本的思想.【模型准备】若要发出信息 action, 现需要利用矩阵乘法给出加密方法和加密后得到的密文, 并给出相应的解密方法. 【模型假设】(1) 假定每个字母都对应一个非负整数, 空格和 26 个英文字母依次对应整数 026(见下表). 表 9 空格及字母的整数代码表空格 A B C D E F G H I J K L M0 1 2 3 4 5 6 7 8 9 10 11 12 13N O P Q R S T U V W X Y Z14 15 16 17 18 19 20 21 22 23 24 25 26(2) 假设将单词中从左到右, 每 3 个字母分为一组, 并将对应的 3 个整数排成
3、3 维的行向量, 加密后仍为 3 维的行向量, 其分量仍为整数. 【模型建立】设 3 维向量 x 为明文, 要选一个矩阵 A 使密文 y = xA, 还要确保接收方能由 y 准确地解出 x. 因此 A 必须是一个 3 阶可逆矩阵. 这样就可以由 y = xA 得 x = yA1. 为了避免小数引起误差 , 并且确保 y 也是整数向量, A 和 A1 的元素应该都是整数. 注意到, 当整数矩阵 A 的行列式= 1 时, A1 也是整数矩阵. 因此原问题转化为 (1) 把 action 翻译成两个行向量: x 1, x2. (2) 构造一个行列式 = 1 的整数矩阵 A(当然不能取 A = E).
4、(3) 计算 x1A 和 x2A. (4) 计算 A1. 【模型求解】(1) 由上述假设可见 x1 = (1, 3, 20), x2 = (9, 15, 14). (2) 对 3 阶单位矩阵 E = 进行几次适当的初等变换 (比如把某一行0的整数被加到另一行, 或交换某两行), 根据行列式的性质可知, 这样得到的矩阵A 的行列式为 1 或1. 例如 A = , |A| = 1. 123(3) y1 = x1A = (1, 3, 20) = (67, 44, 43), 0y2 = Ax2 = (9, 15, 14) = (81, 52, 43). 123(4) 由(A , E) = 可得01 初
5、 等 行 变 换 1021A1 = . 02这就是说, 接收方收到的密文是 67, 44, 43, 81, 52, 43. 要还原成明文, 只要计算(67, 44, 43)A1 和(81, 52, 43)A1, 再对照表 9“翻译”成单词即可.【模型分析】如果要发送一个英文句子, 在不记标点符号的情况下, 我们仍然可以把句子(含空格) 从左到右每 3 个字符分为一组(最后不足 3 个字母时用空格补上). 【模型检验】(67, 44, 43) A1 = (1, 3, 20), (81, 52, 43)A1 = (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, 问恢复为原来的信息是什么 ?