CRC算法原理(3)

2019-06-17 16:04

CRC算法原理及C语言实现

CRC原理介绍:

CRC的英文全称为Cyclic Redundancy Check(Code),中文名称为循环冗余校验(码)。它是一类重要的线性分组码,编码和解码方法简单,检错和纠错能力强,在通信领域广泛地用于实现差错控制。

CRC计算与普通的除法计算有所不同。普通的除法计算是借位相减的,而CRC计算则是异或运算。任何一个除法运算都需要选取一个除数,在CRC运算中我们称之为poly,而宽度W就是poly最高位的位置。比如poly 1001的W是3,而不是4。注意最高位总是1,当你选定一个宽度,那么你只需要选择低W各位的值。假如我们想计算一个位串的CRC码,并要保证每一位都要被处理,因此我们需要在目标位串后面加上W个0。下面举例说明CRC算法的过程。

在此例中,我们假设位串为110101101。

Poly = 10011(宽度W = 4) Bitstring + W zeros = 110101101 0000

10011/1101011010000/110000101 (我们不关心此运算的商) 10011|||||||| -----|||||||| 10011||||||| 10011||||||| -----|||||||

00001|||||| 00000|||||| -----|||||| 00010||||| 00000||||| -----||||| 00101|||| 00000|||| -----|||| 01010||| 00000||| -----||| 10100|| 10011|| -----|| 01110| 00000| -----| 11100 10011 -----

1111 -> 余数 -> CRC! 计算过程总结如下:

1. 只有当位串的最高位为1,我们才将它与poly做XOR运算,否则我们只是将位

串左移一位。

2. 异或运算的结果实质上是被操作位串与poly的低W位进行运算的结果,因为最高位总为0。

CRC原理及其逆向破解方法:

介绍:

这篇短文包含CRC原理介绍和其逆向分析方法,很多程序员和破解者不是很清楚了解

CRC的工作原理,而且几乎没人知道如何逆向分析它的方法,事实上它是非常有用的. 首先,这篇教程教你一般如何计算CRC,你可以将它用在数据代码保护中.第二,主要是

介绍如何逆向分析CRC-32,你可以以此来分析程序中的CRC保护(象反病毒编码).当然

有很多有效的工具用来对付CRC,但我怀疑它是否会说明原理.

我要告诉你,这篇短文里中应用了很多数学知识,这不会影响一些人,而且会被一般的

程序员与逆向分析者很好理解.为什么?那么如果你不知道数学是如何被应用在CRC中,

我建议你可以停止继续学习了.所以我假定你们(读者)都是具备二进制算术知识的.

第一部分:CRC 介绍,CRC是什么和计算CRC的方法.

循环冗余码 CRC

我们都知道CRC.甚至你没有印象,但当你想到那些来自诸如RAR,ZIP等压缩软件发给你

由于错误连接和其他一些意外原因导致的文件错误的恼人的消息时,你就会知道.CRC是块

数据的计算值,比如对每一个文件进行压缩.在一个解压缩过程中,程序会从新计算解

压文件

的CRC值,并且将之与从文件中读取的CRC值进行比对,如果值相同,那么正确.在CRC-32中,

会有1/2^32的可能性发生对确认数据更改的校验错误.

很多人认为CRC就是循环冗余校验,假如CRC真的就是循环冗余校验,那么很多人都错用了

这个术语.你不能说\这个程序的CRC是12345678\人们也常说某一个程序有CRC校验,而不

说是 \循环冗余校验\校验.结论:CRC 代表循环冗余码,而不是循环冗余校验. 计算是如何完成的呢?好,主要的想法就是将一个文件看成一个被一些数字分割的很长的

位字串,这里会有一个余数---CRC!你总会有一个余数(可以是0),它至多比除数小一. (9/3=3 余数=0 ; (9+2)/3=3 余数=2) (或者它本身就包含一个除数在其中).

在这里CRC计算方法与除法有一点点区别,除法就是将被减数重复的减去除数X次,然后留下

余数.如果你希望得到原值,那么你就要把除数乘上X次,然后加上余数.

CRC计算使用特殊的减法与加法完成的.也就是一种新的\算法\计算中每一位计算的进位值 被\遗忘\了.

看如下两个例子,1是普通减法,2和3是特殊的. -+

(1) 1101 (2) 1010 1010 (3) 0+0=0 0-0=0 1010- 1111+ 1111- 0+1=1 *0-1=1 ---- ---- ---- 1+0=1 1-0=1


CRC算法原理(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:新版人教版小学数学四年级下册《三角形特性》教学设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: