チェックサムはどのくらいユニークですか?


11

並べ替えが必要なファイルがたくさんあります。残念なことに、同じ名前で内容が異なる多くのファイルがあり、ファイル名が異なる同じ内容があります。

を使用md5sumしてファイルのチェックサムを生成することを考えていますが、知っておく必要があります。2つの異なるファイル(つまり、異なるコンテンツ)が同じチェックサムを生成する可能性はありますか?

もしそうなら、それはどのくらい起こりそうですか?

2つの異なる関連のない(つまり、同じ「ファミリ」内にない)チェックサムプログラムを使用して2つのチェックサムを生成することは可能でしょうか。一度に両方に起こることはありませんか?


2
md5 / sha2 / etcはデータのハッシュであるため、多くのビットの情報をより小さなビットスペースにマッピングするため、衝突が発生する可能性があることに注意してください。ハッシュは一意のキーではありません。それがあなたの目標である場合は、他のことを行うことを強くお勧めします。
mdpc 2014年

ファイルの並べ替えには、MD5が最適です。crypto.stackexchange.com/a/18337/49945から、2つの異なるコンテンツのチェックサムコリジョンの確率は2 ^ 128に1で、これは10 ^ 43に約1です。それは本当に、本当に珍しいことです。マイクロ秒ごとに1つの比較を行うと、平均して10 ^ 20年に1回衝突が発生します。ビッグバンからたったの10 ^ 9年しか経っていないため、ビッグバンから現在までのマイクロ秒あたり1回の比較で衝突が発生する確率は、今でも10 ^ 11分の1です。1000億台の同時コンピューターが存在する場合、衝突が発生したのはまだ1人だけでした。
ToolmakerSteve 2017

...ファイルをソートするときにハッシュアルゴリズムを使用する理由は明らかではありません。同じ名前のファイルがある場合、それらは他のいくつかの基準によって識別可能でなければなりません。たとえば、ファイルへのいくつかの一意のパス、またはおそらくいくつかのストレージデバイス内のバイトオフセットが必要ですか?これらのいずれかが、ファイルを一意に参照するためのより便利な方法になります。
ToolmakerSteve 2017

回答:


11

内容が同じでファイル名が異なる2つのファイル:file1およびfile2):

cat file1
this is a simple file

cat file2
this is a simple file

md5sum file1
7de45bf879db49de7e2eacea23e6c165  file1
md5sum file2
7de45bf879db49de7e2eacea23e6c165  file2

内容は異なるがファイル名が同じ2つのファイル:file1およびfile1

cat file1
this is a simple file
cat file1
this is a simple file with extra contents
md5sum file1 #first file1
7de45bf879db49de7e2eacea23e6c165  file1
md5sum file1 #second file1
c7c8f3fd9ddd7a926c31416a69063e4e  file1

wikiエントリから、

ただし、実際に同じハッシュを持つように特別に作成されていない限り、実世界の2つの同一でないファイルが同じMD5ハッシュを持つことはほとんどありません。

しかし、MD5アルゴリズムには独自の欠点があります。

ただし、MD5の衝突が簡単に発生するようになったため、ファイルを作成したユーザーが同じチェックサムを使用して2番目のファイルを作成する可能性があるため、この手法では、なんらかの形式の悪意のある改ざんから保護できません。また、場合によっては、チェックサムは信頼できません(たとえば、ダウンロードされたファイルと同じチャネルを介して取得された場合)。この場合、MD5はエラーチェック機能のみを提供できます。破損または不完全なダウンロードを認識します。これは、大きなファイルをダウンロードするときに、より可能性が高くなります。

sha1アルゴリズムを使用する場合、衝突の生成はそれほど簡単ではないため、チェックサムの計算にはsha1を使用することをお勧めします。ここでわかるように、sha1チェックサムの生成は非常に簡単です


注:問題はファイルのソートに関するものです。使用する推奨事項sha1はそのタスクには関係ありません。セキュリティが心配な場合にのみ重要です。
ToolmakerSteve 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.