限られた意味で可能です:
暗号的に安全でないハッシュ
これは、CRC ファミリーのチェックサムのような安全でないハッシュで行うことができます。
マクリーンのgzip
クワイン
Caspian Macleanはquineを作成しましたgzip
。これは、それ自体に解凍されます。Gzip 形式には圧縮されていないデータの CRC-32 チェックサム (仕様はこちらを参照)が含まれており、圧縮されていないデータはファイル自体と同じであるため、このファイルには独自のハッシュが含まれています。その可能性はありますが、Maclean はそれを生成するために使用したアルゴリズムを指定していません。
理論的には非常に単純ですが、私が使用したヘルパー プログラムは故障したハードディスク上にあり、それらを実行するための新しい Linux システムをまだセットアップしていません。特にチェックサムを手で解くのは非常に面倒です。
Cox gzip
、tar.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-malware、http://arstechnica.com/security/2012/06/flame-crypto-breakthrough/ )。あなたが実際に何をしたいかはわかりませんが、可能性は十分にあります。それはおそらく未解決の研究課題です。
たとえば、これは、ハッシュがファイルに埋め込まれるように、選択されたプレフィックスのプレイメージ攻撃を使用して、目的のハッシュに等しいプレフィックスを選択することで実行できます。プリイメージ攻撃はコリジョン攻撃よりも困難ですが、ある程度の進歩はあります。MD5 に対するプレイメージ攻撃が差し迫っていることを示す公開された研究はありますか?を参照してください。.
MD5 の固定点を見つけることも可能かもしれません。ダイジェストを挿入することは、本質的に同じ問題です。議論については、合計自体を含むファイルを md5sum? を参照してください。.
関連する質問: