Отчет НИР - Центр образования и разработок в сфере

advertisement
Министерство образования и науки Российской Федерации
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ “САРАТОВСКИЙ
ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМЕНИ Н.Г.ЧЕРНЫШЕВСКОГО” (СГУ)
УДК 681.3
УТВЕРЖДАЮ
Ректор Федерального государственного
бюджетного образовательного учреждения
высшего профессионального образования
“Саратовский государственный
университет имени Н.Г.Чернышевского”
_____________________ Л.Ю.Коссович
«_____» _________________2011г.
МП
ОТЧЕТ
О НАУЧНО-ИССЛЕДОВАТЕЛЬСКОЙ РАБОТЕ
по Государственному контракту от 7 сентября 2011 года № 07.Р20.11.0029
“Подготовка и переподготовка профильных специалистов на базе центров образования и
разработок в сфере информационных технологий в Южном и Северо-Кавказском федеральных
округах”
Тема НИР: «Разработка программного комплекса шифрования данных, на основе
использования точек эллиптической кривой»
Научный руководитель
М.Г. Бабенко
Саратов 2011
1
Список исполнителей
Научный руководитель
М.Г. Бабенко (введение,
НИР, начальник отдела
разработки программного
разделы 5,6,7, заключение)
подпись, дата
обеспечения и обработки
информации РЦТ ФГБОУ
ВПО СтавГУ, канд. физ.мат. Наук
Исполнители темы
Студентка 4 курса
физико-математического
факультета, специальности
Е.С. Карнаухова (раздел 1,
подпись, дата
2, 3, 4)
математик СтавГУ
Студент 4 курса физико-
В.А.Кучуков (раздел 1, 2, 3,
математического
факультета, специальности
4)
подпись, дата
математик СтавГУ
Студент 4 курса физико-
Н.Н.Кучеров (разделы 1, 2,
математического
факультета, специальности
3, 4)
подпись, дата
математик СтавГУ
2
Реферат
Отчет 91 с., 20 рис., 7 табл., 60 источников.
КРИПТОГРАФИЯ, МЕТОДЫ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ,
ЗАЩИТА ДАННЫХ, МОДУЛЯРНАЯ АРИФМЕТИКА
Научно-исследовательская
работа
по
теме
«Разработка
программного
комплекса шифрования данных, на основе использования точек эллиптической
кривой» выполняется в рамках федеральной целевой программы развития
образования на 2011-2015 годы по Государственному контракту от 7 сентября 2011
года №07.Р20.11.0029.
Объектом исследования являются криптографические системы защиты
данных на эллиптической кривой.
Цель работы — повышение эффективности выполнения криптографических
преобразований с использованием точек эллиптической кривой.
В процессе работы проводились компьютерное моделирование разработанных
алгоритмов
В результате исследования впервые были предложено для выполнения
модульных операций над простым полем использовать двух модульную систему
остаточных классов.
Эффективность
разработанных
модульных
алгоритмов
определяется
использованием двух модульной системы остаточных классов. Разработанные
алгоритмы
и
метод
могут
применяться
для
конструирования
систем
криптографической защиты данных построенных на точках эллиптической кривой.
Настоящий отчет является заключительным. Работа в рамках проекта
завершена в соответствии с календарным планом Государственного контракта от 7
сентября 2011 года №07.Р20.11.0029.
3
Содержание
Список исполнителей……………………………………………………………...
Реферат………………………………………………………………………………
Содержание………………………………………………………………………….
Введение……………………………………………………………………………..
1 Анализ математических моделей симметричных и ассиметричных
криптосистем, построенных на точках эллиптической кривой……………..
2 Анализ алгоритмов периодического обновления секрета, построенных
на точках эллиптической кривой………………………………………………..
3 Анализ методов пространственного разделения секрета…………………...
4 Анализ методов и алгоритмов умножения точки эллиптической кривой
на скаляр…………………………………………………………………………….
5 Разработка алгоритма кодирования алфавита точками эллиптической
кривой………………………………………………………………………………..
6 Разработка пороговой схемы разделения секрета на эллиптической
кривой над конечным кольцом…………………………………………………..
7 Разработка рекомендаций по использованию результатов проведенной
НИР…………………………………………………………………………………..
Заключение………………………………………………………………………….
Список использованных источников……………………………………………
4
2
3
4
5
6
23
38
49
60
77
85
86
87
Введение
Основанием
для
проведения
научно-исследовательской
работы
(НИР)
является Государственный контракт от 7 сентября 2011 года № 07.Р20.11.0029.
Начало работ: 10 октября 2011 г., окончание работ: 28 ноября 2011 г.
Для решения поставленных задач в рамках проводимой НИР был создан
комплекс шифрования данных, на основе использования точек эллиптических
кривых.
На этапе НИР была проведена разработка комплекса шифрования данных, на
основе использования точек эллиптических кривых.
В ходе реализации проекта были решены следующие основные задачи.
1. Разработка алгоритмов операций сложения и умножения над простым с
использованием двух модульной системы остаточных классов.
2. Разработки генератора псевдослучайных чисел на точках эллиптической
кривой.
3. Разработка схемы разделения пространственного секрета на точках
эллиптической кривой.
Отчет по НИР состоит из: реферата, введения, шести разделов, заключения и
списка литературы.
5
1
Анализ
математических
моделей
симметричных
и
ассиметричных
криптосистем, построенных на точках эллиптической кривой
Криптографические методы и средства защиты информации составляют
основу
обеспечения
информационной
безопасности
в
информационно-
коммуникационных системах. При этом в основании криптографических методов
лежит понятие криптографического преобразования информации, производимого по
определенным математическим законам с целью обеспечения целостности,
подлинности и конфиденциальности защищаемых данных.
Криптосистемы, прежде всего, делятся на три типа [1-2]:
1. Бесключевые криптосистемы, которые не используют никаких ключей в
процессе криптографических преобразований;
2. Одноключевые криптосистемы, использующие в своих вычислениях некий
секретный ключ;
3. Двуключевые алгоритмы, в которых на различных этапах вычислений
применяются два вида ключей: секретный и открытый.
Современные симметричные (одноключевые) криптосистемы базируются на
математической
модели
классической
секретной
системы,
предложенной
К.Шенноном [3-5], для зашифровки текста в них используется несколько раундов.
Исследования [6] в этой области показали, что алгоритмы симметричного
шифрования можно разделить по виду алгоритмов повторяющихся преобразований.
Основными видами являются:
1. Алгоритмы на основе сети Фейстеля;
2. Алгоритмы на основе подстановочно-перестановочных сетей;
3. Алгоритмы со структурой «квадрат»;
4. Алгоритмы с нестандартной структурой.
Рассмотрим подробно алгоритм на основе сети Фейстеля. Этот алгоритм
подразумевает разбиение обрабатываемого блока данных на несколько субблоков,
один из которых обрабатывается некой функцией
6
f ()
и накладывается на один или
несколько остальных субблоков. На рисунке 1.1 приведена наиболее часто
встречаемая структура алгоритма на основе сети Фейстеля.
Рисунок 1.1 – Сеть Фейстеля
Дополнительный аргумент функции
f () ,
обозначенный на рисунке 1.1. как
Ki ,
называется ключом раунда. Ключ раунда является результатом преобразования,
задача которого – получение ключей
Ki
из исходного ключа шифрования
относительно небольшого размера - 128 бит. В настоящее время для симметричных
систем считается достаточным размер секретного ключа 128 бит. В простейшем
случае процедура расширения ключа есть просто разбиение ключа на несколько
фрагментов, которые поочередно используются в раундах шифрования. Гораздо
чаще процедура расширения ключа является достаточно сложной, а ключи
Ki
зависят от значений большинства битов исходного ключа шифрования.
Наложение обработочного субблока на необрабатываемый чаще всего
выполняется с помощью логических операции «исключение или», как показано на
рисунке 1.1. Достаточно часто в модуле заменяют операцию
модулю
2n ,
где
n
XOR
на сложение по
- размер субблока в битах. После наложения субблоки меняются
местами, т.е. в следующем раунде алгоритма обрабатываются уже другой субблок
данных. Такая структура шифрования получила свое название по имени Хоста
Фейстеля – одного из разработчиков алгоритма Lucifer и разработанного на его
основе алгоритма DES стандарта шифрования США. Оба этих алгоритма имеют
7
структуру, показанную на рисунке 1.1. Среди других алгоритмов, основанных на
сети Фейстеля, можно выделить отечественный стандарт шифрования ГОСТ 2814789 [7], а также другие известные алгоритмы: RC5, Blowfish, TEA.
На
сети
Фейстеля
основано
большинство
современных
алгоритмов
шифрования – благодаря множеству преимуществ подобной структуры, среди
которых стоит отметить следующие:
1. При шифровании и расшифровывании может использоваться один и тот же
алгоритм – разница между этими операциями может состоять лишь в порядке
применения ключей
Ki :
такое свойство алгоритма наиболее полезно при его
аппаратной реализации или на платформах с ограниченным ресурсом, в качестве
примера можно привести алгоритм ГОСТ 28147-89.
2. Алгоритмы на основе сети Фейстеля являются наиболее изученными –
таким
алгоритмам
посвящено
огромное
количество
криптоаналитических
исследований, что является несомненным преимуществом как при разработке
алгоритма, так и при его анализе.
Существует и более сложная обобщенная или расширенная структура сети
Фейстеля, пример которой приведен на рисунке 1.2. Такая структура применяется
гораздо реже, чем обычная сеть Фейстеля. Примером использования расширенной
сети Фейстеля является алгоритм RC6.
Рисунок 1.2 – Расширенная сеть Фейстеля
8
Следующим
перестановочной
видом
сети.
являются
В
алгоритмы
отличие
от
на
сетей
основе
подстановочно-
Фейстеля,
подстановочно-
перестоновочные сети ( SP -сети) обрабатываются за один раунд целиком. Обработка
данных сводится, в основном, к заменам (например, когда фрагмент входного
значения заменяется другим фрагментом в соответствии с таблицей замен, которая
может зависеть от значения
Ki )
и перестановкам, зависящим от ключа
Ki
(рисунок
1.3). Необходимо отметить, что такие операции характерны и для других видов
алгоритмов шифрования.
Рисунок 1.3 SP -сеть
использования
SP -сеть
является менее распространенной, чем сеть Фейстеля. Примером
SP -сети
могут стать алгоритмы Serpent или SAFER
Рассмотрим алгоритмы со структурой «квадрат».
Для структуры «квадрат» характерно представление шифруемого блока
данных в виде двумерного массива. Криптографические преобразования могут
выполняться им над отдельными байтами массива, а также над его строками или
столбцами. Эта структура получила свое название от алгоритма Square, который был
разработан в 1996 г. Винсентом Риджменом и Джоан Деймен. Эти исследователи
впоследствии создали алгоритм Rijndael, ставший в США новым стандартом
шифрования AES. Алгоритм Rijndael также имеет Square-подобную структуру,
также можно отметить и алгоритм SHARK, который был разработан Ридженом и
Деймен, и алгоритм Crypton. Недостатком алгоритмов со структурой квадрат
является недостаточная изученность.
9
Существует
еще один тип алгоритмов, которые нельзя строго отнести к
какой-то структуре. Такие
алгоритмы принято относить к алгоритмам с
нестандартной структурой. Пример такого алгоритма может служить алгоритм
CASE-256, так как его можно отнести и к
SP -сетям,
и к расширенным сетям
Фейстеля. Другой алгоритм – HPC – его авторы определяют как сеть Фейстеля, но
эксперты относят его к алгоритмам с нестандартной структурой [8].
Эффективными системами криптографической защиты передаваемых данных
являются асимметричные двуключевые криптосистемы или криптосистемы с
открытым ключом. Впервые понятие криптосистем с открытым ключом было
введено в 1976 году У.Диффи и М.Хеллманом [9]. В своей статье «Новые
направления в криптографии» они предложили новый принцип построения
криптосистем
и
сформулировали
ряд
требований,
выполнение
которых
обеспечивает безопасность систем такого типа. Характерной особенностью
асимметричного
шифрования является наличие двух ключей, связанных между
собой. Один ключ (открытый) - K 
используется для шифрования данных и
является общедоступным для всех пользователей сети. Расшифровать данные с
помощью этого ключа невозможно. Для расшифровывания данных получатель
информации использует второй ключ - K , который является секретным. Если ключ
расшифровывания K нельзя получить из ключа зашифровывания K  с помощью
вычислений, то секретность информации, зашифрованной на открытом ключе,
считается обеспеченной.
Обобщенная схема асимметричной криптосистемы представлена на рисунке
1.4.
В асимметричной криптосистеме открытый ключ K  и криптограмма C
передаются по незащищенным каналам связи, алгоритмы шифрования - EK : M  C
и дешифрования - DK : C  M являются общеизвестными. Таким образом, защита
передаваемой информации обеспечивается только секретностью ключа K .
10
Рисунок. 1.4 – Схема асимметричной (двуключевой) криптосистемы
Существует ряд требований, предъявляемых к системам с открытым ключом,
выполнение которых обеспечивает безопасность асимметричного шифрования [1011]:
1. Вычисление пары ключей K , K  получателем на основе начального условия
должно быть простым;
2. Преобразование открытого текста должно быть необратимым на основе
только открытого ключа. При этом отправитель, зная открытый ключ K  и
сообщение M , может легко вычислить криптограмму C , где C  EK M  .
В свою очередь получатель, используя секретный ключ K и криптограмму C ,
может восстановить исходное сообщение M , где
M  DK C   DK EK  M  ;
3. Определение секретного ключа K на основе открытого ключа K  должно
быть невозможным на современном технологическом уровне. При этом желательна
точная нижняя оценка трудоёмкости (количества операций) раскрытия шифра;
4. Определение исходного сообщения M на основе открытого ключа K  и
криптограммы C должно быть невозможным на современном технологическом
уровне.
11
Основным понятием криптографии с открытым ключом являются понятия
однонаправленной функции и однонаправленной функции с «потайным ходом».
Известно следующее определение однонаправленной функции [5, 12].
Пусть X и Y - некоторые произвольные множества.
Однонаправленной или односторонней называется такая функция f : X  Y ,
которая обладает следующими свойствами:
1. Для любого x  X существует полиномиальный алгоритм вычисления
y  f x  , где y  Y ;
2. Не существует полиномиального алгоритма инвертирования функции f ,
т.е. для любого y  Y не существует полиномиального алгоритма решения уравнения
f x   y относительно x .
Под сложностью алгоритма инвертирования понимается число совершаемых
операций для поиска аргумента x по заданному значению функции y  f x . Под
полиномиальным алгоритмом понимается количество операций, выраженное
некоторым полиномом.
Следует отметить, что типичных односторонних функций не существует, они
конструируются в каждом конкретном случае. Исследования односторонних
функций [4, 13-14] в основном проводились по трем направлениям:
1. Умножение простых чисел;
2. Дискретное умножение точки эллиптической кривой на скаляр или
дискретное возведение в степень;
3. Задача
NP
- полноты, в частности задача об укладке ранца.
Очевидно, что однонаправленные функции не могут непосредственно
использоваться в качестве криптосистем (когда открытый текст M шифруется как
f M  ), поскольку тогда даже законный пользователь не сможет раскрыть открытый
текст M . По этой причине в криптографии более употребимым является понятие
однонаправленной функции с «потайным ходом» или с секретом [15-17].
Под однонаправленной функцией с секретом Q
понимается функция
f Q : X  Y , зависящая от параметра Q , и обладающая тремя свойствами [5, 18-19]:
12
1. При любом Q существует полиномиальный алгоритм вычисления y  f Q  x  ,
где x  X , y  Y .
2. При
неизвестном
не
Q
существует
полиномиального
алгоритма
инвертирования f Q .
3. При известном Q существует полиномиальный алгоритм инвертирования
fQ .
Секрет Q иначе можно назвать «потайным ходом» или «ловушкой».
Использование односторонних функций с «потайным ходом» или «ловушкой»
в криптографии позволяет [5]:
1. Организовать обмен шифрованными сообщениями с использованием только
открытых каналов связи, т.е. отказаться от секретных каналов связи для
предварительного обмена ключами.
2. Включить в задачу вскрытия шифра трудную задачу и тем самым повысить
обоснованность стойкости шифра.
3. Решать новые криптографические задачи, отличные от шифрования.
Для
анализа
ассиметричных
криптосистем,
построенных
на
точках
эллиптической кривой, введем понятие эллиптической кривой [20-21].
Определение 1.1 Пусть
p3
- простое число. Пусть
4 A2  27 B3  0 .
Эллиптической кривой
решений
уравнения
( x, y )
E
над полем
Fp
A, B  Fp
такие, что
называется множество
y 2  x 3  Ax  B
над полем
Fp
(1.1)
с дополнительной точкой
O
- точка в бесконечности.
Представление эллиптической кривой в виде уравнения (1.1) носит название
эллиптической кривой в форме Вейерштрассе.
Обозначим количество точек на эллиптической кривой
Зададим бинарную операцию на
E
правилами:
1.
OO 
13
E
через
#E .
(в аддитивной записи) следующими
2.
( x, y)  E , ( x, y)  O  ( x, y)
3.
( x, y)  E , ( x, y)  ( x, y)  O
4.
( x1, y1 )  E , ( x2 , y2 )  E , x1  x2 , ( x1 , y1 )  ( x2 , y2 )  ( x3 , y3 ) ,
где
x3  2  x1  x2
y3  ( x1  x3 )  y1

5.
и
y2  y1
x2  x1
( x1 , y1 )  E , y1  0 , ( x1 , y1 )  ( x1 , y1 )  ( x3 , y3 ) ,
где
x3  2  2x1
y3  ( x1  x3 )  y1

