與標準數字簽名相比,零知識辨識 (Fiat Shamir) 有什麼好處?
假設有一個公鑰 $ v $ . Peggy 必須向 Victor 證明她擁有相應的私鑰 $ a $ . 她當然不想透露 $ a $ 給維克多,但只是為了證明她有鑰匙。
問題:下面描述的“解決方案 2”(又名Fiat-Shamir)有什麼好處,當有一個簡單的解決方案時(參見解決方案 1),它似乎更複雜並使用零知識證明?
解決方案1(簡單):
- Victor 生成一個隨機數 $ r $ , 用公鑰加密 $ v $ , 並發送加密消息 $ r_E $ 給佩吉
- 如果佩吉有私鑰 $ a $ ,她可以解密 $ r_E $ 進入 $ r $ , 並且寄出 $ r $ 回到維克多並聲稱:“嘿,維克多,這是 $ r $ ,這是我可以解密你的資訊的證據 $ r_E $ ,所以這證明我有 $ a $ "
- 如果 Peggy 沒有私鑰 $ a $ ,她無法解密 $ r_E $ ,所以她無法證明任何事情。
我不知道這個簡單方案的名稱,但我認為這幾乎可以用任何公鑰/私鑰加密算法來完成,而且看起來很安全。
解決方案 2(Fiat-Shamir,互動式零知識證明):
- $ a $ 是私鑰, $ v = a^2 \pmod n $ 是公鑰
- Peggy 生成一個隨機數 $ r $ 並發送 $ x=r^2 \pmod n $ 給維克多
- Victor 向 Peggy 發送 0 或 1(隨機)
- 如果 Peggy 收到 0,她必鬚髮送 $ r $ 給維克多(然後他可以檢查是否 $ r^2 $ 是 $ x $ 模組 $ n $ )
如果 Peggy 收到 1,她必鬚髮送 $ y = r \times a \pmod n $ 給維克多(然後他可以檢查是否 $ y^2 \times v^{-1} $ 是 $ x $ 模組 $ n $ ) 5. 至少從第 2 步開始重複 $ k $ 次:越高 $ k $ 機率越小( $ 2^{-k} $ ) 在實際上不知道的情況下成功通過了測試 $ a $
當您可以只執行解決方案 1 時,複雜的解決方案 2 有什麼好處?
當驗證者是惡意的時,解決方案 1 有一些弱點。如果證明者的私鑰 $ a $ 用於解密,方案一為驗證者提供解密預言機,即惡意驗證者可以解密任何用公鑰加密的密文 $ v $ . 另一方面,解決方案 2 沒有透露任何關於私鑰的資訊 $ a $ 因為隨機數 $ r $ (它掩蓋了私鑰 $ a $ 當驗證者發送一個比特 1) 是由證明者而不是驗證者選擇的。
數字簽名和認證/辨識方案是非常封閉的概念。一個主要區別在於,數字簽名是一種證明,每個獲得它的人都可以對其進行驗證。身份驗證/辨識方案中的證明通常針對目標驗證者。
有一點是,在許多應用程序中,當 Peggy 想要證明自己或做身份證明時,她可以要求對手 Eve 不能複制他們的互動,從而獲得一些優勢。在解決方案 1 的挑戰-響應中,惡意的 Eve 可以冒充 Victor,即 Peggy 如何確定 Victor 的身份?如果夏娃以這種方式捕捉到一個作弊的答案,她以後可以偽裝成佩吉。
解決方案 2 帶來了一些進步: $ 2^{k} $ 是維克多挑戰佩吉的多種方式。所以,如果 Eve 複製了之前的協議記錄, $ 2^{-k} $ 是 Victor 重複相同挑戰集的機率,這使得 Eve 冒充 Peggy 的機會更加困難。