Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
Если там действительно CRC и есть возможность подавать на... 18.12.04 02:49 Число просмотров: 2388
Автор: Lexy Статус: Незарегистрированный пользователь
|
Если там действительно CRC и есть возможность подавать на вход разные значения, то можно все легко вскрыть без перебора за счет линейности алгоритма. Количество необходимых тестовых значений для 16-битного CRC будет, по-видимому равно 17, для 32-битного - 33 и т.п. Общая идея такова:
Если некоторый CRC-подобный алгоритм на входах A, B, C дает F(A), F(B), F(C) соответственно, то на входе D = A^B^C он даст F(D) = F(A)^F(B)^F(C). Отсюда выбираем какое-то базовое значение A, и далее значения B_i = A ^ X_i, так чтобы X_i были линейно независимы (например, степени двойки). Вычисляем на них значения целевой функции, остальные через них легко выражаются. В интернете можно найти подробные источники по поводу таких алгоритмов.
Если же целевой алгоритм - не CRC, то имеет смысл сначала его извлечь каким-либо способом, и потом уже исследовать отдельно.
===
Lexy
|
|
|