256-3 в 1,2-2,6 раз превышает производительность алгоритмов «Магма» (ГОСТ 34.122018), «Кузнечик» (ГОСТ 34.12-2018), SEED, HIGHT, Camellia-256, Kalyna-256/256, MARS-256, CAST-256, что указывает на положительные (с позиции синтеза) эксплуатационные качества алгоритма 256-3 и представляет данный алгоритм перспективным для потенциального применения в программных и аппаратных средствах защиты информации.
ЛИТЕРАТУРА
1. Fomichev V. and Koreneva A. Encryption performance and security of certain wide block ciphers // J. Comput. Virol. Hack. Tech. 2020. https://doi.org/10.1007/ s11416-020-00351-1
2. Fomichev V.M., Koreneva A. M., Miftahutdinova A. R., and Zadorozhniy D. I. Evaluation of the maximum performance of block encryption algorithms // Math. Aspects Cryptogr. 2019. V. 10. No. 2. P. 7-16.
3. ISO/IEC 18033-3. IT Security Techniques. Encryption Algorithms. P. 3: Block Ciphers. https: //www.iso.org/standard/54531.html.
4. Криптографическая кроссплатформенная C++ библиотека Crypto++ 8.2 с открытым исходным кодом. https://www .cryptopp.com/
УДК 519.17 DOI 10.17223/2226308X/13/19
ХАРАКТЕРИСТИКИ АЛГОРИТМА КОНТРОЛЯ ЦЕЛОСТНОСТИ ДАННЫХ НА ОСНОВЕ АДДИТИВНЫХ ГЕНЕРАТОРОВ И s-БОКСОВ
В. М. Фомичев, А. М. Коренева, Т. Р. Набиев
При проведении анализа программного обеспечения актуальна задача контроля целостности данных больших массивов, при решении которой важно обеспечить приемлемый компромисс между криптографическими свойствами алгоритма контроля целостности и ресурсами, необходимыми для его реализации. Для блоков данных размера 1 кбайт (1024 байта) предложен алгоритм генерации 128-битового кода контроля целостности (ККЦ) с положительными (с позиции синтеза) эксплуатационными и криптографическими свойствами. Алгоритм построен на основе преобразований аддитивных генераторов и s-боксов и реализует функцию ф(дг): V213 ^ V128 со свойством полного перемешивания входных данных. При 6 ^ t ^ 100 каждый бит кода существенно зависит от всех битов информационного блока. При случайном равновероятном выборе начального состояния u вероятность получить любой код Q оценивается величиной 2-128. Среднее число опробований пар блоков (u,u'), где u = u! и Q(u) = Q(u'), приблизительно равно 264. Сложность вычисления функции ф(дг) имеет порядок t(5u + 8v), где u — вычислительная сложность суммирования двух чисел по модулю 264; v — сложность вычисления s-бокса. В соответствии с проведёнными экспериментами скорость генерации ККЦ варьируется в пределах от 3500 (t = 6) до 250 Мбит/с (t = 96), соответственно при тех же значениях t время генерации ККЦ варьируется в пределах от 18 до 250 мкс.
Ключевые слова: аддитивные генераторы, контроль целостности, матрично-графовый подход, перемешивающие свойства, регистры сдвига.
Введение
Одной из важных задач защиты информации является контроль целостности, который осуществляется с помощью присоединения создателем информации к информа-
ционному /-битовому блоку m-битового кода контроля целостности, m < /, представляющего собой двоичную комбинацию, функционально связанную с блоком. Для генерации ККЦ обычно применяются криптографические хэш-функции (SHA, ГОСТ 34.11-2018 и др.) или алгоритмы генерации циклических избыточных кодов (CRC16, CRC32 и др.). Надёжные криптографические хэш-функции требуют значительных ресурсов. При использовании циклических избыточных кодов, обеспечивающих помехоустойчивое кодирование, сложность нахождения коллизии не высока. Поэтому актуально построение альтернативных алгоритмов генерации ККЦ, обладающих следующими положительными свойствами:
— биективность преобразования, на основе которого строится алгоритм генерации ККЦ, это минимизирует вероятность совпадения ККЦ для разных блоков;
— полное перемешивание входных данных (существенная зависимость каждого бита ККЦ от каждого бита блока данных), это затрудняет навязывание ложных блоков и более надёжно обеспечивает целостность данных;
— невысокая вычислительная и емкостная (по памяти) сложность реализации, позволяющая экономить ресурсы при контроле целостности больших массивов данных.
Для повышения надёжности контроля целостности можно дополнительно использовать известные методы [1]: включение в блоки данных меток времени, номеров блоков (или оба приёма одновременно); использование ККЦ, зависящих от секретных параметров (ключей), что сильно усложняет подделку ККЦ.
1. Алгоритм генерации ККЦ
Обозначим: n,m — натуральные числа; Vn — множество двоичных n-мерных векторов; Z2n —кольцо вычетов по модулю 2n; X — двоичное представление числа X из кольца Z264; Ш — сложение чисел в кольце Z264; ф — суммирование двоичных строк по модулю 2.
Булева функция называется вполне перемешивающей [2], если она существенно зависит от каждой переменной. Отображение Vn ^ Vm называется вполне перемешивающим, если каждая его координатная функция вполне перемешивающая.
Обозначим: s0(a0,... , a7),.. .,s7(a0,... , a7) — булевы координатные функции вполне перемешивающего преобразования s(a0,... ,a7) (s-бокса размера 8 х 8 бит); р — регистровое преобразование множества состояний аддитивного генератора длины 16 над множеством V64 с одной обратной связью f (X0,... , X15), где в ячейке регистра записан вычет X £ Z264 или, что равносильно, вектор X £ V64:
^(X0, . . . , X15) = (Xb . . . , X15, X0 Ш X5 Ш X10 Ш X15).
Построим алгоритм генерации r-битового ККЦ для информационного /-битового блока, где / = 213 бит (1 кбайт), r = 128. Алгоритм реализует функцию ф(д1): V2i3 ^ V128, где д: V2i3 ^ V2i3 — преобразование регистрового типа множества состояний схемы из восьми идентичных аддитивных генераторов AG0,... ,AG7, модифицированное с помощью преобразования s(a0,..., a7) (рис. 1).
Алгоритм моделируется автономным автоматом Мили без выходов A = (Vg,16,64, д), где д — функция переходов и Vg,16,64 = [xi,j,k} —множество состояний автомата, пред-ставимое как трёхмерное множество целых неотрицательных чисел, множество координат которых биективно соответствует подмножеству P элементов трёхмерного пространства с целыми координатами, ограниченному параллелепипедом (рис.2): 0 ^ i < 8, 0 ^ j < 16, 0 ^ k < 64.
0 ... 5 ... 9 10 ... 5 > к 5
> г В<-
-
-► ' г ЕЗ- > Г — >' -
Рис. 1. Регистр над (^2в4)8, Ш)
\к *
Рис. 2. Параллелепипед, содержащий множество вершин перемешивающего графа преобразования д
Множество состояний автомата в такте I ^ 0 обозначим ^8(41)6 64 = (ж(1) д}, или матрицей М^ = ^ над Х2в4, где X= (ж(1) 0,..., ж(1) 63) — состояние на ¿-м такте ]-й ячейки А^.
Построим функцию переходов автомата, используя отображение ¿(в): V8 ^ У64, зависящее от преобразования «, реализуемого «-боксом. При I ^ 0 определим 8-битовую
строку = (<г(Х0:15,..., <г(Х7д5)), где а(жо,..., Ж6з) = Х Ф ... Ф Ж63 — булева функция, определяющая чётность веса вектора (ж0,... ,ж63). Построим 64-битовую конкатенацию восьми байтов:
в <•> = («0" («">) ...в!" («<")), (1)
где 5-0')(^<")=8(ш<"), 5<')(^<'>) = 8(85-1(ш<") Фш<"), ; = 1,..., 7.
Функция переходов автомата задана равенствами
(Х,0+1),...,ХЙ51)) = (у;?,... у ;?5, /(у%... у !15)), о < < < 8,
где = Х^ при ] = 10 и Уг(10 = Х^ Ш в(1), в(1) вычисляется по формуле (1). Код ф, генерируемый алгоритмом, определим как 128-битовую строку:
№,16,64) = (Х01)5 Ш ХЙ5 Ш Х21)5 Ш Х31)5, Х41)5 Ш Х51)5 Ш Х^ Ш Х71)5). (2)
2. Исследование множества образов отображения г(в): У8 ^ У64
Вектор используется в алгоритме как псевдослучайный сдвиг векторов Х^ц, 0 ^ г < 8. Полагаем, что наилучшие свойства алгоритма генерации ККЦ достигаются, в частности, если для каждого вектора у Е У8 все байты вектора 5(4)(у) различны (согласно (1), свойство Б(0,... , 0) = (0,... , 0) должно быть исключено). Отсюда вероятность того, что Б(4)(у) содержит повторяющиеся байты, должна быть не больше вероятности 0,1045 этого события для случайного вектора.
Свойство векторов
Б « исследовано с помощью эксперимента на ПЭВМ. При заданном преобразовании в для каждого у € У8 вычислен вектор Б (у) = (у0 ,у\,... ,у7), где у0 = в (у), уj = в(yj-l ф у), ] = 1,... , 7, и посчитано число различных байтов, составляющих Б (у). В табл. 1 приведено число иг векторов Б (у) (для 256 возможных значений у), состоящих ровно из г различных байтов среди у0,... ,у7, г = 1,..., 8; результаты получены для в-боксов размера 8 х 8 известных блочных шифров.
Таблица 1
Число уг векторов Б (у), состоящих из г различных
байтов
5-6 оке Значение г
1 2 3 4 5 б 7 3
Кузнечик 1 0 0 0 0 0 2 253
АЕ5 1 2 2 1 0 0 1 249
АЕ£_т\- 1 0 1 1 1 1 1 250
5М4 1 1 1 0 5 0 1 247
CaYPTON.Sc 1 0 1 1 2 2 1 248
СКУПТШ 1 0 3 0 0 1 2 249
СКЛТТСЖ,^ 1 1 1 0 1 1 1 250
СКУРТИШЙ 1 1 2 1 0 1 0 250
СлтеШа. 1 2 0 0 1 1 0 251
КНА2АБ-0 1 1 1 3 0 1 0 249
КНАгАБ 1 3 0 1 0 1 248
СЬЕР1А5о 1 1 1 0 1 1 2 249
СЬЕР1А51 1 1 0 0 2 1 1 250
Ка1 упало 1 1 1 2 2 0 0 249
Ка1упа ТС1 1 1 0 0 2 2 0 250
Ка1упа Л2 1 1 0 3 1 0 1 249
Ка1упа из 1 1 0 1 2 1 2 248
При использовании в-боксов табл. 1 вероятность того, что в последовательности Б^(у) есть повторяющиеся байты, не больше 0,0351 (в-бокс БМ4). Вероятность такого события наименьшая (0,0117) при использовании в-бокса алгоритма «Кузнечик».
3. Характеристики алгоритма генерации ККЦ
1. Преобразование д биективное. Число прообразов любого значения функции ^(д*) равно 21-2г. Следовательно, при случайном равновероятном выборе начального состояния и из множества ^дб,б4 вероятность получить заданный код Q равна 2-128. Среднее число опробований для поиска пар блоков (и,и'), таких, что и = и' и Q(u) = Q(u/), оценивается с помощью парадокса дней рождения величиной порядка 264.
2. Перемешивающие свойства алгоритма оценены с помощью развития матрично-графового подхода, применённого в [3] для оценки перемешивающих свойств преоб-
разований модифицированных аддитивных генераторов (АГ). Для свойства полного перемешивания координатных функций, соответствующих крайним ячейкам АГ (это свойство необходимо в соответствии с формулой (2)), оценен локальный экспонент перемешивающего орграфа преобразования g. Оценка, равная 6, получена как длина путей из одной вершины в другую для всех допустимых пар вершин вида ((г, 15, j), (г', 15, j')) [4, с. 457], проходящих через некоторую вершину с петлей. Для контроля целостности необходимо, чтобы ККЦ вычислялся с помощью вполне перемешивающей функции. Установлено, что при t ^ 6 обе формирующие код Q функции X0t)5 Ш Xjtls Ш Xg5 Ш Xg5 и хЦ5 Ш x5tJ5 Ш Ш Х$5 являются вполне перемешивающими. Экспериментально определено, что свойство полного перемешивания этих функций сохраняется при 6 ^ t ^ 100.
3. Сложность вычисления функции ^(g4) оценивается величиной порядка t(5u + 8v), где u — вычислительная сложность суммирования двух чисел по модулю 264; v — сложность вычисления s-бокса. В табл. 2 даны результаты измерения скорости генерации и времени вычисления 128-битового ККЦ для блока данных размера 1 кбайт при различных t. Эксперименты проведены на ПЭВМ с процессором Intel Core i5-8600 и тактовой частотой 3,1 ГГц.
Таблица 2 Скорость генерации и время вычисления ККЦ
Число тактов, t 6 12 18 36 72 96
Скорость генерации, Мбит/с 3500 1900 1200 650 330 250
Время вычисления, мкс 18 32 49 96 200 250
Выводы
Предложен новый класс алгоритмов на основе функций аддитивных генераторов и s-боксов для генерации кодов контроля целостности блоков данных объёма 1 кбайт. Подход может быть распространён на блоки данных большего объёма. Алгоритмы обладают положительными эксплуатационными и криптографическими свойствами: невысокой сложностью реализации и свойством полного перемешивания входных данных, что существенно затрудняет применение ряда методов криптоанализа.
ЛИТЕРАТУРА
1. Будзко В. И., Мельников Д. А., Фомичёв В. М. Базовые требования к подсистемам обеспечения криптоключами в информационно-технологических системах высокой доступности // Системы высокой доступности. 2016. Т. 12. №3. С. 73-82.
2. Fomichev V. M. Matrix-graph approach for studying nonlinearity of transformations on vector space // VIII симп. «Современные тенденции в криптографии» CTCrypt 2019. https: //ctcrypt.ru/files/files/2019/materials/08_Fomichev.pdf
3. Fomichev V.M. and Koreneva A. M. Mixing properties of modified additive generators // J. Appl. Ind. Math. 2017. V. 11. P. 215-226.
4. Fomichev V. M., Avezova Ya. E., Koreneva A. M., and Kyazhin S. N. Primitivity and local primitivity of digraphs and nonnegative matrices // J. Appl. Ind. Math. 2018. V. 12. P. 453-469.