エンベデッドシステムスペシャリスト暗記無料で始める

CRC(巡回冗長検査)とは?しーあーるしー

CRC(巡回冗長検査)とは、データ列を係数が0か1の多項式とみなし、あらかじめ決めた生成多項式で割った剰余を検査符号として付加する誤り検出方式。シフトレジスタとXORだけで実装でき、生成多項式の次数がnなら、nビット以下の連続した誤り(バースト誤り)は必ず検出できる。

最終更新:2026-10-06

試験情報

エンベデッドシステムスペシャリスト試験の頻出用語/午前II

別名:CRC、巡回冗長検査

エンベデッドSPを最短で暗記・合格する →

背景

単純なパリティやチェックサムは偶数個の誤りや桁の入替りを見逃す。しかもノイズによる誤りは1ビットずつ独立には起きず、束になって現れるので、この見逃しがそのまま実害になる。モータのスイッチングや点火系のノイズが乗る車載・産業の配線では、束をどれだけ確実に捕まえられるかが実用の分かれ目になる。剰余という代数的な性質を使えば、わずかな回路でバースト誤りに強い検出が得られる——この費用対効果の良さが、通信フレームからフラッシュのブロック検査まで広く使われる理由。

具体例

CANのフレームは15ビットのCRCを持ち、受信側が同じ計算をして一致しなければエラーフレームを返して再送させる。ファームウェアのOTA更新でも、受信したイメージ全体のCRCを検証してから書き込み、起動のたびに再計算して破損を検出する。多くのマイコンはCRC演算器を内蔵しており、STM32のCRCユニットのようにDMAと組み合わせればCPUをほとんど使わずに通せる。

試験での引っ掛け

CRCは検出であって訂正はできない——訂正が要るならハミング符号やリード・ソロモン符号を使う。改ざん検知にも使えず、攻撃者はデータを書き換えたうえでCRCを計算し直せるので、完全性の保証にはハッシュや署名が要る。生成多項式・初期値・入出力のビット反転・最終XORの組合せが規格ごとに違い、同じ「CRC-16」でも値が一致しない点も実装で嵌まりやすい。

関連用語

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

エンベデッドSPを最短で暗記・合格する →

試験での特徴
  • 分野:午前II
  • CRCは検出であって訂正はできない——訂正が要るならハミング符号やリード・ソロモン符号を使う。