Шабаль
Shabal — это криптографическая хеш-функция, представленная финансируемым Францией исследовательским проектом Saphir на международный конкурс NIST по хеш-функциям .
Партнеры Сапфира [ править ]
Исследовательские партнеры Saphir (за исключением LIENS) инициировали концепцию Shabal, а позже к ним присоединились партнеры исследовательского проекта Saphir2, которые активно внесли свой вклад в окончательный дизайн Shabal. Saphir (Безопасность и анализ хэш-примитивов) — это проект хэш-функций, финансируемый ANR. Saphir стартовал в марте 2006 года и продлился три года и объединил пять партнеров: Cryptolog International, DCSSI, France Telecom (лидер), Gemalto и LIENS. Партнеры Saphir2 представляют как промышленные, так и научные круги; Помимо партнеров Saphir, к проекту присоединились и внесли свой вклад еще 4 новых партнера: EADS SN, INRIA, Sagem Sécurité и UVSQ. [1]
История [ править ]
Shabal был участником конкурса хеш-функций NIST, где прошел во второй раунд, но не смог выйти в финальный раунд. Шабаль не был выбран в качестве финалиста главным образом из соображений безопасности. Хотя безопасность алгоритма полного хэширования не была скомпрометирована, обнаружение свойств неслучайности с низкой временной сложностью вызвало обеспокоенность среди криптографов NIST по поводу возможности более мощных атак в будущем. [2]
Название алгоритма было выбрано как дань уважения Себастьену Шабалю . [1]
Описание [ править ]
Шабал использует режим работы, который можно рассматривать как вариант хэш-конструкции Меркла-Дамгорда с широкой трубой. Внутреннее состояние Shabal состоит из трех частей, обозначаемых как A, B и C. Ключевая перестановка Shabal обновляет A и B с использованием регистров сдвига с нелинейной обратной связью, которые взаимодействуют друг с другом. Основной цикл перестановки использует модульное умножение на три и пять, модульное сложение, исключающее ИЛИ, дополнение и операции И.
Режим цепочки Shabal работает следующим образом:(А, В) ← PM,C
(А, В, С) ← (А, С – М, В),
(А ⊕ W, В + М),
где M — блок сообщения, а W — счетчик. После обработки всех блоков сообщений применяются три раунда финализации, в которых фиксируются значения блока сообщения и счетчика. Для Shabal определены два настраиваемых параметра (p, r), где p — количество циклов, выполняемых в рамках ключевой перестановки, а r — размер A. Значение по умолчанию (p, r) — (3, 12). Кроме того, p и r должны удовлетворять условию 16p ≡ 0 mod r. Одна и та же внутренняя функция используется для всех выходных размеров Shabal. [2]
Выходные размеры Shabal [ править ]
Выходные размеры Shabal в зависимости от длины дайджеста:
- Шабал-192
- Шабал-224
- Шабал-256
- Шабал-384
- Шабал-512 [1]
Шабала Результаты
Пример хэшей Шабала:
- Шабал-192: CB6E700F CE4DCF97 D2BBBF00 0C5364FB B40C8732 0D733948
- Шабал-224: 14A6DD99 E8D207F9 F7187681 326F6930 8BCAAE00 25F4855F 3120BA43
- Шабал-256: C0088FDA 9ABA672A 79D0BD56 07AE488E 095E2114 06855B3B 1877A349 A2543F99
- Шабал-384: 3312DE9D DA850D91 03785C3A C611B112 5D1BCAFC 033755D2 3B8EE05E 15251E4E 636A724F F0A8E584 4AABEAAF 122FC0C4
- Шабал-512: C6168015 0A3F1FC8 688DD952 8E9E2FED 23EF9578 BCE2A7CB A5D80961 E6C9E632 9701A5A6 F037B89F 20C6C44E DC7931E7 2BB5AB82 B3ADCD32 9CE25056 22305E98 [1]
Безопасность [ править ]
- Для перестановки Шабала были предложены различные отличительные черты. С помощью тестеров кубов было описано статистическое свойство неслучайности ключевой перестановки Шабала с временной сложностью 2. 300 . [3]
- Вращательный различитель ключевой перестановки Шабала с использованием 2 171 звонки были представлены. Отличитель основан на наблюдении, что большинство операций в P сохраняют ротационные отношения между входными данными. Однако атаку нельзя распространить на алгоритм хеширования из-за несимметричного IV, добавления счетчика блоков и существования раундов финализации. [4] [5]
- Был представлен еще один различитель, основанный на наблюдении, что умножение на три сохраняет разницу в старшем бите с вероятностью единица. Используя это наблюдение, авторы представили метод поиска полуэквивалентных ключей для ключевой перестановки. В рамках модели связанного ключа авторы также представили метод, который отличает P от случайной перестановки с помощью одного запроса. Метод можно обобщить на любой параметр безопасности. Авторы также представили метод поиска псевдоколлизий и псевдосекунд-прообразов для варианта Шабала, в котором количество итераций при финализации составляет 24N (N ≥ 2), вместо 36. Однако эта атака не работает для оригинальный Шабал, так как при числе итераций 36 свести на нет различия невозможно. [6]
- Для ключевой перестановки P были показаны некоторые свойства неслучайности, которые легко проверить. Авторы предложили простой метод поиска фиксированных точек в P. Входные данные перестановки были выбраны так, чтобы на них не влияли циклы перестановки. Метод не зависит от количества слов в A и количества раундов; следовательно, метод работает при любом выборе настраиваемых параметров безопасности. Авторы также показали способ создания множества крупных мультиколлизий, где единственная разница заключается во вводе ключа. [2]
- Отличитель был представлен для некоторых смещенных выходных битов с использованием дифференциального анализа с 2 23 сложность данных. [7]
- Атака псевдоколлизиями с малым весом (45 бит) на функцию сжатия Шабала с временной сложностью 2. 84 был представлен. Атака прообраза с 2 497 время и 2 400 сложность памяти для Шабал 512 с использованием параметров безопасности (2, 12). [8]
- Ни один из различителей напрямую не угрожает заявленной безопасности алгоритма хеширования. Более того, разработчики модифицировали доказательство безопасности безразличия в своем режиме цепочки, чтобы потребовать более слабых предположений, чем идеальные шифры. [2]
Реализации [ править ]
- Хэш-библиотека CodePlex (C)
- MetaCPAN - Дайджест-Shabal-0.05 (C, Perl)
- Бурсткоин (Ява)
- crates.io - шабал (Rust)
Ссылки [ править ]
- ↑ Перейти обратно: Перейти обратно: а б с д Брессон, Эммануэль; Клавье, Кристоф; Фур, Томас; Икарт, Томас; Мисарский, Жан-Франсуа; Ная-Пласенсия, Мария; Рейнхард, Жан-Рене; Тюйе, Селин; Видео, Мэрион (28 октября 2008 г.). «Шабал, заявка на конкурс алгоритмов криптографического хеширования NIST» (PDF) : 2–3, 20, 22, 32–35.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ↑ Перейти обратно: Перейти обратно: а б с д Межведомственный отчет NIST 7764 (февраль 2011 г.). «Отчет о состоянии второго раунда конкурса алгоритмов криптографического хеширования SHA-3» (PDF) : 20–21.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) CS1 maint: числовые имена: список авторов ( ссылка ) - ^ Омассон, Жан-Филипп. «О псевдослучайности ключевой перестановки Шабала» (PDF) . Проверено 14 ноября 2018 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Ван Аш, Жиль (24 марта 2010 г.). «Вращательный различитель ключевой перестановки Шабала и его влияние на доказательства безопасности» (PDF) .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Аэртс, Нике (август 2011 г.). «Криптоанализ хэш-функций, в частности претендентов на SHA-3 Шабал и Блейк» (PDF) : 56–57.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Омассон, Жан-Филипп; Машатан, Атефе; Мейер, Вилли. «Подробнее о перестановке Шабала» (PDF) . Проверено 14 ноября 2018 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Новотни, Питер (20 июля 2010 г.). «Различитель функции перестановки Шабала» (PDF) .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Исобе, Таканори; Шираи, Тайдзо. «Легкая атака псевдостолкновением на Шабал и атака прообразом на уменьшенный Шабал-512» (PDF) . Проверено 14 ноября 2018 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь )