Обратный инжиниринг алогрита, используемого для генерации контрольной цифры

В основном моя проблема в том, что у меня есть некоторые данные, для которых мне нужно сгенерировать контрольную цифру, но у меня нет источника исходной программы, используемой для этого. Данные делятся на блоки, где в одном блоке всегда есть 16 байтов. Первые 15 байтов блока используются для хранения данных, а шестнадцатый байт используется в качестве контрольной цифры для обеспечения целостности данных в блоке:

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 93
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 93
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 93

как видите, нулевые блоки имеют значение контрольного байта 0x93

Вот соответствующий раздел данных, которые у меня есть:

1a 3b 9a c5 bf 9f 6e ee ed 79 4a 48 4f 4e 03 23
05 58 20 40 00 ff ff ff ff ff ff ff ff ff ff 85
83 5b 03 00 0e 00 04 05 de 27 00 10 09 00 00 67

0e 00 dd 57 ed ee dd 67 00 00 00 00 ff ff ff 5d
00 00 00 00 00 00 00 00 00 00 00 01 08 50 00 4e
16 fc ff ff ff ff ff ff ff ff ff ff 0f 5a 01 e8

0b 00 dd 47 ea ee dd 57 00 00 00 00 ff ff ff dc
00 00 00 00 00 00 00 00 00 00 00 01 08 50 00 4e
16 fc ff ff ff ff ff ff ff ff ff ff 0f 5a 01 e8

21 1e 07 ae dd 67 83 5b 03 00 1f 00 03 10 00 80
01 04 3a 00 00 00 00 00 00 00 00 00 00 00 00 36
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 93

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 93
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 93
00 21 00 00 02 00 00 00 00 00 00 00 6f 02 00 9a

4a 48 4f 4e 03 23 83 5b 03 00 0e 00 10 03 00 ea
04 01 3a 00 00 00 00 00 00 00 00 00 00 00 00 18
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 93

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 93
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 93
00 21 00 00 02 00 00 00 00 00 00 00 6e 02 00 31

53 54 55 2d 4d 00 00 00 00 00 00 00 00 00 00 15
00 00 00 00 00 00 00 ff 00 00 ff ff 00 00 00 6c
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 93

Я попытался запустить байты и соответствующие им суммы и продукты, а также пару других комбинаций через общие хеш-функции, чтобы посмотреть, может ли контрольный байт быть, скажем, последним байтом хеша MD5 или SHA-256 какой-либо комбинации байты данных, но не смог найти никаких паттернов. Я, очевидно, не очень опытный криптоаналитик, но я был бы рад, если бы кто-то, кто видит здесь какую-то очевидную схему, которую я, скорее всего, пропустил, мог бы помочь...

Спасибо

0 ответов

Другие вопросы по тегам