и
3 x12  A
2 y1
Множество точек эллиптической кривой
E
с заданной таким образом
операцией образуют абелевую группу.
В качестве примера однонаправленной функции с «потайным ходом»
рассмотрим умножение точки эллиптической кривой на скаляр (с фиксированной
точкой эллиптической кривой) [22]. Пусть
кривая и точка
кривой
E ( Fp ) .
есть функция
G  E ( Fp )
- целое число,
k
E ( Fp )
- эллиптическая
- образующая аддитивной группы точек эллиптической
Тогда умножение точки
g G (k ) : E ( Fp )  E ( Fp ) ,
G
эллиптической кривой
E ( Fp )
на скаляр
определяемая следующим образом:
P  g G (k )  kG .
(1.2)
Существуют эффективные алгоритмы нахождения значений функции
Операция, обратная
g G (k ) ,
k
есть вычисление
при известных точках
k
g G k  .
P, G E ( Fp ) .
Рассмотрим построение криптосистемы на криптографически не стойких
эллиптических кривых, криптостойкость которых будет базироваться на разложении
числа
n  pq
на простые множители, где
p, q
- различные простые числа с равным
количеством знаков в их двоичном представлении. Рассматривать будем при
p  5(mod 6)
эллиптическую кривую вида
14
E ( Fp ) : y 2  x 3  B ,
а при
p  3 (mod 4)
-
эллиптическую кривую вида
E ( Fp ) : y 2  x3  Ax .
Использование этих кривых для
построения криптосистемы позволяет построить криптосистему, аналогичную
криптосистеме RSA, описанной в работах [4, 13, 23], но на эллиптической кривой
(рисунок 1.5 и рисунок 1.6).
Рисунок 1.5 – Блок-схема алгоритма создания открытого и секретного ключа в
криптосистеме RSA на эллиптической кривой [22]
15
Рисунок 1.6 – Блок-схема алгоритма шифрования в криптосистеме RSA на
эллиптической кривой
Используя выше перечисленную последовательность действий, мы находим
e, n, A, B - открытый и
d - секретный ключ криптосистемы RSA на эллиптической
кривой. Рассмотрим алгоритм шифрования и дешифрования криптосистемы RSA на
эллиптической кривой, который представлен на рисунке 1.7.
Рисунок 1.7 – Блок-схема алгоритма дешифрования в криптосистеме RSA на
эллиптической кривой
16
Корректная работа алгоритмов шифрования и дешифрования криптосистемы
RSA на эллиптической кривой базируется на следующей лемме, которая позволяет
разрешить трудность, связанную с тем, что множество точек эллиптической кривой,
заданной над кольцом вычетов, не является группой [24].
Лемма 1.1:
t  1mod  p  1q  1 .
p  q  5(mod 6)
или
Пусть
и
p
Тогда
q
два
для всех
tP  P
E ( Z n ) : y 2  x 3  Ax
-
при
различных
P  E (Z n ) ,
простых
где
числа,
E ( Z n ) : y 2  x3  B ,
и
при
p  q  3(mod 4) .
Доказательство.
Найдем в начале порядок эллиптических кривых
Рассмотрим 1 случай, когда
вид
E (Z n ) : y 2  x3  B .
p  5 (mod 6) ,
отображение
вычетов
равно
 x3  B 

0
 p 
iF p 


вид
и
# E ( Fp )  p  1 
то отображение
x  x3  B
E ( Fq ) .
тогда эллиптическая кривая имеет
 x3  B 

,
 p 
iF p 


x  x3
где
# E ( Fp )  p  1 ,
а
квадратичных
Fp
E ( Z n ) : y 2  x 3  Ax .
эллиптической
Порядок
# E ( Fp )  p  1 
 
i 1 
следовательно,
количество квадратичных
то,
следовательно,
тогда эллиптическая кривая имеет
 x3  Ax 
  p  .
iF p 

кривой
Так как
символа Лежандра получаем следующее соотношение
p 1
2  i3
Fp ,
E ( Fq )  q  1 .
p  q  3 (mod 4) ,
Формулу для нахождения
— символ Лежандра. Так
невычетов,
Рассмотрим 2 случай, когда
вычисляется по формуле
a
 
 p
является биекцией поля
— тоже биекция, а так как в
количеству
 02  A  0 

# E ( Fp )  p  1  


p


и
Порядок эллиптической кривой над простым полем
вычисляется по формуле
как
p  q  5 (mod 6) ,
E ( Fp )
# E ( Fp )
над
простым
p  3 (mod 4) ,
полем
то из свойств
3
 x 3  Ax 



   ( p  x)  A( p  x)  .




p 
p



можно представить в следующем виде
 Ai   ( p  i ) 3  A( p  i ) 

,
p  
p

17
а,
так
как
3
 x 3  Ax 



   ( p  x)  A( p  x)  ,




p 
p



 i 3  Ai   ( p  i )3  A( p  i ) 


0
 p  

p

 

и, значит,
t  1mod  p  1q  1
Для любого
P  E (Z n ) .
то для всех
# E ( Fp )  p  1
можно представить как две точки
# E ( Fq )  q  1 .
справедливо равенство
p
получим
E ( Fp )  p  1 ,
и
q.
tP  P
Pq ( xq , xq )  E ( Fq ) ,
Умножая точку Pp на число
( p  1)(q  1) Pp  O ,
и
(1  k ( p  1)(q  1)) Pp  Pp  k ( p  1)(q  1) Pp  Pp  O  Pp .
результат для точки
Числа
E (Z n )
так
как
где
в системе
P ( x, y )  E ( Z n )
x p  x mod( p) ,
1  k ( p  1)(q  1) ,
где
порядок
кривой
примет
вид
равенство
Аналогичным образом получается
Pq : (1  k ( p  1)(q  1)) Pq  Pq  k ( p  1)(q  1) Pq  Pq  O  Pq .
Значит, при умножении точки
P.
и
(1  k ( p  1)(q  1))Pp  Pp  k ( p  1)(q  1) Pp ,
то
для всех точек
Получим, что любую точку
Pp ( x p , y p )  E ( Fp )
y p  y (mod p) , xq  x (mod q) , yq  q (mod q) .
точку
и
выполняется равенство
Рассмотрим представления точек эллиптической кривой
остаточных классов по основаниям
k Z ,
p  1

i  1,..,
2 

t  1  k ( p  1)(q  1)
P
на число
1  k ( p  1)(q  1) ,
равносильны тому, что
где
k Z ,
получаем
t  1(mod( p  1)(q  1)) .
Следовательно, лемма доказана.
Криптосистема RSA, построенная на эллиптической кривой, позволяет
нейтрализовать один из наиболее известных недостатков криптосистемы RSA,
построенной над числовыми полями. Этот недостаток [25] - адаптивная атака с
выбором зашифрованных сообщений. Это следует из того, что для любых открытых
различных сообщений M 1 и M 2 и для соответствующих им закодированных точек
и
P2
P1
выполняется
IntToPoint ( M1  M 2)  P1  P2 .
(1.3)
Рассмотрим построение другой криптосистемы на эллиптической кривой,
базирующейся на вычисление квадратного корня по составному модулю, такую, как
криптосистема Рабина [26]. При этом перед нами встает проблема вычисления
квадратного корня по составному модулю,
базирующаяся, в свою очередь, на
проблеме разложения на множители целого числа.
18
В приведенной выше криптосистеме RSA на эллиптической кривой
существует еще одна проблема вычисления
обратный элемент к данному в кольце
множители числа
n.
,
Zn ,
которая требует умения находить
не зная разложения на простые
Для решения этой проблемы в работе [27] предлагается
использовать проективные координаты, не требующие операции деления в кольце
Zn .
Эллиптическая
кривая
в
проективных
координатах
имеет
вид
E Z n  : y 2 z  x 3  axz2  bz 3
И операции сложения и удвоения точек задаются следующим образом:
Пусть
P1  x1 , y1 , z1   E Z n  , P2  x2 , x3 , y3  , P1 , P2  O , P1   P2 .
P3  P1  P2  x3 , y3 , z3 
Тогда сложение точек
формулой из работы [27]:
 

 
 x3  v z 2 u 2 z1  2v 2 x1  v 3 mod n,

2
3
3
3
 y3  z 2 3uv x1  v y1  u z1  uv mod n,

3
 z3  v z1 z 2 mod n,
где
u   y2 z1  y1 z 2  mod n
и

(1.4)
v  x2 z1  x1 z 2  mod n ,
Удвоение формулой из [27] для E Z n 
P3  2  P1


задается:


 x3  2 y1 z1 w2  8 x1 y12 z1 mod n,

2
2
 y3  4 y1 z1 3wx1  2 y1 z1 mod n,

3 3
 z3  8 y1 z1 mod n,
где

(1.5)

w  3 x12  Az12 mod n .
Использование проективных координат на эллиптической кривой позволяет
увеличить скорость вычисления умножения точки эллиптической кривой на скаляр
в шесть раз [28], так как не требуется выполнение операции инверсия в конечном
поле, однако остается еще одна дорогая операция - редукция по большому модулю.
Одной из наиболее известных криптосистем, построенных на сложности
вычисления
дискретного
криптосистема Эль-Гамаля.
логарифма
на
эллиптической
кривой,
является
В отличие от RSA, в алгоритме Эль-Гамаль
существуют некоторые открытые параметры, которые могут быть использованы
большим числом пользователей. Они называются параметрами домена и выглядят
следующим образом:
19
1.
числа
n
p
— большое простое число, т.е. число, насчитывающее около 256 битов, и
a, b  F p ,
такие, что
 
# E Fp  cn
- простое число, такое, что
2.
G
— число точек эллиптической кривой
2254  n  2256 ,
и 4a 3  27b 2  0 mod p .
— элемент аддитивной группы точек эллиптической кривой
что порядок
G
равен
n,
  , где
E Fp
и выполняются следующие условия:
  , такой,
E Fp
 ( p  1) 2 
c

n


условия с целью исключения криптографически слабых кривых
и MOV
p k  1 mod n ,
k  1, 2,3,..., B , B  20
Информация об этой группе открыта и используется большим числом
пользователей.
После выбора параметров домена определяются открытые и секретные ключи.
Секретным ключом априори может быть любое натуральное число
открытый ключ получается по следующей формуле:
1 x  n ,
а
H  xG
Сообщение в этой системе представляется точкой
M O.
Для его шифрования
поступают следующим образом:
1. Генерируют случайный эфемерный ключ
2. Вычисляют
C1  kG ,
3. Вычисляют
C2  M  kH
k
4. Выдают получившийся шифротекст в виде пары
Чтобы расшифровать пару данных
C  C1 , C2  ,
C  C1 , C2 
производятся следующие
преобразования:
C2  xC1  M  kH  xkG  M  kxG  xkG  M
Достоинства системы Эль-Гамаль:
1. Каждый пользователь системы должен выбрать случайное число
x
и
сделать не сложное вычисление, в отличие от системы RSA, которая требует, чтобы
каждый пользователь системы находил два больших простых числа, что является
сложной вычислительной задачей.
2. Каждый раз при шифровании используем свой кратковременный ключ.
Поэтому, шифруя одно сообщение дважды, мы получаем разные шифротексты.
20
На основании анализа наиболее часто используемых ассиметричных систем
шифрования мы можем классифицировать их по следующей схеме (рисунок 1.8).
Рисунок 1.8 – Классификация ассиметричных криптосистем на эллиптической
кривой
Для
определения
свойства
криптостойкости
предложим следующий алгоритм (рисунок 1.9).
21
эллиптической
кривой
Рисунок 1.9 – Блок-схема алгоритма, определяющего криптостойкость
эллиптической кривой
22
2 Анализ алгоритмов периодического обновления секрета, построенных
на точках эллиптической кривой
Одним из базовых элементов систем активной безопасности являются методы
периодического
обновления
секретной
информации. Основу этих
методов
составляет управление ключевой системой, которое включает в себя описание всех
видов ключей (долговременные, сеансовые и т.д.), а так же алгоритмы их
использования [29]. В общем случае под управлением ключами будем понимать
набор методов и средств, поддерживающих распределение и обработку ключевого
материала между автоматизированными сторонами. Управление ключевой системой
состоит из следующих процедур [30]:
1. Инициализация ключевой структуры для пользователей в домене.
2. Создание, распределение и инсталляция ключевого материала.
3. Контроль над использованием ключевого материала.
4. Обновление, восстановление, уничтожение ключевого материала.
5. Хранение ключевого материала.
Рассмотрим основные задачи управления ключевым материалом [31].
Одной из самых сложных задач при использовании криптографических
алгоритмов является генерация ключей. В этом случае главная проблема
заключается в поддержании определенных криптографических свойств создаваемых
ключей. Основным принципом генерации ключей является равновероятность
выбора по всему ключевому пространству [19].
Для симметричных криптоалгоритмов выделяются два основных класса
методов генерации ключей: детерминированный и недетерминированный.
В основе детерминированных методов лежит формирование из случайной
последовательности малой длины псевдослучайной последовательности большей
длины, которая не отличалась бы по своим статистическим свойствам от
первоначальной [32].
Рассмотрим
некоторые
методы
генерирования
последовательностей
псевдослучайных чисел (ПСЧ). Для генерации секретных ключей шифрования
23
используют генераторы псевдослучайных чисел. Для построения генераторов
псевдослучайных
чисел
с
повышенной
криптографической
стойкостью
используются генераторы, построенные на точках эллиптической кривой над
Hallgren в 1994 году в работе [33]
Fp .
предложил датчик псевдослучайной
последовательности, который называется арифметической прогрессией на
начальным членом
и разностью
P0  E
GE
E
с
и задается следующим рекуррентным
соотношением:
Pn  Pn 1  G  nG  P0 , n  1, 2, 3,..., ,
(2.1)
Выходными значениями датчика (2.1) могут быть либо точки
их абсциссы
xn ,
либо только их ординаты
Следует
отметить
также
Pn ,
либо только
yn .
статистическую
безопасность
генератора
псевдослучайных чисел, построенного на базе арифметической прогрессии на
эллиптической кривой. Она обладает хорошими статистическими свойствами, что
показано в работе [33]: равномерностью распределения элементов арифметической
прогрессии для большого
равномерности
t,
также указан порядок величины отклонения от
 p log 2 p 
.
O


t


Для случая, при котором известна разность
Pn 1
в
работе [34] Gutierrez J. и Ibeas A. предложен эффективный алгоритм нахождения
P0
для
генераторов,
эллиптической
построенных
кривой,
на
базе
следовательно,
он
G
и старшие биты
арифметической
не
обладает
Pn
и
прогрессий
на
криптографической
безопасностью. Значит, секретным ключом в генераторе псевдослучайных чисел
(1.7) должны являться
P0
и
G.
В этом случае не известны эффективные алгоритмы
предсказания бит, и генератор 1 является криптографически безопасным.
В
работе
псевдослучайных
[35-36]
в
более
общем
последовательностей
типа
эллиптической кривой.
24
виде
рассмотрены
арифметическая
генераторы
прогрессия
на
Определение 2.1 Пусть задана эллиптическая кривая
последовательность P0 , P1, P2 ,... точек на
E ( Fp ) ,
E ( Fp ) ,
тогда
удовлетворяющих рекуррентному
соотношению:
n 1
Pn  k   ci Pi  k  Q , k  0,1, 2,...
(2.2)
i 0
называют
EC -последовательностью
порядка
n,
а
n 1
f ( x)  x n   ci x i
–
i 0
характеристическим многочленом над Z r , где
r # E ( Fp ) .
Рассмотрим более подробно EC -последовательности порядка 2 , где r  p ,
c1  p  a , c2  p  b и p – простое число. Тогда формула (1.8) примет вид:
Pk  2  ( p  a) Pk 1  ( p  b) Pk  Q ,
(2.3)
а характеристический многочлен последовательности (2.3): f ( x)  x 2  ax  b над
Fp .
Найдем такие коэффициенты a и b , при которых последовательность (2.3)
имела бы максимальный период.
О последовательности, заданной формулой (2.3), известно, что период EC последовательности (2.3) есть делитель периода ее характеристического многочлена
[36]. В работе [37] показано, что наибольший период имеет примитивный многочлен
над полем Fp .
Найдем примитивные многочлены второй степени, для чего воспользуемся
следующей теоремой.
Теорема 1.1 [37] .Нормированный многочлен
f ( x)  Fp [ x]
степени m  1
является примитивным многочленом над полем Fp в том и только в том случае,
если (1)m f (0) – примитивный элемент поля Fp , и наименьшим натуральным числом
t , для которого степень xt переменной x сравнима по модулю f (x) с некоторым
элементом поля Fp , является t 
pm  1
.
p 1
Если f (x) – примитивный многочлен над Fp , то имеет место сравнение
x t   1 f 0 (mod f ( x)) .
m
25
Это утверждение также верно, если deg f x  2 и f (x) неприводим в Fp [x] .
Докажем это в следующей лемме.
Лемма 1.2 [38] Если многочлен f ( x)  x 2  ax  b неприводим в Fp [x] , то
x p 1  b  f (0)(mod f ( x))
(2.4).
Доказательство.
2
a
a2
Так как многочлен f ( x)  x  ax  b представляется в виде  x     b , то
2
4

2
2
a
a2
p 1

x


 b (mod f ( x)) . Возведем обе части сравнения в степень
, получим


2
2
4

a

x  
2

p 1
 a2

   b 
 4

p 1
2
a2
 1(mod f ( x)) , так как
 b – квадратичный невычет в Fp* .
4
a
2
Умножая левую и правую часть сравнения на x  , получим:
p
a
a


 x     x   (mod f ( x)) .
2
2


Так как Fp – поле характеристики
(2.5)
p , то
выполняется соотношение
a
a

a
p
p
 x    x     x  (mod f ( x)) .
2
2

