产生3个错误,因此CRC算法将导致误报

时间:2017-12-12 15:01:09

标签: algorithm networking crc

考虑生成多项式100101和数据1011100110001。应用CRC算法,我们得到传输的消息:101110011000100011

我需要在接收方不会注意到的传输消息(即位翻转)中出现3错误。因此,CRC算法将无法注意到错误并将错误地批准数据。

如何安排?反复试验太繁琐了。

我发现,对于1011100110010 100101011100110010b = 5938d10010b = 18d),我们有5938 = 18 mod 37,但在对此应用CRC算法时,它会失败。

2 个答案:

答案 0 :(得分:2)

CRC算法可以被认为是通过XORing减少消息,生成器模式向左移动一些位。

如果消息减少为0,则CRC测试通过。

这意味着如果您将CRC向左移位一些位进行异或,则CRC将保持不变。在您的情况下,生成多项式只有3个设置位,这使得很容易找到3位修改的消息,只需切换位x,x + 2,x + 5即可选择x。

例如我们可以改变

.third-section > div > div:nth-of-type(2) > div:nth-of-type(2) > div:nth-of-type(1) > div:nth-of-type(2) button:hover .third-section > div > div:nth-of-type(2) > div:nth-of-type(2) > div:nth-of-type(1){
    border-color: #c8d400;
}

答案 1 :(得分:1)

在286种可能的三错误模式中,有11种CRC为零。它们是Peter de Rivaz所指出的多项式的八个移位,第一个是1001010000000,以及这种模式的三个移位:1000001000100。该模式是三个移位多项式的异或,100101000000000010010100000000010010100