Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm crc多项式密钥的生成_Algorithm_Crc_Crc32_Crc16_Crc64 - Fatal编程技术网

Algorithm crc多项式密钥的生成

Algorithm crc多项式密钥的生成,algorithm,crc,crc32,crc16,crc64,Algorithm,Crc,Crc32,Crc16,Crc64,关于本条: 多项式密钥是CRC的重要组成部分。键不仅仅是随机多项式;它们使用一组数学公式生成,旨在增加CRC过程识别的错误数量。多项式通常由网络协议或外部设备定义。由于有一组完善的密钥可用,因此这里不讨论定义密钥的过程 我了解如何使用给定的多项式键计算CRC,但是,如何生成多项式键,并确保它能够用给定的一组协议捕获尽可能多的错误 我假设多项式键与以下内容有关: 数据长度 数据速度 其他人 关于使用数学公式生成CRC多项式的部分有些误导。CRC多项式中的1位数是多项式的最大可能汉明距离(HD),

关于本条:

多项式密钥是CRC的重要组成部分。键不仅仅是随机多项式;它们使用一组数学公式生成,旨在增加CRC过程识别的错误数量。多项式通常由网络协议或外部设备定义。由于有一组完善的密钥可用,因此这里不讨论定义密钥的过程

我了解如何使用给定的多项式键计算CRC,但是,如何生成多项式键,并确保它能够用给定的一组协议捕获尽可能多的错误

我假设多项式键与以下内容有关:

  • 数据长度
  • 数据速度
  • 其他人
    关于使用数学公式生成CRC多项式的部分有些误导。CRC多项式中的1位数是多项式的最大可能汉明距离(HD),通常,实际汉明距离将更小,具体取决于数据长度。最大误码检测为汉明距离-1

    通常,检测更多位数的CRC多项式是多个素数多项式的乘积。例如,对于可以检测最多7个数据错误的32位CRC+CRC长度=1024位,33位CRC多项式0x1f1922815=0x787*0x557*0x465*0x3*0x3。0x3因子将检测任意奇数个位错误,因此CRC需要检测1024位中所有可能的6位错误

    我不知道确定最大误码检测的公式,通常会进行某种程度上优化的暴力搜索。例如,假设正在检查一个32位CRC多项式,以查看它是否能够检测1024位的数据+CRC长度的所有6位错误,1024位中可能的6位错误模式的数量为comb(1024,6)=1577953087760896。为了将此减少到合理的程度,可能的3位错误数comb(1024,3)=178433024用于创建一个大表,每个条目包含CRC和3位索引。该表被排序,然后用于检查3位模式的CRC与不同3位模式的CRC相同的冲突。还需要检查4位模式的故障(检查两个不同2位模式之间的冲突)

    通常,随着数据长度变小,保证检测到的最大错误比特数增加。这里是一个链接到一组CRC多项式及其错误检测能力

    “注释”页面解释了表格条目:


    关于使用数学公式生成CRC多项式的部分有点误导。CRC多项式中的1位数是多项式的最大可能汉明距离(HD),通常,实际汉明距离将更小,具体取决于数据长度。最大误码检测为汉明距离-1

    通常,检测更多位数的CRC多项式是多个素数多项式的乘积。例如,对于可以检测最多7个数据错误的32位CRC+CRC长度=1024位,33位CRC多项式0x1f1922815=0x787*0x557*0x465*0x3*0x3。0x3因子将检测任意奇数个位错误,因此CRC需要检测1024位中所有可能的6位错误

    我不知道确定最大误码检测的公式,通常会进行某种程度上优化的暴力搜索。例如,假设正在检查一个32位CRC多项式,以查看它是否能够检测1024位的数据+CRC长度的所有6位错误,1024位中可能的6位错误模式的数量为comb(1024,6)=1577953087760896。为了将此减少到合理的程度,可能的3位错误数comb(1024,3)=178433024用于创建一个大表,每个条目包含CRC和3位索引。该表被排序,然后用于检查3位模式的CRC与不同3位模式的CRC相同的冲突。还需要检查4位模式的故障(检查两个不同2位模式之间的冲突)

    通常,随着数据长度变小,保证检测到的最大错误比特数增加。这里是一个链接到一组CRC多项式及其错误检测能力

    “注释”页面解释了表格条目: