Ascon
Шаблон:Карточка блочного шифра
Ascon — семейство блочных шифров, используемых для аутентифицированного шифрования с присоединёнными данными и хеширования. Набор шифров был разработан Кристофом Добраунигом, Марией Айхелзидер, Флорианом Менделем и Мартином Шлаффером. Шифры Ascon-128 и Ascon-128a стали победителями соревнования CAESAR в категории применения в приложениях с ограниченными ресурсамиШаблон:Sfn.
Историческая справка
Семейство шифров Ascon, используемое для аутентифицированного шифрования с присоединёнными данными и хеширования, было разработано Кристофом Добраунигом, Марией Айхелзидер, Флорианом Менделем и Мартином ШлафферомШаблон:Sfn.
Шифры Ascon-128 и Ascon-128a были участниками соревнования CAESAR (2014 - 2019) и стали победителями в категории применения в приложениях с ограниченными ресурсамиШаблон:Sfn.
В августе 2019 года шифры семейства Ascon прошли во второй раунд процесса стандартизации Национального института стандартов и технологий в категории легковесной криптографии (англ. Lightweight Cryptography).[1]
Алгоритмы в семействе Ascon
Аутентифицированное шифрование
Параметры в алгоритмах семейства Ascon, используемых для аутентифицированного шифрованияШаблон:Sfn:
- Размер ключа ( ≤ 160 бит)
- Размер блока данных
- Число , количество раундов перестановок на начальной и завершающей стадиях
- Число , количество раундов перестановок на промежуточных стадиях
Рекомендованы к использованию следующие конфигурации, соответствующие шифрам Ascon-128 и Ascon-128a Шаблон:Sfn.
| Название | Значения параметров | |||
|---|---|---|---|---|
| k | r | a | b | |
| Ascon-128 | 128 бит | 64 бита | 12 | 6 |
| Ascon-128a | 128 бит | 128 бит | 12 | 8 |
Описание алгоритмов: аутентифицированное шифрование
Каждая непосредственная реализация алгоритма, заданная параметрами , , , определяет алгоритмы шифрования E(a, b, k, r) и дешифрования-верификации D(a, b, k, r).
Входные и выходные данные
Алгоритм шифрования E(a, b, k, r)
Входными данными для алгоритма шифрования являютсяШаблон:Sfn:
- исходный текст P
- присоединённые данные A
- секретный ключ K размером k бит
- публичный номер сообщения N
Выходные данные для алгоритма шифрованияШаблон:Sfn:
- Аутентифицированный шифротекст C (такой же длины, как и P)
- Тег аутентификации T
Алгоритм дешифрования-верификации D(a, b, k, r)
Входными данными для алгоритма дешифрования-верификации являютсяШаблон:Sfn:
- ключ K
- одноразовый код N (Nonce)
- шифротекст C
- тег T
Выходными данными являются исходный текст P, если проверка тега была успешной, или (индикатор неуспешности верификации) в случае неуспехаШаблон:Sfn.
Стадии алгоритма
В алгоритмы шифрования и дешифрования входят следующие стадииШаблон:Sfn:
- Инициализация
- Обработка присоединённых данных
- Обработка исходного текста / шифротекста
- Завершающая стадия
Стадия инициализации
Внутреннее состояние в алгоритмах семейства Ascon задаётся 320-битным числом SШаблон:Sfn. На стадии инициализации оно формируется из секретного ключа K из k бит, одноразового кода N из 128 бит, и числа IV, характеризующего алгоритм и формируемого из параметров , , , , записанных 8-битными целыми числамиШаблон:Sfn:
Затем к начальному состоянию S применяется раундов перестановок с последующим XOR со значением секретного ключа KШаблон:Sfn:
Стадия обработки присоединённых данных
При шифровании и дешифровании Ascon обрабатывает присоединённые данные A блоками по бит. К присоединённым данным A приписывается единица и минимальное число нулей, необходимое для получения числа с размером кратным бит. Далее получившееся число делится на блоков по бит в каждом. В случае, когда присоединённые данные отсутствуют, данные операции опускаютсяШаблон:Sfn.
Далее к каждому блоку применяется операция XOR c первыми битами состояния S. Затем выполняется раундов перестановок над числом SШаблон:Sfn:
В конце производится операция XOR c однобитной константой разделенияШаблон:Sfn:
Стадия обработки исходного текста / шифротекста
Ascon обрабатывает исходный текст P блоками по бит. К исходному тексту P приписывается единица и минимальное число нулей, необходимое для получения числа с размером кратным бит. Далее получившееся число делится на блоков по бит в каждомШаблон:Sfn:
Шифрование
Из каждого блока , используя XOR c первыми битами состояния S, получается блок шифротекста . При этом при выделении каждого из блоков кроме последнего над состоянием S производится раундов перестановокШаблон:Sfn:
При выделении последнего блока его размер преобразуется так, чтобы размер полученнего шифротекста совпадал с размером исходного текстаШаблон:Sfn:
Дешифрование
Для каждого из блоков шифротекста кроме последнего блок исходного текста получается за счёт применения XOR к первым битам состояния S. При этом эти бит замещаются соответствующим . Кроме того, для всех блоков кроме последнего при выделении состояние S преобразуется за счёт раундов перестановокШаблон:Sfn:
Преобразование для последнего преобразованного блока Шаблон:Sfn:
Завершающая стадия
В завершающей стадии применяется операция XOR к секретному ключу и состоянию S. Затем к состоянию S применяются раундов перестановок. Тег T получается за счёт применения операции XOR к последним 128 битам состояния S (наименее значимым) и к последним 128 битам ключа KШаблон:Sfn:
Алгоритм шифрования возвращает тег T вместе с шифротекстом .
Алгоритм дешифрования-верификации возвращает исходный текст в случае, если сгенерированный тег совпадает с тегом, переданным как параметр.
Перестановки в шифрах Ascon
Главные процессы в шифрах Ascon это перестановки и . Они осуществляются над внутренним состоянием S, которое делится на 5 слов по 64 бит каждое . В алгоритме перестановок последовательно применяется преобразование, которое основывается на SP-сети. Данное преобразование составляют 3 основных стадииШаблон:Sfn:
- Стадия прибавления констант
- Стадия замещения с 5-битным блоком замещения (англ. Substitution Box или S-box)
- Стадия линейной диффузии с 64-битными диффузионными функциями
Стадия прибавления констант
На данной стадии к слову в раунде перестановки добавляется константа , где для перестановок и для перестановок Шаблон:Sfn:
Значения констант задаются следующей таблицейШаблон:Sfn:
| Константа | Константа | ||||||
|---|---|---|---|---|---|---|---|
| 0 | 000000000000000000f0 | 6 | 2 | 0 | 00000000000000000096 | ||
| 1 | 000000000000000000e1 | 7 | 3 | 1 | 00000000000000000087 | ||
| 2 | 000000000000000000d2 | 8 | 4 | 2 | 00000000000000000078 | ||
| 3 | 000000000000000000c3 | 9 | 5 | 3 | 00000000000000000069 | ||
| 4 | 0 | 000000000000000000b4 | 10 | 6 | 4 | 0000000000000000005a | |
| 5 | 1 | 000000000000000000a5 | 11 | 7 | 5 | 0000000000000000004b |
Стадия замещения
На стадии замещения параллельно применяется 5-битный блок замещения (S-блок) к каждому соответствующему битовому массиву из слов . Представленный в виде таблицы поиска S-блок для семейства шифров AsconШаблон:Sfn:
| x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1a | 1b | 1c | 1d | 1e | 1f |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| S(x) | 4 | b | 1f | 14 | 1a | 15 | 9 | 2 | 1b | 5 | 8 | 12 | 1d | 3 | 6 | 1c | 1e | 13 | 7 | e | 0 | d | 11 | 18 | 10 | c | 1 | 19 | 16 | a | f | 17 |
Стадия линейной диффузии
На стадии линейной диффузии делается преобразование диффузии в каждом 64-битном слове за счёт применения линейных функций к каждому слову Шаблон:Sfn:
Для семейства Ascon линейные диффузионные функции реализованы какШаблон:Sfn:
Преимущества шифров Ascon
Высокий уровень надёжности
Шифры Ascon-128 и Ascon-128a стали победителями соревнования CAESAR в категории применения в приложениях с ограниченными ресурсамиШаблон:Sfn. На данный момент с учётом продолжительного публичного исследования и криптоанализа предложенных шифров не было выявлено недостатков в надёжности шифровШаблон:Sfn.
Простота реализации
Алгоритмы Ascon работают с 64-битными словами и используют лишь простые побитовые операции. Это существенно упрощает реализацию алгоритмов семейства на новых платформахШаблон:Sfn.
Интерактивность и однопроходность
Алгоритмы семейства Ascon могут быть использованы в интерактивном режиме, т.е. в условиях, когда входные данные и их длина ещё не известны полностью. Кроме того, для работы алгоритмов шифрования и дешифрования достаточно лишь одного прохода по даннымШаблон:Sfn.