CRC
보이기
CRC(Cyclic Redundancy Check, 순환 중복 검사)는 데이터가 손상되었는지 확인하고 일부 복구할 수 있는 데이터 무결성 검증 코드다.
16비트, 32비트, 64비트 버전이 있으며 32비트 버전(CRC32)이 널리 쓰인다. 오죽하면 AMD64 등 21세기의 왠만한 현대 CPU들은 CRC32 연산을 가속할 수 있는 장치를 내장할 정도다.
검증 과정
- 송신자와 수신자는 같은 생성 다항식(Generator Polynomials)을 공유한다. 이 다항식은 이진수의 자릿수 단위로 항이 있는 다항식이다.
- 송신자는 데이터를 생성 다항식으로 나눈 체크섬을 데이터 뒤에 추가한다.
- 수신자가 체크섬이 부착된 데이터를 정상적으로 받았다면 받은 데이터를 공유한 생성 다항식으로 나누면 0으로 나누어 떨어진다. 수신자가 다항식으로 나누어 0이 아닌 경우 오류가 발생했다는 점에 주의한다.