Encryption

如果至少其中一個是安全的,則從兩個安全的加密方案建構組合加密方案

  • February 13, 2020

關於如何做到這一點的任何想法?

讓 $ \Pi_1 = (\mathrm{Gen}_1, \mathrm{Enc}_1, \mathrm{Dec}_1) $ 和 $ \Pi_2 = (\mathrm{Gen}_2, \mathrm{Enc}_2, \mathrm{Dec}_2) $ 是已知至少一種是 CPA 安全的兩種加密方案。問題是您不知道哪一個是 CPA 安全的,而哪一個可能不是。展示如何建構加密方案 $ \Pi $ 只要其中至少一項就保證是 CPA 安全的 $ \Pi_1 $ 或者 $ \Pi_2 $ 是 CPA 安全的。

問題 3.21 - Jonathan Katz、Yehuda Lindell - 現代密碼學簡介:原理和協議

您可以生成一個隨機字元串 $ s_1 $ 只要是明文。然後將這個值與生成的明文進行異或 $ s_2 $ . 現在使用加密這兩個部分 $ \mathrm{Enc}_1 $ 和 $ \mathrm{Enc}_2 $ . 您需要將兩者解密以再次將這兩個部分組合在一起。這類似於秘密共享,您需要密鑰的兩個部分來解密。

如果 $ \mathrm{Gen}_1 $ 和 $ \mathrm{Gen}_2 $ 是兩個隨機生成器,那麼您可能希望在生成時也將它們異或 $ s_1 $ . 但是,我認為它們用於生成密鑰。

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