Научная статья на тему 'О представлении S-блоков при реализации в блочных шифрах'

О представлении S-блоков при реализации в блочных шифрах Текст научной статьи по специальности «Математика»

CC BY
279
119
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
S-БЛОК / ВЕКТОРНЫЕ БУЛЕВЫ ФУНКЦИИ / АФФИННАЯ ЭКВИВАЛЕНТНОСТЬ / S-BOX / VECTORIAL BOOLEAN FUNCTION / AFFINE EQUIVALENCE

Аннотация научной статьи по математике, автор научной работы — Виткуп Валерия Александровна

Рассматривается предложенный недавно способ разбиения S-блоков для защиты от атак по сторонним каналам. Известно, что для всех классов эквивалентности S-блоков, кроме одного, такое разбиение возможно. Доказано, что для этого одного класса не существует искомого разбиения.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

On the representation of s-boxes in block ciphers

A known method of S-boxes partition applied against side-channel attacks is considered. Nowadays, necessary partitions are found for all the affine equivalence classes except one. In the paper, it is proved that S-boxes of this class do not have admissible partition.

Текст научной работы на тему «О представлении S-блоков при реализации в блочных шифрах»

№6 ПРИЛОЖЕНИЕ Сентябрь 2013

Секция 2

МАТЕМАТИЧЕСКИЕ МЕТОДЫ КРИПТОГРАФИИ

УДК 519.7

О ПРЕДСТАВЛЕНИИ 8-БЛОКОВ ПРИ РЕАЛИЗАЦИИ В БЛОЧНЫХ ШИФРАХ

В. А. Виткуп

Рассматривается предложенный недавно способ разбиения Б-блоков для защиты от атак по сторонним каналам. Известно, что для всех классов эквивалентности Б-блоков, кроме одного, такое разбиение возможно. Доказано, что для этого одного класса не существует искомого разбиения.

Ключевые слова: 8-блок, векторные булевы функции, аффинная эквивалентность.

Многие криптографические алгоритмы уязвимы к атакам по сторонним каналам, направленным на слабости в практической реализации алгоритма. В качестве мер противодействия используются методы, маскирующие входные данные так, чтобы вычисления не зависели от них в явном виде.

В [1] предложен следующий способ маскирующей реализации Б-блока. Рассмотрим Б-блок п х п. Пусть х = (х\,... ,хп), где хг € Ъ2. Рассмотрим векторную функцию Б : ЖП ^ ЖП, Б = (/1,...,/п), где /1,...,/п — булевы функции от п переменных.

Г

Разбиваем переменные хг каждую на г булевых переменных: хг = ^ хгз-. Пусть

3 = 1

V = (х11, ...,хпг). Разбиваем функцию Б на г векторных функций Бг : ЖП ^ ЖП так, чтобы выполнялось Б(х) = ^ Бг^). Такое разбиение векторной функции Б обо-

г

значим Р(Б).

Введём следующие условия для разбиения.

1. Неполнота: блок Бг не должен зависеть от переменных хкг, к = 1,... ,п.

2. Взаимная однозначность: функция Б * : ^ ЖП, Б * = (Б1,... , Бг), является

взаимно однозначной.

Разбиение Р(Б), удовлетворяющее этим двум условиям, называется допустимым. Две векторных функции Б и Б называются аффинно эквивалентными, если существует пара невырожденных аффинных преобразований А и В, таких, что Б = В о Б о А. Отношение аффинной эквивалентности разбивает множество всех взаимно однозначных Б-блоков на непересекающиеся классы. Множество Б-блоков 3 х 3 содержит 4 класса, А?, (21, 2%, 23. В таблице приведены их представители.

Класс Представитель

Л? (х,у,г)

(х,у,ху + г)

(х, у + хг, г + ху + хг)

(ху + хг + уг, х + у + ху + уг, х + г + уг)

Теорема 1 [1]. Если для некоторой векторной функции существует допустимое разбиение, то для любой аффинно эквивалентной ей функции также существует допустимое разбиение.

Построить разбиение и добиться выполнения условия неполноты нетрудно; сложность представляет свойство взаимной однозначности, которое требует отдельной проверки для каждого полученного разбиения. Для классов А1, 21 и 2:] допустимые разбиения найдены в работе [1]. Чтобы достигнуть взаимной однозначности, в функции из разбиения Б-блока добавляются пары так называемых корректирующих слагаемых, комбинацией которых можно получить всевозможные разбиения Р(Б), удовлетворяющие условию 1. Для Б-блоков 3 х 3 существует всего 54 таких слагаемых.

Рассмотрим, например, Б-блок (х,у + х2,2 + ху + х2) из класса 22 и его разбиение Р(Б), удовлетворяющее условию неполноты:

Б1 (V) = (х2, У2 + х2^2 + х2^э + хз22, 22 + х2^2 + х2^3 + хэ^2 + х2^2 + х22з + хз^);

Б2(V) = (хз,уз + хз2з + х12з + хз21, 2з + хзУз + х^з + хз^1 + хз2з + х12з + хз^);

Бз (V) = (х1,У1 + х121 + х122 + х2 21,21 + хщ + х^2 + х2^1 + х^1 + х122 + х2^1).

Условие 2 не выполняется. Однако при добавлении следующей комбинации коррек-

тирующих слагаемых (выделены подчеркиванием) разбиение становится допустимым:

Б^) = (х2, У2+х222+х22з+хз22 +22 , 22+х2^2+х2Уз+хзУ2+х222+х22з+хз 22+Уз+22);

Б2(v) = (Хз, Уз+хз2з+х12з+хз21+21, 2з+хзУз+х1Уз+хзУ1+хз2з+х12з+хз21+уз+21);

