[情報セキュリティマネジメント試験]ハッシュ関数[無料講座・例題付き!]

2021年4月21日

セキュリティ

今回は情報セキュリティマネジメント試験におけるハッシュ関数について学習します。

キュー
キュー
(こっそり俺の口座への振込額の0を一つ増やしておいてやろう・・・)
くろん
くろん
あれ・・・この書類前作ったやつとなんか違う気がするにゃ
モナ
モナ
書類が改ざんされたかどうかはハッシュ関数を使えばすぐに分かるニャ!

ハッシュ関数

ハッシュ関数を用いることで、書類やテキストが改ざんされていないことを確認できます。

具体的にはあるテキストT1をハッシュ関数にかけると、あるハッシュ値H1が生成されます。

このテキストT1のメッセージを少し変えたT2をハッシュ関数にかけると、H1とは全く異なったハッシュ値H2が生成されることになります。

ハッシュとは切り刻むと言った意味で、元のテキストを細かく切り刻んで一定のサイズに整えることを意味しています。

ハッシュ関数の特徴

ハッシュ関数の特徴としては以下の3つが挙げられます。

  • 原像計算困難性・・・ハッシュ値から入力値を求めることが困難である
  • 衝突困難性・・・同じハッシュ値となるテキストT1とテキストT2を求めることが困難である
  • 第2原像計算困難性・・・既知のテキストT1から、同じハッシュ値H1となるテキストH2を求めることが困難である

難しい言葉が出てきましたが、ハッシュ化とはあるテキストを一方的に読めない文字列(ハッシュ値)に置き換えて、そのダイジェストは元の平文に戻せない。と言った点を押さえておけば問題ありません。

カズ
カズ
送信者と受信者それぞれがハッシュ値を見比べて一致していれば改ざんが無いってわけだね!

ハッシュ値での改ざん有無確認の流れ

送信者と受信者の両方が作ったダイジェストが同一であれば、ファイルが同一だと判明するのでネットワーク上で改ざんが無かったことが分かります。

ハッシュ関数を使って改ざんされていないことを確認する手順としては以下の通りです。

  1. 送信者は、平文をハッシュ化し、ハッシュ値を作る。
  2. 送信者は、平文とハッシュ値を受信者に送る。
  3. 受信者は、受信した平文をハッシュ化しハッシュ値を作る
  4. 受信者は、2.で送られてきたハッシュ値と3.で作成したハッシュ値を見比べる

カズ
カズ
この流れでは改ざんの有無を確認してるだけだから、盗聴に対しては対策されていないよ

具体的なハッシュ関数

試験で問われるような具体的なハッシュ関数は以下の通りです。

  • MD5・・・平文から128ビットのハッシュ値を生成するハッシュ関数。広く使われているが深刻な脆弱性が発見され危殆化している。
  • SHA-1・・・平文から160ビットのハッシュ値を生成するハッシュ関数。深刻ではないものの脆弱性が発見されている。
  • SHA-256・・・平文から256ビットのハッシュ値を生成するハッシュ関数。現時点では安全とされている。
スポンサーリンク

ハッシュ関数・例題

実際に例題を解いて問題に慣れていきましょう。

問題

問1

セキュアハッシュ関数SHA-256を用いてファイルA及びファイルBのハッシュ値を算出すると,どちらも全く同じ次に示すハッシュ値n(16進数で示すと64桁)となった。この結果から考えられることとして,適切なものはどれか。

ハッシュ値n:86620f2f 152524d7 dbed4bcb b8119bb6 d493f734 0b4e7661 88565353 9e6d2074(R.1/秋)

ア ファイルAとファイルBの各内容を変更せずに再度ハッシュ値を算出すると,ファイルAとファイルBのハッシュ値が異なる。
イ ファイルAとファイルBのハッシュ値nのデータ量は64バイトである。
ウ ファイルAとファイルBを連結させたファイルCのハッシュ値の桁数は16進数で示すと128桁である。
エ ファイルAの内容とファイルBの内容は同じである。

問2

パスワードを用いて利用者を認証する方法のうち,適切なものはどれか。(FE H.26/春)

ア パスワードに対応する利用者IDのハッシュ値を登録しておき,認証時に入力されたパスワードをハッシュ関数で変換して比較する。
イ パスワードに対応する利用者IDのハッシュ値を登録しておき,認証時に入力された利用者IDをハッシュ関数で変換して比較する。
ウ パスワードをハッシュ値に変換して登録しておき,認証時に入力されたパスワードをハッシュ関数で変換して比較する。
エ パスワードをハッシュ値に変換して登録しておき,認証時に入力された利用者IDをハッシュ関数で変換して比較する。

解説(クリックで展開)

ハッシュ関数・まとめ

今回はハッシュ関数について学習しました。

ハッシュ関数は様々なところで応用されており、午後問題でもよく出題されます。

カズ
カズ
ハッシュ関数は改ざん防止だけでなく認証にも使われているよ!

次回はディジタル署名について学習します。


スポンサーリンク