Encryption

解密使用密鑰替換加密的密文

  • February 7, 2017

我正在尋找使用密鑰進行簡單替換加密的密文的解密。我已經花了很多時間在這上面。然而,它不應該那麼艱難。所以我認為我的程序可能不正確。

問題是這樣的:

密鑰(英文字母表的排列)由密鑰字母和關鍵字生成。關鍵字是英文單詞(城市名和國家名可以),字母不重複。然後通過在字母表中的關鍵字母下方寫下關鍵字來導出密鑰;然後在關鍵字後面按循環順序寫下字母表的其餘字母。

例如,如果密鑰字母是“m”,關鍵字是 LAND,那麼密鑰是:

a b c d e f g h i j k l m n o p q r s t u v w x y z
O P Q R S T U V W X Y Z L A N D B C E F G H I J K M

從明文中刪除所有標點符號和空格,然後在加密之前將其分成 5 個字母組。

密文是:

LUPFK LLVBB VSTBU PAPFK VBVST QEALE ZPBUV STEAL EZPME OHKSO LVSNP LVBBV STKSO
FKVBV STFKL BUPES YHBUV STBEO EWCLB BUPSL UPLKB KSOFK VBPOF VBUKY YUPAZ VTUBK
SOZKV SZKBB UPFPS NECSB PAPOB UPLBK BVESZ KLBPA YENXV STCRB UPBVN XPBEQ QVNPR
APRKA KBEAH BETEV STUEZ PQEAL CRRPA KSOKL XPOUV ZVQBU PQVDP BUVAB HBAKV SFECY
OLEES MPKYE STBUP QVDPB UVABH BAKVS UKLMP PSVSK SOTES PUKYQ KSUEC AKTEK SLFPA
POBUK BMAVL XEQQV NVKYM CBBUP APFKL KRKLL PSTPA OAERR POEQQ QEAHE CKYVB BYPTV
AYLUP LLVBB VSTEC BBUPA PESBU PLUVS TYPLV KLXPO UPABE TEVSB EBUPY KOVPL FKVBV
STAEE ZMCBL UPVSQ EAZPO ZPTAK DPYHB UKBLU PRAPQ PAAPO BELBK HECBL VOPBU PAPFK
LZEAP LNERP QEAVZ KTVSK BVESL UPLKV OLUPL KNKLP VLUEC YOLKH VZSEB PGRPN BVSTK
TVAYL KVOZK BBUPF MYKSX YHVBL KMEHV DPNEZ PQEAU PLUEC YOMPU PAPZA LKYPG KSOPA
LRPSN PAFKL BEMAV STUVZ EDPAQ AEZSE DKLNE BVKQE AZPBU PLBKB VESZK LBPAF UVLBY
POPBN

我們知道以下是英文字母表中的字母,按頻率大致相等的字母分組。

每組中的字母按頻率降序排列:

Group 1:   e
Group 2:   t a o i n s h r
Group 3:   d l
Group 4:   c u m w f g y p b
Group 5:   v k j x q z

英語中最常見的二元組,按頻率降序排列,是:

th  he  in  er  re  on  an  en  at  es  ed  te  or  ti st

所以我從頻率分析和一些猜測開始,可以發現:

T was encrypted as L
H was encrypted as U
E was encrypted as P

A was encrypted as V
N was encrypted as S
D was encrypted as T

R was encrypted as A
S was encrypted as B

我做事正確嗎?

這樣做後我似乎被卡住了。我有什麼技術可以嘗試解決這個問題嗎?

在嘗試解密任何替換密碼時,我的第一步是計算每個字母在密文中出現的次數,並繪製排序後的字母頻率。為您的密文執行此操作會產生以下圖:

P: 84 ##########################################
B: 73 #####################################
V: 60 ##############################
K: 59 ##############################
E: 56 ############################
L: 52 ##########################
S: 47 ########################
A: 45 #######################
U: 44 ######################
O: 26 #############
T: 24 ############
Y: 21 ###########
Z: 21 ###########
Q: 19 ##########
F: 15 ########
C: 13 #######
N: 13 #######
R: 12 ######
H: 11 ######
M: 10 #####
D:  6 ###
X:  6 ###
G:  2 #
W:  1 #
I:  0
J:  0

