|
24 / 24 / 8
Регистрация: 02.02.2016
Сообщений: 135
|
|
CRC32 с кодом CRC внутри данных02.06.2016, 17:35. Показов 4191. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит:
токи, напряжения и их 1 и 2 производные при t = 0;. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|