체크섬
위키백과 ― 우리 모두의 백과사전.
체크섬(checksum)은 중복 검사의 한 형태로, 오류 정정을 통해, 공간(전자 통신)이나 시간(기억 장치) 속에서 송신된 자료의 무결성을 보호하는 단순한 방법이다.
기본적인 메시지 구성 요소(보통 비트)를 추가하여 결과값을 저장함으로써 동작한다. 나중에 누구나 데이터에 같은 작업을 수행할 수 있고, 무결성 검사에 대한 결과를 비교할 수 있으며, (체크섬이 맞아 떨어지는지 확인해 봄으로써) 메시지가 손상되지 않았다고 결론을 내릴 수도 있다.
[편집] 체크섬의 예
단순한 체크섬의 예는 다음과 같다:
- 다음과 같이 4 바이트의 데이터가 있다고 치자: 0x25, 0x62, 0x3F, 0x52
- 1 단계: 모든 바이트를 함께 추가함으로써 0x118을 제공한다.
- 2 단계: 캐리 니블을 버림으로써 0x18을 제공한다.
- 3 단계: 0x18의 2의 보수를 얻음으로써 0xE8을 얻는다. 이것이 체크섬 바이트이다.
- 체크섬 바이트를 테스트하려면 원래 그룹의 바이트에 체크섬 바이트를 추가한다. 이로써 0x200을 제공한다.
- 다시 캐리 니블을 버림으로써 0x00을 제공한다. 0x00이라는 뜻은 오류가 없다는 뜻이 된다. (알지 못하는 오류가 일어날 가능성도 있긴 하지만)
[편집] 인터넷에서의 16비트 체크섬 방식
- 송신측
- 메시지를 16비트 워드로 나눈다.
- 처음 검사 합 워드는 0(zero)이다.
- 체크섬을 포함한 모든 값을 더한다.
- 그 합의 1의 보수를 취해 최종 체크섬으로 한다.
- 데이터를 체크섬과 함께 보낸다.
- 수신측
- 체크섬을 포함하는 메시지를 16비트씩 나눈다.
- 나눈 모든 워드들을 더한다.
- 그 합의 1의 보수를 취해 새로운 검사합으로 만든다.
- 체크섬이 0이면(신드롬이 0이면) 메시지를 취한다.

