簽名+公鑰最小的抗量子簽名方案是什麼?
在與許多抗量子簽名方案玩貓捉老鼠並想出足夠小的簽名後,我轉向 Crypto.SE。我需要一個最小的抗量子簽名方案 $ signature || publickey $ 你可以找到。私鑰大小並不重要,我不能只使用 CSRNG 從較小的種子生成私鑰嗎?
實現是值得讚賞的,但不是完全必要的。我希望至少低於 1000 字節。驗證時間允許以毫秒為單位,秒聽起來有點過分。簽名時間可能長達 10 秒,這不是最大的問題。另外,如果是一次性簽名也沒關係。
一些有趣的閱讀:
選擇一些 128 位散列函式,例如RIPEMD-128,以及一種隨機化它的方法,例如this。
私鑰要麼是 60 個統一隨機的 128 位字元串
s00,s01,...,s58,s59
和一個統一隨機的短鹽,要麼是重新生成它們的種子。 $ : $ 對於
{00,01,…,58,59} 中的每個 i,是19 次
vi
散列的結果。si
$ : $ 公鑰是 使用該鹽進行隨機散列的結果。 為了對消息進行簽名,簽名者隨機均勻地選擇一個較長的鹽,計算具有較長鹽的消息的隨機散列的 base-20 表示,並輸出
v00 || v01 || ... || v58 || v59
$$ [the two salts $$和 [對於 {00,01,…,28,29} 中的每個 j,散列的結果
s[2*j]
$$ 19 minus the j-th digit of the base-20 representation $$時間和
散列的結果
s[(2*j)+1]
$$ the j-th digit of the base-20 representation $$次]。為了驗證簽名,驗證者計算具有較長鹽的消息
的隨機散列的 base-20 表示 ,[對於 {00,01,…,28,29} 中的每個 j,讓和 是結果散列簽名的相應 128 位部分
v[2*j]
v[(2*j)+1]
$$ the j-thdigit of the base-20 representation $$和$$ 19 minus the j-th digit of the base-20 representation $$
次],並檢查
v00 || v01 || ... || v58 || v59
用較短的鹽進行隨機散列的結果是否是公鑰。 如果鹽的長度是固定的,或者可以從它們的長度之和有效地計算出來,那麼 $ ; signature \hspace{.04 in} || \hspace{.04 in} public\text{_}key ; $ 將會 $ ;; $ 7808 位 + 鹽的長度之和。