换字式密码破解和维吉尼亚密码
让编程改变世界
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、Z2. 依照上表逐个进行替换尝试
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]