為什麼我不能排列電子郵件並擺脫它?
我可以理解為什麼使用英文字母頻率可以輕鬆破解簡單的替換密碼,甚至
th
可以使用類似的英文二字。完整的隨機替換也將具有密鑰長度 $ 26! $ 可以做到的(周圍 $ 2^{88} $ ,也許是美國國家安全域)。但是電子郵件呢?據Google稱,電子郵件的平均字數為 400 字。所以我猜字母數至少會是 800 個字母。蠻力 $ 800! $ (假設一個完全隨機的置換函式)是不可能的。
我也猜想不能使用英文字母頻率,因為這些頻率適用於所有英文單詞,並且這些字母可以用來構造不同的單詞。但是,僅使用排列進行加密仍然不安全。
那為什麼呢?如何繞過暴力破解 $ 800! $ 排列?
我可以理解為什麼一個簡單的替換密碼很容易被破解,因為可以使用英文字母頻率,甚至可以使用英文圖表
th
,而且完全隨機替換的密鑰長度為 26!可以做到(大約 2^88 可能是 NSA)第一部分是正確的。一千年前的頻率分析可以很容易地打破這一點。很多時候,這是作為密碼學入門課程的家庭作業。請注意,在某些語言或某些上下文中,這可能需要更長的文本(Gabel’s Novel without
e
)。在現實生活中,由於攻擊者認識您,因此假定兩者都是已知的。嘗試所有排列不是正確的方法,因為它可能導致許多誤報和漫長的過程。
但是根據Google電子郵件,電子郵件的平均字數為 400 字,所以我猜字母數至少是 800 個字母。暴力破解800!(假設完整的隨機置換函式)是不可能的。我也猜想不能使用英文字母頻率,因為這些頻率適用於所有英文單詞,並且這些字母可以用來構造不同的單詞。但是,僅使用排列進行加密仍然不安全,所以為什麼會這樣,如何繞過暴力破解 800!。
我認為您對排列密碼的工作原理感到困惑。或者您指的是您生成更大的排列,例如兩個字元的排列,而不是您將擁有的一個 $ 26^2 $ 在標準英文字母中排列的元素。那將包含 $ 26^2! = 676! $ . 它有 1622 個十進制數字,試試這裡,或者大約5386位。這仍然適用於基於圖表的頻率攻擊,因此不安全。
現在,密鑰大小呢? **你如何交換這個密鑰?**這是不切實際的,因為您需要發送一個大小為 $ 676*2^{10} $ .
除了安全之外,密碼系統還需要可行,而這是不可行的。普遍的智慧是使用替換/排列(混淆/擴散)來實現像 AES 這樣的計算安全密碼並且實用。
我的意思是我們有 800 個字母,所以可能有 800 個位置。第一個字母將進入 800 個位置中的一個,第二個字母進入 799 個位置,因此總計 = 800!。根據您的回答,我想這種方法是完全安全的(如果字母長度很大),但不實用對嗎?
那是一種位置排列,只會打亂字母。它並不像人們想像的那麼安全,因為所有角色都在那裡。正確放置它們可能需要一些時間。電子郵件有一些已知的開頭和結尾,這將有助於找到排列。請記住,在已知明文攻擊下,這甚至是不安全的。密鑰大小仍然是問題。