什麼是“單字母替換密碼”的準確定義以及為什麼它提供的安全級別很差
根據我的線上研究,我對“單字母密碼”和“單字母替換密碼”之間的區別感到困惑。但是,我從Kifanga和Cornell.edu網站得到了我的答案,以供參考:
以下是我的回答:
單字母替換密碼是一種密碼,其中明文符號的每次出現都被相應的密文符號替換以生成密文。這種密碼的密鑰是對應關係表或計算對應關係的函式。
使用稱為字母頻率分析的解密方法很容易破解單字母替換密碼。這是通過研究密碼語言中的文本來完成的,並且可以確定每個字母的頻率。例如,在英語中,出現頻率最高的字母
E
緊隨其後T
。通過將密文中最常見的字母替換為E
第二個最常見的字母T
,依此類推,我將得到原始明文。我的定義和描述準確嗎?如果不是,什麼是準確的描述,為什麼它提供的安全級別很差?
單字母替換密碼使用字母表的固定排列 $ A $ 即$$ \pi:A\rightarrow A, $$加密明文 $ P=(P_1,\ldots P_n)\in A^n $ 長度 $ n $ 進入密文 $ C=(C_1,\ldots,C_n) \in A^n $ 通過$$ C_i=\pi(P_i),\quad i=1,\ldots,n. $$
對於自然語言,字母頻率是不均勻的。因此,給定足夠長的密文,可以很容易地恢復原始文本。
密文唯一恢復所需的明文長度稱為唯一性距離,見此處香農定義,與英文中的冗餘有關,這是字母分佈不均勻的結果。大多數英語模型給出的唯一性距離約為 30 個字母。
**編輯:**要查看攻擊單字母替換是多麼容易,請考慮英語的字母頻率,例如此處所示。四個最常見的字母 (E,T,A,O) 的總機率約為 $ 0.38 $ . 因此,如果我們有一個 30 個字母的密文(在僅密文攻擊中),則集合中字母的出現次數$$ \mathrm{U}={\sigma(E),\sigma(T),\sigma(A),\sigma(O)} $$很可能是最常見的四個密文字母,平均大約 $ 0.38 \times 30 \approx 11 $ 字母將屬於這個集合。只有 $ 4!=24 $ 這組的排列和嘗試所有可能會暴露一些類似英語的片段,有助於密碼分析。
小於的機率,比如說 $ t=8 $ , 密文字母屬於 $ \mathrm{U} $ 也可以使用二項分佈輕鬆評估 $ \mathrm{Bin}(40,0.38). $
這種攻擊可以通過考慮常見的 digrams(兩個連續的字母)、trigrams 等來進一步加強,並在這些基礎上形成假設,不僅是字母 $ \sf{T} $ 很常見,圖 $ \sf{TH} $ 在英語等中很常見。
在某種程度上保護這種加密的一個很好的對策是使用諧音替換,即一個更大基數的新字母表併或多或少均勻地拆分英語字母,其中每個常見字母被偽隨機映射到多個新密文符號. Simon Singh 的網站在這裡很好地描述了這一點。然而,這種對策決不能提供針對基於電腦的攻擊的現代密碼強度。