(如果您懷疑您可能正在處理一個簡單的凱撒移位密碼,那麼查看按字母順序排序的相同圖也很有用,因為您可能能夠發現一些獨特的模式,例如 A/E/I 三峰,可以揭示移動量。)

將此圖與典型的英文字母頻率進行比較,總體形狀看起來非常相似,這表明這確實是一個單字母替換密碼。那麼,下一步就是簡單地嘗試一些替換,看看它們是否有意義。

例如,我們可能會猜測密文中最常見的兩個字母 P 和 B 分別代表明文字母 E 和 T。該猜測產生以下部分解密的消息(以小寫形式顯示密文,在其下方以大寫形式顯示相應的候選明文):

lupfk llvbb vstbu papfk vbvst qeale zpbuv steal ezpme ohkso lvsnp lvbbv stkso
__E__ ___TT ___T_ E_E__ _T___ _____ _ET__ _____ __E__ _____ ____E __TT_ _____
fkvbv stfkl bupes yhbuv stbeo ewclb bupsl uplkb ksofk vbpof vbuky yupaz vtubk
___T_ _____ T_E__ __T__ __T__ ____T T_E__ _E__T _____ _TE__ _T___ __E__ ___T_
sozkv szkbb upfps necsb papob uplbk bvesz klbpa yenxv stcrb upbvn xpbeq qvnpr
_____ ___TT _E_E_ ____T E_E_T _E_T_ T____ __TE_ _____ ____T _ET__ _ET__ ___E_
aprka kbeah betev stuez pqeal crrpa ksokl xpouv zvqbu pqvdp buvab hbakv sfecy
_E___ _T___ T____ _____ E____ ___E_ _____ _E___ ___T_ E___E T___T _T___ _____
olees mpkye stbup qvdpb uvabh bakvs uklmp psvsk sotes pukyq ksuec aktek slfpa
_____ _E___ __T_E ___ET ___T_ T____ ____E E____ _____ E____ _____ _____ ___E_
pobuk bmavl xeqqv nvkym cbbup apfkl krkll pstpa oaerr poeqq qeahe ckyvb byptv
E_T__ T____ _____ _____ _TT_E _E___ _____ E__E_ _____ E____ _____ ____T T_E__
aylup llvbb vstec bbupa pesbu pluvs typlv klxpo upabe tevsb ebupy kovpl fkvbv
____E ___TT _____ TT_E_ E__T_ E____ __E__ ___E_ _E_T_ ____T _T_E_ ___E_ ___T_
staee zmcbl upvsq eazpo zptak dpyhb ukblu prapq paapo belbk hecbl vopbu papfk
_____ ___T_ _E___ ___E_ _E___ _E__T __T__ E__E_ E__E_ T__T_ ___T_ __ET_ E_E__
lzeap lnerp qeavz ktvsk bvesl uplkv olupl knklp vluec yolkh vzseb pgrpn bvstk
____E ____E _____ _____ T____ _E___ ___E_ ____E _____ _____ ____T E__E_ T____
tvayl kvozk bbupf myksx yhvbl kmehv dpnez pqeau pluec yompu papza lkypg ksopa
_____ _____ TT_E_ _____ ___T_ _____ _E___ E____ E____ ___E_ E_E__ ___E_ ___E_
lrpsn pafkl bemav stuvz edpaq aezse dklne bvkqe azpbu plbkb veszk lbpaf uvlby
__E__ E____ T____ _____ __E__ _____ _____ T____ __ET_ E_T_T _____ _TE__ ___T_
popbn
E_ET_

您應該檢查的第一件事是,沒有像TTT這樣可能表示錯誤猜測的不太可能的字母序列。在這種情況下,沒有,所以我們現在可以假設我們最初的猜測 P=E 和 B=T 可能是正確的。(如果我們確實找到了一些看起來很奇怪的字母序列,我們可能想嘗試交換猜測,看看 P=T 和 B=E 是否會產生更合理的結果。我們也可以嘗試將 P 或 B 分配給明文字母 A,也可以很常見,等等)