2
(2.6)
a  b p  a p  b p , следовательно:
p
p
Из сравнений (2.5) и (2.6), следует, что
x p   x  a (mod f ( x)) ,
значит,
x p 1   x2  ax  b  f (0) (mod f ( x)) .
Лемма доказана.
Следствие. Нормированный неприводимый многочлен f ( x)  x2  ax  b  Fp [ x] ,
где a  0 и p – простое число Мерсенна, является примитивным многочленом над
полем Fp в том и только в том случае, если b – образующий элемент в Fp* .
Доказательство.
Если f (x) – примитивный многочлен в Fp [x] , то он является нормированным
неприводимым многочленом, а b – образующий элемент в Fp* , согласно теореме 1.1.
26
Для доказательства обратного утверждения покажем, что ord ( x)  m  ord ( x m ) ,
где m - наименьший делитель p  1 , такой, что 2  m  p  1 и xm  Fp .
Так как x 2  ax  b , то x 2  Fp , следовательно, 2  m  p  1 .
Пусть p 1  mq  r , где 0  r  m , тогда x p1  x mqr  x m  x r , так как x p1  Fp ,
q
x m  Fp , то x r  Fp .
Если 0  r  m , то приходим к противоречию с тем, что m – наименьшая
натуральная степень, для которой x m  Fp . Следовательно, r  0 , значит, m –
делитель ( p  1) .
Тогда ( xm )ord( x )  1или ( x)m ord(( ax bxc) )  1
m
2
m
Если k  m  ord ( x m ) , то из рассмотренного нами выше следует, что x k  1 .
Таким образом, ord ( x)  m  ord ( x m ) , где 2  m  p  1 – наименьший делитель p  1 ,
для которого x m  Fp . Так как x p1  b , а b – первообразный корень в Fp* и p  1  2t , то
x 2  Fp для всех 0  i  t , иначе b являлся бы квадратичным вычетом в Fp , чего не
i
может быть. Следовательно, m  p  1 и ord ( x)  ( p  1)  ord ( x p1 )  ( p  1)  ord (b)  p 2  1, а,
значит, многочлен f ( x)  x 2  ax  b , где a  0 , является примитивным в Fp [x] .
Следствие доказано.
Заметим, что для нахождения примитивных многочленов необходимо уметь
находить нормированные неприводимые многочлены второй степени в Fp [x] .
Предложим метод нахождения последних (рисунок 2.1).
27
Ввод данных
Поиск квадратичного невычета
Нахождения всех неприводимых
многочленов второй степени над Fp
Вывод данных
Рисунок 2.1 – Схема метода нахождения нормированных неприводимых
многочленов
Докажем корректность метода.
Из того, что  i – квадратичный невычет в Fp , следует, что многочлен
x 2   i неприводим над Fp [39].
В работе [39] доказано, что из неприводимости x 2   i многочлена над Fp
следует неприводимость f s,i ( x)  ( x  s)2  i многочлена над Fp , где p – простое
число.
Докажем, что f s,i ( x)  ( x  s)2  i многочлены попарно различны. Для чего
покажем, что, если у многочленов f s,i ( x)  ( x  s)2  i и f d , j ( x)  ( x  d )2   j s  d или
i  j , то многочлены f s ,i ( x)  f d , j ( x) . Рассмотрим два случая.
Случай 1. Если s  d . Так как (2, p)  1 , то и 2s  2d , значит, f s ,i ( x)  f d , j ( x) для
любого i и j .
Случай 2. Если i  j , то из доказанного выше нам нужно рассмотреть только
такой
случай,
когда
sd.
Так
как
s 2  i  s 2   j  d 2   j , значит, f s ,i ( x)  f d , j ( x) .
28
i  j,
то
i   j ,
следовательно,
и
Таким образом, многочлены f s ,i ( x) неприводимы над Fp и попарно различны,
их количество равно
p
p 1
2
и совпадает с количеством нормированных
неприводимых многочленов второй степени [37], следовательно, они описывают все
нормированные неприводимые многочлены второй степени.
Корректность метода доказана.
Предложим метод нахождения коэффициентов последовательности (2.2),
такой, чтобы она имела максимальный период, где p – простое число Мерсенна
(рисунок 2.2).
Ввод данных
Находим все неприводимые многочлены
второй степени над Fp
Находим образующий элемент в Fp
Вводим все подходящие элементы
Рисунок 2.2 – Схема метода нахождения a и b
В
построенных
коэффициенты
ci
EC -последовательностях
происходит
смена
точек
а
являются константами.
Рассмотрим другую схему, когда меняются коэффициенты, а точки остаются
фиксированы.
Рассмотрим другую схему предложенную в работе [40], когда меняются
n 1
коэффициенты, а точки остаются фиксированными. Pn   an,i Pi для вычисления
i 0
коэффициентов будем использовать поля Галуа, построенные по неприводимому
n
n 1
 n1

многочлену f (x) степени n , где   bi x i  mod( f ( x))   an,i x i .
i 0
 i 0

29
Докажем
ряд
утверждений
для
исследования
на
длину
периода
последовательности псевдослучайных чисел построенной с помощью квадратичных
Fp2  {ax  b | a, b  Fp , x 2  x    0} ,
полей Галуа, то есть
где
f x   x 2  x  
-
неприводимый многочлен над Fp и двучлена rx  d являющегося образующим
элементам в Fp* .
2
Утверждение 2.1 [41] rx  d  p1 mod f x   r 2b  d 2  rda , где f x   x 2  ax  b неприводимый многочлен над Fp .
Доказательство
rx  d p1 mod f x   rx  d p rx  d  mod f x 
Так как поле Fp характеристики p , то r p  r , d p  d следовательно
rx  d p rx  d  mod f x   rx p  d rx  d  mod f x  
r 2 x p1  rdx p  rdx  d 2 mod f x
Из утверждения 1 следует, что x p1  b , а x p  x  a , то
r x
2
p1





 rdx p  rdx  d 2 mod f x   r 2 x p1  rd x p  x  d 2 mod f x   r 2b  d 2  rda
Утверждение доказано.
Из утверждения 2.1 следует критерий выбора двучлена rx  d для построения
последовательности.
Критерий 2.1 [41] Двучлен rx  d будет образующим элементом в Fp* , только
2
если r 2 d  d 2  rda - образующий элемент в Fp* .
Доказано утверждение, которое позволяет выработать критерий, которому
должно
удовлетворять
последовательность
точек
эллиптической
кривой,
полученная с помощью квадратичных полей Галуа, которая могла бы иметь
максимальный период, равный p 2  1 . При условии, что p большое простое число,
p2 1
-
большое
число.
Следовательно,
при
большом
p,
построенная
последовательность будем иметь большой период.
Ростовцев и Маховенко
в своей работе [42] предложили на базе
супервырожденных эллиптических кривых и генератора BBS последовательности
построить генератор псевдослучайных чисел. Уравнение кривой
30
y 2  x 3  Ax (mod n) ,
где
и
n pq
p  q  3(mod 4) ,
вычисляет координаты точек
или
y 2  x 3  B (mod n) ,
где
p  q  5 (mod 6) .
и использует в качестве элементов
P, 2 P, 2 2 P,...
псевдослучайных последовательностей один или несколько младших
Числа
P 1
2
и
q 1
2
x -координат.
должны быть простыми, а элемент 2 – образующим элементом
для обеих групп F p*1 и
F q*! .
2
бит является
Генератор
(n, x, y) ,
Таким образом, ключом для предсказания последующих
2
а для предшествующих битов –
( p, q, x , y) .
Криптостойкость данных генераторов базируется на сложности разложения
составного числа
n.
Так как, если разложение числа
вычислить показатели
найдем
T p  T (mod p)
p  1

k p  21  mod

2 

и
Tq  T (mod q) ,
и
q  1

k p  2 1  mod
.
2 

вычисляем
k pT p
и
n
известно, то можно
Для известной точки
k qTq
T
и восстанавливаем
предыдущее значение по китайской теореме об остатках.
Предложенный генератор обладает хорошими статистическими свойствами.
В основе недетерминированных методов лежит использование случайных
физических процессов, исходы которых могут служить для дальнейшего
изготовления ключей. В настоящее время широко применяются физические
генераторы шума, выходные последовательности которых являются случайно
распределенными (например, шумящие диоды, импульсные генераторы, счетчики
Гейгера и т.д.).
Мы рассмотрели основные методы генерации ключевой информации для
симметричных и асимметричных криптоалгоритмов шифрования. Отметим тот
факт, что некоторые типы алгоритмов имеют так называемые слабые ключи,
использование которых значительно уменьшает криптографическую стойкость
зашифровывания на данных ключах. Проверка слабых ключей может производиться
как экспериментальным способом, так и посредством анализа используемого
алгоритма шифрования.
Необходимо отметить, что если ключ не меняется регулярно, это может
привести к его раскрытию и утечки информации. Регулярную замену ключа можно
осуществить, используя процедуру модификации ключа, которая заключается в
31
генерации нового ключа из предыдущего значения с помощью односторонней
(однонаправленной) функции [43]. При этом новый ключ безопасен в той же мере, в
какой был безопасен старый ключ.
Мы
рассмотрели
информацией,
а
первую
именно
-
из
основных
генерацию
задач
ключевого
управления
материала.
ключевой
Следующей
первоочередной задачей при создании надежной криптографической защиты
информации является обеспечение надежного хранения ключей. Любая информация
об используемых ключах должна быть защищена, в частности храниться в
зашифрованном
виде.
Необходимость
в
хранении
и
передаче
ключей,
зашифрованных с помощью других ключей, приводит к концепции многоуровневой
ключевой системы, в основе которой лежит понятие иерархии ключей.
Рассмотрим трехуровневую иерархическую систему ключей. Основу этой
иерархии
составляет
принцип
разделения
ключей
в
зависимости
от
их
практического использования. В соответствие с этим принципом все ключи делятся
на три группы [25, 43]:
1. Главные ключи или мастер-ключи (ГК).
2. Ключи шифрования ключей или ключи обмена между узлами сети (КК).
3. Ключи шифрования данных или рабочие (сеансовые) ключи (КД).
Главные ключи находятся на самом высоком уровне иерархии, их
безопасность обеспечивается только надежным хранением на ключевых носителях.
Обычно эти ключи используются для зашифровывания ключей, находящихся на
следующем уровне иерархии, который образуют ключи шифрования ключей (КК).
Ключи шифрования ключей, в свою очередь, представляют собой секретные
ключи, которые служат для зашифровывания других ключей, на которых
производится непосредственно шифрование данных, т.е. рабочих или сеансовых
ключей. Для обеспечения максимальной безопасности ключи шифрования ключей
не должны использоваться как сеансовые ключи и наоборот.
Используя на практике иерархическую структуру ключевой информации,
можно оптимальным образом организовать хранение и применение ключей. При
этом очень важным условием безопасности информации является периодическое
32
обновление ключевого материала, в основе которого лежит понятие криптопериода
ключа.
Вопрос обновления ключевой информации тесно связан с распределением
ключей. Для обеспечения надежного функционирования систем криптографической
защиты необходимо наличие надежной и устойчивой системы распределения
ключевой информации.
Существуют две основных модели построения схем распределения ключей
между пользователями компьютерной сети [44]:
1. Схемы типа «точка-точка».
2. Централизованные схемы.
Схемы типа «точка-точка» обеспечивают прямой обмен сеансовыми ключами
между пользователями
сети.
Основной
недостаток
этих
схем
состоит в
необходимости подтверждения подлинности субъектов сети.
Централизованные схемы предполагают наличие одного или нескольких
центров распределения ключей. Схемы данного типа в свою очередь делятся на
схемы с использованием КДС и КТС. Централизованные схемы с использованием
КДС применяются для распределения сеансовых ключей между двумя сторонами,
которые предварительно должны разделить знание своих секретных ключей с КДС.
Основное отличие централизованных схем с использованием КТС от предыдущих
заключается в том, что они обеспечивают перешифрование полученной ключевой
информации. Главный недостаток централизованных схем состоит в том, что центру
распределения ключей известно, кому и какие ключи распределены, и это позволяет
читать все сообщения, передаваемые по сетям.
Необходимо отметить, что в обеих моделях распределения ключевой
информации предполагается обеспечение подлинности сеанса связи. Это можно
осуществить, используя механизм запроса-ответа или механизм отметки времени
[43].
Распределение ключей между пользователями сети в любых моделях может
быть осуществлено либо в виде ключевого транспорта, либо в виде соглашения о
ключах [25].
33
Ключевой транспорт представляет собой способ распределения ключей,
позволяющий стороне, создавшей или получившей ключ, передать его другой
стороне безопасным способом.
Соглашение о ключах представляет собой способ распределения ключей,
позволяющий разделить значение секрета между двумя и более сторонами в виде
значения функции от требуемой к распределению информации, и при этом ни одна
из сторон не сможет предварительно вычислить результирующее значение.
Рассмотрим примеры ключевого транспорта и соглашений о ключах,
построенные на основе симметричных и асимметричных алгоритмов шифрования и
реализованные в рамках схем «точка-точка» и централизованных схем.
В качестве примера ключевого транспорта, основанного на симметричном
шифровании и действующего в рамках модели
«точка-точка», приведем схему
распределения ключей Шамира, которая позволяет распределить сеансовые ключи
без
предварительного
информации
[25].
распределения
Данный
пользователями
некоторой
транспорт,
реализуемый
ключевой
ключевой
в
виде
криптографического протокола, обеспечивает защиту от пассивного нарушителя, но
не обеспечивает аутентификацию передаваемых сообщений.
В
распределенных
вычислительных
системах
основным
средством
распределения ключей являются соглашения о ключах. Рассмотрим примеры
соглашений о ключах, основанные на симметричных и асимметричных алгоритмах
шифрования.
В качестве примера соглашения о ключах, основанного на симметричном
шифровании и действующего в рамках централизованной модели, рассмотрим
схему распределения ключей, предполагающую предварительное распределение
некоторого
ключевого
материала.
Такая
схема
распределения
ключей
характеризуется тем, что в процессе инициализации системы центр (доверенный
сервер или специальная служба) создает и распределяет секретные данные, которые
в дальнейшем могут быть использованы для генерации ключей каждой парой
абонентов. Приведем пример простой схемы, позволяющей реализовать данное
распределение.
34
Пусть в обмене информацией участвуют n пользователей Pi (i  1,..., n) . Центр
выбирает для каждой пары пользователей ( Pi , Pj ) отдельный секретный ключ K ij и
помещает эти ключи в специальную матрицу K размера n  n , диагональные
элементы которой K ii можно принять равными 0:
 0

 K 21
 ...
K 
 K i1
 ...

K
 n1
K12
...
K1 j
...
0
... K 2 j
...
...
...
...
...
Ki2
...
K ij
...
...
...
...
...
Kn2
...
K nj
...
K1n 

K 2n 
... 

K in 
... 
0 
(2.7)
Далее каждому i -му абоненту центр безопасным способом высылает группу
из (n  1) ключей, пронумерованных соответствующим способом и образующих i тую строку матрицы K без диагонального элемента. Таким образом i -тый абонент
получает набор ключей вида
K i  ( K i1 , K i 2 ,..., K i 1 , K i 1 ,..., K ij ,..., K in ) ,
(2.8)
в котором ключ K ij является ключом парной связи абонента Pi с абонентом
Pj (i  1,..., n, j  1,..., n) . Отметим, что такой способ распределения ключей обеспечивает
совершенную безопасность в теоретико-информационном смысле, но практическое
применение
данного
метода
связано
с
необходимостью
организационно-
технического обеспечения хранения и использования носителей информации, на
которых записаны данные ключи. Такими носителями могут выступать гибкие
магнитные диски, смарт-карты, touch memory и т.д.
Мы рассмотрели круг задач, связанных с генерацией, хранением и
распространением ключевой информации. Управление ключевой системой так же
включает в себя и механизмы контроля использования ключей, которые делятся на
три категории:
1. С использованием масок ключей и изменяющихся ключей;
2. На основе подтверждения подлинности ключей;
3. С использованием контрольных векторов.
35
Рассмотрим данные группы методов контроля за использованием ключевого
материала.
Маска ключа представляет собой битовый вектор или структуру, которая
добавляется к ключу и зашифровывается вместе с ним, появляясь в открытом виде
только в случае расшифровывания ключа. Помимо задач контроля, маска так же
решает проблему, связанную с криптоанализом ключа.
Механизм использования изменяющихся ключей подразумевает создание из
основного ключа производных с помощью добавления некоторой несекретной
информации или посредством необратимых функций.
Подтверждение подлинности ключей предусматривает использование таких
криптографических
методов
и
средств,
при
которых
ключи,
задающие
криптографические преобразования, находятся у третьей доверенной стороны или у
каждого из участников для обеспечения проверки ключей.
Использование контрольных векторов совмещает в себе два предыдущих
подхода. С каждым ключом S ассоциируется контрольный вектор C , который
представляет собой поля данных, введенных пользователем и использующиеся,
например, совместно с ключом шифрования ключей для закрытия S E K C S  .
Использование C (например, введенная пользователем случайная строка) приводит
к тому, что без знания данного вектора невозможно получить доступ к ключу S .
На основании всего выше сказанного можно сделать следующие выводы.
Практическое использование криптографических средств и методов защиты
информации в распределительных вычислительных системах порождает широкий
круг проблем, связанных с созданием, хранением, распределением, использованием,
уничтожением, депонированием и т.д. ключевой информации. Различные схемы
организации
защиты
криптографических
информационных
методов
и
средств
ресурсов
требуют
для
с
использованием
своего
надежного
функционирования различных схем организации ключевой структуры, создание
которых осуществляется в рамках управления ключевой системой. В свою очередь
управление
ключевой
системой
составляет
36
ядро
методов
периодического
обновления
секретной
информации,
лежащих
безопасности.
37
в
основе
систем
активной
3 Анализ методов пространственного разделения секрета
Методы пространственного разделения секретной информации вместе с
методами периодического обновления ключей составляют основу систем активной
безопасности. В качестве методов пространственного разделения секретной
информации можно выделить криптографические схемы разделения секрета или
схемы, разделяющие секрет.
Схемы разделения секрета (СРС) неформально можно определить как схемы,
позволяющие разделить секрет между n участниками обмена информацией таким
образом, чтобы выполнялись следующие условия:
1.Заранее
заданные
разрешенные
множества
участников
(коалиции),
образующие так называемую структуру доступа, могут однозначно восстановить
секрет.
2.Участники, образующие неразрешенные множества, не могут получить
никакой дополнительной к имеющейся априорной информации о возможном
значении секрета.
Второе условие является отличительной особенностью совершенных СРС.
Рассмотрим формальное описание схем разделения секрета для произвольных
структур доступа.
Пусть в обмене информацией участвуют n абонентов. Обозначим множество
всех абонентов через
A , где
A  1,2,..., n. Пусть
Г-
некоторое множество
подмножеств множества A , т.е. Г  Г  Г   A. Множество Г назовем структурой
доступа. В структуру доступа Г входят все разрешенные множества абонентов
схемы, т.е. множества, которые однозначно могут восстановить секрет после его
разделения. Очевидно, что, если Г   Г , то Г  является разрешенным множеством, в
противном случае
Г  образует неразрешенное множество. Все участники схемы
относительно структуры доступа
Г делятся на две группы: существенные и
несущественные.
Участника схемы x , где x  A , будем считать несущественным относительно
Г , если для любого неразрешенного множества Г  множество Г   x также является
38
неразрешенным. Из сказанного выше следует, что элемент
x A
является
существенным относительно структуры доступа Г , если существует множество
Г  такое, что ( x  Г )  Г , но Г   Г . Иными словами, для x существует содержащее
его множество Г   Г min , где Г min - совокупность минимальных (относительно
включения) множеств из Г .
Так как несущественные участники никакой роли при разделении и
восстановлении секрета не играют, то посылать им какую-либо информацию о
секрете представляется нецелесообразным. Поэтому далее будем рассматривать
только такие структуры доступа
Г,
для которых все элементы являются
существенными. Будем предполагать, что множество Г обладает монотонной
структурой, т.е. из того, что Г   Г  и Г   Г , следует, что Г   Г .
Теперь зададим множества
вероятностей
P
на
их
S 0 , S1 , S 2 ,..., S n
декартовом
и совместное распределение
произведении
S  S 0  S1  S 2 ...  S n .
Соответствующие случайные величины обозначим через S i (i  0,1,..., n) . Множество
S 0 - это множество всех возможных секретов. Значение секрета s0  S 0 выбирается с
вероятностью p(s0 ) и с помощью СРС распределяется в виде «проекций» s1 , s 2 ,..., sn
между всеми абонентами схемы с вероятностью Ps ( s1 , s 2 ,..., s n ) . При этом СРС
0
строится таким образом, что каждый i -тый участник получает свою долю секрета
si  S i ,
знает все множества
Si ,
оба распределения вероятностей
p( s 0 )
и
Ps0 ( s1 , s 2 ,..., s n ) , но не имеет никакой информации о проекциях секрета, полученных
другими абонентами. Данные распределения вероятностей p(s0 ) и Ps ( s1 , s 2 ,..., s n )
0
могут быть эквивалентно заменены на одно
P( s 0 , s1 , s 2 ,..., s n )  p( s 0 )  Ps0 ( s1 , s 2 ,..., s n ) .
(3.1)
Исходя из всего выше сказанного, дадим вероятностное определение
совершенной СРС [45]:
Определение 3.1 Пара ( P, S ) называется совершенной вероятностной СРС,
реализующей структуру доступа Г , если выполнены следующие условия:
1. P(S 0  s0 Si  si , i  Г )  0,1
для Г   Г .
39
2. P(S 0  s0 Si  si , i  Г )  P(S0  s0 )
для Г   Г .
Условие 1) отражает первое свойство СРС, а именно – участники из
разрешенного множества Г ( Г   Г ) вместе могут однозначно восстановить значение
секрета. Условие 2) – это условие совершенности, которое заключается в том, что
участники, образующие неразрешенное множество
Г ( Г   Г ) не могут получить
дополнительную информацию о секрете s0 , т.е. вероятность того, что значение
секрета S 0  s0 , не зависит от значений «проекций» S i  si при i  Г  .
Введем понятие энтропии дискретной случайной величины. Под энтропией
будем понимать меру степени неопределенности дискретной случайной величины.
Если S - дискретная величина, принимающая значения s 1 , s 2 ,... с распределением
вероятностей pk , k  1,2,... , где p k  P( S  s k ) , то энтропия определяется формулой

