Ascon

Материал из testwiki
Перейти к навигации Перейти к поиску

Шаблон:Карточка блочного шифра

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:

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

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

Рекомендуемые алгоритмы
Название Значения параметров
k r a b
Ascon-128 128 бит 64 бита 12 6
Ascon-128a 128 бит 128 бит 12 8

Описание алгоритмов: аутентифицированное шифрование

Каждая непосредственная реализация алгоритма, заданная параметрами k, r, a, b определяет алгоритмы шифрования 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

E(a,b,k,r)(K,N,A,P)=(C,T)

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

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

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

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

D(a,b,k,r)(K,N,A,C,T)∈{P,⊥}

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

В алгоритмы шифрования и дешифрования входят следующие стадииШаблон:Sfn:

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

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

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

IVk,r,a,b=k||r||a||b||0160−k={80400c0600000000(Ascon-128)80800c0800000000(Ascon-128a)S=IVk,r,a,b||K||N

Затем к начальному состоянию S применяется a раундов перестановок с последующим XOR со значением секретного ключа KШаблон:Sfn:

S⟵pa(S)⊕(0320−k||K)

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

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

A1,A2,…,As⟵{r - битные блокиA||1||0r−1−(|A|modr)|A|>0∅|A|=0

Далее к каждому блоку Ai,1≤i≤s применяется операция XOR c первыми r битами состояния S. Затем выполняется b раундов перестановок над числом SШаблон:Sfn:

S⟵pb((Sr⊕Ai)||S320−r)1≤i≤s

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

S⟵S⊕(0319||1)

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

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

P1,P2,…,Pt⟵r - битные блокиP||1||0(|P|modr)

Шифрование

Из каждого блока Pi,1≤i≤t, используя XOR c первыми r битами состояния S, получается блок шифротекста Ci. При этом при выделении каждого из блоков Ci кроме последнего над состоянием S производится b раундов перестановокШаблон:Sfn:

Ci⟵Sr⊕PiS⟵{pb(Ci||S320−r)1≤i<tCi||S320−ri=t

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

Ct~⟵⌊Ct⌋|P|modr

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

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

Pi⟵Sr⊕CiS⟵pb(Ci||S320−r)1≤i<t

Преобразование для последнего преобразованного блока Ct~Шаблон:Sfn:

Pt~⟵⌊Sr⌋l⊕Ct~S⟵(Sr⊕(Pt~||1||0r−1−l))||S320−r

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

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

S⟵pa(S⊕(0r||K||0320−r−k))T⟵⌈S⌉128⊕⌈K⌉128

Алгоритм шифрования возвращает тег T вместе с шифротекстом C1||C2||…||Ct~.

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

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

Главные процессы в шифрах Ascon это перестановки pa и pb. Они осуществляются над внутренним состоянием S, которое делится на 5 слов по 64 бит каждое x0,x1,x2,x3,x4. В алгоритме перестановок последовательно применяется преобразование, которое основывается на SP-сети. Данное преобразование составляют 3 основных стадииШаблон:Sfn:

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

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

На данной стадии к слову x2 в раунде перестановки i добавляется константа cm, где m=i для перестановок pa и m=i+a−b для перестановок pbШаблон:Sfn:

x2⟵x2⊕cm

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

Константы cm для раундов i в pa и pb
p12 p8 p6 Константа cm p12 p8 p6 Константа cm
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(x) к каждому соответствующему битовому массиву из слов x0,x1,x2,x3,x4. Представленный в виде таблицы поиска S-блок для семейства шифров AsconШаблон:Sfn:

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-битном слове x0,x1,x2,x3,x4 за счёт применения линейных функций к каждому слову xiШаблон:Sfn:

xi⟵∑i(xi)0≤i≤4

Для семейства Ascon линейные диффузионные функции реализованы какШаблон:Sfn:

x0⟵∑0(x0)=x0⊕(x0⋙19)⊕(x0⋙28)x1⟵∑1(x1)=x1⊕(x1⋙61)⊕(x1⋙39)x2⟵∑2(x2)=x2⊕(x2⋙1)⊕(x2⋙6)x3⟵∑3(x3)=x3⊕(x3⋙10)⊕(x3⋙17)x4⟵∑4(x4)=x4⊕(x4⋙7)⊕(x4⋙41)

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

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

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

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

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

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

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

Примечания

Литература

Шаблон:Refbegin

Ссылки

Шаблон:Изолированная статья