Cryptanalysis

如何從關鍵字密碼中獲取關鍵字?

  • June 1, 2012

我得到了一個密文,現在我正試圖通過尋找關鍵字來破解它。這是一個關鍵字密碼。所以:

純英語:ABCDEFGHIJKLMNOPQRSTUVWXYZ

如果關鍵字是HELLO,

密文:HELOABCDFGIJKMNPQRSTUVWXYZ

所以,我做了一些頻率分析,設法得到最常用字母的百分比,並製作了一個字母表,我以降序方式排列,並將其與正常預期的英文字母進行比較頻率。

好吧,我可以繼續嘗試逐一匹配文本,但我讀到也有可能找到關鍵字。我正在尋找關於如何開始這項任務的一些想法。

左邊是英文,右邊是密碼:

e   12.702      o   10.772
t   9.056       k   10.611
a   8.167       t   9.003
o   7.507       d   8.521
i   6.966       n   8.039
n   6.749       j   6.913
s   6.327       q   6.431
h   6.094       r   4.984
r   5.987       c   4.823
d   4.253       h   3.939
l   4.025       l   3.617
c   2.782       s   3.617
u   2.758       u   3.296
m   2.406       i   2.894
w   2.36        w   2.492
f   2.228       a   2.412
g   2.015       b   1.849
y   1.974       m   1.688
p   1.929       y   1.367
b   1.492       v   1.125
v   0.978       e   0.884
k   0.772       g   0.241
j   0.153       p   0.161
x   0.15        z   0.161
q   0.095       f   0.08
z   0.074       x   0.08

所以我按照正常的ABCDEFs把它安排回來。只是想更多地理解它。我有點頭緒。我認為關鍵字可能是TVSHOW,但不可能是,因為我已經嘗試使用它進行解密,而 W 就像在鏈中一樣。關於如何解決關鍵字的任何想法?

abcdefghijklmnopqrstuvwxyz
tvshoabrnpglijdyfcqkuewzmx

讓我們首先考慮哪些密碼字母應該對應於最常見的字母ET。根據您的頻率分析,最有可能的候選者是O, K,T可能DN

現在,E是字母表的第五個字母,所以除非您的關鍵字很短,否則它將加密到關鍵字中的某個字母(如果關鍵字短,E可能會加密為Aor B,這在這個案例)。所以我們暫時忽略E

但是,T是字母表中的第 20 個字母,因此除非您的關鍵字有 20 個或更多(唯一!)字母,T否則將加密為“剩餘”字母之一。因此,加密將告訴您關鍵字範圍內包含T多少個字母。T``Z

所以讓我們考慮一下可能性。我們可以完全排除T加密 to K——這將要求關鍵字在 to 範圍內包含九個字母,但該範圍T內只有七個字母!和也是如此,雖然幾乎不可能,但似乎也不可信。即使,在字母表中的四個位置上,似乎也不太可能,因為字母表中的大多數字母都相當罕見。所以我的猜測是——以及字母表中它後面的每個字母——都會對其自身進行加密。看看你的字母頻率,這似乎是合理的。Z``D``N``O``T``T``T

這留下OK作為合理的加密E; 其中另一個可能代表A,這意味著它們都出現在關鍵字中(特別是其中一個是關鍵字中的第一個字母)。或者,K可能代表O,和DN代表A

那麼P,和Q,那麼呢?好吧,沒有辦法對自己進行加密——英語中 的頻率幾乎從未超過. 但是,(標稱頻率。0.095)可能很好地加密為(密文頻率。0.161);它當然不會加密到或,這是密文中唯一比 . 頻率低的字母。這意味著,和之一必須出現在鍵中;(3.617)的密文頻率與其標稱頻率 (6.327) 相差甚遠,我們可能會猜測它在密鑰中,這將為我們提供以下部分密碼表:R``S``Q``Q``U``Q``P``Z``F``X``P``Q``R``S``S

ABCDEFGHIJKLMNOPQRSTUVWXYZ
????????????????PQRTUVWXYZ    key letters: S, (O/K)

我們也可能猜測P(名義頻率 1.929)加密為M(密文頻率 1.688)——它當然不能加密為N(頻率 8.039)或O(頻率 10.772),除非您的消息是關於 peppy popping pepper pips 之類的. O然後(nf 7.507)可以加密到(Lcf 3.617)嗎?也許吧,但K(cf 10.611)似乎更有可能。

那將意味著E加密到O並且LN發生在密鑰中。它們可以代表哪些明文字母?好吧,查看頻率表,N可能代表AandL代表Cor D。這給了我們以下部分密碼表:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
N???O?????????KMPQRTUVWXYZ    key letters: L, S

大概,L並且S代表CD以任一順序,但很難從頻率中分辨出哪個。那麼,什麼字母可以代表B呢?嗯,E看起來是一個合理的選擇——頻率非常接近,並且E很常見,很可能出現在關鍵字中。猜測L可能代表C,這使得密碼表看起來像這樣:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
NELSO?????????KMPQRTUVWXYZ

可以是關鍵字NELSO(N)嗎?如果是這樣,A將代表F, BforG等等:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
NELSOABCDFGHIJKMPQRTUVWXYZ

查看頻率,我沒有看到明顯的不匹配,所以我猜這就是解決方案。當然,檢查實際密文可以證實或反駁這一點,但僅根據頻率,它看起來似乎是合理的。

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