應用密碼學

雜湊式簽章

雜湊式簽章僅以雜湊函數來構築數位簽章——沒有橢圓曲線,沒有數論。這使它們成為最保守的後量子選項:其安全性只建立在雜湊的原像與碰撞抗性上,而 Shor 量子演算法無法攻破這些(Grover 演算法只帶來平方根級加速,加大輸出即可輕鬆抵消)。

其原子是一次性簽章(OTS)。在 Lamport 方案中,私鑰是成對的隨機值,你公開它們的雜湊作為公鑰,而要簽署訊息摘要的每個位元,就從對應的那一對中揭露一個原像。它安全但只能用一次且體積大。Winternitz(WOTS)藉由沿雜湊鏈一次簽多個位元來縮小它。Merkle 的洞見把一次性方案變成多次性:把 2^h 個 OTS 公鑰放成一棵默克爾樹的葉節點,公開樹根作為你長期的公鑰,並讓每個簽章攜帶一個 OTS 加上它通往樹根的認證路徑。

標準化方案在「狀態」上分道揚鑣。XMSS 與 LMS 是「有狀態」的——你絕不能重用某片葉子,因為重用 OTS 金鑰會洩漏祕密,因此簽署者須謹慎追蹤一個索引。SPHINCS+ 則是「無狀態」的,從一棵龐大的樹中偽隨機地挑選葉子,代價是更大的簽章(約 8 至 50 KB)。相對於 ECDSA,取捨是更大的簽章,以及(對有狀態變體而言)凶險的狀態管理——但換來堅如磐石的量子抗性,這使它們對韌體簽署與未來區塊鏈遷移等長期金鑰格外有吸引力。

有狀態的雜湊式簽章(XMSS、LMS)會因單一次意外的狀態重用而災難性崩潰——一次虛擬機回滾或備份還原,若用已使用過的葉子再次簽署,就可能洩漏金鑰。正是這個狀態風險(而非原始安全性),使 SPHINCS+ 以體積換取無狀態,也是它難以被隨意採用的主要障礙。