Эффективная структурная атака на криптосистему Мак-Элиса-Сидельникова
И. В. Чижов, С. А. Конюхов, А. М. Давлетшина
Аннотация—В работе предлагается алгоритм восстановления секретного ключа криптосистемы Мак-Элиса-Сидельникова в общем виде: с и £ N копиями кода Рида-Маллера. Задача восстановления секретного ключа криптосистемы Мак-Элиса-Сидельникова сводится к и задачам восстановления секретного ключа криптосистемы Мак-Элиса, построенной на кодах Рида-Маллера. Доказано, что предложенная атака является полиномиальной. Описано множество ключей, для которых алгоритм применим. Данному множеству дано название множество слабых ключей. Авторы считают, что подавляющее число ключей криптосистемы являются слабыми. Приведена мотивация, в соответствии с которой следует предполагать, что доля слабых ключей в пространстве ключей криптосистемы близка к единице. Описаны методы подсчёта числа слабых ключей и проведены вычислительные эксперименты подтверждающие это предположение.
Ключевые слова—криптосистема Мак-Элиса, коды Рида-Маллера, постквантовая криптография, кодовые криптосистемы, полиномиальная атака.
I. Введение
В 1978 году Робертом Мак-Элисом была предложена криптосистема с открытым ключом [1]. Главная её особенность состоит в том, что стойкость криптосистемы основана на сложности некоторых задач из теории кодов, исправляющих ошибки, а не, например, на сложности теоретико-числовых задач факторизации или дискретного логарифмирования. В связи с этим эта криптосистема устойчива к атакам, использующим алгоритм Шора [2], и поэтому представляет интерес в контексте возможности создания квантового компьютера.
Исследования криптосистемы Мак-Элиса важны в силу широкого распространения технологии «Блокчейн», в которой используются схемы подписи и протоколы обмена ключами для создания и хранения записей. Причём стойкость этих криптографических механизмов определяет надёжность всей технологии и доверие к динамически развивающейся области криптоэкономики. После появления квантового компьютера с большим количеством кубитов все криптографические валюты мира, которые используют механизмы на основе задач факторизации чисел и дискретного логарифмирования в циклической группе, станут ненадёжными. Поэтому разработка постквантовых криптографических механизмов, т. е. таких
Статья получена 29 июня 2020.
Иван Владимирович Чижов, МГУ им. М. В. Ломоносова, Федеральный исследовательский центр «Информатика и управление» РАН, АО «НПК «Криптонит» (email: [email protected]).
Сергей Андреевич Конюхов, МГУ им. М. В. Ломоносова, ОАО «ИнфоТеКС» (email: [email protected]).
Александра Маратовна Давлетшина, МГУ им. М. В. Ломоносова, ОАО «ИнфоТеКС» (email: [email protected]).
Работа частично поддержана грантом РФФИ №18-29-03124мк
механизмов, которые останутся стойкими против атак с использованием квантового компьютера, позволит сохранить криптовалюты и технологию «Блокчейн».
В 2019 году интерес к постквантовым криптографическим механизмам был подогрет Национальным агентством стандартов и технологий США (NIST USA), которое объявило конкурс на серию стандартов постквантовой криптографии. Теория кодов, исправляющих ошибки, является одним из основных источников конструкций схем постквантовой подписи и протоколов передачи секретных ключей.
В алгоритме шифрования криптосистемы Мак-Элиса используются случайные векторы некоторого фиксированного веса, а значит, необходимо наличие хорошего датчика случайных чисел. В работе [1] рекомендовалось использовать коды Гоппы. В 1986 году Г. Нидеррай-тер [3] предложил эквивалентный вариант криптосистемы Мак-Элиса, в котором нет необходимости в датчике случайных чисел. Однако в этой криптосистеме ниже скорость передачи, то есть отношение длины открытого текста к длине шифртекста.
В 1994 году В. М. Сидельников предложил использовать коды Рида-Маллера [4], так как это увеличило бы скорость передачи криптосистемы. Кроме того, в 2001 году группа французских исследователей на основе конструкции Нидеррайтера предложила схему постквантовой подписи CFS [5]. Оригинальная схема подписи строится на двоичных кодах Гоппы. Однако именно на кодах Рида-Маллера эта схема подписи будет иметь достаточно быстрый алгоритм формирования подписи, что делает такой вариант привлекательным для использования в различных приложениях.
В течении продолжительного времени не существовало эффективных атак на криптосистему Мак-Элиса, построенную на кодах Рида-Маллера. Ситуация изменилась в 2007 году, когда Л. Миндер и А. Шокроллахи построили на неё структурную атаку [6].
Окончательно вопрос о состоятельности предложения В. М. Сидельникова был решён в 2014 году. И. Чижов и М. Бородин построили атаку, которая для широкого класса параметров выполняется за полиномиальное число операций, а для оставшихся самая трудоёмкая операция — применение лишь одного шага из атаки Л. Миндера и А. Шокроллахи [7].
Вместе с тем в работе [4] предлагается более общая конструкция, которая использует не одну, а u G N, u > 1, копий кода Рида-Маллера. Далее эта конструкция будет называться криптосистемой Мак-Элиса-Сидельникова. На эту схему известные атаки Миндера-Шокроллахи и Чижова-Бородина уже работать не будут. Таким образом, до настоящего момента криптосисте-
ма Мак-Элиса-Сидельникова, как и соответствующая ей схема подписи CFS, могут рассматриваться в качестве кандидата в постквантовые криптографические алгоритмы. А значит она потенциально может заменить собой схемы, использующиеся во всех реализациях технологии «Блокчейн».
В настоящей работе строится эффективная атака на криптосистему Мак-Элиса-Сидельникова, в случае применения ключей специального вида.
В атаке из работы [7] в качестве базового инструмента используется операция произведения Адамара линейных кодов. Попытки использовать эту операцию в криптоанализе кодовых криптосистем можно встретить, например, в работе [8]. Также, используя произведение Адамара кодов, были достигнуты определённые успехи в анализе криптосистемы BBCRS [9]. Произведение Адамара кодов, и, в частости, квадрат Адамара кода, представляет большой исследовательский интерес. Так, в работе [10] рассмотрены вероятностные оценки размерности квадрата случайных кодов, исправляющих ошибки.
Отметим, что в работе [11], техника с использованием произведения Адамара применяется и к анализу криптосистемы Мак-Элиса, построенной на подкодах кодов Рида-Маллера, хоть и маленького коранга.
При построении структурных атак на криптосистему Мак-Элиса-Сидельникова, например, в работе [12], где была описана атака для специального подмножества ключей, стала очевидной необходимость исследования квадрата конкатенированного кода Рида-Маллера.
Основным результатом настоящей работы является расширение области применимости атаки по сравнению с существующей атакой [12]. Новая атака применима для всего множества доменных параметров криптосистемы. Кроме того, вводится понятие слабого ключа, как ключа, уязвимого к предложенному алгоритму атаки. Приводятся методы оценки количества слабых ключей. Проведены вычислительные эксперименты, дающие основания полагать, что множество слабых ключей представляет собой подавляющее большинство во множестве всех возможных ключей изучаемой криптосистемы.
II. Криптосистема Мак-Элиса-Сидельникова
Обозначим через Уп линейное векторное пространство длины п над полем Двоичным линейным [п, к]-кодом называется линейное подпространство С пространства Уп размерности к. Матрица С размера к х п, состоящая из базисных векторов С, называется порождающей матрицей кода С.
Под кодовым расстоянием линейного кода С обычно понимают минимальный вес ненулевых кодовых слов.
Дуальным кодом С^ к коду С с порождающей матрицей С называется линейный [п,п — к]-код, состоящий из векторов х £ Уп, для которых верно равенство СхТ = 0.
Будем обозначать результат применения подстановки а £ Яп к вектору а длины п как аа, т. е. если а = (а17..., ап), то аа = (а..., аа(п)). Далее, результат применения этой же подстановки к каждому вектору из некоторого множества векторов и длины п представляет собой множество Xа = {ха\х £ X}. Очевидно, что Xа является линейным кодом, если и только если X — линейный код.
Два линейных кода А и В длины п называются эквивалентными, если существует а £ Бп такая, что А = Ва. Эквивалентные коды имеют одинаковую размерность, и одинаковое кодовое расстояние.
Так как в работе особое внимание уделяется кодам Рида-Маллера, приведём их определение.
Определение 1 ([13]). Для произвольного г, 0 < г <
т, двоичный код Рида-Маллера ЯМ(г, т) порядка г и длины 27 определяется как множество всех векторов-значений булевых функций /(у1,...,у7), задаваемых многочленом Жегалкина, степень которого не превосходит г. Известно [13], что код ЯМ(г, т) имеет размерность к = ^21=о (7) и кодовое расстояние ! = 2т-г.
Прежде чем перейти к описанию криптосистемы Мак-Элиса-Сидельникова и постановке задачи криптоанали-тика приведём определение конкатенированного кода.
Определение 2. Пусть С — некоторый [п, к]-код с порождающей матрицей С, пусть также Д — упорядоченный кортеж (И1:..., Ии-1) невырожденных (к х к)-матриц. Тогда [и ■ п, к]-код Сд с порождающей матрицей вида
Сд = (С\\И1С\\ ... \Hu-iC)
будем называть конкатенированным кодом, построенным на базовом коде С.
Договоримся в дальнейшем, что в случае, когда длина Д равна 1, т. е. если Д = (И), обозначать код Сд просто как Сн.
Криптосистема Мак-Элиса-Сидельникова — криптосистема с открытым ключом, предложенная В. М. Си-дельниковым в работе [4]. Параметры криптосистемы
и £ М, и > 2, т £ М, г £ М, 0 < г < т являются доменными и не включаются ни в закрытый, ни в открытый ключ.
Секретный ключ: набор матриц (М1,..., Ми, Ра).
Абонент выбирает и невырожденных (к х к)-матриц М\,...,Ми, и подстановку а £ Би.п. Набор матриц (М1,..., Ми, Ра) объявляется секретным ключом, здесь Ра — перестановочная матрица размера ип х ип, соответствующая подстановке а £ Бип. Открытый ключ: матрица С.
По закрытому ключу (М\,..., Ми, Р) абонент строит матрицу:
С = (МЯ\\ ... \\МиЯ)Р,
где Я — порождающая матрица кода КМ(г, т). Матрица С объявляется открытым ключом.
В текущей работе операции шифрования и расшифрования никак не задействованы, поэтому опустим их описание, подробности см. [4].
Сформулируем теперь задачу криптоаналитика. Задача криптоаналитика — найти по открытому ключу С такие матрицы М1,..., Ми, Р, что будет выполнено равенство С = (МЯ\\ ... \\МиЯ)Р.
Матрица М1 является невырожденной, поэтому последнее соотношение можно переписать в виде
G ■ P-1 = M1
(R\\M-1 M2R\\\\ ... \\M-1MUR).
Матрица Мх • (Е\\М-1Ы2Е\\\\... \\Ы-1ЫиЕ) порождает некоторый код КМА(т,ш) для Д = (Н1 = М-1М2,..., Ни-1 = М-1Ми). Так как матрица Р является перестановочной, то такой будет и матрица Р-1. Пусть ей соответствует подстановка 7 € Бип. Тогда ОР-1 порождает код С1, если О порождает код С.
Это рассуждение позволяет сформулировать следующую кодовую задачу криптоаналитика, полностью эквивалентную исходной задаче криптоаналитика.
Кодовая задача криптоаналитика — по коду С, заданному порождающей матрицей О, являющейся открытым ключом, найти кортеж Д = (Н1:..., Ни—1) невырожденных двоичных матриц и подстановку 7 € Би.п, что выполнено следующее равенство кодов
С7 = ЯМА(г, ш).
Далее в работе предложено решение кодовой задачи криптоаналитика в случае произвольного значения параметра и > 1. В конце работы даётся методика получения оценок количества ключей, для которых применима атака. Проведены вычислительные эксперименты.
Техника построения атаки существенно опирается на идеи работы [7].
III. Криптоанализ схемы
Основным инструментом атаки является произведение Адамара линейных кодов. Перейдём к описанию этой операции.
Определение 3. Пусть х = (х1,...,хп) и у =
(у1,..., уп) — векторы над полем Е2. Тогда произведением Адамара векторов х и у называется вектор
х*у = (х1 • У1,Х2 • У2,...,Хп • Уп).
Замечание. В литературе так же встречается термин произведение Шура.
В силу того, что произведение Адамара применяется к векторам покоординатно, и, на основании свойств операций в поле, равенство
(х + у) * х = х * (х + у) = х* х + у * х
выполнено для любых векторов х,у,х € Уп.
Произведение Адамара векторов можно обобщить на случай линейных кодов следующим образом.
Определение 4 ([7]). Пусть А и В — линейные коды длины п с базисами {а1,... ,о,и1) и (Ь1 ,...,Ьи2) соответственно. Тогда назовём произведением Адамара линейных кодов А и В линейный код, который является линейной оболочкой векторов {аг * Ь^ |1 < г < к1:1 < 3 < к2}; обозначим его А * В. Для ц € N введём обозначение А*4 = А*- • • * А кроме того, будем считать, что
"V
д множителей
А*0 = А.
В силу свойств произведения Адамара векторов, произведение Адамара кодов обладает свойством коммутативности с операцией суммы кодов (сумма линейных подпространств). Кроме того, для любых кодов А, В и С длины п справедлив закон дистрибутивности
(А + В) * С = С * (А + В) = А * С + В * С.
В завершении сформулируем утверждение о применении к произведению Адамара кодов подстановки.
Утверждение 1. Для кодов А и В одной длины п и подстановки а € Яп выполнено:
1) А7 * Ва = (А * В)а,
2) А= А)ст.
Интересующие нас свойства линейных кодов, которые будут приведены далее, сформулированы с использованием такого понятия, как декартова степень кода.
Определение 5. Декартовой и-степенью [п, к] -кода С для некоторого натурального числа и называется [ип, ик] -код Схи, определяемый следующим образом:
Схи = {(С1\\ ... \\си)|У с* € С, г = 1, 2,...,и}.
Заметим, что код Схи порождается блочно-диагональной (ик х ип) -матрицей, у которой на диагонали стоит порождающая (к х п)-матрица кода С.
Л. Свойства произведения Адамара различных кодов
Сформулируем и докажем группу утверждений и следствий, необходимых для построения атаки на криптосистему.
Утверждение 2. Пусть А и В — линейные коды длины п, тогда
Ахи * Вхи = (А* В)хи .
Доказательство. Пусть А — порождающая матрица кода А некоторой размерности к. Обозначим за Ахи, 0 < г < и, код с порождающей матрицей вида
(6\ЬЧ\в \\А\\ в\\ •••№),
ч_„_✓ ч___✓
г—1 и—г
где 6 — нулевая (к х п)-матрица. Ясно, что код Ахи может быть выражен через сумму кодов:
Ахи = Ахи + ••• + Аххи,
Очевидно, что код Ахи * Вхи состоит лишь из нулевого кодового слова при г = 3. В силу базовых свойств произведения Адамара справедливо разложение
и
Ахи * Вхи = ^2 * В хи.
г=1
При этом порождающая матрица кода Агх и * Вгх и имеет вид
(б\\-Ч\в\\с\\в\\ •••№),
ч___✓ ч___✓
г—1 и—г
где С — порождающая матрица кода А * В. Таким образом, порождающая матрица кода Ахи*Вхи является блочно-диагональной матрицей с порождающими матрицами А * В на диагонали. □
Утверждение 3. Пусть А и В — линейные коды длины п. Тогда для любого Д длины и — 1 справедливо свойство «поглощения»
Ахи * ВА = (А* В)хи .
Доказательство. По аналогии с тем, как это было сделано в утверждении 2, запишем
AXU * BA = 0 A*U * BA.
i=i
При этом порождающая матрица кода Ахи * Вд имеет вид
(6\\---\\в \\С \\ 6\\^\\6),
ч___✓ ч___✓
г—1 и—г
где С — порождающая матрица кода А * В. Это означает, что порождающая матрица кода Ахи * Вд является блочно-диагональной матрицей с порождающими матрицами А * В на диагонали. □
Утверждение 4. Для любого линейного кода А выполнено
(Ахи)^ = (А^)хи.
Доказательство. Рассмотрим блочно-диагональную матрицу с порождающими матрицами А^ на диагонали. Очевидно, что код с такой порождающей матрицей является подкодом (Ахи)\ При этом его размерность совпадает с размерностью указанного кода, а значит эти коды совпадают. □
Приведённые утверждения могут быть применены к кодам Рида-Маллера, которые представляют для нас наибольший интерес. Для этого нужно вспомнить следующие свойства кодов Рида-Маллера.
Утверждение 5 ([13]). Для всех 0 < г12 < т произведение Адамара кодов ИМ(г1,т) и ЯМ(г2,т) — код Рида-Маллера порядка т1п(г1 + г2, т), то есть
ИМ(г1; т) * RM(г2, т) = RM(min(г1 + г2,т), т).
Утверждение 6 ([13]). Для всех 0 < г < т код ЯМ(т — г — 1, т) дуален коду КМ(г, т), то есть
ЯМ^(г, т) = RM(m — г — 1, т).
Перейдём к следствиям из доказанных утверждений, которые проливают свет на структуру конкатенированных кодов Рида-Маллера.
Следствие 1. Для всех 0 < г12 < т произведение Адамара кодов, являющихся декартовым произведением кода Рида-Маллера порядка г1 и г2 соответственно, есть декартово произведение кода Рида-Маллера порядка т1п(г1 + г2, т), то есть
КМхи(г;[, т)*КМхи(г2, т) = КМхи(тт(п +г2, т), т).
Доказательство. Непосредственно применим утверждения 2 и 5. □
Утверждение 7. Для всех 0 < г12 < т и любого Д длины и
ИМхи(г!,т)*КМд(г2, т) = RMхu(min(г1 + г2,т), т).
Доказательство. Непосредственно применим утверждения 3 и 5. □
Утверждение 8. Для всех 0 < г < т код ЯМхи(т — г — 1, т) дуален коду ЯМхи(г, т), то есть
(ЯМхи(г, т) = КМхи(т — г — 1, т).
Доказательство. Непосредственно применим утверждения 4 и 6. □
В. Атака на криптосистему
Определение 6. Пусть Ф = {х,х * у,хЛ}, где х, у — символы переменных. Множество формул над Ф описывается следующими условиями.
1) Элемент ф £ Ф есть формула над Ф глубины 1.
2) Пусть ф(х1,..., хр) — формула над Ф глубины е. Тогда хр+1 * ф и ф^, где хр+1 — символ переменной, являются формулами над Ф глубины в + 1.
3) Других формул нет.
Определение 7. Пусть С — линейный код. Замыканием [С] кода С называется множество всех кодов, которые могут представлены в виде ф(С,..., С), где ф — формула над Ф, то есть
[С] = {ф(С,...,С)\ф £ Ф}.
Теорема 1. Пусть 0 < г < 7, а кортеж Д длины и таков, что выполнено равенство
ЯМд (г, т) = ЯМхи(2г, т).
Тогда существует формула ф(х) глубины 0(г log2 т), что
RMхu(0, т) = ф (ИМд(г,т)) .
Доказательство. При построении формулы требуется различать два случая: когда г делит т, и когда нет. И в том, и в другом случае применяются операции над кодом, которые могут быть записаны в виде формулы над Ф.
Пусть г делит т, и т = дг. Заметим, что д > 2, так как по условию т > 2г. Код КМхи(0, т) можно получить, выполнив следующие действия:
1) RMД(9—1)(г,т) = КМхи((д — 1)г,т). Действительно, пусть д — 1 = 2д' + е, где е £ {0,1}. Тогда
RMД(9—1)(г,т) = (ЯМд (г, т))*4' * ИМД(г,т).
По условию RMД2(г, т) = ЯМхи(2г, т). Тогда на основании утверждения 7
(КМД?(г, т))*4' = RMхu(2q'г,m).
Если е = 0, то 2д' = д — 1. В случае, когда е = 1, применяя утверждения 3 и 7, получим требуемый код.
2) (ЯМхи((д — 1)г,т))^ = RMхu(г — 1,т). Справедливость этого соотношения следует из утверждения 8 и того, что т = дг и т — (д — 1)г — 1 = т — дг + г — 1 = г — 1.
3) ЯМхи(г — 1, т) *RMхu((q — 1)г, т) = КМхи(т — 1 , т) . Следует из утверждения 7 с учётом равенства т = дг.
4) (ЯМхи(т — 1,т))^ = КМхи(0,т). Следует из утверждения 8.
Глубина подформулы в таком случае 0(^2(д — 1)) + 3 = O(log2 т), т. к. для возведения в степень можно использовать, например, метод аддитивных цепочек.
Пусть теперь т = дг + р, где р £ {1,... ,г — 1}. Код ЯМхи(р — 1, т) можно получить, выполнив следующие действия:
1) (КМд(г,т))*' = КМхи(дг,т),
2) (яМхи(дг, т))^ = КМхи(р — 1,т).
Положим г' ^ р — 1 < г. Если г > 0, то повторим алгоритм для нового г. Глубина подформулы в таком случае 0(^2 д) + 1 = 0(^2 т).
Обратим внимание на то, что последовательность значений параметра г' строго убывает, так как г' = р — 1 < р < г. Это значит, что последовательность рекурсивного построения формулы конечна. Из этого же соотношение видно, что количество рекурсивных построений в худшем случае равно г. Таким образом, глубина формулы равна 0(г log2 ш). □
Доказательство теоремы 1 является конструктивным и на его основе формулируется алгоритм 1, который по коду ЯМд (г, ш) строит код (ЯМхи(0, ш))°.
Algorithm 1 Построение кода (RMXtt(0,m^с
Input: Порождающая матрица кода RMД (r, m). Output: Порождающая матрица кода (RMXu(0, C ^ RMa (r, m)
while r = 0 and r не делит m do q ^ [ m J' r ^ m — qr — 1 C ^ (C*q)± end while if r = 0 then
return G end if
q ^ m — 1
C ^ (C*(q-1) * (C*q)±)±
*))C
return С
G
I 1 ... 1 0 ... 0
V 0 ... 0
0 ... 0
0 ... 0 \ 0 ... 0
1 ... 1 J
Algorithm 2 Построение перестановочной матрицы P0.
Input: Порождающая матрица G0 кода (RMXu(0,m))a. Output: Перестановочная матрица P.
G ^ GaussianElimination(G0) P ^ 0 € Flnxun, counter ^ 0 € Nu for 0 < i < u — 1 do
counter [i] ^ n ■ i end for
for 0 < j < un — 1 do for 0 i u 1 do
if Gi
1 then
Pj,counter[i] ^ 1
counter [i] ^ counter[i] + 1 end if end for end for return P
Опишем теперь схему атаки при выполнении условия теоремы 1.
1. Используя алгоритм 1, построить порождающую матрицу О0 кода (RMхu(0, ш))а.
2. По матрице О0, используя алгоритм 2, построить такую перестановочную матрицу Р0, что
О • Ро = (О1\... \\Ои),
где (к х п) -матрицы Ог являются порождающей матрицей кода ЯМ^ (г, ш) для некоторой подстановки
Корректность алгоритма 1 следует из теоремы 1 с учётом того, что для любой формулы ф(х) € Ф, любого линейного кода С длины п и любой подстановки а € Яп верно равенство
Ф (Са) = Ва,
если ф (С) = В.
Получив порождающую матрицу кода (ЯМхи(0, ш))а, можно классифицировать столбцы открытого ключа схемы по принадлежности к соответствующим копиям кода Рида-Маллера. Как это сделать?
Код ЯМ(0, ш) содержит единственное ненулевое кодовое слово, у которого все координаты равны 1. Значит код ЯМхи(0, ш) будет иметь блочно-диагональную порождающую (их ип)-матрицу О, у которой на диагонали стоят векторы длины п, состоящие из одних единиц:
£ Sn
1, 2 ...
u.
3. Используя атаку И. Чижова и М. Бородина [7], по матрице Ог, г = 1, 2,... ,и, найти такую невырожденную (к х к)-матрицу Мг, и такую перестановочную матрицу Рг, что Ог = М*ЯРг, здесь Я — порождающая матрица кода ЯМ (г, ш).
4. Составить следующую перестановочную (ип х ип)-матрицу
I Р1 0 ... 0 \
0 Р2 ... 0
P
■P,
-i
Ясно, что для получения порождающей матрицы такого вида из произвольной порождающей матрицы кода ЯМхи(0, ш), достаточно выполнить над этой матрицей прямой и обратный ход Гауссова исключения.
Используя матрицу О, можно предложить следующий принцип разбиения координат: для г-ой строки матрицы О, где г € {1,... ,и}, множество координат = 1}
относится к одному сегменту и однозначно определяет координаты, в которых стоит одна копия кода ЯМ(г, ш).
\ 0 0 ... Pu J
5. Выдать секретный ключ {M\,..Mu, P}. В связи с тем, что для множество ключей криптосистемы Мак-Элиса-Сидельникова, к которым применима теорема 1, была построена атака, есть смысл ввести следующее определение.
Определение 8. Пусть K = {M\,..., Mu, P} — секретный ключ криптосистемы Мак-Элиса - Сидельникова. Будем говорить, что K является слабым ключом, если матрицы M-1M2,..., M-1Mu удовлетворяют условию теоремы 1.
Замечание. Обратим внимание, что перестановочная матрица P в определении не фигурирует.
C. Сложность атаки
Оценим сложность построенной атаки в битовых операциях.
Теорема 2. Пусть НОД(г,т — 1) = d > 1, и K = {Mi,..., Mu, P} — слабый секретный ключ. Тогда сложность алгоритма решения задачи криптоаналитика для открыт ого ключа, соответствующего K, будет равна u • exp (Cd(log2 n)d(1 + o(1))) битовых операций.
Таблица I
Время восстановления секретного ключа для u = 3.
m r 6 8 9 10
2 0,411с 23,025 с — 3ч 18м
3 — 51,891с 10м 41 с 2 ч 36 м
4 — — — 4ч 36м
Таблица II
Время восстановления секретного ключа для u = 4.
m r 6 8 9 10
2 0,719 с 40,094 с — 5 ч 14 м
3 — 1 м 46 с 20 м 41с 3 ч 40 м
4 — — — 7 ч 46 м
q(xi, ...,Xk) =
ai'j"
1<i<j<k
Доказательство. Наиболее трудоёмким является третий шаг схемы, в котором требуется u раз применить атаку И. Чижова и М. Бородина, сложность которой в условиях теоремы равна exp (Cd(log2 n)d(1 + о(1))) [7]. □
Теорема 3. Пусть НОД(г,т — 1) = 1, и K = (Mi,..., Mu, P) — слабый секретный ключ. Тогда сложность алгоритма решения задачи криптоаналитика для открытого ключа, соответствующего K, равна O(un4 log2 n) битовых операций.
Доказательство. Наиболее трудоёмким является третий шаг схемы, в котором требуется u раз применить атаку И. Чижова и М. Бородина, сложность которой в условиях теоремы равна O(n4 log2 n) [7]. □
D. Вычислительные эксперименты
Теоретические результаты атаки на криптосистему Мак-Элиса-Сидельникова, секретный ключ которой является слабым, подтверждаются практическими экспериментами. Алгоритм был реализован на языке С++ и исследован на ноутбуке c процессором Intel Core i5 dual-core 1.4GHz.
Результаты экспериментов для наиболее интересных параметров приведены в таблицах I и II. Отметим особо, что для параметров r = 3, u = 4, m = 10, предлагаемых в работе [4] использовать на практике, время восстановления секретного ключа составляет всего около 4 часов на современном ноутбуке.
IV Оценка числа слабых ключей
При исследовании множества слабых ключей криптосистемы Мак-Элиса-Сидельникова удобной оказывается интерпретация квадрата Адамара линейного кода с точки зрения квадратичных форм над полем F2. Такой подход позволил авторам работы [10] установить поведение размерности квадрата Адамара случайного линейного кода.
Определение 9. Квадратичной формой над полем F2 называется однородный квадратичный многочлен над этим полем:
где aij е F2,1 < i < j < к, а hi е F2,1 < i < к.
Замечание. В поле F2 выполнено соотношение x2 = x, поэтому квадратичная форма может быть представлена в виде
k
q(xi,...,xk) = ^ ai,j XiXj + ^ hiXi.
1<i<j<k i=1
Обозначим через Qk множество всех квадратичных форм над полем F2 от к переменных. Рассмотрим (к xn)-матрицу G, пусть gi е Fkk — столбец матрицы G с номером i. Определим отображение lG : Qk ^ F2 следующим образом:
lG(q) = (q(gi),...,q(gn)).
В таком случае квадрат линейного [n, к]-кода C с порождающей матрицей G может быть записан в терминах образа отображения [10]:
C*2 = Im lG.
Этот подход приводит к следующей теореме, записанной в терминах ядра отображения.
Теорема 4. Пусть C — линейный [n, к]-код с порождающей матрицей G, Д = (Н1?..., Hu-1) — кортеж невырожденных двоичных (к x к)-матриц Тогда
Сд2 = (C*2)xu,
если и только если для всех 1 < j < u — 1 выполнено равенство
u-j-1
ker£Hu_j g + П ker= Qk,
i=0
здесь H0 — единичная (к x к)-матрица.
Доказательство. Будем обозначать как к = dim C*2 размерность квадрата кода C. Для ядра отображения I выберем следующее обозначение:
L
E,Hi,...,Hu-i
ker 1
(EG||HiG||...||H„-iG).
ЬЕ — множество квадратичных форм, которые принимают значение ноль одновременно на всех столбцах матрицы С. Аналогично, для 1 < г < и — 1, — на всех столбцах матрицы ИгС. Таким образом, имеет место быть следующее равенство:
и1
LE,Hi,...,Hu-i = П LHi
i=0
Условие
Cf = (C *2)XU
в указанных обозначениях эквивалентно выполнению равенства
dimIm 1(eg\\h1g\\...\\Hv-iG) = u dimIm Ig = ик. Далее,
dimIm 1(eg\\h1g\\...\\hu-1g) = dim Qk — dimLe,Hi,...,Hu-i
u — 1
= dim Qk — dim P| .
2
x
Значит интересующее нас условие можно записать в виде
u-1
dim P| Ьщ = dim Qk —
к — UK.
i=0
Для произвольных линейных подпространств U и V верно:
dim(U + V) = dim U + dim V — dim U П V. Тогда для 1 < j < u — 1:
u-j u-j-l
dim P| Ьщ = dim + dim P Lui —
i=0 i=0
u-j-l
/ u-j-1 \
- dim ¡Ьни_, + = ЬиЛ
а значит, учитывая, что dim ЬЕ = dim Qk — к,
u-1
dim p Ьн€ =
u1
u1
подпространство размерности 6 + к. Тогда доля а(5, к) всех подпространств Ь С У размерности 6 + к, для которых Ь + Ь0 = У, к числу всех подпространств размерности 6 + к выражается по формуле:
к 2$+2к+з _2п
а(6,к) = П
2ö+2K+j _ 1 ■
3=1
Более того, а(6, к) ^ 1 при к ^ ж для У6.
Доказательство. Пусть как и раньше т = 6 + 2к, а е = 6 + к. Число различных способов выбрать подпространство П размерности 6 такое, что П С Ь0 С У выражается через биномиальный коэффициент Гаусса
A 2e-s+j — 1 = 11 —^-;— Для " — е.
2 j=i
2j 1
u-j-l
= J2dim LHj dim LHu-j + p lhA = j=0 j = 1 \ i=0 J
u-l f u-j-l \
= u dimLe — dim I LHu_j + P LhA =
j=1 \ i=0 J
u-l f u-j-l \
= u dim Qk — uk — dim Lhu_j + P LhA >
j=l \ i=0 J
> dim Qk — uk.
При этом равенство выполняется тогда и только тогда, когда для всех 1 < j < u — 1
u-j-l
LHu-j + Р LHi = Qk.
i=0
□
Следствие 2. Пусть C —линейный [n, к]-код с порождающей матрицей G, H — произвольная невырожденная (к х к)-матрица. Тогда
ch2 = (с *2yx2,
если и только если LE + LH = Qk. Доказательство. Применим теорему 4 при u = 2. □
A. Оценка числа подпространств специального вида пространства квадратичных форм
Рассмотрим линейное пространство квадратичных форм от к переменных Qk. Размерность dim Qk = k(k+l) = w. Пусть L0 С Qk — линейное подпространство Qk с размерностью равной dim L0 = dim LE = w — k = e. Подсчитаем количество подпространств L С Qk таких, что dim L = e и L0 + L = Qk.
Введём обозначение S = dim L П L0. Тогда
dim(L0 + L) = dim V = dim L0 + dim L — dim L П L0 .
Таким образом, 6 = т — 2к.
Теорема 5. Пусть У — линейное пространство размерности 6 + 2к, Ь0 С У — фиксированное линейное
Зафиксируем некоторый базис пространств П и Ь0.
П : а1,... ,а$
Ь0 : а1,..., а$, Ъъ1, ..., Ье—$
Будем выбирать сг, начиная с с1 и заканчивая се—$, так, чтобы система векторов: а1,... ,Ь1,..., Ье—5, с1,... сг являлась линейно независимой (иначе окажется, что dim Ь0 П Ь > 6). Существует 2™ — 2е способов выбрать с1, 2™ — 2е+1 способов выбрать с2 при фиксированном с1, ..., 2™ — 2е+(е—&)—1 =2™ — 2™-1 способов выбрать се—5 при фиксированных с1,..., се—5—1. Таким образом, существует
(2™ — 2е)(2™ — 2е+1)... (2™ — 2™-1) = = 2ек(2к — 1)(2К — 2)... (2К — 2К—1)
способов выбрать (с1,..., се—$). При этом базисы
(а1, ...,а$ ,с1,. .., се—5), (а1, ...,а$ ,с'1,..., с'е—$)
порождают одно и то же линейное подпространство, если существует такая невырожденная ((е — 6) х (е — 6))-матрица М и такая произвольная ((е — 6) х 6) -матрица, что выполнено соотношение
а1
( A j M )
\ се-й /
as
ci С2
\ Ce-s J
Количество различных матриц S = (A\M) равно произведению количества различных матрицы A на число различных матриц M, т.е. равно
2(e-s)s (2e-S — 1)... (2e-S — 2^-S-1) =
= 2kS(2k — 1)... (2K — 2k-1).
Окончательно получаем, что число подпространств L С V размерности e, для которых L0 + L = V, равно
2к(е—6) _
■2К
c
c
2
2
2
Деля это число на количество всех возможных подпространств Ь с У размерности е, получим выражение искомой доли а(6, к)
2К
а(5, к) =
e 2k2 ■ 5 + к '
l_ d J 2 [ 5 \
w '5 + 2к '
e 2 5 + к
п
j=1
2^+2«+j_2К
Откуда:
1 > а(5,к) = Л
j=1
1 -
2К - 1
2^+2K+j-1
\
> 1--
> 2К
/
Запишем следующее очевидное равенство
1--
2К
'i -—
, 2К
2К\ 2К
k = Е
j=0
2г
к = Е
j=0
2г
J = kk+i) - 2Е
2
j=0
m
теорема 6, заключается в том, что оно применимо в общем случае, при и > 2.
Теорема 6. Пусть С — [п, к]-код с порождающей матрицей С, и пусть Д = (И1,..., Ии—1) — кортеж неврожденных (к х к)-матриц, и > 2. Если найдётся хотя бы одна матрица Иг такая, что выполнено соотношение гк(Е + Иг) < к — (2к — п) на ранг матрицы Е + Иг, то
cf = (с*2)XU.
(1)
Доказательство. Обозначим через ЬМ ядро отображения I, для которого в качестве параметра выступает
матрица, состоящая из одного '-го столбца матрицы
(1)
L
МС. Тогда Ье = П 1<1<п ЬЕ, а Ьщ = П «п^щ-Если матрицы С и ИгС будут иметь совпадающие столбцы, окажется, что 3' £ {1,...,п} для которого ЬЕ ,Ьнi с ьЕ) . Это, в с свою очередь, означает, что ЬЕ + Ьн. с ЬЕ С 02к. Следовательно, условие теоремы 4 не выполнено.
Запишем матрицу Иг как сумму единичной матрицы и матрицы общего вида: Иг = Е + Мг, гк(Мг) = в £
{0,..., к}. Тогда условие Hi ■ а1
а
)k — s
Mi а1 = 0.
Начиная с некоторого номера к число (1 — ^т) лежит в е окрестности числа е. При этом к ^ 0 при к ^ ж. Значит (1 — К ^ 1 при к ^ ж. Из того, что последовательность а(5, к) ограничена сверху и снизу последовательностями, предел которых при к ^ ж равен 1, следует а(5, к) ^ 1 при к ^ ж. □
В случае, когда в качестве исходного кода берётся код ЯМ(г, т), используемые параметры принимают следующие вид:
Численные эксперименты для параметров (г, т), обозримо применимых в криптосистеме, показали, что доля таких пространств близка к 1.
Теорема 5 косвенно позволяет сформулировать гипотезу, что доля слабых ключей среди всех секретных ключей, является подавляющей. Вместе с тем, слабому секретному ключу соответствует линейное подпространство специального вида. Для доказательства выдвинутой гипотезы достаточно будет доказать теорему 5, но для класса подпространств Ь специального вида.
В. Достаточные условия, при выполнении которых секретный ключ не будет слабым
Сформулируем и докажем теоремы, непосредственное применение которых даёт достаточные условия на матрицы И1,..., Ии—1, при выполнении которых соответствующий секретный ключ не будет являться слабым. Эти условия могут быть полезны для получении оценок сверху количества слабых ключей, а также для установления структуры множества ключей криптосистемы Мак-Элиса-Сидельникова, которые не являются слабыми. Преимущество достаточного условия, которое даёт
Количество таких а е Fk равно 2k-s. Значит, по принципу Дирихле, если n > 2k — 2k-s, то среди столбцов матрицы G найдётся столбец п такой, что Hi ■ п = п, а значит Le + Lh, = Qk. □
В случае когда u = 2, условие теоремы 6 можно ослабить. Обратим внимание, что Qk является линейным пространством, изоморфным подкоду R кода Рида-Маллера второго порядка RM(2, к). Изоморфизм х выглядит следующим образом:
X(q) = (q(0,..., 0, 0),q(0,..., 0, 1), . . ., q(1, . . ., 1, 1)).
Это позволяет воспользоваться результатом, полученным в работе [14]. Прежде чем перейти к теореме 7, опишем действие элемента полной линейной группы H е GLk на код Рида-Маллера RM(2, к). Пусть f — булева функция к переменных, x — двоичный вектор аргументов. Тогда
fH (x) = f (Hx), а код, полученный под действием H, представляет собой
(E + H) о RM(2, к) = {f + fH\f е RM(2, к)}. Заметим, что
x(Le+h) = (E + H) о x(Le).
Теорема 7. Пусть C — [n, к]-код с порождающей матрицей G, матрица H — невырожденная двоичная (к x к)-матрица, и пусть к = dimC*2. Дополнительно потре-/ 2к + 1 \ 2
буем чтобы ( - ) — 2к > 0. Если rk(E + H) <
2
2к + 1 2~
'/2к + 1
^ - 2к, то CH2 = (C*2)
X2
Доказательство. Очевидно, что LE + LH = LE + LE+H. Это можно видеть из того, что x(Le)+x(LH) = x(Le) + (E + H) оx(Le). Известно [14], что для ранга s = rk(E + H) выполняется неравенство:
s(s 1)
dim((E + H) о RM(2, к)) < sk — ( o ),
2
2
2
К
К
m
m
j
j
j
Таблица III
Ограничения на ранг, полученные из теорем 6 и 7
(r, m) (2, 7) (3, 7) (2, 9) (4, 9) (3, 10)
rk H 8 29 10 130 56
rk(H + E) 1 4 1 3 12
а значит тем более выполняется
dimLE+H = dim ((E + H) о x(LE)) < sk — Запишем цепочку соотношений
dim(LE + Le+h) < dim Le + dim Le+h =
s(s — 1)
k(k + 1)
2
Значит, если dim ЬЕ+н < к, то
а- гт , т л k(k +1) dim(LE + Le+h) <^2—
— к + dim Le+h .
Le + Ьн = Qk.
Из условия sk — s(s2 ^ < к следует утверждение теоре-
мы.
□
С. Вычислительные эксперименты для выяснения количества слабых ключей
Для получения оценки сверху числа слабых ключей необходимо подсчитать количество невырожденных матриц Н € ОЬк таких, что гк(Н + Е) < в, для некоторого заданного в.
На основе теорем 6 и 7 были вычислены ограничения на ранг матрицы Н + Е для параметров (г, ш) криптосистемы Мак-Элиса-Сидельникова, наиболее интересных с точки зрения практического применения (см. таблицу III).
Авторам не удалось получить аналитического выражения числа таких матриц. Но, для указанных параметров, были проведены вычислительные эксперименты, которые показали, что их доля -крайне мала. В результате случайного выбора невырожденных матриц с объёмом выборки порядка 106 не было найдено ни одной удовлетворяющей данному условию матрицы. Максимальное падение ранга гк(Н) — гк(Н + Е) в ходе эксперимента равнялось 4 для всех параметров.
V. Заключение
В работе предложен эффективный алгоритм атаки на криптосистему Мак-Элиса-Сидельникова, построенную на кодах Рида-Маллера. В отличие от существующих алгоритмов на множество доменных параметров криптосистемы ограничений не накладывается.
Стоит заметить, что алгоритм не применим в отдельно взятых случаях. В работе определён класс слабых ключей и описаны некоторые его характеристики, позволяющие дать оценки количества таких ключей, долю слабых ключей в пространстве ключей криптосистемы. Приведена мотивация, в связи с которой следует ожидать, что доля слабых ключей будет близка к единице. Проведены вычислительные эксперименты.
Становится понятно, что данная криптосистема не обеспечивает необходимый уровень стойкости. Для обозримо применимых параметров криптосистемы восстановить секретный ключ схемы возможно даже на персональной ЭВМ.
Библиография
[1] McEliece Robert J. A public-key cryptosystem based on algebraic coding theory // DSN Progress Report.— 1978.— Vol. 42-44.— P. 114-116.
[2] Shor Peter W. Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer // SIAM Journal on Computing. — 1997. —Oct. — Vol. 26, no. 5. — P. 1484-1509.
[3] Niederreiter Harald. Knapsack-type cryptosystems and algebraic coding theory // Prob. Control and Inf. Theory. — 1986. — Vol. 15, no. 2. — P. 159-166.
[4] Сидельников В. М. Открытое шифрование на основе двоичных кодов Рида - Маллера // Дискретная математика. — 1994. — Vol. 6, no. 2. — P. 3-20.
[5] Courtois Nicolas T., Finiasz Matthieu, Sendrier Nicolas. How to achieve a mceliece-based digital signature scheme // Advances in Cryptology — ASIACRYPT 2001 / Ed. by Colin Boyd. — Lecture Notes in Computer Science. — Springer, 2001. — P. 157-174.
[6] Minder Lorenz, Shokrollahi Amin. Cryptanalysis of the sidelnikov cryptosystem // Annual International Conference on the Theory and Applications of Cryptographic Techniques / Springer. — 2007. — P. 347360.
[7] Бородин М. А., Чижов И. В. Эффективная атака на криптосистему Мак-Элиса, построенную на основе кодов Рида-Маллера // Дискретная математика. — 2014. — Vol. 26, no. 1. — P. 10-20.
[8] Wieschebrink Christian. Cryptanalysis of the niederreiter public key scheme based on grs subcodes // International Workshop on PostQuantum Cryptography / Springer. — 2010. — P. 61-72.
[9] A polynomial-time attack on the bbcrs scheme / Alain Couvreur, Ayoub Otmani, Jean-Pierre Tillich, Valérie Gauthier-Umana // IACR International Workshop on Public Key Cryptography / Springer. — 2015. —P. 175-193.
[10] Squares of random linear codes / Ignacio Cascudo, Ronald Cramer, Diego Mirandola, Gilles Zémor // IEEE Transactions on Information Theory. —2015. —Vol. 61, no. 3. —P. 1159-1173.
[11] Классификация произведений Адамара подкодов коразмерности 1 кодов Рида-Маллера / Иван Владимирович Чижов, Ivan Vladimirovich Chizhov, Михаил Алексеевич Бородин, Mikhail Alekseevich Borodin // Дискретная математика. -- 2020. -Vol. 32, no. 1. —P. 115-134.
[12] Давлетшина А. М. Поиск эквивалентных ключей криптосистемы Мак-Элиса-Сидельникова, построенной на двоичных кодах Рида-Маллера // Прикладная дискретная математика. Приложение. — 2019. —no. 12. —P. 98-100.
[13] Мак-Вильямс, Слоэн. Теория кодов, исправляющих ошибки. — Москва : Связь, 1979.
[14] Legeay Matthieu, Loidreau Pierre. Projected subcodes of the second order binary reed-muller code // 2012 IEEE International Symposium on Information Theory Proceedings / IEEE. — 2012. — P. 254-258.
Effective structural attack on McEliece-Sidelnikov
public-key cryptosystem
Ivan Chizhov, Sergei Koniukhov, Alexandra Davletshina
Abstract—The authors propose an algorithm for recovering the secret key of the McEliece-Sidelnikov cryptosystem in general case: with u £ N copies of the Reed-Muller codes. Recovering the secret key of the McEliece-Sidelnikov cryptosystem is reduced to u problems of recovering the secret key of the McEliece cryptosystem based on the Reed-Muller codes. It is proved in the paper that the proposed attack is polynomial. A set of keys for which the algorithm is applicable is described. The set is called the set of weak keys. The authors believe that the most of the keys are weak and show that it should be assumed that the ratio of the weak keys in the cryptosystem's key space is close to one. Methods for calculating the number of the weak keys are described and computational experiments confirming it have been performed.
Keywords—McEliece-Sidelnikov public key cryptosystem, Reed-Muller codes, postquantum cryptography, code-based cryptosystems, polynomial attack.
[14] Legeay Matthieu, Loidreau Pierre. Projected subcodes of the second order binary reed-muller code //2012 IEEE International Symposium on Information Theory Proceedings / IEEE. — 2012. — P. 254-258.
References
[1] McEliece Robert J. A public-key cryptosystem based on algebraic coding theory // DSN Progress Report.— 1978.— Vol. 42-44.— P. 114-116.
[2] Shor Peter W. Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer // SIAM Journal on Computing. — 1997. — Oct. — Vol. 26, no. 5. — P. 1484-1509.
[3] Niederreiter Harald. Knapsack-type cryptosystems and algebraic coding theory // Prob. Control and Inf. Theory.— 1986.— Vol. 15, no. 2. —P. 159-166.
[4] Sidelnikov V. M. Public encryption based on reed-muller codes // Discrete Math. Appl. — 1994. — Vol. 6, no. 2. — P. 3-20.
[5] Courtois Nicolas T., Finiasz Matthieu, Sendrier Nicolas. How to achieve a mceliece-based digital signature scheme // Advances in Cryptology — ASIACRYPT 2001 / Ed. by Colin Boyd. — Lecture Notes in Computer Science. — Springer, 2001. — P. 157-174.
[6] Minder Lorenz, Shokrollahi Amin. Cryptanalysis of the sidelnikov cryptosystem // Annual International Conference on the Theory and Applications of Cryptographic Techniques / Springer. -- 2007. -P. 347-360.
[7] Borodin M. A., Chizhov I. V. Jeffektivnaja ataka na kriptosistemu mak-jelisa, postroennuju na osnove kodov rida-mallera // Discrete Math. Appl. - Vol. 26, no. 1. — P. 10-20.
[8] Wieschebrink Christian. Cryptanalysis of the niederreiter public key scheme based on grs subcodes // International Workshop on PostQuantum Cryptography / Springer. — 2010. — P. 61-72.
[9] A polynomial-time attack on the bbcrs scheme / Alain Couvreur, Ayoub Otmani, Jean-Pierre Tillich, Valérie Gauthier-Umana // IACR International Workshop on Public Key Cryptography / Springer. — 2015. —P. 175-193.
[10] Squares of random linear codes / Ignacio Cascudo, Ronald Cramer, Diego Mirandola, Gilles Zémor // IEEE Transactions on Information Theory. — 2015. — Vol. 61, no. 3. — P. 1159-1173.
[11] Chizhov I. V., Borodin M. A. Hadamard products classification of subcodes of reed-muller codes codimension 1 // Discrete Math. Appl. - 2020. — Vol. 32, no. 1. — P. 115-134.
[12] Davletshina A. M. Search for equivalent keys of the mceliece -sidelnikov cryptosystem built on the reed - muller binary codes // Prikladnaya diskretnaya matematika. Prilozhenie. — no. 12. — P. 98100. — URL: http://journals.tsu.ru/pdm2/&journal_page=archive&id= 1897&article_id=42419.
[13] MacWilliams Florence Jessie, Sloane Neil J. A. The theory of error-correcting codes. North-Holland mathematical Library no. 16. -- 2. print edition. — North-Holland. — ISBN: 978-0-444-85010-2 978-0444-85009-6. — OCLC: 613292217.