One-Time-Pad

使用 n 次密鑰完美保密

  • August 16, 2015

你怎麼能加密 $ n $ 具有相同密鑰的消息,並且具有與使用一次性密碼器加密單個消息相同的理論安全性?例如,您如何使用相同的密鑰加密兩條消息,並具有相同的理論安全性?

我認為對於 $ n=2 $ , 就像是 $ E(M) = (K_1M + K_0) \mod p $ 應該工作,對於素數 p, $ 0 \leq M \leq p-1 $ ,以及密鑰的每個部分 $ K_i $ 隨機選擇所以 $ 0 \leq K_0 \leq p-1 $ 和 $ 1 \leq K_1 \leq p-1 $ .

這似乎是一種可能已經解決或被證明不可能的事情,但我找不到它。

你需要的是一種叫做 $ n $ 明智的獨立散列函式(如“成對獨立”但 $ n $ 反而)。這樣的散列函式具有最多應用於 $ n $ 不同的輸入,它的輸出是完全隨機的。這些可以有效地建構;例如,適當次數的隨機多項式有效。您實際定義的內容 $ E $ 在您的問題中是具有隨機係數的線性多項式,這是成對獨立的。關於如何建構這些,如何建構這些幾乎獨立的功能等,已經進行了重要的研究。

說了以上所有內容,您並沒有真正獲得任何密碼學上的東西,因為密鑰的大小仍然需要大於您計算的所有內容的大小。因此,您不妨每次都使用一次性墊。但是,還有其他應用程序對此類功能很有用(主要是複雜性,但它們有時也用於加密)。

完全保密要求您的密鑰與您加密的明文一樣長。如果您想使用同一個密鑰加密多條消息,您可以將密鑰的每一部分用作一次性密匙。


您的想法(假設您解決了雨披提出的問題)似乎只是實現同一目標的一種更複雜的方法。如果你刪除了一個關鍵部分的乘法,你又回到了添加一個一次性填充,它是只使用一次的關鍵的一部分。

無論您是向消息中添加一次性填充,還是以消息空間為模還是 XOR/每次添加一個字元都無關緊要。

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