Elliptic-Curves

匿名組簽名

  • March 5, 2022

我一直在對匿名簽名的團體和環簽名文獻進行一些研究。我正在嘗試找到一個提供以下特性的組簽名方案:

  • 簽名者的匿名性
  • 簽名可以由通用接收器驗證
  • 只輸出一個簽名(我不想要一種 LSAG 簽名方案)
  • 組中的簽名者應該能夠自己創建簽名
  • 構造應該基於橢圓曲線並且應該是自由配對的

環簽名類似於組簽名,但沒有組管理器。另一個關鍵區別是,可以在簽名時使用您喜歡的任何人的密鑰形成“環” - 您沒有像組簽名中那樣的固定“組”。

除非您專門使用可連結的環簽名方案,否則簽名不能“連結” 。此外,簽名者的身份隱藏在環中,無法辨識,就像在組簽名中一樣。大多數方案都規定任何人都可以進行驗證(可公開驗證)。簽名者可以自己創建戒指並簽名,無需任何其他人的參與。所以這滿足您的所有要求,忽略最後一個(它們基於橢圓曲線)。

第一個環簽名結構是由Rivest、Shamir 和 Tauman 設計的。他們的方案使用 RSA 密鑰。Abe、Ohkubo 和 Suzuki給出了一個能夠混合使用 RSA 和 DL 類型密鑰的方案。他們論文的附錄 A 展示瞭如何僅使用 schnorr 簽名公鑰建構環簽名,它可以適應橢圓曲線設置(並使用 EC-schnorr)。

具體來說,假設環中的每一方都有一個公鑰 $ Y_i = [x_i]G $ , 和參與者 $ k $ 想代表他們生成一個簽名。讓順序 $ G $ 是 $ p $ , 然後讓 $ H $ 是一個雜湊函式,其 codomain 是 $ \mathbb{Z}/p\mathbb{Z} $ . 簽名者將選擇一個隨機值 $ \alpha $ , 和隨機值 $ c_i $ 對於所有其他環成員。然後簽名者將創建一個“聚合密鑰” $$ K = [\alpha]G + \sum_{i \neq k} [c_i]Y_i , . $$

然後,簽名者將計算哈​​希 $ c = H(Y_0, Y_1, \ldots, Y_n, M, K) $ 留言 $ M $ . 計算 $$ c_k = c - \sum_{i \neq k} c_i \pmod{p}, $$ 這樣所有的 $ c_i $ 包含 $ c_k $ 總和 $ c $ (雜湊)。

最後,讓 $ s = \alpha - c_k \cdot x_k \bmod{p} $ . 簽名是 $ (s, c_0, \ldots, c_n) $ . 要驗證,只需重新計算聚合鍵和雜湊,如下所示: $$ K’ = [s]G + \sum_i [c_i]Y_i\ c’ = H(Y_0, Y_1, \ldots, Y_n, M, K’) $$ 並檢查 $ c’ = \sum_i c_i \pmod{p} $ .

你可以看到誠實地執行協議會讓 $ K’ = K $ 因為 $$ K’ = [s]G + \sum_i [c_i]Y_i \ = [\alpha]G - [c_k \cdot x_k]G + \sum_i [c_i]Y_i\ = [\alpha]G - [c_k]Y_k + \sum_i [c_i]Y_i\ = [\alpha]G + \sum_{i \neq k} [c_i]Y_i = K. $$

然後驗證工作不管哪個 $ k $ 是簽名者,根據需要,任何人都可以在給定一組公鑰的情況下驗證簽名 $ Y_i $ , 消息 $ M $ , 簽名 $ (s, c_i) $ , 和公共參數 $ (G, p, E, \ldots) $ .

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