10

データよりも大きなバイト サイズのハッシュ アルゴリズム (sha-256 など) を使用して、サイズが制限された同様のデータ (社会保障番号など) をハッシュしている場合、ハッシュはデータと同じレベルの一意性を保証しますか?元データ?

4

5 に答える 5

6

ハッシュ衝突の確率は、入力文字列のサイズとは関係ありません(一意性を維持するために必要な入力の数を示す場合を除きます)。完全なハッシュアルゴリズムを使用して0と1をハッシュすると、ハッシュの衝突が発生する可能性がありますが、1 /(2 ^ bit-length)の可能性があります。SHA-256の場合は事実上ゼロです。

ハッシュの衝突は誕生日のパラドックスの問題です。256ビットハッシュの場合、2つの入力間の衝突の確率は、純粋に入力の数に依存し、次のようになります。

  • 1-(2 ^ 256)!/((2 ^ 256 ^ inputcount)*(2 ^ 256-inputcount)!)または他の人が言っているように、入力の妥当な数の場合は基本的にゼロです。
于 2010-02-19T22:36:46.510 に答える
5

一意性を保証するカスタマイズされたハッシュをいつでも作成できます。既知のドメイン(SSNなど)のデータの場合、演習は比較的簡単です。

ターゲットハッシュ値に実際に使用可能なビット数よりも多くのビットがある場合、ハッシュは入力値を使用可能な出力値の1つにマップするだけです。これは、マルチバイト整数としての入力値からマルチバイト整数としての出力への単純な線形マッピングになります。

ターゲットハッシュ値のビット数がハッシュされているビット数よりも少ない場合、一意性を保証することはできません。

于 2010-02-19T22:01:34.493 に答える
1

SHAのような暗号化ハッシュを使用している場合、簡単な答えは「はい」です。

于 2010-02-19T21:53:39.040 に答える
1

暗号的に安全なハッシュ関数の重要な機能の 1 つは、入力に関係なく、合理的な疑いを超えて衝突から安全であることです。これは、出力のサイズよりも短い入力に対しても有効です。これは、エントロピーがほとんどない長いメッセージと同じです。したがって、衝突を心配することなく SHA-2 を使用できます。

于 2010-02-19T22:29:07.707 に答える