一般情報(専門家向け-間違いなくスキップ)
ご存知のように、暗号化ハッシュの合計は、ハッシュ関数に必要な基本的なプロパティに加えて、 通常のハッシュの合計とは異なります。
- 任意の長さの入力値(通常はテキスト)を固定長の出力値に変換する機能、
- 外れ値の統計的均一性
- わずかに(おそらく1ビットのみ)異なる入力テキストであっても、出力値の良好な「分散」(ビットの約半分の差異)。
- 出力値のビット深度は、処理速度とストレージボリュームの両方で、最新のテクノロジの完全な列挙機能をはるかに超える必要があります(実際には、これは128、160、256ビット以上のビット幅です)。
- (入力値の徹底的な検索よりもはるかに効率的な) 同じハッシュ値を与える入力テキストのペアを計算する方法はありません(何があっても) -この要件に対する攻撃の成功は、ハッシュ関数の「衝突」と呼ばれます。
- ハッシュ関数の値によって、アルゴリズムの出力でハッシュ値を提供する入力テキストを選択する方法はありません(入力値の徹底的な検索よりもはるかに効率的です)。この要件に対する成功した攻撃は、ハッシュ関数の「逆転」と呼ばれます。
- 広大な現代情報社会全体でユニーク。
- 元に戻すことはできません。つまり、元の文書の内容については何も明らかにしません。
- ファイル、アーカイブ、アセンブリなどの整合性をチェックする (ファイルのハッシュ量を受信者に信頼するだけで十分です。ファイルに不正な変更を加えると、ハッシュチェックサムが直ちに変更されます)。
- パスワードを不可逆的な形式で保存します(パスワード自体はストアに保存されませんが、たとえば「定数(塩)」+「パスワード」という形式の文字列からのハッシュ和です。これにより、ハッシュを開くときに辞書パスワードフレーズを秘密に保つことができます)。
- 文書の電子デジタル署名(EDS自体は、ファイル自体ではなく常にインストールされます。これは、まず非常に遅くなり、次に、署名キー自体のセキュリティにいくつかの問題がありますが、変更に対する同じレベルの保護)。
どうしたの?
かなり長い間(1990年代半ば以降)、暗号化機能の発信世代は非常に強力であると考えられていました。 MD5とSHA-1はどちらも1990年代初期にハッキングされたMD4アルゴリズムで具体化されたアイデアに基づいていましたが、設計段階で改善が行われました(つまり、ハッシュ値の計算でパス(ラウンド)の数を増やし、より徹底的に適用された数学的操作の開発)は、2004年まで家族はあらゆる種類の攻撃に対して耐性があると考えられていたという事実につながりました。
2004年8月16日、晴天からの雷が鳴りました。中国の研究者グループ(X. Wangが率いる)が科学出版物eprint.iacr.orgのオープンサーバーで公開し、MD4、MD5、RIPEMD、HAVALについての単一の発言について説明していませんでしたこれらの入力テキストの選択には1時間5分かかりました 。 それは爆発でした。 最強の暗号作成者は再びMD5 / SHA-1ファミリーに注目し、そしてもちろん、画期的な記事で与えられた例に注目しました。 特定の規則性が明確になり、すぐに同様の暗号への衝突を構築するための方法論的な装置が構築されました。これは、2004年から2006年の間に改善され、通常のパーソナルコンピューター上で1秒未満の速度に達し、衝突を引き起こすいくつかのテキストを生成しました。 今日、それらは明らかにハッキングされています(ただし、「衝突」クラスの攻撃のためだけです!) MD4、MD5、RIPEMD、HAVAL、SHA-0。
SHA-1では、状況は多少異なります。 MD5やRIPEMD-160よりもやや複雑な数学的変換の構造は、攻撃実装のオープンサークル(これまでに同じ中国人によって提案された)でこれまでに知られている2 ^ 63演算の最高の計算の複雑さを制限します。 これは客観的にたくさんあります。 コンピューター技術の生産性の指数関数的な成長を考慮しても、今後20年間で1台のコンピューターが少なくとも1つの衝突を選択できるとは考えられません。 ただし、分散プロジェクトがあることを忘れないでください。 健全な野望(SHA-1の最初の人為的な衝突を取得しますが、これは公式には米国の暗号ハッシュ標準です)は、グラーツ大学(オーストリア)の研究者にサーバーboinc.iaik.tugraz.atでの分散検索を開始するよう促しました。次の5年 。
そして最後に、この手法を議論する際に常に提起される問題は、 GOST R 34.11-94がこの攻撃に対して脆弱かどうかです。 答えはノーです。 国内の暗号規格では、ハッシュ中にソーステキストのブロックを「混練」する別のスキームを使用しているため、これまでのところ、GOSTについて説明した方法は適用されていません。 最も有名な攻撃(2008年にメディアでいくつかのうわさを引き起こした)は、同じグラーツの研究者によって提案され、衝突を選択するプロセスを2 ^ 23倍改善します。 それは異なる原理に基づいており、 2 ^ 105演算の計算の複雑さを持っています 。これは、分散プロジェクトやスーパーコンピューターにとっても現実からはほど遠いです。
結果
「乾燥残留物」には何がありますか?
暗号化アルゴリズムMD4、MD5、SHA-1、RIPEMD、HAVALは、 衝突生成攻撃に関して独自に侵害されています。 しかし、(!)幸いなことに、ハッシュ関数の逆転に対する物理的に実行可能な単一の攻撃(MD4であっても)はこれまでに公開されていません 。
これは何を脅かすのですか?
攻撃者は、同じハッシュ値を持つ2つの異なるドキュメントを作成できます(一方、どの値になるかを正確に「制御」する機能はありません)。 これは、既存の外部ドキュメント/テキスト/ファイルに対して「ダブル」を作成できないことを意味します。 彼は、自分で最初の文書と2番目の文書の両方を作成できる場合にのみ、状況を制御します。
攻撃者は...?
- ...元のファイルと同じハッシュ量を持つ別のファイル/アーカイブ/などを作成し、たとえばWEBサーバーまたはソース/バイナリリポジトリで元のファイルと置き換えますか? いや ただし、元のファイルの作成者である場合、彼は同じハッシュ合計で2つのバージョンのファイルを作成できます:無害と悪意 、公開検査に無害を与え、配布段階で静かにバージョンを悪意のあるものに変更します-このハッシュ関数のみをチェックします気付かない。
- ...ハッシュを何らかの方法で見つけてクライアントパスワードを復元しますか? 絶対にありません。
- ...デジタル署名で保護された、以前に作成されたファイル(自分または他の人のファイル)を変更しますか? いや ただし、最初の場合と同様に、最初に2つのバージョンのソースファイルを作成し、自分のデジタル署名でそれらの1つに署名するか、他の誰かのデジタル署名に署名のために与えて(たとえば、ドキュメントを第三者に預けたり、ドキュメントの作成時間を保証する場合)、署名されたドキュメントを受け取った後に転送する文書の2番目のバージョンとデジタル署名の署名を担当するブロックは正しくなりますが 、これはもちろん受け入れられません。 これまでに、暗号解読者は、支払い量のみが異なる支払い注文の衝突の例、および異なる公開鍵、同じハッシュ量、したがってそれらを認証する同じ認証局の署名を持つX.509証明書の衝突の例をすでに示しています。 残念なことに、これはすべて想像のために十分な範囲を提供します。
今日は何を使用しますか?
- 長い間知られているよく知られたハッシュアルゴリズムのうち、今日、 GOST R 34.11-94 (FAPSIの開発者、1995)およびTIGER (開発者-世界的に有名な暗号学者E. BihamおよびR. Anderson、1995)に対する主張はありません。
- 米国標準化機構NIST(2001-2002)の新世代のSHAアルゴリズムには、 SHA-224、SHA-256、SHA-384、SHA-512 (出力値のビット深度から)の新しい番号が付けられ、一般的なコード名SHA-2で組み合わされることもあります。 アルゴリズムの暗号化変換の構造は異なります。これまでのところ、アルゴリズムに対する攻撃に関する情報は、第1種または第2種のいずれについても受信されていません。
- これに満足せず、NISTは2007年に第3世代のハッシュ標準SHA-3の公開入札を開始しました(2000年に新しいAESブロック暗号化標準が選択された方法を原則で正確に繰り返しています)。 現在、競争の第1段階のみが進行中であり、世界中から51のアルゴリズムが参加できます。
- 最後に、原則として、検証のために同時に 2つ以上の脆弱な機能を使用することを禁止しません。 同じMD5量と同じSHA-1量を同時に生成するドキュメントのペアを作成することは現在不可能です。