09 Криптосистемы на эллиптических кривых.pptx
- Количество слайдов: 15
Защита информации Тема 9. Криптосистемы на эллиптических кривых 14. 02. 2018 ИГЭУ. Кафедра ПОКС
Криптосистемы на эллиптических кривых Исполь зование эллиптических кривых в криптографических целях было впервые предложено Коблицом и Миллером в 1985 году. В 1998 году были приняты стандарты США ANSI X 9. 62 и FIPS 186 2, а в 2001 году аналогичный российский стандарт ГОСТ Р 34. 10 2001. Нил Коблиц Neal Koblitz Виктор Миллер Victor Miller Криптографические алгоритмы, основанные на эллиптических кривых имеют более высокую стойкость (по отношению к другим асимметричным алгоритмам) при равной трудоемкости. Это объяс няется тем, что для вычисления обратных функций на эллиптических кривых известны только алгоритмы с экспоненциальным ростом трудо емкости, тогда как для обычных систем предложены субэкспоненциаль ные етоды. В результате м тот уровень стойкости, который достигается, скажем, в RSA при использовании 1024 битовых модулей, в системах на эллиптических кривых реализуется при размере модуля 160 бит. Защита информации. 09 Криптосистемы на эллиптических кривых 2
Математические основы Кривая третьего порядка Е , задаваемая уравнением вида Е: Y 2 = X 3 + а. Х + b, (1) называется эллиптической кривой. Поскольку Y = ± Х 3 + а. Х + b , график кривой симметричен от носительно оси абсцисс. Чтобы найти точки его пересечения с осью абсцисс, необходимо решить кубическое уравнение, используя известные формулы Кардано. X 3 + а. Х + b = 0, (2) Дискриминант этого уравне ния (3) Кривая на рис. б) называется сингулярной. a) D < 0; б) D = 0; 4 a 3 + 27 b 2 ≠ 0. (4) в) D > 0. 3
Композиция точек R = Р + Q Возьмем две точки Р = (x 1, y 1), Q = (x 2, y 2) Е и проведем через них наклонную прямую. Эта прямая пересечет кривую в точке R'. Точку R = (хз, уз) получим путем измене ния знака ординаты точки '. R Будем обозначать описанную операцию композиции точек следу ющим образом: R = Р + Q. Пусть точка Р Е имеет координаты (х, у). Тогда точку с ко ординатами (х, у), будем обозначать Р. Будем считать, что вер тикальная прямая, проходящая через Р и Р, пересекает кривую в бесконечно удаленной точке О, т. е. Р + ( -Р) = O. По соглашению Р + О = О + Р = Р. Точка О будет играть роль нуля в Защита информации. 08 Системы электронной подписи операциях на эллиптической кривой. 4
Удвоение точки R = Р + Р = [2]Р Теперь представим, что точки Р и Q сближаются друг с другом и, наконец, сливаются в одну точку Р = Q = (x 1, y 1). Тогда композиция R = (хз, yз) = Р+Q = Р+Р будет получена путем проведения касательной в точке Р и отражения ее второго пересечения с кривой R' относительно оси абсцисс. Используем следующее обозначение: R = Р + Р = [2]Р. Композицию точек часто называют сложением точек. Удобно ввести следующие обозначения: [m]P = Р + Р+…+ Р (m слагаемых), [0]Р = О, [-т]Р = - ( Р + Р+…+ Р) (m слагаемых). Защита информации. 09 Криптосистемы на эллиптических кривых 5
Формулы для x 3 и y 3 Обозначим через k угловой коэффициент прямой. Тогда формулы для вычисления координат точки R: x 3 = k 2 – x 1 – x 2, y 3 = k ( x 1 – x 3 ) – y 1, (5) (6) (7) (8) В криптографии используется кривая: Ер(a, b): Y 2 = X 3 + а. Х + b (mod p). (9) В уравнении (9) переменные X, Y и коэффициенты a, b, где a, b < р , принимают целочисленные значения, а все вычисления выполняются по модулю р. В соответствии с (4) на a, b накладывается ограничение (4 а 3 + 27 b 2) mod р ≠ 0. (10) Количе ство очек в будем обозначать #Ер(а, b). т Защита информации. 09 Криптосистемы на эллиптических кривых 6
Элиптические кривые. Пример Рассмотрим кривую: E 7(2, 6): Y 2 = Х 3 + 2 Х + 6 (mod 7). (11) Проверим условие (10): 4 • 23 + 27 • 62 = 4 • 1 + 6 • 1 = 3 ≠ 0 (mod 7). Данная кривая несингулярна. Найдем какую нибудь (случайную) точку. Пусть x = 5. Тогда Y 2 = 5 3 + 2 • 5 + 6 = 6 + 3 + 6 = 1 (mod 7) у = 1 (mod 7) или у = 1 = 6 (mod 7). Мы нашли сразу две точки: (5, 1) и (5, 6). Найдем еще пару точек путем вычисления композиции. Вначале найдем [2](5, 1). Используя (8), (6) и (7), вычисляем Мы получили [2](5, 1) = (4, 6) (можно убедиться, что полученная точка лежит на кривой, подставив ее координаты в уравнение (11) ). Найдем еще одну точку [3](5, 1) = (5, 1) + (4, 6). Используя (5), (6) и (7), вычисляем х3 = 22 – 5 – 4 = 2 (mod 7), у3 = 2 · (5 – 2) – 1 = 2 · 3 – 1 = 5 (mod 7). Мы получили [3](5, 1) = (2, 5). Защита информации. 08 Системы электронной подписи Итак, мы нашли четыре точки. 7
ЭЦП на эллиптической кривой (ГОСТ Р 34. 10‑ 2001) Данный метод полностью аналогичен описанному ранее методу ГОСТ Р 34. 10 94, но возведение в степень заменяется операцией композиции на кривой. Для сообщества пользователей выбирается общая эллиптическая кривая Ep(a, b) и точка G на ней, такая, что G, [2]G , [3]G, . . . , [q]G суть все различные точки множества Ep(a, b), и q = #Ер(а, b), причем [q]G = О. Число точек на кривой, при надлежащем выборе параметров р, а и b, может быть простым числом, #Ер(а, b) = q. В этом случае любая точка (кроме О) являет ся генератором всего множества точек. Длина числа q берется равной 256 бит. Каждый пользователь U выбирает случайное число d. U (секретный ключ), 0
ЭЦП на эллиптической кривой (ГОСТ Р 34. 10‑ 2001). Алгоритм Чтобы подписать сообщение m пользователь А делает следующее: 1) вычисляет значение хеш функции сообщения h = h(m); 2) выбирает случайно число k , 0 < k < q ; 3) вычисляет P = [k]G = (x, у) ; 4) вычисляет r = х mod q (при r = 0 возвращается к шагу 2); 5) вычисляет s = (k h + r d. А) mod q (при s = 0 возвращается к шагу 2); 6) подписывает сообщение парой чисел (r, s). Для проверки подписанного сообщения (m; r, s) любой пользователь, знающий открытый ключ QA , делает следующее: 1) вычисляет h = h(m); 2) убеждается, что 0 < r, s < q; 3) вычисляет u 1 = s · h-1 mod q и u 2 = -r · h-1 mod q; 4) вычисляет композицию точек на кривой P = [u 1]G + [u 2]QA = (х, у) и если Р = О , отвергает подпись; 5) если х mod q = r, принимает подпись, в противном случае отвергает ее. Защита информации. 09 Криптосистемы на эллиптических кривых 9
Эффективная реализация операций. Вычисление m-кратной композиции ВХОД: точка Р, число m = (mt mt-1…m 1)2. ВЫХОД: Q = [m]P. 1 Q ← O; 2 FOR i = t, t-1, …, 1 DO 3 Q ← [2]Q; 4 IF mi = 1 THEN Q ← Q + P; 5 RETURN Q. Данный алгоритм требует t удвоений и в среднем t/2 сложений. Пример: Вычислим [21]P. Здесь 21 = (10101)2 , t = 5. i 5 4 3 2 1 mi 1 0 1 : : : Q O, Q [2]Q = [2]P ; Q [2]Q = [4]P, Q [2]Q = [10]P ; Q [2]Q = [20]P, Q Q + P = P ; Q Q + P = [5] P ; Q Q + P = [21] P. Вместо 20 сложений было выполнено 4 удвоения и 3 сложения. Защита информации. 09 Криптосистемы на эллиптических кривых 10
Сложение в проективном представлении При вычислении композиции можно избавиться от вычисления инверсии, если в качестве координат использовать рациональные числа, производя вычисления отдельно с числителем и знаменателем. Наиболее выгодным оказалось взвешенное проективное представление координат: Формулы вычисления x 3 и y 3: Защита информации. 09 Криптосистемы на эллиптических кривых 11
Сложение в проективном представлении Алгоритм: ВХОД: P 1 = (X 1, Y 1, Z 1), P 2 = (X 2, Y 2, Z 2), P 1, P 2 ≠ O, P 1 ≠ ±P 2 ВЫХОД: P 3 = (X 3, Y 3, Z 3) = P 1 + P 2 λ 1 = X 1 Z 22 λ 2 = X 2 Z 12 λ 3 = λ 2 – λ 1 λ 4 = Y 1 Z 23 λ 5 = Y 2 Z 13 λ 6 = λ 5 – λ 4 λ 7 = λ 1 + λ 2 λ 8 = λ 4 + λ 5 Z 3 = Z 1 Z 2 λ 3 X 3 = λ 62 – λ 7λ 32 λ 9 = λ 7λ 32 – 2 X 3 Y 3 = (λ 9λ 6 – λ 8λ 33) / 2 Пример. P 1 = (5, 1, 1), P 2 = (4, 6, 1) λ 1 = 5 · 1 = 5, λ 2 = 4 · 1 = 4, λ 3 = 4 – 5 = 6, λ 4 = 1 · 1 = 1, λ 5 = 6 · 1 = 6, λ 6 = 6 – 1 = 5, λ 7 = 5 + 4 = 2, λ 8 = 1 + 6 = 0, Z 3 = 1 · 6 = 6, X 3 = 52 – 2 · 62 = 2, λ 9 = 2 · 62 – 2 · 2 = 2 – 4 = 5, Y 3 = (5 · 5 – 0 · 63) / 2 = 25 / 2 = (25+7) / 2 = 16 = 2. P 3 = (2, 2, 6) = (2/62, 2/63) = (2· 6 2, 2· 6 3) = (2· 6· 6, 2· 6· 6· 6) = (2· 1, 2· 6) = (2, 5). Защита информации. 09 Криптосистемы на эллиптических кривых 12
Удвоение в проективном представлении Формулы вычисления x 3 и y 3: Алгоритм: ВХОД: P 1 = (X 1, Y 1, Z 1), P 1≠ O ВЫХОД: P 3 = (X 3, Y 3, Z 3) = [2]P 1 λ 1 = 3 X 12 + a. Z 14 λ 2 = 4 X 1 Y 12 Z 3 = 2 Y 1 Z 1 X 3 = λ 12 2λ 2 λ 3 = 8 Y 14 Y 3 = λ 1(λ 2 – X 3) – λ 3 Защита информации. 09 Криптосистемы на эллиптических кривых 13
Пример параметров кривой В контрольном примере в ГОСТ Р 34. 10‑ 2001 приводятся следующие значения параметров: Модуль эллиптической кривой: p = 8000000000000000000000000000000431 16 Коэффициенты эллиптической кривой: a = 716 b = 5 FBFF 498 AA 938 CE 739 B 8 E 022 FBAFEF 40563 F 6 E 6 A 3472 FC 2 A 514 COCE 9 DAE 23 B 7 E 16 Порядок циклической подгруппы точек эллиптической кривой: q = 8000000000000000150 FE 8 A 1892976154 C 59 CFC 193 ACCF 5 B 3 16 Координаты порождающей точки G: x. G = 216 y. G = 8 E 2 A 8 A 0 E 65147 D 4 BD 6316030 E 16 D 19 C 85 C 97 FOA 9 CA 267122 B 96 ABBCEA 7 E 8 FC 8 16 Секретный ключ подписи: d = 7 A 929 ADE 789 BB 9 BE 10 ED 359 DD 39 A 72 C 11 B 60961 F 49397 EEE 1 D 19 CE 9891 EC 3 B 28 16 Окрытый ключ проверки: x. Q= 7 F 2 B 49 E 270 DB 6 D 90 D 8595 BEC 458 B 50 C 58585 BA 1 D 4 E 9 B 788 F 6689 DBD 8 E 56 FD 80 B 16 y. Q= 26 F 1 B 489 D 6701 DD 185 C 8413 A 977 B 3 CBBAF 64 D 1 C 593 D 26627 DFFB 101 A 87 FF 77 DA 16 Защита информации. 08 Системы электронной подписи 14
Литература 1. ГОСТ Р 34. 10 2001. Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи [http: //www. e nigma. ru/stat/gost/ ]. Защита информации. 08 Системы электронной подписи 15


