
- •Раздел первый
- •Раздел второй
- •Раздел третий
- •Раздел четвертый
- •Раздел пятый
- •Раздел шестой
- •Раздел седьмой
- •Из последнего равенства аналогичным образом для некоторого целого неотрицательно-
- •Раздел восьмой
- •Раздел девятый
- •Решаем четыре системы сравнений
- •Раздел десятый
- •Раздел одиннадцатый
- •Раздел двенадцатый
- •Раздел тринадцатый
- •Раздел четырнадцатый
- •Раздел пятнадцатый
- •Раздел шестнадцатый
Раздел двенадцатый
Целью настоящего занятия является описание систем с открытым ключом, использующим конечную абелеву группу точек эллиптической кривой Е, определенной над полем F . Легко проследить аналогию с группой F - мультипликативной группой указанного конечного поля, где сложность задачи дискретного логарифмирования позволила построить систему с открытым ключом (например, систему ЭльГамала).
1.
Кратность
точек.
Операция аналогичная умножению двух
элементов группы F
имеется
и в группе точек эллиптической кривой
Е, определенной над полем F
-
сложение
точек. Таким образом, операцией,
аналогичной возведению в k-ю
степень в F
,
является “умножение” точки Р
Е
на целое число k.
Возведение в k-ю
степень в конечном поле может быть
выполнено с помощью бинарного метода
и требует
битовых
операций. Подобным образом покажем, что
кратное kP
E
может быть найдено с помощью
битовых операций при использовании бинарного метода (итерационного удваивания).
Пример. Чтобы найти 100Р, пишем 100Р = 2(2(Р+2(2(2(Р+2Р))))) и утверждаем, что
вычисления требуют 6 удваиваний и 2 сложений точек кривой.
Теорема. Пусть эллиптическая кривая Е определена с помощью уравнения Вейерштрасса (уравнение (11.1) из предыдущего занятия) над конечным полем F . Тогда для произвольной точки Р Е координаты точки kP могут быть вычислены с помощью битовых операций.
Доказательство. Отметим, что требуется по меньшей мере 20 действий в F (cло-
жение, вычитание, умножение и деление), чтобы вычислить координаты суммы двух то
чек,
используя выражения (11.2)-(11.3). Так как
каждое такое сложение (или удвоение)
может быть выполнено за время
,
то при том, что бинарный метод требует
шагов,
получаем, что для вычисления координат
точки kP
достаточно
битовых
операций.
Замечания.
1) Оценка времени в теореме не является наилучшей, особенно тогда, когда конечное поле имеет характеристику р = 2. Удовлетворимся же, однако, этой оценкой, возникающей в простейших алгоритмах, выполняющих действия в конечных полях.
2) Если известно число N точек нашей эллиптической кривой Е, и если k > N, то по-
скольку
NP
= O,
можно при вычислении kP
заменить число k
его остатком от деления на N;
в таком случае можем заменить прежнюю
оценку времени работы на
(напомним,
что
.
Существует алгоритм, восходящий к Rene
Schoof’у,
вычисления N
с помощью
битовых операций.
2.
Кодирование
открытых текстов.
Требуется
закодировать открытый текст с помощью
точек некоторой эллиптической кривой,
определенной над конечным полем F
.
Требуется сделать это в соответствии
с определенной регулярной процедурой
так, чтобы открытый текст m
(который можно считать натуральным
числом из некоторого промежутка) мог
быть легко восстановлен по координатам
соответствующей ему точки Р
.
Отметим, что кодирование не то же самое,
что шифрование. В дальнейшем опишем
способы шифрования точек Р
,
соответствующих открытым текстам.
Причем важно, чтобы пользователи системы
могли бы восстанавливать m
при расшифровании соответствующих
криптограмм.
Здесь нужно вспомнить о двух вещах. Во-первых, неизвестно на сегодняшний день ни одного полиномиального (от log q) детерминированного алгоритма, который способен выписать большое число точек произвольной эллиптической кривой Е над полем F . Однако, как увидим в дальнейшем, существует вероятностный алгоритм с очень малой вероятностью неудачи. Во-вторых, не достаточно генерировать случайные точки на кривой Е: чтобы закодировать большое число возможных открытых текстов m, надо уметь генерировать систематическим образом точки как-то связанные с m, например, так, чтобы координата х такой точки была бы связана какой-то простой зависимостью с числом m.
Рассмотрим
теперь один из возможных вероятностных
способов кодирования открытых текстов
с помощью точек эллиптической кривой,
определенной над полем F
,
причем число
-
большое (и нечетное). Пусть
будет
достаточно большим натуральным числом,
чтобы вероятность неудачи порядка
могла нас удовлетворить при кодировании
единицы открытого текста m;
на практике
или
в худшем случае
должно
хватить. Предположим, что единицы текста
m
являются числами из промежутка
.
Допустим также, что наше конечное поле
выбрано так, что
.
Целое число в пределах от 1 до
запишем в виде
,
где
,
и установим определенное взаимно
однозначное соответствие между такими
числами и элементами поля F
.
Например, запишем каждое такое число
как r-цифровое
в позиционной системе с основанием р
и считаем эти r
цифр, трактуемые как элементы Z/pZ,
коэффициентами многочлена степени r-1,
отвечающего определенному элементу
поля F
.
Затем число (
,
отвечающее многочлену
,
который, будучи взятым по модулю
некоторого неприводимого многочлена
над F
,
назовем элементом поля F
.
Далее,
для данного числа m
и произвольного числа
получим элемент х
поля F
,
отвечающий числу
Для такого элемента х
вычислим правую часть уравнения
и
пробуем найти корень квадратный из
f(x),
используя известный алгоритм для поиска
квадратного корня по модулю р.
Его можно без изменения перенести на
произвольное поле F
.
Правда, чтобы его применить, требуется
определенный элемент g,
который не является квадратом в этом
поле; такие элементы легко находятся с
помощью вероятностного алгоритма. Если
найден такой элемент y,
что
то берем Р
=
(x,
y).
Если окажется, что элемент f(x)
не является
квадратом, то повторяем выбор х
и проделываем все снова. Если же найдено
х
такое, что f(x)
есть квадрат, то так как j
не больше
,
то имеем возможность восстановить
m
по координатам
точки (x, y)
с помощью соотношения
,
где
есть
число, отвечающее элементу х
в описанном выше взаимно однозначном
соответствии между целыми числами и
элементами поля F
.
Поскольку f(x)
является квадратом для примерно 50%
различных возможных х,
вероятность того, что с помощью этого
метода не будет построена точка Р
,
координата которой х
отвечает числу
,
лежащим между
и
,
есть около
.
(Точнее, вероятность того, что
является
квадратом есть N/2q;
однако, N/2q
очень близко к ½.)
3. Дискретный логарифм на кривой Е. Ранее обсуждались криптосистемы с открытым
ключом на основе сложности задачи дискретного логарифмирования в мультипликативной группе конечного поля. Теперь то же сделаем для аддитивной группы точек эллиптической кривой Е над конечным полем F .
Определение. Порядок группы точек эллиптической кривой над конечным полем F называется порядком кривой этой кривой.
Определение. Если Е есть эллиптическая кривая над полем F и В есть точка этой кривой, то задача дискретного логарифмирования на кривой Е (по основанию В) состоит в нахождении для данной точки Р Е целого числа х Z такого, что хВ = Р, если такое число х существует.
Возможно, задача дискретного логарифмирования на эллиптической кривой окажется более трудной, чем аналогичная задача для дискретного логарифма в конечном поле. Об этом говорит то, что лучшие алгоритмы, разработанные для конечных полей, не работают в случае эллиптических кривых.
До 1990 года единственными алгоритмами, находящими дискретный логарифм на эллиптической кривой, были алгоритмы, действующие в произвольной группе, не использующие специальной структуры этой группы. Это были алгоритмы, работающие за экспоненциальное время при условии, что порядок группы делится на большое простое число.
Опишем теперь криптографические системы аналогичные системам с открытым ключом, основанные на задаче дискретного логарифмирования, но теперь для группы точек эллиптической кривой Е, определенной над конечным полем F .
4. Система аналогичная системе выработки ключа Диффи-Хеллмана. Допустим, что Алиса и Боб хотят согласовать ключ, который будут использовать затем в некоторой криптографической системе. Во-первых, выбирают (не делая из этого тайны) конечное поле F и эллиптическую кривую Е над этим полем. Их ключ будет сконструирован из определенной случайной точки Р на этой кривой. Если, например, выбрать случайную точку Р Е, то ее координата х будет случайным элементом поля F и может быть представлена в виде r-цифрового целого числа, записанного в позиционной системе с основанием р (где ), которое было бы ключом в их классической криптографической системе. (Слово «случайная» имеет то значение, что выбор ключа является вычислительно произвольным, и нет способа предвидеть, который из возможных ключей окончательно выбран). Их задачей является выбор точки Р таким образом, чтобы сами сообщения между ними могли быть открытыми, и никто, кроме них, не смог бы догадаться, какой точкой является Р.
Алиса и Боб, во-первых, явным образом выбирают точку В Е - будущее «основание». Точка В выполняет роль порождающего элемента g в мультипликативной группе конечного поля в системе Диффи-Хеллмана. Не будем рассматривать случай, когда точка В является порождающим элементом группы точек кривой Е. В действительности эта группа может не быть циклической. Даже если она циклична, то уклоняемся от доказательства того, что В есть образующий элемент (или даже вычисления числа N точек, которое вообще можем не знать). Требуется, однако, чтобы подгруппа, образованная В была большой, лучше всего, если ее мощность будет того же порядка, что и мощность самой группы Е. Теперь же допустим, что В выбрано и является известной точкой кривой Е, порядок которой очень большой (или точно равен N, или является большим делителем числа N).
Чтобы сгенерировать ключ, Алиса, во-вторых, выбирает случайное целое число а, которое имеет порядок q (или примерно такое же большое, как N ) и держит его в секрете. Далее, вычисляет точку аВ Е и оглашает ее. Боб делает то же самое: выбирает случайное число b и оглашает публично точку bB E. Тайным ключом, который теперь будет использоваться, является Р = аbB E. Оба могут вычислить этот ключ. Например, Алиса знает bB (которую знают все) и знает свое тайное число а. В то время, как третье лицо знает только aB и bB. Таким образом, без решения задачи дискретного логарифмирования – нахождения а, когда известны В и аВ (или нахождения b, когда известны В и bB) – не позволяют узнать abB на основе только аВ и bB.
5. Система аналогичная системе ЭльГамала. Это криптосистема с открытым ключом для пересылки сообщения Р . Так же, как и в описанном выше случае системы выработки ключа, начинаем с выбора фиксированного конечного поля F , эллиптической кривой над этим полем и точки В Е (что считается общеизвестным). Не обязательно знать число точек кривой N. Каждый пользователь системы выбирает случайное целое число а, которое держит в тайне от остальных, вычисляет и предает огласке точку аВ.
Чтобы
выслать Бобу сообщение Р
,
Алиса выбирает случайное целое число
k
и пересылает пару точек (kB,
P
B)),
где
В
есть открытый ключ Боба. Чтобы прочитать
сообщение, Боб умножает первую точку
на свой секретный ключ
и вычитает полученное от другой точки:
Р
В)
-
В)
= Р
.
Таким
образом, Алиса высылает замаскированную
точку Р
вместе с «подсказкой» kB,
достаточной для освобождения от “маски”
В
для каждого, кто знает секретный ключ
.
Третьи лица, которые умеют решать задачу
дискретного логарифмирования на кривой
Е, смогут, очевидно, определить
из известных всем точек В и
В.
6. Выбор кривой и точки. Существует много способов выбора эллиптической кривой и
(в
случае систем Диффи-Хеллмана и ЭльГамала)
точки В на ней. Рассмотрим вариант
случайного
выбора пары (Е, В).
Когда определено большое конечное поле
F
,
можно выбрать одновременно Е и В = (х,
y)
Е
следующим образом. (Положим, что поле
имеет характеристику > 3, а значит
эллиптическая кривая описана уравнением
(11.1) (см. з.11). Выберем, во-первых, три
случайных элемента в поле F
:
x,
y
и а.
Далее, положим
Проверяем, что многочлен
не имеет кратных корней, что соответствует
условию
(Если это условие не выполняется, то
выбираем иные x,
y
и а).
В качестве В берем точку
Тогда В является точкой эллиптической
кривой с уравнением
Если нужно знать число N точек кривой, то существует весьма доступный метод вычисления N. Первым алгоритмом, работающим за полиномиальное время и вычисляющий число точек кривой Е, был открыт R. Schoof’ом. Алгоритм Schoof’а является даже детерминированным. Идея, на которую он опирается, состоит в том, чтобы найти остатки от деления числа точек кривой Е на различные простые числа l, меньшие определенного ограничения. Atkins выработал несколько иной метод, относительно которого нет уверенности в его полиномиальности, однако который работает очень хорошо на практике. В итоге этих усилий стало возможным вычисление порядка произвольной эллиптической кривой над полем F , где q, к примеру, - 50 цифровое число, являющееся степенью простого числа.
Нужно заметить, что хотя использование системы Диффи-Хеллмана или системы ЭльГамала не требуют знать число N, однако на практике требуется, чтобы система была безопасной, а безопасность таких систем зависит от того, имеет ли число N большой простой делитель. Если N является произведением малых простых чисел, то можно использовать метод Силвера-Полига-Хеллмана для решения задачи дискретного логарифмирования. Заметим, что метод Силвера-Полига-Хеллмана переносится на случай задачи о дискретном логарифмировании в произвольной конечной абелевой группе. Таким образом, требуется знать, не является ли число N произведением малых простых чисел, и не ясно, можно ли об этом узнать без вычисления самого числа N.
7. Порядок точки В. Каковы шансы на то, что “случайная” точка В на “случайной” эллиптической кривой является образующим элементом. Как уже говорилось выше, для безопасности вышеописанных криптографических систем не является необходимым то условие, чтобы точка В была образующей. Требуется только, чтобы в циклической подгруппе, порожденной элементом В, задача дискретного логарифмирования была бы трудной для решения. Так будет, т.е. любой из известных методов решения задачи дискретного логарифмирования будет очень слаб, если порядок В будет делиться на очень большое простое число, например, такое, что порядок его величины будет такой же большой, как и у N.
Определенной гарантией того, что выбор В удачен, - и что точка В генерирует эллиптическую кривую – является выбор нашей эллиптической кривой и конечного поля таким образом, чтобы число N точек кривой было простым. Тогда каждая точка В О будет порождающей. Далее, если применять описанный выше метод, то для данного поля F следует искать пару (Е, В) до тех пор, пока не найдем такую пару, для которой число точек кривой Е есть число простое (что можно проверить при помощи тестов на простоту).
Замечание. Чтобы группа точек кривой Е mod p для большого простого числа р могла иметь порядок N простым числом, нужно чтобы группа точек кривой Е была группой без кручения, т.е. не имела точек конечного порядка за исключением точки О. В противном случае число N делится на порядок подгруппы кручения.
Задача.
ПустьЕ
будет эллиптическая кривая с уравнением
определенная над
полем,
имеющем р = 751 элементов. (Замена переменных
вида
приводит это уравнение к виду (11.1)
(см.з.11)). Эта кривая имеет N
= 727 точек. Допустим, что единицами
открытого текста являются цифры 0-9 и
буквы A-Z,
которые занумерованы числами от 10 до
35. Пусть
(а) Используя методы, описанные в тексте, записать сообщение «STOP007» в виде
набора семи точек кривой.
(b) Раскодировать набор точек (361, 383), (241, 605), (201, 380), (461, 467), (581, 395) и получить соответствующее сообщение.
(c) Применяя систему аналогичную системе ЭльГамала на основе эллиптических кривых, требуется переслать сообщение из задачи (а), где В = (0, 0). Допустим, что ключом сообщения есть точка (201, 380), а набором случайных чисел k (по одному на каждую единицу текста) есть 386, 209, 118, 589, 312, 483, 335. Какой набор из семи пар точек предстоит переслать?