Key-Exchange
非同步完美前向保密可能嗎?
DH密鑰協商協議需要雙方參與,所以只適用於同步連接。是否有可能以可用於非同步協議(如電子郵件或儲存)的方式實現 PFS?我憑直覺認為不是,但我無法以一種或另一種方式找到確鑿的證據。
如果您允許使用者擁有同步時鐘,則可以使用非同步前向安全加密。沒有那個或第三方似乎是不可能的,儘管我知道沒有正式的結果。
一個簡單(因此也很糟糕)的解決方案是生成 N 個密鑰對,並為每個間隔使用一個,然後丟棄它們。一種更有效的解決方案是使用基於身份的加密 (IBE) 來擁有一個公鑰和 N 個私鑰。
我所知道的最有效的方案要歸功於本文中的 Canetti、Halevi 和 Katz 。它提供了恆定大小的公鑰和 $ O(log(N)) $ 私鑰,其中 N 是時間間隔的數量。據我所知,沒有論文在這個界限上有所改進,儘管有幾篇論文用更有效的技術實現了這個界限。
設計的要點是您有一棵密鑰樹,其中有一個根公鑰,並且可以使用根公鑰和標識節點的索引將消息加密到樹中的任何節點。(到目前為止,這只是一個 IBE 方案)。與 IBE 不同,給定節點的解密密鑰可以從它的父密鑰中計算出來。
我們現在使用前序遍歷將時間間隔映射到節點(即根是間隔1,左子間隔2,根的左左孫子是間隔3……)。因此,一旦時間間隔 1 結束,我們就派生出左右節點的密鑰,然後刪除根密鑰。現在加密到間隔 1 的消息是安全的,但我們仍然可以解密以剩餘 N-1 間隔為目標的所有內容。