為什麼 EdDSA 使用 2b 位散列函式?
消息的EdDSA 簽名 $ M $ 下鍵 $ k $ 創建為:
- 定義 $ r=H(h_b,….,h_{2b−1},M)\in{0,1,…,2^{2b}−1} $ .
- 定義 $ R=rB $ .
- 定義 $ S=(r+H(\underline R,\underline A,M)s)\bmod\ell $ .
輸出 $ (\underline R,\underline S) $ 作為簽名(其中 $ \underline S $ 是個 $ b $ -bit little-endian 編碼 $ S $ ).
我的問題是:為什麼它使用 $ 2b $ 位雜湊函式?如果我們使用 $ b $ 上述等式中的位散列函式?這 $ r $ 在 1 有 $ 2b $ -bit,但它計算 $ R=rB $ 在 2 和 $ S $ 在 3 處 $ \ell $ 模組。注意 $ \ell $ 有 $ b $ -少量。為什麼我們不使用散列函式 $ b $ 位輸出?這有什麼安全問題嗎?
為什麼 EdDSA 使用 $ 2b $ 位雜湊函式?
它確保 $ r\bmod\ell $ 幾乎均勻分佈在 $ {0,1,\ldots\ell-1} $ . 這在關於Pseudorandom generation of $ r $ ,這也解釋了 $ H $ 的 $ b+61 $ -bit 就足夠了。
這有什麼安全問題嗎?
更新:我知道不,我被告知如果我們減少實際上是純粹的密碼攻擊 $ H $ 至 $ b $ -少量。它
使用 Howgrave-Graham/Smart 或 Bleichenbacher 在相對少量的簽名上將私鑰洩露給 lattice 或 FFT 算法。該設置非常薄弱:您只需要在不同的消息上獲得相當多的簽名,甚至不需要選擇的消息,然後*——bam——*私鑰就會掉出來。在 Minerva 攻擊中,有一個單獨的側通道提供有關每個簽名秘密的附加資訊,即使它們是均勻分佈的;這使攻擊者能夠進行拒絕採樣,從而為格子攻擊提供非均勻分佈。隨著 b 位秘密以曲線階為模減少,分佈已經足夠不均勻以進行格攻擊。
原來,一個不太均勻的模 $ \ell $ 不僅使安全參數無效,它還允許攻擊!它還(而且更嚴重)影響 ECDSA,並且在前面關於Pseudorandom generation of $ r $ 伯恩斯坦的論文。