ハッシュ関数

ハッシュ関数とは、任意の長さのデータを入力すると固定長のビット列を返す関数です。このビット列のことをハッシュ値またはメッセージダイジェストと言います。

  • 入力データが同じであれば、常に同じメッセージダイジェストが生成される。
  • 入力データがわずかでも異なる場合は、メッセージダイジェストは大きく異なる。
  • メッセージダイジェストから、元の入力データを復元することは困難である。
  • 異なる入力データから同じメッセージダイジェストが生成される可能性は非常に低い。
  • 同じメッセージダイジェストを出力する異なる二つの入力データを特定することは困難である。
  • メッセージダイジェストの長さは、入力データの長さによらず一定である。

  このような特徴を応用して、ハッシュ関数は通信経路での改ざんの有無やユーザ認証、ディジタル署名などで利用されています。

改ざんの有無での利用として、例えば、大容量のファイルの内容が同一であるかを比較する際に、全てのデータを照合するには時間がかかります。そこでそれぞれのハッシュ値を算出して、それを比較すれば短時間で判別が可能となります。

主なハッシュ関数には、MD5、SHA1、SHA256などがありますが、MD5、SHA1は危殆化が懸念されていますので、より強度のあるハッシュ関数への移行が推奨されています。

平成29年度 春期 情報セキュリティマネジメント試験 午前

f:id:aolaniengineer:20191116051646p:plain
情報セキュリティマネジメント試験 平成29年度 春期 午前 問20

ア 同じメッセージダイジェストを出力する二つの異なるメッセージは容易に求められる。

イ メッセージが異なっていても、メッセージダイジェストは全て同じである。

メッセージダイジェストからメッセージを復元することは困難である。

これが正解です。

エ メッセージダイジェストの長さはメッセージの長さによって異なる。