一旦我們對最初的猜測相當有信心,我們就可以看看我們是否能夠從中推斷出任何其他密文/明文字母對,例如通過在部分明文中發現可能的單詞。方便的是,英語中最常見的詞是定冠詞“the”,它恰好包含 T 和 E。T_E在上面的部分明文中尋找形式的模式,我們可以看到其中幾個有 U 為中間的密文字母。因此,我們可以初步猜測 U 可能代表明文中的 H,並嘗試另一種部分解密:

lupfk llvbb vstbu papfk vbvst qeale zpbuv steal ezpme ohkso lvsnp lvbbv stkso
_HE__ ___TT ___TH E_E__ _T___ _____ _ETH_ _____ __E__ _____ ____E __TT_ _____
fkvbv stfkl bupes yhbuv stbeo ewclb bupsl uplkb ksofk vbpof vbuky yupaz vtubk
___T_ _____ THE__ __TH_ __T__ ____T THE__ HE__T _____ _TE__ _TH__ _HE__ __HT_
sozkv szkbb upfps necsb papob uplbk bvesz klbpa yenxv stcrb upbvn xpbeq qvnpr
_____ ___TT HE_E_ ____T E_E_T HE_T_ T____ __TE_ _____ ____T HET__ _ET__ ___E_
aprka kbeah betev stuez pqeal crrpa ksokl xpouv zvqbu pqvdp buvab hbakv sfecy
_E___ _T___ T____ __H__ E____ ___E_ _____ _E_H_ ___TH E___E TH__T _T___ _____
olees mpkye stbup qvdpb uvabh bakvs uklmp psvsk sotes pukyq ksuec aktek slfpa
_____ _E___ __THE ___ET H__T_ T____ H___E E____ _____ EH___ __H__ _____ ___E_
pobuk bmavl xeqqv nvkym cbbup apfkl krkll pstpa oaerr poeqq qeahe ckyvb byptv
E_TH_ T____ _____ _____ _TTHE _E___ _____ E__E_ _____ E____ _____ ____T T_E__
aylup llvbb vstec bbupa pesbu pluvs typlv klxpo upabe tevsb ebupy kovpl fkvbv
___HE ___TT _____ TTHE_ E__TH E_H__ __E__ ___E_ HE_T_ ____T _THE_ ___E_ ___T_
staee zmcbl upvsq eazpo zptak dpyhb ukblu prapq paapo belbk hecbl vopbu papfk
_____ ___T_ HE___ ___E_ _E___ _E__T H_T_H E__E_ E__E_ T__T_ ___T_ __ETH E_E__
lzeap lnerp qeavz ktvsk bvesl uplkv olupl knklp vluec yolkh vzseb pgrpn bvstk
____E ____E _____ _____ T____ HE___ __HE_ ____E __H__ _____ ____T E__E_ T____
tvayl kvozk bbupf myksx yhvbl kmehv dpnez pqeau pluec yompu papza lkypg ksopa
_____ _____ TTHE_ _____ ___T_ _____ _E___ E___H E_H__ ___EH E_E__ ___E_ ___E_
lrpsn pafkl bemav stuvz edpaq aezse dklne bvkqe azpbu plbkb veszk lbpaf uvlby
__E__ E____ T____ __H__ __E__ _____ _____ T____ __ETH E_T_T _____ _TE__ H__T_
popbn
E_ET_

同樣,我們應該檢查部分解密看起來是否合理。暫時指定明文字母 T、H 和 E 後,下一步可能是尋找形式為 的明文模式TH_T,這可能對應於(也相當常見的)單詞“that”。碰巧的是,我們發現了兩個這樣的實例,它們的中間都是密文字母 K。看上面的字母頻率圖,K是密文中第四常見的字母,略低於第三位的V,所以完全有可能是A的加密,一般算第三常見的平均英文字母。有了這個猜測,部分明文變為:

