Hash-Signature

基於散列的方案中多樹變體的目的到底是什麼?

  • February 23, 2021

在使用 Merkle 樹(例如 XMSS)的基於雜湊的簽名方案中,多樹變體的具體目的是什麼?似乎相同數量的鍵可以用一棵更大的樹來表示?我錯過了什麼嗎?

基於散列的簽名方案中多樹變體的目的到底是什麼?

使用多樹變體的最大原因是保持公鑰生成時間合理,即使簽名數量的上限很大。

對於單個 Merkle 樹,根的值是所有 Winternitz 公鑰的函式。也就是說,如果我們想創建一個可以簽署(比如說)一萬億(大約 $ 2^{40} $ ) 消息,我們需要計算所有 $ 2^{40} $ WOTS 公鑰。而且,如果單個 WOTS 公鑰需要一千次散列計算(例如,LMS 和 W=16;XMSS 需要大約三倍的散列計算),我們正在研究 $ 2^{50} $ 雜湊計算 - 對於大多數目的而言,這需要很長時間。

相反,如果我們有多個層次的樹,我們只需要計算最頂層的 Merkle 樹;如果那是 $ h=20 $ 樹,那麼相同的公鑰計算將需要 $ 2^{30} $ 雜湊計算 - 仍然很多,但更可行。

當然,當我們簽署所有萬億消息時,我們需要生成所有萬億 WOTS 公鑰作為該過程的一部分。但是,該計算的大部分可以作為我們將要進行的萬億簽名操作的一部分來完成(為每個操作增加一個小的固定成本),因此對於一個操作來說絕不是一個大負擔。

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