令和元年秋期試験問題 午前問12

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

ハッシュ値n:86620f2f 152524d7 dbed4bcb b8119bb6 d493f734 0b4e7661 88565353 9e6d2074

  • ファイルAとファイルBの各内容を変更せずに再度ハッシュ値を算出すると,ファイルAとファイルBのハッシュ値が異なる。
  • ファイルAとファイルBのハッシュ値nのデータ量は64バイトである。
  • ファイルAとファイルBを連結させたファイルCのハッシュ値の桁数は16進数で示すと128桁である。
  • ファイルAの内容とファイルBの内容は同じである。
正解 問題へ
分野:テクノロジ系
中分類:セキュリティ
小分類:情報セキュリティ
解説
ハッシュ関数は、任意の長さのデータを入力すると固定長のビット列(ハッシュ値・メッセージダイジェスト)を返す関数で、次のような特徴を持っています。
  • 入力データが同じであれば、常に同じメッセージダイジェストが生成される。
  • 入力データが少しでも異なっていれば生成されるメッセージダイジェストは大きく異なったものになる。
  • メッセージダイジェストから元の入力データを再現することが困難である。
  • 異なる入力データから同じメッセージダイジェストが生成される可能性が非常に低い。
このような特徴を利用して、ハッシュ関数は通信経路での改ざんの検知やユーザー認証、デジタル署名などの場面で活用されています。

本問で登場するSHA-256は、入力された値から256ビットの文字列を生成するハッシュ関数です。16進数1文字(0~f)を表すのに4ビットが必要なので、256ビットのハッシュ値を16進数で表すと「256÷4=64文字」になります。
  • 入力値と使用するハッシュ関数が同じであれば、生成されるハッシュ値は常に同一です。
  • SHA-256は、256ビットのハッシュ値を出力するハッシュ関数です。1バイトは8ビットなので、データ量は「256÷8=32バイト」です。
  • ハッシュ関数は、入力値の長さに関係なく同じ長さのハッシュ値を生成します。したがって、ファイルCから生成されるハッシュ値も「256ビット=64文字」です。
  • 正しい。①入力値が同じであれば同じハッシュ関数が出力される、②異なる入力データから同じハッシュ値が生成される可能性が非常に低い、という2つの特性を踏まえると、ファイルAとファイルBの内容は同じであると判断できます。

Pagetop