Алгоритм 2. Атака-различитель
1: Функция РАСПОЗНАТьШиФРТЕКСТ(ж, Cipher, r)
// x — запрошенная в шифровальном устройстве выборка (генерируется в режиме CTR в сценарии chosen-plaintext attack); // Cipher —итеративный блочный шифр; // r — число раундов шифра. 2: Выбрать размер обучающей выборки M.
3: НейроннаяСетьг(image): = ОБУЧИTьНЕЙPOHHУЮСЕTь(Cipher, r, M). 4: Представить выборку x в виде изображения image. 5: Result := НейроннаяСетьг(image). 6: Если Result = 0, то
вернуть «Выборка случайная», 7: иначе
8: вернуть «Выборка сгенерирована r-раундовым шифром».
Алгоритм 3. Схема проведения экспериментов
1: Функция ВычислитьОшиБKу(Cipher, r) 2: Выбрать размер обучающей выборки M.
3: НейроннаяСетьг(image) := Обучи^НеЙРОННУЮСеть^рЛ^г, r, M). 4: Выбрать количество контрольных выборок N.
5: Сгенерировать N контрольных выборок с помощью шифра AES256 и получить
Xrand _ (xrand xrand)
6: Сгенерировать N контрольных выборок с помощью шифра Cipher и получить
хr _ (x1,..., xN).
7: Преобразовать множества Xfrand и Xr в изображения Xrand _ (x1and,... , x™nd) и
хr _ (xrl,...,xN).
8: Экспериментально определить ошибки первого и второго рода:
E0 _ #{xrand : НейроннаяСетьг(xrand) _ 1}, Er _ #{xr : НейроннаяСетьг(xr) _ 0}. 9: Вернуть Eo, Er.
ЛИТЕРАТУРА
1. Пестунов А. И., Перов А. А. Программная библиотека для статистического анализа итеративных блочных шифров // Информационное противодействие угрозам терроризма. 2015. №24. С. 197-202.
УДК 003.26 Б01 10.17223/2226308X713/17
О СКРЫТОМ КОМПАКТНОМ СПОСОБЕ ХРАНЕНИЯ ДАННЫХ1
В. А. Романьков
Предлагается принципиально новый способ компактного хранения данных в скрытом виде. Каждое из этих данных может быть извлечено единообразным способом. Приводится сравнение с другими возможными способами такого хранения.
Ключевые слова: данные, хранение, скрытость, компактность, доступ.
Исследование поддержано Программой фундаментальных научных исследований СО РАН I. 1.1.4, проект №0314-2019-0004.
Допустим, имеются данные ai, i = 1,... , n, каждое из которых представляет собой бинарную строку длины m, то есть ai Е {0,1}m. Предположим, что эти данные необходимо хранить в компактном скрытом виде X, имея простой единообразный способ извлечения из X любого из них. Такая проблема может возникнуть при хранении в облаке, а также в других случаях защищённого хранения. Например, её решение может иметь значение для поисковых систем. Может также возникнуть потребность хранить данные, разбитые на подмножества по типу данных или их принадлежности.
В работе представлен принципиально новый способ решения указанной проблемы. Но сначала рассмотрим некоторые напрашивающиеся идеи такого хранения.
Хранение в зашифрованном виде. Можно использовать какую-нибудь систему шифрования и хранить данные в виде Ek(ai), i = 1,... ,m, где Ek — функция зашифрования с ключом k. Такой способ, конечно, обеспечивает свойство «скрытости», но непонятно, как обеспечить компактность. Нужно хранить ключи, зашифрованные данные могут быть существенно большего объёма и т. п. Эффективность такого способа хранения зависит от свойств выбранной системы шифрования. Если использовать один ключ для всех данных, то ключ расшифрования не может быть делегирован пользователю, которому необходимо извлечь только какие-то данные, к которым ему может быть предоставлен доступ. Возможно, что указанные недостатки могут быть устранены, но для этого требуется отдельное исследование.
Использование Китайской теоремы об остатках. Напомним эту известную теорему (см., например, [1]). Предположим, что целые числа mi,... , mn ^ 2 попарно взаимно просты. Тогда система сравнений x = b (mod mi), i = 1,... , n, всегда имеет решение X, которое находится следующим образом. Полагаем Mi = M/mi, где M =
n
= П mi. В силу попарной взаимной простоты модулей mi существуют числа Li, для
i= 1
n
которых LiMi = 1 (mod mi). Тогда число X = biLiMi является решением системы.
i= 1
Более того, решением является любое целое число Y, такое, что Y = X (mod M), и других решений нет.
Покажем, как можно организовать скрытое компактное хранение данных, используя эту теорему. Сопоставим каждой последовательности ai Е {0,1}m натуральное число bi, получающееся, если считать запись ai выражением числового значения в двоичной системе. Выберем попарно взаимно простые модули mi > bi, i = 1,..., n. Храним данные bi в виде решения X рассмотренной выше системы. Для извлечения bi вычисляем X по модулю mi. Скрытость и возможность единообразного извлечения данных обеспечены, чего нельзя сказать в общем случае о компактности этого способа хранения данных. Действительно, если числа bi достаточно большие, то и модули mi большие. Если данных достаточно много, то число M (а также числа Mi) становится нереально большим. Это не только замедлит вычисления, но может сделать само хранение практически нереализуемым.
Хранение в «магическом» квадрате. Пусть d = d1, ..., di,... —последовательность целых чисел. Дискретная производная dd этой последовательности определяется формулой
d = — di, d3 — d2,..., di+i — di,...
Очевидно, что производная аддитивна. Для любой последовательности определяется дискретный интеграл f = f 1, f2,... , fi,..., f' = d. Интеграл определяется с точностью
до произвольной константы о формулой
г-1
Л = 0 + Е &3.
3=1
При выборе /1 = о все остальные компоненты интеграла / определяются однозначно. Обозначим / = Iо).
Пусть дана постоянная последовательность о(0) = о,... , о,... Обозначим о(1) = = I(о(0),о), о(2) = I(о(1),о), ... Тогда значение к-й производной от о(к) равно о(0). Записываем это в виде [о(к),г; к] = о. При г < к имеем [о(г),х; к] = 0. Мы несколько упростили запись, поставив в правую часть значение постоянной последовательности, а не саму эту последовательность. Символ г введён для различия в дальнейшем переменных интегрирования.
Пусть имеется п ненулевых целых чисел о1,... ,оп. Для каждого г вычислим интеграл о(п г). Построим квадратную таблицу со стороной п +1. Запишем в нижней строке первые п +1 элементов интеграла о*"" г). Получим набор (одд,... , огд,га+1).
Затем для каждого элемента нижней строки ог,1,3 определим постоянную последовательность о^- и вычислим для неё интеграл о(г) 3-. Тогда [о(г) 3-, у; г] = огд,3-. Поставим в соответствующий столбец таблицы первые п +1 элементов этого интеграла.
Пусть X означает сумму всех таких таблиц.
Теорема 1. Справедлива формула
[X, у; г, г; п - г]м = о*.
Формула означает, что г-кратное дифференцирование столбцов с последующим (п — г)-кратным дифференцированием нижней строки даёт в левом нижнем углу значение ог.
Замечание 1.
— Если записывать все последовательности, а не только их начальные отрезки, то в результате проведённых операций получится бесконечная вправо и вверх таблица, в которой во всех клетках будет стоять соответствующая константа.
— Так как натуральное отображение вида Z ^ Zr является гомоморфизмом, то можно выбрать г > тах (Ьг : г = 1,...,п) и вести все построения над элементами кольца Zr.
Мы не приводим доказательство теоремы; дадим только небольшой иллюстрирующий пример.
Пример 1. Пусть Ь1 = 12, Ь2 = 7, Ь3 = 3. Вычисления ведём в кольце Z13. Запишем в общем виде начальные интервалы длины 4 от константы а:
а^ = (а, 2а, 3а, 4а), а^2 = (а, 2а, 4а, 7а), а^3 = (а, 2а, 4а, 8а).
Запишем квадраты для Ь1 = 12, Ь2 = 7, Ь3 = 3:
9 5 10
10 7 1
11 9 5
12 11 9
7 2 10
5
10 7 1 5
2 4 8 1
12 4 7
7 1 2 10
11 9 7 5
12 11 10 9
6 12 5 11
3 6 9 12
Тогда
X
4 8 5 4 11 9 6 12
5 10 1 2 9 5 7 1
Для проверки проводим вычисления, записывая только те строки и столбцы, значения в которых полностью определяются заданными квадратами:
[X, y; 1]
6 12 12 5 6 12 5 10 9 5 7 1
[X, y; 2]
0078 10 7 11 9
[X, y; 3]
3 6 9 12
[X, y; 1, z; 3]i,i = 12, [X,y;2,z;2]i,i = 7, [X, y; 3, z; 1]M = 3.
ЛИТЕРАТУРА 1. Романьков В. А. Введение в криптографию. М.: Форум, 2012.
УДК 519.17 DOI 10.17223/2226308X/13/18
ЭКСПЕРИМЕНТАЛЬНАЯ ОЦЕНКА ПРОИЗВОДИТЕЛЬНОСТИ ОДНОГО КЛАССА КРИПТОАЛГОРИТМОВ НА ОСНОВЕ ОБОБЩЕНИЯ СЕТЕЙ ФЕЙСТЕЛЯ
В. М. Фомичёв, Д. А. Бобровский, А. М. Коренева
Представлены результаты экспериментальных исследований производительности алгоритма 256-3 (с блоком 256 бит и тремя функциями обратной связи), предложенного российскими исследователями в 2018 г. Производительность 256-3 оценивается величиной 24,57 циклов на байт. Проведено сравнение с известными блочными шифрами, получены оценки для программных реализаций алгоритмов на языке программирования C++ с использованием библиотеки Crypto++. Установлено, что производительность 256-3 от 1,2 до 2,6 раз превышает производительность алгоритмов «Магма» (ГОСТ 28147-89), «Кузнечик» (ГОСТ 34.122018), SEED, HIGHT, Camellia-256, Kalyna-256/256, MARS-256, CAST-256, что указывает на положительные (с позиции синтеза) эксплуатационные качества алгоритма 256-3.
Ключевые слова: блочные шифры, производительность шифрования, 256-3, ГОСТ 28147-89, ГОСТ 34.12-2018, «Магма», «Кузнечик», AES, Rijndael, SEED, SM4, HIGHT, Camellia, Kalyna, MARS, CAST, RC6, Crypto++.
Введение
Развитие информационных технологий и необходимость защиты информации определяют актуальность разработки новых криптографических алгоритмов, соответствующих современным требованиям к криптографической стойкости и эксплуатационным качествам. Для обеспечения конфиденциальности информации при её передаче, обработке и хранении требуются алгоритмы с высокой производительностью и варьируемыми параметрами (размерами длины ключа и блока) в зависимости от типа задачи.
С целью увеличения производительности блочного шифрования в [1, 2] исследован класс регистровых преобразований R(n,r,m), реализуемых автономными регистрами сдвига длины n над множеством V = {0,1}r c m обратными связями, n > m ^ 1. Идея