Ascon (Ascon)

Перейти к навигации Перейти к поиску
Ascon
Создатель

Кристоф Добрауниг, Мария Айхелзидер, Флориан Мендел,

Мартин Шлаффер
Создан 2016
Опубликован 2016
Тип Блочный шифр

Ascon — семейство блочных шифров, используемых для аутентифицированного шифрования с присоединёнными данными и хеширования. Набор шифров был разработан Кристофом Добраунигом, Марией Айхелзидер, Флорианом Менделем и Мартином Шлаффером. Шифры Ascon-128 и Ascon-128a стали победителями соревнования CAESAR в категории применения в приложениях с ограниченными ресурсами[1].

Историческая справка

[править | править код]

Семейство шифров Ascon, используемое для аутентифицированного шифрования с присоединёнными данными и хеширования, было разработано Кристофом Добраунигом, Марией Айхелзидер, Флорианом Менделем и Мартином Шлаффером[2].

Шифры Ascon-128 и Ascon-128a были участниками соревнования CAESAR (2014 - 2019) и стали победителями в категории применения в приложениях с ограниченными ресурсами[1].

В августе 2019 года шифры семейства Ascon прошли во второй раунд процесса стандартизации Национального института стандартов и технологий в категории легковесной криптографии (англ. Lightweight Cryptography).[3]

Алгоритмы в семействе Ascon

[править | править код]

Аутентифицированное шифрование

[править | править код]

Параметры в алгоритмах семейства Ascon, используемых для аутентифицированного шифрования[4]:

  • Размер ключа ( ≤ 160 бит)
  • Размер блока данных
  • Число , количество раундов перестановок на начальной и завершающей стадиях
  • Число , количество раундов перестановок на промежуточных стадиях

Рекомендованы к использованию следующие конфигурации, соответствующие шифрам Ascon-128 и Ascon-128a [5].

Рекомендуемые алгоритмы
Название Значения параметров
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)

[править | править код]

Входными данными для алгоритма шифрования являются[6]:

  • исходный текст P
  • присоединённые данные A
  • секретный ключ K размером k бит
  • публичный номер сообщения N

Выходные данные для алгоритма шифрования[6]:

  • Аутентифицированный шифротекст C (такой же длины, как и P)
  • Тег аутентификации T

Алгоритм дешифрования-верификации D(a, b, k, r)

[править | править код]

Входными данными для алгоритма дешифрования-верификации являются[6]:

  • ключ K
  • одноразовый код N (Nonce)
  • шифротекст C
  • тег T

Выходными данными являются исходный текст P, если проверка тега была успешной, или (индикатор неуспешности верификации) в случае неуспеха[6].

Стадии алгоритма

[править | править код]

В алгоритмы шифрования и дешифрования входят следующие стадии[7]:

  • Инициализация
  • Обработка присоединённых данных
  • Обработка исходного текста / шифротекста
  • Завершающая стадия

Стадия инициализации

[править | править код]

Внутреннее состояние в алгоритмах семейства Ascon задаётся 320-битным числом S[8]. На стадии инициализации оно формируется из секретного ключа K из k бит, одноразового кода N из 128 бит, и числа IV, характеризующего алгоритм и формируемого из параметров , , , , записанных 8-битными целыми числами[9]:

Затем к начальному состоянию S применяется раундов перестановок с последующим XOR со значением секретного ключа K[9]:

Стадия обработки присоединённых данных

[править | править код]

При шифровании и дешифровании Ascon обрабатывает присоединённые данные A блоками по бит. К присоединённым данным A приписывается единица и минимальное число нулей, необходимое для получения числа с размером кратным бит. Далее получившееся число делится на блоков по бит в каждом. В случае, когда присоединённые данные отсутствуют, данные операции опускаются[10].

Далее к каждому блоку применяется операция XOR c первыми битами состояния S. Затем выполняется раундов перестановок над числом S[10]:

В конце производится операция XOR c однобитной константой разделения[10]:

Стадия обработки исходного текста / шифротекста

[править | править код]

Ascon обрабатывает исходный текст P блоками по бит. К исходному тексту P приписывается единица и минимальное число нулей, необходимое для получения числа с размером кратным бит. Далее получившееся число делится на блоков по бит в каждом[11]:

Шифрование

[править | править код]

Из каждого блока , используя XOR c первыми битами состояния S, получается блок шифротекста . При этом при выделении каждого из блоков кроме последнего над состоянием S производится раундов перестановок[11]:

