таких n, m, для которых выполняется следующее условие:
m ^ - 1.
ЛИТЕРАТУРА
1. Meier W, Pasalic E., and Carlet C. Algebraic attacks and decomposition of Boolean functions // Eurocrypt 2004. LNCS. 2004. V.3027. P. 474-491.
2. Carlet C. On the algebraic immunities and higher order nonlinearities of vectorial Boolean functions // Enhancing Cryptographic Primitives with Techniques from Error Correcting Codes, 2009. P. 104-116.
3. Courtois N. and Meier W. Algebraic attacks on stream ciphers with linear feedback // Eurocrypt 2003. LNCS. 2003. V. 2656. P. 345-359.
4. Pokrasenko D. On the maximal component algebraic immunity of vectorial Boolean functions // J. Appl. Industr. Math. 2016. V. 10. P. 257-263.
УДК 512.13 DOI 10.17223/2226308X/9/13
ПРЕДСТАВЛЕНИЕ ПОЛУБАЙТОВЫХ ПОДСТАНОВОК АЛГОРИТМОВ БЛОЧНОГО ШИФРОВАНИЯ МАГМА И 2-ГОСТ АЛГЕБРАИЧЕСКИМИ ПОРОГОВЫМИ ФУНКЦИЯМИ
Д. А. Сошин
Работа посвящена реализации полубайтовых подстановок алгоритмов блочного шифрования Магма и 2-ГОСТ алгебраическими пороговыми функциями (АПФ). Для каждой из подстановок алгоритмов Магма рассмотрен вопрос принадлежности линейных комбинаций координатных функций к классу АПФ. Для подстановок 2-ГОСТ предложено их задание через линейные комбинации АПФ.
Ключевые слова: алгебраические пороговые функции, подстановки.
В работе [1] вводится новый класс функций, который назван классом алгебраических пороговых функций.
Определение 1. Функция k -значной логики ¡n • —^ ^fc называется алгебраической пороговой, если существуют целочисленные наборы (c0, c1,..., cn), (b0,b1,..., bk) и модуль m, такие, что для любого а Е {0,... ,k — 1} выполняется
¡П (xi, Х2, ... ,Xn) = а & ba ^ rm (co + C1X1 + C2X2 +-----+ CnXn) < ba+i,
где rm (y) — функция взятия остатка при делении целого числа y на модуль m (rm(y) Е {0,1,... ,m — 1}); Пк = {0,1,...,k — 1}; Щ = ^ х х • • • х .
4-v-'
n
Тройку ((c0, c1, ... ,cn);(b0,b1,... ,bk); m ) назовём структурой алгебраической пороговой функции ¡¿к.
В [1] проведено исследование вопроса реализации булевых функций трёх переменных функциями из класса АПФ. Для этого доказана замкнутость данного класса относительно операций перестановки переменных, инвертирования переменных в смысле Лукашевича и инвертирования функции (геометрическая замкнутость). Геометрическим типом функции ¡ назовём класс эквивалентности относительно указанных преобразований. Для булевых функций от трёх переменных доказано, что только геометрический тип с представителем f (х1,х2,х3) = х1х3 V х2Хз не задаётся через АПФ.
Дискретные функции
33
Для булевых функций от четырёх переменных существует ровно 222 геометрических типа, и из них 70 представителей содержат в качестве подфункции функцию от трёх переменных, не имеющую представление в виде АПФ, и поэтому не относятся к классу АПФ. Для 99 из оставшихся 152 геометрических типов найдено задание в виде АПФ. Важно отметить, что класс АПФ замкнут относительно фиксации переменных и включает в себя все линейные функции к-значной логики.
В стандарте ГОСТ Р 34.12-2015 [2] в качестве нелинейного биективного преобразования выступает набор подстановок П, г = 0,... , 7. Обозначим через /3г), /2г), /1^, /0(г) координатные функции подстановки П от старших разрядов к младшим соответственно. У каждой подстановки рассмотрены линейные комбинации координатных функций, и те, для которых нашлось АПФ-представление, приведены в табл. 1 со своими структурами.
Таблица 1
Представление линейных комбинаций координатных функций подстановок
ГОСТ Р 34.12-2015 через АПФ
Лин. комбинации Структура АПФ
п'г у (1) /з ((0, 3,1, 3, 0) (0, 2, 4) 4)
1 ш т /(^ т /(1) /3 0 /2 0 /0 ((7, 5,1, 3, 6) (0,4, 8) 8)
/з(1) 0 /2(1) ((6,1, 3, 6, 3) (0,4, 8) 8)
/2(1) 0 /о^ ((6, 3, 3,1, 6) (0,4, 8) 8)
п2 / (2) /2 ((0, 3, 7, 2, 5) (0,4, 8) 8)
/12) 0 /02) ((1, 2, 5, 6, 3) (0,4, 8) 8)
/з(2) 0 /02) ((7, 2, 5, 2,1) (0,4, 8) 8)
п3 /33) 0 /23) ((6, 7, 2, 3, 6) (0,4, 8) 8)
/ (3) ® / (3) ® / (3) /з 0 /2 0 /о ((3, 2, 7, 2, 5) (0,4, 8) 8)
п7 / (7) /о ((4, 3, 7, 6, 5) (0,4, 8) 8)
Лин. комбинации Структура АПФ
у (4) /з ((0, 2,1, 3,0) (0, 2,4)
/34) 0 /2(4) 0 /14) ((0, 5, 5, 6, 2) (0,4, 8)
/(4) т /(4) т /(4) /з 0 /2 0 /0 ((0, 6,1, 6, 3) (0,4, 8)
/25) 0 /05) ((0, 3, 2, 5, 7) (0,4, 8)
/25) 0 /05) ((6, 7, 5, 2, 6) (0,4, 8)
/35) 0 /15) ((5, 5, 5, 7, 2) (0,4, 8)
/(5) т /(5^ /(5) /з 0 /2 0 /0 ((0, 7, 5, 3, 2) (0,4, 8)
/36) 0 /16) ((7, 2, 7, 5, 2) (0,4, 8)
/36) 0 /2(6) 0 /16) ((6,1, 6, 5, 6) (0,4, 8)
Из табл. 1 видно, что функции /3^, /2(2), /4), /о7 являются алгебраическими пороговыми и имеют следующие задания:
/3(1) = 1 ^ Г4 (3x1 + 1x2 + 3хз) ^ 2, /2(2) = 1 ^ Г8 (3X1 + 7X2 + 2хз + 5x4) ^ 4, /34) = 1 ^ Г4 (2X1 + 1X2 + 3хз) ^ 2, /07) = 1 ^ г8 (4 + 3x1 + 7X2 + 6хз + 5x4) ^ 4.
Важно отметить, что функции /31) и /34) фиктивно зависят от переменной x4 — старший бит входного числа). Последнее влечёт ухудшение перемешивающих свойств нелинейного слоя.
Подстановка п5 представляется в виде каскадного соединения АПФ
( /35) \ ( ^(0) 0 ^(3)
/ /1(
(5)
(5)
/05))
V (о)
\
V
V
V
(0) 0 V V
В V
(1) 0 (2)
(2)
„ V03) V(2) 0 V v(3)
(3)
/
Функции v(0), V(1), V(2), V(3) задают соответствующие линейные комбинации /25) 0
0 /05), /2(5) 0 /15),
/з(5) 0 /25),
/3
(5)
/25) 0 /0(5) из табл. 1 следующим образом:
(1)
1 ^ Г8(6 + 7X1 + 5X2 + 2X3 + 6x4) ^ 4,
V(0) = 1 ^ Г8(3x1 + 2X2 + 5X3 + 7x4) ^ 4, V V(2) = 1 ^ Г8(5 + 5x1 + 5x2 + 7x3 + 2x4) ^ 4, v(3) = 1 ^ Г8(7x1 + 5x2 + 3x3 + 2x4) ^ 4.
п
4
п
8
8
8
п
8
8
8
8
п
8
В [3] предложен алгоритм блочного шифрования 2-ГОСТ, являющийся модификацией шифрсистемы ГОСТ 28147-89, отличающийся от последней лишь алгоритмом развертывания ключа, а также тем, что набор ¿"-боксов фиксирован: п0 = п1 = п2 = = п3 = п', п4 = п5 = п6 = п7 = п'', где П и п" заданы нижними строками подстановок (табл. 2).
Таблица 2
Задание подстановок 2-ГОСТ
г 0 1 2 3 4 5 6 7 8 9 А В С Б Е Е
п'« 6 А Е 4 3 8 5 0 Б Е 7 1 2 В С 9
п''(г) Е 0 8 1 7 А 5 6 Б 2 4 9 3 Е С В
В результате анализа подстановок П и п" каждую из них удалось задать через линейные комбинации пяти АПФ
п
{ ¡'Л
¡2 ¡1
( 91 Ф 92 \ 93 Ф 94 9з 95
п
¡з'' ¡2'' ¡1'' ¡10''
( VI Ф V2 \
VI Ф Vз VI Ф V4 V V4 Ф V5 У
где функции 91,92,93,94, 95, v1, v2, v3, v4, v5 — алгебраические пороговые:
91 = 1 ^ г9 (х1 + 5Х2 + 2Х3 + 2Х4) ^ 6, VI =1
92 = 1 ^ г7 (5х1 + 5х2 + х3 + 6х4) ^ 2, V2 =1
9з = 1 ^ г8 (7 + 6х1 + 5х2 + 6х3 + х4) ^ 4, Vз =1
94 = 1 ^ г8 (2 + 5x1 + 7x2 + 3x3 + 2x4) ^ 4, V4 =1
95 = 1 ^ г8 (3 + 5х1 + х2 + 2х3 + 3х4) ^ 4, V5
1 ^ г8 (3х1 + 2х2 + 2х3 + х4) ^ 4.
Здесь х1 —младший бит входного числа, х4 — старший.
Класс АПФ сохраняет простоту реализации функций, основная сложность которой сводится к подсчёту скалярного произведения, как и для пороговых функций.
ЛИТЕРАТУРА
1. Сошин Д. А. Представление геометрических типов булевых функций от трех переменных алгебраическими пороговыми функциями // Прикладная дискретная математика. 2016. №1(31). С. 32-45.
2. ГОСТ Р 34.12-2015. Информационная технология. Криптографическая защита информации. Блочные шифры. М.: Стандартинформ, 2015.
3. Дмух А. А, Дыгин Д. М., Маршалко Г. Б. Пригодная для низкоресурсной реализации модификация блочного шифра ГОСТ // Матем. вопр. криптограф. 2014. Т. 5. №2. С. 47-55.