Конкурс на алгоритм хеширования SHA-3
Анализ требований к проектированию алгоритмов-конкурсантов по формированию хеш-кода. Уровень защиты от криптографических атак - основной критерий отбора кандидатов конкурса на американский стандарт SHA-3. Характеристики алгоритмов хеширования кандидатов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 29.06.2018 |
Размер файла | 28,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.Allbest.ru/
Харьковский национальный экономический университет
Конкурс на алгоритм хеширования SHA-3
Евсеев С.П., к.т.н., доцент
Король О.Г., преподаватель
Куницина Е.А., студентка
Постановка проблемы в общем виде и анализ литературы
Рост вычислительных возможностей и использование электронных документов в банковских системах выдвигает новые требования по надежности и оперативности передаваемой и обрабатываемой информации. Отличием обрабатываемых данных в внутриплатежных банковских системах от компьютерных систем является обязательное использование в транзакциях электронной цифровой подписи (ЦП) - блока данных небольшого размера, полученного в результате криптографического преобразования сообщения произвольной длины с использованием личного секретного ключа отправителя [1]. ЦП обеспечивающая аутентичность сообщения и неоспоримость использования данного секретного ключа состоит из 2-х процедур: генерации ключей и формирования хеш-кода, при этом львиную долю при оценке производительности составляет алгоритм формирования хеш-кода. Исследования [1, 2] используемых в современных системах защиты стандартов ЦП показали, что большинство наиболее распространённых алгоритмов формирования хеш-кодов устарели и не обеспечивают требуемой криптостойкости и производительности, в то время как новые алгоритмы требуют тщательного исследования и стандартизации [1, 2].
Целью статьи является анализ основных требований к проектированию алгоритмов-конкурсантов по формированию хеш-кода, отобранных во второй тур конкурса на американский стандарт SHA-3.
Анализ требований конкурса SHA-3. Основные требования, выдвигаемые Национальным институтом стандартов и технологий США (NIST) к алгоритмам-конкурсантам предполагают создание класса хэш-функций потенциально стойких к атакам, нацеленным на SHA-2, а также сохранение или увеличение эффективности хеширования по сравнению с SHA-2 [3].
Алгоритм-победитель конкурса SHA-3 должен поддерживать размер выходного блока 224, 256, 384 и 512 битов. Использование дайджестов хеш-кодов длиною 160-бит не допускаются из-за возможности нахождения коллизий атаками грубой силы (полного перебора всех вариантов). При проведении конкурса сохраняются те же требования, что и к предыдущим хэш-функциям: максимальный размер входного значения, размер выходного значения, коллизионная стойкость, стойкость к нахождению прообраза и второго прообраза, потоковый режим вычисления “за один проход” [3].
Алгоритмы функций вычисления для разного размера блоков должны быть идентичны и иметь минимум отличий в реализации. Использования абсолютно разных наборов алгоритмов для получения четырёх фиксированных значений длины выхода не допускается [3].
Кроме этого, выдвигаются требования по усовершенствованию существующих алгоритмов работы хэш-функций: возможно включение опции рандомизированного хеширования, улучшенное распараллеливание, оптимальная работа на множестве современных платформ (включая как 64-битные процессоры, так и 8-битные процессоры, а также смарт-карты) [3].
Руководители конкурса допускают использование параметризации в алгоритмах-конкурсантах - изменение параметров числа раундов с учётом допустимых пределов “эффективности в обмен на безопасность”. Хотя в стандарт такая возможность не будет включена.
В хэш-функции класса SHA-3 могут быть встроены процедуры согласования для вычисления кодов аутентификации сообщений (HMAC): например, передача в качестве одного из входных параметров длины блока входного сообщения, если она заранее точно известна. Значение всех встроенных параметров и констант должны быть сконструированы таким образом, чтобы не дать возможности встраивания лазеек и отмычек со стороны разработчиков, для чего должны быть приведены соответствующие доказательства и процедуры проверки [3].
Проведенный анализ специфических требований к стойкости показал, что основным требованием является обеспечение теоретических пределов стойкости (в реальности они могут быть немного меньше) на размер выходного блока в n бит и составлять:
в конструкциях кодов аутентификации сообщений (HMAC) и псевдослучайных функций (PRF) стойкость по числу запросов должна быть не менее 2 (n/2) бит против атак-различителей;
стойкость рандомизированного хеширования против атаки нахождения H(M1, r1) = H(M2, r2) - не менее n бит, при условии, что значение рандомизатора r1 не контролируется атакующим.
Стандартные и дополнительные параметры стойкости:
- стойкость к нахождению коллизий - не менее n/2 бит;
- стойкость к нахождению прообраза - n бит;
- стойкость к нахождению второго прообраза - n - k битов для любого сообщения, короче 2k битов;
- устойчивость к атакам на изменение длины сообщения;
- подмножество хеш-функций (например, полученное усечением числа битов выхода) размером m битов должно сохранять свойства n-битного множества в пересчёте на m, с учётом статистических (неотличимых от случайных) отклонений. Не должно существовать атаки на быстрое нахождение малостойких подмножеств хеш-функции из исходного множества n;
- устойчивость к новым типам атак, например, на основе мультиколлизий.
Анализ алгоритмов, принимавших участие в 1 раунде конкурса. Национальным институтом стандартов и технологий США 31 октября 2008 года был проведен первый раунд конкурса SHA-3, в таблице 1 приведены основные характеристики алгоритмов хеширования, представленные на конкурс.
Таблица 1
Характеристики алгоритмов хеширования кандидатов 1 раунда конкурса
Название алгоритма |
Платформы |
Стойкость алгоритма |
Быстродействие |
|
Abacus |
8, 32, 64 |
Стойкий к нахождению прообразов |
Быстрый |
|
ARIRANG |
8, 32, 64 |
Стойкий ко всем видам атак |
Недостаточно быстрый |
|
AURORA |
64 |
Приемлемая |
Приемлемое |
|
BLAKE |
8, 32, 64 |
является достаточно стойким |
||
Blender |
8, 32, 64 |
Стойкий ко всем атакам |
Приемлемое |
|
Blue Midnight Wish |
8, 32, 64 |
неустойчив к псевдоатакам - коллизиям и 2м прообразам |
||
BOOLE |
16, 32, 64 |
Приемлемая |
Наиболее быстрая версия 64 |
|
Cheetah |
Ограниченное число платформ |
Недостаточно стойкий |
Недостаточно быстрый |
|
CHI |
32, 64 |
Оставляет желать лучшего |
Приемлемое |
|
CRUNCH |
8, 32, 64 |
Стойкость к коллизионным атакам и прообразам |
Быстрый |
|
CubeHash |
8, 32, 64 |
|||
DCH |
8, 32, 64 |
Быстрый |
||
Dynamic SHA |
32, 64 |
Стойкий ко всем видам атак |
||
Dynamic SHA2 |
32, 64 |
Стойкий ко всем видам атак |
||
ECHO |
32, 64 |
Стойкий ко всем видам атак |
Приемлемое |
|
ECOH |
32, 64 |
Стойкий ко всем видам атак |
Приемлемое |
|
EDON-R |
32, 64 |
Быстрый |
||
EnRUPT |
32, 64 |
Слишком прост, чтобы быть стойким |
Среднее |
|
ESSENCE |
32, 64 |
Приемлемая |
Приемлемое |
|
FSB |
8, 32, 64 |
Стойкость к коллизионным атакам |
Быстрый |
|
Fugue |
32, 64 |
|||
Grцstl |
Неустойчив к атакам “полусвободное начало” |
Недостаточно быстрый |
||
Hamsi |
32, 64 |
низкая алгебраическая степень в выводах функции сжатия |
||
JH |
8, 32, 64 |
Приемлемая стойкость |
Приемлемое |
|
Keccak |
32, 64 |
число раундов, необходимое для защиты от атак - 18 |
12,5 циклов на байт |
|
Khichidi-1 |
32, 64 |
Стойкий ко всем видам атак |
Быстрый |
|
LANE |
Ограниченное число платформ |
Приемлемая |
Оставляет желать лучшего |
|
Lesamnta |
64 |
Относительно стойкий |
Приемлемое |
|
Luffa |
8, 32, 64 |
Стойкость к нахождению прообразов |
Приемлемое |
|
LUX |
Ограниченное число платформ |
Стойкий |
Приемлемое |
|
MCSSHA-3 |
32, 64 |
Стойкий |
Приемлемое |
|
MD6 |
Устойчив к дифференциальному криптоанализу |
|||
MeshHash |
8, 32, 64 |
Нестойкий к мультиколлизионным атакам |
Приемлемое |
|
NaSHA |
8, 16, 32, 64 |
Приемлемая |
Приемлемое |
|
SANDstorm |
32, 64 |
Стойкий ко всем видам атак |
Максимальное |
|
Sarmal |
32, 64 |
|||
Sgаil |
64 |
Приемлемая |
Низкое |
|
Shabal |
32, 64 |
Стойкий ко всем видам атак |
Один из самых быстрых |
|
SHAMATA |
8, 32, 64 |
Стойкий ко всем видам атак |
Среднее |
|
SHAvite-3 |
32, 64 |
Нестойкий к нахождению псевдо-прообразов |
||
SIMD |
32, 64 |
Приемлемая |
Приемлемое |
|
Skein |
8, 32, 64 |
Защищен от атак - подбора удлинённых сообщений и псевдоколлизий |
Наиболее быстрая версия 64 |
|
Spectral Hash |
8, 32, 64 |
Устойчив к нахождению прообразов, дифференциальным атакам |
Очень низкое |
|
StreamHash |
8, 32 |
Стойкий ко всем видам атак |
Приемлемое |
|
SWIFFTX |
32, 64 |
Устойчив к коллизионным атакам и нахождению прообразов |
Быстрый |
|
Tangle |
8, 32, 64 |
Приемлемая |
Быстрый |
|
TIB3 |
32, 64 |
Устойчив к коллизионным атакам |
Сбалансировано со стойкостью |
|
Twister |
8, 32, 64 |
Полностью устойчив к мульти-коллизионным атакам |
Быстрый |
|
Vortex |
Ограниченное число платформ |
Приемлемая |
Оставляет желать лучшего |
|
WaMM |
32, 64 |
Устойчив к линейному криптоанализу |
Быстрый |
|
Waterfall |
32, 64 |
Устойчив к атакам прообразов, коллизионным атакам |
Приемлемое |
Анализ таблицы 1 показывает, что основное внимание разработчиков алгоритмов-конкурсантов было направлено на выполнение основных требований по производительности и возможности оптимальной работы алгоритма при его реализации на множестве современных платформ. Вместе с тем, руководители конкурса при отборе алгоритмов-кандидатов во второй тур обратили внимание на стойкость данных алгоритмов к различным видам атак. алгоритм хеширование защита криптографический атака
Анализ кандидатов, прошедших во 2 раунд. Во 2 раунд были отобраны алгоритмы хеширования, в которых не была затронута каким-либо образом безопасность. В некоторых случаях, представленный вариант был слишком медленным или требовал слишком много памяти, но NIST считает, что в некоторых случаях, настраиваемые параметры могут быть откорректированы, чтобы дать приемлемый уровень производительности без ущерба для безопасности [3].
Краткие характеристики кандидатов, отобранных на 2 тур, представлены в таблице 2.
Таблица 2
Характеристики хеш алгоритмов-кандидатов на 2 тур конкурса SHA-3
Название алгоритма |
Описание алгоритма |
Инновационные части |
|
BLAKE |
Алгоритм сжатия, функция которого основана на использовании ключевой подстановки в конструкции Davies-Meyer. Ключевая подстановка основана на внутренней организации потокового шифра ChaCha. Получил свою нелинейность с наложением модульного сложения и операций XOR |
Ключевая подстановка |
|
Blue Midnight WISH |
Ширококанальная конструкция хеш Merkle-Damgard с нетрадиционной функцией сжатия, где нелинейность получена наложением модульного суммирования и операций XOR. |
Конструкция функции сжатия, подстановок |
|
CubeHash |
В основе лежит конструкция “sponge”, а также фиксированная подстановка. Подстановка чрезвычайно проста и элегантна, использует только дополнения, XOR, и итерации в фиксированном блоке. Вся нелинейность в алгоритме хеширования получена наложением модульных дополнений и операций XOR |
Фиксированная подстановка |
|
ECHO |
Ширококанальная конструкция, функция сжатия использует ключевую подстановку, счетчик и “salt” в качестве ключей, а сообщения и последовательные значения - в качестве вводов в подстановке. Подстановка использует 2048-битовое блоки AES - как S-бокс шифра AES. S-бокс и обеспечивает всю нелинейность в этом алгоритме хеширования. |
Ключевая подстановка |
|
Fugue |
Вариант конструкции “sponge”, функция сжатия основана на нелинейном регистре сдвига. Регистр сдвига включает усиленный вариант AES-функции; все другие операции линейны. Таким образом, вся нелинейность в этом алгоритме основана на S-боксе AES. |
Функция сжатия |
|
Grоst l |
Ширококанальная конструкция хеш Merkle-Damgеrd. Его функция сжатия использует два S-бокса AES как блоки-подстановки. Вся нелинейность в алгоритме получена на основе S-бокса AES. |
Конструкция функции сжатия |
|
Hamsi |
Конструкция хеш Merkle-Damgеrd. Функция сжатия создана на блоке-подстановке; сообщение расширено, используя код с обнаружением ошибок, чтобы заполнить половину входного блока до блока-подстановки с другой половиной, заполненной значением сцепления хеш. Вся нелинейность в алгоритме получена из одного S-бокса. |
Конструкция функции сжатия |
|
JH |
Использует новую конструкцию, несколько напоминающую конструкцию “sponge” для встраивания алгоритма хеш в блок-подстановку. Блок-подстановка - комбинация из двух 4-битовых S-бокса с рядом линейных операций смешивания и разрядных подстановок. Вся нелинейность в этом дизайне получена из S-боксов. |
Конструкция функции сжатия |
|
Keccak |
Использует конструкцию “sponge” и блок-подстановку. Подстановка может быть реализована на основе 5-битовых S-блоков или на комбинации линейной и нелинейной операциях смешивания. |
Конструкция подстановки |
|
Luffa |
Вариант конструкции “sponge”, использующий линейную операцию смешивания и несколько 256-битовых блоков-подстановок вместо одной нелинейной подстановки. Блоки-подстановки комбинируют линейные операции смешивания с единственным 4-битовым S-боксом, и этот S-бокс обеспечивает всю нелинейность в алгоритме. |
Конструкция “sponge” |
|
Shabal |
Использует новый последовательный режим, как вариант ширококанальной конструкции хеш Merkle-Damgard. Его функция сжатия основана на конструкции регистра сдвига с обратной связью, которая комбинирует несколько вводов, эффективно обеспеченных последовательным режимом. Нелинейность получена наложением XOR, модульного суммирования, и поразрядных операций AND. |
Функция сжатия |
|
SHAvite-3 |
Алгоритм хеш HAIFA. Функция сжатия - ключевая подстановка, используемая в конструкции Дэвис-Мейера. Ключевая подстановка - сбалансированная сеть Feistel (для 256-битового случая), или пара переплетенных сбалансированных сетей Feistel (для 512-битового случая), с F-функцией, созданной из AES-функции. Вся нелинейность в целой конструкции основана на S-боксе. |
Ключевая подстановка |
|
SIMD |
Ширококанальная конструкция хеш Merkle-Damgard. Функция сжатия создана из ключевой подстановки, в варианте конструкции Дэвис-Мейера. Ключевая подстановка использует линейный код с доказуемыми свойствами распространения, как “ключевой список”, и использует четыре несбалансированные сети Feistel, которые напоминают MD4 и MD5-функции. Нелинейность в этом алгоритме обеспечена наложением модульного суммирования, операций неэквивалентности и поразрядных нелинейных функций. |
Ключевая подстановка |
|
Skein |
Вариант конструкции хеш Merkle-Damgard, основана на блочном шифре в режиме СВС. Функция сжатия используется в варианте конструкции Matyas-Meyer-Oseas. Безопасность конструкции основывается на стойкости БСШ “Threefish”, созданного на основе большого количества простых раундов, и использует только три 64-битовых модульных операции суммирования, поразрядный XOR, и итерацию. Вся нелинейность в алгоритме хеш обеспечена наложением модульного суммирования и операций неэквивалентности. |
Блочный шифр Threefish в режиме СВС |
Предварительное изучение алгоритмов-участников показало, что каждый из них позаимствовал некоторые принципы построения у алгоритма AES для обеспечения стойкости хеш-кодов.
Вывод
Таким образом, главным требованием к алгоритмам-конкурсантам руководители NIST выдвинули безопасность, что и явилось основным критерием отбора кандидатов во 2 раунд. Только 14 алгоритмов из 51 представленных смогли продемонстрировать необходимый уровень защиты от криптографических атак. К основным критериям отбора также относится производительность и возможность работы на большом числе платформ, что также позволило руководителям конкурса “отсеять” несколько кандидатов (алгоритмы Vortex, LUX и т.д.). По заявлению NIST алгоритмы, имеющие уровень производительности сопоставимый или лучше, чем в SHA-2, смогли пройти во 2 раунд. Перспективным направлением дальнейших исследований является анализ статистической стойкости алгоритмов-конкурсантов 2 раунда, их реализация на различных платформах с целью оценки производительности и адаптации их применения в банковских транзакциях документооборота внутриплатежных банковских систем.
Список литературы
1. Информационная технология. Криптографическая защита информации. Цифровая подпись, основанная на эллиптических кривых. Формирование и проверка. ДСТУ 4145 - 2002. - К.: Держстандарт України, 2002. --35 с.
2. NESSIE consortium, “NESSIE Security report.” Deliverable report D20 - NESSIE, 2002. - NES/DOC/ENS/WP5/D20 [Electronic resource]
3. Status Report on the First Round of the SHA-3 Cryptographic Hash Algorithm Competitionhttp Andrew Regenscheid, Ray Perlner, Shu-jen Chang, John Kelsey, Mridul Nandi, Souradyuti Paul. [Електронний ресурс]
Размещено на Allbest.ru
Подобные документы
Изучение классических криптографических алгоритмов моноалфавитной подстановки и перестановки для защиты текстовой информации. Анализ частоты встречаемости символов в тексте для криптоанализа классических шифров. Сущность одноалфавитного метода шифрования.
лабораторная работа [2,8 M], добавлен 25.03.2015Использование хеширования для поиска данных. Хеширование и хеш-таблицы. Способы разрешения конфликтов. Использование средств языка программирования в работе с хеш-таблицами. Описание разработанного приложения. Структура программы. Инструкция пользователя.
курсовая работа [1,1 M], добавлен 19.08.2016Исследование элементов эллиптических кривых, необходимых для реализации криптографических протоколов. Изучение алгоритмов арифметики точек эллиптической кривой и способов генерации кривых для криптографических алгоритмов. Описание алгоритмов шифрования.
курсовая работа [371,2 K], добавлен 07.08.2012Шифрование - широко используемый криптографический метод сохранения конфиденциальности информации. Описание схемы шифрования и расшифрования. Структура алгоритмов на основе сети Фейстеля. Скриншоты работающей программы. Скорость работы алгоритмов.
курсовая работа [545,2 K], добавлен 29.11.2010Обзор криптографических классов библиотеки Framework Class Libr: классы алгоритмов симметричного и асимметричного шифрования, хеширования. Классы-форматеры и деформатеры. Классы для формирования и проверки цифровой подписи. Примеры применения классов.
курсовая работа [30,0 K], добавлен 27.12.2011Открытие конкурса NESSIE на разработку криптографических алгоритмов и на создание методики оценки их безопасности и эффективности. Результаты конкурса: отбор ассиметричных схем шифрования и вариантов цифровой подписи; проблемы их лицензирования.
реферат [44,5 K], добавлен 09.05.2011Трудности использования эволюционных алгоритмов. Построение вычислительных систем, основанных на принципах естественного отбора. Недостатки генетических алгоритмов. Примеры эволюционных алгоритмов. Направления и разделы эволюционного моделирования.
реферат [187,4 K], добавлен 21.01.2014Разработка информационной системы для регистрации постояльцев в гостинице с использованием структур данных и алгоритмов. Методы хеширования и сортировки данных. Обходы бинарных деревьев. Линейный однонаправленный список. Описание и тестирование программы.
курсовая работа [2,3 M], добавлен 09.03.2014Недостаточная длина ключа DES, его ориентированность на аппаратную реализацию. Требования к новому стандарту. Оптимизация по скорости выполнения кода. Алгоритмы пяти участников, прошедших в финал конкурса AES. Схемы входного и выходного перемешивания.
презентация [713,3 K], добавлен 05.11.2013Изучение сути криптографической хеш-функции, которой называется всякая хеш-функция, являющаяся криптостойкой, то есть, удовлетворяющая ряду требований специфичных для криптографических приложений. Преобразования, криптостойкость и применение Whirlpool.
курсовая работа [420,4 K], добавлен 22.06.2011