lupfk llvbb vstbu papfk vbvst qeale zpbuv steal ezpme ohkso lvsnp lvbbv stkso
_HE_A ___TT ___TH E_E_A _T___ _____ _ETH_ _____ __E__ __A__ ____E __TT_ __A__
fkvbv stfkl bupes yhbuv stbeo ewclb bupsl uplkb ksofk vbpof vbuky yupaz vtubk
_A_T_ ___A_ THE__ __TH_ __T__ ____T THE__ HE_AT A___A _TE__ _THA_ _HE__ __HTA
sozkv szkbb upfps necsb papob uplbk bvesz klbpa yenxv stcrb upbvn xpbeq qvnpr
___A_ __ATT HE_E_ ____T E_E_T HE_TA T____ A_TE_ _____ ____T HET__ _ET__ ___E_
aprka kbeah betev stuez pqeal crrpa ksokl xpouv zvqbu pqvdp buvab hbakv sfecy
_E_A_ AT___ T____ __H__ E____ ___E_ A__A_ _E_H_ ___TH E___E TH__T _T_A_ _____
olees mpkye stbup qvdpb uvabh bakvs uklmp psvsk sotes pukyq ksuec aktek slfpa
_____ _EA__ __THE ___ET H__T_ T_A__ HA__E E___A _____ EHA__ A_H__ _A__A ___E_
pobuk bmavl xeqqv nvkym cbbup apfkl krkll pstpa oaerr poeqq qeahe ckyvb byptv
E_THA T____ _____ __A__ _TTHE _E_A_ A_A__ E__E_ _____ E____ _____ _A__T T_E__
aylup llvbb vstec bbupa pesbu pluvs typlv klxpo upabe tevsb ebupy kovpl fkvbv
___HE ___TT _____ TTHE_ E__TH E_H__ __E__ A__E_ HE_T_ ____T _THE_ A__E_ _A_T_
staee zmcbl upvsq eazpo zptak dpyhb ukblu prapq paapo belbk hecbl vopbu papfk
_____ ___T_ HE___ ___E_ _E__A _E__T HAT_H E__E_ E__E_ T__TA ___T_ __ETH E_E_A
lzeap lnerp qeavz ktvsk bvesl uplkv olupl knklp vluec yolkh vzseb pgrpn bvstk
____E ____E _____ A___A T____ HE_A_ __HE_ A_A_E __H__ ___A_ ____T E__E_ T___A
tvayl kvozk bbupf myksx yhvbl kmehv dpnez pqeau pluec yompu papza lkypg ksopa
_____ A___A TTHE_ __A__ ___T_ A____ _E___ E___H E_H__ ___EH E_E__ _A_E_ A__E_
lrpsn pafkl bemav stuvz edpaq aezse dklne bvkqe azpbu plbkb veszk lbpaf uvlby
__E__ E__A_ T____ __H__ __E__ _____ _A___ T_A__ __ETH E_TAT ____A _TE__ H__T_
popbn
E_ET_

接下來,我們可以嘗試尋找更多的部分單詞,或者我們可以簡單地猜測一些更常見的字母。我們尚未分配給任何明文字母的最常見的密文字母是 V 和 E;兩者似乎都出現在人們可能期望元音的地方,所以我們可能會暫時猜測它們代表 I 和 O 的順序。在這兩個選項中,V=I 和 E=O 會產生看起來更可能的部分明文:

