Skip to the content.

DS検定トップ > ストレッチングとは?(ハッシュ強化の仕組み)【DS検定】

まず結論

ストレッチングとは、ハッシュ計算を何度も繰り返して、計算コストを意図的に高くすることで攻撃を困難にする技術です。
DS検定では「ソルトとの違い」や「何を防ぐのか」を判断させる問題が出やすいです。

直感的な説明

攻撃者がパスワードを破る方法の一つは「総当たり攻撃」です。

コンピュータは1秒間に何百万回も計算できます。
そこで防御側はこう考えます。

1回のハッシュ計算を重くすればよい。

例えば、

  • 通常のハッシュ → 一瞬で終わる
  • ストレッチング → 何千回も繰り返す

すると、攻撃者の試行回数が激減します。

つまり、

攻撃を“できなくする”のではなく、“時間的に現実的でなくする”技術です。

定義・仕組み

ストレッチングは、

  • ハッシュ関数を繰り返し適用する
  • 計算回数を増やす
  • CPUやメモリ負荷を高める

ことで安全性を高めます。

代表的な仕組み:

  • PBKDF2
  • bcrypt
  • Argon2

これらは「ソルト+ストレッチング」をまとめて実装しています。

どんな場面で使う?

使う場面

  • パスワード保存
  • 認証システム
  • セキュリティ重視のデータ管理

使わない場面

  • 高速処理が最優先の場面
  • 単なるデータ識別用途

ストレッチングは「わざと遅くする」技術なので、
用途を間違えると性能問題になります。

よくある誤解・混同

① ソルトとの違い

DS検定で最も狙われる混同ポイントです。

  • ソルト → 同じパスワードでも違うハッシュにする
  • ストレッチング → 計算を重くする

❌ ソルトは計算を重くする
⭕ それはストレッチング

② レインボーテーブルとの関係

  • レインボーテーブル対策 → ソルト
  • 総当たり対策 → ストレッチング

ここを整理できるかが判断ポイントです。

③ 暗号化との混同

❌ ストレッチングは暗号化
⭕ あくまでハッシュの強化

復号はできません。

まとめ(試験直前用)

  • ストレッチング=計算を何度も繰り返す
  • 目的は総当たり攻撃の遅延
  • ソルトは別技術(役割が違う)
  • 暗号化ではない
  • 「計算を重くする」と書いてあれば正解方向

対応スキル項目(AI利活用スキルシート)

  • AIを支えるデータと技術の理解
  • セキュリティ・リスク理解
    ★ AI・データ活用に伴うセキュリティリスクを理解している
    ★ データの適切な管理・保護の重要性を理解している

🔗 関連記事


🏠 DS検定トップに戻る