Password-Hashing

在 Rainbow Tables 的最後一列中儲存散列或明文是否有意義

  • November 18, 2019

當我閱讀彩虹表時,我發現大多數消息來源建議在最後一列儲存純文字 - Rk(hk) 的結果,而其他人只儲存雜湊 hk,基本上提前一步停止。

計算和儲存明文而不是儲存雜湊是否有意義?我們從額外的減少步驟中獲得了什麼?

Rainbow 表的平均鍊長在設計時確定。讓它校準 $ t $ .

如果我們希望表格包含 $ N $ 我們至少需要的條目 $ N/t $ 端點。為了節省儲存空間,您想要 $ t $ 盡可能大,但在某種程度上。 $ t $ 確定搜尋時間, $ t^2 $ . 如果您有更改,您可能希望減少空間,這可以加快查表時間。

儲物桌是一對;

| Start Point | End Point |

在密碼破解中

  • 如果您將雜湊儲存為端點,那麼我們可以立即在端點上搜尋給定的密碼雜湊。
  • 如果我們在歸約後儲存,如在WikipediaOechslin中,我們需要首先對給定的雜湊值應用歸約,然後我們可以搜尋。

如果您正在尋找 128 位大小的密碼並為 SHA256 建構表,那麼對於端點,您可以儲存縮減後的值,而不是儲存雜湊值。在這種情況下,您將獲得大約 $ \frac{128 N}{t} $ 位的成本為每次新搜尋應用減少。因此,如果有可用的空間增益,則它是優選的。

有趣的是,大多數密碼都是弱密碼,而不是建構昂貴的 Rainbow 表,只包含弱密碼的雜湊表是更好的選擇。

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