Interested Article - Односторонняя функция сжатия

Односторонняя функция сжатия в криптографии функция , которая образует значение длиной на выходе при задании двух входных значений длиной . Одностороннее преобразование означает, что легко вычислить значение хеш-функции по прообразу, но трудно создать прообраз, значение хеш-функции которого равно заданной величине .

Односторонняя функция сжатия

Односторонняя функция сжатия используется, например, в структуре Меркла — Дамгора внутри криптографических хеш-функций .

Односторонние функции сжатия часто построены из блочных шифров . Для того, чтобы превратить любой стандартный блочный шифр в одностороннюю функцию сжатия существуют схемы Дэвиса — Мейера, Матиса — Мейера — Осеаса, Миагути — Пренеля (функции сжатия одноблочной длины) .

Функция сжатия

Функции сжатия представляют собой функции, которые получают на вход строку переменной длины и преобразуют её в строку фиксированной, обычно меньшей, длины.

Например, если вход А имеет длину в 128 бит, вход B в 128 бит, и они сжаты вместе в один выход в 128 бит. Это то же самое, как если бы один-единственный 256-битовый вход сжимался вместе в один выход в 128 бит.

Некоторые функции сжатия имеют различный размер двух входов, но выход, как правило, имеет такой же размер, как и один из входов. Например, вход А может быть 256 бит, вход B 128 бит, и они сжаты вместе с одним выходом в 128 бит. То есть, в общей сложности 384 входных битов сжимаются вместе до 128 выходных битов.

Таким образом, смешивание выполняется за счет достижения лавинного эффекта .То есть, каждый выходной бит зависит от каждого входного бита.

Односторонняя функция

Функция сжатия в одну сторону должна обладать следующими свойствами:

  • Стойкость к поиску первого прообраза — отсутствие эффективного полиномиального алгоритма вычисления обратной функции , то есть нельзя восстановить текст по известной его свертке за реальное время (необратимость). Это свойство эквивалентно тому, что хеш-функция является односторонней функцией.
  • Стойкость к поиску второго прообраза (коллизиям первого рода). Зная входное сообщение и его свёртку , вычислительно невозможно найти другой вход , чтобы .
  • Стойкость к коллизиям (коллизиям второго рода). Должно быть вычислительно невозможно подобрать пару сообщений и , что .

Сведём задачу криптоанализа хеш-функций к задаче поиска коллизии: сколько сообщений надо просмотреть, чтобы найти сообщения с двумя одинаковыми хешами.

Вероятность встретить одинаковые хеши для сообщений из двух разных наборов, содержащих и текстов, равна . Если , то вероятность успеха атаки , а сложность проведения атаки операций.

Чтобы найти коллизию, надо сгенерировать два псевдослучайных множества сообщений (в каждом множестве сообщений) и найти для них хеши. Тогда, согласно парадоксу дней рождения (см. также атака «дней рождения» ), вероятность того, что среди них найдется пара сообщений с одинаковыми хешами, больше 0,5. Атака требует большого объёма памяти для хранения текстов и эффективных методов сортировки.

Структура Меркла — Дамгора

Структура Меркла — Дамгора, где IV — начальное значение свертки (фиксированный вектор), — функция сжатия.

Суть конструкции заключается в итеративном процессе последовательных преобразований, когда на вход каждой итерации поступает блок исходного текста и выход предыдущей итерации .

Наиболее широко используются хеш-функции, основанные на этой конструкции в MD5 , SHA-1 и SHA-2 .

Хеш-функция должна преобразовывать входное сообщение произвольной длины в выходное фиксированной длины. Это может быть достигнуто путём разбиения входного сообщения на ряд одинаковых по размеру блоков, и их последовательной обработки односторонней функцией сжатия. Функция сжатия может быть либо специально разработана для хеширования, либо представлять собой функцию блочного шифрования.

Атака нахождения второго прообраза (учитывая сообщение , злоумышленник находит ещё одно сообщение , чтобы удовлетворить ) может быть выполнена в соответствии с Килси и Шнайером, для сообщения из 2 k блоков может быть выполнена за время k × 2 n/2+1 + 2 n-k+1 . Важно отметить, если сообщения длинные, то сложность атаки находится между 2 n/2 и 2 n , а когда длина сообщения становится меньше, сложность приближается к 2 n .

