Как я мог угадать алгоритм контрольной суммы?

Давайте предположим, что у меня есть несколько пакетов с 16-битной контрольной суммой в конце. Я хотел бы угадать, какой алгоритм контрольной суммы используется.

Для начала, из данных дампа я вижу, что одно байтовое изменение в полезной нагрузке пакета полностью меняет контрольную сумму, поэтому я могу предположить, что это не какой-то простой XOR или сумма.

Потом я попробовалнесколько вариаций CRC16, но без особой удачи.

Этот вопрос может быть более склонен к криптографии, но я действительно заинтересован в любых простых для понимания статистических инструментах, чтобы выяснить, какой CRC это может быть. Я мог бы даже обратиться крисование различных алгоритмов CRC если все остальное терпит неудачу.

История Backgroud: у меня есть серийный протокол RFID с некоторой контрольной суммой. Я могу без проблем воспроизводить сообщения и интерпретировать результаты (без проверки контрольной суммы), но не могу отправлять измененные пакеты, потому что устройство отбрасывает их на пол.

Используя существующее программное обеспечение, я могу изменить полезную нагрузку RFID-чипа. Тем не менее, уникальный серийный номер является неизменным, поэтому у меня нет возможности проверить каждую возможную комбинацию. Несмотря на то, что я мог генерировать дампы значений, увеличивающихся на единицу, но этого недостаточно, чтобы сделать исчерпывающий поиск применимым к этой проблеме.

дамп файлов с данными доступны, если сам вопрос не достаточно :-)

Нужна справочная документация? БЕСШОВНОЕ РУКОВОДСТВО ПО АЛГОРИТМАМ ОБНАРУЖЕНИЯ ОШИБОК CRC отличная ссылка, которую я нашел после того, как задал вопрос здесь.

В конце, после очень полезной подсказки в принятом ответе, чем это CCITT, яиспользовал этот калькулятор CRCи xored сгенерировал контрольную сумму с известной контрольной суммой, чтобы получить 0xffff, что привело меня к выводу, что окончательное значение xor равно 0xffff в экземпляре CCITT 0x0000.

Ответы на вопрос(4)

Ваш ответ на вопрос