Keys

為什麼替換密碼的密鑰空間不是 2^26 而是 2^88

  • January 17, 2020

已知密碼具有密碼算法的密鑰空間,其密鑰長度為 $ n $ 是(誰)給的 $ 2^n $ ,但替換密碼的密鑰空間是 $ 2^{88} $ 這是一個近似值 $ 26! $ . (我正在考慮 26 個字母的字母表)

假設密鑰長度是 26(它應該是字母表)為什麼不是 $ 2^{26} $ ?

密鑰長度為的密碼算法的密鑰空間 $ n $ 是(誰)給的 $ 2^n $

不,有以下混淆:

  • 鍵空間(或鍵空間) $ \mathcal K $ ,這是一組可能的鍵。
  • 鍵空間大小(或鍵空間的大小) $ |\mathcal K| $ ,這是可能的鍵的數量(整數)。
  • 密鑰長度(或密鑰大小),以位為單位,可以定義為密鑰空間大小的以 2 為底的對數(不一定是整數)。如果我們注意到 $ k $ 對於以位為單位的密鑰長度,密鑰空間 $ \mathcal K $ 有 $ |\mathcal K|=2^k $ 鍵,和 $ k=\log_2(|\mathcal K|) $ .
  • 用於表示鍵**的符號數。**如果鍵表示為 $ n $ 每個人都可以接受的符號 $ s $ 值,那麼 $ |\mathcal K|\le s^n $ 和 $ k\le n\log_2(s) $ . 當所有符號組合產生有效密鑰(這在現代對稱密碼中很典型)時,這些不等式就變成了等式。

這是一個輕微的簡化:通常,並且總是當在密鑰之前添加有效時,等效密鑰(即對解密產生相同效果的密鑰)被聚合併計為一個。然而,這種區別對於單字母替換密碼沒有用。

在 26 個字母的單字母替換密碼中,密鑰表示為每個明文字母按字母順序排列的密文字母列表:

  • 鍵空間是集合 $ \mathcal K $ 字母表的所有排列
  • 鍵空間大小是該集合中元素的數量,即整數 $ |\mathcal K|=26!=403291461126605635584000000 $ .
    這是因為明文字母A可以對應26個密文字母中的任何一個,明文字母B可以對應25個密文字母以外的任何一個明文字母A,明文字母C可以對應24個密文字母以外的任何一個明文字母AB,依此類推,直到明文字母Y對應2個可能的密文字母,並Z對應剩下的一個密文字母。
  • 以位為單位的密鑰長度是它的以 2 為底的對數: $ k=\log_2(26!)=\log(26!)/\log(2)\approx88.38 $ 少量。
  • 鍵中的符號數為 $ n=26 $ , 和 $ s=26 $ 可能的符號。

假設密鑰長度為26,為什麼(密鑰空間大小)不是 $ 2^{26} $ ?

那 $ 2^{26} $ 似乎建為 $ 2^n $ , 在哪裡 $ n $ 是符號的數量(不是密鑰長度),當 $ 2 $ 將是單個位所取的可能值的數量。差異使 $ 2^{26} $ 無關的。

一個相關的數字是 $ s^n=26^{26}=6156119580207157310796674288400203776=2^{\approx122.21} $ :這是字元串的數量 $ n=26 $ 每個選擇的字元 $ s=26 $ 人物。但這比密鑰空間大得多,因為單字母替換密碼的密鑰必須使用不同的字母(否則解密會不明確)。

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