令和7年度 春期 午前Ⅱ 問3
暗号技術
SHA-512/256の説明
SHA-512/256 の説明はどれか。
- ア入力データに SHA-256 に基づいたハッシュ関数を 1 回適用し,256 ビットの値を出力した後,512 ビットに拡張して出力する。
- イ入力データに SHA-256 に基づいたハッシュ関数を 512 回繰り返し適用し,256 ビットの値を出力する。
- ウ入力データに SHA-512 に基づいたハッシュ関数を 1 回適用し,512 ビットの値を出力した後,256 ビットに切り詰めて出力する。
- エ入力データに SHA-512 に基づいたハッシュ関数を 256 回繰り返し適用し,512 ビットの値を出力する。
答えと解説を見る
✓ これが正解ウ入力データに SHA-512 に基づいたハッシュ関数を 1 回適用し,512 ビットの値を出力した後,256 ビットに切り詰めて出力する。
解説
SHA-512 で計算し、256ビットに切り詰めて出力します。
名前の読み方が手掛かりです。スラッシュの前は基になるハッシュ関数を、後ろは最終的に出力するビット長を表しています。SHA-512/256 は、SHA-512 に基づいたハッシュ関数を入力データに1回適用し、得られた512ビットの値を256ビットに切り詰めて出力します。したがって、SHA-512 に基づき、512ビットを出してから256ビットに切り詰めるという記述が正解です。なお、規格上は初期値が SHA-512 とは別に定められているため、単に SHA-512 の出力の先頭を取り出した値とは一致しないとされます。選択肢の粒度では、基になる関数と切り詰めの向きを押さえれば判断できます。スラッシュの後ろの数を、繰り返しの回数と読み替えないことが大切です。
ほかの選択肢はなぜ違うのか
- ア入力データに SHA-256 に基づいた…:基にしているのが SHA-256 になっており、名前の前半と合いません。さらに256ビットを512ビットへ広げるという向きも逆です。求めた値を後から長く拡張する手順は、この名前のどこからも読み取れません。
- イ入力データに SHA-256 に基づいた…:スラッシュの後ろの数を、関数を当てはめる回数と読み違えた形です。基も SHA-256 になっていて名前の前半と食い違います。512回繰り返すという手順は、この名前が示す内容ではありません。
- エ入力データに SHA-512 に基づいた…:SHA-512 を基にしている点は合っていますが、256回繰り返して512ビットを出すという部分が違います。名前の後ろの数は回数ではなく出力の長さなので、512ビットのまま出す形とは合いません。
この問題の用語
- ハッシュ関数どんな長さのものからも決まった長さの値を作り出す計算。少しでも中身が変われば、できあがる値は大きく変わります。
- SHA-256データから決まった長さの値を計算する関数。値が一致すれば内容も同じとみなせ、改ざんの検知に使われます。
出典:令和7年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問3
同じ用語が出る問題
- 令和5年度 春期 午前Ⅱ 問4:衝突発見困難性に関する記述(SHA-256)
- 令和4年度 秋期 午前Ⅱ 問12:ブロックチェーンに関する記述(ハッシュ関数)
- 令和3年度 春期 午前Ⅱ 問3:衝突発見困難性に関する記述(SHA-256)
- 令和2年度 10月 午前Ⅱ 問5:ブロックチェーンに関する記述(ハッシュ関数)
- 平成29年度 秋期 午前Ⅱ 問4:衝突発見困難性に関する記述(SHA-256)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)