2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Хэш-функции и CRC
Сообщение28.02.2009, 09:30 
Аватара пользователя


21/10/05
167
Иркутск
Здравствуйте, интересует меня такой вопрос - часто в интернете при скачивании какого-нибудь большого файла на сайте указывается его хэш. Есть ли какие преимущества в использовании хэш-значений по сравнении с контрольной суммой, рассчитанной по одному из алгоритмов CRC?

 Профиль  
                  
 
 
Сообщение28.02.2009, 12:39 
Заслуженный участник
Аватара пользователя


01/08/06
3136
Уфа
Насколько я понимаю, у этих функций немного разные задачи.
CRC --- это контрольная сумма, нужна для обнаружения случайных ошибок при передаче данных.
MD5, SHA-1 и прочие хеши --- это отпечатки, предназначены для обнаружения намеренных изменений файла злоумышленниками (например, с целью внедрения трояна в исполняемый модуль).
Изменить файл так, чтобы контрольная сумма не изменилась, очень легко, для отпечатка же это сделать практически невозможно.

Отпечатки, конечно, также могут использоваться в качестве контрольной суммы и, разумеется, будут работать значительно лучше, чем CRC (по причине большей длины).

 Профиль  
                  
 
 
Сообщение28.02.2009, 15:30 
Аватара пользователя


31/10/08
1244
Существует два класса контрольных сумм.
1) Коды которые позволяют обнаружить ошибку в файле. Cюда подходит любой хэш. CRC, MD5, SHA-1.
2) И коды которые позволяют исправить ошибку. Сюда относится CRC.

CRC позволяет исправить ошибки. Но CRC очень слабый. Так как он позволяет исправить всего 1-32 ошибки и то если они идут одиночными. Поэтому для исправления ошибок CRC практически не применяют.
Вторая слабость это то что длина CRC составляет 32бита в отличии от MD5 и SHA которые длиннее. Это значит что файлов с одинаковым CRC могут встречаться чаще чем MD5. Считается что 128бит достаточно что-бы считать каждый такой хэш уникаленым. То есть вероятность встечи двух различных файлов с таким хэшом практически равна нулю.

А вот для CRC такого сказать нельзя. Это нужно для того чтобы быстро сравнить файлы. К примеру у нас есть два файла с одинаковыми названиями на разных сайтах. Если CRC одинаков то мы не можем сказать это одинаковые файлы или нет. А вот если хэш длиннее то мы уже можем говорить что файлы одинаковые или различные если они совпадают и не совпадают соответственно.

Еще CRC очень легко подделать. Что касается SHA и MD5 то гораздо труднее. Не знаю нашли ли алгоритмы или еще нет.

Плюс CRC только в том что он очень быстро считается.

 Профиль  
                  
 
 
Сообщение28.02.2009, 15:53 
Аватара пользователя


21/10/05
167
Иркутск
Спасибо вам за ответы. А если например, при копировании файла из сети произошли, то велика ли вероятность, что CRC окажется одинаковым? Меня интересует именно задача по обнаружению изменений в файле, как случайных, вызванных какими-либо сбоями, так и преднамеренными. Есть ли программы такие, которые позволяют отслеживать изменения в выбранном наборе файлов?

 Профиль  
                  
 
 
Сообщение28.02.2009, 16:32 
Заслуженный участник
Аватара пользователя


01/08/06
3136
Уфа
Вероятность равна 1/(Число возможных значений контрольной суммы). Соответственно, для CRC16 вероятность равна $2^{-16}$, для CRC32 --- $2^{-32}$. То есть, из $2^{32}$ файлов, при копировании которых произошло (не пойманное на другом уровне) искажение информации, в среднем один пройдёт проверку на CRC32.

Цитата:
Есть ли программы такие, которые позволяют отслеживать изменения в выбранном наборе файлов?
Ну... например, системы контроля версий такое умеют. Не знаю, правда, то ли это, что Вам надо.

 Профиль  
                  
 
 
Сообщение28.02.2009, 17:24 
Заслуженный участник


15/05/05
3445
USA
Cat писал(а):
Меня интересует именно задача по обнаружению изменений в файле, как случайных, вызванных какими-либо сбоями, так и преднамеренными. Есть ли программы такие, которые позволяют отслеживать изменения в выбранном наборе файлов?

