ハッシュ関数とは?はっしゅかんすう
ハッシュ関数とは、任意長の入力から固定長の値を求める一方向の関数。同じ入力からは必ず同じ値が出る一方で、値から入力を復元することも、同じ値になる別の入力を見つけることも計算量的に困難という性質を持ち、改ざん検出と署名の前処理に使う。
最終更新:2026-10-06
この語が出る過去問を解く →背景
数百キロバイトのファームウェアを丸ごと公開鍵演算にかけようとすると、時間もメモリも足りない。入力を32バイト程度の固定長へ潰してから署名すれば、検証にかかるコストは入力の大きさによらず一定になる。1ビット変わっただけで値が全く別物になるため、圧縮しても検出能力は落ちない。起動時間の制約が厳しい機器ほど、この構造が効いてくる。
具体例
セキュアブートでは、更新イメージ全体のSHA-256値を求め、ROMに焼いた公開鍵で検証した署名の中の値と突き合わせる。比較対象は32バイトなので、イメージが大きくなっても検証時間とRAM消費はほとんど増えない。
試験での引っ掛け
ハッシュ値だけでは誰が作ったかを保証できない。攻撃者はデータとハッシュ値を両方差し替えられるため、鍵を伴う署名やメッセージ認証符号と組み合わせて初めて改ざん検出になる。衝突が現実的に作れるMD5・SHA-1は用途から外す。
関連用語
出た過去問
出典:平成29年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問8(IPA)解説で登場
ハッシュ表の理論的な探索時間を示すグラフはどれか。ここで、複数のデータが同じハッシュ値になることはないものとする。
正解:データ1個当たりの探索時間が、表の中のデータの個数に関わらず一定(横一直線)のグラフ
要点:衝突なしのハッシュ表は件数によらず探索時間が一定
ハッシュ表は、キーをハッシュ関数で計算して格納位置を直接求める方式なので、格納されているデータの数を1件ずつ調べる必要がない。衝突が起きない前提であれば、1件を探すのに要する時間は表の中の件数に左右されず一定になる。すなわち計算量はO(1)で、グラフは横軸に対して水平になる。
出典:令和3年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問10(IPA)解説で登場
ハッシュ表の理論的な探索時間を示すグラフはどれか。ここで、複数のデータが同じハッシュ値になることはないものとする。
正解:横軸を表の中のデータの個数、縦軸をデータ1個当たりの探索時間としたとき、データの個数によらず探索時間が一定(水平)のグラフ
要点:衝突がなければハッシュ表の探索時間は件数によらず一定
ハッシュ表では、キーにハッシュ関数を適用して格納位置を直接計算するため、表を順に走査する必要がない。衝突が起きない前提なら、探索はハッシュ値の計算と1回のアクセスで完了するので、データ件数が増えても1件当たりの探索時間は変わらない。計算量でいえばO(1)であり、グラフは横軸に平行な直線になる。
出典・参考
高度試験 午前I(高度午前I 相当)のシラバスの3 技術要素 > 1. 情報セキュリティ > (8) 情報セキュリティに関する技術に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。