Encryption

證明發送了正確的加密消息

  • March 2, 2022

在這裡完全是加密的業餘愛好者,但我已經搜尋和搜尋,並且在我的知識範圍內。我已經走了好幾條路來滿足我正在尋找的東西,但我只是要描述我想要實現的目標,然後看看會發生什麼。

我正在創建一個事務性對等 pub/sub 網路,我需要以下內容:

發布者 Alice 向網路廣播一條加密消息。然後,她將通過向訂閱者(比如 Bob)出售解密該消息的密鑰來賺錢。我需要一個加密方案,這樣網路上的任何人(比如查爾斯)都可以查看來自愛麗絲的廣播(如果需要,可以包括與密文分開的其他項目)以及愛麗絲和鮑勃之間的交易,並驗證愛麗絲給出了正確的鮑勃的鑰匙,而他自己卻沒有鑰匙。

實現這一點的一個簡單方法是使用非對稱加密,讓 Alice 和 Bob 使用共享私鑰向網路廣播消息。該消息應該是數字簽名,證明 Alice 和 Bob 都知道該私鑰。

您可以嘗試建構一個基於一次性填充的簡單方案,儘管在實際環境中可能難以適應它。

  1. 讓 $ H(..) $ 是一個雜湊函式。
  2. 讓 $ \langle .., .. \rangle $ 成為資料結構。

假設 Alice 和 Bob 密鑰對: $ a \times G \mapsto A $ 和 $ b \times G \mapsto B $ .

  1. Alice 發布消息 $ m $ 使用加密 $ k $ 密鑰通過 $ \langle k + m, K, M \rangle $ , 在哪裡 $ k \times G \mapsto K $ 和 $ m \times G \mapsto M $ 是橢圓曲線點。
  2. 密鑰的交易以 Diffie-Hellman 密鑰交換開始,其中 $ H(a \cdot b \times G) = H(b \cdot a \times G)= x $ , 在哪裡 $ x \times G \mapsto X $ 是雙方公開協商的承諾。
  3. Bob 支付給 Alice 並且 Alice 發送 $ k + x = r $ . Bob 通過 $ r - x = k $ .
  4. 查爾斯能夠驗證 $ k $ 是關鍵 $ (k + m) \times G \stackrel{?}{=} (K + M) $ 然後 $ (k + x) \times G \stackrel{?}{=} (K + X) $ 包含相同的密鑰。

通過遵循一次性填充的要求,這適用於小消息。但是在擴展到更大的消息時應該小心。請注意,為此目的,消息也通過以下方式加密 $ m - x $ 或者 $ x - m $ . 鑰匙 $ k $ 被重複使用,因此它不是正確的一次性填充;這 $ k $ 密鑰可以替換為 $ x $ 在這種情況下的關鍵。該方案在最弱的密鑰中中斷。

您需要擴展該方案,使其不會遇到與 AES-ECB 相同的問題。此外,我建議在使用這種方案之前建構一個正式的安全證明。

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