Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Восстановить алгоритм контрольной суммы
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
Santinel
Есть устройство, на вход которого поступают 9 байт данных. Устройство проверяет валидность CRC10(?) и бракует или не бракует пакет.
Биты СRC10(?) расположены в 0 байте, и в двух младших битах 1 байта.
К сожалению, не возможно сделать последовательность из всех нулей sad.gif девайс анализирует 6 старших бит байта 1.
Диапазон 0х50(010100хх) .. 0хА0(101000хх)
И байты 2,3 должны быть равны 0х01 и 0х00. Иначе пакет тоже бракуется
Методом подбора я сгенерил небольшую табличку
0 1 2 3 4 5 6 7 8
92-6B-01-00-00-00-00-00-00
B6-6B-01-00-00-00-00-00-01
DA-6B-01-00-00-00-00-00-02
02-6B-01-00-00-00-00-00-04
B2-6A-01-00-00-00-00-00-08
D2-69-01-00-00-00-00-00-10
12-6B-01-00-00-00-00-00-20
92-6A-01-00-00-00-00-00-40
92-69-01-00-00-00-00-00-80
82-6A-01-00-00-00-00-01-00
B2-69-01-00-00-00-00-02-00
D2-6B-01-00-00-00-00-04-00
13-6A-01-00-00-00-00-08-00
90-6A-01-00-00-00-00-10-00
92-69-01-00-00-00-00-20-00
Читаем документ, раздел "Putting Theory into Practice"
http://www.cosc.canterbury.ac.nz/greg.ewin...ngineering.html
Получается, что соседние СRC (со сдвигом) должны отличаться либо на полином, либо быть равны.
В моем случае такого не наблюдается
Какими еще функциями, кроме СRC, можно создать контрольную сумму ?
kovigor
Цитата(Santinel @ May 1 2014, 16:12) *
Какими еще функциями, кроме СRC, можно создать контрольную сумму ?

Много раз наблюдал обычную сумму по модулю X ...
Santinel
К сожалению, здесь не обычная сумма sad.gif Может быть они перед тем, как скормить байт процедуре CRC, ксорят его с константой ? тогда моя "бегущая по нулям единица" не выявит полином
SFx
попробуйте перебором
содержимое пакета только нули, а CRC-начало инкрементируйте. как найдете правильное, возьмите поменяйте один бит в пакете и снова CRC-начало инкрементируйте и т.д.

бит меняйте тот, который ближе к началу пакета, передается первым.

