




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于matlab频度分析择取的hill密码破译 摘要本文对密码破译问题进行了观察分析,发现密文中mg连续出现两次,说明明文是英文的概率较小,所以猜测明文是由汉语拼音组成。具体模型为:穷举反密钥(解密矩阵)得到全部明文计算机频度分析择取(攻击明文)剩余少量几组明文人为择选取得可行明文解得密钥。首先通过穷举法攻击反密钥解得所有明文。接着通过matlab程序频度分析攻击明文剔除不符字母出现频率的拼音明文,得到15组符合拼音字母出现频率的明文,最后人为从中选出正确可行的明文并通过计算机程序计算密钥矩阵。破译得到的可行明文为:weiruangongsijijiangtuichuxinyidaibentengg,转化为拼音为:wei,ruan,gong,si,ji,jiang,tui,chu,xin,yi,dai,ben,teng,g,其中最后一个字母为哑字母。所以翻译成汉语就是:“微软公司即将推出新一代奔腾”。根据密文与破译出的明文可以解得密钥(加密矩阵)为:,反密钥(解密矩阵)为:。最后对模型进行了加密检验,即用加密矩阵和所得文明进行一次加密过程,得到的结果(密文)与题目中所截获的密文相同,证明了本模型的正确性。本文的特色在于把密码学与统计学相结合,通过计算机编程实现,在11秒左右的时间,可以取得正确可行的明文。而基于matlab频度分析择取攻击明文,是最重要的一块,使得明文数量从个减少到了15个,减少人为用肉眼拣选的痛苦。具体实现如下:统计汉语拼音字母的出现频率,计算出高频率的字母在42个字母组成的密文中的出现次数,通过计算机程序模拟攻击明文剔除未达到出现次数下限以及以a、e、i、o、u开头的明文。关键词 频度分析 统计法 穷举法 明文攻击 计算机择取 matlab一、问题重申hill 密码的破译问题(程序题) 我方截获了敌方的一段密文: utcqcvfoyquvmgmgulfoleyhduhopeaswxtifbamwt 已知它是根据下面明文字母表值按 hill2 密码体制加密的,请将其解密。 (利用编程求解,附上计算机程序) 附:明文字母表值表:abcdefghijklm12345678910111213nopqrstuvwxyz14151617181920212223242526二 符号说明符号 符号说明 密钥矩阵 明文矩阵 密文矩阵三、问题分析图3-1:加密信息传递过程【1】破译密码虽然需要技术,但更加重要的是“猜测”的艺术。“猜测”的成功与否直接决定着破译的结果。统计法是根据统计资料进行猜测的。在一段足够长且非特别专门化的文章中,字母的使用频率是比较稳定的。【2】hill密码完全隐藏了字符对的频率信息,采用唯密文攻击密码是很难攻破的。但是hill密码也有它的弱点:线性变换的安全性很脆弱,易被已知的明文攻击攻破。只要我们破解出相应的明文,则取其中两对密文和明文,变可以破译出密钥。【3】综合以上分析,该问题可以通过穷举法和频度分析法并用的方法来解决。经过分析密文:utcqcvfoyquvmgmgulfoleyhduhopeaswxtifbamwt,发现其中的mg连续出现两次,因为连续出现两次双字母在英文中出现的概率比较小,所以猜测明文是由汉语拼音组成。从而可以从汉语拼音方面入手,建立模型。四、模型的建立与求解4.1 hill2 密码的数学模型一般的hill2 密码的数学模型为:明文 加密器 密文 普通信道 解密器 明文在这个过程中,运用的数学手段是矩阵运算,加密过程的具体步骤如下:1) 根据明文字母的表值,将明文信息用数字表示,设明文信息只需要 26 个拼音大写字母 az,通信双方给出这 26 个字母表值。abcdefghijklm12345678910111213nopqrstuvwxyz14151617181920212223242526表4-1明文字母的表值2) 选择一个二阶可逆整数方阵 ,称为 hill2 密码的加密矩阵,它是这个加密体制的“密钥”(是加密的关键,仅通信双方掌握)。3) 将明文字母依次逐对分组hill2 密码的加密矩阵为二阶矩阵,则明文字母每 2 个一组。若最后一组仅有一个字母,则补充一个没有实际意义的哑字母,这样使每一组都由 2 个明文字母组成。查出每个明文字母的表值,构成一个二维列向 量 c。4) 乘以 c,得一新的 2 维列向量 ,由p的两个分量反查字母表值得到的两个字母即为密文字母。4.2 hill2 密码的破译模型及求解图4-1 hill2 密码的破译模型流程图具体模型为:穷举反密钥(解密矩阵)得到全部明文计算机频度分析择取(攻击明文)剩余少量几组明文人为择选取得可行明文解得密钥。(如图4-1)4.2.1 步骤一:穷举法攻击反密钥解得所有明文。选择一个二阶方阵,称为 hill2 密码的解密矩阵,它是这个解密体制的“反密钥”(是解密的关键,仅通信双方掌握)分别赋予hill2反密钥矩阵中的四个未知数的值为025,依次循环进行hill2解密过程。解密过程如下【4】: 在模运算下解方程组: -(1) 解得: -(2)即可得到所有的明文c,组数达到个。4.2.2 步骤二:matlab程序频度分析攻击明文剔除不符的拼音明文统计法是根据统计资料进行猜测的。在一段足够长且非特别专门化的文章中,字母的使用频率是比较稳定的。如果该密文是有意义的,那么其对应的明文就应当服从统计分布。问题分析中认为该明文是拼音串,因此查阅相关资料【5】,得到汉语拼音的出现频率(%)排序为:i(12.93) n(12.56) g(9.50) u(9.40) a(8.22) o(7.02) e(6.35) h(5.60) y(5.52) z(3.20)d(2.57) j(2.30) s(2.24) w(1.86) t(1.80)b(1.43) f(1.22) x(1.16) m(0.86) r(0.84) p(0.68) c(0.68) l(0.66) q(0.62) k(0.20) v(0.00) 因为截获的密文是42个字母,所以明文也是42个字母。根据统计法可以计算出正确明文中高频率字母出现的次数为:i=42x12.93%=5.4306;n=42x12.56%=5.2752;g=42x9.50%=3.9900;u=42x9.40%=3.9480;a=42x8.22%=3.4524;最终在计算机程序模拟中,将让计算机剔除不符合以下两个条件的明文:1、为了保证可行解不被剔除并保持解的正确性,取i、n、g、u、a的次数下限分别为5、5、3、3、3,保证了这些拼音中的高频字母出现的概率是在相对较低概率之上。2、分析可得,在明文中,a、e、i、o、u出现在首字母的可能性非常低,所以剔除a、e、i、o、u出现在首字母的所有明文。经过这次大规模的计算机处理,我们的明文数量将从456976个降到15个。大大减少人为用肉眼拣选的痛苦。经过matlab【6】程序模拟【见附录1】:可得到以下15种结果(15种计算机判断可行明文):wwviuuanboggviviiiangtiiuhkxanviaaobnnreggweiruangongsijijiangtuichuxinyidaibentenggwwivuunaobggiviviinatgiihuxknaivaabonnerggwjiuunnaoogbikikipnatkilhmxqnqiwajbgnneugzwniauhnqougvioioihnqtyixhyxgneisatbandeugdwuiiusnfoygyiaiaienftnighzxxnxiuaubpnfeigmwuiyuanfoygaiuiuiwnftbikhxxfnbieagbnnfemguwrieunngoagfiwiwinngtuiphuxinyiqavbenteagtwqinukncofguininianctuiahkxgncinacbsnpebguwaiauundougiioioiundtlikhlxtnrisagbnndeugqwainuunqohgiibibiunqtyikhyxgneifagbandehgqjwuinuanoobgkikipianktlimhqxqnwijagbnnuezgnwaihuqnuovgoioihiqnytxiyhgxensitaabdnuedgrweinugnaofgwiwinignutpiuhixynqivaebtnaetgqwnikucnfougniniaicnutaikhgxcnnicasbpnbeug4.2.3 步骤三:人为选取正确的明文在matlab程序中输出的15组解中,经过人为观察,不难看出,只有weiruangongsijijiangtuichuxinyidaibentengg这一组是唯一可行的拼音明文,转化为拼音为:wei,ruan,gong,si,ji,jiang,tui,chu,xin,yi,dai,ben,teng,g,其中最后一个字母为哑字母。所以翻译成汉语就是:“微软公司即将推出新一代奔腾”。4.2.4 步骤四:算出对应的密钥与反密钥(程序见附录二) 由于类型密码的特殊性,其密钥矩阵在短时间内是不会变化的。为了方便以后对敌方密文的解密,作为一个情报部门,破解出敌方使用类型密码进行信息传递的密钥,有重大的意义。破解步骤如下:明文前4个字母weir ;密文前4个字母utcq ,有密码理论可以得知:,。因此可以得到解密矩阵(反密钥)公式:。由于 、。得:。由中模26倒数的整数及其模26倒数表,可知。经计算解得。根据解密矩阵公式:根据模型编写matlab程序解得(见附录二):密钥(加密矩阵): 反密钥(解密矩阵):。五、模型的检验为了检验密钥(加密矩阵)的正确性,本文对模型进行了检验【7】,即将得到的明文通过加密矩阵加密,根据hill2密码的加密规则,选取密钥,通过matlab【8】编程(见附录三)实现,将明文wei,ruan,gong,si,ji,jiang,tui,chu,xin,yi,dai,ben,teng,g加密成密文,程序求解结果为:utcqcvfoyquvmgmgulfoleyhduhopeaswxtifbamwt,与所截获的密文一致,从而检验了模型的正确性。六、模型评价与推广6.1模型评价密码学统计学计算机程序实现明文,密钥明文,密钥解得 图6-1:模型图示本文通过把密码学与统计学相结合的方法,通过穷举法【9】穷举反密钥,得到456976个明文,接着经过统计学知识,得到各个字母在拼音中出现的概率大小,计算相应的拼音字母在明文中出现的次数,最后运用计算机处理,将明文数量从456976个降到乐15个,而整个计算机模拟的过程,仅需要11秒的时间,破译者只需要在15个中间稍加观察就可得到可行解。本文将密码学与统计学结合并用计算机编程实现的方法减少人为用肉眼拣选的痛苦。同时,该模型具有通用性,可以解决密码破译的一般性问题,只要明文中的拼音符合一般的人的行文习惯,不人为专门使用偏僻拼音,该模型都能在10余秒的时间内解决。 6.2模型推广 模型不仅可以针对拼音,也可以针对英文明文去破译,破译时则需要用到英文字母的出现频率表【10】,e是使用频率最高的,下面是英文字母使用频率表:(%) a 8.19 b 1.47 c 3.83 d 3.91 e 12.25 f 2.26 g 1.71 h 4.57 i 7.10 j 0.14 k 0.41 l 3.77 m 3.34 n 7.06 o 7.26 p 2.89 q 0.09 r 6.85 s 6.36 t 9.41 u 2.58 v 1.09 w 1.59 x 0.21 y 1.58 z 0.08便可以完成针对英文明文的密码破译。七、参考文献、1 章照止等,现代密码学基础,北京:北京邮电大学出版社,20042 张福泰等,密码学教程(信息安全系列教材),武汉:武汉大学出版社,20063 胡磊等译,应用密码学手册,北京:电子工业出版社,20054 邓辉文等,线性代数,北京:清华大学出版社,20075 百度知道,统计拼音字母出现频率百分数 /question/44727854.html6 张铮等,matlab程序设计与实例应用,北京:中国铁道出版社,20037 福罗赞, 密码学与网络安全,北京:清华大学出版社,20098 徐金明等,matlab实用教程,北京:清华大学出版社,20059 维基百科,穷举法,/wiki/%e7%a9%b7%e4%b8%be%e6%b3%95 10 百度知道,英文字母频率表 /question/10229121.html 八、附录附录一:(matlab程序,求明文)clcclearticdisp(正在破译密文。);m=26; zero=64;t=;e1=;astr=utcqcvfoyquvmgmgulfoleyhduhopeaswxtifbamwt;a1=double(astr);lh=length(a1);if mod(length(a1), 2)=1a1=a1, a1(length(a1);enda1=a1-zero;for i=1:length(a1)if a1(i)=26a1(i)=0;endendt=reshape(a1, 2, length(a1)/2);for x1=1:26 for x2=1:26 for x3=1:26 for x4=1:26 demat=x1,x2;x3,x4;d1=mod(demat*t, m);e1=reshape(d1, length(a1), 1);e1=e1;e1=e1+zero;for i=1:length(e1)if e1(i)=64e1(i)=90;endende1=e1(1:lh);char(e1);i=0;n=0;g=0;u=0;a=0;for k=1:42 if e1(k)=i i=i+1;end if e1(k)=n n=n+1;end if e1(k)=g g=g+1;end if e1(k)=u u=u+1;end if e1(k)=a a=a+1;endendif i4&n4&g2&u2&a2&e1(1)=a&e1(1)=e&e1(1)=i&e1(1)=o&e1(1)=u disp( char(e1) );endendendend;enddisp(over);toc附录二:(matlab程序,求密钥)clear allclc m=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务财务合规计划
- 跨境电话欺诈案例分析与防范
- 足球校队队员压力管理与团队默契提升
- 金融领域中的安全保障措施与实践探讨
- 贵州国企招聘2025贵州黔源电力股份有限公司应届毕业生招聘笔试参考题库附带答案详解
- 质量控制与检验标准的法规要求解析
- 跨领域合作促进药物分析方法的进步
- 新课标2024-2025学年高中英语Unit4SharingSectionⅤWriting-记叙文教案含解析新人教版选修7
- 销售谈判技巧与策略培训
- 新高考2025版高考数学二轮复习第三部分讲重点解答题专练第1讲解三角形教学案理
- 西师版小学数学六年级下册单元测试卷(含答案)
- 2024年公安机关理论考试题库500道【综合卷】
- 2024年四川成都市公共交通集团有限公司招聘笔试参考题库含答案解析
- 第2章导游(课件)《导游业务》(第五版)
- 2023年北京重点校初二(下)期中数学试卷汇编:一次函数
- 加推楼盘营销方案
- 新人教版五年级小学数学全册奥数(含答案)
- 2024年危化品安全管理制度和岗位安全操作规程(9篇范文)
- 无人机固定翼行业报告
- 《茎和叶》名师课件
- 玻璃体腔注射-操作流程和注意事项(特选参考)课件
评论
0/150
提交评论