Zero-Knowledge-Proofs

實現分佈式 ElGamal 加密方案的承諾和挑戰

  • July 10, 2018

我正在嘗試通過將這本書(Delfs 和 Knebl 的密碼學簡介)這篇 Internet 文章(Wood 的比網路更多的混合)作為主要資訊來源來實現分佈式加密系統。

我生成以下變數:

  • $ p $ : 主要,
  • $ g $ : 發電機,
  • $ x $ : 隨機內 $ [1, p-1] $ ,
  • $ h $ : $ g^x \bmod p $

然後,我可以使用這些變數成功地加密、重新加密和解密消息。

我現在試圖通過遵循Delfs 書中的第4.5.5小節來使系統使用多個權限:

在此處輸入圖像描述

根據本小節 $ x $ 被計算為之間的隨機數 $ 1 $ 和 $ q-1 $ ,但我正在使用範圍 $ 1 $ 和 $ p-1 $ 如文章所示。另一個區別是書中沒有提到模 $ p $ 計算時 $ h $ .

請注意,我還實現了本書中描述的 ElGamal 系統,但我想使用文章中的實現,因為它對我更有意義,而且我不想使用外部庫)。

我的問題是,我應該做出什麼承諾,以後如何驗證它?

您可以使用基於雜湊的承諾方案,該方案非常易於實現。缺點是對承諾進行零知識證明並不容易。但是從您在問題中給出的內容來看,這似乎不是問題。

讓 $ \lambda $ 是安全參數(例如 128),讓 $ H $ 是一個密碼散列函式:

1 要送出,生成一個 $ \lambda $ -bit 均勻隨機字元串 $ r $ . 然後計算承諾 $ C(h_i)=H(h_i||r) $ .

2 打開承諾 $ c=C(h_i) $ , 揭示 $ (h_i,r) $ 其他人可以驗證並接受如果 $ c=H(h_i||r) $ .

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