この概念が出た関連問題

この試験の対策ガイド

情報処理安全確保支援士試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は ウ

解説

SHA-512/256はSHA-2ファミリーのハッシュ関数で、「SHA-512の内部アルゴリズムで処理を行い、最終的に256ビットの値を出力する」というものです。具体的には、SHA-512と同じ64ビット演算ベースの処理(512ビットの内部状態、1024ビットのブロックサイズ)を使って計算し、512ビットのハッシュ値を生成した後、上位256ビットに切り詰めて出力します。なぜこのような設計にするかというと、64ビットCPUではSHA-512の演算(64ビット演算)がSHA-256(32ビット演算)より高速に動作するため、同じ256ビット出力でも処理速度が向上するためです。また、length extension attackへの耐性もSHA-256より優れています。

なぜ他の選択肢は違うのか

選択肢 ア
「SHA-256を1回適用して256ビット出力後に512ビットに拡張する」は誤りです。SHA-512/256はSHA-512ベースで処理し、出力を512から256に縮小(切り詰め)するものであり、256から512への拡張ではありません。
選択肢 イ
「SHA-256を512回繰り返し適用する」は誤りです。ハッシュ関数を繰り返し適用するのはbcryptなどの鍵導出関数の考え方であり、SHA-512/256はそのような設計ではありません。
選択肢 エ
「SHA-512を256回繰り返し適用し、512ビットを出力する」は誤りです。SHA-512/256は繰り返し適用せず、1回の処理で512ビットを生成後に256ビットに切り詰めます。出力は256ビットです。

解くときのポイント

SHA-512/256の読み方:「SHA-512ベースで処理 → 256ビットに切り詰めて出力」。命名規則:スラッシュの左が処理アルゴリズム、右が出力ビット数。64ビット環境での高速性がメリット。