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.

Литература

Ссылки

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.