【めっせーじだいじぇすと】

メッセージダイジェスト とは?

💡 データの健康診断書、一文字でも変わればすぐバレる
📌 このページのポイント
メッセージダイジェストによる整合性検証 送信側 元ファイル data.zip ハッシュ計算 ダイジェスト値 a3f2b8c9...7d1e ファイル送信 値を公開 通信 経路 受信側 受信ファイル data.zip 再計算 再計算ダイジェスト a3f2b8c9...7d1e 一致 → 改ざんなし
メッセージダイジェストでファイルの改ざんを検出する流れ
ひよこ ひよこ

メッセージダイジェストって、メッセージを短くまとめたものってこと?

ペンギン先生 ペンギン先生

いい線いってるよ。データをハッシュ関数にかけて得られる固定長の値のことだよ。どんなに大きなファイルでも、短い文字列に「要約」されるんだ

ひよこ ひよこ

それって何に使うの?

ペンギン先生 ペンギン先生

一番身近なのはファイルのダウンロード確認だね。配布元が公開しているダイジェスト値と、自分がダウンロードしたファイルのダイジェスト値を比べれば、途中で壊れたり改ざんされたりしてないか確認できるよ

ひよこ ひよこ

MD5とかSHA-256とかいろいろあるけど、どう違うの?

ペンギン先生 ペンギン先生

出力の長さと安全性が違うんだ。MD5は128ビットで高速だけど衝突(異なるデータから同じ値が出ること)が見つかっていて、セキュリティ用途には非推奨。今はSHA-256が主流だよ

ひよこ ひよこ

衝突って怖いね。どうやって防ぐの?

ペンギン先生 ペンギン先生

より長いダイジェストを使うことで衝突の確率を天文学的に小さくするんだ。SHA-256なら2の128乗回の計算が必要で、現実的に衝突を起こすのはほぼ不可能だよ。用途に応じて適切なアルゴリズムを選ぶのが大事だね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「メッセージダイジェスト」って出てきたら「データの改ざんチェック用の指紋」と思えればだいたいOK!
📖 おまけ:英語の意味
「Message Digest」 = メッセージの要約
💬 digestは「消化する・要約する」という意味で、大きなデータをギュッと短い値に要約するイメージだよ
← 用語集にもどる