При выделении последнего блока его размер преобразуется так, чтобы размер полученнего шифротекста совпадал с размером исходного текста[10]:

Дешифрование

[править | править код]

Для каждого из блоков шифротекста кроме последнего блок исходного текста получается за счёт применения XOR к первым битам состояния S. При этом эти бит замещаются соответствующим . Кроме того, для всех блоков кроме последнего при выделении состояние S преобразуется за счёт раундов перестановок[11]:

Преобразование для последнего преобразованного блока [11]:

Завершающая стадия

[править | править код]

В завершающей стадии применяется операция XOR к секретному ключу и состоянию S. Затем к состоянию S применяются раундов перестановок. Тег T получается за счёт применения операции XOR к последним 128 битам состояния S (наименее значимым) и к последним 128 битам ключа K[11]:

Алгоритм шифрования возвращает тег T вместе с шифротекстом .

Алгоритм дешифрования-верификации возвращает исходный текст в случае, если сгенерированный тег совпадает с тегом, переданным как параметр.

Перестановки в шифрах Ascon

[править | править код]

Главные процессы в шифрах Ascon это перестановки и . Они осуществляются над внутренним состоянием S, которое делится на 5 слов по 64 бит каждое . В алгоритме перестановок последовательно применяется преобразование, которое основывается на SP-сети. Данное преобразование составляют 3 основных стадии[12]:

  1. Стадия прибавления констант
  2. Стадия замещения с 5-битным блоком замещения (англ. Substitution Box или S-box)
  3. Стадия линейной диффузии с 64-битными диффузионными функциями

Стадия прибавления констант

[править | править код]

На данной стадии к слову в раунде перестановки добавляется константа , где для перестановок и для перестановок [12]:

Значения констант задаются следующей таблицей[12]:

Константы для раундов в и
Константа Константа
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[13]:

5-битный блок замещения в виде таблицы поиска
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-битном слове за счёт применения линейных функций к каждому слову [13]:

Для семейства Ascon линейные диффузионные функции реализованы как[13]:

Преимущества шифров Ascon

[править | править код]

Высокий уровень надёжности

[править | править код]

Шифры Ascon-128 и Ascon-128a стали победителями соревнования CAESAR в категории применения в приложениях с ограниченными ресурсами[1]. На данный момент с учётом продолжительного публичного исследования и криптоанализа предложенных шифров не было выявлено недостатков в надёжности шифров[14].

Простота реализации

[править | править код]

Алгоритмы Ascon работают с 64-битными словами и используют лишь простые побитовые операции. Это существенно упрощает реализацию алгоритмов семейства на новых платформах[14].

Интерактивность и однопроходность

[править | править код]

Алгоритмы семейства Ascon могут быть использованы в интерактивном режиме, т.е. в условиях, когда входные данные и их длина ещё не известны полностью. Кроме того, для работы алгоритмов шифрования и дешифрования достаточно лишь одного прохода по данным[14].

Примечания

[править | править код]
  1. 1 2 3 Ascon v1.2. Submission to NIST, 2019, p. 4.
  2. Cryptanalysis of Ascon, 2015, p. 1.
  3. Lightweight Cryptography (LWC) Standardization: Round 2 Candidates Announced (англ.). NIST (30 августа 2019). Дата обращения: 24 декабря 2019. Архивировано 24 декабря 2019 года.
  4. Ascon v1.2. Submission to NIST, 2019, p. 5.
  5. Ascon v1.2. Submission to NIST, 2019, p. 6.
  6. 1 2 3 4 Ascon v1.2. Submission to the CAESAR Competition, 2016, p. 2.
  7. Ascon v1.2. Submission to the CAESAR Competition, 2016, pp. 2 – 6.
  8. Cryptanalysis of Ascon, 2015, p. 2.
  9. 1 2 Ascon v1.2. Submission to NIST, 2019, p. 8.
  10. 1 2 3 4 Ascon v1.2. Submission to NIST, 2019, p. 9.
  11. 1 2 3 4 5 Ascon v1.2. Submission to NIST, 2019, p. 10.
  12. 1 2 3 Ascon v1.2. Submission to NIST, 2019, p. 13.
  13. 1 2 3 Ascon v1.2. Submission to NIST, 2019, p. 14.
  14. 1 2 3 Ascon v1.2. Submission to NIST, 2019, p. 17.

Литература

[править | править код]