質問

ファイルの内容ではなく、ファイル名を含む crc32 ハッシュのリストを取得しています。

「vacationplans_2010.txt」のようなハッシュ化された名前の文字列を復号化できる必要があります。

長さは 25 文字未満です。

これは可能ですか?

役に立ちましたか?

解決

それは一方向ハッシュ関数です。これは、復号化することができません。

他のヒント

他のユーザーが回答したにもかかわらず、 CRC32 は暗号化ハッシュ関数ではありません;これは整合性チェック (データ チェックサム) を目的としています。暗号化ハッシュ関数は「一方向ハッシュ関数」として説明されることがよくありますが、CRC32 には「一方向」部分がありません。

そうは言っても、次の点を考慮する必要があります。可能なすべての 25 文字以下のファイル名のセットは 2^32 を超えるため、一部のファイル名は同じハッシュ値を持つようになります。したがって、取得する CRC32 値の一部については、複数のソース (ファイル名) が考えられる可能性があります。「本当の」ソースを特定する方法が必要になります (私たちの脳は優れたパターン認識装置であるため、人間の判断が最良の選択であると思いますが、実際にはシナリオによって異なります)。

要求を部分的に達成するには、いくつかの方法を使用できます。 強引な もその 1 つです (ただし、ファイル名の長さが 25 文字の場合、ブルート フォースには時間がかかる可能性があります)。修正された 辞書攻撃 は別のオプションです。他のオプションは CRC32 アルゴリズムの分析に基づいており、アルゴリズムの実装の詳細を詳しく調べる必要があります (そうしないと、何を実装しているのか理解するのが難しくなります)。たとえば、これを参照してください 記事, 、またはこれ アーティス.

編集:Bruce Schneier (特に『Applied Cryptography』の著者) による定義:

一方向関数は比較的簡単です 計算はできますが、かなり難しくなります 反転します。… 。この文脈では、 「ハード」は次のように定義されます。何百万年もかかるだろう f(x) から x を計算します。 世界のコンピュータが割り当てられました 問題に。

ハッシュ関数は関数であり、 数学的であろうとなかろうと、それには 可変長の入力文字列と (更新前イメージと呼ばれます)を変換し、 固定長 (通常はそれより小さい) に 出力文字列 (ハッシュ値と呼ばれます)。

一方向ハッシュのセキュリティ 関数は、その一方通行性です。

A CRC32のようなハッシュ関数には、(可変)入力指定された単純な値を算出します。計算は可逆的ではない - すなわち、あなたは確実にハッシュだけ与えられた元の値を取得することはできません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top