對斯特林數字的完美保密
對全部 $ c_0\leftarrow m_0 \oplus k $ 存在一個 $ k’ $ 這樣 $ c_1 \leftarrow m_1 \oplus k’ $ , 在哪裡 $ m_0 \neq m_1 $ 和 $ c_0 = c_1 $ .
假設一個真正隨機的 $ k $ ,第一個任務是一次性填充。如果我們要重複這個過程 $ m \in M $ ,我們將創建第一類斯特林集。
為了使用更好的符號,每個鍵 $ k_n $ 可以由 $ G(k_{n-1},m_{n-1}) $ 在哪裡 $ k_0 $ 是一個完全隨機的比特流。
該方案有點不切實際,但我們一開始就不要專注於此。由於所有 $ c \in C $ 完全相同,並且假設沒有兩個 $ m $ s 是一樣的,是否可以說上述方案是完全安全的?
子問題:是 $ k’ $ 仍然完全隨機?
**澄清一下:**這種結構完全沒用。我認為提出一個允許密鑰重用的 OTP 變體會很有趣,但不一定具有任何實際價值。
究竟,你想用這個結構來完成什麼?
是的,你是對的,給定一系列消息 $ m_0, m_1, m_2, \dotsc $ 和固定的密文 $ c $ (假設都是相同的長度),我們可以很容易地計算出一個鍵序列 $ k_i = c \oplus m_i $ 這樣 $ k_i \oplus m_i = c $ .
但是,我看不出有任何方法可以從中獲得有用的密碼系統。如果您不傳輸密鑰 $ k_i $ 對於收件人,他們無法恢復郵件 $ m_i $ 剛從 $ c $ ; 事實上,這顯然是荒謬的,因為 $ c $ 可以選擇完全隨機且獨立於所有 $ m_i $ . 相反,如果您確實傳輸密鑰 $ k_i $ ,那麼系統很容易被截獲“密鑰”的對手破壞 - 它基本上只是一個多次填充。
另請注意,您不能提前傳輸密鑰,因為一旦 $ c $ 是固定的,每個鍵 $ k_i $ 將取決於相應的消息 $ m_i $ . 因此,與傳統的一次性填充不同,您的方案甚至不適合“現在有安全通道,以後需要安全通信”的場景。