Структурная атака на криптосистемы типа Мак-Элиса-Сидельникова, построенной на основе комбинирования случайных кодов с
кодами Рида-Маллера
И. В. Чижов, Е. А. Попова
Аннотация— В работе рассматривается модификация криптосистемы Мак-Элиса-Сидельникова, построенная на комбинировании случайных кодов с кодами Рида-Маллера. Суть данной криптосистемы с открытым ключом состоит в маскировании кода с эффективным алгоритмом декодирования под код, не обладающий видимой алгебраической и комбинаторной структурой, называемый кодом общего положения. Фактически стойкость этой криптосистемы основывается на сложности задачи декодирования кодов общего положения. Интерес к кодовым криптосистемам объясняется тем, что в отличие от классических криптосистем, стойкость которых определяется сложностью решения задач факторизации или дискретного логарифмирования в конечных группах, кодовые криптосистемы останутся стойкими в эру появления многокубитного квантового компьютера.
Первоначально криптосистема Мак-Элиса-
Сидельникова строилась на основе комбинирования кодов Рида-Маллера друг с другом. Однако на этот вариант криптосистемы была построена эффективная атака. В работе Г. Кабатянского и С. Тавернье предлагается вместо комбинированных кодов Рида-Маллера использовать комбинирование кодов из разных классов, например, кодов Рида-Маллера и кодов Гоппы. По многим характеристикам коды Гоппы похожи на случайные коды, поэтому в работе рассматривается криптосистема Мак-Элиса-Сидельникова, в которой коды Рида-Маллера комбинируется со случайными кодами. Изучается стойкость новой криптосистемы в модели, в которой противнику кроме открытого ключа и, соответственно, параметров кода Рида-Маллера, на которых построен открытый ключ, известна порождающая матрица случайного линейного кода, и целью является восстановление секретного ключа криптосистемы.
С использованием метода разделения носителя Н. Сендрие построена атака, восстанавливающая секретный ключ в описанной модели. Для работы метода Н. Сендрие необходимо выбрать некоторый инвариант кода относительно группы подстановок координат кодовых слов. В качестве такого инварианта предлагается использовать спектр оболочки кода. Важно также, чтобы инвариант был эффективно вычислимым. В работе была
Статья получена 9 апреля 2013. (укажите здесь дату, когда статья была загружена на сайт журнала).
Работа поддержана грантом РФФИ №18-29-03124
И. В. Чижов, МГУ имени М. В. Ломоносова, Федеральный исследовательский центр «Информатика и управление» РАН, АО «НПК «Криптонит» (email: [email protected]).
Е. А. Попова, МГУ имени М. В. Ломоносова (email: [email protected])
изучена размерность оболочки кода, получающегося комбинированием кода Рида-Маллера кода с некоторым случайным кодом. Вычислено математическое ожидание размера оболочки, которое показывает эффективную вычислимость рассматриваемого инварианта.
Предложенная атака была реализована на языке С++. В работе представлены экспериментальные данные по применению атаки к кодам разной размерности, из которых можно судить об её эффективности даже на достаточно больших размерах секретных ключей.
Ключевые слова—постквантовая криптография, кодовые криптосистемы, криптосистема Мак-Элиса, криптосистема Мак-Элиса-Сидельникова,
комбинированные коды, коды Рида-Маллера.
I. Введение
Криптосистема Мак-Элиса была предложена в 1978 году Робертом Мак-Элисом [1] практически в одно время с широко известной криптосистемой RSA. Однако она не получила в то время большой известности и до недавнего времени оставалась объектом исследований только узкого числа специалистов по алгебраической теории кодирования. Ситуация поменялась в последние 5 лет. В настоящее время почти все криптографические протоколы и механизмы, используемые на практике, построены основе теоретико-числовых моделях. Их стойкость, в основном, определяется сложностью задачи факторизации целых чисел или дискретного логарифмирования в конечных группах. В 1997 году П. Шор предложил [2] полиномиальные алгоритмы решения этих классических теоретико-числовых задач для квантового вычислителя. Таким образом, появление многокубитного квантового компьютера поставит вопрос о смене практически всех криптографических протоколов и механизмов современного Интернета. В последнее время интерес к исследованию криптографических механизмов также подкреплялся достижения в области, так называемой, криптоэкономики. Исследователями были предложены концепции криптовалюты и разработана технология распределённого электронного реестра «Блокчейн». Кроме того, криптовалюта биткоин настолько приобрела популярность, что авторы смогли привлечь финансирование и открыть биржу, на которой стало
возможным использование криптовалюты в реальной экономике через механизм её конвертации в национальные валюты государств. Фактически сейчас любой желающий может приобрести криптовалюту, обменять её на валюту своей страны. Таким образом, криптовалюты стали полноценным финансовым активом.
В технологии «Блокчейн», как и в криптовалютах, используются схемы подписи и протоколы обмена ключами. Причём от стойкость этих криптографических механизмов зависит надёжность всей технологии и доверие к криптовалютам. После появления квантового компьютера с большим количеством кубитов всем криптографические валюты мира станут ненадёжными, поэтому разработка постквантовых криптографических механизмов, т. е. таких механизмов, которые останутся стойкими против атак с использованием квантового компьютера, позволит сохранить криптовалюты и технологию «Блокчейн».
В 2019 году интерес к постквантовым криптографическим механизмам подогрело
Национальное агентство стандартов и технологий США (NIST USA), которое объявило конкурс на серию стандартов эра квантового компьютера. На уровне целого государства была признана угроза появления многокубитного квантового компьютера. Теория кодов, исправляющих ошибки, является одним из основных источников конструкций постквантовых криптографических механизмов.
Самым важным криптографическим протоколом с открытым ключом является схема электронной подписи. Она используется повсеместно в прикладных системах, в том числе и в технологии «Блокчейн». В настоящее время было предложено много подобных протоколов, основанных на теории кодов, исправляющих ошибки. На основе криптосистемы Мак-Элиса построена одна из важнейших схем подписи - CFS[3]. Тактико-технические характеристики этой схемы существенно зависят от используемых кодов, исправляющих ошибки. Оригинальная схема как криптосистема Мак-Элиса была построена на основе кодов Гоппы. Однако такой вариант обладает достаточно низкой скоростью формирования подписи. Для исправления этого недостатка предпочтительно использовать коды, обладающие большей исправляющей способностью. Например, в работе В. М. Сидельникова [4] предлагается использовать коды Рида-Маллера. Однако относительно недавно появилась серия структурных атак [5], [6] на криптосистему Мак-Элиса, построенную на таких кодах. Поэтому, из-за схожей природы CFS с криптосистемой Мак-Элиса, эти коды нельзя использовать для построения схемы подписи. В той же работе [4] В. М. Сидельников предлагает конструкцию, использующую несколько повторений матрицы кода Рида-Маллера. Такая схема строится на конкатенации нескольких различных порождающих матриц кода Рида-Маллера. Конструкцию В. М. Сидельникова принято в литературе называть криптосистемой Мак-Элиса-Сидельникова. Вместе с тем в работе [5] предлагается подход к взлому такой модификации криптосистемы (а значит и подписи CFS).
Идеи В. М. Сидельникова получили развития в работе Е. Егоровой, Г. Кабатянского, Е. Крука и С. Тавернье [7]. Они предлагают использовать конкатенацию не кодов Рида-Маллера, а двух различных кодов, имеющих разную алгебраическую структуру, например, кодов Гоппы и Рида-Маллера. В качестве обоснования авторы указывают, что для кодов Гоппы пока не существует эффективных структурных атак, поэтому они могут «спрятать» алгебраическую структуру кодов Рида-Маллера, которая значительно используется в атаках. В дальнейшем в работе эта криптосистема называется крптосистемой
Кабатянского-Тавернье, т.к. она впервые была предложена именно в таком составе авторов на конференции «Sixteenth International Workshop on Algebraic and Combinatorial Coding Theory (ACCT-XVI)».
Настоящая работа посвящена исследованию стойкости постквантовой криптосистемы Мак-Элиса-
Сидельникова, построенной на основе комбинирования кодов Рида-Маллера со случайными кодами. Замена кодов Гоппы случайным двоичным кодом объясняется тем, что случайные коды должны сильнее спрятать структуру кода, поэтому результаты анализа такой криптосистемы можно перенести и на конструкцию Кабатянского-Тавернье.
Главным результатом работы является построение структурной атаки на криптосистему Мак-Элиса-Сидельникова в модели, в которой противнику кроме открытого ключа известна порождающая матрица кода Рида-Маллера и случайного двоичного код, с которым проводится его комбинирование. Целью криптоаналитика является восстановление секретного ключа криптосистемы. Эксперименты показывают достаточную эффективность предложенной атаки не только для комбинации кодов Рида-Маллера со случайными кодами, но и для комбинирования кодов Рида-Маллера с кода Гоппы. Полученный результат переносится и на схему подписи CFS, которая строится на основе анализируемой конструкции.
II. Описание исследуемой криптосистемы типа Мак-Элиса-Сидельникова
Дадим краткое описание криптосистемы Мак-Элиса-Сидельникова, построенной на основе комбинирования случайных кодов с кодами Рида-Маллера, а также сформулируем задачу криптоаналитика в используемой модели нарушителя.
Обозначим через Vn линейное векторное пространство над полем GF( 2).
Определение 1. Подпространство С размерности к пространства Vn называется двоичным линейным [п, к]-кодом.
Двоичная (к х п)-матрица, строками которой являются базисные векторы С, называется порождающей матрицей кода. Таким образом, С = а ■ G\а Е Vk. Скалярным произведением векторов х = (х1, ..., xn) и у = (у1, ...,yn) называется отображение <х,у): Vn ^ GF (2), определяемое соотношением
<х,у) = х1у1ф хпуп-
Векторы х и у называются ортогональными, если их скалярное произведение равно 0, т. е. (х,у) = 0. Определение 2. Дуальным кодом к [п, к ]-коду С называется [п, п — к]-код С1 , который состоит из всех векторов ортогональных каждому кодовому слову кода С, т. е. С1 = {х 6 Уп| <х,с ) = 0,У с 6 С} . Определение 3. Порождающая матрица Н кода С1 называется проверочной матрицей кода С. Матрица Н имеет размер ((п — к) хп). Фактически код С может быть задан как множество векторов с 6 7„, которые удовлетворяют следующему линейному уравнению Нст = 0.
Определим теперь важный для дальнейшего изложения класс кодов - кодов Рида-Маллера.
Булевой функцией от ш переменных называется произвольное отображение ( ) ( ).
Каждая булева функция может быть задана её вектором-значений Пу длины 2 т следующим образом:
% = (/(0.....0),/(0.....1)...../(1.....1)).
Мономом называется константа и любая функция, представимая в виде произведения:
V: V: ... V: ,
здесь
Известно, см. например [8], что любая булева функция
от переменных представима однозначным образом в
виде некоторой суммы мономов. Такая сумма
называется полиномом Жегалкина.
Степенью монома называется количество переменных,
входящих в моном, так степень монома
равна 5 , а степень константы 1 равна нулю. Тогда будем
называть степенью булевой функции максимальную
степень мономов, входящих в её представление в виде
полинома Жегалкина.
Определение 4. Для произвольных целых г и ш, 0 < г < ш, двоичным кодом Рида-Маллера Д М(г ,ш) порядка и длины называется множество векторов значений булевых функций ( ), которые
могут быть заданы полиномами Жегалкина степени не выше , т. е.
Д М(г,ш) = (%| с^Дг?!.....г?т) < г} .
Известно [8], что длина кода Д М(г,ш) равна п = 2 т, а его размерность равна ( ) ( ) ( ).
Порождающая матрица С (г, ш) этого кода состоит из векторов-значений всех мономов степени не выше . Всё готово для описания криптосистемы Кабатянского-Тавернье. В силу того, что цель работы — построение структурной атаки, т. е. атаки, которая восстанавливает секретный ключ криптосистемы, ограничимся описанием только процедуры генерации ключей криптосистемы.
А. Общедоступные параметры криптосистемы На основе заданного уровня стойкости в системе выбираются параметры ( ) кода Рида-Маллера. Выбранные значения определяют размерность
0 (Ш) и длину п = 2 т кода Рида-Маллера. Далее в системе выбирается случайная (к х п )-матрица
максимального ранга . Заметим, что в оригинальной работе [7] авторы вместо случайного кода предлагают использовать коды Гоппы. Однако для упрощения анализа криптосистемы
предлагается заменить коды Гоппы случайными кодами. Заметим, что безусловно, рассматриваемая конструкция является модельной и фактически не реализуемой на практике, т. к. для построения криптосистемы необходимо использовать коды, обладающие эффективными алгоритмами декодирования. Известно [9], что задача декодирования для случайных кодов является NP-полной, поэтому случайный код, скорее всего, не обладает эффективными алгоритмами декодирования.
Результаты анализа для криптосистемы, построенной на случайных кодах, будут перенесены на оригинальную идею работы [7].
B. Генерация ключей
Вход: Параметры (г, ш) кода Рида-Маллера и матрица .
Выход: iipub, с - открытый и секретный ключи криптосистемы.
1. Используя параметры ( ) построить порождающую (/схп) — матрицу С(г, ш) кода Рида-Маллера.
2. Построить матрицу как конкатенацию матриц ( ) и , т. е. ( ( ) ).
3. Сгенерировать невырожденную двоичную (/с х /с)-матрицу 5.
4. Сгенерировать перестановочную ( )-матрицу P.
5. Открытым ключом u b объявляется произведение .
6. Секретным ключ ifse с является кортеж матриц ( )
Сделаем небольшое замечание по поводу описанного алгоритма генерации ключей. Предполагается, что порождающая матрица случайного линейного кода зафиксирована, поэтому матрица из алгоритма
является общедоступной. Можно рассматривать криптосистему, в которой эта матрица не фиксируется, а выбирается в процессе генерации ключей. Вместе с тем необходимо потребовать существование эффективного алгоритма декодирования такого кода. При замене случайных кодов на коды Гоппы существование такого алгоритма известно, поэтому для этих кодов необходимо изучить стойкость не только описанной криптосистемы, но и её модификации, при которой матрица выбирается абонентом. В работе такой вариант не рассматривается. Он является темой дальнейших исследований. Сформулируем задачу криптоаналитика. Вход: Матрицы ( Gp и ь, и ь)
Найти: Невырожденную двоичную матрицу 5 и перестановочную матрицу , что выполняется равенство .
Заметим, что если криптоаналитику удастся найти такую перестановочную матрицу , что матрицы и
порождают один и тот же код, тогда матрицу можно найти, решая систему линейных алгебраических уравнений .
Таким образом, задача криптоаналитика сводится к
поиску перестановочной матрицы, удовлетворяющей указанному свойству.
III. Атака на криптосистему
Построенная атака основывается на сигнатурном методе, предложенном в работе [10] Н. Сендрие. Суть метода состоит в построении некоторой эффективно вычислимой сигнатуры инварианта кода относительно группы подстановок координат кода, и восстановлении перестановки координат кода по значению сигнатуры. Определение 5. Пусть /п = 1 ,. . ., п. Сигнатура S на множестве отображает код длины и элемент в элемент таким образом, что для любой подстановки на множестве выполняется равенство
S(C,0 = S( Cff,a(0), здесь CCT - код, который получается из кода C применение к каждому кодовому слову подстановки а следующим образом:
^ = (cff( 1), . ■ ■'cff(n))-
Сигнатура называется полностью различающей, если для любых i ^ у справедливо равенство S(C, i) ^ S(C,y). Если удастся построить эффективно вычислимую полностью различающую сигнатуру для кода тогда по коду можно восстановить значение подстановки а. Действительно, для этого нужно вычислить значения сигнатуры ( ) для кода и такие же значения
{S(CCT,y),y 6 /n} для кода Сст. Так как в сигнатура полностью различающая, то эти множества состоят из одних и тех же не повторяющихся элементах, поэтому a(i) = у, если S(C, i) = S(CCT,y).
В работе [10] доказано, что полностью различающая сигнатура для кода существует, если и только если код имеет тривиальную группу автоморфизмов, т. е. равенство может быть выполнено только для
тождественной подстановки . В реальных приложениях это, конечно, не так.
Если сигнатура не является полностью различающей, тогда множество ( ) будет состоять из
повторяющихся элементов, а значит его можно будет разбить на блоки, состоящие из одних и тех же значениях сигнатуры. Если таких блоков несколько, то сигнатура может дать некоторую информацию о подстановке . Действительно, можно утверждать, что
a(i) 6 А.....ур, если S(C,i) = S(Cff, А) = • • • = S( C Jp).
В этом случае можно сократить возможный перебор подстановок для поиска .
Для построения сигнатуры можно использовать инвариант кода, т. е. некоторое такое отображение кодов во множество , что для любой подстановки выполнено равенство ( ) ( ). Имея эффективно вычислимый инвариант, можно попытаться построить сигнатуру, использую процедуру выкалывания координат кода: S(C, i) = v(C£). Определение 6. Для [п,/с]-кода C и координаты i 6 /n код, получающийся из кода выбором тех кодовых слов, у которых в координате с номером содержится называется выколотым кодом .
Предлагаемая атака строит итерационно сигнатуру для комбинированного кода, порождаемого открытым ключом криптосистемы.
Для построения сигнатуры был выбран в качестве инварианта спектр оболочки кода.
Определение 7. Спектром кода С называется вектор ас = (а0,. . ., аи), в котором а - число кодовых слов веса Хэмминга ¿.
Определение 8. Оболочкой К (С) кода С называется код
На начальном этапе атаки строится сигнатура 5(С, 0 = аК( с.). Возможно, что она не будет полностью различающей. Однако, скорее всего будет существовать ряд координат кодовых слов, имеющих уникальное значение сигнатуры. В этом случае на этих координатах можно будет найти значение искомой подстановки -части секретного ключа.
Далее строится сигнатура для пары координат (¿,у), в которой для одной из координаты, например известно значение подстановки. Эта сигнатура строится следующим образом: 5(С, { ¿,у}) = здесь Су -
выколотый код одновременно по двум координатам, т. е. Су = ( Сг)7-. По уникальным значениям этой сигнатуры на парах координат можно восстановить значение подстановки а на тех координатах у, для которых ( { ) уникально для некоторой . Если не удастся восстановить всю подстановку, то процедура построения сигнатуры повторяется сначала на одной координате, а потом на двух, но уже для некоторого произведения Адамара кода, порождаемого матрицей открытого ключа.
Определение 9. Произведением Адамара кодов В и С одной и той же длины называется код, получающийся линейным замыканием множества { здесь - покоординатное произведение векторов и .
Заметим, что произведение Адамара кодов может быть построено за ( ) битовых операций, где - длина кодов в произведении, на основе порождающих матриц кодов. Более подробно см. [6]. Опишем алгоритм атаки более подробно. Алгоритм атаки.
Вход: матрицы и Сри& = ( С(г,ш) | Д ).
Выход: подстановка а , заданная перестановочная матрицей Р.
1. Пусть С - код, порождаемый матрицей и Вычислить сигнатуру 5Х( С, 0 = аК( с.) для всех координат кодовых слов 1 < I < п. И составить таблицу ( ) , здесь пробегает множество уникальных значений сигнатуры .
2. Вычислить сигнатуру 52( С, ¿,у) = £%(с ) для
всех координат кодовых слов . И
составить таблицу ( ) ( ) ,
здесь пробегает множество уникальных
значений сигнатуры .
3. Пусть Сст - код, порождаемый матрицей и Положим . Для каждого номера вычислить 5 = 5Х(Сст, ¿). Если Гх[5] содержит единственный номер , тогда положить ( ) , а номер поместить во множество .
4. Для всех пар ( V 6 У, I £ У) вычислить 5 =
( ). Если [ ] содержит единственную
пару координат ( ) тогда положить ( ) , а номер поместить во множество .
5. Если У /и, то построить порождающую
матрицу кода цС" = С" ° С " ° ... ° С здесь
ч
ц = [т / г\.
Повторить шаги 3 и 4, но уже для кода ц С". Заметим, что множество и при этом не опустошается, а постоянно пополняется. Если на каком-то шаге и = 1п, то необходимо перейти к шагу 7.
6. Пусть и = 1п \ и. Не ограничивая общности, будем считать, что и = 1 ,2, ..,,и для некоторого целого и>1 . Выбрать перестановку (11,.. ,Ли) элементов этого множества, положить а (]) = ^, ] = 1,... ,и. Теперь подстановка а определена на всех номерах множества и по ней можно построить перестановочную матрицу Р. Составить линейное уравнение Криь = Б СриЬ Р относительно матрицы , если оно разрешимо, то перейти к шагу 7. В противном случае выбирается другая перестановка элементов
и повторяется попытка найти матрицу .
7. Выдать подстановку .
Ясно, что сложность предложенной атаки зависит от размерности оболочки кода с порождающей матрицей от размерности оболочки кода , который получается является произведением Адамара на шаге 5 алгоритма, а также от размера множества после шага 5. Чем его размер ближе к размеру множества 1п, тем меньше подстановок опробывается на шаге 6 алгоритма. Проведём подробный анализ сложности каждого шага алгоритма атаки.
1. Вычисление Б^С^) состоит из 2Л ¿т(к(с0) подсчетов веса двоичного вектора длины п. Для построения таблицы необходимо вычислить п значений 5Х( С,1 ). Итого, сложность вычислений на первом шаге равна 2Л ¿т(к(с0)п2 битовых операций.
2. Вычисление Б2(С, I ,]) состоит из 2Л ¿т{к(сУ)) подсчетов веса двоичного вектора длины . Для построения таблицы необходимо вычислить (П) значений Б2(С, I ,]). Итого, сложность
вычислений на первом шаге равна (П)2Л ¿т(к(си')) битовых операций.
3. На третьем шаге происходят вычисления, аналогичные вычислениям первого шага, поэтому сложность равна 2 Л ¿т(к(с0)п 2 битовых операций.
4. На четвертом шаге происходят вычисления, аналогичные вычислениям второго шага, поэтому
ГпЛ^Л¿т(к(с; ¡)) сложность равна ( ) .
5. Построение состоит из вычисления произведения Адамара, сложность каждого из которых ( ) битовых операций. С учетом вычисленных сложностей третьего и четвертого шагов получаем сложность этого шага равной 0(ц П4) + 2 а ¿т(к((ч С )д)п 2 + (п)2 Л ¿т(к(( Ч с а)и))
битовых операций.
6. Сложность последнего шага атаки определяется числом возможных подстановок на множестве .
При этом для каждой выбранной подстановки решается система линейных уравнений методом Гаусса, сложность которого равна 0(п3 ). Итого, сложность данного шага равна 0(и! п3). Теорема 1. Сложность предложенной атаки равна 0((2h° + q)n4 + и!п3 + 2h 1п2) где h0 - максимум размерности оболочки кодов Ch i = 1 ,..,,п, и кодов Су, , - максиму размерности оболочки кодов ( ) , , и кодов ( ) , .
Доказательство. Пусть
h0 = maxjrnax dimJf(C), ^max dimJf( C^)}
и
hx = max] max dimJf((q C) ¡), max dimJf((q C)< ,)}.
(Д<i<n 1 <i<j<n '' )
Тогда, складывая оценки сложности каждого шага алгоритма, с учётом введённых обозначений, а также с учётом того, что применение подстановки к коду не изменяет размерности оболочки, получим, что сложность предложенного алгоритма равна
2h»п2(п2 — п + 2)+ 0(цп4) + 2hi(1.5 п2 — 0.5 п) + 0 (и !п 3 )
битовых операций. Далее, п2(п2—п + 2) = 0(п4) и ( ), значит окончательно получим 0((2 h° + ц)п4 + и !п3 + 2 h ^п2).
.
Как видно, сложность атаки существенно зависит от размера оболочки кода C и его произведения Адамара q C.
Для начала обсудим вопрос размерности оболочки кода q C. Пусть Л - код, порождаемый матрицей R. В работе [6] доказано, что qR M(r,m) = R M(qr,m). Значит, в силу того, что C £ RМ(г,т)хЛ, где х -декартово произведение кодов. Тогда из свойств произведения Адамара следует, что ( )
qJl. В работе [11] доказано, что с большой вероятностью 2Л = Vn. Если 2r < т, то q > 1, поэтому с большой вероятностью qH = Vn. А значит с большой вероятностью ( ) , тогда ( )
RM1 х { 0} . Верно равенство [8]
R M1(q r,m) = R М (т — q r — 1 ,т). Таким образом, с большой вероятностью ( )
dimR М (m — qr—1 ,т). Учитывая, что q = [m/r\, получим, что - остаток от деления на .
Окончательно получаем, что
dimJf(q C) = dimR М (т mo d r — 1 ,т). Чем меньшее остаток от деления т на r тем меньше эта размерность.
В следующем разделе обсуждается размерность оболочки кода, с порождающей матрицей .
IV. Оболочка комбинированного кода
В основе криптосистемы, как видно из предыдущего пункта, лежит код, порождающая матрица которого равна Gp и ь. Этот код получен путем конкатенации порождающих матриц кода Рида-Маллера и случайного кода.
Исследуем размерность оболочки данного кода. Фактически результат этого пункта является естественным обобщением результата Н. Сендрие [12] о
размерности оболочки случайного линейного кода. А. Число слабо самодуальных кодов Определение 10. Код С называется слабо самодуальным, если .
Следуя [12], найдём число слабо самодуальных кодов среди кодов, порождаемых матрицей вида ( ( ) ), где С(г,т) - порождающая матрица код Рида-Маллера, Я - порождающая матрица случайного линейного код
Утверждение 1. Число слабо самодуальных кодов с порождающей матрицей вида ( ( ) ), где ( ) -порождающая матрица кода Рида-Маллера Д М(г,т) и 2 г < т, Д -порождающая матрица некоторого линейного [п,/с]-кода, равно числу слабо самодуальных [ ]-кодов.
Доказательство. Пусть С = (С(г,т) | Д ). Рассмотрим
дуальный код . Его порождающая матрица имеет вид: ( )
(о И,
м в )
где ( ) - порождающая матрица кода
( ) т.к. этот коду является дуальным к
коду Рида-Маллера ( )[ ], - порождающая матрица кода, дуального коду с порождающей матрицей , и - ( ) -матрицы максимального ранга, зависящие от кода с порождающей матрицей . Известно [8], что Д М(г, т) лежит в своем дуальном коде, если 2 г < т. Таким образом, код с порождающей матрицей ( ( ) ) лежит в своем дуальном. Значит, если код с порождающей матрице слабо
самодуальный, то и код также слабо самодуальный. Докажем теперь обратное, что если код слабо самодуален, то этим же свойством должен обладать и код порождающей матрицей . Рассмотрим вектор ( ) т. к. по условию то в силу вида порождающей матрицы кода найдутся такие векторы что
(и | г) = (а С(т-г-1 ,т) + ]М | /? Д 1 + уВ ) . Вектор ( ) ( ) (
) поэтому . Но это означает, что для
некоторого . Так как пробегает все векторы
кода с порождающей матрицей , то этот код также слабо самодуален.
Таким образом, доказано, что условие слабой самодуальности кода эквивалентно условию слабой самодуальности кода с порождающей матрицей , а так как это матрица произвольного [п,/с ]-кода, то число слабо самодуальных кодов равно общему числу слабо самодуальных [п,/с]-кодов. □
Число слабо самодуальных линейных [п, /с ]-кодов над
( ) обозначим за . Определение. Пусть и - два таких целых числа, что п > /с > 0 . Тогда биномиальным коэффициентом Гаусса называется число:
гш (2 и-1 )(2 ). . .(2 с+)
[/с] = (2 с-1 )(2 !-1 ). . .(2-1 ) .
Далее будем считать, что, если /с < п, то [п ] = 0 .
Используя свойства биномиального коэффициента Гаусса, можно записать:
ГП] = 2 fc(n-fc) Я2.П
где последовательность ( ) определена для любого следующим образом:
5 Ч,П = Щ1 Д 1-^). Утверждение 2 ([12]). (Формула обращения). Пусть даны две последовательности ( ) и ( ) целых чисел. Тогда для всех
I
V 1,0 < г < /с, г 1 = ^ [ и 1 фф
1=0
I
V г, о < г < /с, и = ^ [ г] ( - 1 ) -2
'¿-А
2 ^
Утверждение 3 ([12]).
Последовательность ( ) строго убывающая для всех. Обозначив за дчоо предел этой последовательности при стремящемся к
бесконечности, получим
Яд ,°о _ у _1__(- 1)'_
,п = - 1)(ч 2- 1) . . .(ч ' - 1) .
Следствие 1 ([12]).
Для всех целых
Ч'1 3q,n
Утверждение 4 ([12]).
Пусть m = |п/ 2 ]Для всех k < m,
2ft(n-,c) Я4,т
fc 4 + 1 )/2Д 4 ,m - 2 , k
С 1, если n нечётное
-.где
s. fc = {2n — 2 fc
2n — 1
если n четное
Утверждение 5. Для всех k < п/4,
1 — 2п/л-к — än/2,k
Доказательство. Для k < п/ 4:
1 <s„,7k< 1+ 1
211/i-k'
1 24-2fc ^ 22-2fc ^ ^ 24+2fc ^ , 1 1 — Ц— < —- < —- < 1 < —- < 1 + "n—. □
24-*
—-t 21 _ 24 24-1 22-1
n
22 + 1
Таким образом, из утверждений 1 и 4 следует, что число слабо самодуальных кодов среди рассматриваемого класса кодов равно .
В. Асимптотические оценки
Пусть - размерность оболочки кода с порождающей матрицей ( ( ) ). За обозначим количество
[ ] -кодов, размерность оболочки которых равна . Введём для всех две последовательности
[п - 2/с+ 2 С]а _ __ 2 Й+1 )/ 2
bn,k,t — '
ИИ
а
m
Утверждение 6. Пусть т = |п/ 4]. Для всех /с < т и для всех :
£ _ 2^+1 )/2 Я4.тЯ 2 ,п - 2 к+21. 2 ,п - к л, /с,С „ „ „ и, /с—С.
9'l,m-k+{9q,n-2k+{9qln
Доказательство. Из утверждения 4 получаем, что
2(к-1)(п-к+1) Я4.Щ
аи, /с - С = 7(к -С)( к -С+1 )/2 „ , „„ , „5П, /с- С.
и
Из (1) следует, что
|n — 2к + 2£j _ 2*(п-2к+£) 32,п-2k+2-e
32,{д2,П-2Ы
П [к] = 2 к(п - к )+*(к-е)
_32,432,к
3 2 ,кЗ 2 ,п—кЗ 23 2 ,к—
т1]
и используя тот факт, что к(к + 1 ) £(£ +1 ) (к — £)(к — £ + 1 )
+ £( к — £),
I
/^^=2 £(£+1)/2,
и пусть уп к £ = u£ — ап,к,£- Тогда для всех £ , 0 — £ — к, выполнено
\ £ ] уп, к, i = Кп, к,£ ■
поучаем
\п — 2к + 2(
1
К* - £ 2 £(£+1)2 д, „шд 2 ,п - 2 к+2 t9 2 ,п - к
m
2к(к+1)/2 д,,ш-к+(д2 п -2к+1д2,г
Лемма 1. Пусть т = [п /4], для всех I < т,
34,т32,п-1 ^ ^ 34,т-132,п
Доказательство. По определению последовательности 92,п и д4,п получим
34,тЗ2,п-1 _ ПТ= т-1+ 11 2] _ 1 - 1/22т-2]+2
3 4 ,т - Ш 2 п= Щ= п - г+11 =П = 1 1 -1 / 2 П-] +1 .
Для всех вне зависимости от чётности
получим
1 1 1--:- <1--:-,
22т-2] + 2 ~ 2П~] +1
что завершает доказательство. □
Лемма 2. Пусть т = [п /4], для всех I < т,
34,со32,П-21 ^ ^ 34,т-132,со
Доказательство. По определению получаем
34, оо 32п-21 _ П]г т-11 -222] _ ,-, 1- 1/22т-2+2]
= П_/ > о
3 4 ,т - i3 2 , 00 П > п __ 2 il--j
1_1/2П-21+7 ■
Для всех вне зависимости от четности
выполняются неравенства
>1
22т—21+2] — 2п~21+]'
что завершает доказательство. □
Утверждение 7. Пусть 5п к е = 2£(£+1)/2 - Ьпк£. Для
всех £,0 < £ < к, верно:
2£(£-1)/2 2 £(£ -1)/2 2п-к - $п,к,г — 2 2П_к .
Доказательство. Пусть т = [п / 4], из утверждения 6 следует равенство
и =2£(£+1) /2 34т3 2 ,п - 2 к+2£3 2 ,п - к п, к ,£ „ „ „ п, к—£,
34,т-к+£32,п-2к+£32,п
Используя леммы 1 и 2 и тот факт, что последовательности и убывающие, получаем
32,оо
3 2 ,п - 2 k+£ п,к - £-2 £(£ + 1 V2-0 п, к- £.
Из следствия 1 и утверждения 5 получаем I = ( 1__M ( 1__1—) <
и V 2n—2k+{J у „п/2-k+t) —
bn,k,t < ^ 1
£(£+^ ^ 1 2п-k+£' 2 2
Рассмотрим левую часть неравенства
11 11 L > 1 --=---=-> 1 -
22-2k+t 2l-k+t
= 1 -■
/Ь . п II* . п
22~к+{ Ц2~
Ц2~к+£
и в итоге
( 1__1—)
\ (2 п/2 - к+£)
ьи,м <1+.
< £(£ +1 ) < 1 + 2 2
22
-к+{
что завершает доказательство. □ Утверждение 8 ([12]). Пусть последовательность ( ) является решением уравнения
Из формулы обращения (утверждение 2) в условиях утверждения 8 получим
Щ
=1\£\(—1 )£-i2
^MV)
Лемма 3 ([12]). Для всех £ > 0 справедливо введём
последовательность
=!\£}(—1 )£-i2
¿=0
и
Тогда
(0, если £ нечетное {и£ и н ач е .
Утверждение 9 ([12]). Пусть последовательность ( ) является решением уравнения
^\£]щ=2 £(£+1)2 ■ i=o
Тогда для всех
wl= П 2 ¿ П (2 ¿-1)
0 <1<£,1—четное 0<1<Л,1—нечетное
или, что эквивалентно, и для всех
{Щ_12* если £ нечетное
и£- -¡^(2 £-1) и н ач е '
Следствие 2 ([12]). Для всех £ > 0
щ = 2 £(£+1)/2-9^.
9а,
[£/2\
Утверждение 10. Для всех £,0 — £ — к:
2 £(£-1)/2
1Гп,кА—2 (£ + 1 )
У2 ,[£ / 21
Доказательство. Формула обращения дает
Уп.к.£
=1\£\(—1 )£-i2
)
n.k.i•
i=0
Откуда из утверждения 7 получим неравенство:
i=о
22"
¿=0
В силу того, что (£ — ^ + = (£) — i(£ — 0 получаем
(£) £ (£) £
I I п 2 ( 2) у Г£1 1 ? 2( 2) у
1Уп,к,£1 — 2 2 п/2-к [i ] 2 i(£-i) 2 2 п/2 - к / .
92,е
1=0
i 92,i92,t-i 1=0
Итого, учитывая, что д2t — д2i и д2,£ — д2,£-ь получим
92,i92,f-i
92,е ^ . / 1 1 W 1 -— mini-,-) — ■
92,t 92,Î-ÎJ 9г,yl^
Отсюда
\у п, к, i1 — 2
2 (2) £ + 1
и
□
□
Следствие 3. Существует константа 7, что для всех 0 <( <к,
\уплА . „ /с
-Ь /V —тт-.
щ 21-к+-е
Доказательство. Из утверждения 10 и следствия 2 можно легко найти эту константу 7. □ Используя полученные результаты легко найти размерность оболочки комбинированного кода. Теорема 2. Пусть п - целое положительное число. Для всех число кодов, порождаемых
матрицей ( С(г, ш) | Д ), размерность оболочки которых равна , равно
Ап, м = [П] 2 + °
Доказательство. По определению
//(// + 1) |-п-| ГД.-1
А п, //, к—,2 2 = [/] ап,//,7
где ап,кк—, = ик—, + уп,к,к—,. По следствию 3 получаем
А п,к,7 ^ 1 )/ 2 = [П] [/] - к—,(1 + 0 (2^2—7))-
Из следствия 2 и (1) получаем утверждение теоремы. □ Пусть задано вероятностное пространство, множество элементарных исходов которого состоит из всех возможных размеров оболочки кода , порождаемого матрицей ( ( ) ).
По построению количество различных кодов длины и размерности равно числу различных кодов длины п и размерности /с. Количество двоичных линейных
[п,/с]- кодов равно В вероятностном пространстве можно ввести дискретную случайную величину к = С т(Ж С)). Тогда, с учетом теоремы 1, её распределение вероятности определяется следующим образом:
р, = Рг{сг ¿ш(Я"(С)) = 7} = А^7
[ ]
Тогда её математическое ожидание равно
м1,=| 2 ,(,+<2)
V. РЕЗУЛЬТАТЫ ПРОГРАММНОГО МОДЕЛИРОВАНИЯ
Атака была реализована программно на языке С++. Исследования проводились на кодах с параметрами (/с х 2 п)= {(2 2 х 12 8), (9 3 х 5 1 2 ), (1 3 0 х 1 02 4)}. С использованием формулы (2) было вычислено, что с наибольшей вероятностью размер оболочки для исследуемых кодов равен 1, а вероятность получить размерность больше трех близка к нулю. Ввиду небольшого размера оболочки рассматриваемого комбинированного кода можно надеяться на эффективность предложенной атаки. Для рассматриваемых примеров размерность произведений Адамара, строящегося на шаге пять, соответственно равна { 1 2 8(<? = 3 ), 5 1 2( q = ) ( ) И как видно, она относительно невилика.
Ниже в таблице представлены результаты проведенных
экспериментов. Для минимальных значений размера порождающей матрицы кода результаты получены на 1000 матрицах, для больших размеров - на 10 матрицах.
Размер КуиЪ (it X 2 11) (Кбайт) il S2 Размер оболочки q произведений Адамара Сложность полного перебора Сложность атаки
(22X 128) (5.6 Кб) 1 1 1 7 281 233
(93X 512) (95.2 Кб) 1 1 9 10 23S0 2«
(130X 1024) (266.2 Кб) 1 1 1 21 2S60 2 96
Построенная атака была применена и к оригинальной криптосистеме Кабатянского-Тавернье [7], в которой код Рида-Маллера комбинируется с кодом Гоппы. Результаты экспериментов приведены в таблице ниже. Данные получены на следующих значениях параметров (г, ш ^ кода Рида-Маллера и (ш 2 , | I | ) - параметров кода Гоппы:
[{( ) ( ) {( )( ) {( )( ) ]
Аналогично для небольших размеров параметров данные получены на 100 матриц, для больших - на 5.
Размер КуиЪ (it X 2 11) (Кбайт) il s2 Размер оболочки q произведений Адамара Сложность полного перебора Сложность атаки
(22X 128) (5.6 Кб) 1 1 1 10 281 243
(93 X384) (з5.7 Кб) 1 1 9 23 23S0 297
(130X721) (93.7 Кб) 1 1 1 38 2S60 2176
VI. Заключение
В работе рассматривается криптосистема типа Мак-Элиса-Сидельникова, построенная на комбинировании кодов Рида-Маллера, случайных линейных двоичных кодов или кодов Гоппы. На такую криптосистему была построена структурная атака, восстанавливающая секретный ключ в модели, когда противнику известна порождающая матрица случайного кода. Атака показывает эффективность на достаточно больших открытых ключах, поэтому на практике размеры ключей должны быть значительно увеличены. В целом авторы полагают, что модификация Кабатянского-Тавернье не только не увеличивает стойкости криптосистемы Мак-Элиса, но и понижает её в модели, в которой фиксированы используемые коды. Так атаки на основе алгоритма разделения носителя не применимы к кодам Рида-Маллера или к кодам Гоппы, но комбинация этих кодов вносит полезные свойства криптосистемы, которые противник может использовать для построения атак.
Один из выходов для защиты от такого рода атак -оставлять в секрете параметры кодов Гоппы при использовании криптосистемы на практике. Однако авторы считают, что описанная техника может
быть усовершенствована для построения эффективных атак в модели с неизвестными параметрами кодов, на основе которых строится криптосистема.
Библиография
[1] R. J. Mceliece, «A Public-Key Cryptosystem Based on Algebraic Coding Theory», JPL DSN Prog. Rep., т. 44, сс. 123-125, 1978.
[2] P. W. Shor, «Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer», SIAM J. Comput., т. 26, вып. 5, сс. 1484-1509, окт. 1997, doi: 10.1137/S0097539795293172.
[3] N. T. Courtois, M. Finiasz, и N. Sendrier, «How to Achieve a McEliece-Based Digital Signature Scheme», в Advances in Cryptology — ASIACRYPT 2001, Berlin, Heidelberg, 2001, сс. 157-174, doi: 10.1007/3-540-45682-1_10.
[4] «В. М. Сидельников, "Открытое шифрование на основе двоичных кодов Рида-Маллера", Дискрет. матем., 6:2 (1994), 3-20; Discrete Math. Appl., 4:3 (1994), 191-207», Просмотрено: апр. 25, 2020. [Онлайн]. Доступно на: http://www.mathnet.ru/php/archive.phtml?wshow=paper&jr nid=dm&paperid=637&option_lang=rus.
[5] L. Minder и A. Shokrollahi, «Cryptanalysis of the Sidelnikov Cryptosystem», в Advances in Cryptology -EUROCRYPT 2007, т. 4515, M. Naor, Ред. Berlin, Heidelberg: Springer Berlin Heidelberg, 2007, сс. 347-360.
[6] М. А. Бородин, M. A. Borodin, И. В. Чижов, и I. V. Chizhov, «Эффективная атака на криптосистему Мак-Элиса, построенную на основе кодов Рида - Маллера», Дискретная Математика, т. 26, вып. 1, сс. 10-20, 2014, doi: 10.4213/dm1264.
[7] E. Egorova, G. Kabatiansky, E. Krouk, и C. Tavernier, «A new code-based public-key cryptosystem resistant to quantum computer attacks», J. Phys. Conf. Ser., т. 1163, с. 012061, фев. 2019, doi: 10.1088/1742-6596/1163/1/012061.
[8] Ф. Дж. Мак-Вильямс и Н. Дж. А. Слоэн, Теория кодов, исправляющих ошибки. Москва: Связь, 1979.
[9] E. Berlekamp, R. J. McEliece, и H. C. van Tilborg, «On the Inherent Intractability of Certain Coding Problems», Inf. Theory IEEE Trans. On, т. 24, вып. 3, сс. 384-386, 1978, doi: 10.1109/TIT.1978.1055873.
[10] N. Sendrier, «Finding the permutation between equivalent linear codes: the support splitting algorithm», IEEE Trans. Inf. Theory, т. 46, вып. 4, сс. 1193-1203, июл. 2000, doi: 10.1109/18.850662.
[11] D. Mirandola и G. Zemor, «Schur products of linear codes: a study of parameters», Diss Master Thesis Superv. G Zemor Univ Bordx., 2012.
[12] N. Sendrier, «On the Dimension of the Hull», SIAM J. Discrete Math., т. 10, вып. 2, сс. 282-293, май 1997, doi: 10.1137/S0895480195294027.
Structural attack on McEliece-Sidelnikov type
public-key cryptosystem based on a combination of random codes with Reed-Muller
codes
Ivan Chizhov, Elizaveta Popova
Abstract — This paper represents the investigation of McEliece-Sidelnikov cryptosystem, based on combination of random codes with Reed-Muller codes. Different modifications of classical McEliece cryptosystem has been studied. Sidelnikov's work introduced using the several samples of Reed-Muller code, and Kabatiansky and Tavernier's work proposed to use the concatenation of Goppa and Reed-Muller codes. The popularity of this cryptosystem explains with the fact that it's strength is based on the hardness of the decoding general linear code problem, so it will remain unbreakable in postquantum era. This paper investigates one of the modifications of McElice cryptosystem in a model when the attacker knows the public-key matrix and the generator matrix of random linear code. The goal is to reconstruct the permutation matrix from the secret-key. During the investigation of the hull of the code built by combining random codes with Reed-Muller codes the theorem about the number of such codes with fixed size of the hull has been proved. An attack based on signature method has been produced and programmed with the use of C++ programming language. All the results of this program's work are represented in this paper. With the use of proved theorem the hardness of provided attack has been calculated.
Key words — postquantum cryptography, code-based cryptosystems, McEliece public key cryptosystem, Sidelnikov public key cryptosystem, combined linear codes, Reed-Muller codes.
References
[1] R. J. Mceliece, «A Public-Key Cryptosystem Based on Algebraic Coding Theory», JPL DSN Prog. Rep., t. 44, ss. 123-125, 1978.
[2] P. W. Shor, «Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer», SIAM J. Comput., t. 26, vyp. 5, ss. 1484-1509, okt. 1997, doi: 10.1137/S0097539795293172.
[3] N. T. Courtois, M. Finiasz, i N. Sendrier, «How to Achieve a McEliece-Based Digital Signature Scheme», v Advances in Cryptology — ASIACRYPT 2001, Berlin, Heidelberg, 2001, ss. 157-174, doi: 10.1007/3-540-45682-1_10.
[4] «V. M. Sidel'nikov, "Otkrytoe shifrovanie na osnove dvoichnyh kodov Rida-Mallera", Diskret. matem., 6:2 (1994), 3-20; Discrete Math. Appl., 4:3 (1994), 191-207», Prosmotreno: apr. 25, 2020. [Onlajn]. Dostupno na:
http://www.mathnet.ru/php/archive.phtml?wshow=paper&jr nid=dm&paperid=637&option_lang=rus.
[5] L. Minder i A. Shokrollahi, «Cryptanalysis of the Sidelnikov Cryptosystem», v Advances in Cryptology -EUROCRYPT 2007, t. 4515, M. Naor, Red. Berlin, Heidelberg: Springer Berlin Heidelberg, 2007, ss. 347-360.
[6] M. A. Borodin, M. A. Borodin, I. V. Chizhov, i I. V. Chizhov, «Jeffektivnaja ataka na kriptosistemu Mak-Jelisa, postroennuju na osnove kodov Rida - Mallera», Diskretnaja Matematika, t. 26, vyp. 1, ss. 10-20, 2014, doi: 10.4213/dm1264.
[7] E. Egorova, G. Kabatiansky, E. Krouk, i C. Tavernier, «A new code-based public-key cryptosystem resistant to quantum computer attacks», J. Phys. Conf. Ser., t. 1163, s. 012061, fev. 2019, doi: 10.1088/1742-6596/1163/1/012061.
[8] F. Dzh. Mak-Vil'jams i N. Dzh. A. Slojen, Teorija kodov, ispravljajushhih oshibki. Moskva: Svjaz', 1979.
[9] E. Berlekamp, R. J. McEliece, i H. C. van Tilborg, «On the Inherent Intractability of Certain Coding Problems», Inf. Theory IEEE Trans. On, t. 24, vyp. 3, ss. 384-386, 1978, doi: 10.1109/TIT.1978.1055873.
[10] N. Sendrier, «Finding the permutation between equivalent linear codes: the support splitting algorithm», IEEE Trans. Inf. Theory, t. 46, vyp. 4, ss. 1193-1203, ijul. 2000, doi: 10.1109/18.850662.
[11] D. Mirandola i G. Zemor, «Schur products of linear codes: a study of parameters», Diss Master Thesis Superv. G Zemor Univ Bordx., 2012.
[12] N. Sendrier, «On the Dimension of the Hull», SIAM J. Discrete Math., t. 10, vyp. 2, ss. 282-293, maj 1997, doi: 10.1137/S0895480195294027.