2

ダイジェストされるファイルにダイジェストを入れるアルゴリズムはありますか?

言い換えれば、アルゴリズムやライブラリはありますか、またはハッシュ/ダイジェストされているファイルに含まれるファイルのハッシュ/ダイジェストを持つことさえ可能ですか? これは、組み込みの ISO ダイジェストなど、明らかな理由で便利です。「MD5インジェクション」や「ファイルのダイジェスト」などをグーグルで検索してみました。運が悪い(おそらく正当な理由による)。

数学的にも可能かどうかはわかりません。ファイルをロールスルーできるようですが、最後のビットをブルートする必要があります (ダイジェストがファイルまたはオブジェクトの最後のものであると仮定します)。

ありがとう、チェンツ

4

3 に答える 3

4

限られた意味で可能です:

暗号的に安全でないハッシュ

これは、CRC ファミリーのチェックサムのような安全でないハッシュで行うことができます。

マクリーンのgzipクワイン

Caspian Macleanはquineを作成しましたgzip。これは、それ自体に解凍されます。Gzip 形式には圧縮されていないデータの CRC-32 チェックサム (仕様はこちらを参照)が含まれており、圧縮されていないデータはファイル自体と同じであるため、このファイルには独自のハッシュが含まれています。その可能性はありますが、Maclean はそれを生成するために使用したアルゴリズムを指定していません。

理論的には非常に単純ですが、私が使用したヘルパー プログラムは故障したハードディスク上にあり、それらを実行するための新しい Linux システムをまだセットアップしていません。特にチェックサムを手で解くのは非常に面倒です。

Cox gziptar.gz、および ZIP クイン

Russ Coxは、Gzip、.ziptar.gz形式でさらに 3 つのクインを作成し、優れた記事でそれらの作成方法を詳しく説明しています。この記事では、彼がチェックサムをどのように埋め込んだかについて説明しています: 力ずくで—</p>

2 つ目の障害は、圧縮されていないデータの CRC32 チェックサムが zip アーカイブ (および gzip ファイル) に記録されることです。非圧縮データは zip アーカイブであるため、チェックサムされるデータにはチェックサム自体が含まれます。したがって、チェックサム フィールドに x を書き込むと、ファイルのチェックサムが x になるような値 x を見つける必要があります。再帰は反撃します。

CRC32 チェックサムの計算では、ファイル全体が大きな数値として解釈され、特定の種類の除算を使用してその数値を特定の定数で除算すると、剰余が計算されます。適切な方程式を設定してxを解く努力をすることができます。しかし、率直に言って、今日は厄介な再帰パズルを 1 つ解いたので、これで十分です。xには 40 億の可能性しかありません。機能する可能性が見つかるまで、それぞれを順番に試すプログラムを作成できます。

また、ファイルを生成したコードも提供しています。

(それ自体しか含まない Zip ファイルも参照してください。 )

暗号的に安全なダイジェスト

暗号的に安全なハッシュ関数では、ハッシュ関数を壊すか (特に、安全なダイジェストは「特定のハッシュを持つメッセージを生成することを不可能にする」必要があります)、またはブルート フォースを適用しない限り、これは可能ではありません。

しかし、これらのハッシュは、まさにその種の攻撃を阻止するために、32 ビットよりもはるかに長くなっています。したがって、これを行うためのブルート フォース アルゴリズムを作成することはできますが、非常に幸運でない限り、宇宙が終わる前にアルゴリズムが終了することを期待すべきではありません。

MD5が壊れているので、簡単かもしれません

MD5 アルゴリズムは深刻に壊れており、選択されたプレフィックスの衝突攻撃はすでに実用的です (Flame マルウェアの偽造証明書で使用されているように、http: //www.cwi.nl/news/2012/cwi-cryptanalist-discovers-new- を参照)。 cryptographic-attack-variant-in-flame-spy-malwarehttp://arstechnica.com/security/2012/06/flame-crypto-breakthrough/ )。あなたが実際に何をしたいかはわかりませんが、可能性は十分にあります。それはおそらく未解決の研究課題です。

たとえば、これは、ハッシュがファイルに埋め込まれるように、選択されたプレフィックスのプレイメージ攻撃を使用して、目的のハッシュに等しいプレフィックスを選択することで実行できます。プリイメージ攻撃はコリジョン攻撃よりも困難ですが、ある程度の進歩はあります。MD5 に対するプレイメージ攻撃が差し迫っていることを示す公開された研究はありますか?を参照してください。.

MD5 の固定点を見つけることも可能かもしれません。ダイジェストを挿入することは、本質的に同じ問題です。議論については、合計自体を含むファイルを md5sum? を参照してください。.

関連する質問:

于 2012-09-15T00:41:59.210 に答える
3

これを行う唯一の方法は、ファイル形式を定義して、ハッシュが含まれていないファイルの部分にのみハッシュが適用されるようにすることです。

ただし、(ISO に組み込まれているように) ファイル内にハッシュを含めると、ハッシュのセキュリティ上の利点全体が無効になります。別のチャネルからハッシュを取得し、それをファイルと比較する必要があります。

于 2010-02-03T17:51:10.690 に答える
0

いいえ、それはハッシュがそれ自体のハッシュでなければならないことを意味するため、これは不可能です。

于 2010-02-03T17:41:00.387 に答える