의견.png

CRC-16

위키원
martinyj (토론 | 기여)님의 2020년 1월 13일 (월) 17:47 판 (참고자료)
이동: 둘러보기, 검색

CRC-16은 Cyclic Redundancy Check (CRC) 방식중의 하나이며 CRC 알고리즘 계산을 추진할 때 CRC16 다항식 (Polynomial) 을 사용한다. CRC는 네트워크 데이터블록 또는 파일 등 데이터에 근거하여 짧고 간단하며 자리수가 고정 된 검증코드를 발생시키는 채널코딩기술 (Channel Coding Techniques) 이며 주로 데이터 전송 또는 저장 후에 발생할 수 있는 오류 등을 감지 또는 검증하는데 사용된다. CRC는 1961년에 미국의 정보와 컴퓨터과학 전문가 W. Wesley Peterson 이 발명하였다.

개요

CRC-16은 Cyclic Redundancy Check (CRC) 방식중에 CRC16 다항식을 적용하여 검증코드 (체크섬;Checksum) 를 취득하고 이를 통신에 적용하는 채널코딩기술이다.

적용시 송신자측은 전송하고자 하는 메세지에 산출 된 체크섬을 더하여 전송하고 수신자측은 체크섬 산출 시 사용하였던 다항식을 그대로 적용하여 수신한 메세지에 나누기를 적용하여 산출 된 값이 Zero인지를 판단한ㄷ. Zero 이면 데이터 송수신이 정확히 진행되었고 아닐 경우 송수신 오류가 발생하였다고 판단한다.

CRC검증작업에서 실수(검증작업에서 오류를 발견못하는) 할 확율은 1/65536이다.

CRC-16 다항식은 ANSI표준을 적용할 때 x16 + x15 + x2+1 대응수자 0x18005 이고 CCITT 표준을 적용할 때 x16 + x12 + x5+1 대응수자는 0x11021 이다.

CRC-16 산하에는 적용하는 다항식에 따라 CRC-16 알고리즘군이 구성되어 있으며 넓은 영역에서 사용된다. 구체적으로 아래시트를 참조할 수 있다.[1][2]

CRC16 Family

CRC 원리

CRC 검증코드 기본개념

송신측에서 전송하고자 하는 k 비트 바이너리 서열을 대상으로 일정한 규칙을 적용하여 검증코드 (체크섬;Checksum) r 비트를 생성한뒤 기존 서열의 우측에 더하여 (k + r) 비트 신규 서열을 만들어 수신측으로 전송한다. 수신측은 바이너리 코드와 검증코드 생성과정에 사용했던 방법으로 검증작업을 추진하여 송신과정에 오류발생유무를 확인한다.

사례

각주

  1. "Cyclic redundancy check", Wikipedia
  2. 하늘 가득 비, 〈CRC란 무엇인가?〉, 《네이버 블로그》, 2018-09-05

참고자료

같이 보기


  의견.png 이 CRC-16 문서는 암호 알고리즘에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.