H ( S )   p k log p k .
k 1
Переформулируем условия 1) и 2) определения 3.1 на языке энтропии:
H (S i , i  Г   0)  H ( S i , i  Г )   Г ( Г ) H ( S 0 ) ,
(3.2)
где  Г ( Г )  0 , если Г   Г , и  Г ( Г )  1 в противном случае.
Данное выше вероятностное определение совершенной СРС может быть
переведено на комбинаторный язык.
Матрица вида
С  ( sij ) r , n 1
элементы
которой
 s10

s
  20
...

s
 r0
s11
s12
s21
s22
...
...
sr 1
sr 2
... s1n 

... s2 n 
,
... ... 

... srn 
sij  S j (i  1,..., r , j  0,1,..., n) ,
(3.3)
называется
матрицей
комбинаторной СРС, а её строки – «правилами» распределения секрета.
Матрицу C будем называть кодом комбинаторной СРС, а ее строки - словами.
При выборе правила распределения секрета для заданного значения s0 случайно и
равновероятно выбирается строка c  (si 0 si1si 2 ...sin ) из тех строк матрицы C , для
которых значение нулевой координаты равно s0 , т.е. si 0  s0 и i  1,2,...r .
40
В простейшей комбинаторной модели требуется: во-первых, чтобы для
любого множества Г   Г нулевая координата любого кодового слова из С
однозначно определялась значениями его координат из множества Г , и, во-вторых,
чтобы для любого множества Г   Г и любых заданных значений координат из
множества Г  число кодовых слов с данным значением нулевой координаты не
зависело бы от этого значения.
Исходя из выше сказанного, дадим следующее определение совершенной
комбинаторной СРС:
Определение 3.2 Матрица С задает совершенную комбинаторную СРС,
реализующую структуру доступа Г , если выполняются следующие условия:
1.Для любого множества Г   Г нулевая координата любой строки матрицы
C однозначно определяется значениями её координат из множества Г  .
2.Для любого множества Г   Г
и любых заданных значений координат из
множества Г  число строк матрицы С с данным значением s0 нулевой
координаты не зависит от s0 .
Очевидно, что эта модель является частным случаем вероятностной модели,
когда все ненулевые значения P одинаковы. А именно, код вероятностной СРС
( P, S ) - это C  c  S : P(c)  0, «правила» распределения секрета выбираются из него
независимо и равновероятно, а условия 1) и 2) определения 1.4 переформулированы
на мощностном языке.
Сформулируем более общее определение совершенной комбинаторной СРС
[45].
Обозначим через C Г  код, полученный из С удалением координат, номера
которых не принадлежат множеству Г  , где Г   0,1,..., n . Другими словами, матрица
C Г  получается из матрицы C
удалением тех столбцов, номера которых не
принадлежат множеству Г  . Пусть C обозначает число различных слов в коде С .
Для произвольной комбинаторной СРС, задаваемой кодом С , определим на
множествах Г   0,1,..., n функцию hq ( Г )  log q C Г  , где q  S 0 .
41
Определение 3.3 Будем говорить, что код
комбинаторную СРС, если C Г 0  C Г   С0
 Г ( Г )
C
задает совершенную
, или, эквивалентно, если
hq (C Г 0 )  hq (C Г  )   Г ( Г )  hq (C 0 ) ,
(3.4)
где  Г (Г ) определяется так же, как и в (3.2).
Определение 3.3. отличается от определений 3.1 и 3.2 тем, что на
неразрешенные множества Г  накладывается довольно слабое условие, а именно,
если множество слов C с данными значениями координат из множества Г  не пусто,
то все возможные значения секрета встречаются в нулевой координате этих слов.
Очевидно, что код любой совершенной вероятностной СРС задает совершенную
комбинаторную СРС в смысле определения 3.1, но обратное неверно.
Среди совершенных СРС особый интерес вызывают так называемые
идеальные схемы разделения секрета, которые характеризуются тем, что в них
«размер» секрета (определяемый по-своему для комбинаторной и вероятностной
постановок задачи) не меньше «размера» информации, предоставляемой участнику.
Перейдем к определению идеальных СРС. Показано, что в любой
совершенной вероятностной СРС для всех i справедливо неравенство
H (S i )  H (S 0 ) .
(3.5)
Из неравенства (3.5) и из определения идеальных СРС следует, что
совершенная вероятностная схема называется идеальной, если H (S i )  H (S 0 ) для всех
i  1,.., n .
Для совершенной комбинаторной СРС справедливо неравенство Si  S 0 для
всех i  1,..., n . А это означает, что совершенная комбинаторная СРС называется
идеальной, если для всех (i  1,..., n) выполняется равенство Si  S 0 .
На сегодняшний день структуры доступа Г , для которых существуют
реализующие их идеальные (вероятностные или комбинаторные) СРС, описываются
с помощью теории матроидов.
Под матроидом будем понимать конечное множество
X
и семейство
I  I1 , I 2 ,... подмножеств множества X , называемых независимыми множествами,
для которых выполняются следующие аксиомы [45]:
42
1.Пустое множество независимо, т.е.   I .
2.Каждое подмножество независимого множества независимо, т.е. если Г   I
и Г   Г  , то Г   I .
3.Если Г , Г   I и Г   Г   1, то существует элемент a  Г  \ Г  такой, что
(a  Г )  I .
Матроид можно определить через так называемую ранговую функцию r (Г )
матроида, определяемую как максимальная мощность независимого подмножества
Г   Г  .
Очевидно, что только независимые множества задаются условием
r ( Г )  Г  . Ранговая функция матроида обладает следующими свойствами:
1. r ( Г )  Z , r (  )  0 .
(3.6)
2. r ( Г )  r ( Г   b)  r ( Г )  1 .
(3.7)
3. Если r ( Г   b)  r ( Г   c)  r ( Г ) ,то r ( Г   b  c)  r ( Г ) .
(3.8)
Обратно, если некоторая функция r (Г ) обладает свойствами (2.4) – (2.6), то
независимые множества, определяемые как r ( Г )  Г  , задают матроид, а функция
r является ранговой функцией.
Матроид также можно задать конечным множеством элементов
X
и
семейством Q  Q1 , Q2 .......непустых подмножеств Qi  X , называемых циклами и
удовлетворяющих следующим аксиомам:
1.Никакое собственное подмножество цикла не является циклом.
2.Если a  (Qi  Q j ) , то (Qi  Q j ) \ a содержит цикл.
Матроид называется связным, если для любых его двух точек существует
содержащий их цикл.
Сформулируем теорему, описывающую связь идеальных комбинаторных СРС
и матроидов:
Теорема 3.1. Для любой комбинаторной идеальной СРС, реализующей
структуру
log
S0
доступа
Г,
независимые
множества,
C Г   Г  , задают связный матроид на множестве
определяемые
0,1,..., n. Все циклы этого
матроида, содержащие точку 0 , имеют вид 0  Г  , где Г   Г min .
43
условием
Из второй части утверждения теоремы 3.1 следует, что разным идеальным
СРС, реализующим данную структуру доступа Г , всегда соответствует один и тот
же матроид, т.е., так как матроид однозначно определяется всеми циклами,
проходящими через фиксированную точку, то он однозначно определяется
структурой доступа Г .
Отметим тот факт, что теорема, аналогичная теореме 3.1, была доказана и для
вероятностно идеальных СРС.
Рассмотрим суть этого подхода.
Для
того,
чтобы
доказать
связь
обобщенных
(комбинаторных
и
вероятностных) идеальных СРС с матроидами, необходимо показать, что функции
H ( Г )  H (S i , i  Г ) / H (S 0 ) и hq ( Г )  hq (C Г  ) , где q  S 0 , обладают свойствами (3.1) –
(2.6), т.е. задают матроид. Все эти свойства, кроме свойства целочисленности
функций, легко проверяются. Единообразное доказательство целочисленности
функций H и h затрудняется тем, что они не обладают одинаковыми свойствами.
Это
выражено
в
том,
что
функция
H () является
субмодулярной,
т.е.
H ( Г   Г )  H ( Г   Г )  H ( Г )  H ( Г ) , а функция h () не всегда такова.
Введем в рассмотрение класс функций, удовлетворяющий более слабым
аксиомам, но который включает в себя и функции типа H () , и функции типа h () .
Рассмотрим вещественную функцию f (Г ) , определенную на подмножествах
множества 0,1,..., n f и удовлетворяющую условиям:
1. f (  )  0 .
(3.9)
2. f ( Г )  f ( Г ) , если Г   Г  .
(3.10)
3. f ( Г   Г )  f ( Г )  f ( Г ) .
(3.11)
Свойства (3.9) и (3.11) могут быть эквивалентно заменены на одно
max  f ( Г ), f ( Г )  f ( Г   Г )  f ( Г )  f ( Г ) .
Очевидно,
что
все
эти
свойства
свойствами
(3.9)
–
(3.11),
назовем
выполняются и для H () , и для h () .
Функцию
f,
удовлетворяющую
совершенной, если для любого множества Г  справедливо равенство
f ( Г   0)  f ( Г )   f ( Г ) f (0) ,
44
где  f ( Г )  0,1 .
Будем говорить, что функция f совершенно реализует структуру доступа Г ,
если
f ( Г   0)  f ( Г )   Г ( Г ) f (0) ,
(3.12)
где функция  Г (Г ) . Очевидно, что такая реализация возможна тогда и только
тогда, когда функция f является совершенной. При этом совершенно реализуемая
структура доступа является единственной для данной функции и определяется как
Г f  Г  f ( Г   0)  f ( Г ).
(3.13)
В силу свойств (3.12) и (3.13) для любой точки p и любого множества Г 
справедливо соотношение f ( Г )  f ( p  Г )  f ( Г )  f ( p) .
Точка p называется f -неотделимой от множества Г  , если f ( p  Г )  f ( Г ) , и
точка
p
называется
сильно
f -отделимой
от
множества
Г ,
если
f ( p  Г )  f ( Г )  f ( p) .
Так как всюду ниже функция f фиксирована, то будем просто говорить об
отделимости и неотделимости точки p .
Совершенность функции f означает, что для любого множества Г  точка 0
либо неотделима от него, либо сильно отделима. Далее будем рассматривать только
совершенные функции f .
Сформулируем
несколько
общих
утверждений,
лежащих
в
основе
доказательства связи матроидов и обобщенных идеальных СРС.
Лемма 3.1 Если точка 0 сильно отделима от множества Г  , но неотделима
от множества Г   p , то f ( Г   p)  f ( Г )  f (0) и f ( p)  f (0) .
Так как мы предполагаем, что все точки i  1,..., n существенные, то из леммы
1.3 вытекает
Следствие Для i  1,..., n справедливы неравенства:
H ( S i )  H ( S 0 ) - для любой совершенной вероятностной СРС,
S i  S 0 - для любой совершенной комбинаторной СРС.
45
В соответствии с леммой 3.1 назовем совершенную реализацию структуры
доступа Г идеальной, если f ( p)  f (0) для всех p  1,..., n. Пронормировав функцию
f , мы всюду ниже будем без ограничения общности считать, что f ( p )  1 для всех
p  0,1,..., n.
В предположении идеальности функции f лемму 3.1 можно обобщить:
Лемма 3.2. Если точка a сильно отделима от множества Г  , но точка a
неотделима от множества Г   b , то точка b сильно отделима от множества
Г  и точка b неотделима от множества Г   a .
Наложим еще некоторые дополнительные условия на функцию f :
1. Если точка p неотделима от множества Г  и Г   Г  , то точка p
(3.14)
неотделима от множества Г  .
2. Если точка p сильно отделима от множества Г  и Г   Г  , то точка p
(3.15)
сильно отделима от множества Г  .
Функцию f , определенную на множестве всех подмножеств множества
0,1,..., n, для которой выполнены свойства (3.8) - (3.15), назовем обобщенной
идеальной СРС, реализующей структуру доступа Г .
Сформулируем несколько основных свойств отношения отделимости для
обобщенных
идеальных
СРС,
которые
используются
при
доказательстве
целочисленности функции f .
Лемма 3.3 Если для любого b  Г  точка b сильно отделима от множества
Г   Г  \ b , то f ( Г   Г )  f ( Г )  Г  для любого Г   Г  .
Лемма 3.4 Если точка
a неотделима от множества Г   b и точка b
неотделима от множества Г  , то точка a неотделима от множества Г   Г  .
Лемма 3.5 Если точка 0 сильно отделима от множества Г  , но точка 0
неотделима от множества Г   Г  , то существует точка a  Г  , неотделимая от
множества 0  Г   Г  \ a .
Если в лемме 3.5 положить Г   , то получим
Следствие Если точка 0 неотделима от множества
точка a  Г  , которая неотделима от множества 0  Г  \ a .
46
Г  , то существует
На основании выше приведенных лемм можно доказать теорему [45]:
Теорема 3.2 Любая обобщенная идеальная СРС является целочисленной
функцией.
Из теоремы 3.2 вытекает основной результат, доказывающий связь
обобщенных идеальных СРС с матроидами:
Теорема 3.3 Для любой обобщенной идеальной СРС
f , реализующей
структуру доступа Г , независимые множества Г  , определяемые условием
f ( Г )  Г  , задают связный матроид на множестве
0,1,..., n. Все циклы этого
матроида, содержащие точку 0 , имеют вид 0  Г  , где Г   Г min .
На основании всего выше сказанного можно сделать следующие выводы.
Обобщенные идеальные СРС по существу не отличаются от матроидов, и
условия (3.8) - (3.15) вместе с условием, что для любого p  1,..., n найдется
множество Г   1,..., n такое, что
f ( Г   p  0)  f ( Г   p)  f ( Г   0)  f ( Г )  0 ,
дают еще одно определение связного матроида.
Из теоремы 3.3 следует, что между комбинаторно и вероятностно идеальными
СРС разницы нет, т.е. если существует комбинаторно идеальная СРС, реализующая
Г , то существует и вероятностно идеальная СРС, реализующая ту же Г . Поэтому
имеет смысл говорить просто об идеальных СРС.
При этом необходимо отметить и тот факт, что не любой матроид может быть
реализован как идеальная СРС. С другой стороны, любой линейный матроид (над
полем) реализуется как идеальная СРС. Следовательно, идеальных СРС больше, чем
линейных матроидов, но меньше, чем всех матроидов.
Уточнить, каким образом идеальные СРС «лежат» между общими и
линейными матроидами, на сегодняшний день представляется чрезвычайно сложной
задачей.
Из
всех
схем разделения
секретной
информации
на
практике
для
криптографической защиты секретных ключей чаще всего используются пороговые
криптосистемы или схемы разделения секрета с пороговой структурой доступа.
47
Поэтому
для
более
полного
исследования
математической
базы
методов
пространственного разделения секретной информации необходимо рассмотреть те
математические преобразования, которые лежат в основе пороговых СРС.
48
4 Анализ методов и алгоритмов умножения точки эллиптической кривой
на скаляр
В последние годы интенсивно развивается и имеет важные приложения в
различных областях науки и техники прикладная теория чисел. Например, в
настоящее время, практически весь мировой парк средств асимметричной
криптографии (алгоритмы Диффи-Хеллмана и RSA) в математическом плане
основан на теоретико-числовых задачах, которые приводят к большим объемам
вычислений над многоразрядными числами [46].
Для повышения качества решения задач такого рода особую актуальность
имеет повышение эффективности следующих теоретико-числовых методов и
алгоритмов:
1.
Алгоритмов проверки простоты целых чисел специального вида.
2.
Алгоритмов проверки простоты целых чисел произвольного вида.
3.
Методов факторизации, то есть методов поиска разложения целых чисел
на множители.
4.
Вычислений, использующих эллиптические кривые над конечными
полями.
При реализации этих алгоритмов требуется работа с большими числами, в
большинстве современных компьютеров при обработке многоразрядных чисел
используется арифметика многократной точности. Суть этого способа состоит в
том, что целое число, заполняющее например 10 машинных слов в памяти
компьютера, размер слова которого w  1010 , имеет 100 десятичных разрядов.
Однако, согласно арифметике многократной точности, это число рассматривается
как 10 разрядное по основанию 1010 . То есть арифметика многократной точности
представляет собой арифметику приведения по модулю [46].
Один из интересных способов кодирования информации и выполнения
действий с многоразрядными числами основан на некоторых простых фактах теории
чисел. Идея этого метода состоит в том, чтобы иметь несколько модулей p1 , p2 , …,
49
pn , которые попарно взаимно просты, и оперировать не непосредственно с числами
A , а с его “остатками” A mod p1 , A mod p2 , ..., Amod pn .
Преимущество модулярного кодирования данных состоит в том, что
сложение, вычитание и умножение можно выполнять за один цикл синхронизации.
Для решения поставленной задачи следует разработать математический
аппарат для алгоритма редукции числа по модулю 2n  1.
Утверждение 4.1 2 k mod 2 n  1   1k divn 2 k mod n .
Доказательство
Для доказательства нам достаточно показать, что 2 k   1k divn 2 k mod n делится на
2n  1.
Для
2 k   1
k div n
этого
2 k   1
представим