lupfk llvbb vstbu papfk vbvst qeale zpbuv steal ezpme ohkso lvsnp lvbbv stkso
_HE_A __ITT I__TH E_E_A ITI__ _O__O _ETHI __O__ O_E_O __A__ _I__E _ITTI __A__
fkvbv stfkl bupes yhbuv stbeo ewclb bupsl uplkb ksofk vbpof vbuky yupaz vtubk
_AITI ___A_ THEO_ __THI __TO_ O___T THE__ HE_AT A___A ITE__ ITHA_ _HE__ I_HTA
sozkv szkbb upfps necsb papob uplbk bvesz klbpa yenxv stcrb upbvn xpbeq qvnpr
___AI __ATT HE_E_ _O__T E_E_T HE_TA TIO__ A_TE_ _O__I ____T HETI_ _ETO_ _I_E_
aprka kbeah betev stuez pqeal crrpa ksokl xpouv zvqbu pqvdp buvab hbakv sfecy
_E_A_ ATO__ TO_OI __HO_ E_O__ ___E_ A__A_ _E_HI _I_TH E_I_E THI_T _T_AI __O__
olees mpkye stbup qvdpb uvabh bakvs uklmp psvsk sotes pukyq ksuec aktek slfpa
__OO_ _EA_O __THE _I_ET HI_T_ T_AI_ HA__E E_I_A ___O_ EHA__ A_HO_ _A_OA ___E_
pobuk bmavl xeqqv nvkym cbbup apfkl krkll pstpa oaerr poeqq qeahe ckyvb byptv
E_THA T__I_ _O__I _IA__ _TTHE _E_A_ A_A__ E__E_ __O__ E_O__ _O__O _A_IT T_E_I
aylup llvbb vstec bbupa pesbu pluvs typlv klxpo upabe tevsb ebupy kovpl fkvbv
___HE __ITT I__O_ TTHE_ EO_TH E_HI_ __E_I A__E_ HE_TO _OI_T OTHE_ A_IE_ _AITI
staee zmcbl upvsq eazpo zptak dpyhb ukblu prapq paapo belbk hecbl vopbu papfk
___OO ___T_ HEI__ O__E_ _E__A _E__T HAT_H E__E_ E__E_ TO_TA _O_T_ I_ETH E_E_A
lzeap lnerp qeavz ktvsk bvesl uplkv olupl knklp vluec yolkh vzseb pgrpn bvstk
__O_E __O_E _O_I_ A_I_A TIO__ HE_AI __HE_ A_A_E I_HO_ ___A_ I__OT E__E_ TI__A
tvayl kvozk bbupf myksx yhvbl kmehv dpnez pqeau pluec yompu papza lkypg ksopa
_I___ AI__A TTHE_ __A__ __IT_ A_O_I _E_O_ E_O_H E_HO_ ___EH E_E__ _A_E_ A__E_
lrpsn pafkl bemav stuvz edpaq aezse dklne bvkqe azpbu plbkb veszk lbpaf uvlby
__E__ E__A_ TO__I __HI_ O_E__ _O__O _A__O TIA_O __ETH E_TAT IO__A _TE__ HI_T_
popbn
E_ET_

現在我們可以發現重複模式ATIO_,其中以下密文字母始終為 S。後綴“-ation”在拉丁語起源的英語單詞中很常見,因此我們可以猜測 S=N,給出:

lupfk llvbb vstbu papfk vbvst qeale zpbuv steal ezpme ohkso lvsnp lvbbv stkso
_HE_A __ITT IN_TH E_E_A ITIN_ _O__O _ETHI N_O__ O_E_O __AN_ _IN_E _ITTI N_AN_
fkvbv stfkl bupes yhbuv stbeo ewclb bupsl uplkb ksofk vbpof vbuky yupaz vtubk
_AITI N__A_ THEON __THI N_TO_ O___T THEN_ HE_AT AN__A ITE__ ITHA_ _HE__ I_HTA
sozkv szkbb upfps necsb papob uplbk bvesz klbpa yenxv stcrb upbvn xpbeq qvnpr
N__AI N_ATT HE_EN _O_NT E_E_T HE_TA TION_ A_TE_ _O__I N___T HETI_ _ETO_ _I_E_
aprka kbeah betev stuez pqeal crrpa ksokl xpouv zvqbu pqvdp buvab hbakv sfecy
_E_A_ ATO__ TO_OI N_HO_ E_O__ ___E_ AN_A_ _E_HI _I_TH E_I_E THI_T _T_AI N_O__
olees mpkye stbup qvdpb uvabh bakvs uklmp psvsk sotes pukyq ksuec aktek slfpa
__OON _EA_O N_THE _I_ET HI_T_ T_AIN HA__E ENINA N__ON EHA__ ANHO_ _A_OA N__E_
pobuk bmavl xeqqv nvkym cbbup apfkl krkll pstpa oaerr poeqq qeahe ckyvb byptv
E_THA T__I_ _O__I _IA__ _TTHE _E_A_ A_A__ EN_E_ __O__ E_O__ _O__O _A_IT T_E_I
aylup llvbb vstec bbupa pesbu pluvs typlv klxpo upabe tevsb ebupy kovpl fkvbv
___HE __ITT IN_O_ TTHE_ EONTH E_HIN __E_I A__E_ HE_TO _OINT OTHE_ A_IE_ _AITI
staee zmcbl upvsq eazpo zptak dpyhb ukblu prapq paapo belbk hecbl vopbu papfk
N__OO ___T_ HEIN_ O__E_ _E__A _E__T HAT_H E__E_ E__E_ TO_TA _O_T_ I_ETH E_E_A
lzeap lnerp qeavz ktvsk bvesl uplkv olupl knklp vluec yolkh vzseb pgrpn bvstk
__O_E __O_E _O_I_ A_INA TION_ HE_AI __HE_ A_A_E I_HO_ ___A_ I_NOT E__E_ TIN_A
tvayl kvozk bbupf myksx yhvbl kmehv dpnez pqeau pluec yompu papza lkypg ksopa
_I___ AI__A TTHE_ __AN_ __IT_ A_O_I _E_O_ E_O_H E_HO_ ___EH E_E__ _A_E_ AN_E_
lrpsn pafkl bemav stuvz edpaq aezse dklne bvkqe azpbu plbkb veszk lbpaf uvlby
__EN_ E__A_ TO__I N_HI_ O_E__ _O_NO _A__O TIA_O __ETH E_TAT ION_A _TE__ HI_T_
popbn
E_ET_

