Vigenere

使用 Vigenere 密碼實現完美保密的條件

  • August 26, 2016

請原諒我在這裡的無知,因為我離數學專業還很遠,而且我以前從未研究過密碼學,所以如果這看起來很愚蠢 - 可能是。我正在嘗試的測驗中有一個問題只是讓我頭疼。如果您想知道 - 我不是為了學分或通過它獲得任何認證,只是為了我自己的利益。

我現在已經多次嘗試過這個問題,但我仍然弄錯了,我不明白為什麼。這是問題:

考慮小寫英文字母表上的 Vigenere 密碼,其中密鑰的長度為 6。對於以下哪個消息空間,該方案將是完全保密的?(檢查所有適用。)

  1. 小寫英文字母的所有 7 個字元的字元串的集合。
  2. 最多包含 6 個字元的所有小寫英文字母字元串的集合。
  3. 所有 6 個字元的小寫英文字母串的集合。
  4. 小寫英文字母的所有 5 個字元的字元串的集合。

我知道由於“檢查所有適用”標準,我會受到可用組合的懲罰,但我現在處於盲目猜測的地步——這只是沒有學習。

我對此特別惱火,因為在同一個測驗中,以下被認為是另一個問題的一個方面的正確答案:

“如果密鑰的長度等於消息空間中消息的長度,那麼 Vigenere 密碼就是完全保密的。”

對我來說,答案似乎是:2、3 和 4 -錯誤

也許這是錯誤的,因為“密鑰”只有消息空間中“字元串”的一個單獨成員的長度,而不是“消息空間中所有消息”的總長度?(即,這將有效地將其變成一個一次性便箋簿,其中密鑰的長度與總消息空間的長度相同?)

我應該如何分解這個問題以通過某種數學推理得出答案,而不是盲目地研究它(這就是我現在所處的位置)?

Vigenere 密碼的描述

現在,當我們介紹 Vigenère 密碼時,我們以以下方式介紹它。我們說鑰匙是一串字母。來自英文字母的明文也將由來自英文字母的字母組成。要使用密鑰加密給定的明文,您只需將明文中的每個字元移動由密鑰的下一個字元指定的數量。你可以把這個簡單看作加法模 26,因為英文字母表中有 26 個字母。如果密鑰更短,那麼您只需根據需要將明文包裹在密鑰中,解密只會反轉該過程。

據我所知,您最初的推理是正確的。要使用 Vigenère 密碼獲得完全保密,密鑰不得重複。只要密鑰至少與消息一樣長,密鑰就不會重複,因此選項 2 顯然是完全保密的充分(實際上是必要)條件,至少就僅考慮密鑰長度而言。選項 3 和 4 是選項 2 的子集,因此如果選項 2 正確,那麼它們也必須正確。因此,正確答案(除非這是一個技巧問題)應該是 (2, 3, 4)。

但是請注意,除了密鑰長度之外,還有關於 Vigenère 密碼完全保密的條件。特別是,要使用 Vigenère 密碼獲得完全保密:

  1. 密鑰必須至少與消息一樣長,
  2. 每個關鍵字母必須從整個密文字母表中獨立且均勻地隨機選擇,並且
  3. 同一密鑰不得用於多於一條消息。

您引用的問題中的選項沒有提及第二個和第三個條件,因此可以說,它們不足以保證完全保密。雖然我認為這是對應試者玩的一個相當討厭的把戲(特別是考慮到這樣的論點似乎與您引用的另一個問題的“正確”答案相矛盾),但從技術上講,這將是一個有效的答案(並且可以說有效的答案)的問題。


附言。我剛剛想到的一種可能的解釋是,您的課程可能使用了完全保密的定義,如果向攻擊者透露消息的長度(並且對於所有有效消息都不相同),則違反了該定義。這實際上是一個合理的定義:如果攻擊者事先知道例如你的消息是yesor no,那麼簡單地了解消息的長度就會告訴他們它是哪一個。

由於 Vigenère 加密確實揭示了消息長度,因此這將排除選項 2,只留下選項 3 和 4(揭示消息長度不會向攻擊者提供任何資訊,因為所有有效消息具有相同的長度)作為正確答案。

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