Роль функции сжатия может осуществлять любой блочный шифр E. Данная идея легла в основу развития конструкции Меркла — Дамгора в схемах Дэвиса — Мейера, Матиса — Мейера — Осеаса, Миагути — Пренеля .

Структура Дэвиса — Мейера

Схема Дэвиса — Мейера

В данной схеме блок сообщения и предыдущее значение хеш-функции поступают в качестве ключа и блока открытого текста соответственно на вход блочного шифра . Получившийся в результате шифрования блок закрытого текста суммируется ( операция XOR ) с результатом предыдущей итерации хеширования ( ) для получения следующего значения хеш-функции ( ).

В математических обозначениях схему Дэвиса — Мейера можно записать как:

Если блочный шифр использует, например, 256-битный ключ, то каждый блок сообщений ( ) представляет собой 256-битный фрагмент сообщения. Если же блочный шифр использует размер блока в 128 бит, то входные и выходные значения хеш-функции в каждом раунде составляют 128 бит.

Важным свойством конструкции Дэвиса — Мейера является то, что даже если базовый блок шифрования является полностью безопасным, можно вычислить неподвижные точки для построения: для любого можно найти значение такое что : просто нужно установить .

Безопасность структуры Дэвиса — Мейера была впервые доказана Винтерницом .

Структура Матиса — Мейера — Осеаса

Схема Матиса-Мейера-Осеаса

Это версия схемы Девиса — Мейера: блоки сообщения применяются как ключи криптосистемы . Схема может быть использована, если блоки данных и ключ шифрования имеют один и тот же размер. Например, AES хорошо подходит для этой цели.

В данной конструкции блок сообщения и предыдущее значение хеш-функции поступают в качестве ключа и блока открытого текста соответственно на вход блочного шифра . Но уже значение подвергается предварительной обработке функцией из-за возможных различий в размерах хеш-суммы и размере ключа шифра . Эта функция реализует отображение n-битного значения хеш- функции в k-битный ключ шифра . В результате применения операции шифрования, получается блок закрытого текста, который суммируется с соответствующим ему блоком открытого текста ( ).

В математических обозначениях схему Матиса — Мейера — Осеаса можно записать как:

Структура Миагути — Пренеля

Схема Миагучи-Пренеля

Схема Миагути — Пренеля — расширенная версия схемы Матиса — Мейера — Осеаса. Отличие в том, что блок закрытого текста суммируется не только с соответствующим ему блоком открытого текста ( ), но и с результатом предыдущей итерации хеширования ( ). Чтобы сделать алгоритм более устойчивым к атаке, исходный текст, ключ шифра и зашифрованный текст складываются с помощью операции XOR и создают новый дайджест . Эта схема используется в Whirlpool для создания хеш-функции. Результат суммирования определяется уравнением :

Примечания

  1. .
  2. , pp. 37—38.
  3. , p. 30.
  4. , p. 60.
  5. , pp. 106—108.
  6. , pp. 106—107.
  7. , p. 65.
  8. , pp. 66—67.
  9. , pp. 60—61.
  10. , pp. 474—490.
  11. , p. 61.
  12. , p. 375.
  13. , pp. 88—90.
  14. , pp. 61—62.
  15. , p. 62.

Литература

Книги

  • Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone. Chapter 9 // . — 5-e изд. — August 2001. — С. 328.
  • Брюс Шнайер. Прикладная криптография. — 2-e изд. — 2006. — С. 37—38. — 610 с.
  • В.В.Ященко. Введение в криптографию. — 1999. — С. 30. — 271 с.
  • С.Баричев, Р.Серов. Основы современной криптографии. — Москва, 2001. — С. 106—108. — 122 с.
  • С.В.Дубров. . — Новосибирск, 2012. — С. 65—67. — 260 с.
  • John Kelsey and Bruce Schneier. Second preimages on n-bit hash functions for much less than 2n work. — 2005. — С. 474–490.
  • R. Winternitz. A secure one-way hash function built from DES. — IEEE Press, 1984. — С. 88—90.

Научные статьи

  • Авезова Яна Эдуардовна. . — Москва, 2015.
  • А. В. Антонов. [www.hups.mil.gov.ua/periodic-app/article/1988/soivt_2012_2_23.pdf Развитие метода построения хеш-функции]. — Харьков, 2012.
Источник —

Same as Односторонняя функция сжатия