目录
简介
循环冗余校验(Cyclic redundancy check,统称“CRC”)是一种根据网络数据包或电脑文件等数据产生简短固定位数检验码的一种散列函数,主要用来检验或校验数据传输或者保存后可能出现的错误。
工作原理
循环冗余校验是利用CRC生成多项式,对原始信息进行处理,生成CRC校验码,将CRC校验码附加在原始信息之后一起发送出去,接收方接收到数据后,通过约定好的CRC生成多项式,对接收到的数据进行校验,判断数据在传输过程中是否出现错误。
CRC是基于有限域GF(2)(即除以2的同余)的多项式环。简单的来说,就是所有系数都为0或1(又叫做二进制)的多项式系数的集合,并且集合对于所有的代数操作都是封闭的。
为了便于理解,现在通过多项式的系数来表示数据。
假定:
原始信息:1011 0101
原始信息多项式:
M(x)=1⋅x7+0⋅x6+1⋅x5+1⋅x4+0⋅x3+1⋅x2+0⋅x1+1⋅x0 M ( x ) = 1 · x 7 + 0 · x 6 + 1 · x 5 + 1 · x 4 + 0 · x 3 + 1 · x 2 + 0 · x 1 + 1 · x 0
CRC-5校验生成式的多项式(5阶):
K(x)=x5+x2+x0