One-Time-Pad

如果置換新密鑰,多重 OTP 加密何時會變得不安全?

  • August 23, 2019

我知道OTP加密完全保密,這意味著除非您擁有 OTP 密鑰,否則您無法將加密文本解密為其原始明文(並且知道此明文確實是原始明文)。

讓我們假設:

  • Alice 創建了一個真正隨機的 10 個字元(鍵)的字母流。
  • 密鑰與 Bob 共享(我們假設它是安全的,其他人無法獲得密鑰的知識)
  • 現在 Alice 可以加密一個有長度的文本 $ \le $ 密鑰長度
  • 加密文本發送給 Bob
  • Bob 可以用密鑰解密加密的文本

現在是“新”部分:

Alice 再次想使用 OTP 加密向 Bob 發送消息。但是,Alice 並沒有創建一個全新的真正隨機的 OTP 密鑰,而是**置換了之前使用的 OTP 密鑰。**然後,此置換密鑰用於進一步的 OTP 加密/解密。置換後的密鑰與以前的密鑰進行檢查,以確保不會使用相同的密鑰進行加密。

我們假設 Bob 總是通過安全通道接收新的(置換的)密鑰,並且沒有其他人(曾經)知道密鑰。我們還假設在加密/解密之前/之後沒有其他人知道任何明文消息。


鍵範例:

$ k_1 = \text{gubapqrytt} $ (真正隨機)

$ k_2 = \text{permute}(k_1) = \text{ptyaqgtbur} $

$ k_3 = \text{permute}(k_2) = \ldots $


  • 這會影響 OTP 的安全性嗎?
  • 第一條消息何時容易被對手解密?
  • 是否所有其他密鑰(如果沒有洩露)仍然提供完美的保密性?

編輯:

我們假設所有密鑰都是保密的,並且不會洩露任何密鑰(無論這看起來多麼不切實際)。我只擔心這個方案是否容易受到任何已知的攻擊,比如頻率分析,因為密鑰總是具有相同的字元。

這會影響 OTP 的安全性嗎?

是的,它破壞了 OTP 的概念,您的系統恢復為算法密碼,其強度與加擾方法的強度相當。這變成了 OPT 的排列,因此從數學上講,由於字元不重複,這很明顯。由於純文字可以更改,因此很難計算,但是 10!組合小於 400 萬。說根到〜1900,如果每條消息都不同,我會不願意發送更多資訊。

第一條消息何時容易被對手解密?

想像一下@fgrieu 對純文字洩漏的建議。第一個。然後下一條消息是相同的純文字,說“沒有變化”。更大的上下文/語義環境沒有改變。重新發送相同消息的機率必須為 >> 0,因為所有字母都在那裡(儘管已翻譯)。現代對手不僅會使用數學,還會使用社會學和心理學。

我不能做數學,但如果你繼續發送“沒有變化”,確定性會很快堆積起來。甚至可能有一個公式。查看它的一種簡單方法是在轉置變得固定時刪除初始 OTP 位。為了安全,您剩下的只是排列(在一些 RNG 種子下?)我們不這樣做。

我認為您通過自己參考頻率分析來了解答案。

是否所有其他密鑰(如果沒有洩露)仍然提供完美的保密性?

因此,如果系統不再是真正的 OTP,就不可能存在完美的保密性。

我們假設 Bob 總是通過安全通道接收新的(加擾的)密鑰,並且沒有其他人(曾經)知道該密鑰。

這不是 OTP 系統的問題嗎?如果存在此通道,則純 OTP 是解決方案,而不是此推導。作為一個小提示,還有消息完整性問題需要考慮,這在提議的方案中似乎沒有 - 通常的 OTP 警告。

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