關於彩虹桌和赫爾曼桌的區別
我正在學習彩虹表和地獄人表,我很好奇它們之間的區別,所以我留下了這樣一個問題。
維基百科描述了以下句子:
“Rainbow Tables”一詞首次出現在 Oechslin 的最初論文中。該術語是指使用不同的歸約函式來提高攻擊成功率的方式。Hellman 的原始方法使用許多具有不同歸約函式的小表。彩虹表要大得多,並且在每列中使用不同的歸約函式。當使用顏色來表示歸約函式時,彩虹表中會出現一條彩虹。Oechslin 論文的圖 2 包含一個黑白圖形,說明了這些部分是如何相關的。對於他在 Crypto 2003 會議上的演講,Oechslin 為圖形添加了顏色,以使彩虹關聯更加清晰。會議上展示的增強圖形顯示在右側。
據此,hellman table 對每個表使用相同的歸約函式,同時儲存幾個大小的表 $ m\times t $ .
另一方面,彩虹表創建一個更大的表,並為每一列使用不同的歸約函式。
在這一點上,出現了幾個問題。
- 最後,這兩種方法中的哪一種,儲存大量的元素不是有好處嗎(當然會進行大量的預計算)?
- 歸約函式的使用方式不同會導致不同的結果嗎?
- 從我的角度來看,總的來說,人們似乎比 Hellman 表更多地使用彩虹表,但為什麼呢?
謝謝你。
有許多方面需要考慮您的問題,而簡短的答案實際上是不可能的。
下面的論文Analysis of the Rainbow Tradeoff Algorithm Used in Practice對彩虹表的使用以及如何選擇參數進行了非常詳細的概述。
https://eprint.iacr.org/2013/591.pdf
抽象的:
密碼分析時間記憶權衡是一種用於反轉單向函式的工具,彩虹表法是最著名的權衡算法,被廣泛用於恢復密碼。儘管已經對彩虹權衡進行了廣泛的研究,但實際使用的算法與經過充分研究的原始算法不同。這項工作對實踐中使用的彩虹權衡算法進行了全面分析。與彩虹權衡的現有工作不同,分析是在外部記憶體模型中完成的,因此考慮了表載入時間的實際重要問題。因此,我們能夠提供優化掛鐘時間的權衡參數。最重要的是
然而,在實踐中,彩虹權衡的非常大的預計算表最初必須駐留在慢速磁碟上,並且這些需要載入到較小的主記憶體中進行處理。這種情況與計算的 RAM 模型完全不同,並且原始彩虹權衡的高度非本地化記憶體訪問行為使其在現代電腦上的直接實現非常不切實際,除非在較小搜尋空間的不太有趣的情況下使用。
論文中還進行了一些統計分析。
快樂閱讀!