ハッシュ関数とは?はっしゅかんすう
ハッシュ関数とは、任意の入力値から一定の長さの値(ハッシュ値)を計算する関数で、同じ入力からは必ず同じ値が得られ、異なる入力はできるだけ均等に散らばることが求められる。探索用のハッシュ法では、キーから格納位置を直接計算することで、比較を繰り返さず1回の計算で目的のデータへたどり着ける。剰余(mod)を使う方式が代表的である。
最終更新:2026-10-09
この語が出る過去問を解く →背景
配列を先頭から順に見る線形探索はデータが増えるほど比較回数が増え、2分探索でも並べ替えを保つ手間がかかる。「どこにあるか探す」のではなく「どこに置くかを値から計算で決める」と発想を変えれば、データ件数が増えても取り出しの手間が変わらない。この計算役がハッシュ関数である。基本情報では与えられた式で格納位置を求める計算問題と、値が衝突したときの処理方法の両方が問われる。
具体例
配列サイズを13として「キーを13で割った余り」を位置とすると、キー100は余り9なので位置9に格納される。PythonのdictやJavaのHashMapはこの仕組みで動いており、キーを指定した取り出しが件数によらず速い。配列サイズには2の累乗より素数を選ぶほうが偏りにくい。
試験での引っ掛け
ハッシュ値から元のキーを復元できないのは事実だが、探索用ハッシュに求められるのは一方向性ではなく速さと均等な分散である。パスワード保存に使う暗号学的ハッシュとは目的が違う点を混同しない。また異なるキーが同じ位置になる衝突(シノニム)は原理的に避けられず、チェイン法やオープンアドレス法で対処する。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成28年度 秋期 基本情報技術者試験 午前 問38(IPA)解説で登場
メッセージ認証符号におけるメッセージダイジェストの利用目的はどれか。
正解:メッセージが改ざんされていないことを確認する。
要点:メッセージダイジェストはハッシュ値の照合で改ざんを検出する
メッセージダイジェストは、メッセージ全体をハッシュ関数にかけて得られる固定長の値である。内容が1ビットでも変わればダイジェストも変わるので、送受信の両側で計算した値を突き合わせれば改ざんの有無を検出できる。メッセージ認証符号はこの性質を鍵と組み合わせて利用する。
出典:平成29年度 春期 基本情報技術者試験 午前 問40(IPA)解説で登場
公開鍵暗号方式の暗号アルゴリズムはどれか。
正解:RSA
要点:RSAは公開鍵暗号、AESは共通鍵、SHA-256はハッシュ
RSAは大きな整数の素因数分解が困難であることを安全性の根拠とする公開鍵暗号方式で、暗号化と復号に別々の鍵を使います。共通鍵暗号は暗号化と復号に同じ鍵を使う方式、ハッシュ関数は元に戻せない要約値を作る関数であり、いずれも公開鍵暗号ではありません。
出典:平成30年度 春期 基本情報技術者試験 午前 問7(IPA)解説で登場
表探索におけるハッシュ法の特徴はどれか。
正解:キーの関数値によって格納場所を決める。
要点:ハッシュ法はキーの関数値で格納位置を決め、衝突対策が要る
ハッシュ法は、キーにハッシュ関数を適用して得た値から格納位置を直接決める方式である。キーを比較しながら探すのではなく計算で位置が求まるため、理想的にはデータ件数によらず一定時間で探索できる。ただし異なるキーが同じ位置に割り当てられる衝突(シノニム)は起こり得るので、チェイン法やオープンアドレス法などの対策が必要になる。
出典:令和元年度 秋期 基本情報技術者試験 午前 問10(IPA)
10進法で5桁の数a1 a2 a3 a4 a5を、ハッシュ法を用いて配列に格納したい。ハッシュ関数をmod(a1+a2+a3+a4+a5, 13)とし、求めたハ…
正解:2
要点:ハッシュ値は「桁の総和 mod 除数」で機械的に求める
ハッシュ関数は各桁の数字の合計を13で割った余りと定義されている。54321の各桁は5、4、3、2、1なので合計は15、15を13で割ると商1・余り2となる。したがって格納位置は2である。
出典:令和元年度 秋期 基本情報技術者試験 午前 問40(IPA)解説で登場
ファイルの提供者は、ファイルの作成者が作成したファイルAを受け取り、ファイルAと、ファイルAにSHA-256を適用して算出した値Bとを利用者に送信する。そのとき…
正解:ファイルAにSHA-256を適用して値を算出し、その値と値Bを比較することによって、ファイルAの内容が改ざんされていないかどうかを検証できる。
要点:ハッシュ値の突合せで分かるのは改ざんの有無だけ
SHA-256はハッシュ関数であり、同じ入力からは必ず同じ値が得られ、内容が少しでも変われば値が大きく変わる。値Bが正しいものだと電話で確認できているので、受け取ったファイルから自分でハッシュ値を計算し、値Bと一致するかを見れば改ざんの有無が分かる。ただしハッシュ値だけでは作成者が誰かは分からず、また元の内容を復元する能力も無い。
出典・参考
公式シラバスの3 技術要素 > 1. 情報セキュリティ > (8) 情報セキュリティに関する技術に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。