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

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

最終更新:
💡 データから計算する、照合用の「指紋」

データを暗号学的ハッシュ関数に通して得られる値。SHA-256なら入力の長さにかかわらず256ビットになる。信頼できる値と比較することで、データの破損や変更を調べるのに使う。

📌 このページのポイント
同じ方式で計算し、値を照合する 信頼できる配布元 受け取った側 ファイル ファイル 配布 SHA-256で計算 SHA-256で計算 公開した値 計算した値 比較 比較元の値も、改ざんされていないことが前提
値が違えばデータにも違いがあります。一致だけで安全や送信者の真正性を保証するものではありません。
ひよこ ひよこ
メッセージを短く要約したもの?
ペンギン先生 ペンギン先生
内容を文章で要約するのではなく、データからハッシュ関数で計算する値だよ。たとえばSHA-256なら256ビットで、16進数では64桁に表せる。元のデータの長さが違っても、出力の長さは同じなんだ。
ひよこ ひよこ
何に使うの?
ペンギン先生 ペンギン先生
ファイルを受け取った後、同じアルゴリズムで計算して配布元の値と照合するよ。値が違えばデータが違うと分かるので、破損や変更を調べられるんだ。
ひよこ ひよこ
一致すれば絶対に安全?
ペンギン先生 ペンギン先生
そうとは言い切れないよ。攻撃者がファイルと公開された値の両方を書き換えたら、改ざん後の内容でも一致してしまう。比較元を信頼できる経路で入手したり、デジタル署名を検証したりすることが大切だよ。
ひよこ ひよこ
異なるデータでも同じ値になることはある?
ペンギン先生 ペンギン先生
それを衝突というよ。安全なハッシュ関数では、そのような組を見つけることが非常に難しいように設計されている。ただ長い値ならよいのではなく、アルゴリズムの性質も重要なんだ。
ひよこ ひよこ
MD5やSHA-1も使っていいの?
ペンギン先生 ペンギン先生
衝突への耐性が必要な署名などの用途には使わないよ。SHA-256など、用途に適した安全性のある方式を選ぼう。ダイジェスト単体はデータを暗号化するものでも、送信者を証明するものでもないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「メッセージダイジェスト」って出てきたら「データを照合するために計算する指紋のような値」と思えばだいたいOK!
📖 おまけ:英語の意味
「Message Digest」 = メッセージの要約
💬 digestは「消化する・要約する」という意味で、大きなデータをギュッと短い値に要約するイメージだよ

参考資料

← 用語集にもどる