Zero-Knowledge-Proofs

更改子程序 PPT 的輸出以適應簡化證明

  • October 19, 2021

我有一個在惡意設置中執行的協議,該協議涉及各方相互發送組元素 $ u\in \mathbb{G} $ 特定形式的(例如,這些是形式的消息 $ u=g^{\alpha}\cdot h^{\beta} $ 帶發電機 $ h,g\in \mathbb{G} $ 和 $ \alpha, \beta \in \mathbb{Z}_q $ 對於一些素數 $ q $ ).

此外,這些方附加了非互動式零知識知識證明,表明發送的組元素確實是這種形式(例如,發送的組元素不是以不經意的方式挑選的)。因此,如果協議中的一方發送 $ u=g^{\alpha}\cdot h^{\beta} $ 它還必須附加 $ \pi_{g,h}(u) $ 這是一個證明 $ u $ 是所需的形式。

在我試圖證明一個協議的合理性時,我假設存在一個 PPT 對手 $ \mathcal{A} $ 這打破了協議,然後我使用 $ \mathcal{A} $ 作為新PPT中的子程序 $ \mathcal{B} $ 這打破了一個棘手的問題(具體來說,離散對數 $ \mathbb{G} $ ).

但是,我的問題是我想要 $ \mathcal{B} $ 使用 $ \mathcal{A} $ 以黑盒方式,但我也想使用它的“指數”(離散對數) $ \alpha, \beta $ 跑完之後 $ \mathcal{A} $ 為了計算任意組元素的離散對數 $ a\in \mathbb{G} $ . 然而, $ \mathcal{A} $ 可選 $ \alpha, \beta $ 以任何方式 $ \mathcal{B} $ 跑步 $ \mathcal{A} $ 可能不知道。

我該如何解決這種差異?

我的想法是擁有 $ \mathcal{A} $ 輸出 $ \alpha, \beta $ 作為其輸出的一部分,並且原因是因為 $ \mathcal{A} $ 必須附加一個 ZKPOK $ \alpha, \beta $ 當發送它的組元素時,它計算 $ \alpha, \beta $ 自己,因此它也可以輸出它們。

  1. 我可以改變嗎 $ \mathcal{A} $ 以這種方式輸出以滿足我的需求?
  2. 是否有不同/更好的方法來解決我需要訪問由黑盒 PPT 控制的一方發送的離散對數的問題?
  3. 誰能指出我需要用類似技術證明的論文?

提前謝謝了。

你不能修改 $ \mathcal A $ 這樣。如果你需要 $ \alpha $ 和 $ \beta $ 為了減少,您將需要使用零知識證明知識,您可以從中提取它們。我了解您想使用 NIZK。然而,這實際上不是問題。如果您為 Pedersen 承諾(本質上就是您在這裡所擁有的)採用 Sigma 協議(3 輪證明),然後對其應用 Fiat-Shamir 變換,那麼結果是非互動式零知識證明你可以在哪裡提取證人 $ \alpha,\beta $ ,在隨機預言模型中。這是非常標準的。Ivan Damgård 的 Sigma 協議教程可以在這裡找到。您可以從 Pointcheval 和 Stern 的 Fiat-Shamir 的分叉引理中提取這一事實(另請參見 Bellare 和 Neven 的關於分叉引理的論文)。

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