Substitution-Cipher

關於單字母替換的問題

  • July 17, 2019

問題: 密碼流使用簡單的單字母替換技術對 6 位字元的數據流進行操作。估計並解釋可能的不同替換字母的數量。關鍵實際上是替換字母表,可以表示為 $ 384 $ -位數(即 $ 64×6 $ 位)。

與 DES/3DES 和一次性密碼器相比,討論該系統的安全性,為您的結論提供充分的理由。

這是一個過去的考試問題,我正在努力解決。我不是安全專家,也不打算朝著這個方向發展。該模組是我的理學碩士課程的一部分,與我的職業無關。

答案(我到目前為止):

不同替換字母的數量是 $ 26! $ (階乘),假設使用英文字母。還假設字母可以在任何位置並且不能重複。

  • 為什麼key突然表示為a $ 384 $ -位數?我不明白。為什麼 $ 64·6 $ ?
  • 我們沒有 $ 64 $ 我們的字母表中的字元…如果英文字母表中的每個字元都用 $ 6 $ 位,那麼它應該是 $ 6·26=156 $ 位。正確的?
  • 現在我在想如果問題說 $ 64 $ ,也許字母表是自定義的(比如包括大寫字母和一些數字+字元),所以排列的數量是 $ 64! $ (階乘)。它是否正確?
  • 這把鑰匙是什麼樣子的(或這種鑰匙的一個例子)?

我理解用一個關鍵字替換鍵。例如:

abcdefghijklmnopqrstuvwxyz

hatredbcfgijklmnopqsuvwxyz

  • 你能幫我確定替換字母鍵應該是什麼樣子嗎?
  • 我去了維基百科的頁面六位字元程式碼,變得更加困惑。這個連結甚至相關嗎?

我會欣賞例子而不是答案。謝謝你。如果您覺得我的問題太長,請忽略與其他加密系統比較的部分。

他們為密鑰提出的格式似乎是某種位壓縮數組。首先,使用 6 位,有 64 個可能的值 (0-63)。現在,假設您有如下替換規則(您的密鑰):

0 -> 17

1 -> 43

2 -> 12

63 -> 8

這意味著:加密時,將所有出現的值替換為0,將17所有1s 替換43為 等。這些值可能對應於字母,但此時不是必需的。由於映射表左側的數字是連續的,因此寫入此鍵的另一種形式是 $ 17,43,12,…,8 $ . 這可以很容易地轉換為更詳細的初始版本。列表中的每個數字需要 6 位來表示(因為它也必須是 $ <64 $ ),其中有 64 個,因此儲存密鑰的總位數為 $ 64*6=384 $ .

在某種程度上,這個密鑰大小是騙人的。大小鍵 $ l $ 位通常意味著有 $ 2^l $ 鑰匙的可能性。在這裡,您使用階乘是正確的。只有 $ 64!\approx 2^{296} $ 可能的鍵。要理解為什麼會這樣,想想如果發送了密鑰,但最後一個 6 位數字被遺漏了會發生什麼。我們可以通過查看尚未使用的值來確定它是哪一個。即使省略最後兩個 6 位數字,密鑰也只有兩種可能性 ( $ a,b $ 或者 $ b,a $ )。很明顯,發送 384 位意味著我們發送的比我們嚴格需要的多。

6 位字元程式碼只是將算法使用的這些 6 位數字轉換為對人類有用的字元的一種可能方式。

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