問題 18★★☆

社内の電子文書の改ざん検知に、SHA-1で計算したハッシュ値を使っている。 SHA-1は危殆化しているので見直すべきだと指摘を受けた。 この指摘の理由として、最も適切なものはどれか。

正解:ア

各選択肢の解説

  1. ア同じハッシュ値をもつ異なる2つのデータを、現実的な計算量で作れるようになった。

    正解。改ざん検知は「異なるデータから同じハッシュ値は事実上出ない」(衝突が見つからない) ことが前提です。SHA-1ではこの衝突が実際に作られており、SHA-256などSHA-2への移行が求められます。

  2. イハッシュ値から、元の文書の内容を復元できるようになった。

    誤り。ハッシュ関数は一方向性をもち、ハッシュ値から元のデータを戻す手順がありません。 SHA-1の危殆化で問題になったのはこの性質ではありません。「ハッシュ値は暗号文の一種で、 破られると中身が読める」という誤解から選びやすい選択肢です。

  3. ウハッシュ値の計算に使う秘密の鍵が、第三者に知られるようになった。

    誤り。ハッシュ関数は鍵を使わず、同じ入力からは誰が計算しても同じ値が出ます。 鍵を使うのは、ハッシュ関数と共通の鍵を組み合わせるメッセージ認証(HMACなど)です。 鍵の漏えいは鍵の危殆化であり、アルゴリズムの危殆化とは別の話です。

  4. エ使っているハッシュ値を、誰でも同じ手順で計算できるようになった。

    誤り。誰でも同じ手順で計算できるのは、ハッシュ関数の本来の性質です。受け取った人が 自分で計算し直して元の値と照合できるからこそ、改ざんの確認に使えます。 弱点ではなく、改ざん検知の前提です。

理解を深めるために

「指紋がかぶる」ようになった

ハッシュ値は、データの指紋のようなものです。文書が1文字でも変われば指紋が変わるので、 保管しておいた指紋と照合すれば改ざんに気づけます。この仕組みが成り立つのは、 別のデータなのに指紋がかぶる(衝突する)ことが事実上起きないからです。 SHA-1が危殆化したというのは、この「かぶらない」前提が崩れたということです。

何が起きたのか

暗号の危殆化とは、計算機の性能向上や攻撃手法の進歩で、安全性が当初の想定を下回ることです。

  • MD5は早くから衝突の作り方が知られ、改ざん検知や署名に使うべきでないとされてきた
  • SHA-1も、2017年に同じハッシュ値をもつ異なる2つのPDFファイルが実際に公表された
  • 衝突を作れると、攻撃者は無害な文書と悪意ある文書を同じハッシュ値になるよう用意し、 ハッシュ値の照合をすり抜けて差し替えることができる

CRYPTREC暗号リスト(LS-0001-2022R2)では、SHA-256などのSHA-2は電子政府推奨暗号リストに、 SHA-1は運用監視暗号リスト(互換性維持のためにだけ継続利用を容認するもの)に置かれています。 MD5はどちらにも載っていません。新たに使う、または見直すなら、SHA-256以上を選びます。

混同しやすいものとの違い

性質・仕組み 中身 SHA-1の危殆化との関係
衝突の見つけにくさ 異なるデータから同じ値が出にくい これが崩れた
一方向性 ハッシュ値から元に戻せない 危殆化の理由ではない
メッセージ認証(HMAC) ハッシュ関数に共通の鍵を組み合わせる 鍵を使うのはこちら
誰でも計算できること 照合を可能にする本来の性質 弱点ではない

「危殆化した」と聞いたら、まず「何が破れたのか」を確かめます。ハッシュ関数の場合、 問題になるのは中身が読めることではなく、別のデータとの区別がつかなくなることです。

前の問題へ次の問題へ