Hash-Signature

SPHINCS 和 HORST:我們可以在同一條消息上簽名兩次嗎?

  • February 11, 2019

我正在閱讀關於使用 WOTS+ 樹層和底層 HORST 樹的 SPHINCS。HORST 是少數拍子簽名方案,使用選擇功能您可以至少簽名兩次而不會影響安全性。

然後我正在閱讀這篇博文,其中對 SPHINCS 的描述說

再次簽署相同的消息應該使用相同的 HORST,簽署兩個不同的消息應該使用兩個不同的 HORST,並且機率很高。

據我了解,鑑於隨機位遮罩在方案實例化後是恆定的,SPHINCS 是一種確定性方案。它也容易受到重放攻擊,因為對同一消息進行兩次簽名會產生相同的簽名。我對麼?

據我了解,鑑於隨機位遮罩在方案實例化後是恆定的,SPHINCS 是一種確定性方案。

實際上,最初提出的 Sphincs 是確定性的。但是,沒有什麼可以阻止簽名者隨機選擇路徑(而不是使其成為消息的秘密功能)。

但是,是的,如果我們假設簽名者不決定這樣做,那麼您是對的;對同一消息進行兩次簽名將產生相同的簽名。

它也容易受到重放攻擊,因為對同一消息進行兩次簽名會產生相同的簽名。我對麼?

我不確定“重放攻擊”對簽名算法意味著什麼。對於任何簽名算法,攻擊者都可以獲取一條消息和有效的簽名對,並多次呈現;驗證算法每次都會接受它;這不是 Sphincs 獨有的。現在,協議中可能還有其他東西可以拒絕這種情況;這不是簽名驗證算法的工作。

此外,多次看到相同的簽名會告知對手同一條消息被多次簽名;另一方面,我們不假設簽名算法提供隱私,因此這也不被視為問題。

順便說一句:如果你看看 Sphincs+,事情就會改變;他們使簽名算法具有不確定性(不是因為他們害怕確定性,而是試圖避免依賴雜湊函式的抗碰撞性;Sphincs+ 中的其他所有內容都依賴於原像或第二原像抗性)。

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