平成22年度 春期 情報セキュリティスペシャリスト試験 午前Ⅱ 問1
暗号技術
ハッシュ値の長さ
セキュアハッシュ関数 SHA-256 を用いて,32 ビット,256 ビット,2,048 ビットの三つの長さのメッセージからハッシュ値を求めたとき,それぞれのメッセージのハッシュ値の長さはどれか。
単位 ビット
| メッセージの長さ 32 | メッセージの長さ 256 | メッセージの長さ 2,048 | |
|---|---|---|---|
| ア | 32 | 256 | 256 |
| イ | 32 | 256 | 2,048 |
| ウ | 256 | 256 | 256 |
| エ | 256 | 256 | 2,048 |
- ア32 / 256 / 256
- イ32 / 256 / 2,048
- ウ256 / 256 / 256
- エ256 / 256 / 2,048
答えと解説を見る
✓ これが正解ウ256 / 256 / 256
解説
SHA-256 の出力は、入力の長さによらず常に 256 ビットです。
ハッシュ関数は、どんな長さのメッセージからも、決まった長さの値を作る関数です。SHA-256 の名前にある 256 は、出力されるハッシュ値のビット数を表しています。入力が 32 ビットのように短くても、2,048 ビットのように長くても、得られるハッシュ値は常に 256 ビットです。短い入力はパディングで決まった形に整えてから処理され、長い入力はブロックに区切って順に処理されるので、出力の長さは変わりません。三つの長さのすべてに 256 が並ぶ組合せが正解です。長さが固定されているので、どんな大きさのデータでも同じ長さの値で比べられ、改ざんの検知やデジタル署名の対象として扱いやすくなります。
ほかの選択肢はなぜ違うのか
- ア32 / 256 / 256:32 ビットの入力に 32 ビットの値を当てています。短い入力では出力も短くなると考えた形ですが、ハッシュ値の長さは入力に合わせて縮むことはありません。
- イ32 / 256 / 2,048:短い入力には 32、長い入力には 2,048 と、入力の長さをそのまま出力に写した形です。これでは長さをそろえる働きがなく、ハッシュ関数の性質と合いません。
- エ256 / 256 / 2,048:32 ビットと 256 ビットの入力には正しく 256 を当てていますが、2,048 ビットの入力で出力も伸びると考えています。長い入力を与えても出力は伸びません。
この問題の用語
- SHA-256データから決まった長さの値を計算する関数。値が一致すれば内容も同じとみなせ、改ざんの検知に使われます。
- ハッシュ値データから計算した固定長の値のこと。同じデータなら必ず同じ値になるので、データの比較や検索を速くするのに使われます。
- ハッシュ関数どんな長さのものからも決まった長さの値を作り出す計算。少しでも中身が変われば、できあがる値は大きく変わります。
出典:平成22年度 春期 情報セキュリティスペシャリスト試験 午前Ⅱ 問1
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問2(ハッシュ値)
- 令和7年度 春期 午前Ⅱ 問3:SHA-512/256の説明(SHA-256)
- 令和5年度 春期 午前Ⅱ 問4:衝突発見困難性に関する記述(ハッシュ関数)
- 令和4年度 秋期 午前Ⅱ 問12:ブロックチェーンに関する記述(ハッシュ関数)
- 令和3年度 春期 午前Ⅱ 問3:衝突発見困難性に関する記述(SHA-256)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)