CRC (Cyclic Redundancy Check, 순환 중복 검사)는 데이터 전송이나 저장 과정에서 오류 발생 여부를 검출하기 위한 매우 강력하고 효율적인 기술입니다. 흔히 체크섬(Checksum)의 한 종류로 언급되지만, 단순한 합산 방식인 일반 체크섬과는 구별되는 수학적 원리(이진 다항식)를 이용합니다.
CRC는 데이터의 무결성(Data Integrity)을 확인하기 위해 사용되는 오류 검출 부호(Error Detection Code)입니다. 네트워크 통신(이더넷, Wi-Fi), 저장 매체(하드 디스크), 파일 전송 등 데이터의 신뢰성이 중요한 거의 모든 분야에서 광범위하게 사용됩니다.
CRC는 데이터를 이진 다항식(Binary Polynomial)으로 간주하고, 미리 정해진 생성 다항식(Generator Polynomial, )으로 나누었을 때 발생하는 나머지 값(Remainder)을 CRC 코드(또는 CRC 체크섬)로 사용합니다.
체크섬(Checksum)은 오류 검출을 위한 총칭적인 용어로 사용되기도 하며, 특히 단순한 산술 합산에 기반한 오류 검출 기법을 지칭할 때 사용됩니다 (예: IP, TCP, UDP 헤더 체크섬).
| 구분 | CRC (Cyclic Redundancy Check) | Checksum (단순 합산 방식) |
|---|---|---|
| 기본 원리 | 이진 다항식 기반의 Modulo-2 나눗셈(XOR) | 산술적 합산 (1의 보수 합 등) |
| 오류 검출 능력 | 매우 높음 (폭주 오류 검출에 탁월) | 상대적으로 낮음 (특히 짝수 개의 오류 발생 시 검출 못 할 가능성 높음) |
| 구현 복잡도 | 복잡한 다항식 연산으로 인해 상대적으로 복잡 | 단순 덧셈/뺄셈으로 매우 간단 |
| 주요 사용처 | 이더넷, 파일 시스템, 압축 파일, 이동통신(고신뢰성 필요 영역) | IP, TCP, UDP 헤더 (빠른 계산 필요 영역) |
요약하면, CRC는 다항식 기반의 수학적 방법론을 사용하는 체크섬의 한 형태이며, 단순 합산 방식의 체크섬보다 훨씬 강력하고 신뢰성 높은 오류 검출 능력을 제공합니다.