КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Хеш-функции
Определение 3.1. Хеш-функцией называется преобразование В общем случае Хеширование иногда считают видом криптографического преобразования. Вместе с тем, криптографическое преобразование, по определению, является обратимым, а хеширование представляет собой необратимое преобразование.
3.1.Требования к хеш-функции
Для того чтобы хеш-функция могла быть использована в криптографических алгоритмах она должна обладать следующими свойствами [2,9]: - преобразование - выходное значение - значение - для любого значения - для любого значения - значение хеш-функции Если хеш-функция обладает перечисленными свойствами, то она считается качественной. Для качественной хеш-функции три следующие задачи являются вычислительно неразрешимыми. 1. Задача нахождения прообраза – это задача нахождения входной последовательности 2. Задача нахождения коллизий – это задача нахождения последовательностей 3. Задача нахождения второго прообраза – это задача нахождения для заданной входной последовательности В табл.3.1 представлены атаки на хеш-функции и приведена оценка их вычислительной сложности.
Таблица 3.1. Оценка сложности атак на хеш-функцию
Если Подавляющее большинство современных алгоритмов хеширования строится или по итерационной схеме, или на основе симметричных блочных криптосистем.
3.2. Итерационные хеш-функции
Схема итерационной хеш-функции представлена на рис. 3.1. На схеме: Входная информационная последовательность дополняется до длины, кратной
Рис. 3.1. Схема итерационной хеш-функции
Итерационная хеш-функция является стойкой в смысле нахождения коллизий, если аналогичным свойством обладает функция сжатия Рассмотрим, в качестве примера, итерационный алгоритм хеширования SHA (Secure Hash Algorithm) являющегося частью стандарта SHS (Secure Hash Standard), разработанный Национальным институтом стандартов и технологий США в 1993 году. Алгоритм был предложен Р. Ривестом и в своем первоначальном виде обозначался как SHA-1. В 1995 году стандарт был пересмотрен и определены четыре версии алгоритма: SHA-224, SHA-256, SHA-384, SHA-512. Все версии имеют одинаковую структуру, поэтому их называют общим именем SHA-2. В табл. 3.2 представлены характеристики SHA. Рассмотрим версию SHA-1 (см. рис. 3.2). На первом этапе входная информационная последовательность дополняется до длины 512 бит.
Таблица 3.2. Характеристики SHA
Рис. 3.2. Схема одного шага алгоритма SHA
Сначала информационная последовательность дополняется до длины на 64 двоичных разряда меньше числа, кратного 512: к концу последовательности приписываются 1, а затем необходимое количество нулей. После этого приписывается 64-разрядный код длины сообщения. Если длина исходного сообщения больше
На вход
Перед началом каждого цикла соответствующий блок расширяется до 80 слов по 32 разряда в каждом. Расширение происходит следующим образом. Пусть
где Перед началом первого цикла инициализируются пять 32-разрядных переменных:
где Конкатенация новых значений этих переменных, полученных в конце В начале каждого цикла создаются копии входных переменных:
где В первом раунде (при
во втором раунде (при
в третьем раунде (при
в четвертом раунде (при
Цикл завершается сложением по модулю
конкатенация полученных значений Алгоритмы семейства SHA-2 значительно отличаются от версии SHA-1. Рассмотрим алгоритм SHA-256 [9]. Перед хешированием сообщение дополняется до длины, кратной 512 битам, аналогично SHA-1. После этого полученная последовательность разделяется на блоки по 512 бит (16 32-разрядных слов), каждый из которых поступает на вход функции сжатия SHA-256. В этом смысле мы имеем обычную итерационную хеш-функцию. Функция сжатия имеет похожую итерационную структуру. Функция расширения блока на основе 16 слов исходного сообщения формирует расширенное сообщение - 64 слова, поступающие на вход 64 раундов функции сжатия (РФС) (см. рис. 3.3). Функция расширения блока MS описывается следующим образом. Первые 16 слов расширенного сообщения соответствуют исходным 16 словам блока, дальнейшие слова формируются по рекуррентной формуле:
где
Рис. 3.3. Функция сжатия SHA-256
Структура раунда представлена на рис. 3.4., где приняты следующие обозначения:
Используется фиксированная последовательность из 64 32-разрядных констант (по количеству раундов). На каждом раунде используется одна константа из этого массива
Рис. 3.4. Один раунд функции сжатия SHA-256
К итерационным алгоритмам хеширования относятся ГОСТ Р 34.11-94, MD5 и др.
3.3. Хеш-функции на основе симметричных блочных криптоалгоритмов
При использовании для построения хеш-функции симметричных блочных криптосистем стойкость хеш-функции гарантируется стойкостью применяемой блочной криптосистемы. Пусть При использовании для вычисления текущего хеш-значения
Здесь в качестве ключа используется хеш-значение, вычисленное на предыдущем шаге В заключение этой главы необходимо сказать, что в настоящее время в РФ принят стандарт хеширования ГОСТ Р 34.11-2012, проектное название представленного стандартом семейства хеш-функций носит название «Стрибог». Основными отличиями ГОСТ Р 34.11-2012 («Стрибог») и ГОСТ Р 34.11-94 являются: - размер блоков сообщения и внутреннего состояния в ГОСТ Р 34.11-2012 составляет 512 бит, а в ГОСТ Р 34.11-94 – 256 бит; - ГОСТ Р 34.11-2012 состоит из двух хеш-функций, с длинами результирующего значения хеш-образа 256 и 512 бит; - В ГОСТ Р 34.11-94 в качестве функции сжатия используется блочный симметричный криптоалгоритм ГОСТ 28147-89, а в ГОСТ Р 34.11-2012 функция сжатия другая и это - главное отличие. В ГОСТ Р 34.11-2012 функция сжатия состоит из трех основных преобразований: подстановки на байтах, транспонирования матрицы байт, умножения 64-битных векторов на матрицу 64×64. Результаты тестирования хеш-функций показали, что ГОСТ Р 34.11-2012 практические в два раза быстрее, чем ГОСТ Р 34.11-94. К тому же ГОСТ Р 34.11-2012 проще в реализации и оптимизации как алгоритмически, так и для конкретной платформы.
Контрольные вопросы: 1. Дайте определение хеш-функции. 2. Назовите свойства, которыми должна обладать хеш-функция. 3. В чем суть задач: нахождения прообраза, нахождения коллизий, нахождения второго прообраза. 4. Что такое итерационная хеш-функция. Приведете примеры. 5. Поясните методику построения хеш-функций на основе блочных криптоалгоритмов. Приведите примеры.
Дата добавления: 2014-12-26; Просмотров: 2513; Нарушение авторских прав?; Мы поможем в написании вашей работы! |