Построение различителей для итеративных блочных шифров на основе нейронных сетей | ПДМ. Приложение. 2020. № 13. DOI: 10.17223/2226308X/13/16

Построение различителей для итеративных блочных шифров на основе нейронных сетей

Предлагается новый универсальный подход к построению атак-различителей на итеративные блочные шифры, подразумевающий использование нейронных сетей, предназначенных для классификации растровых изображений. Описываются два метода, основанных на идее представления шифртекстов после разного числа раундов шифрования в виде растровых изображений с последующим обучением нейронной сети распознавать эти изображения. Показано, что для ряда современных блочных шифров предлагаемый подход более эффективен, чем универсальные различители, основанные на статистических тестах.

Construction of distinguishers for iterative block ciphers on the base of neural networks.pdf В работе предлагается новый универсальный подход к построению атак-различи-телей на итеративные блочные шифры, где используются нейронные сети, предназначенные для классификации растровых изображений. Идея данного подхода возникла в результате наблюдения того, что преобразованный в растровое изображение (графический эквивалент) шифртекст имеет различную текстуру (паттерн) в зависимости от числа раундов. При этом с ростом числа раундов такая текстура становится менее выраженной и приближается к случайной. В рамках этого подхода предлагаются два метода: «эталонный» и метод соседних раундов. В первом нейронная сеть используется для выявления различий в текстурах графических эквивалентов шифртекста при различном числе раундов и эталонной последовательности, неотличимой от случайных чисел. Второй метод предполагает выявление различий в текстурах графических эквивалентов соседних раундов и, что является его достоинством, не требует наличия эталонной последовательности, однако, забегая вперед, отметим, что «эталонный» метод оказался немного более эффективен. В экспериментах в качестве эталонной последовательности использован шифртекст полнораундового шифра AES256. Для реализации предлагаемых методов необходимо выполнить процесс обучения свёрточной нейронной сети на графических эквивалентах шифртекстов (алгоритм 1). Для формирования выборки выполняется шифрование на разном числе раундов, что даёт выборку выходных последовательностей блочных шифров с разными статистическими свойствами. На шагах 2-3 алгоритма 1 с помощью криптографической программной библиотеки «УНИБЛОКС-2015» выполняется шифрование в режиме Алгоритм 1. Обучение нейронной сети для распознавания шифртекста после заданного числа раундов 1: Функция ОБУЧИТЬНЕйРОННУЮСЕТЬ(СфЛ,ег, r, M) // Cipher - итеративный блочный шифр; // r - число раундов шифра; // M - размер обучающего множества. 2: Сгенерировать M выборок с помощью шифра AES256 и получить y)rand = _ /„"-rand „"rand^ = (У1 ,..., yM ). 3: Сгенерировать M выборок с помощью шифра Cipher и получить У = (у[,... , yrM). 4: Преобразовать множества выборок yrand и Уr в изображения Уrand = (yrand, ...,yMnd) и Уr = (yГ,...,yM). 5: Обучить нейронную сеть различать изображения из обучающих выборок yrand и Уг. 6: Вернуть НейроннаяСетьг(image), которая относит image к 0 (случайному) или 1 (r-раундовому шифртексту). счётчика (CTR) [1]. В качестве входной последовательности для блочного шифра использованы последовательные числа 0, 1, 2, 3 и т. д. На шаге 4 шифртексты преобразуются в формат растровых графических изображений с помощью разработанной программной утилиты на языке С+-+. В процессе обучения нейронная сеть запоминает основные паттерны, характерные для шифртекстов на разном числе раундов, которые использует для последующей категоризации. После обучения свёрточной нейронной сети выполняется распознавание шифртек-стов. В зависимости от выбранного метода на контрольной выборке нейронная сеть сравнивает шифртексты на соседних раундах шифрования или шифртексты выбранного раунда с «эталоном»-полнораундовым AES256, подсчитывает процент верных решений при определении принадлежности элемента контрольной выборки к тому или иному множеству. С увеличением числа раундов шифрования и соответственно улучшением статистических свойств модель увеличивает значение E - число ошибок, допущенных моделью при определении принадлежности к тому или иному раунду на контрольной выборке. Алгоритм 2 описывает атаку-различитель. С увеличением числа раундов ошибка при различении шифртекстов и эталонной случайной последовательности возрастает и стремится к 0,5. Алгоритм 3 описывает схему проведения экспериментов, в которых анализируется способность предлагаемого подхода различать шифртексты на примере «эталонного» метода. Обоснование эффективности метода соседних раундов выполняется аналогично, за исключением того, что генерируются не выборки шифра AES256, а выборки xr и xr+1. Размер обучающей выборки выбирается нейронной сетью в зависимости от исходных параметров (в большей степени - от размера партии, то есть количества изображений, в которых нейронная сеть выполняет поиск общих признаков). Экспериментально определено, что 500 шифртекстов достаточно для обучения. Контрольная выборка составляет 20 % от обучающей. При этом процент ошибок нейронной сети на первых раундах выше (так как соседние раунды различимы между собой много меньше, чем при сравнении с эталонным шифртекстом), однако при достижении числа раундов, при котором обеспечиваются удовлетворительные статистические свойства, ошибка также сводится к 0,5. Алгоритм 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: Функция ВычислитьОшиБКУ(Cipher, r) 2: Выбрать размер обучающей выборки M. 3: НейроннаяСетьг(image) := Обучи^НеЙРОННУЮСеть^рЛ^г, r, M). 4: Выбрать количество контрольных выборок N. 5: Сгенерировать N контрольных выборок с помощью шифра AES256 и получить Xrand _ (xrand xrand) 6: Сгенерировать N контрольных выборок с помощью шифра Cipher и получить хr _ (x1, . . . , xN). 7: Преобразовать множества XTand и Xr в изображения Xrand _ (x1and,... , x™nd) и хr _ (xrl,...,xN). 8: Экспериментально определить ошибки первого и второго рода: E0 _ #{xrand : НейроннаяСетьг(xrand) _ 1}, Er _ #{xr : НейроннаяСетьг(xr) _ 0}. 9: Вернуть Eo, Er.

Ключевые слова

блочный шифр, машинное обучение, нейронная сеть, статистический анализ, атака-различитель, block cipher, machine learning, neural network, statistical analysis, distinguishing attack

Авторы

ФИООрганизацияДополнительноE-mail
Перов Артём АндреевичНовосибирский государственный университет экономики и управления (НИНХ)старший преподавательperov_artem@inbox.ru
Пестунов Андрей ИгоревичНовосибирский государственный университет экономики и управления (НИНХ)кандидат физико-математических наук, доцент, заведующий кафедрой информационных технологийpestunov@gmail.com
Всего: 2

Ссылки

 Построение различителей для итеративных блочных шифров на основе нейронных сетей | ПДМ. Приложение. 2020. № 13. DOI: 10.17223/2226308X/13/16

Построение различителей для итеративных блочных шифров на основе нейронных сетей | ПДМ. Приложение. 2020. № 13. DOI: 10.17223/2226308X/13/16