CRC(巡回冗長検査)とは?しーあーるしー
CRC(巡回冗長検査)とは、送信データを2進数の多項式とみなし、あらかじめ決めた生成多項式で割った余りを検査用ビットとして付加する誤り検出方式。受信側で同じ計算をして余りが0にならなければ誤りと判断する。除算がシフトと排他的論理和だけで実装できるため、高速な回線でもハードウェアで処理できる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
1ビットのパリティでは、同時に2ビットが化けると打ち消し合って見逃す。通信路の誤りは1ビットずつ独立に起きるのではなく、雑音の混入によって連続した数ビットがまとめて化けるバースト誤りとして現れることが多い。この現実に合わせて検出力を上げたのがCRCで、応用情報では検出できる誤りの種類の違いとして問われる。
具体例
イーサネットのフレーム末尾に付くFCS(フレームチェックシーケンス)は32ビットのCRCで、受信側は再計算して一致しなければフレームを黙って破棄する。回復はTCPの再送に任せる、という役割分担になっている。ZIPやPNGといったファイル形式も内部にCRCを持っている。
試験での引っ掛け
できるのは誤りの検出だけで訂正はできず、訂正まで行うのはハミング符号やリードソロモン符号である。パリティは1ビットの誤りしか検出できず偶数個の誤りを見逃すのに対し、CRCはバースト誤りに強い。単純な加算によるチェックサムより検出力が高い点も併せて押さえる。
関連用語
出た過去問
出典:令和7年度 秋期 応用情報技術者試験 午前 問4(IPA)
誤り検出方式であるCRCに関する記述として、適切なものはどれか。
正解:送信側では、生成多項式を用いて検査対象のデータから検査用のデータを作り、これを検査対象のデータに付けて送信する。
要点:CRCは生成多項式で割った剰余を付けて送り受信側で割り切れるか確認する
CRC(巡回冗長検査)は、送信側が送るデータを生成多項式で割った剰余を検査用のビット列(FCS)として求め、これを元データに付加して送信する方式である。受信側は同じ生成多項式で受信データ全体を割り、割り切れれば誤りなしと判断する。検査ビットは1ビットではなく複数ビットで、生成多項式は送受信で共通のものを使う。
出典・参考
公式シラバスの1 基礎理論 > 4. 通信に関する理論 > (1) 伝送理論に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。