Winternitz 一次性簽名
我正在閱讀這本“後量子密碼學”一書中的第 38 頁(方程式 8 和 9)。我的問題是,為什麼要計算驗證密鑰 $ Y $ , $ f $ 被申請;被應用 $ 2^w-1 $ 次?是否涉及任何安全概念?
$ w $ 是一個可以自由選擇的參數,以最大限度地提高性能。簽名的每個元素都編碼 $ w $ 要簽名的消息位,因此越大 $ w $ 也就是說,您需要在簽名中包含的元素越少。
如果你做 $ w $ 大,則簽名可以更短;然而,代價是密鑰生成、簽名和驗證執行速度較慢。如果你做 $ w $ 小,則簽名較長;但是,密鑰生成、簽名和驗證執行得更快。所以這是簽名大小與方案執行時間之間的權衡。你可以選擇 $ w $ 為您的應用程序提供最佳權衡。無論價值多少,該方案都是安全的 $ w $ 你選。
儘管這個問題相當古老,但仍然沒有公認的答案。因此,讓我嘗試澄清這一點。
您所說的 W-OTS 方案是 Ralph Merkle 在他1979 年的論文中提出的,作為 Lamport-Diffie OTS 的改進版本,以減少簽名的大小。Merkle 提議一次簽署多個比特,而不是“每比特簽名”。他的靈感來自羅伯特·溫特尼茨,因此得名。
$ w $ 是同時簽名的位數。申請 $ F $ $ 2^{w-1} $ 時間允許日誌([數學處理錯誤] $ w $ ) 要同時簽名的位。
讓我使用 Merkle 論文中的範例。要簽署 4 位字元串,您將計算驗證密鑰[數學處理錯誤] [x數學處理錯誤] $ F^{15}(x) $ , 在哪裡 $ x $ 是私鑰。要簽署數字 9(二進制 1001),您將計算 $ F^9(x) $ . 為了驗證這個簽名,可以計算 $ F^6(F^9(x)) $ . 這樣,接收者就會知道發送者計算了[數學處理錯誤] $ y $ .