Что такое хэш-функция SHA-3?
SHA-3 (Secure Hash Algorithm 3) - последний член семейства стандартов Secure Hash Algorithm, выпущен NIST 5 августа 2015 года. Хотя SHA-3 является частью той же серии стандартов, он внутренне отличается от MD5-подобной структуры SHA-1 и SHA-2.
SHA- 3 - это подмножество более широкого семейства криптографических примитивов Keccak, разработанное Гвидо Бертони, Джоан Дэемен, Микаэль Петерс и Жиль Ван Аше на основе RadioGatún. Авторы Keccak предложили дополнительные варианты использования функции, не стандартизированной (пока) NIST, в том числе потоковый шифр, аутентифицированную систему шифрования, схему хэширования «tree» для более быстрого хеширования на определенных архитектурах и шифры AEAD Keyak и Ketje.
Keccak основан на новом подходе, который называется «sponge construction». Sponge construction основана на широкой случайной функции или случайной перестановке и позволяет вводить («absorbing») любое количество данных и выводить («squeezing») любое количество данных, действуя как псевдослучайные функция по отношению ко всем предыдущим входам. Это обеспечивает большую гибкость.
NIST в настоящее время не планирует отменять SHA-2 или удалять его из пересмотренного стандарта Secure Hash Standard. Назначение SHA-3 состоит в том, что он может быть напрямую заменен на SHA-2 в текущих приложениях, если это необходимо, и значительно повысить надежность общего набора инструментов хеш-алгоритма NIST.
Создатели Keccak алгоритмы и функции SHA-3 предлагают использовать более быструю функцию KangarooTwelve с настроенными параметрами и новый режим хеширования дерева без дополнительных накладных расходов для сообщений небольшого размера.