换字式密码破解和维吉尼亚密码
让编程改变世界
Change the world by program
破译换字式密码
上节课小甲鱼已经给大家介绍换字式密码:将每个字符及后移字符都进行变换。(强度 1280 亿年) [caption id="attachment_490" align="aligncenter" width="300"]
破译换字式密码[/caption] [caption id="attachment_491" align="aligncenter" width="300"]
破译换字式密码[/caption] 由此得到密文是:
AWMQSBANGD
破译方法:字符频数分析法
这是一个栗子:cipher.txt (课件及源代码)
破解思路:
1. 英文字母词频分布情况(可自己总结:工具)
高频字母:E、T、A、O、N、I、R、S、H 中频字母:D、L、U、C、M 低频字母:P、F、Y、W、G、B、V 稀频字母:J、K、Q、X、Z
2. 依照上表逐个进行替换尝试
3. 耐心,没了!
总结:只要方法恰当,没有不可能的事! 作业:cipher.txt 提示:耐心
维吉尼亚密码
维吉尼亚密码引入了”密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。 [caption id="attachment_492" align="aligncenter" width="300"]
维吉尼亚密码表[/caption] 假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密:
TO DO OR NOT TO DO
当选定 FISHC 作为密钥时,加密过程是:明文一个字母为T,第一个密钥字母为F,因此可以找到在F行中代替T的为Y,依此类推: [caption id="attachment_493" align="aligncenter" width="300"]
维吉尼亚密码[/caption]
解密的过程则与加密相反
根据密钥第一个字母 F 所对应的 F 行字母表,发现密文第一个字母 Y 位于 T 列,因而明文第一个字母为T。 依次类推即可求出明文!
课后延伸阅读
破译维吉尼亚密码:卡西斯基试验和弗里德曼试验
[kml_flashembed publishmethod="static" fversion="8.0.0" movie="http://player.youku.com/player.php/sid/XNDM0OTE3Nzg4/v.swf" width="600" height="450" targetclass="flashmovie" wmode="transparent"]
[/kml_flashembed] [buy]
获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://urlxf.qq.com/?uYbYj2E']视频下载[/Downlink]