Односторонняя функция сжатияОдносторонняя функция сжатия в криптографии — функция, которая образует значение длиной на выходе при задании двух входных значений длиной [1]. Одностороннее преобразование означает, что легко вычислить значение хеш-функции по прообразу, но трудно создать прообраз, значение хеш-функции которого равно заданной величине[2][3]. ![]() Односторонняя функция сжатия используется, например, в структуре Меркла — Дамгора внутри криптографических хеш-функций. Односторонние функции сжатия часто построены из блочных шифров. Для того, чтобы превратить любой стандартный блочный шифр в одностороннюю функцию сжатия существуют схемы Дэвиса — Мейера, Матиса — Мейера — Осеаса, Миагути — Пренеля (функции сжатия одноблочной длины)[4]. Функция сжатияФункции сжатия представляют собой функции, которые получают на вход строку переменной длины и преобразуют её в строку фиксированной, обычно меньшей, длины. Например, если вход А имеет длину в 128 бит, вход B в 128 бит, и они сжаты вместе в один выход в 128 бит. Это то же самое, как если бы один-единственный 256-битовый вход сжимался вместе в один выход в 128 бит. Некоторые функции сжатия имеют различный размер двух входов, но выход, как правило, имеет такой же размер, как и один из входов. Например, вход А может быть 256 бит, вход B 128 бит, и они сжаты вместе с одним выходом в 128 бит. То есть, в общей сложности 384 входных битов сжимаются вместе до 128 выходных битов.[5] Таким образом, смешивание выполняется за счет достижения лавинного эффекта.То есть, каждый выходной бит зависит от каждого входного бита.[6] Односторонняя функцияФункция сжатия в одну сторону должна обладать следующими свойствами:
Сведём задачу криптоанализа хеш-функций к задаче поиска коллизии: сколько сообщений надо просмотреть, чтобы найти сообщения с двумя одинаковыми хешами. Вероятность встретить одинаковые хеши для сообщений из двух разных наборов, содержащих и текстов, равна . Если , то вероятность успеха атаки , а сложность проведения атаки операций. Чтобы найти коллизию, надо сгенерировать два псевдослучайных множества сообщений (в каждом множестве сообщений) и найти для них хеши. Тогда, согласно парадоксу дней рождения (см. также атака «дней рождения»), вероятность того, что среди них найдется пара сообщений с одинаковыми хешами, больше 0,5. Атака требует большого объёма памяти для хранения текстов и эффективных методов сортировки.[8] Структура Меркла — Дамгора![]() Суть конструкции заключается в итеративном процессе последовательных преобразований, когда на вход каждой итерации поступает блок исходного текста и выход предыдущей итерации[9]. Наиболее широко используются хеш-функции, основанные на этой конструкции в MD5, SHA-1 и SHA-2. Хеш-функция должна преобразовывать входное сообщение произвольной длины в выходное фиксированной длины. Это может быть достигнуто путём разбиения входного сообщения на ряд одинаковых по размеру блоков, и их последовательной обработки односторонней функцией сжатия. Функция сжатия может быть либо специально разработана для хеширования, либо представлять собой функцию блочного шифрования. Атака нахождения второго прообраза (учитывая сообщение , злоумышленник находит ещё одно сообщение , чтобы удовлетворить ) может быть выполнена в соответствии с Килси и Шнайером, для сообщения из 2k блоков может быть выполнена за время k × 2n/2+1 + 2n-k+1. Важно отметить, если сообщения длинные, то сложность атаки находится между 2n/2 и 2n, а когда длина сообщения становится меньше, сложность приближается к 2n.[10] Роль функции сжатия может осуществлять любой блочный шифр E. Данная идея легла в основу развития конструкции Меркла — Дамгора в схемах Дэвиса — Мейера, Матиса — Мейера — Осеаса, Миагути — Пренеля[11]. Структура Дэвиса — Мейера![]() В данной схеме блок сообщения и предыдущее значение хеш-функции поступают в качестве ключа и блока открытого текста соответственно на вход блочного шифра . Получившийся в результате шифрования блок закрытого текста суммируется (операция XOR) с результатом предыдущей итерации хеширования () для получения следующего значения хеш-функции ().[11] В математических обозначениях схему Дэвиса — Мейера можно записать как: Если блочный шифр использует, например, 256-битный ключ, то каждый блок сообщений () представляет собой 256-битный фрагмент сообщения. Если же блочный шифр использует размер блока в 128 бит, то входные и выходные значения хеш-функции в каждом раунде составляют 128 бит. Важным свойством конструкции Дэвиса — Мейера является то, что даже если базовый блок шифрования является полностью безопасным, можно вычислить неподвижные точки для построения: для любого можно найти значение такое что : просто нужно установить .[12] Безопасность структуры Дэвиса — Мейера была впервые доказана Винтерницом[13]. Структура Матиса — Мейера — Осеаса![]() Это версия схемы Девиса — Мейера: блоки сообщения применяются как ключи криптосистемы. Схема может быть использована, если блоки данных и ключ шифрования имеют один и тот же размер. Например, AES хорошо подходит для этой цели. В данной конструкции блок сообщения и предыдущее значение хеш-функции поступают в качестве ключа и блока открытого текста соответственно на вход блочного шифра . Но уже значение подвергается предварительной обработке функцией из-за возможных различий в размерах хеш-суммы и размере ключа шифра . Эта функция реализует отображение n-битного значения хеш- функции в k-битный ключ шифра . В результате применения операции шифрования, получается блок закрытого текста, который суммируется с соответствующим ему блоком открытого текста ().[14] В математических обозначениях схему Матиса — Мейера — Осеаса можно записать как: Структура Миагути — Пренеля![]() Схема Миагути — Пренеля — расширенная версия схемы Матиса — Мейера — Осеаса. Отличие в том, что блок закрытого текста суммируется не только с соответствующим ему блоком открытого текста (), но и с результатом предыдущей итерации хеширования (). Чтобы сделать алгоритм более устойчивым к атаке, исходный текст, ключ шифра и зашифрованный текст складываются с помощью операции XOR и создают новый дайджест. Эта схема используется в Whirlpool для создания хеш-функции. Результат суммирования определяется уравнением[15]: Примечания
ЛитератураКниги
Научные статьи
|
Portal di Ensiklopedia Dunia