文档详情

用matlab与编程 .ppt

发布:2017-09-30约5.44千字共36页下载文档
文本预览下载声明
数学实验 实验六 古典密码与破译 问题背景和实验目的 问题背景和实验目的 加密信息传递过程 Hill2 密码的加密过程 Hill2 密码的加密过程 Hill2 加密举例 Hill2 加密举例 Hill2 加密举例 Hill2 加密过程 Hill2 解密过程 模 m 可逆 模 m 可逆 模 26 可逆 Hill2 解密过程 模 m 逆矩阵的计算 Hill2 解密过程 Hill2 加密过程总结 Hill2 解密过程总结 Hill2 解密举例 Hill2 解密举例 Hill2 解密举例 Hill2 解密举例 Hill2 解密举例 Hill2 密码破译举例 Hill2 密码破译举例 Hill2 密码破译举例 Hill2 密码破译举例 相关Matlab函数介绍 相关Matlab函数介绍 相关Matlab函数介绍 相关Matlab函数介绍 数据输出 fprintf 数据输出 fprintf 上机作业 length length(a) 如果 a 是向量,则返回其长度; 如果 a 是矩阵,则返回行数与列数中最大的一个。 mod mod(m,n) 求余,返回 m 被 n 整除后的余数,符号与 n 相同; 另外一个求余函数是 rem gcd :求最大公约数 gcd(m,n) det :计算行列式 det(A) inv :计算逆矩阵 inv(A) reshape :将矩阵元素按列方向进行重组 reshape(A,m,n) 将 A 排 m 行,n 列的矩阵,要求 A 的元素个数 =m*n double double(str) 当 str 是字符串时,返回所有字符的 ASCII 码 char char(a) 当 a 是整数时,返回 ASCII 码等于 a 的字符 fid 为文件句柄,若缺省,则将变量的值输出到屏幕上 format 用来指定数据输出时采用的格式,常见的有 %d ( 输出一个整数类型的数据 ) %e ( 采用科学计算形式输出一个实数 ) %f ( 采用浮点数形式输出一个实数) %g ( 由系统自动选取上述两种格式之一) %s ( 输出字符串) format 中还可以使用一些特殊格式,如: \n ( 换行 ) \t ( 制表符 ) \b ( 退格 ) \\ ( 反斜杆 ) %% ( 百分号 ) fprintf(fid,format,variables) 按指定的格式将变量的值输出到指定的文件 fprintf :格式化输出 * * 保密通讯无论在军事、政治、经济还是日常生活中都起着非常重要的作用。 为了将信息传递给己方的接受者,同时又要防止他人(特别是敌人)知道信息的内容,必须将要传递的信息(明文)加密,变成密文后发送出去,这样,即使敌方得到密文也看不懂,而己方的接受者收到密文后却可以按照预先定好的方法加以解密。 密码可分为古典密码和现代密码 本实验主要介绍古典密码的加密与破译原理,同时介绍如何用 Matlab 编程来实现加密、解密和破译过程。 古典密码:以字符为基本加密单元; 现代密码:以信息块为基本加密单元。 明文(信息) 加密器 密文 密文 明文(信息) 解密器 普通信道 发送 敌方截获 破译 发送方 接收方 Hill2 密码中所用的数学手段是 矩阵运算。 加密过程: ① 将汉语拼音的 26 个字母 与 0 到 25 之间的整数建立一一对应关系,称为字母的 表值,然后根据明文字母的表值,将明文信息用数字表示。 13 12 11 10 9 8 7 6 5 4 3 2 1 M L K J I H G F E D C B A 0 25 24 23 22 21 20 19 18 17 16 15 14 Z Y X W V U T S R Q P O N 设通讯双方所给出的 26 个字母的表值如下: 注:这里假定明文中只使用 26 个大写字母 ② 选择一个 二阶可逆整数方阵 A,称为Hill2密码的 加密矩阵,它是加密体制的 “密钥”,是加密的关键,仅通讯双方掌握。 ③ 将明文字母分组。 Hill2 使用的是二阶矩阵,所以将明文字母每 2 个一组(可以推广至Hilln密码)。查出每个字母的表值,这样,每组字母构成一个二维列向量 ? 。 若最后仅剩一个字母,则补充一个没有实际意义的哑字母(哑元)。这样使得每组都有 2 个字母, ④ 令 ? = A? ,由 ? 的两个分量反查字母表值表,得到相应的两个字母,即为密文字母。 例: 设明文为“HDSDSXX”(华东师大数学系),试给出这段明文的 Hill2 密文。其中加密矩阵为 将明文字母分组: HD SD SX XX 最后的一个字母 X 为哑字母,无实际意义。 解: 13 12 11 10
显示全部
相似文档