コンテンツへスキップ
uencoder

CRC32

CRC32 は GF(2) 上の多項式除算に基づく 32 ビットの巡回冗長検査であり、伝送エラーの検出に使われる。暗号学的ハッシュではない。

目的

データ整合性のためにバーストエラーを効率的に検出する。セキュリティ認証には使えない。

メカニズム

入力ビット列は GF(2) 上の多項式とみなされ、生成多項式(例: 0x04C11DB7)で割られる。剰余が 32 ビット CRC になる。異なる多項式(IEEE、Castagnoli など)は検出特性が異なる。CRC32C(Castagnoli)はより良い性能と検出能力を提供する。

ユースケース

  • ZIP/GZIP ファイルの検証
  • Ethernet フレームの FCS
  • SSE/AVX による高速チェックサム
  • iSCSI のデータ整合性

例

  • 入力
    hello
    Output
    0x3610a686

    IEEE 802.3 polynomial

よくあるエラー

Using CRC32 for cryptographic authentication (not collision resistant)
Use HMAC-SHA256 for authentication

関連用語

関連ツール

References