RSA-FDH安全模型攻擊
我最近在密碼學教科書和線上影片中讀到,與對選擇的明文攻擊 (CPA) 和選擇的密文攻擊 (CCA) 不安全的教科書 RSA 相比,RSA-FDH 在選擇的消息攻擊 (EUF-CMA) 下是不可偽造的,如果散列函式是均勻隨機的。
然而,令我驚訝的是,在線上密碼學論壇上,一些密碼學家說 RSA-FDH 背後的安全模型,因此如果可以在雜湊函式本身中發現衝突,則 EUF-CMA 可能會被破壞。問題是,我無法找到這樣的例子,甚至無法理解這怎麼可能。我在網上的演講幻燈片中讀到,如果我們要求籤名 $ σ_1 $ , $ σ_2 $ 為了 $ m_1,m_2 \in \mathbb{Z}_n^* $ 和輸出 $ (m^, σ^) := (m_1 \cdot m_2 \mod{(N)},\ σ_1 \cdot σ_2 \mod{(N)}) $ . 但是,如果雜湊函式發生衝突,我仍然不知道它實際上如何應用於 RSA-FDH。
這是 a) 沒有*對安全模型的攻擊**,*而是對 EUF-CMA 安全模型的攻擊,以及 b) 對任何簽名方案的通用攻擊,該簽名方案對消息的雜湊而不是消息本身進行簽名(如 RSA 中所做的那樣) -FDH)。
這個想法是,如果你能找到使用的雜湊函式的衝突 $ H $ ,即兩條消息 $ m_1, m_2 $ 這樣 $ H(m_1) = H(m_2) $ ,那麼它們具有相同的簽名: $ \sigma = \textrm{sign}(sk,m_1) = \textrm{sign}(sk,m_2) $ . 要看到這一點,請以 RSA-FDH 為例: $ m_1 $ 是 $ \textrm{sign}(sk,m_1) = (H(m_1))^d \mod N $ 對於私人指數 $ d $ 和模 $ N $ . 上的簽名 $ m_2 $ 是 $ \textrm{sign}(sk,m_2) = (H(m_2))^d \mod N = (H(m_1))^d \mod N = \textrm{sign}(sk,m_1), $ 中等式從哪裡來 $ m_1,m_2 $ 是碰撞。
在 EUF-CMA 設置中,您可以要求對任意消息進行簽名,並且必須在新消息上提出簽名。所以給定碰撞 $ m_1,m_2 $ , 你要簽名 $ \sigma $ 上 $ m_1 $ 然後輸出對 $ (m_2, \sigma) $ 作為偽造。
舉一個數學較少的例子,假設我來找你並要求你在“Josiah 最喜歡的號碼是 747895723190543。我知道這很奇怪”的資訊上簽名。你認為這有點奇怪,但無害,所以你這樣做了。
你不知道,那條消息的雜湊值也是“請向 Josiah 支付 87476 美元”的雜湊值。
因為雜湊匹配,簽名匹配。而且因為簽名匹配,我可以把無辜消息的簽名,貼到欺詐消息的簽名上,然後傳遞給你的銀行。當然,由於它是正確的加密簽名,銀行沒有理由懷疑你的意思,或者至少發送它。