Public-Key

Rivest 使用散列而不是對稱加密的環簽名

  • August 11, 2018

在研究環簽名時,我顯然偶然發現了維基百科關於環簽名的文章。它包含一段 Python 程式碼來展示“如何洩露秘密”環簽名。

值得注意的是,它們不使用對稱加密函式( $ E_k $ ,如“如何洩露秘密”),但雜湊函式( $ \mathcal{H} $ )。事實上,加密函式不需要是可逆的,如果我們最後關閉簽名環(取 $ v^\prime $ 隨機的, $ m $ 是散列明文):

$$ \begin{align*} \mathcal{H’}(x) &= \mathcal{H}(x\mathbin\Vert m)\ v&=\mathcal{H’}(y_{r} \oplus \mathcal{H’}(y_{r-1} \oplus \mathcal{H’}(\ldots\oplus \mathcal{H’}(v’))))\quad r-s\enspace\text{times}\ h&=\mathcal{H’}(y_{s-1} \oplus \mathcal{H’}(y_{s-2} \oplus \mathcal{H’}(\ldots\oplus \mathcal{H’}(y_1 \oplus v)))) \end{align*} $$ 現在註意到

$$ v’=y_s \oplus h \quad\Leftrightarrow\quad y_s=v’\oplus h\ x_s=g_s^{-1}(y_s) $$ 它“關閉”了環。

**這裡有什麼安全隱患?**我似乎找不到描述這種替代的文獻。

有兩個直接的影響。

現在,它在實際中會*破裂嗎?*不是很明顯,但是我們對環簽名方案安全性的信心並不能完全通過研究底層普通簽名方案的安全性來理解——即使底層普通簽名方案是安全的,也可能存在針對環簽名方案的攻擊,所以密碼分析的目標更多,這意味著您無法通過專注於一個原語來節省工作。

這兩個含義是針對兩個不同的安全屬性:

  1. 簽名者的匿名性。

Rivest-Shamir-Tauman 方案保證簽名者的匿名性,即使面對計算能力無限的對手,甚至不依賴於 $ h $ 成為一個隨機的神諭。這一點的證明取決於所涉及的一切事物的可逆性,因此每個洞都有一隻鴿子,每個洞都有一隻鴿子:對於每個 $ k $ 和 $ v $ , 正好有 $ (2^b)^{r - 1} $ 的可能值 $ (y_1, y_2, \dots, y_r) $ 滿足環簽名方程,如果 $ x_i $ 是隨機均勻繪製的。

如果更換 PRP $ E_k $ 通過 PRF $ H_k $ ,那麼這個證明不再是漏洞:解決方案的分佈可能是不均勻的。是否如此不統一,您可以揭露骯髒的叛徒並根據間諜法起訴他們並在福克斯新聞上嘲笑他們?也許,也許不是(儘管你無疑可以在福克斯新聞上找到其他人來嘲笑,比如一隻試圖上廁所的非二元禿鷲,收視率也會上升)。 2. 將環簽名的安全性降低為基礎普通簽名的防偽安全性。

該證明展示瞭如何在給定偽造環簽名的算法的情況下建構偽造普通簽名的算法。該算法再次依賴於加密函式的可逆性,但它的細節比我今天這個羽毛頭所能容納的要多,所以我不能說你是否可以調整減少(可能有更寬的緊密度差距)來工作雜湊版本。

當然,正如您可能已經觀察到的, $ 2^b $ 必須大於所有模數,並且周圍沒有那麼多 2048 位分組密碼。(1024 位,是的:Threefish。但你也不想依賴 RSA-1024。)所以實際上,你無論如何都不想使用這個方案!幸運的是,自 RST 論文發表以來的過去 15 年裡,關於環簽名方案的文獻相當豐富。我把它作為練習留給讀者研究環簽名的新發展。

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