Discrete-Logarithm

這可能是 Schnorr 協議的有效變體嗎?

  • August 16, 2013

Schnorr 協議是離散對數知識的 3 步證明,其互動版本的工作方式如下。

讓 $ p $ 和 $ q $ 是兩個公共素數,這樣 $ q \mid (p-1) $ , 然後讓 $ G $ 是一個循環子群 $ \mathbb Z^\times_p $ 有秩序的 $ q $ (即Schnorr 組)與發電機 $ g $ . 證明者 $ P $ 想證明知識 $ x=\log_g(y) $ 給驗證者 $ V $ ,通過以下步驟:

  1. $ P $ 致力於隨機性 $ r \in \mathbb Z_q $ , 並發送 $ t=g^r \bmod p $ 到 $ V $ .

  2. $ V $ 回复 $ P $ 帶著挑戰 $ c $ 從隨機選擇 $ \mathbb Z_q $ .

  3. 收到後 $ c $ , 證明者 $ P $ 發送響應 $ s=r+cx \bmod q $ 到 $ V $ .

  4. 最後,驗證者接受 if $ g^s \equiv t y^c \bmod p $ .

我的問題是:

回复的具體原因是什麼 $ s $ 步驟 3 中的證明者是那個,而不是另一個?例如,如果響應是,它是否也可以工作,例如, $ s=r+c+x $ 或者 $ s=rc+x $ ,然後驗證者必須檢查是否 $ g^s \equiv t g^c y $ 或者 $ g^s \equiv t^c y $ , 分別?

正如 Perseids 在對此答案的評論中指出的那樣,公式 $ s = r + c + x $ 將允許一個對手(誰已經完成了協議曾經作為驗證者的角色 $ P $ 並且已經得到了一個有效的三元組 $ t_1,c_1,s_1 $ ) 計算對任意挑戰的響應,只需使用公式 $ t_2 = t_1 $ , $ s_2 = s1 + c_2 - c_1 $ .

你的另一個選擇 $ s = rc + x $ 但是,考慮到一些額外的限制,它會起作用:

  1. $ c \neq 0 $ . 由於我們在一個素數子群中工作,這意味著存在一個乘法逆 $ c^{-1} $ 以組順序為模 $ q $ . 這不是對原始協議的重大限制,因為 $ c = 0 $ 將需要響應 $ s = r + 0x = r $ , 這不能證明擁有 $ x $ 因此毫無意義。然而,使用替代公式, $ c = 0 $ 將需要 $ s = x + 0r = x $ ,這會洩露私鑰。
  2. $ t $ 和 $ y $ 屬於同一個素數子群 $ g $ . 這在協議規範中是隱含的,但可能會強調 $ V $ 能夠驗證確實如此,通過檢查 $ p, q $ 是素數,使得 $ q|p-1 $ , 然後 $ g^q = t^q = y^q = 1 \bmod p $ .
  3. 我們定義 $ r = log_g(t) \bmod p $ 和 $ x = log_g(y) \bmod p $ . 攻擊者不需要知道確切的值 $ r $ 和 $ x $ 以便進行以下數學運算。

我們還需要一個安全聲明,以便準確定義我們對原始協議的假設並希望就替代協議進行證明。最恰當的說法是對手 $ A $ , 誰不知道 $ x $ 並且沒有對真實證明者的實時預言機訪問權限 $ P $ , 用誠實的驗證者成功執行協議的機會微乎其微 $ V $ .

可能會注意到一個對手 $ A $ 實時預言機訪問真實的證明者 $ P $ , 將能夠與任何誠實的驗證者一起成功地執行協議 $ V $ . 因此,為了不證明我們已經知道的事情,我們必須假設情況並非如此。

假設一個對手 $ A $ 能夠冒充 $ P $ 並提供虛假證明 $ x $ 使用替代公式。自從 $ sc^{-1} = (rc + x)c^{-1} = r + xc^{-1} $ ,這樣的對手也將能夠提供虛假證據 $ x $ 使用原始公式。因為後者是不可能的,所以前者也是。

一個證明可以概括如下:

讓 $ A $ 成為能夠根據替代公式成功執行協議的對手 $ s = rc + x $ ,鑑於上面列出的限制。讓 $ V $ 做一個(誠實的)驗證者,他期望 $ s $ 值符合原始公式,受到相同的限制(特別是 $ c \neq 0 $ )。讓 $ A’ $ 表示 $ A $ 扮演證明者的角色 $ x $ 使用原始公式。

現在,我們需要做的就是添加幾個步驟 $ A’ $ 播放協議步驟 $ A $ (即他自己):

  1. $ V $ 問 $ A’ $ 承諾
  2. $ A’ $ 問 $ A $ 送出並獲得價值 $ t $ , 這樣 $ t^q = 1 \bmod p $ , 哪一個 $ A’ $ 轉發給 $ V $ .
  3. $ V $ 回復挑戰 $ c $ 從隨機選擇 $ \mathbb Z_q^* $
  4. 收到後 $ c $ , $ A’ $ 發送 $ c^{-1} $ 到 $ A $ , 得到一個值 $ s $ 並發送響應 $ s’ = cs $ 到 $ V $ .
  5. 最後, $ V $ 接受如果 $ g^{s’} = ty^c \bmod p $ .

如果 $ V $ 不接受 $ s’ $ 作為證明 $ x $ 給定挑戰 $ c $ 在步驟 4 中,期望使用替代公式得到響應的驗證者也不會接受響應 $ s $ 迎接挑戰 $ c^{-1} $ 作為證明 $ x $ .

那麼,這對安全聲明有什麼證明呢?首先,假設原始協議滿足安全聲明,但替代協議不滿足。如果替代協議不滿足安全要求,則意味著對手 $ A $ 成功執行上述協議的機率不可忽略,但由於我們剛剛證明了這意味著 $ A’ $ 也將具有相同的成功執行協議的機率,這將與我們最初的假設相矛盾(原始協議滿足安全聲明),因此替代協議不可能不滿足。

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