Key-Exchange

密鑰交換協議可以交換一次性密鑰而不是密鑰嗎?

  • November 15, 2017

據我了解密鑰交換,兩方可以在存在監聽對手的情況下就固定數量的秘密比特達成一致。該組位形成一個加密密鑰,然後使用標準加密算法對數據進行加密。並且該密鑰被一遍又一遍地重複使用,可能用於 AES 會話。

如果使用一次性密鑰而不是加密算法的密鑰,會怎樣?然後,我的系統將用另一個鍵盤交換下一條消息。您能否切實安全地交換 1280 位 /160 字節的 Twitter 長度消息?

筆記。可以使用真正的隨機數生成器。

編輯。從最初的評論來看,OTP 密鑰的安全性似乎取決於密鑰交換機制的安全性,比如 Diffie-Hellman、RSA 或類似機制。所以我想我的狡猾方案的一個基本部分是能夠使用提供>(160 * 8)位安全性的密鑰交換機制。那豈不是意味著 OTP 的安全證明仍然得到維護?這是一個理論練習,所以性能不是一個考慮因素(除非我們談論的是實際上不可能的地質時間尺度)。例如,可以使用現代台式機每 24 小時發送一條消息嗎?二戰期間,SOE 代理人每周可能只發送一條消息。只是一些時間背景。

理論上它可以工作,如果您可以確保結果密鑰實際上是從整個範圍內統一生成的,只要一方統一選擇其輸入即可。

證明的粗略草圖:考慮輸入 $ x $ 和 $ y $ 到密鑰交換 $ f(x,y) $ . 然後,如果您認為一個輸入是固定的,則密鑰交換必須是雙射。你需要證明每個 $ x $ , $ f $ 是之間的雙射 $ y $ 和 $ f(x,y) $ .

但在實際方面,我想不出任何實現這一點,我們可以實際證明這一點。顯而易見的候選者是 DH 密鑰交換。但是如果我們使用生成器 $ g $ 對於全組,則我們無法證明上述性質:假設任何固定 $ x $ , 然後 $ g^{xy} $ 並不總是雙射,有反例 $ x = 2 $ . 如果 $ g $ 是一個素數階群的生成器,則該性質成立。但是,在這種情況下,您只能訪問此特定子組的元素,而不是所有組元素。您需要來自子組的雙射映射 $ k $ 元素到 $ {0,1,\dots,k-1} $ 或類似的。這應該很困難,除非您假設您能夠計算 DLOG。經典的和基於 EC 的 Diffie-Hellman 密鑰交換都存在這個問題。

我認為這裡的問題在於你沒有指定攻擊模型——對手看到了什麼,他們有什麼權力?例如,在一次性密文的情況下,標準分析會假設對手看到密文,但既看不到密鑰也看不到明文。

但是現在在您的混合密鑰交換 + OTP 提案中,您認為對手看到了什麼?我想說,合理的假設是他們可以看到參與者的公鑰、密鑰交換的記錄和 OTP 密文,但看不到私鑰、明文或 pad。

但是對於一個計算無界的對手來說,這顯然足以破壞密鑰交換,這反過來又使他們能夠恢復墊子和其他一切。組合的安全性不能比它最薄弱的環節——密鑰交換更好。(順便說一下,常用的密鑰交換算法的安全級別小於其密鑰和轉錄本長度,所涉及的值具有可用於攻擊它們的數學結構和關係。)

一次性密本加密方案具有“無條件”安全性的證明,但這些證明仍然在一個模型中執行,該模型的假設不適合您的場景。所以這些證明不會轉移。

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