Бз(v) = (Хl, у1+х121+х122+х221+21+22 , 21+х1У1+х1У2+х2У1+х121+х122+х221+21+22).

Для класса 2з допустимое разбиение так и не было найдено, а большой перебор комбинаций корректирующих переменных делает поиск трудным, поэтому в [1] авторы обозначили открытый вопрос: существует ли для Б-блоков из класса 2з допустимое разбиение?

Пусть Б = (/1,...,/п), Б : ЖП ^ ЖП и Р(Б) —непосредственное разбиение Б-бло-ка Б на г частей Бг = (/1г,... , /пг). Рассмотрим векторную функцию ^ = (/11,... , /п1,...,/1г, . . . , /пг). Будем говорить, что функция С^ = (С11, . . . , Сп1, . . . , С1г, . . . , Спг), су : Жпг ^ Ж2 — корректирующая функция для ^, если функция ^ + С^ обладает следующими свойствами:

г

1) /г = 5] (/г3 + Су) для каждого % = 1, . . . , П;

3=1

2) /у + су не зависит от переменных ху, . . . , хпз для каждого % = 1,... , п, 3 = 1,...,г.

Пусть к € {1,...,пг}, (%131,...,%к3к) —набор индексов длины к из множества {11,... , п1,... , 1г,... , пг}. Определим множество Ск131)... гк= {С^ : /у + Сг1у1,... , Лук + С*к3к ) — сбалансированная функция из Жпг в ^}. Пусть С = П П Сгк131,...,гк3к .

к г131 ,...,гк3к

Теорема 2. Функция ^ + С^ взаимно однозначна, если и только если С^ € С.

Теорема 2 даёт алгоритм отыскания возможного допустимого разбиения, так как для любой функции С^ € С разбиение Б1 = (/11 + с11,... , /п1 + сп1),... , БГ = (/1г + с1г, ... , /пг + спг) по теореме 2 является допустимым. Для Б-блока из 2 доказано, что множество С пусто. Следовательно, не существует допустимого разбиения данного Б-блока, и доказана следующая

Теорема 3. Для Б-блоков из класса 2з не существует допустимого разбиения.

ЛИТЕРАТУРА

1. Bilgin B., Nikova S., Nikov V., et al.Threshold implementations of all 3x3 and 4x4 S-boxes //

CHES 2012. LNCS. 2012. V. 7428. F. 76-91.

УДК 056.55

АЛГОРИТМ ВОССТАНОВЛЕНИЯ ОТКРЫТОГО ТЕКСТА ПО ШИФРТЕКСТУ В КРИПТОСИСТЕМЕ МАК-ЭЛИСА

А. К. Калужин, И. В. Чижов

Предлагается алгоритм неструктурной атаки на кодовую криптосистему Мак-Элиса с целью дешифрования сообщения, основывающийся на алгоритме Бернштейна — Ланг — Петерса и работающий быстрее любого другого существующего алгоритма неструктурной атаки. Тем самым сделан ещё один шаг в приближении к нижней оценке сложности таких алгоритмов, доказанной М. Финиазом и Н. Сендрие.

Ключевые слова: криптосистема Мак-Элиса, неструктурные атаки, алгоритм Бернштейна — Ланг —Петерса, алгоритм Шабо — Канто.

Рассматриваются неструктурые атаки на криптосистему с открытым ключом Мак-Элиса [І] с целью дешифрования сообщения. По сути, решается уравнение m-G+e = c, где m и e неизвестны, а wt(e) = t. При этом m — исходное сообщение, G — порождающая матрица кода (открытый ключ), e — вектор ошибки, c — вектор, который подвергается дешифрованию. Найдя вектор ошибки e, мы решим систему полностью, так как вектор m находится из системы линейных уравнений. Все наилучшие алгоритмы неструктурной атаки на систему Мак-Элиса (Штерна, Шабо — Канто и Бернштейна — Ланг — Петерса) основываются на одной идее: итеративно генерируются различные базисы кода и решается задача в предположении, что вектор ошибки e можно выразить через 2p (p — параметр алгоритмов) некоторых из зафиксированных векторов базиса.

В 2009 г. М. Финиаз и Н. Синдреир в работе [2] доказали нижнюю теоретическую оценку ожидаемого количества битовых операций, необходимых для дешифрования сообщения в криптосистеме Мак-Элиса. Для кодов Гоппы (І024,524,50) (стандартные параметры криптосистемы Мак-Элиса) эта оценка равна 259,9. Оценка идеальна и недостижима (в силу предположений при доказательстве). В то же время ожидаемое количество битовых операций, необходимых для дешифрования сообщения, закодированного с помощью этого кода, составляет:

1) для алгоритма Штерна - 266,21;

2) для алгоритма Шабо — Канто - 264,1;

3) для алгоритма Бернштейна — Ланг — Петерса - 260,55.

То есть существующие алгоритмы уже вплотную приблизились к идеальной оценке ожидаемого количества битовых операций.

В работе представляется модификация алгоритма Бернштейна — Ланг — Петерса [3], которая уменьшает как ожидаемое количество итераций, так и ожидаемое количество битовых операций, выполняемых на одной итерации. Достигается это посредством следующих двух оптимизаций.

І) В алгоритме Бернштейна — Ланг — Петерса на каждой итерации фиксируется некоторый базис кода. Он получается из базиса кода, зафиксированного на предыдущей итерации, путём обмена местами c из первых k столбцов матрицы c c столбцами среди оставшихся, с дальнейшим применением модифицированного преобразования

i Надоели баннеры? Вы всегда можете отключить рекламу.