現在我們開始有足夠多的解碼字母,有了一點想像力,我們可以開始在明文中製作越來越多的完整單詞。例如,在明文末尾附近有序列THE_TATION,中間是未解密的字母 L。這可以代表的唯一合理的英語片語是“車站”,表明L = S。再次檢查字母頻率是否合理,我們可以試試這個並得到:

lupfk llvbb vstbu papfk vbvst qeale zpbuv steal ezpme ohkso lvsnp lvbbv stkso
SHE_A SSITT IN_TH E_E_A ITIN_ _O_SO _ETHI N_O_S O_E_O __AN_ SIN_E SITTI N_AN_
fkvbv stfkl bupes yhbuv stbeo ewclb bupsl uplkb ksofk vbpof vbuky yupaz vtubk
_AITI N__AS THEON __THI N_TO_ O__ST THENS HESAT AN__A ITE__ ITHA_ _HE__ I_HTA
sozkv szkbb upfps necsb papob uplbk bvesz klbpa yenxv stcrb upbvn xpbeq qvnpr
N__AI N_ATT HE_EN _O_NT E_E_T HESTA TION_ ASTE_ _O__I N___T HETI_ _ETO_ _I_E_
aprka kbeah betev stuez pqeal crrpa ksokl xpouv zvqbu pqvdp buvab hbakv sfecy
_E_A_ ATO__ TO_OI N_HO_ E_O_S ___E_ AN_AS _E_HI _I_TH E_I_E THI_T _T_AI N_O__
olees mpkye stbup qvdpb uvabh bakvs uklmp psvsk sotes pukyq ksuec aktek slfpa
_SOON _EA_O N_THE _I_ET HI_T_ T_AIN HAS_E ENINA N__ON EHA__ ANHO_ _A_OA NS_E_
pobuk bmavl xeqqv nvkym cbbup apfkl krkll pstpa oaerr poeqq qeahe ckyvb byptv
E_THA T__IS _O__I _IA__ _TTHE _E_AS A_ASS EN_E_ __O__ E_O__ _O__O _A_IT T_E_I
aylup llvbb vstec bbupa pesbu pluvs typlv klxpo upabe tevsb ebupy kovpl fkvbv
__SHE SSITT IN_O_ TTHE_ EONTH ESHIN __ESI AS_E_ HE_TO _OINT OTHE_ A_IES _AITI
staee zmcbl upvsq eazpo zptak dpyhb ukblu prapq paapo belbk hecbl vopbu papfk
N__OO ___TS HEIN_ O__E_ _E__A _E__T HATSH E__E_ E__E_ TOSTA _O_TS I_ETH E_E_A
lzeap lnerp qeavz ktvsk bvesl uplkv olupl knklp vluec yolkh vzseb pgrpn bvstk
S_O_E S_O_E _O_I_ A_INA TIONS HESAI _SHES A_ASE ISHO_ __SA_ I_NOT E__E_ TIN_A
tvayl kvozk bbupf myksx yhvbl kmehv dpnez pqeau pluec yompu papza lkypg ksopa
_I__S AI__A TTHE_ __AN_ __ITS A_O_I _E_O_ E_O_H ESHO_ ___EH E_E__ SA_E_ AN_E_
lrpsn pafkl bemav stuvz edpaq aezse dklne bvkqe azpbu plbkb veszk lbpaf uvlby
S_EN_ E__AS TO__I N_HI_ O_E__ _O_NO _AS_O TIA_O __ETH ESTAT ION_A STE__ HIST_
popbn
E_ET_

