SecuRRity.Ru » Термины » Хеширование
Хеширование
автор: Administrator | 24 июня 2010, 12:53 | Просмотров: 17537теги: Термины, Хеширование

Хеширование применяется для сравнения данных: если у двух массивов хеш-коды разные, массивы гарантированно различаются; если одинаковые — массивы, скорее всего, одинаковы. В общем случае однозначного соответствия между исходными данными и хеш-кодом нет в силу того, что количество значений хеш-функций меньше чем вариантов входного массива; существует множество массивов, дающих одинаковые хеш-коды — так называемые коллизии. Вероятность возникновения коллизий играет немаловажную роль в оценке качества хеш-функций.
Существует множество алгоритмов хеширования с различными характеристиками (разрядность, вычислительная сложность, криптостойкость и т. п.). Выбор той или иной хеш-функции определяется спецификой решаемой задачи. Простейшими примерами хеш-функций могут служить контрольная сумма или CRC.
Контрольные суммы
Несложные, крайне быстрые и легко реализуемые аппаратные алгоритмы, используемые для защиты от непреднамеренных искажений, в том числе ошибок аппаратуры.По скорости вычисления в десятки и сотни раз быстрее, чем криптографические хеш-функции, и значительно проще в аппаратной реализации.
Платой за столь высокую скорость является отсутствие криптостойкости — лёгкая возможность подогнать сообщение под заранее известную сумму. Также обычно разрядность контрольных сумм (типичное число: 32 бита) ниже, чем криптографических хешей (типичные числа: 128, 160 и 256 бит), что означает возможность возникновения непреднамеренных коллизий. Простейшим случаем такого алгоритма является деление сообщения на 32- или 16- битные слова и их суммирование, что применяется, например, в TCP/IP.
Как правило, к такому алгоритму предъявляются требования отслеживания типичных аппаратных ошибок, таких, как несколько подряд идущих ошибочных бит до заданной длины. Семейство алгоритмов т. н. «циклических избыточных кодов» удовлетворяет этим требованиям. К ним относится, например, CRC32, применяемый в аппаратуре Ethernet и в формате упакованных файлов ZIP.
Криптографические хеш-функции
Среди множества существующих хеш-функций принято выделять криптографически стойкие, применяемые в криптографии. Для того, чтобы хеш-функция H считалась криптографически стойкой, она должна удовлетворять трем основным требованиям, на которых основано большинство применений хеш-функций в криптографии:- Необратимость: для заданного значения хеш-функции m должно быть вычислительно неосуществимо найти блок данных X, для которого H(X) = m.
- Стойкость к коллизиям первого рода: для заданного сообщения M должно быть вычислительно неосуществимо подобрать другое сообщение N, для которого H(N) = H(M).
- Стойкость к коллизиям второго рода: должно быть вычислительно неосуществимо подобрать пару сообщений (M, M'), имеющих одинаковый хеш.
Данные требования не являются независимыми:
- Обратимая функция нестойка к коллизиям первого и второго рода.
- Функция, нестойкая к коллизиям первого рода, нестойка к коллизиям второго рода; обратное неверно.
Следует отметить, что не доказано существование необратимых хеш-функций, для которых вычисление какого-либо прообраза заданного значения хеш-функции теоретически невозможно. Обычно нахождение обратного значения является лишь вычислительно сложной задачей.
Атака «дней рождения» позволяет находить коллизии для хеш-функции с длиной значений n битов в среднем за примерно 2n/2 вычислений хеш-функции. Поэтому n-битная хеш-функция считается криптостойкой, если вычислительная сложность нахождения коллизий для неё близка к 2n/2.
Для криптографических хеш-функций также важно, чтобы при малейшем изменении аргумента значение функции сильно изменялось (лавинный эффект). В частности, значение хеша не должно давать утечки информации даже об отдельных битах аргумента. Это требование является залогом криптостойкости алгоритмов хеширования, хеширующих пользовательский пароль для получения ключа
Применение хеш-функций
Хеш-функции также используются в некоторых структурах данных — хеш-таблицаx, фильтрах Блума и декартовых деревьях. Требования к хеш-функции в этом случае другие:- хорошая перемешиваемость данных
- быстрый алгоритм вычисления
Сверка данных
В общем случае это применение можно описать, как проверка некоторой информации на идентичность оригиналу, без использования оригинала. Для сверки используется хеш-значение проверяемой информации. Различают два основных направления этого применения:
- Проверка на наличие ошибок — Например, контрольная сумма может быть передана по каналу связи вместе с основным текстом. На приёмном конце, контрольная сумма может быть рассчитана заново и её можно сравнить с переданным значением. Если будет обнаружено расхождение, то это значит, что при передаче возникли искажения и можно запросить повтор.
Бытовым аналогом хеширования в данном случае может служить приём, когда при переездах в памяти держат количество мест багажа. Тогда для проверки не нужно вспоминать про каждый чемодан, а достаточно их посчитать. Совпадение будет означать, что ни один чемодан не потерян. То есть, количество мест багажа является его хеш-кодом. Данный метод легко дополнить до защиты от фальсификации передаваемой информации (метод MAC). В этом случае хеширование производится криптостойкой функцией над сообщением, объединенным с секретным ключом, известным только отправителю и получателю сообщения. Таким образом, криптоаналитик не сможет восстановить код, по перехваченному сообщению и значению хеш-функции, то есть, не сможет подделать сообщение. - Ускорение поиска данных — Например, при записи текстовых полей в базе данных может рассчитываться их хеш код и данные могут помещаться в раздел, соответствующий этому хеш-коду. Тогда при поиске данных надо будет сначала вычислить хеш-код текста и сразу станет известно, в каком разделе их надо искать, то есть, искать надо будет не по всей базе, а только по одному её разделу (это сильно ускоряет поиск).
Бытовым аналогом хеширования в данном случае может служить помещение слов в словаре по алфавиту. Первая буква слова является его хеш-кодом, и при поиске мы просматриваем не весь словарь, а только нужную букву.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Панель управления
Настройки страницы
помощь: С помощью данных кнопок Вы можете изменить расположение информационных блоков по горизонтали, а также настраивать яркость и размер шрифта.
Для этого, в Вашем браузере должен быть включён JavaScript и браузер должен принимать файлы cookie нашего домена.
Все изменения автоматически сохраняются в cookie-файле Вашего браузера в течение 365 дней со дня изменений настроек.
Подписка на сайт
Календарь
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
---|---|---|---|---|---|---|
Популярные новости
Облако тегов
Microsoft Windows Антивирус Атака БРАУЗЕР Безопасность ВРЕДОНОСНЫЕ Вредоносные программы ДАННЫЕ ЗАЩИТА ИНФОРМАЦИЯ Интернет КОМПЬЮТЕР НОВОСТИ ПО ПРОГРАММА САЙТ СТАТЬИ США Система Софт ТРОЯН Термины УЯЗВИМОСТИ Уязвимые сайты ФАЙЛ Хакер ЧЕРВЬ безопасности взлом вирус доступ злоумышленник программы сайты сервер спам уязвимость файлы хакеры
Последние комментарии
» Написал: Павел
в новости: Бесплатный ключ для ESET Smart Security 5 на 6 месяцев
» Написал: Катерина
в новости: Бесплатный ключ для ESET Smart Security 5 на 6 месяцев
» Написал: Administrator
в новости: K9 Web Protection: бесплатный родительский контроль
» Написал: Елена
в новости: K9 Web Protection: бесплатный родительский контроль
» Написал: kholod
в новости: Бесплатный ключ на 1 год для IObit Malware Fighter PRO
» Написал: Серега из Стрежевого
в новости: Бесплатный ключ на 1 год для Comodo Internet Security Pro 2012
» Написал: Akex
в новости: Бесплатный ключ на 1 год для IObit Malware Fighter PRO
в новости: Бесплатный ключ для ESET Smart Security 5 на 6 месяцев
» Написал: Катерина
в новости: Бесплатный ключ для ESET Smart Security 5 на 6 месяцев
» Написал: Administrator
в новости: K9 Web Protection: бесплатный родительский контроль
» Написал: Елена
в новости: K9 Web Protection: бесплатный родительский контроль
» Написал: kholod
в новости: Бесплатный ключ на 1 год для IObit Malware Fighter PRO
» Написал: Серега из Стрежевого
в новости: Бесплатный ключ на 1 год для Comodo Internet Security Pro 2012
» Написал: Akex
в новости: Бесплатный ключ на 1 год для IObit Malware Fighter PRO