[解決済み】SHAが衝突する可能性は、実際には無視しても大丈夫なのでしょうか?
質問
例えば、1枚1メガバイトのユニークな画像が10億枚あるとする。 各ファイルのコンテンツについてSHA-256ハッシュを計算する。 衝突の可能性は、に依存します。
- ファイル数
- <ストライク 1つのファイルのサイズ
この可能性をゼロと仮定して、どこまで無視できるのか。
どのように解決するのか?
次の瞬間、小惑星が地球に衝突して文明を破壊し、数十億人が死亡する確率はどのくらいだろうか。それよりも低い確率の不運な出来事は、実はあまり重要ではないのだと言うことができる。
完璧なハッシュ関数があり、出力サイズが n であり、かつ p ハッシュ化するメッセージ(個々のメッセージの長さは重要ではない)の衝突確率は、約 p 2 /2 n+1 (これは、quot;small".に対して有効な近似値です。 p よりも大幅に小さい。 2 n/2 ). 例えば、SHA-256では( n=256 )、10億メッセージ( p=10 9 )であれば、その確率は約 4.3*10 -60 .
大量殺戮を行う宇宙岩石は、平均して約3000万年に一度の割合で発生します。このことから、そのような事象が次の1秒間に起こる確率は、約 10 -15 . それは 45 SHA-256のコリジョンよりも桁違いに高い確率で発生します。簡単に言うと、もしSHA-256の衝突を怖いと思うなら、あなたの優先順位は間違っているのです。
ハッシュ化されるメッセージを攻撃者が選べるようなセキュリティ環境では、攻撃者は10億以上のメッセージを使うかもしれません。しかし、それでも攻撃者の成功確率は驚くほど小さいことがわかります。それが、256ビット出力のハッシュ関数を使用する最大のポイントであり、衝突のリスクを無視することができるのです。
もちろん、上記はすべてSHA-256が完璧なハッシュ関数であることを前提にしていますが、証明されるにはほど遠い状態です。それでも、SHA-256はかなり堅牢だと思われる。
関連
-
[解決済み] トレントファイルの info_Hash とは一体何でしょうか?
-
[解決済み] node.jsのハッシュ文字列?
-
[解決済み】レインボーテーブル攻撃に対してパスワードソルトはどのように役立つのでしょうか?
-
[解決済み] MD5が衝突を起こすまでのランダム要素の数は?
-
[解決済み] パスワードの暗号化:ベストプラクティス?[クローズド]。
-
[解決済み] ReSharperのGetHashCodeのオーバーライドに'397'が使用されているのはなぜですか?
-
[解決済み] SHA-1はパスワードの保存に安全か?
-
[解決済み] MD5はファイルを一意に識別するのに十分な性能を持っていますか?
-
[解決済み] 暗号ハッシュ関数はどれを選べばいいですか?
-
[解決済み] MD5ハッシュの計算は、SHAファミリー関数よりもCPU負荷が低いですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】弱い抵抗と強い抵抗の違いとは?
-
[解決済み] MurmurHash - それは何ですか?
-
[解決済み] SHA-256 javascriptの実装で、一般に信頼できるとされるものはありますか?
-
[解決済み] トレントファイルの info_Hash とは一体何でしょうか?
-
[解決済み】MD5ハッシュを復号化することは可能ですか?
-
[解決済み】SHAが衝突する可能性は、実際には無視しても大丈夫なのでしょうか?
-
[解決済み】レインボーテーブル攻撃に対してパスワードソルトはどのように役立つのでしょうか?
-
[解決済み] MD5はファイルを一意に識別するのに十分な性能を持っていますか?
-
[解決済み] MD5/SHA1よりもCRCの方が適切な場合とは?
-
[解決済み] MD5ハッシュの計算は、SHAファミリー関数よりもCPU負荷が低いですか?