2 k mod n  2 k mod n 2 k k mod n   1
k div n
,
k div n
где
k  k mod n  rn
в
2 k mod n
и
k div n  r
виде
и
r  0.
Рассмотрим 2 случая.
1 Случай.

Если
2k mod n 2k k mod n   1
k div n



 2
k mod n
2
r mod 2  0 ,
2tn


то
и
r  2t


 1  2k mod n 22 n  1 22 n t 1  22 nt 2   ...  1 

 2k mod n 2n  1 2n  1 22 nt 1  22 nt 2   ...  1
следовательно 2k mod n 2k k mod n   1k divn  делится 2n  1.
2. Случай.

Если
r mod 2  1,

2 k mod n 2 k k mod n   1
то


 2k mod n 2n  1 2nr 1  2nr 2   2nr 2   2nr 3  ...  1 ,
k div n
 2

делится 2n  1.
Утверждение доказано.
Пример 4.1 Вычислить 11101101012 mod 25  1
Решение


 1  29  1  28  1  27  0  26  1  25  1  24  0  23  1  22  0  21  1  20 mod 25  1
Используя утверждение + получим
1  2  1  2  1  2  0  2  1  2  1  2  0  2  1  2  0  2  1  2 mod 2  1 
 1  2  1  2  1  2  0  2  1  2   1  2  0  2  1  2  0  2  1  2 mod 2  1 
9
8
4
7
3
6
2
5
1
4
0
3
4
2
3
  111012  101012  mod 25  1
50
1
2
0
1
2
rn

1 
2 k mod n 2 k  k mod n   1
следовательно
11101101012 mod 25  1 
k mod n
5
0
5
k div n

11101101012 mod 25  1   111012  101012  mod 25  1  1002  101012  mod 25  1 
 110012 mod 25  1  110012
Как видно из примера 2, что операция редукция по модулю 2n  1 при
применение утверждения 2 сводится к операции сложения и вычитания.
Замечание. Если число a  2 2 n , то для вычисления операции редукция 2n  1
требует не больше двух сложений и одного вычитания.
Предложим алгоритм сравнения чисел в представленных в двух модульной
системе остаточных классов по модулям
и
2n
2n  1 .
Алгоритм 4.1 Нахождения представления числа a  ma 2n  1  a2 ( CompMan, a )
Вход: n, a  a1, a2 
Выход: ma
1.
For
1.1.
mai : a1,i  a2,i
2.
i : n
3.
While mai  0 And i  0 do
4.
If
4.1.
For
i : 0
to
mai  1
j : i
do
n
dec(i) ;
then
n 1
to
do
ma j : ma j  1
4.1.1.
n 1
5.
For
5.1.
mai1 : mai1  mai shr 1
5.2.
mai : mai and 1
6.
Writeln( ma )
i : 0
to
do
Алгоритм 4.1 основан на следующем утверждении.
Утверждение 4.1 Пусть заданно число
классов по модулям


a  ma 2n  1  a2 ,
2 , 2
n
где
ma
n
a  a1 , a2 
в системе остаточных
 , то тогда справедливо равенство
: a  a  2 mod 2
1
n
1
n
2
Доказательство
a  a
a  a
1
2
1
2


 2 mod 2  2
    
 1  a mod 2  a  a

 2n mod 2n  2n  1  a2 mod 2n  1  a1  a2  2n  0  a2  a2
n
n
n
n
2
1
2
51

 2n  mod 2n  a2 mod 2n  a1
Утверждение доказано.
Алгоритм 4.2 Сравнение чисел в СОК ( Moren, a, b )
Вход: n , a  a1 , a2  ,
Выход: если
ab
b  b1 , b2 
то 1. Если
7.
ma : CompMan, a 
8.
mb : CompMan, b
9.
If
9.1.
Writeln(-1)
9.2.
Goto 15
10.
If
ma i  mbi
ab
то 0. Если
ab
то -1.
then
ma i  mbi
then
10.1. Writeln(1)
10.2. Goto 15
11.
If i  0 And mai  mbi  then
11.1.
i : n
11.2. While
11.3. If
a2,i  b2,i  And i  0 do
a2,i  b2,i
then
11.3.1.
Writeln(-1)
11.3.2.
Goto 15
11.4. If
a2,i  b2,i
then
11.4.1.
Writeln(1)
11.4.2.
Goto 15
11.5. If
a2,i  b2,i
11.5.1.
12.
dec i 
then
Writeln(0)
End
Алгоритм 4.3 Сложение чисел
a
и
b
по модулю простого числа
( Add n, a, b, p)
Вход: n ,
Выход:
a  a1 , a2  , b  b1 , b2  , p   p1 , p2 
a  b mod p
52
p
в СОК
1.
d  p b
2.
Flag:= Moren, a, d 
3.
If Flag  1 then
3.1.
Writeln( a  b )
Else
3.2.
Writeln( a  b  p )
4.
End.
Алгоритм 4.4 Нахождения представления числа a  na 2n  a1 ( CompNan, a )
Вход: n, a  a1, a2 
Выход: na
13.
For
i : 0
to
n
do
13.1. nai : a1,i  a2,i
14.
i : n
15.
While nai  0 And i  0 do
16.
If nai  1 then
16.1. For
j : i
to
n 1
dec(i) ;
do
na j : na j  1
16.1.1.
16.2. na0 : na0  1
17.
For
i : 0
to
n 1
do
17.1. nai1 : nai1  nai shr 1
17.2. nai : nai and 1
18.
Writeln( na )
Алгоритм 1.5 Умножение двух чисел
Вход: n ,
Выход:
a
и
b
по модулю
d  2 n , a  a1 , a2  , b  b1 , b2  , p   p1 , p2 
a  b mod p
1.
r1 : a1  b1
2.
na : CompNan, a
3.
nb : CompNan, b
53
p
( Mult n, d , a, b, p )
4.
temp1 : na  b1
5.
temp 2 : nb  a1
6.
r2 : Add n, temp1, temp2 , p
7.
mr2 : CompNan, r2 
8.
r2 : Add n, mr2  d , r2,1 2n , p
9.
r3 : na  nb
10.
r3 : na  nb
11.
mr3 : CompNan, r3 
12.
r4 : mr3  d
13.
mr4 :: CompNan, r4 
14.
r5 : Add n, mr4  d , Add n, r4,1  2n , r3,1d , p , p
15.
Writeln( Add n, r5 , Add n, r2 , a1  b1 , p , p  )




 
Утверждение 4.2 Алгоритм умножения чисел в СОК по модулю простого
числа работает корректно.
Доказательство
Для доказательства утверждения нам необходимо показать, что при
выполнении всех операций нет переполнения.
a  na 2n  a1 , где na  2 n , a1  2n
b : nb 2 n  b1 , где nb  2 n , b1  2 n
a  b mod p : na nb 22 n  nab1  nb a1 2n  a1b1  na nb d  nab1  nb a1 2n  a1b1
Каждая из выполнимых в отдельности операций не превосходит
M  22 n  2n ,
следовательно утверждение доказано.
Алгоритм, использующий двоичное представление скаляра, это наиболее
простой метод, который может использоваться для умножения точки эллиптической
кривой на скаляр. Представим
где
l  log 2 k  .
k
в двоичной системе исчисления
k  kl 1,..., k1, k0 2 ,
Тогда будет справедлив алгоритм.
Оценка сложности алгоритма представленного на рисунке 4.1. Поскольку на
каждой интеграции алгоритма производиться удвоение 2 P  , то общее количество
54
операций удвоения точки составит l . Сложение точек происходит, только если на
позициях двоичного представления
двоичном представлении
k
составит
k
стоят единицы. В среднем число единиц в
l
.
2
Тогда количество операций, выполняемых
алгоритмом составит:
l
A  lD ,
2
где
A
— сложность сложения двух точек,
(4.1)
D
— сложность удвоения. Из этого
алгоритма можно выделить три стратегии ускорения:
Рисунок 4.1 – Блок-схема двоичного алгоритма вычисления
kP
Можно ускорить представление, например, использовать представление по
другому основанию.
Можно уменьшить количества учениц двоичного представления
k
. Это
уменьшит количество сложений в предложенном алгоритме
Можно снизить сложность удвоения за счет использования более легких
операций, воспользовавшись сбалансированным двоичным представлением скаляра.
55
Среднее количество сложений может быть уменьшенным. Ранее отмечалось,
что вычисление точки, обратной к данной, вычислительно просто. Этим фактом
можно воспользоваться. Перейдем от просто двоичного представления
сбалансированному двоичному представлению
k
l 1
 ki  2i , где
i 0
чтобы
получить
такое
представление,
можно
ki   1, 0, 1 .
последовательно
k
к
Для того
заменять
встречающиеся в двоичном представлении последовательности подряд идущие
единицы 11 на 10 . Например,
29  0,1,1,1,0,12  1,0,0,1,0,1
Блок-схема
алгоритма
вычисление
двоичного
сбалансированного
представления представлена на рисунке 4.2.
Рисунок 4.2 – Блок-схема алгоритма вычисление двоичного
сбалансированного представления
56
Сбалансированное двоичное представление имеет следующее свойства:
1. Произведение двух подряд идущих символов последовательности будет
нулевым.
2. Длина последовательности составляет
l  log 2 k   1 .
3. Среднее количество единиц в векторе равно
l
.
3
4. В худшем случае количество единиц составляет
l
.
2
Двоичное сбалансированное представление может быть подсчитано с
помощью следующего алгоритма.
Приведем алгоритм на рисунке 4.3, использующий сбалансированное
представление скаляра для вычисления умножения точки на скаляр.
Рисунок 4.3 – Блок-схема алгоритма, использующего сбалансированное
представление для вычисления
57
kP .
Поскольку
в
среднем
количество
сбалансированной последовательности равно
ненулевых
l
,
3
символов
в
двоичной
то количество операций равно
l
A  lD
3
(4.2)
Рассмотрим метод окон, схема которого приведена на рисунке 4.4:
Ввод данных
Вычисление окон
Вычисления скалярного умножения с использованием
предвычисленных окон
Вывод результата
Рисунок 4.4 – Схема метода окон
Последовательность
возможные комбинации
22222  P .
Представим
длины
ki P ,
22222
где
w
(окна),
log 2 ki   w .
предварительно
вычислим
все
Например, пусть требуется вычислить
как
22222  1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 02  0, 0, 5, 0, 0, 0, 0,6,0, 0, 0,12, 0, 0, 0,14 ,
тогда
22222  P  212 5P   28 6 P   2 4 12 P   14 P
Это представление имеет следующие свойства:
1. Длина последовательности составляет
l  log 2 k  .
2. В среднем количество ненулевых элементов последовательности составляет
l
.
w
Необходимое количество предвычислений составляет
2
w
 

 1 D  2w  1 A .
Сложность вычислений в среднем составляет
58
l
A  lD ,
w
(4.3)
так как метод окна обладает свойством (2).
В таблице 4.1 представлена сравнительная оценка временных показателей
умножения точки эллиптической кривой на скаляр [47] при использовании
различных систем счисления. (Время указано в миллисекундах)
Из таблицы 4.1 следует, что самым быстрым является метод окон, но у него
есть один недостаток: необходимость больших предвычислений. Метод NAF
немного уступает методу окон в скорости выполнения операций, но не требует
предвычислений, поэтому в случае, когда у вычислительного устройства ограничена
память, целесообразно использовать метод NAF. Сравнивая в таблице 4.1 столбец
где приведено время работы методов и алгоритмов работающих в позиционной
системе исчисления со столбцом в СОК, замечаем, что при выполнении операций в
СОК можно получать существенное преимущество в скорости вычисления в
среднем на 58%.
Таблица 4.1 – Сравнительная оценка временных показателей умножения точки
эллиптической кривой на скаляр при использовании различных систем счисления
№
Название
Позиционная система исчисления
СОК
1
Двоичный
11.794
7.076
2
NAF
10.028
6
3
Метод окон
9.956
5.8
59
5 Разработка алгоритма кодирования алфавита точками эллиптической
кривой
Большинство
эллиптических
криптосистем
используют
представление
информации в виде точек на эллиптической кривой, однако, этот переход от
алфавита к точкам эллиптической кривой нужно еще осуществить.
Алгоритмы
кодирования
алфавитов
делятся
на
вероятностные
и
детерминированные.
Проанализируем вероятностный алгоритм кодирования алфавита точками
эллиптической кривой (1.1), предложенный в 1985 году Н. Коблиц [48], блок-схема
которого приведена на рисунке 5.1.
Функция sqrtmod (a) вычисляет корень квадратный из числа
a
по модулю
p.
Рисунок 5.1 – Блок-схема вероятностного алгоритма кодирования алфавита
точками эллиптической кривой
60
Рассмотрим алгоритм декодирования (рисунок 5.2).
Рисунок 5.2 – Блок-схема вероятностного алгоритма декодирования символа
из точки эллиптической кривой
Преимущество данного алгоритма состоит в том, что для вычисления числа
необходимо держать в памяти только точку
Pi  x, y 
i
и число k .
Недостатки алгоритма:
1. Вероятность того, что
выборе
M
будет не закодировано равна
1
2k
, а при большом
вероятность не закодировать один из символов алфавита возрастает
многократно. Например, при
равна
i
1 

1  1  k 
 2 
M
 0.6 ,
M  106
и
k  20
вероятность не закодировать алфавит
то есть вероятность не закодировать алфавит больше, чем
вероятность его закодировать.
2. С помощью данного алгоритма можно закодировать алфавит, мощность
которого равна
 p
k ,
 
что приблизительно в
k
раз меньше, чем количество точек на
эллиптической кривой, согласно теореме Хассе.
Проведем анализ детерминированного алгоритма кодирования алфавитов
точками эллиптических кривых, предложенного в работе [49].
Для рассмотрения детерминированного алгоритма кодирования алфавита
точками эллиптической кривой введем понятие дуальных эллиптических кривых.
61
Определение 5.1: Две эллиптические кривые: Eab :
y 2  x 3  ax  b ,
a, b, a, b  Fp ,
заданные над конечным полем
Fp ,
где
p
и
E a b  :
— простое число,
p 3,
y 2  x 3  ax  b
называются дуальными, если имеет место следующие соотношение:
a  v 2 a,
,

b  v 3b.
где
v  Fp
(5.1)
— квадратичный невычет по модулю
p.
Для дуальных эллиптических кривых справедлива следующая теорема.
Теорема 5.1 [49]: Пусть
кривые над конечным полем
 
Eab Fp
F p , p  2, 3 .
 
и
 
Eab Fp
— две дуальные эллиптические
Тогда
 
