Извините, если я смогу ответить на этот простой вопрос сам!32-битный CRC с некоторыми входами, установленными на ноль. Является ли это менее точным, чем фиктивные данные?
Я работаю над встроенной системой с 32-битным CRC, выполненным в аппаратном обеспечении для скорости. Утилита существует, что я не могу изменить, изначально беру 3 ввода (слова) и возвращает CRC.
Если был реализован стандартный 32-разрядный бит, то генерируется CRC из 32-битного слова фактических данных, а 2 32-битных слова, содержащие только нули, создают менее надежный CRC, чем если бы я только что составил/установил некоторые случайные значения для последние 2 32?
В зависимости от CRC/полинома мое ограниченное понимание CRC скажет, что чем больше данных вы ставите, тем менее точными они являются. Но разве нулевые данные не уменьшают точность при выполнении сдвигов?
Это верно только в том случае, если вы поместите слово данных в _third_ из трех входных слов. Если вы поместите слово данных в первое слово и два нулевых слова во втором и третьем словах, это не произойдет. –
@Mark - Что «этого не произойдет», вы имеете в виду? С начальным хешем нуля, тогда CRC (0,0,0) = 0. CRC (0, -1, -1) и CRC (-1, -1,0) оба приводят к ненулевым CRC. Как имеет значение порядок? – srking
CRC (_data_, 0,0) приводит к двум нулевым словам, продолжающим скремблировать биты. CRC (0,0, _data_) может (если CRC не имеет предварительной подготовки) приводит к тому, что в регистре CRC останутся все нули до точки, в которую подается _data_. –