Научная статья на тему 'Несимметричный алгоритм шифрования с использованием эллиптических кодов'

Несимметричный алгоритм шифрования с использованием эллиптических кодов Текст научной статьи по специальности «Математика»

CC BY
210
34
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Евсеев С. П.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Несимметричный алгоритм шифрования с использованием эллиптических кодов»

УДК 621.391

С.П. ЕВСЕЕВ (г. Харьков)

НЕСИММЕТРИЧНЫЙ АЛГОРИТМ ШИФРОВАНИЯ С

ИСПОЛЬЗОВАНИЕМ ЭЛЛИПТИЧЕСКИХ КОДОВ

Розробляються несиметричш методи шифрування з використанням алгеброгеометричних ксдав, побудованих по елштичних кривих (елштичних кодiв). Дослiджуються ефективнi процедури кодування-декодування елiптичних кодiв.

Asymmetrical methods of coding with the use of algebraic geometric codes built on the elliptic curves are developed (elliptic codes). Effective procedures of encoding-decoding elliptic codes are explored.

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

Теоретико-кодовые схемы для криптографической защиты информации впервые предложены в [1 - 2]. Основное достоинство несимметричных криптосистем, построенных на их основе, состоит в высокой скорости криптографического преобразования информации [1 - 4]. Однако, как показано в [3 - 4], известные схемы, построенные с использованием обобщенных кодов Рида-Соломона, могут быть взломаны алгоритмом полиномиальной сложности. Перспективным направлением в их развитии считается применение алгеброгеометрических кодов [4].

Целью статьи является разработка несимметричных методов шифрования с использованием алгеброгеометрических кодов, построенных по эллиптическим кривым (эллиптических кодов), исследование эффективных процедур кодирования-декодирования эллиптических кодов.

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

Пусть X - невырожденная к х к-матрица над ОЕ(д), Б - диагональная матрица с ненулевыми элементами на диагонали, Р - перестановочная матрица размера п хп. Определим несимметричную криптосистему по схеме Мак-Элиса с эллиптическим кодом [5 - 6]: открытый ключ - матрица О^х = X ■ Оес ■ Р ■ Б; секретный (закрытый) ключ - матрицы X, Р, Б. Шифрованная информация (криптограмма) представляет собой вектор длины п и вычисляется по правилу с* = / ■ О^ + е , где вектор сх = / ■ Оес

принадлежит эллиптическому (п, к, д) коду с порождающей матрицей оХс ; I - к-разрядный информационный вектор; вектор е - секретный вектор ошибок веса <1.

Передача криптограммы предваряется следующими операциями. Абонент Б случайно, равновероятно, независимо от других абонентов формирует матрицы X, Р, Б и хранит их в секрете (закрытый ключ), вычисляет матрицу ОХС = X ■ Оес ■ Р ■ Б и публикует ее как открытый (общедоступный) ключ. Абонент А для отправки секретного сообщения / формирует криптограмму с*х = / ■ ОХ + е . Ее может сформировать (зашифровать отправляемую информацию) любой пользователь, знающий публичный (общедоступный) ключ. Злоумышленник, не зная секретного ключа абонента Б, не сможет вскрыть содержимое криптограммы (прочесть информационное сообщение), для него декодирование - трудноразрешимая задача (экспоненциальной сложности). Напротив, абонент Б декодирует криптограмму по алгоритмам полиномиальной сложности.

Таким образом, криптограмма формируется путем кодирования исходной информации эллиптическим кодом с последующим добавлением случайного вектора ошибок, вес которого не превышает исправляющую способность эллиптического кода. Алгоритм формирования криптограммы (шифрования) представим в виде последовательности следующих шагов:

ШАГ 1. Ввод информации, подлежащей шифрованию, ввод открытого ключа шифрования ОХр.

ШАГ 2. Кодирование информации эллиптическим кодом. Формирование кодового слова сх эллиптического кода, заданного матрицей оХс .

ШАГ 3. Формирование вектора ошибок е, вес которого не превышает / -

исправляющую способность эллиптического кода.

*

ШАГ 4. Формирование криптограммы сх = сх + е.

Основным этапом предложенного алгоритма является кодирование информационного вектора эллиптическим кодом (шаг 2). Пусть задан эллиптический код своей порождающей матрицей ОХр :

оЕС =

^0(Р0) ... ад^

