0

ハッシュ値 (例: md5 値) は、'^&#%we242eweqweqweqwedfdfdfee2'、'%$#%3423efffe435%%^#' のような複数の値と接続できることを知っています。

しかし、ほとんどのユーザーは実際には非常に単純なパスワードを使用しているため、これらの md5 値は限られた単純な cleartxt パスワードとのみ関係を持つことができますか?

つまり、「cfcd208495d565ef66e7dff9f98764da」が「0」、「tom123」、「goodcar」などの 30 個の単純な値に関連付けられている場合、データベースから md5 データを取得したハッカーは、ユーザー名とクリアテキスト パスワードの関係を簡単に突き止めることができます。 、そしてこの値のペアを使用して、他の Web サイトで同じアカウントをハッキングする可能性があります。

では、指定された md5 値は、限られた単純な値に対してのみ責任がありますか?

PS: ソルトを追加したり、sha512、sha3 などのより良い方法を使用したりできることはわかっていますが、上記の質問について非常に興味があります。

4

1 に答える 1

2

質問は、「単純な値」の理解が何であるかによって異なります。一般的に言えば、暗号化ハッシュ関数は、任意の長さの入力から固定長の出力へのランダムなマッピングをエミュレートしようとします。これらの暗号化ハッシュの最も基本的なセキュリティ概念は、いわゆる衝突耐性です。つまり、同じ固定長の出力にハッシュされる入力メッセージのペアを見つけることは計算上不可能です。あなたが実証したように、実際にmd5の下で衝突する特別なメッセージを構築できるので、この概念はmd5で壊れています。

しかし、あなたが「単純な値」について話していたので、そのような人為的に細工されたメッセージを除外すると仮定すると、md5 をランダムなマッピングと見なすことができます。

このようなランダム マッピングの場合、衝突の可能性は入力ドメインのサイズのみに依存します。たとえば、文字セット {az、AZ、0-9} から 6 文字のパスワードすべてを見ている場合、衝突がないことを確認できます (Chris が指摘したように、自分で試すこともできます)。しかし、同じ文字セットからそのサイズを 25 文字に拡張すると、使用可能なハッシュ値よりも多くのパスワードが可能になるため、競合が発生することが保証されます。

衝突の可能性を推定することは、誕生日問題と呼ばれます。可能な出力値がある場合の単純な推定として、入力値kに到達したときに衝突が発生すると予想できsqrt(k)ます。したがって、md5 ではk=2^128、入力値セットが のサイズに近づくと衝突が予想されます2^64

于 2014-04-25T06:19:36.177 に答える