遺伝的アルゴリズムを使用してmd5ハッシュを破ることは可能ですか?

genetic genetic-algorithm md5
遺伝的アルゴリズムを使用してmd5ハッシュを破ることは可能ですか?

md5がどのように機能するかを知っていれば、遺伝的プログラミングなどの人口ベースのアルゴリズムを使用して単純なパスワードを解読することは可能でしょうか?

たとえば、5〜10文字の文字列のmd5ハッシュが与えられた場合、文字列を取得しようとします。

はいの場合、何ができるか

  • 人口の個人にとって良い表現

  • 選択基準

  • 組換え方法

これは、遺伝的アルゴリズムの適用を理解し、誰かがこの種の何かをしたかどうかを知るためです。

  4  0


ベストアンサー

あんまり。

わずか5文字で、不当に短い時間でブルートフォースできますが、おそらく、MD5を壊すことよりもGAについて多くを求めているのでしょう。 問題は、MD5ハッシュには悪用可能な構造がないことです。 「近い」文字列は、有用な距離関係の下で「近い」ハッシュを生成しません。 フィットネス関数は基本的にランダムです。

7


答えは「ノー」だと思います。 クロスオーバー機能を取得できないためです。 そして、フィットネス関数はブール値になります。 突然変異演算子とそのようなフィットネス関数のみを備えたGAはブルートフォースです。

1


いいえ、ほとんどありません。

たとえば、遺伝的アルゴリズムが使用されます。 一部の関数のローカル/グローバル最大/最小を見つけるため。 md5ハッシュの場合、md5ハッシュの計算対象の値を変更すると、md5ハッシュは完全に変更されるため、入力値の範囲を狭めることはまったく役に立ちません。 MD5アルゴリズムは、入力データが何らかの方法で変更された場合に生成された値をハッシュするように設計されました。 正しい値を見つける唯一の可能性は、突然変異を適用する場合ですが、指定されたハッシュを生成するかどうかのランダムな入力値をチェックします(オキシアルミが言ったように、これは単なる総当たり攻撃です)。

特定のmd5ハッシュを生成した値を見つける方法については、http://en.wikipedia.org/wiki/Rainbow_table [こちら(レインボーテーブル)]をご覧ください。

1


答えはおそらく「いいえ」ですが、考慮すべき警告が1つあります。公開された衝突は、数バイトだけ異なる文字列です:https://en.wikipedia.org/wiki/MD5#Collision_vulnerabilities

遺伝的アルゴリズムで平文を推測することは保証されていませんが、その方法で衝突を発見する方が効率的かもしれません。

または、PHPにあり、md5ハッシュを `==`演算子と比較する場合…​ https://eval.in/108854

1


タイトルとURLをコピーしました