Passwords
如何證明彩虹表是完備的?
可以使用彩虹表破解散列但未加鹽的密碼。我經歷了這個,這很好地解釋了彩虹表背後的邏輯。
但是我錯過了關於彩虹桌的一些東西;如何確定所有有效密碼的雜湊值都包含在表中?
假設密碼是 8 個字元,從
$$ a-z $$$$ A-Z $$$$ 0-9 $$. 如果我正在建構一個具有 10000 個雜湊和反向迭代鏈的彩虹表,我如何確定該表在什麼時候完成?即:儲存的密碼和最終散列包括鏈中某處所有 62 8個有效密碼的散列? 有沒有一種數學方法可以驗證彩虹表的完整性?
彩虹表不完整。但有些覆蓋面很好。我們使用統計工具估計彩虹表覆蓋了多少不同的雜湊值。
我們可以建造完美的彩虹桌,在那裡我們可以扔掉碰撞的鏈條。這減少了最終表中的冗餘。但即使在“完美”的彩虹中,某個雜湊值也可能出現兩次(但不在同一列中),所以我們仍然需要估計覆蓋率。
隨著我們接近全面覆蓋,它變得越來越昂貴。因為有了一個覆蓋率很高的表,幾乎我們添加的任何東西都已經被覆蓋了。