破译游戏林喜军中国海洋大学信息安全实验室第2章《古典密码学》附件12•为了让同学们切身感受密码分析的乐趣,我们来玩一个小游戏。•通过这个游戏,想说明的问题是:•如果密文中保留了明文中的空格等信息•即使没有数学基础,有时候也能轻松搞定简单代换密码•破译所需要的只是一点儿①洞察力②逻辑思维能力③对语言的了解④胆大心细。•看下面这段用简单代换密码生成的密文(明文为英语)PCQVMJYPDLBYKLYSOKBXBJXWXVBXVZCJPOEYPDKBXBJYUXJLBJOOKCPKCPLBOLBCMKXPVXPVIYJKLPYDBLQBOPKBOBXVOPVOVLBOLXROCISXXJMIKBOJCKOXPVEYKKOVLBODJCMPVZOICJOBYSKXUYPDDJOXLEYPDICJXLBCMKXPVXPVCPOPYDBLKYBXNOZOOPJOACMPLYPDLCUCMLBOIXZROKCIFXKLXDOKXPVLBORODOPVKCIXPAYOPLEYPDKSXUYSXEOKCZCRVXKLCAJXNOXIXNCMJCIUCMJSXGOKLU【基本思路】密文中每个独立字母和字母组合都应该对应一个有意义的单词。破译方法:从简单到复杂,先分析单个密文字母形成的词,再以之为突破口,分析双字母词和三字母词。•(1)密文里出现两个独立字母:X和Y。英语中只有a和i可以独立成词。X和Y分别对应a还是i尚且不知,但是明/密文的对应关系已经露了马脚。PCQVMJYPDLBYKLYSOKBXBJXWXVBXVZCJPOEYPDKBXBJYUXJLBJOOKCPKCPLBOLBCMKXPVXPVIYJKLPYDBLQBOPKBOBXVOPVOVLBOLXROCISXXJMIKBOJCKOXPVEYKKOVLBODJCMPVZOICJOBYSKXUYPDDJOXLEYPDICJXLBCMKXPVXPVCPOPYDBLKYBXNOZOOPJOACMPLYPDLCUCMLBOIXZROKCIFXKLXDOKXPVLBORODOPVKCIXPAYOPLEYPDKSXUYSXEOKCZCRVXKLCAJXNOXIXNCMJCIUCMJSXGOKLU{X,Y}{a,i}5•以X和Y为基准,到密文中寻找与X或Y相关的双字母词。PCQVMJYPDLBYKLYSOKBXBJXWXVBXVZCJPOEYPDKBXBJYUXJLBJOOKCPKCPLBOLBCMKXPVXPVIYJKLPYDBLQBOPKBOBXVOPVOVLBOLXROCISXXJMIKBOJCKOXPVEYKKOVLBODJCMPVZOICJOBYSKXUYPDDJOXLEYPDICJXLBCMKXPVXPVCPOPYDBLKYBXNOZOOPJOACMPLYPDLCUCMLBOIXZROKCIFXKLXDOKXPVLBORODOPVKCIXPAYOPLEYPDKSXUYSXEOKCZCRVXKLCAJXNOXIXNCMJCIUCMJSXGOKLU{X,Y}{a,i}6•于是,有以下两种情况:①Xa:XKaK,以a开头的双字母单词有哪些呢?不妨把26个字母都代进去试一试(暂且称这种方法为代入法吧),有意义的只有:an、as、at。②Xi:XKiK,同样的方法可知,以i开头的双字母单词中,有意义的只有:if、in、is、it。•也就是说:•Xa时,K{n、s、t}•Xi时,K{f、n、s、t}•因此,下面两条公式中有一条必然成立:Xa,K{n,s,t}Xi,K{f,n,s,t}7(2)以K为基准,寻找密文中与K相关的双字母词。PCQVMJYPDLBYKLYSOKBXBJXWXVBXVZCJPOEYPDKBXBJYUXJLBJOOKCPKCPLBOLBCMKXPVXPVIYJKLPYDBLQBOPKBOBXVOPVOVLBOLXROCISXXJMIKBOJCKOXPVEYKKOVLBODJCMPVZOICJOBYSKXUYPDDJOXLEYPDICJXLBCMKXPVXPVCPOPYDBLKYBXNOZOOPJOACMPLYPDLCUCMLBOIXZROKCIFXKLXDOKXPVLBORODOPVKCIXPAYOPLEYPDKSXUYSXEOKCZCRVXKLCAJXNOXIXNCMJCIUCMJSXGOKLUY{a,i}Xa,K{n,s,t}Xi,K{f,n,s,t}K{f,n,s,t}8用代入法枚举KC:•Kf:KCfC,没有以f开头的双字母单词,因此K不会对应f•Kn:KCnC,以n开头的双字母单词只有no•Ks:KCsC,以s开头的双字母单词只有so•Kt:KCtC,以t开头的双字母单词只有to{X,Y}{a,i}K{n,s,t},Co代入密文中9(3)以o为基准,寻找密文与o相关的双字母词。PoQVMJYPDLBYKLYSOKBXBJXWXVBXVZoJPOEYPDKBXBJYUXJLBJOOKoPKoPLBOLBoMKXPVXPVIYJKLPYDBLQBOPKBOBXVOPVOVLBOLXROoISXXJMIKBOJoKOXPVEYKKOVLBODJoMPVZOIoJOBYSKXUYPDDJOXLEYPDIoJXLBoMKXPVXPVoPOPYDBLKYBXNOZOOPJOAoMPLYPDLoUoMLBOIXZROKoIFXKLXDOKXPVLBORODOPVKoIXPAYOPLEYPDKSXUYSXEOKoZoRVXKLoAJXNOXIXNoMJoIUoMJSXGOKLU{X,Y}{a,i}K{n,s,t}10密文中出现oP、oI、Ko、Lo•以o开头双字母单词:of、on、or•以o结尾双字母单词:do、no、so、to{X,Y}{a,i}{P,I}{f,n,r}L{d,n,s,t},K{n,s,t}到目前为止,手头资料差不多了,可以进一步深入看看密文中与以上字母相关的多字母词,最好一个词里包含它们中的两个或多个11(4)神助攻:密文里不仅有oP,还有oPO。PoQVMJYPDLBYKLYSOKBXBJXWXVBXVZoJPOEYPDKBXBJYUXJLBJOOKoPKoPLBOLBoMKXPVXPVIYJKLPYDBLQBOPKBOBXVOPVOVLBOLXROoISXXJMIKBOJoKOXPVEYKKOVLBODJoMPVZOIoJOBYSKXUYPDDJOXLEYPDIoJXLBoMKXPVXPVoPOPYDBLKYBXNOZOOPJOAoMPLYPDLoUoMLBOIXZROKoIFXKLXDOKXPVLBORODOPVKoIXPAYOPLEYPDKSXUYSXEOKoZoRVXKLoAJXNOXIXNoMJoIUoMJSXGOKLU{X,Y}{a,i}{P,I}{f,n,r}L{d,n,s,t},K{n,s,t}oPOofO、onO、orO代入法对O枚举:one可知Oe,Pn代入密文中12(5)这时候,密文中有些原来较长的词现在只有一个字母未确定,这也是一个突破点。noQVMJYnDLBYKLYSeKBXBJXWXVBXVZoJneEYnDKBXBJYUXJLBJeeKonKonLBeLBoMKXnVXnVIYJKLnYDBLQBenKBeBXVenVeVLBeLXReoISXXJMIKBeJoKeXnVEYKKeVLBeDJoMnVZeIoJeBYSKXUYnDDJeXLEYnDIoJXLBoMKXnVXnVonenYDBLKYBXNeZeenJeAoMnLYnDLoUoMLBeIXZReKoIFXKLXDeKXnVLBeReDenVKoIXnAYenLEYnDKSXUYSXEeKoZoRVXKLoAJXNeXIXNoMJoIUoMJSXGeKLU{X,Y}{a,i}I{f,r}L{d,s,t},K{s,t}KonKsons、tontKs代入密文中13(6)还有哪些可以利用的?noQVMJYnDLBYsLYSesBXBJXWXVBXVZoJneEYnDsBXBJYUXJLBJeesonsonLBeLBoMsXnVXnVIYJsLnYDBLQBensBeBXVenVeVLBeLXReoISXXJMIsBeJoseXnVEYsseVLBeDJoMnVZeIoJeBYSsXUYnDDJeXLEYnDIoJXLBoMsXnVXnVonenYDBLsYBXNeZeenJeAoMnLYnDLoUoMLBeIXZResoIFXsLXDesXnVLBeReDenVsoIXnAYenLEYnDsSXUYSXEesoZoRVXsLoAJXNeXIXNoMJoIUoMJSXGesLU{X,Y}{a,i}I{f,r}L{d,t}代入法对B枚举:Bh(sBeshe)代入密文中14(7)还有哪些可以利用的?noQVMJYnDLhYsLYSeshXhJXWXVhXVZoJneEYnDshXhJYUXJLhJeesonsonLheLhoMsXnVXnVIYJsLnYDhLQhenshehXVenVeVLheLXReoISXXJMIsheJoseXnVEYsseVLheDJoMnVZeIoJehYSsXUYnDDJeXLEYnDIoJXLhoMsXnVXnVonenYDhLsYhXNeZeenJeAoMnLYnDLoUoMLheIXZResoIFXsLXDesXnVLheReDenVsoIXnAYenLEYnDsSXUYSXEesoZoRVXsLoAJXNeXIXNoMJoIUoMJSXGesLU{X,Y}{a,i}I{f,r}L{d,t}Lhedhe、theLt代入密文中15(7)还有哪些可以利用的?noQVMJYnDthYstYSeshXhJXWXVhXVZoJneEYnDshXhJYUXJthJeesonsonthethoMsXnVXnVIYJstnYDhtQhenshehXVenVeVthetXReoISXXJMIsheJoseXnVEYsseVtheDJoMnVZeIoJehYSsXUYnDDJeXtEYnDIoJXthoMsXnVXnVonenYDhtsYhXNeZeenJeAoMntYnDtoUoMtheIXZResoIFXstXDesXnVtheReDenVsoIXnAYentEYnDsSXUYSXEesoZoRVXstoAJXNeXIXNoMJoIUoMJSXGestU{X,Y}{a,i}I{f,r}代入法对J枚举:thJeesonsthreesonsJr代入密文中If16(8)还有哪些可以利用的?noQVMrYnDthYstYSeshXhrXWXVhXVZorneEYnDshXhrYUXrthreesonsonthethoMsXnVXnVfYrstnYDhtQhenshehXVenVeVthetXReofSXXrMfsheroseXnVEYsseVtheDroMnVZeforehYSsXUYnDDreXtEYnDforXthoMsXnVXnVonenYDhtsYhXNeZeenreAoMntYnDtoUoMthefXZResofFXstXDesXnVtheReDenVsofXnAYentEYnDsSXUYSXEesoZoRVXstoArXNeXfXNoMrofUoMrSXGestU{X,Y}{a,i}这里从未关注过,却出现有意义单词,说明此前推测靠谱thYsthas、thisYi,Xa代入密文中代入法对Z枚举,Zefore、Zeenbefore、beenZb17(9)还有哪些可以利用的?noQVMrinDthistiSeshahraWaVhaVborneEinDshahriUarthreesonsonthethoMsanVanVfirstniDhtQhenshehaVenVeVthetaReofSaarMfsheroseanVEisseVtheDroMnVbeforehiSsaUinDDreatEinDforathoMs