現在,我們可以猜測明文的開頭SHE_A SSITT IN_TH E_E_A ITIN_ _O_SO _ETHI N_可能是“她坐在那裡等著什麼”,給我們 F=W、T=G、A=R、Q=F 和 Z=M。代入這些猜測,我們得到:

lupfk llvbb vstbu papfk vbvst qeale zpbuv steal ezpme ohkso lvsnp lvbbv stkso
SHEWA SSITT INGTH EREWA ITING FORSO METHI NGORS OME_O __AN_ SIN_E SITTI NGAN_
fkvbv stfkl bupes yhbuv stbeo ewclb bupsl uplkb ksofk vbpof vbuky yupaz vtubk
WAITI NGWAS THEON __THI NGTO_ O__ST THENS HESAT AN_WA ITE_W ITHA_ _HERM IGHTA
sozkv szkbb upfps necsb papob uplbk bvesz klbpa yenxv stcrb upbvn xpbeq qvnpr
N_MAI NMATT HEWEN _O_NT ERE_T HESTA TIONM ASTER _O__I NG__T HETI_ _ETOF FI_E_
aprka kbeah betev stuez pqeal crrpa ksokl xpouv zvqbu pqvdp buvab hbakv sfecy
RE_AR ATOR_ TOGOI NGHOM EFORS ___ER AN_AS _E_HI MIFTH EFI_E THIRT _TRAI NWO__
olees mpkye stbup qvdpb uvabh bakvs uklmp psvsk sotes pukyq ksuec aktek slfpa
_SOON _EA_O NGTHE FI_ET HIRT_ TRAIN HAS_E ENINA N_GON EHA_F ANHO_ RAGOA NSWER
pobuk bmavl xeqqv nvkym cbbup apfkl krkll pstpa oaerr poeqq qeahe ckyvb byptv
E_THA T_RIS _OFFI _IA__ _TTHE REWAS A_ASS ENGER _RO__ E_OFF FOR_O _A_IT T_EGI
aylup llvbb vstec bbupa pesbu pluvs typlv klxpo upabe tevsb ebupy kovpl fkvbv
R_SHE SSITT INGO_ TTHER EONTH ESHIN G_ESI AS_E_ HERTO GOINT OTHE_ A_IES WAITI
staee zmcbl upvsq eazpo zptak dpyhb ukblu prapq paapo belbk hecbl vopbu papfk
NGROO M__TS HEINF ORME_ MEGRA _E__T HATSH E_REF ERRE_ TOSTA _O_TS I_ETH EREWA
lzeap lnerp qeavz ktvsk bvesl uplkv olupl knklp vluec yolkh vzseb pgrpn bvstk
SMORE S_O_E FORIM AGINA TIONS HESAI _SHES A_ASE ISHO_ __SA_ IMNOT E__E_ TINGA
tvayl kvozk bbupf myksx yhvbl kmehv dpnez pqeau pluec yompu papza lkypg ksopa
GIR_S AI_MA TTHEW __AN_ __ITS A_O_I _E_OM EFORH ESHO_ ___EH EREMR SA_E_ AN_ER
lrpsn pafkl bemav stuvz edpaq aezse dklne bvkqe azpbu plbkb veszk lbpaf uvlby
S_EN_ ERWAS TO_RI NGHIM O_ERF ROMNO _AS_O TIAFO RMETH ESTAT IONMA STERW HIST_
popbn
E_ET_

在這一點上,填充明文的缺失位應該非常簡單,給我們:

