具有隱藏內容的加密可驗證架構
我的加密方案有問題。
有兩個實體, $ A $ 和 $ B $ . $ A $ 給一個簡單的資訊 $ m \in [0,1] $ 至 $ B $ . $ B $ 應該生成一個加密的消息 $ m $ : $ e=Enc_{pk}(m) $ 這樣 $ A $ 可以驗證是否 $ B $ 已正確加密從生成的消息 $ A $ 不篡改它。但是,與此同時, $ e $ 不應該透露任何可以使用的資訊 $ A $ 展示資訊的價值 $ m $ 在 $ e $ . (解密密鑰 $ sk $ 兩者都不知道 $ A $ 或者 $ B $ )
基本上,目標是有一個加密的消息 $ A $ 只能檢查內容是否是 $ A $ 他們自己生成(例如帶有簽名)但無法向任何人展示有效的明文值。
協議中沒有特別的約束,因此可以使用簽名或見證等附加數據。
你知道任何可以解決這種情況的模式嗎?
它認為,可以通過使用結構保留加密/簽名方案(我的意思是與您要使用的 ZK 證明系統兼容的方案)來解決。
總體構想是 Alice 將簽署消息並發送簽名 $ \sigma $ 給 Bob,然後 Bob 將送出消息 $ m $ , 和簽名 $ \sigma $ 並將建立 ZK 證明 $ e $ 包含 $ m $ , 和 $ \sigma $ 是一個有效的簽名 $ m $ 根據 Alice 的公開驗證密鑰。
因為愛麗絲只簽署了一條消息,她會確信 $ (com_m, com_\sigma) $ 包含 $ (m, \sigma) $ (因此 $ e = Enc_{pk}(m) $ ).
但是因為證明是零知識, $ Enc(m) $ 與可能由愛麗絲簽名的另一條消息完全無法區分(甚至愛麗絲的秘密簽名密鑰也被洩露)。因此,愛麗絲無法說服任何人相信 $ Enc(m) $ .
對於具體的實例化,您可以例如使用Groth-Sahai proofs-system,使用 El Gamal 作為加密方案,以及這些簽名。