【ちぇっくさむ】

チェックサム とは?

最終更新:
💡 データから検証値を計算し、変化を調べる

チェックサムはデータから計算し、変化や誤りを調べるための検証値。一致してもすべての誤りを否定できるわけではありません。通信の誤り検出と、SHA-256を使うファイル照合の違いを解説します。

📌 このページのポイント
チェックサム:データから照合値を作るデータA(十進数)12 + 34 + 56合計:102データB(十進数)13 + 33 + 56合計:102違うデータでも、同じ値になることがある方式と、期待する値の入手元を確認
単純な加算の理解用の例です。TCP・UDPの実際の計算やSHA-256とは区別し、検出・訂正・再送・提供者の認証も別の役割として考えます。
ひよこ ひよこ
チェックサムはどう計算するの?
ペンギン先生 ペンギン先生
理解用の単純な例なら、12・34・56という値を足して102にし、受け取った側も同じ計算で比べるよ。実際の通信ではもっと決まった方式を使う。RFC 1071のInternet checksumは、16ビット単位の1の補数による加算などで計算するんだ。
ひよこ ひよこ
102ならデータは絶対に同じ?
ペンギン先生 ペンギン先生
違う値でも同じ合計になるよ。例えば13・33・56も102だね。違えば何か変わったと分かるけれど、一致だけではすべての誤りや改ざんを否定できない。チェックサムだけで元のデータを復元したり訂正したりすることもできないんだ。
ひよこ ひよこ
TCPやIPで誤りを見つけたら再送するの?
ペンギン先生 ペンギン先生
検出と再送は別の役割だよ。TCPやUDPにはチェックサムがあるけれど、UDP自体はTCPのような信頼できる配送を保証しない。また、IPv4にはヘッダーのチェックサムがある一方、IPv6の基本ヘッダーにはない。IPなら全部同じ、とは考えないようにしよう。
ひよこ ひよこ
ファイルのSHA-256もチェックサム?
ペンギン先生 ペンギン先生
ファイルの配布では、照合用の暗号学的ハッシュ値をそう呼ぶことがあるよ。SHA-256は単純な合計と違い、別のデータを同じ値にするのが現実的に難しいよう設計されている。ただし期待する値の入手元を信頼できることが前提で、ファイル名や提供者の本人確認まで行うわけではないね。
ひよこ ひよこ
自分でファイルを照合できる?
ペンギン先生 ペンギン先生
WindowsのPowerShellならGet-FileHash -LiteralPath "ファイルのパス" -Algorithm SHA256で計算できるよ。同じファイル・版について、信頼できる公式の掲載値と比べよう。不一致なら使用を止めて原因を調べる。一致してもソフトの無害さや動作の正しさが保証されるわけではないんだ。
もっと詳しく知りたい人へ

ファイルとハッシュ値が両方書き換えられたら?

攻撃者が両方を差し替えれば、差し替えたファイルのハッシュ値は一致します。照合する値を信頼できる経路から得ることが重要です。提供者の認証や署名の確認は、単純なチェックサムの照合とは別の仕組みとして考えましょう。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「チェックサム」って出てきたら「データから作る照合用の値」と思えばだいたいOK!値が同じでも、改ざんがないと証明できるとは限らないよ。
📖 おまけ:英語の意味
「Checksum」 = チェック(確認)のための合計値
💬 Checkは確認、sumは合計。加算を使う検証値のほか、ファイル配布では暗号学的ハッシュ値を「チェックサム」と呼ぶこともあるよ。方式名も確認しよう。

参考資料

← 用語集にもどる