1

MD5 ハッシュの最初の 16 文字しかないとします。ブルート フォース攻撃、レインボー テーブル、またはその他の方法を使用して元のパスワードを取得した場合、何人の互換性のある候補が期待できますか? 1? (思わない) 10、100、1000、10^12? 大まかな回答でも大歓迎です (数値については、ハッシュ理論と方法論に一貫性を持たせてください)。

4

2 に答える 2

2

MD5 の出力は 16バイト(128 ビット) です。あなたは16進数表現について話していると思います。したがって、 32 characters . したがって、「16 文字」は「64 ビット」を意味します。出力が 64 ビットに切り捨てられた MD5 を検討しています。

MD5 は最大2 64ビット長の入力を受け入れます。MD5 がランダム関数として動作すると仮定すると、これは2 18446744073709551616の可能な入力文字列が2 64の出力間で多かれ少なかれ均一にマッピングされることを意味します。したがって、特定の出力の候補の平均数は約2 18446744073709551552であり、 10に近くなります。5553023288523357112.95

ただし、少なくとも 1 つの候補を見つけることができると考える場合、これは、考えられるパスワードのスペースが大幅に減少することを意味します。レインボー テーブルは、(比較的高価なルックアップ手順を犠牲にして) コンパクトな表現を受け入れる特別な種類の事前計算されたテーブルですが、N 個のパスワードをカバーする場合、ある時点で誰かがハッシュ関数Nを適用できることを意味します。回。実際には、これによりサイズNが大幅に制限されます。N=2と仮定60(つまり、テーブル ビルダーには約 100 個の NVidia GTX 580 GPU があり、それらを 6 か月間実行できました。また、テーブルはかなりの数のハード ディスクを使用します)、平均すると、64 ビットの 1/16 に過ぎません。出力には、テーブル内の一致するパスワードがあります。表にあるパスワードの場合、93.75% の確率で表に他のパスワードがなく、同じ出力が得られます。必要に応じて、一致するパスワードが見つかった場合、平均で 0.0625 の他の候補が見つかります (つまり、ほとんどの場合、他の候補はありません)。

簡単に言えば、あなたの質問に対する答えは、考えられる可能なパスワードのスペースのサイズN (レインボー テーブルの構築中にカバーされたもの) によって異なります。しかし、実際には、地球ベースのテクノロジでは、64 ビット出力に一致するパスワードを1 つ見つけることができたとしても、別のパスワードを見つけることができない可能性があります (実際には他にもたくさんありますが)。

于 2011-02-28T14:05:58.763 に答える
1

部分ハッシュからパスワードを取得することはできません。

于 2011-02-28T11:01:33.200 に答える