CRC-32란?
CRC-32 (순환 중복 검사, 32비트) 데이터의 우발적인 변경을 감지하기 위해 사용되는 빠른 체크섬 알고리즘입니다. 입력 데이터의 다항식 나눗셈을 기반으로 32비트 값(8자리 16진수)을 생성합니다. 네트워크, 저장 장치 및 파일 형식에서 오류 검사용으로 하드웨어와 소프트웨어에 일반적으로 구현됩니다.
CRC-32 작동 방식
- 32비트 레지스터를 모두 1(0xFFFFFFFF)로 초기화합니다.
- 각 바이트를 레지스터의 최상위 바이트와 XOR 연산하고 미리 계산된 조회 테이블을 참조하여 처리합니다.
- 레지스터를 8비트 시프트하고 테이블 값과 XOR 연산을 수행합니다.
- 모든 바이트가 처리될 때까지 반복합니다.
- 레지스터를 반전(bitwise NOT)하여 CRC-32 값을 최종 산출합니다.
일반적인 응용
- 무결성 검사용 ZIP, gzip, PNG 및 기타 파일 형식
- Ethernet, PPP 및 기타 네트워크 프로토콜
- HDD, SSD 및 RAID 컨트롤러 같은 저장 장치
- 아카이브 검증 및 다운로드 무결성 검사
예시 체크섬
Input | CRC-32 |
---|---|
Hello World | 4a17b156 |
password | 477dff2a |
test123 | c4b96aea |
(비어 있음) | 00000000 |
CRC-32와 다른 체크섬 및 해시 비교
Algorithm | Output | 충돌 저항성 | Speed |
---|---|---|---|
CRC-32 | 32 비트 | ❌ 낮음 | ⚡ 매우 빠름 |
MD5 | 128 비트 | ❌ 손상됨 | ⚡ 빠름 |
SHA-1 | 160 비트 | ❌ 위태로움 | ⚡ 빠름 |
SHA-256 | 256 비트 | ✅ 안전함 | 🚀 보통 |
BLAKE3 | 256 비트 | ✅ 매우 안전함 | ⚡ 매우 빠름 |
자주 묻는 질문
CRC-32가 암호화 용도로 안전한가요?
아니요. CRC-32는 오류 검출용으로 설계되었으며 보안용이 아닙니다. 의도적인 충돌에 취약합니다.
왜 암호화 해시 대신 CRC-32를 사용하나요?
CRC-32는 훨씬 빠르고 우발적 오류 검출에 충분하지만 보안이 중요한 응용에는 사용해서는 안 됩니다.
파일 다운로드를 어떻게 확인할 수 있나요?
다운로드한 파일의 CRC-32 체크섬을 생성하고 게시된 값과 비교하여 무결성을 확인하세요.