lupfk llvbb vstbu papfk vbvst qeale zpbuv steal ezpme ohkso lvsnp lvbbv stkso
SHEWA SSITT INGTH EREWA ITING FORSO METHI NGORS OMEBO DYAND SINCE SITTI NGAND
fkvbv stfkl bupes yhbuv stbeo ewclb bupsl uplkb ksofk vbpof vbuky yupaz vtubk
WAITI NGWAS THEON LYTHI NGTOD OJUST THENS HESAT ANDWA ITEDW ITHAL LHERM IGHTA
sozkv szkbb upfps necsb papob uplbk bvesz klbpa yenxv stcrb upbvn xpbeq qvnpr
NDMAI NMATT HEWEN COUNT EREDT HESTA TIONM ASTER LOCKI NGUPT HETIC KETOF FICEP
aprka kbeah betev stuez pqeal crrpa ksokl xpouv zvqbu pqvdp buvab hbakv sfecy
REPAR ATORY TOGOI NGHOM EFORS UPPER ANDAS KEDHI MIFTH EFIVE THIRT YTRAI NWOUL
olees mpkye stbup qvdpb uvabh bakvs uklmp psvsk sotes pukyq ksuec aktek slfpa
DSOON BEALO NGTHE FIVET HIRTY TRAIN HASBE ENINA NDGON EHALF ANHOU RAGOA NSWER
pobuk bmavl xeqqv nvkym cbbup apfkl krkll pstpa oaerr poeqq qeahe ckyvb byptv
EDTHA TBRIS KOFFI CIALB UTTHE REWAS APASS ENGER DROPP EDOFF FORYO UALIT TLEGI
aylup llvbb vstec bbupa pesbu pluvs typlv klxpo upabe tevsb ebupy kovpl fkvbv
RLSHE SSITT INGOU TTHER EONTH ESHIN GLESI ASKED HERTO GOINT OTHEL ADIES WAITI
staee zmcbl upvsq eazpo zptak dpyhb ukblu prapq paapo belbk hecbl vopbu papfk
NGROO MBUTS HEINF ORMED MEGRA VELYT HATSH EPREF ERRED TOSTA YOUTS IDETH EREWA
lzeap lnerp qeavz ktvsk bvesl uplkv olupl knklp vluec yolkh vzseb pgrpn bvstk
SMORE SCOPE FORIM AGINA TIONS HESAI DSHES ACASE ISHOU LDSAY IMNOT EXPEC TINGA
tvayl kvozk bbupf myksx yhvbl kmehv dpnez pqeau pluec yompu papza lkypg ksopa
GIRLS AIDMA TTHEW BLANK LYITS ABOYI VECOM EFORH ESHOU LDBEH EREMR SALEX ANDER
lrpsn pafkl bemav stuvz edpaq aezse dklne bvkqe azpbu plbkb veszk lbpaf uvlby
SPENC ERWAS TOBRI NGHIM OVERF ROMNO VASCO TIAFO RMETH ESTAT IONMA STERW HISTL
popbn
EDETC

(如果您對明文的來源感到好奇,可以通過快速的 Google 搜尋發現它來自露西·莫德·蒙哥馬利(Lucy Maud Montgomery)於 1908 年出版的《綠山牆的安妮》一書的第 2 章。)

哦,關鍵字呢?好吧,我們並不真的需要它來解碼消息,但是由於我們現在(幾乎)擁有了整個密文字母表,我們可以按明文字母排序將其寫下來得到:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
kmnopqtuvwxyzser?albcdfgh?

其中兩個問號代表密文中沒有出現的字母 I 和 J,因為它們對應於罕見的明文字母 Q 和 Z。猜測 I=Q 和 J=Z,我們可以看到關鍵字是“serial”,關鍵字母是 N。(當然,在這種特殊情況下,關鍵字“serjal”也可以使用,但據我所知,英文中沒有這樣的詞。)

忽略密鑰。這是一種用於映射替換字母的算法。

字母、二字和三字的頻率會有所幫助。頻率根據語言和明文是否為句子而變化。

還要注意凱撒移位效應,a=O, b=P… 這適用於除被關鍵字替換的所有字母,並且對於關鍵字中使用的字母之後的每個字母進一步移位,q=B, r= C, s=E(由於關鍵字中的 D 導致的額外偏移)。

引用自:https://crypto.stackexchange.com/questions/42944