Конкурс на алгоритм хеширования 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.