巡回冗長検査
出典: フリー百科事典『ウィキペディア(Wikipedia)』
巡回冗長検査(じゅんかいじょうちょうけんさ、CRC:Cyclic Redundancy Check)とは、連続する誤りを検出するための誤り検出符号の一種。
この符号自体はデータが誤りであることを検出できるにすぎず、値から元のデータを復元できるわけではない。
CRCは、
などの特徴を持つことから、ネットワークからハードウェア回路における転送に幅広く使われているだけにとどまらず、ソフトウェアにおいてデータの検索のハッシュキーなどに使われることもある。
CRCのソースコードについては、RFC1952に規定されているGZIPフォーマットに含まれるcrc32.cにある。
ただ、CRCはビット幅(通常、16bit若しくは32bit)、生成多項式(CCITTで推奨値が2つ例示されている)等が一意に定まっていないため、同じビット列を処理してもプログラムにより全く違う値を返すことがある。一般的ではないが、ビット幅に関しては、12bitのものも存在する。また、ハッシュとして用いるには同値が頻出するため適当と言えず、現在では誤りの検出以外の目的で使用されることはまれである。