誤り検出符号 【EDC】 Error-Detecting Code / Error-Detection Code
データを記憶装置に書き込んだり、電気回路や通信回線などを通じて伝送すると、様々な理由で意図せずデータの欠落や改変が起こることがある。これを完全に防止することは困難であるため、読み出しや受信の際に誤りが起きたかどうかを検知するのが誤り検出符号である。
データを一定の長さごとに区切り、一定の手順で計算を行って誤り検出符号を算出し、元のデータに付加して一緒に書き込みや送信を行う。読み込みや受信の際にはデータと符号を分離し、一定の計算手順でデータに誤りがないか確認し、誤りが検出されたら利用者にそのことを知らせたり、通信の場合は送り手に再送を要求する。
誤り検出符号には様々な方式があるが、どのような量・種類の誤りも完全に検出できる符号はなく、ある長さあたり何ビットまでの誤りを検出可能かが符号により決まっている。符号を長くすれば検出できる誤りも増えるが、符号の算出・逆算のための計算量が増え、記録や伝送により多くの容量や帯域が必要となるため、コストや誤りの発生率などを勘案して適切なものが選ばれる。
著名な誤り検出符号にはパリティ符号やチェックサム、巡回冗長符号(CRC:Cyclic Redundancy Code)などがある。誤りの検出に加え、少ない誤りであれば正しい状態に訂正することも可能な符号もあり、「誤り訂正符号」(ECC:Error-Correcting Code)という。
(2021.12.24更新)