Encryption

與標準數字簽名相比,零知識辨識 (Fiat Shamir) 有什麼好處?

  • March 14, 2019

假設有一個公鑰 $ 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,互動式零知識證明):

  1. $ a $ 是私鑰, $ v = a^2 \pmod n $ 是公鑰
  2. Peggy 生成一個隨機數 $ r $ 並發送 $ x=r^2 \pmod n $ 給維克多
  3. Victor 向 Peggy 發送 0 或 1(隨機)
  4. 如果 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 的機會更加困難。

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