在 Schnorr 辨識協議中,如果證明者使用 r+c+x 或 rx+c.. 等而不是 r+cx 會發生什麼?
考慮Schnorr 辨識協議。讓 $ x $ 成為秘鑰, $ u $ 成為公鑰, $ r(\xleftarrow{$} \mathbb{Z}_q ) $ 是一個隨機數 $ u_r=g^r $ 證明者在第一輪使用的承諾,以及 $ c(\xleftarrow{$} C) $ 是驗證者在第二輪挑戰證明者的挑戰。在最後一輪,證明者發送 $ s=r+cx $ 給驗證者。
這是我的問題:為什麼是 $ s $ 形式的 $ r+cx $ ? 為什麼不 $ r+c+x, rc+x, rx+c, rxc $ ?
什麼時候 $ s=rx+c $ 或者 $ rxc $ ,似乎驗證者無法通過計算進行驗證,因為 $ g^{rx+c}=u^r g^c = u_r^x g^c $ 和 $ g^{rxc}=u_r^{xc}=u^{rc} $ 但驗證者不知道 $ r $ 和 $ x $ . 但是,我不明白為什麼其他人不起作用。
正如您正確指出的那樣,響應 $ rx+c $ 和 $ rxc $ 無法有效驗證(無法訪問 Diffie-Hellman 求解器)。
這 $ r+c+x $ 變體是個壞主意。假設你說 Peggy 有一個秘密值 $ x $ 並承諾與 $ u,u_r $ . (調皮)維克多發出挑戰 $ c $ 並收到響應 $ s=r+c+x $ 以便他們確認 $ g^s=u\cdot g^c\cdot u_r $ 一切都好?
現在(頑皮的)維克多可以聲稱知道 $ x $ 並承諾與 $ u,u_r $ 即使他不知道 $ x $ . 受害者墨菲可以發送挑戰 $ c’ $ 維克多可以回應 $ s’=s-c+c’=r+c’+x $ 通過驗證,墨菲相信維克多知道 $ x $ 即使他沒有。維克多可以通過替換來更好地掩蓋他的踪跡 $ u_r $ 和 $ u_{r’}=u_r\cdot g^d $ 然後使用響應 $ s’=s-c+c’+d $ .
這 $ rc+x $ 變化很好,系統可以顯示提供等效的資訊。如果 $ c $ 是通常 Schnorr 協議下的挑戰,我們可以通過設置將其轉換為您的變體中的挑戰 $ c’=c^{-1}\mod q $ 並類似地轉換響應 $ s’=c’s $ .
然而,讓世界的一半人使用協議的一種變體而另一半人使用另一種變體並不是一件好事,因此最好固定在一個選擇上。