チェックサム/ハッシュからファイルの内容を回復できますか?



Could I Recover Content File From Its Checksum Hash



解決:

簡単な答え、いいえ。

それは、私が知っているなら、それを尋ねるようなものですx%4 = 3、の値を見つけることは可能ですかNS?いいえ。確かに、の無限の値がありますxはこの方程式を満たしますが、どちらが正しいかを単純に知ることはできません。



同様に、多くの(または無限の)ビデオクリップが特定のハッシュ値になる可能性があります(明らかに、無限のビデオクリップは特定の数のハッシュ値にマップする必要があるため、衝突が発生する可能性があります)。どのクリップが正しいかわかりません。

それも人間の時間で?いいえ。



編集:コメントで指摘されているように、ファイルは2 MBの断片にチャンクされているため、 無限 可能性はありますが、かなり大きくなります(2は約1670万の累乗になります)。ブルートフォース攻撃は、人間の時間では、まだ不可能に近いです。しかし、ええ、そうではありません 無限


これは、コンピュータがどれほど高速であっても、事実上何もないところから正しい情報を再作成できないため、不可能です。

実際には、32バイト(SHA-256のサイズ)または最大64バイト(チャンクおよび合計ファイルの場合はSHA-256)から2MBを復元するように求めています。これは、1:65536または1:32768の比率になります。ビデオがすでに大幅に圧縮されていることを考えると、このいくつかの情報から元のデータを復元できる可能性は事実上ゼロです。 2 MBのチャンクを作成して、特定のSHA-256ハッシュを作成できる可能性がありますが、これが元のチャンクになる可能性は非常に低いです。




妥当な時間内にファイルを複製できませんでした。その理由は、ハッシュを「逆」にする唯一の方法はブルートフォースを使用することであり、元のファイルの大きさを考慮すると、ブルートフォースにかかる正確なバイト数が必要になるためです。

正確に100MBの大きさのビデオファイルがあるとしましょう。

  • 1MB = 1,000,000バイト
  • 100MB = 100,000,000バイト

つまり、この元のファイルをブルートフォースしてハッシュであることを確認する必要があり、n ^ rの順列を試す必要があります。ビデオファイルが1バイトあたり256文字(ASCII)のみを使用すると仮定すると、次のようになります。

256100,000,000≈10240,823,997≈∞

これは本質的に無限です。CPUリソースに関係なく、これを計算するには基本的にFOREVERが必要です。

アップデート :もちろん、ここで省略したハッシュ衝突の問題もあります。Sha256ハッシュを使用すると、例と同じ大きさのファイルとの衝突がほぼ無限に発生する可能性があります。簡単にするために、これについては前に言及しませんでした。