マルテクテクBETA Security+
SHA
Secure Hash Algorithm

SHA(セキュアハッシュアルゴリズム)とは

ひとことで

任意長のデータから固定長のハッシュ値を生成する関数群。SHA-1は非推奨で、SHA-256等のSHA-2以降が使われる。

たとえると

データの「指紋」です。どんなに大きなデータからも同じ長さの指紋が取れ、1文字でも変わるとまったく別の指紋になります。指紋から元の人を復元できないのと同じく、ハッシュ値から元のデータに戻すことはできません。

現場ではこう使う

管理者がOSのインストール用ファイルをダウンロードしたとき、配布サイトに掲載されたSHA-256のハッシュ値と、手元で計算したハッシュ値を比べました。値が一致しなかったため、ファイルが壊れているか改ざんされている可能性があると判断し、使わずに入手し直しました。

試験のポイント

EXAM POINTハッシュは「完全性(改ざんされていないか)」を確かめるもので、一方向なので暗号化とは違い元に戻せません。SHA-1やMD5は衝突(違うデータから同じハッシュ値ができること)が見つかっているため非推奨で、SHA-256などのSHA-2以降を選びます。ハッシュだけでは「誰が送ったか」は証明できないため、送信者の確認まで必要ならHMACやデジタル署名です。

混同しやすい用語との違い

  • 暗号化鍵を使えば元のデータに戻せる(機密性のため)。ハッシュは元に戻せない
  • HMACハッシュに共通鍵を組み合わせ、改ざんの検知に加えて送信者の正しさも確認できる
  • MD5古いハッシュ関数で、衝突が見つかっているため非推奨

関連用語

SHA が出てくる Security+ の問題に挑戦してみましょう。

無料で演習を始める