Fiat-Shamir

實現 Schnorr 非互動式零知識協議需要多少輪

  • February 6, 2020

我們可以使用 Fiat-Shamir 啟發式將 3-move Schnorr 協議替換為 1-move non-interactive 協議。

當我實現這個非互動式協議時(參考https://en.wikipedia.org/wiki/Fiat%E2%80%93Shamir_heuristic):那就是

讓 $ G $ 是一個有順序的循環群 $ q $ .

佩吉需要證明她知道 $ x $ 這是的離散對數 $ y =g^x $ 到固定基地 $ g $ .

  1. 她隨機選擇一個元素 $ v \in [1,q-1] $ 併計算 $ t = g^v $ .
  2. 她計算 $ c = H(g,y,t) $ , 在哪裡 $ H $ 是一個密碼散列函式(實現隨機預言)。
  3. 她計算 $ r = v-cx \pmod q $ . 證明是對 $ (t,r) $ .
  4. 任何人都可以通過以下方式檢查此證明 $ t = g^r \cdot y^c $ .

我的問題是:

假設 Peggy 是證明者,Victor 是驗證者。佩吉可以寄嗎 $ y =g^x $ 和一個證明 $ (t,r) $ 在同一輪?

或者應該分成兩輪:

  1. 第一輪是佩吉送的 $ y=g^x $ 給維克多。
  2. 第二輪是證明 $ (t,r) $ 給維克多。

如果我們合併兩輪,會不會有風險?

謝謝

不,將證明的兩部分一起發送不會產生任何額外的風險。

請注意,在協議結束時,Victor 知道相同的一組值,無論它是否被分成兩輪。因此,無論他在“一輪”版本中能夠實現什麼,他仍然可以在第二輪兩階段協議之後實現。

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