|
Полином для вычисления обратной CRC, Из CRC получить исходный код |
|
|
|
Mar 16 2015, 09:08
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Имею идею шифровать код прошивки с помощью CRC. Конкретно, декодировать его с помощью встроенной в STM32F2xx CRC-32 с полиномом: X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2+ X +1 То есть, каждое исходное слово заменяется CRC, вычисленной с его участием, следующее слово заменяется следующей CRC. Вопрос, как закодировать, чтобы после декодирования получить исходный код? Каким полиномом? Думаю, перекрутить 32 в 1, и т. п. Пока читаю пару статей о CRC, может, кто-то уже знает точный ответ?
|
|
|
|
|
 |
Ответов
|
Mar 16 2015, 13:12
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Пытаюсь понять на простом примере. Вот в этом калькуляторе http://www.zorc.breitbandkatze.de/crc.htmlзадаю полином 8 порядка 100000111 (hex 7), все реверсы убираю, для данных 0 получаю результат 0x90. Никак, деля вручную, не могу получить. Получается 0xFD. upd. Ага, вышло, когда посчитал на бумаге не для 0, а для 0x30 ('0'). Значит, в строке Data sequence задаются символы. Ух... Вот эта программа помогла понять. Там свои тараканы. http://depa.usst.edu.cn/chenjq/www2/softwa...calculation.htmЦитата(yes @ Mar 16 2015, 15:32)  может я что-то непонимаю - но не уверен, обратима ли эта операция? Обратима, так как основана на xor. Похоже, если задать данные 0x01, то CRC выдаст результат, равный ее полиному (без старшего разряда. Так, как она описывается в форме 0xXXXX). CRC-08(0x01) = 0x07. А если задать данные, равные полиному (вместе со старшим битом), то CRC равна 0. Для верхнего примера CRC-08(0x0107) = 0.
|
|
|
|
|
Mar 16 2015, 14:19
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(ViKo @ Mar 16 2015, 16:12)  Обратима, так как основана на xor. То, что она основана на XOR, не говорит о том, что одному выходному значению строго соответствует одно входное при любых начальных условиях. И, кстати, это, действительно, не факт. Я даже подозреваю обратное, по причине того, что при делении на полином, имеющий максимальную степень, равную размеру слова, но имеющий еще компоненты меньших степеней, остаток может содержать этот самый старший бит, который реально отбрасывается, а может и не содержать. При этом оставшиеся биты могут быть одинаковыми.
|
|
|
|
|
Mar 16 2015, 14:21
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(SM @ Mar 16 2015, 17:19)  То, что она основана на XOR, не говорит о том, что одному выходному значению строго соответствует одно входное при любых начальных условиях. И, кстати, это, действительно, не факт. Это зависит от длины данных. Думаю, если данные короче или равны размеру полинома, то будет однозначное соответствие. Я так и хочу использовать. Пример из обычной математики - если имеем байт, то остаток от деления байта на 256 будет однозначно определять исходные данные.
|
|
|
|
Сообщений в этой теме
ViKo Полином для вычисления обратной CRC Mar 16 2015, 09:08 SM Математически точный ответ я дать могу - для того,... Mar 16 2015, 11:05 demiurg_spb Извините, не понял сути сначала.
По сути ИМХО это ... Mar 16 2015, 11:22 yes может я что-то непонимаю - но не уверен, обратима... Mar 16 2015, 12:32     SM Цитата(ViKo @ Mar 16 2015, 17:31) Без ини... Mar 16 2015, 14:39 ViKo А мне интуиция говорит, что, поскольку я имею те ж... Mar 16 2015, 14:47 SM Цитата(ViKo @ Mar 16 2015, 17:47) А мне и... Mar 16 2015, 15:25  ViKo Цитата(SM @ Mar 16 2015, 18:14) Каждое по... Mar 16 2015, 15:28   SM Цитата(ViKo @ Mar 16 2015, 18:28) Надо от... Mar 16 2015, 15:37    ViKo Цитата(SM @ Mar 16 2015, 18:37) CRC то не... Mar 16 2015, 15:50     SM Цитата(ViKo @ Mar 16 2015, 18:50) Избавля... Mar 16 2015, 15:54 ViKo Наверное, и с алгебраическим умножением и ограниче... Mar 16 2015, 16:11 SM Цитата(ViKo @ Mar 16 2015, 19:11) Наверно... Mar 16 2015, 16:29  AHTOXA Так ему однозначность нужна в другую сторону. Чтоб... Mar 16 2015, 16:51   SM Цитата(AHTOXA @ Mar 16 2015, 19:51) Так е... Mar 16 2015, 17:00    AHTOXA Цитата(SM @ Mar 16 2015, 22:00) Так а как... Mar 16 2015, 18:58     ViKo Цитата(AHTOXA @ Mar 16 2015, 21:58) Наско... Mar 16 2015, 19:08      SM Цитата(ViKo @ Mar 16 2015, 22:08) Это уже... Mar 16 2015, 19:23 ViKo В CRC-4 полином 5-битовый, а числа и остаток 4-бит... Mar 16 2015, 17:19 SM Цитата(ViKo @ Mar 16 2015, 20:19) В CRC-4... Mar 16 2015, 17:21  ViKo Цитата(SM @ Mar 16 2015, 20:21) Вот поэто... Mar 16 2015, 18:07   SM Цитата(ViKo @ Mar 16 2015, 21:02) Не согл... Mar 16 2015, 18:11    ViKo Цитата(SM @ Mar 16 2015, 21:11) Нельзя бы... Mar 16 2015, 18:16     SM Цитата(ViKo @ Mar 16 2015, 21:16) и, зная... Mar 16 2015, 18:26 krux я таки-извиняюсь, но предположу, что топикстартеру... Mar 16 2015, 17:32 SM Цитата(krux @ Mar 16 2015, 20:32) я таки-... Mar 16 2015, 17:36 krux я опять-таки извиняюсь, но топикстартер в курсе пр... Mar 16 2015, 17:51 ViKo Давайте возьмем примитивнейший пример. CRC-8 равна... Mar 16 2015, 18:48 SM Цитата(ViKo @ Mar 16 2015, 21:46) Очевидн... Mar 16 2015, 19:04 ViKo Полином CRC известен, он не от балды берется. x^4 ... Mar 16 2015, 19:33 SM Цитата(ViKo @ Mar 16 2015, 22:33) Полином... Mar 16 2015, 20:25 ViKo Могу только повторить - 0x30...0x3F не укладываютс... Mar 16 2015, 20:58 SM Цитата(ViKo @ Mar 16 2015, 23:58) Могу то... Mar 16 2015, 21:43  ViKo Цитата(SM @ Mar 17 2015, 00:43) Любая мет... Mar 16 2015, 21:52   SM Цитата(ViKo @ Mar 17 2015, 00:52) Мы гово... Mar 16 2015, 21:54    ViKo Цитата(SM @ Mar 17 2015, 00:54) Да, в GF(... Mar 16 2015, 22:02     SM Цитата(ViKo @ Mar 17 2015, 01:02) А вы ум... Mar 17 2015, 05:23 ViKo А вы замените умножение последовательными сложения... Mar 17 2015, 05:57 SM Цитата(ViKo @ Mar 17 2015, 08:57) А вы за... Mar 17 2015, 05:59 ViKo http://depa.usst.edu.cn/chenjq/www2/softwa...calcu... Mar 17 2015, 06:22 SM А на заборе еще что-то написано.
Мы сейчас обсужда... Mar 17 2015, 06:30 ViKo Цитата(SM @ Mar 17 2015, 09:30) А на забо... Mar 17 2015, 06:38  SM Цитата(ViKo @ Mar 17 2015, 09:38) Может, ... Mar 17 2015, 06:41   ViKo Цитата(SM @ Mar 17 2015, 09:41) Нет. Мои ... Mar 17 2015, 06:49    SM Цитата(ViKo @ Mar 17 2015, 09:49) что я п... Mar 17 2015, 06:59 ViKo Подождем...
Я же показал частное и остаток. Програ... Mar 17 2015, 07:06 SM Цитата(ViKo @ Mar 17 2015, 10:06) Я же по... Mar 17 2015, 07:24 MrYuran Не совсем понял, о чем идет речь, но для CRC (и во... Mar 17 2015, 08:04 ViKo Цитата(MrYuran @ Mar 17 2015, 11:04) Не с... Mar 17 2015, 09:30  SM Цитата(ViKo @ Mar 17 2015, 12:30) SM, вы ... Mar 17 2015, 09:34 Timmy Цитата(ViKo @ Mar 16 2015, 12:08) То есть... Mar 17 2015, 08:35 ViKo SM, я вижу, упорствование - ваш конек. Разберитесь... Mar 17 2015, 09:37 SM Цитата(ViKo @ Mar 17 2015, 12:37) SM, я в... Mar 17 2015, 09:42 ViKo Ладно, делим. Получим для CRC-4 из 0x30 частное и ... Mar 17 2015, 09:52 SM Так ясно, откуда у Вас ошибка. Приписывание четыре... Mar 17 2015, 10:00 ViKo Приписывание нулей - чтобы было из чего остаток на... Mar 17 2015, 10:03 SM Цитата(ViKo @ Mar 17 2015, 13:03) Приписы... Mar 17 2015, 10:33 ViKo Если вы не дополните число нулями, вы не сделаете ... Mar 17 2015, 10:51 SM Цитата(ViKo @ Mar 17 2015, 13:51) Если вы... Mar 17 2015, 10:54  Dr.Alex Конечно не было возможности всё прочитать, может у... Mar 17 2015, 14:52   ViKo Цитата(Dr.Alex @ Mar 17 2015, 17:52) Его ... Mar 18 2015, 09:40    Dr.Alex Цитата(ViKo @ Mar 18 2015, 12:40) А то кр... Mar 18 2015, 10:40     ViKo Цитата(Dr.Alex @ Mar 18 2015, 13:40) С ка... Mar 18 2015, 11:08      Dr.Alex Ну тогда 2-3-4 первых слова :-))))))) Mar 18 2015, 11:27
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|