Если возможно преднамеренное искажение файлов, то нужно пользоваться криптографическими хэш-функциями, вроде MD5 и SHA-1. Есть программы подсчета этих хэшей. Храните эталонные результаты для интересующих Вас файлов и проверяйте результат.

Более профессиональное решение - использование протокола SSL при передаче по сети.

 Профиль  
                  
 
 
Сообщение28.02.2009, 17:47 
Модератор
Аватара пользователя


11/01/06
5710
Cat в сообщении #190398 писал(а):
Меня интересует именно задача по обнаружению изменений в файле, как случайных, вызванных какими-либо сбоями, так и преднамеренными.

Защиту от преднамеренных изменений могут обеспечить только криптографические хеш-функции. CRC к таким не относится.
Простейшими примерами программ для отслеживания изменений являются md5sum, sha1sum и т.п. Защищу от повреждений (с возможностью восстановления) дают программы типа rar (с recovery records), parchive и т.п.
Почитайте википедию на этот счет:
http://ru.wikipedia.org/wiki/CRC
http://ru.wikipedia.org/wiki/md5sum
http://en.wikipedia.org/wiki/parchive

 Профиль  
                  
 
 
Сообщение28.02.2009, 18:12 
Аватара пользователя


21/10/05
167
Иркутск
Пока что необходима программа, которая контролирует изменения, произошедшие в наборе файлов через некоторый промежуток времени, работающая на отдельном компьютере или с возможностью доступа по сети, а также проверяющая файлы при копировании с одного носителя на другой. О криптографических хэш-функциях я имею представление и понимаю, что реализовать их не составит труда. Но хотелось бы выяснить для себя есть ли подобные программы и есть ли смысл написать свою.
maxal, md5sum она ведь с файлами только на локальном компьютере может работать?

 Профиль  
                  
 
 
Сообщение28.02.2009, 18:39 
Модератор
Аватара пользователя


11/01/06
5710
Cat
Такие программы называются ревизорами. Например, ADinf.
md5sum работает только с локальными файлами (или с файлами на сетевых дисках), что впрочем логично - чтобы проверить содержимое файла на изменения, надо это содержимое так или иначе получить на компьютере, где происходит проверка.

 Профиль  
                  
 
 Re: Хэш-функции и CRC
Сообщение29.06.2009, 21:26 
Аватара пользователя


29/06/09
2
worm2
Привет! Столкнулся с проблемой замены картинки в ехе. Там стоит проверка контрольной суммы файла. Как мне заменить картинку с сохранением контрольной суммы от старой. Есть ли такие проги меняющие сумму? СRC32 checker 0.2 хоть и считает сумму, но менять отказывается.

 Профиль  
                  
 
 Re: Хэш-функции и CRC
Сообщение30.06.2009, 05:43 
Модератор
Аватара пользователя


11/01/06
5710
Rusikxxx
см. https://web.archive.org/web/20130421051 ... 118r.shtml

 Профиль  
                  
 
 Re: Хэш-функции и CRC
Сообщение30.06.2009, 22:58 
Аватара пользователя


29/06/09
2
Что означает данный алгоритм. Есть ли шанс его обойти?
Код:
CRC32 :: 002B4138 :: 002C5338
   Referenced at 0012FCD4
   Referenced at 0012FD20
   Referenced at 00130058
CRC32 :: 002CFF90 :: 002E1190
   Referenced at 0021A894
CRC32b :: 002D2A90 :: 002E3C90
   The reference is above.
ZLIB deflate [word] :: 002CFE90 :: 002E1090
   Referenced at 0021A25C

 Профиль  
                  
 
 Re: Хэш-функции и CRC
Сообщение15.10.2009, 12:59 


15/10/09
2
У меня проблема.Сказал файл а он защищён паролем и выдаёт ошибку CRC.А пороль платный.Можно как-то исправить ошибку или обойти пароль?

 Профиль  
                  
 
 Re: Хэш-функции и CRC
Сообщение15.10.2009, 13:07 
Заслуженный участник


09/08/09
3438
С.Петербург
Sanieli в сообщении #251866 писал(а):
Можно как-то исправить ошибку или обойти пароль?
Это вряд ли. Файл, скорее всего, просто зашифрован паролем.

 Профиль  
                  
 
 Re: Хэш-функции и CRC
Сообщение15.10.2009, 13:30 


15/10/09
2
Если кто знает плиз помогите.мой маил balaramka@mail.ru

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group