И^) ... И^)

=1 И (Р1

Л_1(Ро) И_1(Р1) ... ик_1(Р„_1)у где И'(Р>) - значения генераторной функции И в точке эллиптической кривой.

Кодовое слово в этом случае может быть сформировано по следующему правилу:

с] =

21Л (Р]), ] = о, п -1, ,=1

или в матричной форме - как произведение информационного вектора-строки на порождающую матрицу

1Ы=зди=1 и (Р] )| М-

Таким образом, для реализации несистематического алгоритма кодирования необходимо хранить элементы матрицы ||И- (Р] )|| к, либо поочередно вычислять их как значения генераторных функций в точках кривой. Всего, при известном и хранимом в памяти массиве ||и Р )|| к

необходимо выполнить к х п операций сложения и умножения. Формально, сложность алгоритма О(к х п). Если эллиптический код задан через проверочную матрицу НЕС, построенную через вычисления генераторных функций в точках кривой, то алгоритм кодирования будет следующим.

Пусть I - множество к информационных позиций кодового слова (т.е. множество номеров позиций, входящих в заданный информационный набор кода) и к - множество г = п - к проверочных позиций. Объединение множеств 1~ик содержит все целые числа (номера) от 0 до п - 1. На информационных позициях разместим к символов сообщения, а на

проверочных - нули. Вычислим суммы Б] е^И] (Р,), ] = 0, г -1 или в

,е1

матричной форме ЦБ]] =|(Р, ||сг||^, где И/Р,) - значения генераторных

функций в точках эллиптической кривой - элементы проверочной матрицы

НЕС.

Задача состоит в том, чтобы вычислить и записать на проверочных позициях такие символы с,, , ек, которые удовлетворяют уравнению сН = 0.

Из определения эллиптического кода следует, что значения г = п - к проверочных символов могут быть найдены из системы линейных уравнений

2 (Р)> -= •

В матричном представлении последняя запись эквивалентна выражению

Ь )| г,г К =1- Ч •

Для нахождения значений г = п - к проверочных символов используем методы обращения матриц [7]. Запишем в матричной форме

N1 =1И (Р )| II- Ч.

