メインコンテンツへ
基礎理論情報数学・離散数学

CRC(巡回冗長検査)に関する記述として、最も適切なものはどれか。

ア.CRCはデータの各バイトを単純に合計したモジュロ演算で誤りを検出する手法であり、バーストエラーには弱い。
イ.CRCは多項式除算(剰余演算)を用いてデータの誤りを検出する手法で、連続したビット誤り(バーストエラー)の検出に優れる。正解
ウ.CRCは誤り訂正も行うことができ、ハミング符号と同等の訂正能力を持つ。
エ.CRCは128ビットのハッシュ値を生成するアルゴリズムであり、ファイルの完全性確認に使われるMD5と同一の手法である。

解説

CRCは「データを生成多項式で割った余り」を使う誤り検出法。連続した複数ビットのバーストエラーを効率よく検出できる、通信路の番人です。

なぜ イ が正解か

イが正解。CRC(Cyclic Redundancy Check)は送信データを生成多項式(例:CRC-32=0x04C11DB7)で割った余り(CRC値)を付加して送信し、受信側が同じ計算を行って照合することで誤りを検出する手法。多項式除算の性質上、バーストエラー(連続したビット誤り)の検出に優れ、Ethernet・USB・ZIPなど広く使われる。

なぜ ア は間違いか

各バイトを合計するモジュロ演算はチェックサム(Check Sum)の説明。CRCは多項式除算を使うため、チェックサムよりはるかに多くのエラーパターンを検出できる。

なぜ ウ は間違いか

CRCは誤り「検出」のみで、訂正はできない。ハミング符号は1ビット訂正・2ビット検出が可能な誤り訂正符号で、CRCとは別カテゴリ。

なぜ エ は間違いか

MD5はメッセージダイジェスト(暗号学的ハッシュ)であり、128ビットのダイジェストを生成するがCRCとは別の数学的基盤に基づく。CRCは一般に16〜32ビットの短い検査値を生成し、暗号安全性は持たない。

出典: AI生成問題(学習用)