Elliptic-Curves

ECC 中的環簽名

  • April 26, 2021

橢圓曲線可以進​​行環簽名嗎?如果有怎麼辦。Rivest, Shamir, Tauman 的原始論文似乎需要一個可逆的陷門函式。但我只見過橢圓曲線的秘密協議算法(例如 ECDH)。這似乎不足以完成戒指 - 你不需要可逆性嗎?

如建議的那樣,這是上面評論中連結的論文的入門級摘要。

基於離散對數的非對稱密鑰系統缺乏真正的陷門功能 - 您無法計算任意圖像的原像。相反,Schnorr 簽名依賴於稍弱的條件。一個廣義的 Schnorr 簽名可以被認為有兩個部分:

  • 一個函式 $ O_{K}(i, s) $ 獲取公鑰, $ K $ , 一個輸入 $ i $ 和一個簽名 $ s $ . 在 ECC 中, $ O_K(i,s) $ 是一個位表示 $ s\cdot G+i\cdot K $ , 在哪裡 $ G $ 是 ECC 組的規範生成器,並且 $ x\cdot h $ 是曲線點的乘積 $ h $ 由標量 $ x $ . 其他數據可以附加到該位表示,例如要簽名的消息和環簽名中的候選密鑰列表。通常,它必須包含足夠的資訊來精確指定簽名要證明的聲明,以便簽名不能在任何其他上下文中重放。
  • 散列函式 $ H(o, m) $ 這需要 $ o $ , 的任何輸出 $ O $ , 和 $ m $ ,要認證的消息。

$ O $ 具有附加屬性,即知道對應的密鑰 $ K $ , 可以任意構造多個 $ o’ $ 在哪裡可以找到 $ s $ 對於任何給定的 $ i $ 英石 $ o’ = O(i, s) $ . 即有特定的輸出,我們可以解決給定任何輸入的簽名。將此稱為可預成像輸出

在標準的 Schnorr 簽名中,我們…

  • 建構這樣一個可預成像的輸出 $ o’ $ 並傳遞給 $ H $
  • 拿 $ i = H(o’, m) $ 並解決 $ s $ .
  • 我們的簽名是 $ (i, s) $

我們通過檢查來驗證 $ i = H( O_{K}(i, s), m ) $ ,即輸入到 $ O $ 等於輸出 $ H $ .

假設我們知道密鑰 $ K_{1} $ 在一組 $ K_{1 … n} $ 公鑰,我們可以構造一個環簽名如下:

  • 構造 $ o’{1} $ , 的可預成像輸出 $ O{K_{1}} $
  • 計算 $ i_{1} = H(o’_{1}, m) $
  • 計算每個 $ i_{j+1} = H( O_{K_{j}}(i_{j}, s_{j}), m ) $ 對於隨機選擇的 $ s_{j} $
  • 最後,與 $ i_{1} = i_{n+1} $ 解決 $ o’ = O_{K_{1}}(i_{1}, s_{1}) $ 為了 $ s_{1} $

環簽名是序列 $ (i_{j}, s_{j}) $ 並通過檢查選定的 $ i_{j} $ 環的往返給出起始值。

實際的構造稍微複雜一些。例如,散列包括完整的公鑰集。但這應該給出它是如何工作的想法。

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