03.10 // Победителем конкурса SHA-3 стал алгоритм KeccaK
После кризиса хэш-функций SHA-1 и потенциального устаревания SHA-2, Национальный Институт Стандартов и Технологий США в 2007 году объявил конкурс на новый безопасный стандарт хэширования SHS SHA-3. Команды криптографов со всего мира предлагали свои варианты и совместно анализировали дизайн разработок, выявляя уязвимости.
Алгоритмы хэширования используются для создания уникальных цифровых отпечатков документов, в качестве элементов цифровых подписей, кодов аутентификации сообщений и как составные элементы многих других протоколов.
2 октября из пяти финалистов (BLAKE, Gr0stl, JH, KECCAK, Skein) был объявлен победитель Keccak (произносится как ketch-ack), разработанный командой авторов:
- Guido Bertoni (Italy) of STMicroelectronics,
- Joan Daemen (Belgium) of STMicroelectronics,
- Michaлl Peeters (Belgium) of NXP Semiconductors,
- Gilles Van Assche (Belgium) of STMicroelectronics.
NIST выбрал KeccaK за множество удивительных качеств, включая элегантный дизайн и возможность эффективной реализации на большом количестве аппаратных платформ. Ясная конструкция KeccaK облегчает проведение его анализа. Алгоритм особенно удачно показывает себя в специализированном исполнении на аппаратных платформах, превосходя в этом плане всех других финалистов и алгоритмы SHA-2.
Эксперт по комьютерной безопасности НИСТ Тим Полк отмечает: "KeccaK имеет преимущество в том, что атаки, рассчитанные против SHA-2 не действуют против него, поскольку эти два алгоритма устроены на совершенно разных принципах".
Полк предполагает, что новые полезные свойства Keccak найдут применение спустя годы, после его принятия. Так, он может быть использован в миниатюрных встраиваемых устройствах, которые не являются полноценными устройствами.
SHA-3 открывает новые возможности перед создателями безопасных протоколов, которых они не имели раньше. И это не пустые слова.
Вслед за экспертами НИСТ следует отметить, что уникальные возможности в универсализации помогают использовать KeccaK в качестве хэш-функции с произвольным размером выхода, в качестве потокового шифра, в качестве функции выработки ключей из пароля, в качестве кодов аутентификации сообщений, в качестве криптостойкого генератора псевдослучайных чисел с подкачкой энтропии из внешнего источника и с затиранием внутреннего состояния, в качестве возможного нового режима дополнения цифровых подписей.
Позднее авторы представили дуплексный режим работы KeccaK — потоковое шифрование с аутентификацией за один проход, что может составить альтернативу использовавшимся ранее блочным шифрам в шифровании пакетной связи.
Благодаря конструкции "Sponge" (губка) — бесключевой перестановки, лежащей в основе алгоритма, открывается масса способов дальнейшей универсализации алгоритма без его изменения. Это потребует более глубокого изучения свойств Sponge-хэшей, пришедших на замену конструкциям Дамгарда-Меркла и их аналогам и окажет стимулирующие влияние как на теоретические, так и на практические направления современной криптографии.
Интересно, что все эти универсальные возможности не являются отдельными нагромождаемыми модулями, как это пытались реализовать в других алгоритмах. Смена режимов использования также не требует каких-либо переключателей предопределённого формата и никак не ухудшает простоту конструкции. На вход могут быть поданы вместе с обрабатываемыми данными и служебные управляющие данные любого формата (например XML), что позволит управлять режимом использования, получая каждый раз новый выход гаммы.
Можно присоединиться к поздравлениям разработчиков этого смелого и достойного алгоритма и пожелать им дальнейших успехов.
Более подробно ознакомиться с новым алгоритмом и посмотреть некоторые предварительные обсуждения можно в статье Хэш-функция Keccak и конструкция Sponge как универсальный криптопримитив.
Источник: Национальный Институт Стандартов и Технологий США
комментариев: 9796 документов: 488 редакций: 5664
"List Decoding of Error-Correcting Codes" © Venkatesan Guruswami.
"List Decoding of Error-Correcting Codes" © Venkatesan Guruswami.
Т.е. специфические атаки (в т.ч. не "алгебраические", а на основе теории кодов), пробивающие много раундов для шифров с раундовой функцией со слабым уровнем алгебраической сложности (к которым принадлежит в т.ч. Keccak), теоретически были давно предсказаны.
"List Decoding of Error-Correcting Codes" © Venkatesan Guruswami.
А вопрос такой: какие конкретно шифры (и как) лучше использовать в каскаде?
комментариев: 9796 документов: 488 редакций: 5664
Видимо так: H = H3 (H2 (H3 (M)))
:)
Что произойдёт при взломе H3 вопрошавшему предлагается подумать самостоятельно. Также как и о том, что противник видит не только выход каждого хэша, но и состояние каждого раунда. В отличие от шифров, в хэшах от противника секретов вообще нет ни в какой разумной модели. Потому их так сложно создавать.
А чтобы не изобретать своих конструкций с ксором и префиксами, предлагается посмотреть в сторону разнохэшевого HMAC, если Гость опять же точно уверен, что это то, что ему нужно.
комментариев: 1515 документов: 44 редакций: 5786
Unknown, спасибо за развёрнутое объяснение, сейчас стало намного понятнее. Тем не менее, я всё-таки поворчу относительно одного места:
Вот концовка предложения мне совсем непонятна, не могу распарсить. Можно придумать 2n разных вариантов прочтения и попыток сопоставить. Например, кусок «которые неуязвимы, а только имеют допуски на неидеальность» может быть отнесён как к «идеальным моделям» или «идеализированным», так и к «неидеальным». Нагоромождение отрицаний с пояснениями часто приводит к невозможности однозначного толкования. Я именно поэтому так обильно употребляю дополнительные слова — без них краткость становится сестрой многозначности. Если не хочется заморачиваться с длинными предложениями, есть простой способ изложения:
Вот и всё.
В криптографии, по ходу, тоже есть разные модели «человечности»: например, безопасность энтропийная и безопасность семантическая. Впрочем, всякие вещи типа детерминистичного шифрования, для которых эти понятия вводится, думаю, несколько маргинальны.
Сейчас ваше изложение совершенно прозрачно, понятно и, более того, вполне соответствует картинке в голове, которая у меня была. В криптографии это называют ε-безопасностью или ε-идеальностью — совершенно естественные понятия, возникающие много где в математике. Абсолютно идеальная вещь — это случай ε → 0. Для некоторых криптопримитивов действительно показано, что их не существует при ε = 0. Эти определения/понятия возникают в условиях абстрактной теории информации, тут никакой технически нагруженной криптографии не требуется.
Ещё подумалось: если проводить параллели с абстрактной CS, то тут же возникает вопрос:
Такие вопросы глубоки и осмысленны, даже если доказано, что идеальных конструкций не бывает. И осмысленны потому, что лучше позволяют понять иерархию и эквивалентность проблем, упрощают доказательства и т.д. В QCS таким активно пользуются.
Я считаю, что в FAQ криптография очень хорошо описана, а копать глубже и глубже можно всегда. FAQ на то и FAQ, чтобы дать общее понимание ключевых слов/понятий/терминов, но не более того. Иногда для упрощения изложения даже приходится явно произносить неверные вещи и тут же оговаривать, что они неверные, но «здесь упрощено чисто для иллюстрации».
Вот невозможность сделать идеальный ГПСЧ интуитивно кажется совершенно естественным фактом теории, в отличие от невозможности создать идеальный хэш/ICM и т.п. конструкции.
Наткнулся на февральское интервью с Жилем:
Несколько дней назад пришёл бумажный спам — какой-то Magazine местной политехнической школы. Внутри было обнаружено вот это. :)
P.S. Раз тема про хэши, задам ещё один вопрос. Здесь пишут, что
Т.е. имеем 3 типа уязвимости. Есть ли иерархия между ними? Т.е. следует ли одна уязвимость из другой, или в общем случае все они совершенно независимы?* Какая из них намного проще всего ищется, и какая сложнее всего? Или это почти всегда зависит от типа хэша?
> А вдруг они раздают персонализированные копии файлов в целях traitor tracing?
Пароль один для всех, причём он был разослан через полупубличную рассылку, что несколько затрудняет traitor tracing. :)
*Существуют ли примеры того, когда нахождение одного типа уязвимости ничуть не упрощает нахождение другого?
комментариев: 9796 документов: 488 редакций: 5664
Я так и хотел. Но из-за нехватки времени не только на написание, но даже на обдумывание, чтобы разложить нетривиальный вопрос по полочкам и свериться с источниками, часто приходиться излагать очень некачественно (несвязно, не разделяя на пункты, не вычленяя логические узлы и не строя связи между ними, а запихивать всё в конструкцию со скобками).
Не знаю точно строгой терминологии потому что. Подозреваю, что не только я лично в ней плаваю, но она у разных авторов и школ разная и необщепринятая. Из ε-идеальных раундовых функций можно строить сколь-угодно близкое экспоненциальное приближение к ε → 0, но не достигая при этом "абсолютного" нуля, это тривиальный вывод. На более глубоком уровне окажется, что ε-безопасности не существует. Она сама хоть и ε-неидеальна, но лишь идеализирована. Никакого строго доказуемого ε для вычислительных конструкций не существует.
Есть пересчёты ICM-ROM, есть сравнительно тривиальная PRP/PRF switcing lemma. Во многих случаях считается, что если доказана стойкость в одной идеальной модели, то это означает и стойкость в другой идеальной модели. Но строго этот вопрос вроде не решён, поэтому для одного и того же, бывает, публикуют дублирующие доказательства в разных моделях. Страховка ли это от ошибки? От неидеальности? От фундаментальной теоретической непроработанности некоторых вопросов? Не знаю. Не знаю и полной теории "всего" на основе идеализированных моделей. Доказуемая безопасность пытается это сделать, сводя всё к случайному оракулу, но есть всё ещё достаточно места для неполноты, оговорок, недоговорок.
Там, то ли у той же Андреевой, то ли у кого-то на слайдах были более глубокие схемы, где свойств больше, чем эти три известных пункта. Эти три пункта достаточно знать только студентам и практикам. А в теории разработано больше свойств и на каких-то слайдах была представлена иерархия в виде графа, причём несколько классификаций разных авторов. Где-то и в работах мне это попадалось. Единая классификация не выработана.
Существует. Существуют даже хэши, которые стойкие к двум качествам, но нестойкие коллизионно. Их ещё и специально разрабатывают для специфических приложений, в т.ч. для аутентификации в системах с информационно-теоретической стойкостью, тех же квантовых каналах.
Сложнее всего доказать коллизионную стойкость и соответственно, легче всего её найти (атаку на это свойство конструкции хэша).
комментариев: 1515 документов: 44 редакций: 5786
Понятно. Спасибо, не знал.
P.S.: Вообще, получилось глубокое и интересное обсуждение (спасибо unknown'у за разъяснение основ ещё раз), которое, по-видимому, можно подытожить так:
> приходится ... запихивать всё в конструкцию со скобками
Могу обучить использованию сносок. Когда-то мне SATtva
устроил мастеркласспоказал пример их использования в собственных комментариях.комментариев: 9796 документов: 488 редакций: 5664
комментариев: 11558 документов: 1036 редакций: 4118
комментариев: 9796 документов: 488 редакций: 5664
Они офигели?
здесь.
У меня к сожалению эти гуглослайды не отображаются, где пэдээфку можно скачать?ПэдээфкаНа последнем раунде конкурса наоборот число самих раундов в Keccak было увеличено из-за гипотетических атак нахождения различителя с нулевой суммой. Когда это успели откатить назад или что ещё сделали у Шнайера подробностей нет.
комментариев: 1060 документов: 16 редакций: 32
https://mega.co.nz/#!p4hinB6T!.....XOrt2p-FvIeda4ssB6Mc
комментариев: 9796 документов: 488 редакций: 5664