CRC(巡回冗長検査)による誤り検出の特徴

CRC(Cyclic Redundancy Check: 巡回冗長検査)は、ビット列を多項式の係数と見なし、あらかじめ定められた「生成多項式」を用いた剰余演算($\text{GF}(2)$ 上の多項式除算)によって通信誤りを検出する方式です。処理の流れは以下のとおりです。 送信側の処理:送信するデータビット列の後ろに生成多項式の次数分の $0$ を付加し、生成多項式で割った「余り(剰余)」を検査用データ(FCS: フレームチェックシーケンス)としてデータ末尾に付加して送信します。 受信側の処理:受信したデータ列(検査対象+検査用データ)を送信側と同一の生成多項式で割り、余りが $0$ であれば伝送誤りがないと判断します。 したがって、送信側で生成多項式を用いて検査用データを作成・付加して送信することを述べたウが適切です。 CRC の検査用データ(FCS)は生成多項式の次数に応じたビット数(例: CRC-16 なら 16 ビット、CRC-32 なら 32 ビット)となり、$1$ ビットではありません($1$ ビットの検査値を用いるのはパリティチェックなどです)。 受信側では、検査用のデータで割るのではなく、送信側と同じ「生成多項式」で受信データ全体を割り、余りが $0$ になるかを確認します。 送信側と受信側では「同一の」生成多項式が用いられます。異なる生成多項式を用いると正しく割り切れず誤り検出ができません。

誤り検出方式である CRC に関する記述として,適切なものはどれか。

出典令和7年度 秋期 応用情報技術者試験 午前 問4
ア
検査用のデータは,検査対象のデータを生成多項式で処理して得られる1ビットの値である。
イ
受信側では,付加されてきた検査用のデータで検査対象のデータを割り,余りがなければ送信が正しかったと判断する。
ウ
送信側では,生成多項式を用いて検査対象のデータから検査用のデータを作り,これを検査対象のデータに付けて送信する。
エ
送信側と受信側では,異なる生成多項式が用いられる。