チェックサム 【checksum】 チェックサムチェック / checksum check / サムチェック / summation check
概要
チェックサム(checksum)とは、誤り検出符号の一つで、データ列を整数値の列とみなして和を求め、これをある定数で割った余り(余剰)を検査用データとするもの。また、そのようにして求めた検査符号。最も単純な誤り検出方式の一つで、データの伝送や記録、複製が正確に行われたかをある精度で調べることができる。誤りの検出精度は低いが原理が簡単で容易に実装でき、計算コストも低いため、簡易な誤り検出方式として広く普及している。
送信や記録の前にチェックサムを算出して元データに付加し、受信や読み出しの後に同じ個所のチェックサムを算出しなおしてみて、両者が一致しなければ、その区間に含まれるデータのいずれかに誤りが生じていることが分かる。チェックサムは誤りの検出のみ可能であり、訂正はできない。
例えば、4バイトのデータ列「C0 A8 FF 58」(16進数表記)から1バイトのチェックサムを算出するには、C0+A8+FF+58を計算して和(2BF)を求め、これを100で割った余り(最下位バイト)の「BF」がチェックサムとなる。データ列が長い場合は一定の大きさごとに区切ってチェックサムを算出・付加することが多い。その際の区切りの長さやチェックサム自体の長さは用途や実装により異なる。
なお、「チェックサム」という用語を誤り検出符号という意味で用いる場合がある。例えば、ファイルの同一性の検査のために、ファイルの内容からハッシュ関数のMD5で算出したハッシュ値を付加することがあり、これを「MD5チェックサム」と呼ぶことがある。この場合、計算手順としてのチェックサムは用いられていない。
(2024.1.18更新)
関連用語
他の辞典による解説 (外部サイト)
この記事を参照している文書など (外部サイト)
- 千葉大学教育学部「教育におけるゲーミフィケーションに関する実践的研究」掲載論文「離散数学の学習カリキュラムの開発 ―中学校数学科におけるプログラミング活動を通して―」(PDFファイル)にて引用 (2016年2月)