где Ц^,-(Р)||- обратная матрица (Р,

Поскольку размещение проверочных позиций обычно известно и фиксировано, то заранее можно найти обратную матрицу и получить все проверочные символы умножением вектора (8о,...£Г.\) на матрицу

1Н/ (Р )||-7. В качестве информационных могут быть выбраны любые к

позиций кодового слова. Следовательно, всегда можно выбрать такое множество проверочных (и информационных) позиций, для которого матрица

1Н/ (Р )||-7 наиболее удобна для вычислений.

Таким образом, для реализации такого алгоритма кодирования

достаточно хранить элементы матрицы (Р, и (Р, )||либо

поочередно вычислять (Р )||^7 как значения генераторных функций в

точках кривой. Всего, при известных и хранимых в памяти массивах

11^ (Р и (Р )|| -у' необходимо выполнить г х п операций сложения и

умножения. Формально, сложность алгоритма О(г х п).

Для дешифрования информации в теоретико-кодовой схеме Мак-Эллиса с эллиптическими кодами необходимо снять действие диагональной Б и перестановочной Р матриц. Затем, декодировав полученный вектор, необходимо снять действие матрицы X. Алгоритм дешифрования представим

в виде последовательности следующих шагов.

*

ШАГ 1. Ввод криптограммы с*, подлежащей дешифрованию. Ввод закрытого ключа - матриц X, Р, Б.

ШАГ 2. Снятие действия диагональной и перестановочной матриц:

с = с* Б р .

ШАГ 3. Декодирование вектора с . Формирование вектора г'.

ШАГ 4. Снятие действия матрицы X: / = 1' • X'1. Формирование искомого информационного вектора /.

Основным этапом разработанного алгоритма дешифрования

_*

криптограмм является декодирование вектора с (шаг 3), которое состоит в нахождении вектора ошибок е = (е0, е1, ..., епл) по известной синдромной последовательности.

Рассмотрим в качестве генераторных функций однородные одночлены степени degF. Каждый такой одночлен запишем в виде /¡тр = х}у"2р, I + т + р = degF. На множестве проективных точек кривой, представимых в однородных координатах в виде Р(Х, У, 1), значения генераторных функций примут вид /¡т = Х'У™, г = 0, ..., п - 1, I + т < degF. Проверочная матрица Н запишется в виде

< 1 1 ... 1 ^

НЕС =

Хп

X

Х„

ydeg F ydeg F ydeg F

\У0 У1 ... Уп-1

Элементы синдромной последовательности, как элементы вектора ||£/т|| , вычислим по правилу

п-1 п-1

Бтт = 2 С*Х<УГ = X еХ\УГ , I + т <degF,

(1)

или, в матричной форме,

\К\\Г = Н ||с*||Т =\Х1УГ\ \\e\l.

г II II п И II п,г п

Таким образом, задача декодирования алгеброгеометрического кода, построенного через отображение проективных точек Р(Х, У, 1) кривой однородными одночленами степени degF эквивалентна задаче решения системы из г = d + g - 1 нелинейных уравнений от 3/ переменных. Для решения этой задачи воспользуемся искусственным приемом. Введем в рассмотрение многочлен локаторов ошибок алгеброгеометрического кода, решения которого однозначно локализуют (указывают местоположение) возникших ошибок - многочлен от двух переменных, степени < (/ - 1):

аоо + акх + ... + у1'1 = 0, (2)

где / - число ошибок, которое может исправить алгеброгеометрический код.

Умножив обе части многочлена (2) на ei и просуммировав по всем г = 0, ..., п - 1, значениям в точке (х = X, у = Уг), получим рекуррентное выражение

а(юБ(ю + аю £10 + .■■ + £0 м = 0,

1

0

0

которое задает систему линейных уравнений относительно неизвестных коэффициентов многочлена локаторов ошибок. В матричном виде система линейных уравнений запишется в виде

(

S

00

S

10

10

20

Si t-S

л (

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

'2 t-2

S11-2 S0

0 t-2

S

00

10

Л Í

- S0 t - Si

0 t-1

Л

- Si

t-i

2t-3

После нахождения коэффициентов многочлена локаторов ошибок локализуем ошибки. Подставим в известный многочлен локаторов ошибок локаторы и выберем те из них, которые обращают его в нуль. Т.е. в многочлен локаторов подставляются все пары (X, Y), отождествляющие все проективные точки кривой, заданные в однородных координатах Р(Х, Y, 1). После нахождения локаторов ошибок, указывающих на расположение возникшей ошибки, процедура нахождения кратности ошибки (значение всех ei # 0) состоит в подстановке локаторов в систему (1), которая вырождается в систему < r линейных уравнений относительно < t неизвестных. Сложность решения системы линейных уравнений методом Гаусса - O(n2), где n - число переменных. Общая сложность рассмотренного алгоритма декодирования -O(4t2 + (t2 + t - 2)2/4).

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

Список литературы. 1. McEliece R.J. A Public-Key Criptosystem Based on Algebraic Theory. // DGN Progres Report 42-44, Jet Propulsi on Lab. Pasadena, CA. January - February, 1978. - P. 114

- 116. 2. Niederreiter H. Knapsack-Type Cryptosystems and Algebraic Coding Theory // Probl. Control and Inform. Theoty. - 1986. - V.15. - P. 19 - 34. 3. Сидельников В.М., Шестаков С.О. О системе шифрования, построенной на основе обобщенных кодов Рида-Соломона // Дискретная математика. - 1992. - Т.4. - № 3. - С. 57 - 63. 4. Сидельников В.М. Криптография и теория кодирования. Материалы конференции «Московский университет и развитие криптографии в России». - М.: МГУ, 2002. - 22 с. 5. Кузнецов А.А., Евсеев С.П. Разработка теоретико-кодовых схем с использованием эллиптических кодов // Системи обробки шформацп. - Х.: ХВУ. - 2004.

- Вип.5. - С. 127 - 132. 6. Кузнецов А.А., Лысенко В.Н., Евсеев С.П. Метод повышения безопасности и помехоустойчивости каналов передачи данных // Современные методы кодирования в электронных системах. Материалы международной НТК 26-27 октября 2004. -Сумы: СМКЭС. - 2004. - С. 12 - 13. 7. Гантмахер Ф.Р. Теория матриц. - М.: Наука, 1988. -552 с.

Поступила в редакцию 01.10.2004

2

a

i Надоели баннеры? Вы всегда можете отключить рекламу.