체크섬

위키백과 ― 우리 모두의 백과사전.

체크섬(checksum)은 중복 검사의 한 형태로, 오류 정정을 통해, 공간(전자 통신)이나 시간(기억 장치) 속에서 송신된 자료의 무결성을 보호하는 단순한 방법이다.

기본적인 메시지 구성 요소(보통 비트)를 추가하여 결과값을 저장함으로써 동작한다. 나중에 누구나 데이터에 같은 작업을 수행할 수 있고, 무결성 검사에 대한 결과를 비교할 수 있으며, (체크섬이 맞아 떨어지는지 확인해 봄으로써) 메시지가 손상되지 않았다고 결론을 내릴 수도 있다.

[편집] 체크섬의 예

단순한 체크섬의 예는 다음과 같다:

  • 다음과 같이 4 바이트의 데이터가 있다고 치자: 0x25, 0x62, 0x3F, 0x52
  • 1 단계: 모든 바이트를 함께 추가함으로써 0x118을 제공한다.
  • 2 단계: 캐리 니블을 버림으로써 0x18을 제공한다.
  • 3 단계: 0x18의 2의 보수를 얻음으로써 0xE8을 얻는다. 이것이 체크섬 바이트이다.
  • 체크섬 바이트를 테스트하려면 원래 그룹의 바이트에 체크섬 바이트를 추가한다. 이로써 0x200을 제공한다.
  • 다시 캐리 니블을 버림으로써 0x00을 제공한다. 0x00이라는 뜻은 오류가 없다는 뜻이 된다. (알지 못하는 오류가 일어날 가능성도 있긴 하지만)

[편집] 인터넷에서의 16비트 체크섬 방식

  • 송신측
  1. 메시지를 16비트 워드로 나눈다.
  2. 처음 검사 합 워드는 0(zero)이다.
  3. 체크섬을 포함한 모든 값을 더한다.
  4. 그 합의 1의 보수를 취해 최종 체크섬으로 한다.
  5. 데이터를 체크섬과 함께 보낸다.
  • 수신측
  1. 체크섬을 포함하는 메시지를 16비트씩 나눈다.
  2. 나눈 모든 워드들을 더한다.
  3. 그 합의 1의 보수를 취해 새로운 검사합으로 만든다.
  4. 체크섬이 0이면(신드롬이 0이면) 메시지를 취한다.

[편집] 같이 보기