One-Time-Pad

在某些情況下多次使用一次性墊是否安全?

  • January 4, 2021

我明白為什麼|一次性便箋|=|消息| 使用普通的一次性便箋簿,但我不明白為什麼要完全保密,它必須始終是 |key|>|all messages exchanged|。

例如,如果我有 |one-time pad|=n*|message| 怎麼辦?n>1 然後將其用於(例如)2n 條具有隨機起點的消息(本身在消息中的某個點用“正常”一次性填充進行編碼,假設它是一個數字,可能只是第一個原始 OTP 的一部分)?

我很確定肯定有什麼東西不起作用,因為如果這仍然是完全保密的,那麼一次性墊可以用來生成無限的一次性墊,這將是有用但不可能的(不是每個人都是使用它?)。那麼,一次性密本的完美加密到哪裡結束呢?

對於任何密碼系統的完全保密,它必須持有|密鑰|≥|所有交換的消息|。

對立證明:假設|key|<|所有交換的消息|,所有交換的密文和交換的所有消息的**密鑰都存在一個確定性的解密過程。知道所有交換的消息,一個無限強大的對手可以排除一些不可能交換的消息的價值,違反完全保密;他/她所要做的就是應用所述程序來解密與所有可能的key值**交換的給定所有密文,並排除所有交換消息中的任何值是**不可能的. 假設 |key|<|所有交換的消息| 通過計數參數暗示至少存在一個不可能的值。


在問題中重複 OTP 的情況下,存在可以由計算能力非常有限且對明文有足夠了解的對手執行的攻擊。

例如,假設所有消息都是長的、隨機的,並且除了最後一條消息中間的未知位之外完全已知。找到大部分密鑰、所有消息的起點以及單個未知明文位變得可能且容易。

有更聰明的攻擊可以在對明文的假設較少的情況下工作(例如:它主要是英語單詞),如果有足夠的密文,在實踐中仍然可行。

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