# Eab Fp # Eab Fp  2 p  2
Перейдем теперь к алгоритму кодирования рисунок 5.3.
Рисунок 5.3 – Блок-схема алгоритма кодирования алфавита точками
эллиптической кривой
62
(5.2.)
Рассмотрим применения алгоритма 3 к кодированию алфавита точками
эллиптических кривых из работы [50], которые рекомендованы в США.
Пример 5.1. Эллиптическая кривая
p
Eab : y 2  x3  3x  b
задана над полем
Fp ,
где
m  0,...,7 .
— простое число. Закодировать числа
Рассмотрим эллиптическую кривую
P  192 :
b  1534472216 2555898860 8768369699 8407365480 6925363811 4425265
p  6277101735 3866807638 3578942320 7666416083 9087003903 24961279
Так как
p
— простое число вида
невычетом
в
p  4k  3 ,
то
p 1
является квадратичным
и,
Fp
значит,
v  p  1  6277101735 3866807638 3578942320 7666416083 9087003903 24961278 .
Вычислим
a
и
b :
a  6277101735 3866807638 3578942320 7666416083 9087003903 24961276
b  6123654513 7611217752 2702105350 7825679535 8394467522 10536014
i  0,...,14 
Найдем, для каких значений
квадратичным вычетом в
Fp ,
значение выражения
а для каких — невычетом в
x 3  3x  b
является
Fp .
Результат вычислений приведен в таблице 5.1, где знаком «+» обозначается
квадратичный вычет в
Fp ,
а знаком «–» обозначается квадратичный невычет в
Fp .
Таблица 5.1 – Таблица принадлежности точек для эллиптической кривой EP 192
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Eab i 
+
+
-
-
-
-
-
+
+
-
-
+
-
-
-
Ea b iv 
-
-
+
+
+
+
+
-
-
+
+
-
+
+
+
i
Мы получили, что в строке эллиптической кривой
равно 5, а в строке эллиптической кривой
E a b 
Eab
количество плюсов
— 10 плюсов. Таким образом,
кодирование будет осуществляться с помощью эллиптической кривой
63
E a b  .
Для кодирования числа «0» воспользуемся строкой с номером 2. Этой строке
соответствует
2v, sqrtmod((2v)
точка

 a  (2v)  b)  (6277101735 3866807638 3578942320 7666416083 9087003903 24961277,
3
1234490970 4434357094 9454832498 9275311001 3110430180 58292350).
Таким
образом,
«0»
будет
закодирован
(6277101735 3866807638 3578942320 7666416083 9087003903 24961277,
1234490970 4434357094 9454832498 9275311001 3110430180 58292350)
точкой
. Кратко будем записывать
так.
0  2  (6277101735 3866807638 3578942320 7666416083 9087003903 24961277,
1234490970 4434357094 9454832498 9275311001 3110430180 58292350)
1  3  (627710173 5386680763 8357894232 0766641608 3908700390 324961276,
5483221850 8459406110 5422377903 3952398269 5318479585 61436381)
2  4  (627710173 5386680763 8357894232 0766641608 3908700390 324961275,
3038872696 6587001182 1228949501 0340774244 9436272629 16602692)
3  5  (627710173 5386680763 8357894232 0766641608 3908700390 324961274,
2909458386 8224251897 6759225979 7524831389 3608234447 34508543)
4  6  (627710173 5386680763 8357894232 0766641608 3908700390 324961273,
3639606512 0665209936 2031295717 4687570291 1061897904 10801368)
5  9  (627710173 5386680763 8357894232 0766641608 3908700390 324961270,
2852337134 5875919144 0885844942 2488889087 5679852690 24248608)
6  10  (627710173 5386680763 8357894232 0766641608 3908700390 324961269,
1881037957 3679683598 7972885724 1544647527 4864658098 63097482)
7  12  (627710173 5386680763 8357894232 0766641608 3908700390 324961267,
5073879250 4375883144 9928150270 2009951896 0159941376 12734228)
Найдем
# Ea b .
Так
# Eab  6277101735 3866807638 3578942317 6059013767 1947731828 42284081 ,
как
то, используя теорему
5.1, получим, что
# Eab  6277101735386680763835789423239273818400622627597807638479 
 23  10864375060560251605900677743  25120401793443689936479125511
Из
того,
что
максимальный
2512040179 3443689936 479125511
дискретного
множитель
в
разложении
# Ea b
равен
следует, что, используя метод Полларда, задачу
логарифмирования
можно
25120401793443689936479125511  158494169588170
64
операций
решить
с
точками
за
на
эллиптической кривой [42]. При условии, что современная техника может
производить 1010 операций с точками на эллиптической кривой, то задачу
дискретного логарифмирования на эллиптической кривой можно решить за 4 часа
30 минут. На основе этих данных мы можем сделать вывод, что данная
эллиптическая кривая непригодна к использованию в криптографических целях.
2. Рассмотрим
эллиптическую
кривую
P  224 :
b  1184892892847913000025541784030870400969042560542457567237257953204
p  26959946667150639794667015087019630673557916260026308143510066298881
Найдем наименьший квадратичный невычет.
Числа 1, 4, 9 являются квадратичными вычетами
виде: 1  12 ,
Fp ,
так как представимы в
4  2 2 , 9  32 .
Так как
имеет вид
p
квадратичным вычетом в
p  8t  1 ,
Fp ,
то из свойств символа Лежандра
следовательно, и
8
2
является
является квадратичным вычетом в
Fp .
Из того, что
вычетом в
Fp ,
p
имеет вид
p  11t  1 ,
следует, что 3 является квадратичным
значит, и 12 является квадратичным вычетом в
Fp .
Вычислим символ Лежандра для чисел 5 , 7 , 11 , получим:
 5  1
      1 ,
 p  5
 7  4
      1 ,
 p 7
квадратичным невычетом в
Найдем
a
и
Fp ,
 11   8 
      1 ,
 p   11 
является 11 , значит,
следовательно,
наименьшим
v  11 .
b :
a  2695994666 7150639794 6670150870 1963067355 7916260026 3081435100 66298518
b  1341553368 5835094943 3092394979 4992462343 6505000485 1496692064 90379426
Найдем, для каких значений
квадратичным вычетом в
Fp ,
i  0,...,14 
значение выражения
а для каких — невычетом в
x 3  3x  b
является
Fp .
Результат вычислений представлен в таблице 5.2, где знаком «+» обозначается
квадратичный вычет в
Fp ,
а знаком «–» обозначается квадратичный невычет в
65
Fp .
Таблица 5.2 – Таблица принадлежности точек для эллиптической кривой EP  224
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Eab i 
-
-
-
-
+
+
-
+
-
+
+
-
-
-
-
Ea b iv 
+
+
+
+
-
-
+
-
+
-
-
+
+
+
+
i
Из таблицы видно, что в строке
плюсов.
Таким
образом,
эллиптической кривой
Eab
содержится 5 плюсов, а в строке Ea b — 10
кодирование
будет
осуществляться
с
помощью
E a b  .
0  0  (0, 1279570188126497932668843105780488063367322738598979018589176253518)
1  1  (11, 1971866453389642034495285085943490889832546597648861537869726507668)
2  2  (22, 1017645392403636505096555199705806100587369205938801210791770584 \
9824)
3  3  (33, 935890915456245796829692640387694512210257359814609788990881243 \
4060)
4  6  (66, 587241073458406768285104712736982512643200919593261033377512338 \
0536)
5  8  (88, 9706802960151090980705546055019489912031617355969047635105028325 \
010)
6  11  (121, 8234000226559713240305693707492644371471171482034903525856724 \
774960)
7  12  (132, 761879028743502752492324034067527374200816791098118645995856 \
457009)
Найдем
# Ea b .
Так
# Eab  2695994666 7150639794 6670150870 1962594045 7807714424 3917216827 22368061 ,
теорему
5.1,
как
то, используя
получим,
что
# Eab  26959946667150639794667015087019635406658024805628224565337410229703 
 32  11  47  3015283  40375823  267983539294927  177594041488131583478651368420021457
Из
того,
что
максимальный
1775940414 8813158347 8651368420 021457
эллиптической кривой
E a b  ,
множитель
в
разложении
# Ea b
равен
, следует, что для криптосистемы, построенной на
задача дискретного логарифмирования решается
66
# E ab
 1232098188 6307475
1775940414 8813158347 8651368420 021457
методом Полларада в
быстрее, чем для криптосистемы, построенной на эллиптической кривой
3.
Рассмотрим
эллиптическую
раз
Eab .
кривую
P  256 :
b  2566147732 8220088830 8288311125 2954275569 6525634996 0784717720 3519628093 055051
p  115792089210356248762697446949407573530086143415290314195533631308867097 \
853951
Так как
p
— простое число вида
невычетом
p  4k  3 ,
то
в
p 1
является квадратичным
Значит,
Fp .
v  p  1  11579208921035624876269744694940757353008614341529031419553363130886709785 \
3950
Вычислим
a
и
b :
a  1157920892103562487626974469494075735300861434152903141955336313088670978 \
53948
b  11322594147753423987961456383815461925451649085179070634835642778923900479 \
8900
i  0,...,14 
Найдем, для каких значений
квадратичным вычетом в
Fp ,
значение выражения
а для каких — невычетом в
x 3  3x  b
является
Fp .
Результат вычислений представлен в таблице 5.3, где знаком «+» обозначается
квадратичный вычет в
Fp ,
а знаком «–» обозначается квадратичный невычет в
Fp .
Таблица 5.3. – Таблица принадлежности точек для эллиптической кривой EP  256
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Eab i 
+
-
+
-
-
+
-
+
+
-
-
-
-
-
-
Ea b iv 
-
+
-
+
+
-
+
-
-
+
+
+
+
+
+
i
Из таблицы видно, что в строке
плюсов.
Таким
образом,
эллиптической кривой
Eab
содержится 5 плюсов, а в строке Ea b — 10
кодирование
E a b  .
67
будет
осуществляться
с
помощью
0  1  (115792089 2103562487 6269744694 9407573530 0861434152 9031419553 3631308867 0978 \
53950, 3929958143 0452994784 5037853818 6942560563 4399626330 1117942339 7030103 \
6937817997 )
1  3  (115792089 2103562487 6269744694 9407573530 0861434152 9031419553 3631308867 0978 \
53948,4555 7475899694 3877615954 0244081144 4449135436 2751238154 1939666939 30616 \
87314288)
2  4  (115792089 2103562487 6269744694 9407573530 0861434152 9031419553 3631308867 0978 \
53947,3070 6015120292 1859987482 9102093727 9049966776 6975275539 3652798221 62797 \
15264062)
3  6  (115792089 2103562487 6269744694 9407573530 0861434152 9031419553 3631308867 09785 \
3945,14735 9592051301 7961207967 2369887230 8071984717 3230865109 7833663308 309356 \
737213)
4  9  (115792089 2103562487 6269744694 9407573530 0861434152 9031419553 3631308867 09785 \
3942,35144 7293012768 9281557672 2521127473 7708707097 6323199274 2551011087 37914 \
7161971)
5  10  (115792089 2103562487 6269744694 9407573530 0861434152 9031419553 3631308867 09785 \
3941,37606 8777907596 3149187643 0554247761 6608339170 6082617684 8919792751 354649 \
023869)
6  11  (115792089 2103562487 6269744694 9407573530 0861434152 9031419553 3631308867 09785 \
3940,38366 4978449850 9474545043 5864440084 3736068201 3673331601 6124793518 63863 \
8383858)
7  12  (115792089 2103562487 6269744694 9407573530 0861434152 9031419553 3631308867 09785 \
3939,45632 6523831071 0027911413 5122135210 0754776373 9266874853 9157498724 45228 \
5845151)
Найдем
# Ea b .
Так
как
# Eab  115792089210356248762697446949407573529996955224135760342422259061068512044369
,
то,
используя
теорему
5.1,
получим,
что
# Eab  11579208921035624876269744694940757353017533160644486804864500355666568366 \
3535  5  13  179  331734964074935535776242506659239574645968576440180111871207573575 \
8936647
Из
того,
что
максимальный
множитель
в
разложении
3317349640 7493553577 6242506659 2395746459 6857644018 0111871207 5735758936 647 ,
криптосистемы, построенной на эллиптической кривой
логарифмирования
методом
Полларада
68
E a b  ,
# Ea b
равен
следует, что для
задача дискретного
решается
в
# Eab
 186
3317349640 7493553577 6242506659 2395746459 6857644018 0111871207 5735758936 647
раз
быстрее.
Рассмотрим
4.
эллиптическую
кривую
P  384 :
b  1723762097 4974816173 6556324002 4315505816 0566160225 9803258929 4206374293 07758186 \
6304071016 2978052340 6923534331 8330095
p  3940200619 6394479212 2790401001 4361380507 9739270465 4466679482 9340424572 1771496870 \
3290472660 8825893800 1861606973 112319
Так как
p
— простое число вида
невычетом
в
p  4k  3 ,
то
p 1
является квадратичным
и,
Fp
значит,
v  p  1  3940200619 6394479212 2790401001 4361380507 9739270465 4466679482 9340424572 177 \
1496870329 0472660882 5893800186 1606973112 318
Вычислим
и
a
b :
a  3940200619 6394479212 2790401001 4361380507 9739270465 4466679482 9340424572 177149687 \
0329047266 0882589380 0186160697 3112316
b  3767824409 8896997594 9134768601 1929829926 3682654442 8486353589 9919787142 869391500 \
4024962497 9045370393 2626263654 782224
i  0,...,14 
Найдем, для каких значений
квадратичным вычетом в
Fp ,
значение выражения
а для каких — невычетом в
x 3  3x  b
является
Fp .
Результат вычислений представлен в таблице 5.4, где знаком «+» обозначается
квадратичный вычет в
Fp ,
а знаком «-» обозначается квадратичный невычет в
Fp
Таблица 5.4 – Таблица принадлежности точек для эллиптической кривой EP  384
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Eab i 
+
+
-
+
-
+
-
-
-
-
+
-
-
-
+
Ea b iv 
-
-
+
-
+
-
+
+
+
+
-
+
+
+
-
i
Из таблицы видно, что в строке
плюсов.
Таким
образом,
эллиптической кривой
Eab
содержится 6 плюсов, а в строке
кодирование
E a b  .
69
будет
осуществляться
с
E a b 
—9
помощью
0  2  (394020061 9639447921 2279040100 1436138050 7973927046 5446667948 2934042457 21 \
77149687 0329047266 0882589380 0186160697 3112317, 6573904107 6093754296 12103 \
7721962670 878019 1353377238 7870541329 5215759557 9801111152 6038601544 58315 \
2248799853 498660822)
1  4  (394020061 9639447921 2279040100 1436138050 7973927046 5446667948 2934042457 21 \
7714968703 2904726608 8258938001 8616069731 12315, 3810221359 5398910563 632678 \
9604153368 4643840923 0545085869 6139456454 2901323309 0454907606 9597663136 99 \
7283807537 1604329)
2  6  (394020061 9639447921 2279040100 1436138050 7973927046 5446667948 2934042457 21 \
7714968703 2904726608 8258938001 8616069731 12313, 1365271801 1225237568 706928 \
6510558194 0252785681 3848254209 3302833865 3936933242 9768447752 4505813349 07 \
9946800024 46560480)
3  7  (394020061 9639447921 2279040100 1436138050 7973927046 5446667948 2934042457 21 \
7714968703 2904726608 8258938001 8616069731 12312,5377 8514073342 0905100321 45 \
8425355170 4893337321 1228335690 0801736788 4255389283 5720047268 0556710872 3 \
6517927351 40774973)
4  8  (394020061 9639447921 2279040100 1436138050 7973927046 5446667948 2934042457 21 \
7714968703 2904726608 8258938001 8616069731 12311,3946 8140340781 3520520185 87 \
6516254846 8959008871 0802153641 8249022499 9979159981 8612609730 1028564230 3 \
3945926931 42385657)
5  9  (394020061 9639447921 2279040100 1436138050 7973927046 5446667948 2934042457 21 \
7714968703 2904726608 8258938001 8616069731 12310,1479 5256983592 9357648126 9 \
4192090031 4790725006 2844207879 9131003369 9957413640 4158266377 4505900750 9 \
5029121750 0111387345 )
6  11  (394020061 9639447921 2279040100 1436138050 7973927046 5446667948 2934042457 21 \
7714968703 2904726608 8258938001 8616069731 12308,8016 7168616250 7491018538 37 \
7338810824 9337662362 7602657915 9440290618 7180202891 0507296461 1102374876 51 \
1451781627 248700)
7  12  (394020061 9639447921 2279040100 1436138050 7973927046 5446667948 2934042457 21 \
7714968703 2904726608 8258938001 8616069731 12307,8952 9313371204 6486691585 79 \
6868379092 2666766770 7531751449 5464223664 0535644635 8887199602 5981822956 5 \
8686291548 21094167)
Найдем
# Ea b .
Так
# Eab  3940200619 6394479212 2790401001 4361380507 9739270465 4466679469 0527962765 939911 \
3263569398 9563081522 9491355443 3653942643
используя
теорему
5.1,
получим,
# Eab  3940200619 6394479212 2790401001 4361380507 9739270465 4466679496 8152886378 41438 \
8047708869 5575868365 5810901687 8029228199 7
70
как
, , то,
что
Из
того,
что
максимальный
множитель
в
разложении
3940200619 6394479212 2790401001 4361380507 9739270465 4466679496 8152886378 4143880477 \
0886955758 6836558109 0168780292 281997
что для криптосистемы, построенной на эллиптической кривой
равен
# Ea b
, следует,
E a b  ,
задача
дискретного логарифмирования методом Полларада решается за то же время, что и
для криптосистемы, построенной на эллиптической кривой
5.
Рассмотрим
Eab .
эллиптическую
кривую
P  521 :
b  6836556487 9608392156 9445244229 2534812101 2974934480 2343121616 4965599706 97594209 \
3850085679 6098359976 4530370082 6854414458 1839903283 2244383070 0889546971 7831424
p  6864797660 1306097149 8190079908 1393217269 4353001433 0540939446 3459185543 18339765 \
6052122559 6406614545 5497729631 1391480858 0371219879 9971664381 2574028291 115057151
Так как
невычетом в
p
Fp ,
— простое число вида
p  4k  3 ,
то
p 1
является квадратичным
значит,
v  p  1  6864797660 1306097149 8190079908 1393217269 4353001433 0540939446 3459185543 183 \
3976560521 2255964066 1454554977 2963113914 8085803712 1987999716 6438125740 282 \
9111505715 0
Вычислим
a
и
b :
a  6864797660 1306097149 8190079908 1393217269 4353001433 0540939446 3459185543 183397656 \
0521225596 4066145455 4977296311 3914808580 3712198799 9716643812 5740282911 15057148
b  6796432095 2510013228 2495627465 8467869148 4223252088 2517508230 1809529546 113638235 \
1136217028 4456309457 8524259303 1229367134 5528208471 6492205505 5651328213 97225727
i  0,...,14 
Найдем, для каких значений
квадратичным вычетом в
Fp ,
значение выражения
а для каких — невычетом в
x 3  3x  b
является
Fp .
Результат вычислений представлен в таблице 5.5, где знаком «+» обозначается
квадратичный вычет в
Fp ,
а знаком «–» обозначается квадратичный невычет в
Fp .
Таблица 5.5 – Таблица принадлежности точек для эллиптической кривой EP  521
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Eab i 
+
-
-
+
-
+
+
+
-
-
+
-
-
+
+
Ea b iv 
-
+
+
-
+
-
-
-
+
+
-
+
+
-
-
i
71
Из таблицы видно, что в строке
плюсов.
Таким
образом,
эллиптической кривой
Eab
содержится 8 плюсов, а в строке Ea b — 7
кодирование
будет
осуществляться
с
помощью
Eab .
0  0  (0,2955417 1502846027 8390368733 2368296879 6827222436 7251359412 2287784 \
0411915593 8647532928 3779451092 6690887634 1572513917 6050953140 8948251 \
1334604947 2452853577 079638)
1  3  (3,5660281 0928189148 1053379012 6096893011 0144210751 4616831804 9741432 \
6045010609 5236602552 4305410422 3189977321 7398796266 6310820005 3584050
5221172219 9720223524 74129)
2  5  (5,2117650 3535457210 9764199119 6034713191 7629084922 5507154654 9823220 \
9418716617 6278188397 1308044392 4905579897 5123524133 1295032177 6696006
2793164011 8291962634 606579)
3  6  (6,2199070 9356983198 4660299902 5255651846 6923495951 0460267254 5447757 \
8917434478 2278202130 8863287600 8212576809 5652958725 6415333911 3271937
7407509318 0233389185 050226)
4  7  (7,2457763 9415682968 0199525712 4388120839 2864440011 4229163999 1316896 \
1496110174 7268194254 1266954371 2605291256 6246035224 9566086046 3269649 \
5615004854 6878716340 066295)
5  10  (10,177429 5651077694 7917395676 1882011009 6655930924 1437535084 6009840 \
2403394198 4517221180 6899203643 6788726251 1342740137 8205663099 8400140 \
7544661170 8823120857 3363126)
6  13  (13,125288 5165180267 6773585642 5160805322 4764851294 5222709097 8153769 \
8224699010 1877541536 5370771617 5954615096 8262901262 2463274703 1449488 \
8726695732 2136114810 6058062)
7  14  (14,160439 5375061705 6712684742 0738379352 4653687883 3788805623 7312171 \
1854628696 9882315767 3557066196 4347264344 5284028214 8598528686 5948518 \
4339817752 3512019037 6817872)
Из примера 5.1 видно, что детерминированный метод кодирования алфавита
точками
эллиптической
эллиптических кривых
кривой
приводит
P  192 , P  224
и
P  256
к
понижению
криптостойкости
на дуальные, но не криптостойкие
кривые. Кривая
P  384
заменяется на криптостойкую дуальную эллиптическую
кривую, а кривая
P  521
остается без изменений. Из всего выше сказанного следует,
что при переходе от эллиптической кривой к дуальной эллиптической кривой
уменьшается криптостойкость данной криптосистемы. В связи с этим на
эллиптическую кривую нужно накладывать дополнительные условия, что требует
72
дополнительных временных затрат и ведет к увеличению времени для выбора одной
кривой с нужными свойствами, что делает данный метод неудобным для частого
применения.
В качестве более удобной для практического применения рассмотрим
эллиптическую кривую, заданную уравнением:
 
