多表代替密码破解初探

本文探讨了一种多表代替密码的破解方法,通过对密文进行字母频率统计,发现单字母频率与常见英语文章概率不符,进而通过多表替换分析,找到了可能的转换密钥。通过初步翻译和猜解,最终成功解密出马丁路德金的《I Have a Dream》演讲稿。
摘要由CSDN通过智能技术生成


0x00.密文分析

第一次拿到这样一个txt文档,有7061个字节,由26个英文字母组成


ekfskkjxqhzjehueplxiroiitxegvltpuefdaiihvhehlenqhmxtnqsbblbtobporwfihmpotpehhahmalbwrifehqsblenqhmxhcjqmhtpehhaeuwmejlbxpkomkbhkblbtokfpmeikhehusippnxfajdtnmstriuvbpokhrpjrkxmtbgbioswpgtgeejkqeihjmjiftfkqeihosemgjfbhoirmrwimwpetfbtmkblbtoawtejgfeasqhclhjwoifefdeihmiagbblipdkspnusiltrgpbhmbtlbiehqsbadkfpnjcveoswlthathzqpotnptqikfpkptzjxirmrtxaopkcoiwgrqsbdhhbgtbspjcplptoikkotsepxnqqhhwsqhrmwrxwtmpdkqpmqsbhpoohnqefdenhhpalbwhhwsqhrmwrxwtmpdkqpmqsbdecwhcqsbhpoohtpmpedfptrdxeoejkdbinxqsbfthtifwmiambblbbtpehhtgrqsbnskegnjcremeoegegkqeihhhwsqhrmwrxwtmpdkqpmqsbhpoohfeubphhtdihpfxendthihckhuwlpxehqsbferpoiatutmpjibtgiafkqpmetfklipjboepxhhwsqhrmwrxwtmpdkqpmqsbhpoohtpmpedfdthbqtpsbiehqsbnhmhpmphctfboeetgnjitwoxtgraehimsefnwdctgbvefwehlenjvhdthithimiupuwiifpswlbqhrtxpjrmtfkqeywtnltgwcqdiihrtqeihehtmbhmbupstubnhgwoijqmhtpehhpikkeptdpjikpsknsbnbvlphqsbtlelepwipphcjqmopjrnfeivohpwoswfkbgtaeewgpuhmimiaoswiihmpeoqqeihthioswrbndkotpehhjcthrbkphiphnpplpxupmwmtbgthakklifenphmxgiqppjvseiswuboxkfpmeikhvkpoiatfdsbelplenhhpwvkptjohgembqskqtfdfbhxbpnftidfphtmvwdftmvlepwfbhvirdrgportmtgpwprqsbrgkdebhtadpmeasqmiadtapfenbooxtgrqsbkqmpqtqhcltjkehwmneotphaseirmpjrkxostokfpmeikltnipctqfqprjgplenklifenphmxgiqpthmiatmtmswleeotyphphcnhfjlkopejgewlhwrthmpwtrjcsjgioehbosemntimwrigdtbtpehhtfboeetskpatsphqsbhpoohjwhjdpkgtrnsbnbknsbnbvleelskpiifpatidftmcpregnrcceitwgpaqhimarovwlbaqnwoigpfepuwostoplpatgdjczrmpeibematgdoqjqvbopcrmbqhawdtwubqskqoswlbtlbegnrcceitwgpaqhimthoswamwtpstqdonjcikjiooqhepxhcqstpgkqeihthimiupstubnhgwointnlosemelpectelpecostovedfbeuwqnrjihrbfthioswltnsbphcalbwrifthioswmbnqmeoxjczrmpeibupstubtdnjiifppjosemstdfjvbimjjopjlbfehitgwltntiaoswctwlewqmbphnxiagiuosemtpgiqegwoiwgotabegplpfrwqoxiaiijdthaiaciooiqtdwoswomtglrefeytharoqojcootrrtfemghhvemplppefbqhgtbbopkdoswjmjftppnjcrwfinlknxhjvtposwotfppjltppcohgqsbitmcthirbphftobstfdpxjcnwamwakqeihoiqsbpqhdepktplhcoteetfzqnqeewgiuenqsbqegwoidecqhqogkqeihcmjfplplreecmkhrnjcmtittdthzqpotnppjoswmid.....


以下省略5k字节(试一试,可以在文后下载原文

毫无头绪,考虑到目标明文是英文,要从英文的语言特征入手,即要统计字母的频率,同时也要考虑是否有标点符号、空格等非实义字符。

 

0x01.字母频率统计

我们在统计字母频率之前,要先了解英语文章中的字母统计概率,这是通过大量文字的统计得到的一般性概率,能够体现出英语的语言特征


可以看出,正常的英语文章的单字母槪率降序排序应该是etaoinshrdlcumwfgypbvkjxqz

这个顺序及概率将会在之后破解明文有很大帮助。

下面将开始对Cipher进行字母统计

(1)单字母频率

p--640   9.06%

t--543   7.69%

h--518   7.34%

e--430   6.09%

o--418   5.92%

i--358   5.07%

b--351   4.97%

q--322   4.56%

w--304   4.31%

s--292   4.14%

m--289   4.09%

j--245   3.47%

g--243   3.44%

l--241   3.41%

f--238   3.37%

d--237   3.36%

r--233   3.30%

k--230   3.26%

n--224   3.17%

a--170   2.41%

c--166   2.35%

x--125   1.77%

v--116   1.64%

u--101   1.43%

z--21     0.30%

y--6     0.08%

all—7061

以上统计频率发现,最高频率字母“p”也只有9.06%,与单字母概率极不吻合,于是舍弃仅为单字母的情况。

(2)多表替换情况

由于有了上一次的经验,使用脚本检查Cipher是不是多表代替的情况,直接使用表数为3的多表代替,跑出来结果如下:


三个表的字母频率都很好的吻合了第一步的常见英语文章的字母槪率,并且考虑到舍弃掉空格、标点符号,于是决定从这里尝试破解。

0x02.分析与破解

(1)字母排序

我们将整篇文章按照每个字母先后为mod3同余1、2、0划分为单表1、单表2、单表3,按照常见英语文章的字母概率etaoinshrdlcumwfgypbvkjxqz(明文)对应三个单表(密文)分别为:

单表1:poehtgmsldrcfiavqxnjubzywk

单表2:bpikthmnsfrcegvqoaxjudzlyw

 

单表3:wqjthepoldiarfbnuxkgsczvym

于是有了初步的转换密钥(密文->明文)。为了计算机处理方便,我们将密钥的密文做a-z的排列得到转换关系为

密文

A

B

C

D

E

F

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值