RADIOLOGY GLOSSARY
ハッシュ関数(Hash function)
IN ONE LINE
一言でいうと
入力から短い代表値であるハッシュ値を求める関数です。本項では暗号学的ハッシュを中心に扱い、復号する暗号化とは異なることや、衝突が理論上なくなるわけではない点を説明します。
BEGINNER GUIDE
はじめて学ぶ方へ
データから照合用の指紋のような値を作ります。指紋から元データを読む仕組みではなく、照合する指紋の入手先も信頼できる必要があります。
身近なイメージ
画像ファイルの照合では、受信したファイルのハッシュ値を信頼できる経路の参照値と比較します。攻撃者がファイルと参照値の両方を替えられる場合、単純比較だけでは保護できません。
そもそもハッシュ関数とは?
ハッシュ一般と暗号学的な要件を区別します。
暗号化や電子署名そのものではありません。
定義・しくみ
データを代表するハッシュ値へ写す関数です。暗号学的ハッシュには、原像や第二原像を求めたり、異なる入力の衝突を発見したりすることが計算上困難である性質が求められます。SHA-256等は固定長出力ですが、ハッシュ関連の全方式が同じ出力長や安全性を持つわけではありません。
CORE FORMULA
基本公式
h=H(m)。SHA-256のハッシュ値は256 bitです。
FORMULA NOTES
公式の補足
同一入力なら同一方式で同じ値になります。
固定長という説明はSHA-256等の対象方式についてです。
具体例で確認
SHA-256の出力サイズを単位と表示形式で整理する教材例です。
256 =32 byte、256 =64桁の16進数
32バイトと16進数64桁は同じ256ビットの表現です。元ファイルの大きさや暗号化されたデータの容量ではありません。
専門的にもう一歩
有限長出力へ多数の入力を対応させるため衝突自体は存在しますが、安全な暗号学的ハッシュでは発見が困難であることが重要です。単純なハッシュだけでは送信者の真正性を保証できません。パスワード保存では汎用ハッシュ一回を代用せず、saltとコストを扱う適切なパスワードハッシュ方式が必要です。
臨床・測定での確認点
- 参照値の信頼できる取得経路を確認します。
- 同じバイト列・方式で比較します。
- パスワード保存には専用の方式を用います。
覚えるポイント
- 原像・第二原像・衝突耐性
- 暗号化との違い
- 256 bit・32 byte・16進64桁
間違えやすい点
- 復号して元データを戻すとしない
- 衝突が数学的に不存在としない
- 単純ハッシュで送信者を必ず証明できるとしない