E Zq : y 2  x3  ax  b
где
q
n
p
j
,
pj
над
Zq ,
– попарно простые числа и
(5.3)
pi  3
j 1
В блок-схеме алгоритма представленного на рисунке 5.4 функция
factor(a)
возвращает множество попарно различных простых делителей числа a .
Рисунок 5.4 – Блок-схема алгоритм кодирования алфавита точками
эллиптической кривой, заданной уравнением (5.3)
73
Теперь для данного алгоритма предложим алгоритм декодирования (рисунок
5.5).
Функция SRC a, b переводит число из системы остаточных классов в
десятеричную систему исчисления, где
остаточных классов, а
b
a
— пара чисел, представленных в системе
— трехмерный массив, где каждой тройке чисел
соответствует число, равное представлению восстанавливаемого числа в системе
остаточных классов.
Данай алгоритм при соответствующем выборе
q
и эллиптической кривой
позволяет закодировать алфавит, мощность которого равна мощности множества
точек эллиптической кривой, не считая точку в бесконечность.
Рисунок 5.5 – Блок-схема алгоритм декодирования алфавита из точек
эллиптической кривой, заданной уравнением (2.3)
74
Приведем пример эллиптической кривой, которая позволяет это сделать.
Пример 5.2. Эллиптическая кривая задается уравнением:
 
E Zq : y 2  x3  3x  49 ,
где
n 9, q 
n
p ,
i
p1  1307 ,
p2  3301 ,
p3  5023 ,
p4  6067 ,
i 1
p5  7517 , p6  8243 , p7  8521 , p8  9623 , p9  9859 .
Результат представлены в таблице 5.6.
Таблица 5.6 – Разложения ni на простые множители
Разложения числа
i
ni
1
1279
1279
2
3327
3∙1109
3
5119
5119
4
6143
6143
5
7679
7∙1097
6
8191
8191
7
8447
8447
8
9727
71∙137
9
9983
67∙149
ni
на
простые множители
 
# E Z q  6903559382 9250189544 6397005207 3983 
 29 1348351441 9775427645 4374415079 57
Тогда с помощью точек эллиптической кривой
 
E Zq
можно закодировать
алфавит,
содержащий
НОК n1 , n2 , n3 , n4 , n5 , n6 , n7 , n8 , n9   6903559382925018954463970052073983 слов.
Таким образом, мы провели анализ алгоритмов кодирования алфавитов
точками эллиптической кривой. По итогам этого анализа можно утверждать, что
вероятностный метод кодирования обладает двумя существенными недостатками:
1. При большой мощности алфавита вероятность его не закодировать
возрастает и становиться больше, чем вероятность его закодировать.
75
2. С
помощью данного метода возможно закодировать алфавит в
k
раз
меньше, чем количество точек на эллиптической кривой.
Детерминированный метод кодирования алфавита может привести к переходу
от
криптостойкой
эллиптической
кривой
к
дуальной
не
криптостойкой
эллиптической кривой. Так, в примере 5.1 показано, что задачу дискретного
логарифмирования можно решить за 4 часа 30 минут. При условии, что современная
техника может выполнять 1010 операций в секунду с точками эллиптической кривой,
эта применение этого метода теряет смысл.
Предложен
новый
алгоритм
кодирования,
эллиптических кривых, заданных над кольцом
кривой над кольцом
Zq
Zq .
предназначенный
для
Использование эллиптической
позволяет применять систему остаточных классов для
выполнения арифметических операций в кольце
Zq ,
что существенно уменьшает
время выполнения арифметических операций с точками на эллиптической кривой,
следовательно, уменьшается время кодирования и декодирования информации, и
требуется меньшая вычислительная мощность.
76
6 Разработка пороговой схемы разделения секрета на эллиптической
кривой над конечным кольцом
Современные информационные системы требуют особого подхода к
сохранению секрета: люди не могут целиком доверять своему окружению, так как
кто-то может быть подкуплен конкурентами. В этом случае проблему сохранения
секрета в тайне решают с помощью схемы разделения секрета [51-52]. Первыми
пороговую схему разделения секрета рассмотрели в своих работах Г. Блейкли [53] и
А. Шамир [54] в 1979 году.
Схема Шамира позволяет секрет s0 разделить на n частей s0 ,1 , s0, 2 ,…, s0, n так,
что выполняются следующие два условия:
1. С помощью любых t и более частей
2. С помощью любых
t 1
s0,i
можно восстановить секрет s0 ;
частей нельзя ни восстановить секрет, ни получить о
нем никакой дополнительной информации кроме той, которая уже имеется.
Пороговые схемы, удовлетворяющие условию 2, называются совершенными
пороговыми схемами разделения секрета. В работе [55] предложен алгоритм
многоточечного разделения точек на эллиптической кривой, в котором используется
спаривание из работы [56]. В работе [55] показано, что эта схема является
совершенной и криптостойкой, если выполняются следующие четыре условия:
1. Честных пользователей в схеме должно быть не менее n  t  1 ;
2. Задача нахождения дискретного логарифма в группе точек эллиптической
кривой EGF q  должна быть трудно вычислимой;
3. Задача вычисления дискретного логарифма в мультипликативной группе
GF# EGFq должна быть трудно вычислимой;
4. Распространено не более Olg q точек.
Из условия 3 и условия применимости алгоритма Полига-Хеллмана-Зильбера,
изложенного в работах [57], следует, что порядок группы точек эллиптической
кривой EGF q  при разложении на множители должен содержать большое простое
число. Таким образом, нам необходим алгоритм, с помощью которого можно
77
эффективно находить порядок группы точек эллиптической кривой. Одним из
наиболее известных алгоритмов является алгоритм Шуфа, изложенный в работах
[57], и его усовершенствование Элкисаном и Аткиным, известное как алгоритм
SEA, изложенное в работах [58-59]. Сложность этих алгоритмов составляет Olog 8 q 
и Olog 6 q  соответственно. Для выполнения условия 2 требуется, чтобы q  2255 , из
чего следует, что, используя самый быстрый универсальный алгоритм SEA для
нахождения # EGF q , требуется 2556 операций, что приблизительно равно 21015 , а,
так как современная вычислительная техника может выполнять 1010 операций в
секунду, то потребуется 55 часов для нахождения порядка одной эллиптической
кривой. Это делает данный алгоритм неприемлемым для использования в
практических целях.
Альтернативным
решением
данной
проблемы
является
построение
криптосистемы на эллиптической кривой E , заданной конечным кольцом
Zq ,
s
q   pi , pi – различные простые числа и для всех i  1,..., s .
i 1
Билинейное спаривание
Для построения схемы разделения секрета введем операцию спаривание на
эллиптической кривой аналогичную операции, приводимой
в работе [56]. Для
любой точки P  E GF  pi  выполняется следующее равенство: ni 1P  O , где O –
точка в бесконечности. Обозначим за E Z q  множество точек эллиптической кривой,
которая задана уравнением y 2  x3  ax  b над полями GF  pik  . Для построения
спаривания важно знать структуру группы точек эллиптической кривой. Ниже
приведена теорема, описывающая структуру группы, когда эллиптическая кривая
задана над полем GF  pik  , где pi – простое число, k  1 и порядок группы точек
эллиптической кривой выражается формулой # E GF  pik   pik  1  t .
Теорема 6.1 [60] Если t 2  pik ,2 pik ,3 pik , то группа циклическая. Если t 2  4 pik , то
группа изоморфна Z
pik 1
Z
pik 1
в случае t  2 pik , или изоморфна Z
78
pik 1
Z
pik 1
в
случае t  2 pik . Если t  0 , pik  3mod 4 , то группа циклическая. Если t  0 ,
pik  3mod 4  , то группа или циклическая или изоморфна Z pk 1  Z 2 .
i
2
Из теоремы 6.1 следует, что в случае, когда t 2  4 pik и r – четное число, группа
точек E GF  pik  представляется в виде прямой суммы Z
pik 1
Z
pik 1
или Z
pik 1
Z
pik 1
.
Обозначим эти группы Eli , где li  pik  1 или li  pik  1 .
Так как Eli  представляется в виде прямой суммы циклических групп, то
можно зафиксировать некоторую образующую пару точек Gi и H i таким образом,
чтобы с их помощью можно было представить в Eli  любую точку. Рассмотрим
точки
и
Pi  a1,i Gi  b1,i H i
a1,i , a2,i , b1,i , b2,i  0, li  1 .
Для
Qi  a2,i Gi  b2,i H i ,
некоторых
Eli ,
принадлежавшие
зафиксированных
целых
где
i , i  0, li  1
определим функцию следующим образом:
Li ,i : Eli  Eli   Eli 
Li ,i Pi , Qi   a1,i ,b1,i  a2,i b2,i  i Gi  i H i  .
и
Исключая
тривиальный случай, когда  i и i одновременно равны нулю.
Пусть G1 , G2 и G3 – три Абелевы группы. Билинейное спаривание является
отображением e : G1  G2  G3 среди этих трех групп, и отображение должно
удовлетворять свойству билинейности: для ,   G1 , ,   G2 , e  ,    e,    e,   ,
e,     e,    e, .
Следующая теорема показывает, что функция L ,i задает билинейное
i
спаривание.
Теорема 6.2 [56] Функция L ,i обладает следующими свойствами:
i
1.
Тождественность.
Для всех Pi  Eli  , L , Pi , Pi   O
i
2.
i
Билинейность.
Для всех Pi , Qi , Ri  Eli  .
Li ,i Pi  Qi , Ri   Li ,i Pi , Ri   Li ,i Qi , Ri  и Li ,i Pi , Qi  Ri   Li ,i Pi , Qi   Li ,i Pi , Ri 
3.
Антисимметричность.
79
Для любых Pi , Qi  Eli  , La , Pi , Qi    L , Qi , Pi  .
i
i
i
i
Невырожденность.
4.
Для всех Pi  Eli  , L , Pi , O   O . Кроме того, если L , Pi , Q   O для всех
i
i
i
i
Qi  Eli , тогда Pi  O .
L i , i называется спариванием, поскольку оно отображает Eli  Eli  в Eli 
(аналогично традиционным спариваниям Вейля и Тейта).
Пусть L, P, Q  L  E Z q
k

и L , Pi , Qi   Li  EGF  pik  . Зададим спаривания
i
i
L , P, Q  как X Li  X L mod pi , YLi  YL mod pi , Z Li  Z L mod pi с помощью множество точек
Gi ,
и целых чисел
Hi
i , bi  1,..., li  1,
L   X L : YL : Z L  ,
где

P   X P : YP : Z P , Q  X Q : YQ : ZQ  Z qk ,
 


 GFp ,
Li  X Li : YLi : Z Li ,
Pi X P1 : YPi : Z Pi , Q X Qi : YQi : ZQi
k
i
X Pi  X P mod pi , YPi  Yp mod pi , Z Pi  Z P mod pi , X Qi  X Q mod pi , YQi  YQ mod pi , Z Qi  Z Q mod pi
и i  1..s
Замечание. Значения X L , YL , Z L представляются в системе остаточных
классов числами X L , YL , Z L по основаниям pi .
i
i
i
Приведем небольшой пример для построения билинейного спаривания.
Пример 6.1. Пусть задана эллиптическая кривая


F5 2  F5 /  2    1 ,
тогда
 
# E Fp 2  27
E F5  :
y 2  x 3  3x  4
и
и имеет восемь торсионных точек третьего
порядка:  1,  3 , 2,2 , ,  , 4  4,  1 , тогда билинейное спаривание можно
задать с помощью следующих точек:
2G  0 H  2,2 ,
G  2,2 
и
0G  1H  .  , 1G  1H  4  4,1    ,
1G  2 H  1,   3 , 2G  2 H  4  4,4  4  ,
H  ,   . 0G  0 H  O 1G  0 H  2,2 ,
2G  1H   1,  3 ,
что изоморфно
0G  2 H  ,  ,
Z3  Z3 .
Схема разделения точек на эллиптической кривой
Пусть задано множество точек, которые нам нужно разделить между
участниками M 1 , M 2 ,..., M m   E Z q . Это может быть сообщением, представленным в
виде точек, или ключом к криптосистеме.
Начальная фаза
80
Обозначим дилера D и n участников схемы разделения точек U1,U 2 ,...,U n .
Дилер совершает следующие шаги для определения параметров, использующих
схемы:
s
1. Дилер D выбирает эллиптическую кривую E над Z q , где q   pi , pi –
i 1
попарно различные простые числа, так, чтобы q  2255 . D выбирает целое четное
число k и вычисляет множество чисел li ;
2. D выбирает образующую пару Gi , H i  Eli  и целые числа i , i  1, li  1,
которые задают спаривание L ,  ;
i
i
3. Дилер D опубликовывает E, q, li , k , Gi  H i  , что является открытым ключом.
Фаза секретного распределения
Дилер использует следующий алгоритм распространения секретов между n
участниками так, чтобы любые z или более участников могли легко восстановить
секрет, а любые z  1 или меньше участников не могли этого сделать и получить
какую-либо дополнительную информацию о секрете.
1. D вычисляет матрицу A :



A




1
1
1
2
2

2

2
1
3
3



1

1
n  1

n  1
2



2

z 1
;
3



z 1 
n  1 
1
z 1
(6.1)
~
~
2. D выбирает 2 zs случайных чисел a~j ,i , b j ,i  каждое a~j ,i , b j ,i  0, li  1 для 1  j  z
и 1 i  s;
3. D вычисляет a1,i , a2,i ,..., an,i T  A  a~1,i , a~2,i ,..., a~t ,i T и b1,i , b2,i ,..., bn,i T  A  b1.i , b2,i ,..., bt ,i  ;
~ ~
~
T
4. В завершении D сообщает i пар a j ,i , b j ,i  (секретный ключ) пользователю U j
для всех 1  j  n , где 1  i  s .
Фаза разбиения точек
После распространения секретов дилер может распространять точки среди n
участников, используя следующий алгоритм:
81
1. Для части m других точек сообщает M1 , M 2 ,..., M m  дилер D , выбирая
c j ,i , d j ,i  0, li  1 случайно и вычисляя Q j ,i  c j ,i Gi  d j ,i Gi для всех 1  j  m , 1  i  s ,
причем каждая точка представляется в виде M j  M j ,i | 1  i  s;
2. D вычисляет R j ,i  L , Q j ,i , Pj ,i   M j ,i для всех 1  j  m , 1  i  s и публикует
i
c
j ,i
i
, d j ,i , R j ,i  (открытый ключ).
Алгоритм восстановления точки
Предположим, что
z
различных пользователей
U
u1
,U u2 ,...,U uz

захотели
восстановить m точек M j 1 j  m .Они восстанавливаются по следующему алгоритму:
1. Каждый U u берет массив целых чисел cw,i , d w,i  из открытого ключа, где
w
1 w  z , 1 i  s ;
2. Каждый
Uuw
вычисляет


