CRC (巡回冗長検査)
多項式除算に基づくチェックサム。ノイズの多い配線や劣化したフラッシュセルが実際に起こす種類の誤りを捕まえるよう設計されている。
W・ウェスリー・ピーターソンが1961年に方式を示した。データを一つの長い2進多項式とみなし、固定の生成多項式で割った余りをチェックサムとする。難しそうに聞こえるが、ハードウェアでは数個のXORとシフトで済むため、イーサネットフレーム、CANメッセージ、ZIPやPNGなど至る所で使われている。専用のCRCユニットを持つマイコンも多く、ブートローダがファームウェアイメージへ飛ぶ前にCRCを確かめることもよくある。
nビットのCRCは、すべての1ビット誤りとnビットまでのバースト誤りを検出できる。ただし意図的な改ざんには無力で、誰でも再計算できてしまう。その役目は署名の仕事である。