Signature

簽名+公鑰最小的抗量子簽名方案是什麼?

  • November 25, 2020

在與許多抗量子簽名方案玩貓捉老鼠並想出足夠小的簽名後,我轉向 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-th

digit 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 位 + 鹽的長度之和。

NIST 目前正在考慮的最緊湊的無狀態後量子數字簽名方案是Falcon。下一個最接近的參賽者是Dilithium

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