|
24 / 24 / 8
Регистрация: 02.02.2016
Сообщений: 135
|
|
CRC32 с кодом CRC внутри данных02.06.2016, 17:35. Показов 4307. Ответов 15
Метки нет (Все метки)
Доброго времени суток форумчане!
Могу получить CRC32 (со стандартным полиномом 0xEDB88320), но как получить CRC32, контрольная сумма которого должна храниться внутри данных от которых эта контрольная сумма. Не по теме: Т.е. имею проблему курица <-> яйцо. Рассчитав CRC32 и поместив ее во внутрь данных автоматически изменяю CRC32 всего этого блока. И так до бесконечности. Как, например, имея блок данных в N байт ( > M), рассчитать и разместить контрольную сумму CRC32 с позиции M внутри этого блока данных в N байт?
0
|
|
| 02.06.2016, 17:35 | |
|
Ответы с готовыми решениями:
15
Ошибка данных CRC Ошибка данных CRC Как сделать клик внутри фрейма с JS кодом? |
|
90 / 87 / 11
Регистрация: 20.11.2008
Сообщений: 724
|
|
| 03.06.2016, 08:47 | |
|
В том то и дело, что при проверке контрольной суммы её рассчитывают без учёта самой суммы. Т.е. при проверке сначала извлекают сохранённую контрольную сумму, данные теряют её, и тогда уже пересчитывают и сверяют
0
|
|
|
|
|
| 03.06.2016, 09:05 | |
Сообщение было отмечено Petrolion как решение
Решение
0
|
|
|
24 / 24 / 8
Регистрация: 02.02.2016
Сообщений: 135
|
||
| 03.06.2016, 11:43 [ТС] | ||
|
Rius, Видел эту тему - заинтересовала. Эдакая имитовставка. Смысл вставки контрольной суммы теряется, т.к. она всегда одна и та же. Если в своих изысканиях ничего не добьюсь - именно этот вариант и рассматриваю. (Правда с осложнениями которые у меня возникнут при добавлении "лишних" данных) Но что делать, если в данные нельзя вставить ничего дополнительного?
0
|
||
|
|
||
| 03.06.2016, 11:56 | ||
![]() Всегда можно что-то добавить, раз внутрь данных добавляется CRC. Иначе это какие-то несуразные условия. Добавлено через 32 секунды Но если совсем сдаётесь, поясню...
0
|
||
|
90 / 87 / 11
Регистрация: 20.11.2008
Сообщений: 724
|
||
| 03.06.2016, 11:57 | ||
|
0
|
||
|
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
|
||
| 03.06.2016, 12:02 | ||
|
crc32 не является криптостойкой, поэтому не её основе "защищенный" блок не сделать. Велосипед давно изобретен, используйте какой-нибудь современный алгоритм вычисления хеш-суммы https://ru.wikipedia.org/wiki/... 0%BC%D0%B0 Для защиты посылки нужно иметь секретный документ (блок данных) известный и отправителю и получателю, но неизвестный тому кто перехватывает посылку (он должен быть согласован отправителем и получателем по надежному каналу связи). Перед отправкой посылки её содержимое приписывается к блоку данных и вычисляется хеш-сумма для этого совместного блока, она и передается вместе с посылкой. Получатель вычисляет хеш-сумму приписав посылку к этому же блоку и проверяет её совпадение с полученной.
1
|
||
|
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
|
||
| 03.06.2016, 12:10 | ||
|
0
|
||
|
24 / 24 / 8
Регистрация: 02.02.2016
Сообщений: 135
|
|
| 03.06.2016, 13:29 [ТС] | |
|
Rius, Вроде вашу тему понял (кстати, код действительно красиво написан), можно сделать ЛЮБОЙ CRC, т.е. зачем его записывать, если можно принять его в софте за константу (я не собираюсь искать коллизий к чужим данным, мне свои защитить). Мне неохота реализовывать криптоалгоритмы - большая и тратная по времени тема.
ProgJ, архивирование не годится - из-за изменения размера упакованных данных в зависимости от содержимого. (вектора не использую из-за дополнительных накладных расходов по памяти, динамические массивы размерами в гигабайты в памяти передвигать слишком затратно по куче параметров) У меня есть данные которые могут храниться в виде файлов или передаваться в виде пакетов от программ клиентов. Данные - результат больших и ответственных расчетов. У этих данных определенная структура (где есть место под CRC32) и она неизменна. Мне нужно защитить блоки данных от: утечек (ошибок) памяти; сбоях при считывании с носителей; и самое главное подмене при передачи блоков от программ-клиентов. Потому как подмененные данные (если у них сохраняется правильная структура) могут порушить весь результат огромного времени расчетов. Сами данные могут быть перехвачены. Главное не было бы подмены и сохранялась бы целостность. Лучше пересчитать один блок данных, чем получить неверный общий результат, основываясь на одном или нескольких "левых" блоках. Данных много, расчеты "тяжелые", поэтому отнимать мощность процессоров и видеокарт на тяжелые криптоалгоритмы шифрования-дешифрования жалко. (Скорость доступа к "чистым" данным тоже немаловажна) Потому думал разместить внутри данных КС с зависимостью от собственного значения. Если бы это уравнение можно было решить... (Могу реализовать AES, но "быстрого" доступа к данным уже не получить) Сейчас задумался, чтобы поле CRC32 использовать под ту самую 4 байтовую вставку для формирования постоянной КС. Но это также не защитит от подмены данных :-( (достаточно будет проанализировать 3-5 пакетов данных)
0
|
|
|
|
||
| 03.06.2016, 13:35 | ||
|
Алгоритм был такой:
В Вашем случае, раз стоит вопрос о подмене, выход, как заметил Sindbad_M, только в нормальной криптографии и подписях.
1
|
||
|
24 / 24 / 8
Регистрация: 02.02.2016
Сообщений: 135
|
|||
| 03.06.2016, 14:07 [ТС] | |||
|
0
|
|||
|
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
|
|
| 03.06.2016, 14:12 | |
|
Petrolion, Задача защиты от подмены передаваемого пакета - криптографическая задача, корректно решить её можно только криптографическими методами. Все что основано на crc порождает уравнения, сложность которых для вас и для злоумышленника одинакова.
Но, если беспокоитесь только об отдельных посылках, можно также считать контрольную сумму для нескольких посылок и при приеме проверять не только сумму посылки, но и дополнительные суммы блока посылок. Любые вычисления требуют ресурсов, безусловно. Но проблемы реализации криптографии, как правило, сводятся к подключению в проект соответствующей библиотеки. Для популярных средств разработки все давно реализовано.
0
|
|
|
24 / 24 / 8
Регистрация: 02.02.2016
Сообщений: 135
|
||
| 03.06.2016, 14:27 [ТС] | ||
|
Rius, пока обсуждали придумал куда можно применить ваш метод. Определенная часть данных "длительного" пользования (и не столь быстрого обращения) должна храниться в виде файлов на BD-ROM носителях. В структуре этих файлов предусмотрены тэги-затычки (для выравнивания по границам) вот в них то я и смогу затолкать эти "компенсаторы" КС. Так что спасибо еще раз!
0
|
||
| 03.06.2016, 14:27 | |
|
Помогаю со студенческими работами здесь
16
Ошибка данных CRC, попутно RAW Отсутствует определение процеруды. Все инфа внутри с кодом Ошибка в данных (CRC) при установке игры Ошибка в данных crc при инициализации HDD Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|