Hash-Signature

使用基於 SPHINCS 雜湊的簽名方案對消息進行簽名

  • May 22, 2019

我對 Bernstein 等人的“SPHINCS:實用的無狀態基於 has 的簽名”有疑問。我真的希望有人可以幫助我。為了幫助我理解它,我閱讀了https://cryptoservices.github.io/quantum/2015/12/08/XMSS-and-SPHINCS.html部落格。

SPHINCS 真正由 WOTS+、XMSS 和 HORST 建構塊組成。我單獨理解其中的每一個,但我仍然無法弄清楚如何在 SPNHICS 中籤署消息。我了解 L-Tree(WOTS+ 樹)層的超樹結構,其中最後一層是 HORST 樹。以下是我的問題:

Q1。如果我必須簽署一條消息,M,我是否會隨機選擇任何 HORST 樹並簽署我的消息?簽名將非常龐大,一直到 PK。即簽名必須包含所有根的認證路徑才能到達PK。這個對嗎?

Q2。根據 h=3 和 d=3 的https://cryptoservices.github.io/quantum/2015/12/08/XMSS-and-SPHINCS.html中提到的範例參數,每層產生三層高度 1。在第 2 層,兩棵 WOTS+ 樹中的每個節點都可以對第 1 層 WOTS+ 樹的 k 個根進行簽名?因此,當我到達第 0 層時,我可以簽署的消息總數為 (2*k)^3。這個對嗎?

非常感謝您的幫助

如果我必須簽署一條消息,M,我是否會隨機選擇任何 HORST 樹並簽署我的消息?

使用原始的 Sphincs,是的,這就是你所做的。

(順便說一句,Sphincs+(和 IIRC,Gravity-Sphincs)的設計者意識到這是一個非最優設計;它允許偽造者選擇給他最大成功機率的 HORST 樹;也就是說,用得最多)。因此,他們在 Sphincs+ 中所做的就是指定從隨機消息到 FORS(用於替代 Sphincs+ 中的 HORST)少時間簽名和 FORS 葉的組合的映射;這樣,攻擊者就不會獲得這樣的優勢)。

簽名將非常巨大,可以一直到達 PK

嗯,是的,是的。

根據提到的 h=3 和 d=3 的範例參數,這會產生三個高度為 1 的層。在第 2 層,兩棵 WOTS+ 樹中的每個節點都可以對第 1 層 WOTS+ 樹的 k 個根進行簽名?因此,當我到達第 0 層時,我可以簽署的消息總數為 (2*k)^3。這個對嗎?

好吧,不;在他們在 Sphincs 中使用的符號中,h 是組合超樹中 XMSS 級別的總數,d 是 XMSS 樹的級別數(即一次性簽名的數量)。當 h=d=3 時,每個 XMSS 樹的高度為 h/d = 1;也就是說,每個 XMSS 樹都有兩個葉節點(因此可以簽署兩條消息)。另外,如果h=3,那麼總共有 $ 2^h = 8 $ HORST 樹(因為 h 是總超樹高度);當然,每個 HORST 樹都可以簽署多個消息(並且 HORST 樹的安全性會隨著它簽署更多消息而降低)

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