《实验六古典密码与破译课件.ppt》由会员分享,可在线阅读,更多相关《实验六古典密码与破译课件.ppt(32页珍藏版)》请在三一办公上搜索。
1、1,实验六,古典密码与破译,谢谢观赏,2019-8-23,2,为什么要加密,保密通讯无论在军事、政治、经济还是日常生活中都起着非常重要的作用。为了将信息传递给己方的接受者,同时又要防止他人(敌方)获取信息内容,必须将传递的信息(明文)加密,变成密文后发送出去,这样,即使敌方得到密文也看不懂,而己方的接受者收到密文后却可以按照预先定好的方法加以解密。,信息加密,密码分类,古典密码:以字符为基本加密单元 现代密码:以信息块为基本加密单元,本实验主要介绍古典密码的加密与破译原理,同时介绍如何用 Matlab 编程来实现加密、解密和破译过程。,谢谢观赏,2019-8-23,3,加密信息传递过程,明文(
2、信息),密文,密文,明文(信息),敌方截获破译,发送方,接收方,谢谢观赏,2019-8-23,4,Hill2 密码的加密过程,Hill2 密码中所用的数学手段是 矩阵运算,加密过程:,将 26 个字母 与 0 到 25 之间的整数建立一一对应关系,称为字母的 表值,然后根据明文字母的表值,将明文信息用数字表示,设通讯双方所给出的 26 个字母的表值如下:,注:这里假定明文中只使用 26 个大写字母,谢谢观赏,2019-8-23,5,Hill2 密码的加密过程,选择一个 二阶可逆整数方阵 A,称为Hill2密码的 加密矩阵,它是加密体制的“密钥”,是加密的关键,仅通讯双方掌握,将明文字母分组。H
3、ill2 使用的是二阶矩阵,所以将明文字母每 2 个一组(可以推广至Hilln密码)。查出每个字母的表值,这样,每组字母构成一个二维列矢量,若最后仅剩一个字母,则补充一个没有实际意义的哑字母(哑元),这样使得每组都有 2 个字母,令=A,由 的两个分量反查字母表值表,得到相应的两个字母,即为密文字母,谢谢观赏,2019-8-23,6,Hill2 加密举例,例:设明文为“HDSDSXX”(华东师大数学系),试给出这段明文的 Hill2 密文。其中加密矩阵为,将明文字母分组:HD SD SX XX最后的一个字母 X 为哑字母,无实际意义。,解:,查表得每组字母的表值,得到 4 个二维列矢量:,谢谢
4、观赏,2019-8-23,7,将上述 4 个二维矢量左乘密钥矩阵 A 得:,作模 26 运算,将所有的数都化为 0 到 25 之间的整数:,Hill2 加密举例,谢谢观赏,2019-8-23,8,反查字母表值得每个矢量对应的字母组为:,HDSDSXX,PLALOTTT,Hill2 加密,Hill2 加密举例,PL AL OT TT,谢谢观赏,2019-8-23,9,问题:怎样解密?,明文字母,查表值,分组,一组矢量,加密矩阵,左乘,一组新的矢量,反查表值,密文,Hill2 加密过程,模运算,谢谢观赏,2019-8-23,10,Hill2 密码解密,谢谢观赏,2019-8-23,11,先查出密文
5、字母“PL AL OT TT”所对应的矢量:,在模运算下解方程组:A=,解密:加密的逆过程,将加密过程逆转回去即可,Hill2 解密过程,上面的矢量是由 经过模 26 运算得来的,现在的问题是怎样逆转回去?,例:怎么得到密文“PLALOTTT”的原文,谢谢观赏,2019-8-23,12,模 m 可逆,记,注:a,b 都是 Zm 中的数,谢谢观赏,2019-8-23,13,命题:定义在集合 Zm 上的 n 阶方阵 A 模 m 可逆的充要条件是:m 和 det(A)无公共素数因子,即 m 与 det(A)互素。,Hill2 密码的加密矩阵必须满足上述条件。,m=26,m 的素数因子只有 2 和 1
6、3,定义在 Z26上的方阵 A 模 26 可逆的充要条件是:,模 m 可逆,det(A)不能被 2 和 13 整除,问题:是否 Zm 中所有的数都存在模 m 倒数?,谢谢观赏,2019-8-23,14,Z26 中具有模 26 倒数的整数及其模 26 倒数表,模 26 可逆,思考:如何用 Matlab 编程来找出所有模 m 倒数的整数及其模 m 倒数?(穷举法),谢谢观赏,2019-8-23,15,在模运算下解方程组:A=,Hill2 解密过程,?,问题:如何计算?,谢谢观赏,2019-8-23,16,模 m 逆矩阵的计算,设 B=k A*为 A 的 模 26 逆,其中 k 为待定系数,A*为
7、A 的伴随矩阵,本计算方法可推广到求矩阵 A 的 模 m 逆矩阵,谢谢观赏,2019-8-23,17,Hill2 解密过程,设加密矩阵,谢谢观赏,2019-8-23,18,用 B 左乘密文对应的矢量得:,模 26 运算后得:,查表后得明文分别为:HD SD SX XX,?,谢谢观赏,2019-8-23,19,Hill2 加密过程总结,通讯双方确定加密矩阵(密钥)和字母的表值对应表,将明文字母分组,通过查表列出每组字母对应的矢量,令=A mod(m),由 的分量反查字母表值表,得到相应的密文字母,若明文只含奇数个字母,则补充一个哑元,谢谢观赏,2019-8-23,20,Hill2 解密过程总结,
8、将密文字母分组,通过查表列出每组字母对应的矢量,求出加密矩阵 A 的 模 m 逆矩阵 B,令=B mod(m),由 的分量反查字母表值表,得到相应的明文字母,谢谢观赏,2019-8-23,21,甲方收到乙方(己方)的一个密文信息,内容为:,Hill2 解密举例,WKVACPEAOCIXGWIZUROQWABALOHDKCEAFCLWWCVLEMIMCC,按照甲方与乙方的约定,他们之间采用 Hill2密码,密钥为,字母表值见下表,问这段密文的原文是什么?,谢谢观赏,2019-8-23,22,Hill2 解密举例,将密文字母分组,通过查表列出每组字母对应的矢量,求出加密矩阵 A 的 模 26 逆矩
9、阵,用 B 左乘每组密文字母组成的矢量,然后再反查字母表值表,得到相应的明文字母,谢谢观赏,2019-8-23,23,Hill2 解密举例,谢谢观赏,2019-8-23,24,Hill2 解密举例,谢谢观赏,2019-8-23,25,即:“古典密码是以字符为基本加密单元的密码”,GU DIAN MI MA SHI YI ZI FU WEI JI BEN JIA MI DAN YUAN DE MI MA A,WKVACPEAOCIXGWIZUROQWABALOHDKCEAFCLWWCVLEMIMCC,原文,Hill2 解密举例,密文,谢谢观赏,2019-8-23,26,相关Matlab函数介绍,
10、length、sizemod、det、invreshape,gcd(m,n):求最大公约数,double(字符串):字符 ASCII码char(数):ASCII码 字符,谢谢观赏,2019-8-23,27,教材 P 124:练习 1、2、3,上机作业,要求写实验报告,将所编写的程序分别命名为 hw61.m,hw62.m,hw63.m将所有 M 文件作为附件,发给 mhjssystem.mail邮件主题为:机号-学号-姓名;其中机号为 两位数三个字段之间用英文状态下的减号链接,上机要求,每个 M文件的第一行为:%机号-学号-姓名,谢谢观赏,2019-8-23,28,Hill2 密码破译,谢谢观赏
11、,2019-8-23,29,经分析该密文是用 Hill2密码 加密,且密文(U,C)和(R,S)分别对应明文(T,A)和(C,O),问能否破译这段密文?,Hill2 密码破译举例,MOFAXJEABAUCRSXJLUYHQATCZHWBCSCP,我方截获一段密文,猜测密文是由26个字母组成,即 m=26,经破译部门通过大量的统计分析和语言分析确定表值,破译这段密文的关键是找到“密钥”和字母对应的表值,谢谢观赏,2019-8-23,30,密文(U,C)和(R,S)分别对应明文(T,A)和(C,O),Hill2 密码破译举例,P,C,谢谢观赏,2019-8-23,31,Hill2 密码破译举例,注:这里的运算都是在模运算意义下进行,谢谢观赏,2019-8-23,32,HE WI LL VI SI TA CO LL EG ET HI SA FT ER NO ON,得到加密矩阵的 模26逆矩阵 后,根据前面的解密方法即可得密文的原文,Hill2 密码破译举例,谢谢观赏,2019-8-23,