ну и по LSB/MSB нужно подумать.
Сергей Борщ
Еще возможно, что один из крайних битов - бит четности, а CRC имеет на 1 бит меньше.
Santinel
@Сергей Борщ: Спасибо за идею ) как-то не подумал об этом. Однако, похоже ни один из битов контролем четности не является (

CRC 0..7 Wieg26 89 Const 0x0100 Wiegand bit 1-26 Wieg bit 27-40 CRC 0..7 & 8..9
10010010 011010 11 0000000100000000 00000000000000000000000000 00000000000000 92-3
10110110 011010 11 0000000100000000 00000000000000000000000000 00000000000001 B6-3
11011010 011010 11 0000000100000000 00000000000000000000000000 00000000000010 DA-3
00000010 011010 11 0000000100000000 00000000000000000000000000 00000000000100 02-3
10110010 011010 10 0000000100000000 00000000000000000000000000 00000000001000 B2-2
11011010 011010 01 0000000100000000 00000000000000000000000000 00000000010000 D2-1
00010010 011010 11 0000000100000000 00000000000000000000000000 00000000100000 12-3
10010010 011010 10 0000000100000000 00000000000000000000000000 00000001000000 92-2
10010010 011010 01 0000000100000000 00000000000000000000000000 00000010000000 92-1
10000010 011010 10 0000000100000000 00000000000000000000000000 00000100000000 82-2
10110010 011010 01 0000000100000000 00000000000000000000000000 00001000000000 B2-1
11010010 011010 11 0000000100000000 00000000000000000000000000 00010000000000 D2-3
00010011 011010 10 0000000100000000 00000000000000000000000000 00100000000000 13-2
10010000 011010 10 0000000100000000 00000000000000000000000000 01000000000000 90-2
10010010 011010 01 0000000100000000 00000000000000000000000000 10000000000000 92-1
10010011 011010 11 0000000100000000 00000000000000000000000001 00000000000000 93-3
10010000 011010 11 0000000100000000 00000000000000000000000010 00000000000000 90-3
11010001 011010 01 0000000100000000 00000000000000000000000100 00000000000000 B1-1
00010010 011010 10 0000000100000000 00000000000000000000001000 00000000000000 12-2
10010010 011010 10 0000000100000000 00000000000000000000010000 00000000000000 92-2
10110110 011010 01 0000000100000000 00000000000000000000100000 00000000000000 B6-1
11011011 011010 11 0000000100000000 00000000000000000001000000 00000000000000 DB-3
10010000 011010 11 0000000100000000 00000000000000000010000000 00000000000000 90-3
10110110 011010 11 0000000100000000 00000000000000000100000000 00000000000000 B6-3
11011010 011010 11 0000000100000000 00000000000000001000000000 00000000000000 DA-3
11111100 011010 10 0000000100000000 00000000000000010000000000 00000000000000 FC-2
10010010 011010 01 0000000100000000 00000000000000100000000000 00000000000000 92-1
10010011 011010 11 0000000100000000 00000000000001000000000000 00000000000000 93-3
10000000 011010 10 0000000100000000 00000000000010000000000000 00000000000000 80-2
11010110 011010 01 0000000100000000 00000000000100000000000000 00000000000000 D6-1
11011010 011010 11 0000000100000000 00000000001000000000000000 00000000000000 DA-3
10000010 011010 10 0000000100000000 00000000010000000000000000 00000000000000 82-2
10110010 011010 01 0000000100000000 00000000100000000000000000 00000000000000 B2-1
11011011 011010 11 0000000100000000 00000001000000000000000000 00000000000000 DB-3
10010000 011010 11 0000000100000000 00000010000000000000000000 00000000000000 90-3
10110110 011010 11 0000000100000000 00000100000000000000000000 00000000000000 B6-3
10011001 011010 01 0000000100000000 00001000000000000000000000 00000000000000 99-1
00000010 011010 10 0000000100000000 00010000000000000000000000 00000000000000 02-2
10110010 011010 01 0000000100000000 00100000000000000000000000 00000000000000 B2-1
11010001 011010 01 0000000100000000 01000000000000000000000000 00000000000000 D1-1
00010010 011010 10 0000000100000000 10000000000000000000000000 00000000000000 12-2
adnega
Если код имеет отношение к СКУД, то можно посмотреть схемы кодирования карт EM-Marin в документах EM4006, EM4100
http://www.gaw.ru/html.cgi/txt/ic/em-marin/rfid/start.htm
Например, n-й бит контрольного байта может быть четностью всех n-х битов данных.
Santinel
да, имеет прямое отношение к СКУД) только это не ЕМ-Маринsad.gif это карточка ТЕМИК 5557, на которую записан код

@SFx
Не совсем понял Вас. Как построить последовательность?
barabek
Цитата(Santinel @ May 6 2014, 06:21) *
да, имеет прямое отношение к СКУД) только это не ЕМ-Маринsad.gif это карточка ТЕМИК 5557, на которую записан код

если это циклический код, то можно попробовать алгоритм Бэрлекампа-Мэсси.
SFx
Цитата(Santinel @ May 6 2014, 00:21) *
@SFx
Не совсем понял Вас. Как построить последовательность?

ну вы меняете последний бит у пакета, а попробуйте первый поменять, что в общем то вы уже и сделали. дальше чисто анализ.
Dnepr33
подсчет CRC состоит из:
(1) - разрядности ( 8 - 16 - 32 итд )
(2) - направления "сдвижки" регистра CRC ( со старших или младших бит байта - слова итд, в соответствии с (1)
(3) - начального значения CRC
(4) - округления последних байт до размера (1), или "неокругления" какой либо константой
(5) - собственно, полинома в соответствии с разрядностью (2)
---------------
Если есть образец-дам по входу, и его CRC неизвестного алгоритма - можно наваять-зарядить подборщик.
Но для достоверного подбора нужны не одна пара дамп-CRC а чем-больше-тем-лучше.
Думаю в области криптоаналитики есть что-то готовое.


Цитата(Santinel @ May 2 2014, 18:57) *
К сожалению, здесь не обычная сумма sad.gif Может быть они перед тем, как скормить байт процедуре CRC, ксорят его с константой ? тогда моя "бегущая по нулям единица" не выявит полином

Если разработчики достаточно ушлые, то вполне могли "замусорить" пакет данных по одному им известному алгоритму.
И при приеме пакета, до просчета CRC пакет сначала "размусоривается", а потом уже считает CRC.

Santinel
@Dnepr33
Не понятно, каким образом они включили 6 бит длины вейганда из 2 байта последовательности в подсчет CRC ( .. Карточку я могу прочитать, не проверяя CRC. А вот сгенерировать новую карточку с заданным номером - невозможно.
ЗЫ Привет из Киева )
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.