2. Beaulieu R., Shors D., Smith J., et al. The Simon and Speck Families Of Lightweight Block Ciphers. Cryptology ePrint Archive, Report 2013/404, 2013.
3. Abed F., List E., Lucks S., and Wenzel J. Differential and Linear Cryptanalysis of Reduced-Round Simon. ePrint Archive, Report 2013/526, 2013.
4. Vaudenay S. On the Lai - Massey Scheme // ASIACRYPT'99. LNCS. 1999. V. 1716. P. 8-19.
5. BihamE. and Shamir A. Differential Cryptanalysis of the Data Encryption Standard. Berlin; Heidelberg: Springer, 1993.
УДК 004.056.55 Б01 10.17223/2226308Х/13/36
КОДИРОВАНИЕ ИНФОРМАЦИИ МАТРИЦАМИ УОЛША
М. С. Беспалов, К. М. Малкова
Рассмотрено представление общей линейной группы ОЬ(н, 2) подгруппой автоморфизмов СЬ(Ж, 2) при мультипликативной нотации в её действии в пространстве , где N = 2П. Каждая матрица как элемент группы Gh(n, 2) определяет упорядочения группы Zn и её группы характеров, популярных при цифровой обработке информации в виде дискретных функций Уолша. На основе быстрого преобразования Уолша и данного соответствия создан программный прототип автоматической системы кодирования выходного сигнала в виде перестановки набора спектральных характеристик.
Ключевые слова: дискретные функции Уолша, кодовая матрица, быстрое преобразование Уолша, кронекерово произведение.
Для Z2 — аддитивной группы поля Е2 — существуют разные представления, среди которых нас интересуют её мультипликативное представление ({1, -1}; ■) и векторное представление ({Б, А}; о) с операцией умножения по Адамару векторов Б = (1 1), А = (1 — 1) € К2. Для декартова произведения Zn группы аддитивное представление рассматривается относительно операции ф покоординатного сложения по модулю 2, а мультипликативное — относительно той же операции о покоординатного умножения.
Популярные при цифровой обработке сигналов дискретные функции Уолша [1, 2] уровня п в работе [3] определены без привлечения нумерации как кронекерово произведение векторов Б и А в количестве п сомножителей.
Теорема 1. Множество дискретных функций Уолша уровня п составляет под-
^, где N = 2П, изоморфную группе Zn.
группу G мультипликативной группы Z^, где N = 2n, изоморфную группе Z^.
При декартовом произведении Zn векторного представления Z2 = ({Б, А}; о) элементы будем записывать через разделительный знак ®, совпадающий с символом кронекерова произведения, что доказывает изоморфизм. Если перейдём к числам Б = (11) и А = (1 — 1) и выполним кронекерово произведение, то получим элементы мультипликативной группы ZN. На основе свойства
(и ® у) о (т ® ¿) = (и о т) ® (у о ¿),
верного для и,т € , у,Ь € , устанавливается их групповое свойство.
Рассмотренная подгруппа О С ZN составляет группу характеров конечной абеле-вой группы Zn, изоморфизм которых вытекает из теории двойственности Понтряги-на [4].
Для решения задач цифровой обработки информации [2] эти группы нас интересуют в виде упорядоченных групп. В [5] подробно разбираются три известные нумерации
(Адамара, Пэли и Уолша) дискретных преобразований Уолша и высказывается сожаление об отсутствии других изученных «с точки зрения быстроты сходимости спектров при разложении сигналов и удобств практического применения». Рассматриваются перестановки на N = 2п элементах в виде двоичной инверсии и кода Грея, организующие переходы между нумерациями.
Определение 1 [3]. Назовём Ш-матрицей уровня п такую, что все её строки суть различные дискретные функции Уолша уровня п; все её столбцы — различные дискретные функции Уолша уровня п.
Таким образом, любая Ш-матрица V задаёт два линейных порядка на множестве всех дискретных функций Уолша выбранного уровня: по строкам и по столбцам для двух возможных способов кодирования у = Vx и у = XV. Невырожденная матрица К как элемент общей линейной группы ОЬ(п, 2) также задаёт два аналогичных линейных порядка элементов группы Ъп. Так как матрица К, как показано далее, определяет порядок следования отсчётов выходного сигнала при цифровой обработке информации, то назовём её кодовой матрицей для данного набора спектральных характеристик.
Теорема 2 [3]. Множество невырожденных булевых матриц порядка п изоморфно множеству Ш-матриц уровня п.
Указана следующая процедура вычисления Ш-матрицы по кодовой. Зададим матрицы Сп размера п х 2п рекуррентным соотношением
С = (0 1), Сп =( Сп-1 Сп-1) , (1)
\ 0п— 1 1п— 1 )
где блоки 0п—1 = (0 0... 0), 1п—1 = (11... 1) суть строки длины 2п—1. В столбцах матрицы Сп вида (1) лексикографически упорядочены инверсии двоичных кодов чисел от 0 до 2п — 1. По формуле (над полем Е2)
СТ ■ К ■ Сп (2)
вычислим булеву матрицу порядка N = 2п, в которой произведём перекодировку элементов: 1 ^ — 1, 0 ^ 1.
Обратная процедура выделения кодовой матрицы из Ш-матрицы: выборкой (20, 21,..., 2п—1) выделим главную подматрицу, в которой произведём обратную перекодировку элементов: 1 ^ 0, —1 ^ 1.
Для сокращения записи кодовую матрицу заменяем на кодовую метку с записью строк в шестнадцатиричной системе счисления. Все шесть Ш-матриц уровня 2 явно записаны в [5, 6]. Четыре из них симметричные и соответствуют нумерациям Адамара, Пэли, Уолша и предложенной в [7]. Их кодовые метки 21, 12, 13 и 31 соответственно. Для уровня три их кодовые метки 421, 124, 136 и 652, а для уровня четыре — 8421, 1248, 136С и СА52 соответственно. Общее число Ш-матриц уровня п, совпадающее с порядком группы ОЬ(п, 2), вычисляется по формуле (2п — 20)(2п — 21)... (2п — 2п—1).
Известно, что ]-я строка произведения матриц равна линейной комбинации строк второго сомножителя с коэффициентами из ]-й строки первого сомножителя. По этому правилу реализация левого умножения в (2) организует упорядочение всех элементов векторного пространства Ъп относительно упорядоченного базиса, указанного в строках матрицы К. Правое умножение в (2) организует упорядочение базиса векторного подпространства О С Ъ^. В терминах блочного кодирования [8] произведение
К ■ С составляет порождающую матрицу для блочного линейного (2п, п)-кода, который (в результате перекодировки 1 ^ — 1, 0 ^ 1) превращается в упорядоченный ортогональный базис пространства из дискретных функций Уолша уровня п.
Если умножения в формуле (2) рассматривать справа налево, а не стандартно слева направо, то получим аналогичные взаимосвязи для столбцов, а не строк. Известно, что ]-й столбец произведения матриц равен линейной комбинации столбцов первого сомножителя с коэффициентами из ]-го столбца второго сомножителя. Тогда правое умножение в (2) организует упорядочение всех элементов векторного пространства Ъп в порядке, заданном в столбцах К. Левое умножение в (2) организут упорядочение базиса векторного подпространства О С Ъ^ так, что произведение СТ ■ К составляет транспонированную порождающую матрицу (2п,п)-кода, переходящую в упорядоченный ортогональный базис пространства .
Авторами создан программный прототип (С#), который моделирует процессы кодирования и декодирования числовых данных с использованием кодовой матрицы. Тип исходных числовых данных, в поле которого будут происходить все программные расчёты, выбирает пользователь, что даёт возможность выделять минимальное необходимое количество байт памяти. В программе предусмотрено задание кодовой метки вручную и случайно. Перед кодированием происходит формирование кодовой матрицы из кодовой метки, её визуализация и проверка на невырожденность. Если матрица невырожденная, то над исходным числовым массивом совершается быстрое преобразование Уолша и перестановка элементов выходного массива в порядке, указанном формулой (2) в кодовой матрице. Для декодирования сообщения сначала происходит обратная перестановка элементов, затем обратное быстрое преобразование Уолша.
Например, для некоторого сообщения в виде даты выходной сигнал можно выдать в нумерации Пэли у = (24, 7, 2,1, 3, 3, 9,18) для кодовой метки 124 или в переставленном виде у = (24, 3, 9, 2,1,18, 3, 7) для кодовой метки 463. Предложим разные варианты кодирования. Так как сумма цифр даты меньше 64, для начального отсчёта отведём шесть бит. Так как для представления начального отсчета (числа 24) достаточно пяти, то на каждый из остальных отсчётов алгоритм отводит по пять бит. Получим в первом случае на выходе
01100000111000100000100011000110100110010.
Для выходного сигнала с кодовой меткой 463 каждый отсчёт представим в фибонач-чиевой системе счисления и получим
10001000110001100010110011011010000110001101001.
На базе дискретных функций Уолша традиционно обрабатывается видео- и аудиоинформация. С помощью системы кодовых меток можно организовать многоканальную систему перенастраивающихся декодеров при передаче скрытой информации по открытым каналам связи.
Характерной особенностью выходного слова служит его представление в алфавите из двух символов (а не трёх) за счёт отсутствия разделительных знаков между отсчётами, которые в данных примерах после простых манипуляций расставляются. Эта особенность важна для массивов с неизвестной заранее разрядностью отсчётов исходного сообщения.
Описанная конструкция допускает р-ичное обобщение, теория которого в виде аналогов приведённых определений, теорем и выносных формул разработана в [9].
ЛИТЕРАТУРА
1. Малоземов В. Н., Машарский С. М. Основы дискретного гармонического анализа. СПб.: Лань, 2012.
2. Залманзон Л. А. Преобразование Фурье, Уолша, Хаара и их применение в управлении, связи и других областях. М.: Наука, 1989.
3. Беспалов М. С. Собственные подпространства дискретного преобразования Уолша // Проблемы передачи информации. 2010. Т. 46. №3. С. 60-79.
4. Моррис С. Двойственность Понтрягина и строение локально компактных абелевых групп. М.: Мир, 1980.
5. Трахман А. М., Трахман В. А. Основы теории дискретных сигналов на конечных интервалах. М.: Сов. радио, 1975.
6. Беспалов М. С., Скляренко В. А. Дискретные функции Уолша и их приложения. Владимир: ВлГУ. 2014.
7. Беспалов М. С. Новая нумерация матриц Уолша // Проблемы передачи информации. 2009. Т. 45. №4. С. 43-53.
8. Питерсон У., Уэлдон Э. Коды, исправляющие ошибки. М.: Мир, 1976.
9. Беспалов М. С. Дискретное преобразование Крестенсона // Проблемы передачи информации. 2010. Т. 46. №4. С. 91-115.
УДК 519.7 DOI 10.17223/2226308X/13/37
ПРИМЕНЕНИЕ ИНВЕРСНЫХ ЛАЗЕЕК ДЛЯ ПОСТРОЕНИЯ АТАК ИЗ КЛАССА «УГАДЫВАЙ И ОПРЕДЕЛЯЙ» НА ХЕШ-ФУНКЦИИ
СЕМЕЙСТВА MD41
И. А. Грибанова, А. А. Семёнов
Приведены новые атаки из класса «угадывай и определяй» для хеш-функций вида MD4-k, k > 39. Описываемые атаки основаны на концепции инверсной лазейки. Для решения задач криптоанализа, ослабленных подстановками угадываемых бит, используются SAT-решатели. Задача поиска инверсной лазейки, обеспечивающей атаку с относительно малой трудоёмкостью, ставится в форме задачи минимизации специальной псевдобулевой функции. Для её решения используются три метаэвристических алгоритма: алгоритм поиска с запретами, (1+1)-FEAp и специальный вариант генетического алгоритма. Перечисленные алгоритмы дают атаки на рассматриваемые функции с близкими оценками трудоемкости. Для функции сжатия полнораундового MD4 лучшие атаки строит генетический алгоритм.
Ключевые слова: задача поиска прообразов криптографической хеш-функции, атаки из класса «угадывай и определяй», инверсные лазейки, SAT.
1. О понятии инверсной лазейки
Понятие инверсной лазейки (Inverse Backdoor Set, IBS) введено в [1]. Кратко напомним его суть. Рассматривается задача обращения (поиска прообразов) произвольной функции вида
f : {0,1}n ^{0,1}m, (1)
заданной программой (алгоритмом) Mf. Более точно, требуется по произвольному 7 Е Е Range f найти такой а Е {0,1}n, что f (а) = 7. Подход к решению данной задачи,
1 Работа выполнена при финансовой поддержке Российского научного фонда, проект № 16-11-10046. Грибанова И. А. поддержана стипендией Президента РФ СП-3545.2019.5.