Q j ,w,i  Li ,i Q j ,i , Puw ,i ,
где
Puw ,i  auw ,i Gi  buw ,i H i
и
Q j ,i  c j ,i Gi  d j ,i H i , где 1  w  z и 1  i  s ;
3. Каждый U u группой псевдосекрет Q j , w,i к U u ,U u ,...,U u \ U u , где 1  w  z ;
1
w
t
4. Каждый вычисляет T j ,i   y j Q j ,w,i , где yw 
w1
2
t
w
z
1
и 1 i  s;
j 1,wi u w  u j

5. Каждый загружает точку R j ,i из открытого ключа и восстанавливает M j ,i ,
как R j ,i  T j ,i ;
6. Из множества M j ,i восстанавливается точка M j , где 1  i  s и j  1,..., m.
Анализ безопасности
Покажем, что построенная z, n -пороговая схема разделения секрета является
совершенной. Для этого докажем следующую теорему.
Теорема 6.3:. Если, по крайней мере n  z  1 пользователей честных, тогда
~
любые z  1 пользователей ничего не узнают о Pt ,i , где i – зафиксированное целое
число, принадлежащее отрезку 1..s .
Доказательство.
Пусть произвольных z  1 пользователей знают U j ,i ,U j ,i ,...,U j
1


 i Gi   i H i , aw ,i , bw ,i , где 1  j  z  1 . Пусть
j
j
82
2
t 1 ,i
и
E , q , li , k ,
1 j1

1 j2
B  1 j3

 

1 jz1
тогда a j ,i , a j ,i ,..., a j
1
2

T
z 1 ,i
j12
j22
j32

2
z 1
j
 j1z1 

 jz21 
 j3z1  ,
  

 jzz11 
(6.2)
T
 B  a~1,i , a~2,i ,..., a~z1,i  .
Ранг B равен z  1 , так как матрица B состоит из z  1 столбцов матрицы
Вандермонда и ji  jk , если i  j . Из теории линейных уравнений a~z ,i любое значение
из 0, li  1 . Тот же самый результат сохраняется и для bz , i , поэтому любые z  1
~
~
пользователей ничего не узнают о Pz ,i .
Теорема доказана.
Приведем лемму из работы [55], в которой говорится о том случае, когда
Li ,i Pi , Qi   O и которая потребуется при доказательстве теоремы о вероятности
выбора случайной точки.
Лемма 6.1: [55]. Если i  i  0 и Pi  Qi , то L , Pi , Qi   O тогда и только
i
i
тогда, когда Pi принадлежит множеству kQi : 0  k  li .
В следующей теореме мы покажем, что вероятность выбора наугад точек Pz ,i ,
задающих точку Pz , очень мала.
Теорема о случайном выборе точки.
~
Теорема 6.4: [55]. Не зная точку Pz , вероятность выбора случайной точки
 
Pz  E Z qk
s
1
i 1
i
l
такой, чтобы выполнялось M j ,i  R j ,i  L , Q j ,i , Pz ,i  для всех i  1..s , равна
~
i
i
.
Доказательство
~
Вероятность случайного выбора какой-то одной зафиксированной точки Pz ,i
так, чтобы M j ,i  R j ,i  L , Q j ,i , Pt ,i  равна тому, что L , Q j ,i , Pz ,i  Pz ,i   O . Из леммы 3.1
~
i
i
i
получим, что Pz ,i  eQ j ,i  Pt ,i | 0  e  li . Таким образом, вероятность случайного
~
83
выбора одной зафиксированной точки равна Pi  Eli  так, чтобы M j ,i  R j ,i  L , Q j ,i , Pi 
i
равна
i
li 1
 .
li2 li
~
Вероятность случайного выбора независимых s точек Pz ,i , где 1  i  s
вычисляется по формуле произведения вероятностей. При условии, что вероятность
случайного выбора i точки равна
1
, получим вероятность выбора случайной точки
li
 
Pz  E Z qk так, что M j ,i  R j ,i  Li ,i Q j ,i , Pi  для всех i  1..s равной
s
1
i 1
i
l
.
Теорема доказана.
Итак, предложенная схема разделения секрета является безопасной при
выполнении двух условий:
1. По крайней мере n  z  1 пользователей в схеме честных.
2. Распространено не более, чем Olg q точек.
Преимущество в реализации z, n -пороговой схемы разделения секрета на
эллиптической кривой над Z q заключается в том, что при использовании
проективной системы координат можно эффективно использовать систему
остаточных
классов,
что
существенно
дешифрования информации.
84
ускоряет
процесс
шифрования
и
7 Разработка рекомендаций по использованию результатов проведенной
НИР
Результаты работы могут быть использованы для разработки типовых
процессов передачи данных на основе современных информационных технологий в
региональных
компаниях
телекоммуникаций;
для
реализации
эффективных
алгоритмов передачи информации в распределенных вычислительных сетях; в
качестве прототипа для разработки систем передачи информации с использованием
эллиптической
кривой,
заданной
над
конечным
кольцом,
обладающих
параллелизмом машинным операций
Результаты исследования могут быть использованы на предприятиях и в
организациях, занимающихся разработкой информационных систем для решения
задач передачи информации в распределенных вычислительных четях, входящих в
состав холдинга ОАО «Связьинвест» (ОАО «Волгателеком», ОАО «Центральная
телекоммуникационная компания», ОАО «Северо-Западный Телеком», ОАО «Южная
телекоммуникационная
«Сибирьтелеком»,
ОАО
компания»,
ОАО
«Дальневосточная
«Уралсвязьинформ»,
компания
электросвязи»)
ОАО
и
альтернативных операторов (ОАО «ТрансТелеком»), а также ВУЗах, где имеются
телекоммуникационные специальности.
85
Заключение
В результате научно-исследовательской работы по теме «Разработка
программного комплекса шифрования данных, на основе использования точек
эллиптической кривой» были проведены следующие исследования:
1. Анализ алгоритмов симметричного и асимметричного шифрования на
точках эллиптических кривых.
2. Разработан генератор псевдослучайных чисел на базе использования
квадратичных полей Галуа и точек эллиптической кривой, в рамках которого
доказано утверждение о длине периода указанной последовательности.
3. Разработаны алгоритмы операций сравнения, сложения и умножения чисел
над простым полем в двух модульной системе остаточных классов.
4. Разработан алгоритм кодирования алфавита точками эллиптической кривой
5. Разработана схема разделения секрета на точках эллиптической кривой и
показана, что разработанная схема является совершенной схемой разделения
секрета.
Как видно из отчетных материалов, все исследовательские задачи по проекту
выполнены полностью с должным качеством.
При плановых показателях публикации в изданиях 2 публикаций по факту
опубликованы 2 публикации.
86
Список использованных источников
1.
Бабенко, М.Г. Классификация криптографических алгоритмов / Бабенко
М.Г., Савченко А.Н. // Актуальные проблемы и инновации в экономике,
управлении,
образовании,
информационных
технология:
Материалы
международной научной конференции. – Ставрополь: 2009. – С. 19-21.
2.
Needham, R.M. Using Encryption for Authentication in Large Networks of
Computers / Needham R.M., Schroeder M.D. // Comm. of the ACM. v21 (12). 1978. P.
993-999.
3.
Балашов, Ю.Х. Модель криптографической системы / Балашов Ю.Х. //
Управляющие системы и машины. Т. 48. №4, 1980. С. 13-18.
4.
Бияшев, Р.Г. Основные направления развития и совершенствования
криптографического закрытия информации / Бияшев Р.Г., Диев С.И., Размахнин
М.К. // Зарубежная радиоэлектроника. №12, 1989. – С. 76-91.
5.
Диева, С.А. Организация и современные методы защиты информации /
Диева, С.А., Шаваева, А.Г. – М.: Концерн «Банковский Деловой Центр», 1998. – C.
472.
6.
Панасенко, С.П. Назначения и структура алгоритмов шифрования /
Панасенко С.П. / Электронные данные. – С. 8. http://www.ixbt.com (20.12.2006).
7.
ГОСТ
28147-89.
Система
обработки
информации.
Защита
криптографическая. Алгоритм криптографического преобразования. — М.:
Госстандарт СССР, 1989. – C. 28.
8.
Kohl, J. The Kerberos Network Authentication Service / Kohl J., Neuman C. /
Электронные данные. – С. 20. http://www.kerberos.info/ (10.09.2004).
9.
Диффи, У.Защищенность и криптостойкость: Введение в криптографию /
Диффи У., Хеллман М.Э. // ТИИЭР. Т. 67. №3, 1979. – С. 71-109.
10.
Гундарь, К.Ю. Защита информации в компьютерных системах/ Гундарь,
К.Ю., Гундарь, А.Ю., Янишевский, Д.А. – К.: Корнейчук, 2000. – C. 152.
11.
Диффи, У. Первые десять лет криптографии с открытым ключом /
Диффи У. // ТИИЭР. Т.76 №5. 1988. – С. 54-74.
87
12.
Баричев, С.Г. Основы современной криптографии / Баричев, С.Г.,
Гончаров В.В., Серов Р.Е. – М.: Горячая линия – Телеком, 2001. – C. 120.
13.
Герасименко,
В.А.
Защита
информации
в
вычислительных,
информационных и управляющих системах и сетях / Герасименко В.А., Размахнин
М.К. // Зарубежная радиоэлектроника. №8. 1985. – С. 41-60.
14.
Тайли, Э. Безопасность персонального компьютера: Пер. с англ. – М.:
ООО «Попурри», 1997. – С. 480.
15.
Герасименко, В.А. Защита информации в автоматизированных системах
обработки данных. В 2-х кн.: Кн. 2. – М.: Энергоатомиздат, 1994. – С. 176.
16.
Герасименко, В.А. Новые направления применения криптографических
методов защиты информации / Герасименко В.А., Скворцов А.А., Харитонов И.Е.
// Зарубежная радиоэлектроника. №12. 1989. – С. 92-101.
17.
Нечаев, А. А. Цикловые типы линейных подстановок над конечными
коммутативными кольцами // Матем. сб. Т. 184. №3, 1993. – C. 21-56.
18.
Дориченко, С.А., Ященко, В.В. 25 этюдов о шифрах. – М: ТЭИС, 1994. –
C. 70.
19.
Молдовян, А.А., Молдовян, Н.А., Советов, Б.Я. Криптография. – СПб.:
Изд-во «Лань», 2000. – C. 224.
20.
Бабенко, М. Г. О точках, относящихся к ряду рациональных чисел на
эллиптической кривой / Бабенко М. Г. // Инфокомуникационные технологии в
науке, производстве и образование: Третья международная научно-техническая
конференция. – Ставрополь, 2008. – С. 222-224.
21.
Lercier, R. Computing isogenies in GF 2 n  . Algorithmic number theory /
Lercier R. // Lecture Notes in Computer Science. v1122. 1996. P. 197-212.
22.
Williams, H. C. A Modification of the RSA Public-Key Encryption Procedure
/ Williams H. C. // IEEE Transactions on Information Theory. v26 (6). 1980. P. 726-729.
23.
Левин, Л. А. Односторонние функции / Левин Л. А. // Пробл. передачи
информ. Т.39. №1, 2003. – С. 103-117.
88
24.
Zn
Koyama, K. New Public-Key Schemes Based on Elliptic Curves over the Ring
/ Koyama K., Maurer U.M., Okamoto T., Vanstone S.A. // Advances in Cryptology.
v91. 1992. Р. 252-266.
25.
Петров, А.А. Компьютерная безопасность. Криптографические методы
защиты. – М.: ДМК, 2000. – C. 448.
26.
Rabin, M. O. Digital Signatures and Public-Key Functions as Intractable as
Factorization / Rabin M. O. // MIT Laboratory for Computer Science, Technical Report.
v212. 1979. P.115-143.
27.
Menezes, A., Oorschot, P., Vanstone, S. Handbook of Applied Cryptography –
CRC Press, 1996. – P. 661.
28.
Win, E. D. On the Performance of Signature Schemes based on Elliptic
Curves / Win E. D., Mister S., Preneer B., Wiener M. // Springer-Verlang Lecture Notes
in Computer Science. v1423. 1998. P. 252-266.
29.
Герасименко, В.А., Малюк, А.А. Основы защиты информации: Учеб.
пособие. – М.: МГИФИ, 1997. – C. 537.
30.
Рябко, Б. Я. Криптографические методы защиты информации: учеб. пос.
для вузов/ Рябко, Б. Я., Фионов, А. Н. – М.: Горячая линия–Телеком, 2005. – C. 229.
31.
Бондарь, В.В. Математические модели периодического обновления
секретной информации в системах активной безопасности / Бондарь В.В. //
Проблемы физико–математических наук: Материалы 46 научно-математической
конференции преподавателей и студентов. – Ставрополь, 2001. – С. 36-41.
32.
Жельников, В. Криптография от папируса до компьютера. – М.: АВF,
1997. – C. 336.
33.
Hallgren, S. Linear congruential generators over elliptic curve. / Hallgren S. //
Cornegie Mellon Univ. 1994. P. 1-10.
34.
Gutierrez, J. Inferring sequences produced by a linear congruential generator
on elliptic curves missing high-order bits / Gutierrez J., Ibeas A. // Designs, Codes and
Cryptography. v41. 2007. P. 199-212.
35.
Gong, G. Linear recursive sequences over elliptic curves / Gong G., Lam C. //
In: Sequences and their applications. 2002. P. 182-196.
89
36.
Тараканов, В. Е. Линейные рекуррентные последовательности на
эллиптических кривых и их применения в криптографии / Тараканов В. Е. // Тр. По
диск. Матем. № 10, 2007. – С. 301-313.
37.
Лидл, Р., Нидеррайтер, Г. Конечные поля: Пер. с англ. В 2-х т.: Т.1. – М.:
Мир, 1988. – C. 430.
38.
Бабенко,
последовательностей
М.Г.
О
выборе
порядка
2
/
коэффициентов
Бабенко
М.Г.
//
для
некоторых
ЕС-
Вестник поморского
университета. Серия Естественные и точные науки. №2, 2010. – С. 78-81.
39.
Михелович, Ш.Х. Теория чисел. – М.: Высшая школа, 1962. – C. 260.
40.
Червяков,
Н.И.,
Бабенко,
М.Г.
Системы
защиты
данных
на
эллиптической кривой. Модулярная арифметика. – M.: LAMBER, 2011. – C. 122.
41.
Бабенко,
М.Г.
Анализ
псевдослучайных
последовательностей
на
эллиптической кривой / Бабенко М.Г., Карнаухова Е.С., Кучуков В.А., Кучеров
Н.Н. // Молодой ученый. Т1 (11). 2011. С. 12-14.
42.
Ростовцев, А. Г., Маховенко, Е. Б. Теоретическая криптография. – СПб.:
АНО НПО «Профессионал», 2005. – C. 720.
43.
Романец, Ю.В., Тимофеев, П.А., Шаньгин, В.Ф. Защита информации в
компьютерных системах и сетях. – М.: Радио и связь, 1999. – C. 328.
44.
Мафтик, С. Механизмы защиты в сетях ЭВМ: Пер. с англ. – М.: Мир,
1993. – C. 216.
45.
Блейкли, Р.Г. Обобщение идеальные схемы, разделяющие секрет, и
матроиды / Блейкли Р.Г., Кабатянский Г.Р. // Проблемы передачи информации. Т33
(3) 1997. С. 102-110.
46.
Червяков, Н.И. Построение системы остаточных классов специального
вида / Червяков Н.И., Бабенко М.Г. // 20 лет нового пути России:
политика,
общество, экономика, международное сотрудничество. Сборник материалов
международной научно-практической конференции Дружбы народов Кавказа. –
Ставрополь, 2011. – C. 416-418.
47.
Бабенко, М. Г. Анализ методов скалярного умножения на эллиптической
кривой / Бабенко М. Г. // Молодой ученый. №4. 2010. С. 24-29.
90
48.
Коблиц, Н. Курс теории чисел и криптографии. – М.:ТВП, 2001. – С. 254.
49.
Лёвин, В. Ю. Кодирование алфавитов точками эллиптических кривых. /
Лёвин В. Ю. // Интеллектуальные системы. № 11. 2007. C. 171-183.
50.
Recommended elliptic curves for federal government use. // Электроные.
данные С. 43. http://csrc.nist.gov/groups/ST/toolkit/documents/dss/NISTReCur.pdf
(20.10.2011).
51.
Чмора, Д. Л. Современная прикладная криптография. – М.: Гелиос АРВ,
2001. – C. 256.
52.
Blake, I.F., Seroussi G., Smart N.P. Elliptic curves in cryptography. – С.:
Cambridge Univ. Press, 1999. – P. 298.
53.
Blakley, G. R. Safeguarding cryptographic keys / Blakley G. R. // Proc. AFIPS
1979 National Computer Conference. v48. 1979. P. 313-317.
54.
Shamir, A. How to Share a Secret / Shamir A. // Comm. ACM. v22 (1). 1979
P. 612-613.
55.
Червяков, Н. И. Пороговая схема разделения секрета на эллиптической
кривой / Червяков Н. И., Бабенко М. Г. // Информационные технологии. №2. 2011.
С. 41-44.
56.
Lee, H.S. A self-pairing map and its applications to cryptography / Lee H.S. //
Applied Mathematics and Computation. v151. 2004. P. 671–678.
57.
Василенко, О.Н. Теоретико-числовые алгоритмы в криптографии. – М.:
МЦНМО, 2003. – C. 326.
58.
Elkies, N.D. Elliptic and modular curves over finite fields and related
computaional issues / Elkies N.D. // Computational perspectives in number theory. v7.
1998. P. 21-76.
59.
Atkin, A.O.L., Morain, F. Elliptic curves and primality proving / Atkin
A.O.L., Morain F. // Math Comp. v61 (203). 1993. P. 29-68.
60.
Болотов, А.А, Гашков С.Б., Фролов А.Б. Элементарное введение в
эллиптическую криптографию: Протоколы криптографии на эллиптических
кривых. – М.:КомКнига, 2006. – C. 280.
91
Download