這種基於配對的簽名方案安全嗎?
有許多基於不使用隨機預言的雙線性對的小域簽名方案。例如 Boneh-Boyen 方案和岡本的一個有趣的方案,它允許盲簽名和部分盲簽名。
然而,他們都使用了強 Diffie Hellman 假設的一些變體,該假設(大致)要求計算 $ e(g,g)^{1/x} $ 從 $ (g, g^x, g^{x^2}, \ldots, g^{x^q}) $ .
我想到的簽名方案是這樣的:
公開資料: $ g_1 \in \mathbb{G}_1, g_2 \in \mathbb{G}_2 $ , 雙線性對 $ e : \mathbb{G}_1 \times \mathbb{G}_2 \to \mathbb{G}_T $
簽名者秘密: $ x_1, x_2 \in \mathbb{Z}_p^* $
公開簽名者: $ A=e(g_1, g_2)^{x_1} $ , $ B=e(g_1, g_2)^{x_2} $
簽名算法需要一個元素 $ m \in \mathbb{Z}_p^* $ 併計算 $ \sigma(m) = g_1^{x_1m+x_2} $ . 驗證算法檢查 $ e(\sigma(m), g_2) = A^m B $
偽造似乎需要計算 $ g^{m’x_1+x_2} $ 從 $ (g^{m_1x_1+x_2}, g^{m_2x_1+x_2}, \ldots, g^{m_nx_1+x_2}) $ 在哪裡 $ m’ \neq m_i $ .
這個方案安全嗎?如果是,它可以在任何地方使用嗎?
提議的數字簽名方案並不安全!更準確地說,在自適應選擇消息攻擊下,它在存在上並非不可偽造。
讓我們考慮以下有效的對手 $ \mathcal{A} $ : 它查詢 $ \mathsf{Sign}_{sk}(\cdot) $ oracle 上的數字簽名 $ m_1,m_2 $ , 在哪裡 $ m_2:=m_1+1 $ . 收到的簽名是 $ \sigma_1=g_1^{x_1m_1+x_2} $ 和 $ \sigma_2=g_1^{x_1m_2+x_2} $ . 現在, $ \mathcal{A} $ 計算 $ \frac{\sigma_2}{\sigma_1}=\frac{g_1^{x_1m_2+x_2}}{g_1^{x_1m_1+x_2}}=g_1^{x_1(m_2-m_1)}=g_1^{x_1} $ . 一次 $ g_1^{x_1} $ 被恢復, $ \mathcal{A} $ 也可以計算 $ g_1^{x_2}=\frac{\sigma_1}{(g_1^{x_1})^{m_1}} $ .
這些知識 $ 2 $ 點( $ g_1^{x_1} $ 和 $ g_1^{x_2} $ ) 現在啟用 $ \mathcal{A} $ 在他們選擇的任何消息上偽造簽名。即,給定任何消息 $ m $ , $ g_1^{x_1} $ 和 $ g_1^{x_2} $ , 上的有效簽名 $ m $ 可以計算為 $ \sigma=(g_1^{x_1})^{m}g_1^{x_2}=g_1^{x_1m+x_2} $ . 對手 $ \mathcal{A} $ 輸出 $ (m,\sigma) $ 作為有效的偽造品並贏得了安全遊戲。
這意味著,對手可以有機率贏得存在性不可偽造性安全博弈 $ 1 $ 已經在 $ 2 $ 簽名查詢。