Автор работы: Пользователь скрыл имя, 27 Мая 2013 в 10:01, задача
1. Для заданного M определить значения a и b, которые позволяют построить эллиптическую группу EM(a, b).
2. Для найденных в задании 1 параметров сгенерировать все элементы эллиптической группы EM(a, b).
3. Реализовать алгоритм обмена ключами для эллиптической группы EM(a,b).
4. Разработать алгоритм цифровой подписи на основе эллиптической группы EM(a, b).
Параметр модуля М является входным данным и изменяется от 47 до 79
Эллиптическая кривая над множеством действительных чисел может быть определена как набор точек (x, y), удовлетворяющих уравнению эллиптической кривой вида y2 = x3 + ax + b (x, y, a и b – действительные числа), а также некоторый элемент O, называемый неопределенным (нулевым) элементом (рис. 15).
Рис. 15. Эллиптическая кривая y2 = x3 + x + 1
По определению, эллиптическая кривая обладает следующим свойством: если три ее точки лежат на одной прямой, то их сумма равна O. Это свойство позволяет описать правила сложения и умножения точек эллиптической кривой.
Эллиптическая кривая может быть использована для построения эллиптической группы, если ее параметры a и b удовлетворяют соотношению 4a3 + 27b2 ≠ 0 (mod M), где М – простое число, a < M и b < M.
Эллиптическая группа EM(a,b) представляет собой набор точек (x, y) с целыми положительными координатами, x < М и y < М, которые удовлетворяют соотношению y2 = x3 + ax + b (mod M).
Алгоритм формирования элементов эллиптической группы:
Пример. Пусть a = 1, b = 0 и M = 23, тогда y2 = x3 + x. Так как
4∙13 + 27∙12 = 8 ≠ 0 (mod 23), то можно построить группу E23(1,1). Существуют 23 точки, которые
удовлетворяют уравнению группы, а именно
(0,0) (1,5) (1,18) (9,5) (9,18) (11,10) (11,13) (13,5) (13,18) (15,3)
(15,20) (16,8) (16,15) (17,10) (17,13) (18,10) (18,13) (19,1) (19,22)
(20,4) (20,19) (21,6) (21,17). Заметим, что для каждого
значения x существует по две точки
с симметрией относительно у = 11,5. В случае эллиптических
кривых над действительными числами для
каждой точки имеется отрицательная, отображаемая
относительно оси х. В случае использования
конечной эллиптической группы отрицательные
значения координаты y берутся по модулю, в результате
чего получаются положительные координаты: –P = (xP, (–yP mod M)). Например, если P = (1,5), то –P = (1, (–5 mod 23)) = (1,18).
Рассмотрим алгоритм
сложения точек эллиптической группы.
Пусть
Р = (x1, y1) и Q = (x2, y2). Тогда P + Q = (x3, y3), где x3 = λ2 – x1 – x2 (mod M) и
y3 = λ × (x1 – x3 – y1) (mod M), а
|
если P ≠ Q, |
если P = Q. |
Число λ – угловой коэффициент секущей, проведенной
через точки
Р = (x1,y1) и Q = (x2, y2). При Р = Q секущая превращается
в касательную, чем и объясняется наличие
двух формул для вычисления λ.
Пример. Пусть эллиптической группа задана уравнением y2 = x3 + 9x + 17 mod 23. Найдем в ней значение произведение 2P=P+P для точки P = (16, 5).
λ = (3xP2 + a)/(2yP) mod M = (3∙162+9)/(2∙5) mod 23;
тогда 10λ = 18 mod 23, отсюда:
λ = 18∙10j(23) – 1 mod 23 = 18∙1021 mod 23 =11;
xR = λ2 – 2xP mod M = (112 – 2∙16) mod 23=20;
yR = –yP+ λ(xP – xP) mod M= –5 + 11∙(16 – 20) mod 23= –49 mod 23= 20.
В результате получаем 2P = (20,20).
Умножение точек эллиптической группы на число определяется аналогично умножению для эллиптических кривых как многократное сложение точки с собой. Если вычислять P + P + P + … достаточно долго, то, т.к. число точек конечно, в конце концов, должен быть получен результат O. Всегда можно найти такие a и b (b > a), что aP = bP. Это означает, что cP = O , где c = b – a. Наименьшее c, для которого это справедливо, называется порядком точки.
Использование эллиптических
групп в криптографических
Прежде всего, задается большое простое число M, а также параметры a и b для определения эллиптической группы EM(a,b). Затем выбирается генерирующая точка G такая, чтобы с, для которого cG = O, было большим простым числом с «хорошими алгебраическими свойствами». Размер числа с на практике довольно велик (2254 < с < 2256). Параметры EM(a,b) и G открыты для всех.
Процедура обмена ключами между пользователями A и B:
Для взлома третья сторона должна вычислить k (nA или nB) на основании G и kG, т.е. решить задачу дискретного логарифмирования в эллиптической группе.
Пример. Пусть M = 211, E211(0,–4) и G = (2,2). Легко проверить, что 241G = O, а 241 является простым числом.
Алгоритм ECDSA (Elliptic Curve DSA) является аналогом алгоритма цифровой подписи DSA (Digital Signature Algorithm), реализованным с помощью эллиптических групп. Рассмотрим эллиптическую группу EM(a,b) и генерирующую точка G с порядком q, причем q простое число.
Пользователи A генерируют свои ключи: секретный nA и открытый PA, где PA= nAG. Для постановки цифровой подписи под сообщением m пользователь A:
Для проверки цифровой подписи пользователь B использует ту же эллиптическую группу EM(a,b), генерирующую точку G, открытый ключ PA и хэш-функцию h.
Особое достоинство криптосистем на эллиптических кривых состоит в том, что по сравнению с системами на основе алгоритма RSA они обеспечивают существенно более высокую стойкость при равной трудоемкости или, наоборот, существенно меньшую трудоемкость при равной стойкости. В результате тот уровень стойкости, который достигается в RSA при использовании 1024-битовых модулей, в системах на эллиптических кривых реализуется при размере модуля 160 бит, что обеспечивает более простую как программную, так и аппаратную реализацию.
Информация о работе Криптосистемы на основе эллиптических кривых