의견.png

CRC-16

위키원
martinyj (토론 | 기여)님의 2020년 1월 13일 (월) 16:25 판 (CRC 원리)
이동: 둘러보기, 검색

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

개요

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

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

CRC-16 산하에는 적용하는 다항식에 따라 CRC-16 알고리즘군들이 구성되었다. 구체적으로 아래시트를 참조할 수 있다.

CRC16 Family

CRC 원리

송신자측에서 전송하고자 하는 데이터를 CRC 알고리즘을 적용하여 바이너리 넘버 (Binary number)로 전환한다. 전환 된 바이너리 넘버는 다항식(Plynomial)라 불리우는 다른 바이너리 넘버에 의해 나뉘고 나뉜 나머지를 전송하고자 하는 메시지의 뒤 부분에 첨부한다. 첨부한 나머지를 CRC 체크썸 (Chencksum) 이라 한다.

수신자측은 수신한 데이터중의 체크썸을 제외하고 송신자측에서 사용했던 같은 다항식으로 나누는 작업을 추진한다. 추진할 결과 Zero 이면 수신내역이 정확하고 아닐 경우 수신 오류가 발생한걸로 판단한다.

CRC – 16이 ANSI표준에서 적용하는 다항식은 P(x)=x16+x15+x2+1이다.

사례

15자리 바이너리 정보 g=101001110100001를 전송한다고 가정한다. 이 바이너리 데이터는 대수 다항식 g(x) = x14 + x12 + x9 + x8 + x7 + x5 + 1로 표시할 수 있다. 이 가운데 g 의 제 k 자리의 값은 g(x)중의 x^k와 대응이 된다.


각주

참고자료

같이 보기


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