Symmetric
使用預共享密鑰和公共隨機性生成一次性密碼
我對密碼學知之甚少,所以如果這個問題沒有意義,我深表歉意。
假設我們設計了一個函式 $ F(P, X) \rightarrow K $ 接受預共享的私鑰 $ P $ 和一個公開可用的隨機源(比如生成真正隨機數的伺服器) $ X $ . 輸出 $ K $ 此函式的一個新密鑰是我們用作一次性密碼來加密和解密消息的新密鑰。
發送者預共享密鑰 $ P $ , 功能 $ F $ 以及接收者在通信之前的隨機性來源。對於每一條新消息 $ M $ , 發送者收集隨機資訊 $ X $ , 生成一次性填充 $ K $ 使用功能 $ F $ 並用 $ K $ . 接收器生成相同的 $ K $ 並解密消息。
我的問題是
- 這個方案不是資訊論安全的,對吧?因為 AFAIK,one-time-pad 不能以任何方式重複使用,但在這種情況下,我們正在重複使用 $ P $ 對於每條消息,可以將其視為一次性便箋簿的一部分 $ K $
- 這個方案可行嗎?是否比簡單地使用預共享密鑰加密/解密更安全 $ P $ ?
問題是“預共享私鑰”,它的意思是:預共享密鑰。我們僅將私鑰用於非對稱加密,並且通常不共享私鑰(僅共享匹配的公鑰)。
這個方案不是資訊論安全的,對吧?
事實並非如此,原因已說明。足夠已知的明文並列舉所有可能的 $ P $ 足以為一個任意強大的對手打破它。
這個方案可行嗎?
排序的,適當的 $ F $ 和共享隨機性的來源 $ X $ . 但存在嚴重的實際問題:
- $ X $ 必須足夠寬以防止意外重複使用 $ X $ 不可能(創建一個副本 $ K $ ,允許在第一次解密時 $ K $ 用於加密已知的明文,或者當兩者都 $ K $ 用於加密非隨機明文)。
- $ X $ 發送方和接收方必須可用且同步。
- 對手必須無法選擇或影響 $ X $ (如果對手可以強迫 $ X $ 是一個常數或屬於一個允許攻擊的小集合)。
然而,這一切都可以通過製作來解決 $ X $ 一個公共櫃檯而不是隨機的。 $ X $ 在消息開始時清楚地傳輸:那是初始化向量。這種做法稱為計數器模式,當 $ F $ 是分組密碼。IV 可以由發送者保留,也可以為每條新消息隨機抽取全部或部分。