Encryption

Bleichenbacher 攻擊,二分搜尋,公式s一世s一世s_i

  • December 30, 2016

閱讀了一篇解釋 Bleichenbacher 攻擊的優秀文章,我在公式下遇到了以下語句 $ s_i $ :

如果我們選擇 $ r ≥ 2(bs_{i-1} - 2B) / n $ , 我們獲得

$ (2B + 2(bs_{i-1} - 2B)) / b = 2s_{i-1} ≤ s_i $

誰能向我解釋如何獲得先前的平等?如果我們嘗試重現它,我們顯然會得到:

$ (2B + 2bs_{i-1} - 4B)/b=(2bs_{i-1} - 2B)/b=2s_{i-1} - 2B/b $

為什麼作者得出結論背後的結果是相等的 $ 2s_{i-1} $ ? 此外,在後面的程式碼中,他們使用

r = ceil((b*si - B2)*2,n) # starting value for r

作為起點 $ r $ …

文章中的陳述(我是作者)是我個人對 Bleichenbacher 的句子“我們使用條件 (1) 是因為我們希望將每次迭代中剩餘的間隔大致分成兩半”的個人解釋。(參見第 4 頁的原始論文)。

但事實上,你是對的,平等並不成立。我應該寫 $ (2B + 2(bs_{i-1} - 2B)) / b \approx 2s_{i-1} $ , 這是因為你注意到了

$$ (2B + 2bs_{i-1} - 4B)/b=(2bs_{i-1} - 2B)/b=2s_{i-1} - 2B/b $$ 但 $ 2B/b < 1 $ 自從 $ b > 2B $ ( $ b $ 在初始區間內)。此外,由於我們正在處理整數 $ -2B/b $ 大部分時間都是有影響的。我認為這與 Bleichenbacher 的“大約一半”是一致的,但事實上我從來沒有問過他更多關於他是如何得到這個約束的細節 :)

我會更新文章以反映這個討論(順便說一句,我很高興你喜歡它)。

@Ritam:攻擊非常有效。我們已經對其進行了優化並在真實設備上實施。

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