SlideShare a Scribd company logo
Применение эллиптических
кривых в криптографии
Поляков Андрей
КЭ-120
План доклада
• Эллиптические кривые: что это? (10 мин)
• Алгоритмы шифрования на эллиптических
кривых (краткий экскурс + пример
дешифровки) (10 мин)
• Эллиптические кривые с подобранными
параметрами (10 мин)
• Формирование ЭЦП (10 мин)
Эллиптические кривые
Эллиптическая кривая над полем K – это множество точек (x,y),
удовлетворяющих уравнению
𝑦2
+ 𝑎1 𝑥𝑦 + 𝑎3 𝑦 = 𝑥3
+ 𝑎2 𝑥2
+ 𝑎4 𝑥 + 𝑎6
вместе с точкой на бесконечности.
Эллиптическую кривую над полем вещественных чисел без особых
точек будем обозначать E(a,b).
Откуда a и b? Как узнать, есть ли особые точки?
Характеристикой поля K называется наименьшее ненулевое
натуральное число n, такое, что 𝑛 ∙ 1 = 0, если же такого n не
существует, то характеристика равна 0.
Если характеристика равна 2, то эллиптическая кривая с помощью
замены координат может быть приведена к виду 𝑦2 + 𝑦 = 𝑥3 + 𝑎𝑥 + 𝑏
Если характеристика равна 3, то эллиптическая кривая приводится к
виду 𝑦2
= 𝑥3
+ 𝑎2 𝑥2
+ 𝑎4 𝑥 + 𝑎6
Если характеристика поля не равна 2 или 3, то уравнение с помощью
замены координат приводится к канонической форме:
𝑦2 = 𝑥3 + 𝑎𝑥 + 𝑏 (*)
Задача: нужно иметь возможность найти касательную к точкам
эллиптической кривой, поэтому будем рассматривать только кривые без
особых точек.
Алгебраически это значит, что дискриминант Δ = −16(4𝑎3
+ 27𝑏2
) не
должен быть равен нулю.
Если кривая не имеет особых точек, то ее график имеет две части, если
дискриминант положителен, и одну – если отрицателен.
Пример:
Δ = 1728 Δ = −368
Имеют ли особые точки кривые:
?
Имеют ли особые точки кривые:
да
Δ = 0
да
Δ = 0
Группа точек эллиптической кривой
Пусть 𝐸 𝑎, 𝑏 эллиптическая кривая, заданная уравнением 𝑦2
= 𝑥3
+ 𝑎𝑥 + 𝑏,
над полем вещественных чисел. Выберем две произвольные точки на этой
кривой 𝑃 = 𝑥 𝑃, 𝑦 𝑃 , Q = 𝑥 𝑄, 𝑦 𝑄 ∈ 𝐸(𝑎, 𝑏). Рассмотрим множество точек
кривой 𝐸 𝑎, 𝑏 и точку 𝑂 – точку, удаленную на бесконечности. Потребуем,
чтобы сумма точек эллиптической кривой, лежащих на одной прямой являлась
нулем:
𝑃 + 𝑄 + 𝑅 = 𝑂
Определим точку 𝑂 как тождественный элемент по сложению («нулевой
элемент») группы точек.
Порядком точки P на эллиптической кривой 𝐸 𝑎, 𝑏 называется такое
минимальное число 𝑛 ∈ 𝑁, что:
𝑛𝑃 = 𝑃 + 𝑃 + … + 𝑃 = 𝑂
n
(**)
В случае, если такого n не существует, говорят о точке бесконечного порядка.
P и –P имеют одинаковые x-координаты, а их y координаты различаются
только знаком, т.е.:
− 𝑥, 𝑦 = (𝑥, −𝑦)
Из уравнения элиптической кривой (*) сразу следует, что (𝑥, −𝑦) – также
точка на 𝐸 𝑎, 𝑏 . Из (**) следует, что P + Q = -R. Найдем координаты –R.
Пусть дана 𝐸 𝑎, 𝑏 над полем K (чья характеристика не равна ни 2, ни 3) и
точки 𝑃 = 𝑥 𝑃, 𝑦 𝑃 , Q = 𝑥 𝑄, 𝑦 𝑄 ∈ 𝐸(𝑎, 𝑏). Допустим, что 𝑥 𝑃 ≠ 𝑥 𝑄. Тогда
координаты точки –R = P + Q выражаются следующим образом:
𝜆 =
𝑦 𝑃 − 𝑦 𝑄
𝑥 𝑃 − 𝑥 𝑄
𝑥−𝑅 = 𝜆2 − 𝑥 𝑃 − 𝑥 𝑄
𝑦−𝑅 = −𝑦 𝑃 + 𝜆(𝑥 𝑃 − 𝑥 𝑅)
Если 𝑥 𝑃 = 𝑥 𝑄, то возможны три варианта:
• Если 𝑦 𝑃 = −𝑦 𝑄, то сумма определена как 𝑂.
• Если 𝑥 𝑃 = 𝑥 𝑄 и 𝑦 𝑃 = 𝑦 𝑄 = 0, то R = P + P = 0
• Если 𝑥 𝑃 = 𝑥 𝑄 и 𝑦 𝑃 = 𝑦 𝑄 ≠ 0, то R = P + P = 2P = 𝑥 𝑅, 𝑦 𝑅 определяется как:
𝜆 =
3𝑥 𝑃
2
+𝑎
2𝑦 𝑃
𝑥−𝑅 = 𝜆2 − 2𝑥 𝑃
𝑦−𝑅 = −𝑦 𝑃 + 𝜆(𝑥 𝑃 − 𝑥 𝑅)
Для множества точек эллиптической кривой выполняются все аксиомы
группы: замкнутость, ассоциативность, существование нейтрального
элемента, существование обратного элемента.
Группа точек эллиптической кривой абелева.
Сложение точек эллиптической кривой
Пример:
Найти порядок точки 𝑷 = (𝟐, 𝟑) на эллиптической кривой 𝑬 𝟎, 𝟏
Решение:
Кривая 𝐸 0,1 описывается уравнением 𝑦2 = 𝑥3 + 1.
1) Проверим, что точка P принадлежит этой кривой, для этого надо
проверить справедливость равенства 32
= 23
+ 1. Равенство выполняется,
следовательно 𝑃 ∈ 𝐸 0,1 .
2) Найдем точку 2P = P + P = (0,1)
3) Найдем точку 4P = 2(2P) = 2P + 2P = (0,-1)
4P = -2P, а следовательно 6P = 0. Поэтому порядок точки P может быть
равен 2, 3 или 6. Но 2P = (0,1) ≠ 𝑂, а если бы P имела порядок 3 , то 4P = P,
что неверно. Следовательно, P имеет порядок 6.
Эллиптические кривые над конечным полем.
Ранее были рассмотрены эллиптические кривые, определенные над
бесконечным полем вещественных чисел. Перенесем эти определения в
конечное поле ℤ 𝑝. Эллиптическую кривую над полем ℤ 𝑝 будем
обозначать как 𝐸 𝑝 𝑎, 𝑏 . Ее уравнение аналогично уравнению кривой над
полем действительных чисел:
𝑦2 ≡ 𝑥3 + 𝑎𝑥 + 𝑏 (𝑚𝑜𝑑 𝑝)
Параметрами кривой 𝐸 𝑝 𝑎, 𝑏 являются дискриминант Δ = 4𝑎3
+ 27𝑏2
,
который должен быть не сравним с p и инвариант
𝐽 𝐸 ≡ 1728
4𝑎3
4𝑎3 + 27𝑏2
(𝑚𝑜𝑑 𝑝)
Если 𝐽 𝐸 ∉ 0, 1728 , то параметры кривой a, b определяются по
формулам:
𝑎 ≡ 3𝑘 𝑚𝑜𝑑 𝑝 , 𝑏 ≡ 2𝑘 𝑚𝑜𝑑 𝑝 , где 𝑘 ≡
𝐽 𝐸
1728 − 𝐽 𝐸
(𝑚𝑜𝑑 𝑝)
Пример:
Эллиптическая кривая 𝒚 𝟐 = 𝒙 𝟑 − 𝟐𝒙 + 𝟓 над полем ℤ 𝟏𝟏
∗
.
Элементами этого поля являются числа от 0 до 10, все
операции выполняются по модулю 11. В качестве x мы
можем рассматривать все значения от 0 до 10, после
чего для каждого значения необходимо вычислить 𝑥3 −
2𝑥 + 5 mod 11 и, если это число квадратичный вычет,
вычислить квадратичный корень по модулю 11, пары
(𝑥, 𝑥3 − 2𝑥 + 5 𝑚𝑜𝑑 𝑛) и (𝑥, 𝑛 − 𝑥3 − 2𝑥 + 5 𝑚𝑜𝑑 𝑛)
будут являться точками на эллиптической кривой
𝐸11 −2,5 . Список всех точек приведен в таблице. Группа
включает в себя 14 точек, что соответствует теореме
Хассе.
Номер X Y
1 0 4
2 0 7
3 1 2
4 1 9
5 2 3
6 2 8
7 3 2
8 3 9
9 6 0
10 7 2
11 7 9
12 9 1
13 9 10
14 ⋈ ⋈
Пример:
Определим порядок точки G = (7,2) на кривой 𝐸11 −2,5 .
Для этого вычислим nG. Результаты вычислений представлены в
таблице ниже.
Порядок точки G равен 7.
Степени точки (7,2) 𝑛
на кривой 𝐸11 −2,5
n 1 2 3 4 5 6 7
X 7 0 9 9 0 7 ⋈
Y 2 7 1 10 4 9 ⋈
Примечание (теорема Хассе для оценки порядка группы точек
эллиптической кривой):
Пусть N – число точек эллиптической кривой, определенной над
конечным полем 𝐹𝑞, тогда 𝑁 − 𝑞 − 1 ≤ 2 𝑞
От теории – к практике!
Вспомним:
Асимметричные криптосистемы
• http://tpl-it.wikispaces.com/Асимметричные%20криптосистемы
Алгоритм обмена ключами Диффи-Хеллмана:
• https://www.youtube.com/watch?v=vFjq9pID4-E
• http://www.securitylab.ru/analytics/478912.php
С помощью эллиптических кривых могут быть реализованы многие известные
протоколы с открытым ключом. Любая криптосистема, основанная на дискретном
логарифмировании, легко может быть перенесена на эллиптические кривые.
Например, можно заменить математические операции вида 𝑦 =
𝑔 𝑥
𝑚𝑜𝑑 𝑝 на операции математического аппарата эллиптических кривых
(операции вычисления композиции точек) в алгоритмах формирования ключа Диффи-
Хеллмана или вычисления цифровой подписи Эль-Гамаля. В результате получатся те же
алгоритмы, но с другими математическими операциями.
Алгоритм обмена ключами Диффи-Хеллмана на основе
эллиптической кривой
Отправитель Получатель
Выбираем случайное большое
простое p и параметры
эллиптической кривой a и b.
Выбираем 𝐺 = (𝑥 𝐺, 𝑦 𝐺) ∈ 𝐸 𝑝(𝑎, 𝑏)
так, чтобы порядок G – большое
простое число
p, a, b, 𝑥 𝐺, 𝑦 𝐺
Подготовка, выбор параметров
Генерация и обмен ключами
Выбираем большое случайное
число 𝑛 𝐴. Вычисляем 𝑃𝐴 = 𝑛 𝐴 𝐺
Выбираем большое случайное
число 𝑛 𝐵. Вычисляем 𝑃𝐵 = 𝑛 𝐵 𝐺
𝑃𝐴
𝑃𝐵
Вычисляем общий секретный ключ
𝐾 = 𝑛 𝐴 ⋅ 𝑃𝐵 = 𝑛 𝐴 ⋅ 𝑛 𝐵 𝐺
Вычисляем общий секретный ключ
𝐾 = 𝑛 𝐵 ⋅ 𝑃𝐴 = 𝑛 𝐵 ⋅ 𝑛 𝐴 𝐺
Пример:
Рассмотрим эллиптическую кривую 𝐸11 −2,5 , т.е. кривая описывается
соотношением 𝑦2 ≡ 𝑥3 − 2𝑥 + 5 𝑚𝑜𝑑 11 .
Пусть выбрана точка G = (7,2) , которая лежит на кривой 𝐸11 −2,5 , т.к.
22 ≡ 49 ⋅ 7 − 14 + 5 𝑚𝑜𝑑 11 . Порядок точки G равен 7.
Личный ключ участника A равен 𝑛 𝐴 = 3 и ему соответствует точка 𝑃𝐴 =
3𝐺 = 9,1 .
Личным ключом пользователя B является число 𝑛 𝐵 = 5 и ему соответствует
точка 𝑃𝐵 = 5𝐺 = 10,4 .
Общий ключ будет иметь вид 𝑛 𝐴 ⋅ 𝑃𝐵 = 𝑛 𝐴 ⋅ 𝑛 𝐵 𝐺 = 𝑛 𝐵 ⋅ 𝑛 𝐴 𝐺 = 𝑛 𝐵 ⋅ 𝑃𝐴 = 3 ⋅
5 ⋅ G = (2,1)
Как провести криптоатаку, если порядок G – маленькое простое число?
Более «сложный» пример
Более «сложный» пример
Вспомним:
Алгоритм Эль-Гамаля – криптосистема с открытым ключом,
основанная на трудности вычисления дискретных логарифмов в
конечном поле. Криптосистема включает в себя алгоритм
шифрования и алгоритм цифровой подписи. Был предложен Т. Эль-
Гамалем в 1984 году.
Алгоритм шифрования на основе эллиптических кривых
Отправитель Получатель
Выбираем случайное большое простое p
и параметры эллиптической кривой a и b.
Выбираем 𝐺 = (𝑥 𝐺, 𝑦 𝐺) ∈ 𝐸 𝑝(𝑎, 𝑏) так,
чтобы порядок G – большое простое число
p, a, b, 𝑥 𝐺, 𝑦 𝐺
Подготовка, выбор параметров
Генерация и обмен ключами
Выбираем большое случайное
число 𝑛 𝐴. Вычисляем 𝑃𝐴 = 𝑛 𝐴 𝐺
Выбираем большое случайное
число 𝑛 𝐵. Вычисляем 𝑃𝐵 = 𝑛 𝐵 𝐺
𝑃𝐴
𝑃𝐵Вычисляем общий секретный ключ
𝐾 = 𝑛 𝐴 ⋅ 𝑃𝐵 = 𝑛 𝐴 ⋅ 𝑛 𝐵 𝐺
Вычисляем общий секретный ключ
𝐾 = 𝑛 𝐵 ⋅ 𝑃𝐴 = 𝑛 𝐵 ⋅ 𝑛 𝐴 𝐺
Шифрование
Выбираем случайное целое k.
Вычисляем Q = kG и 𝑅 = 𝑃𝑚 + 𝑘𝑃𝐵 Q, R
Дешифрование
𝑃𝑚 + 𝑘𝑃𝐵 − 𝑛 𝐵 𝑘𝐺 = 𝑃𝑚 + 𝑘𝑛 𝐵 𝐺 − 𝑛 𝐵 𝑘𝐺 = 𝑹 − 𝒏 𝑩 𝑸
Пример:
Рассмотрим эллиптическую кривую 𝐸11 −2,5 , т.е. кривая описывается соотношением
𝑦2 ≡ 𝑥3 − 2𝑥 + 5 𝑚𝑜𝑑 11 .
Пусть выбрана точка G = (7,2).
Личный ключ участника A равен 𝑛 𝐴 = 2 и ему соответствует точка 𝑃𝐴 = 2𝐺 = 0,7 .
Личным ключом пользователя B является число 𝑛 𝐵 = 6 и ему соответствует точка 𝑃𝐵 =
6𝐺 = 7,9 .
Для шифрования сообщения будем использовать следующий алфавит: точка (0,7) будет
соответствовать нулевому биту, а точка (1,2) – единичному.
Мы хотим передать текст, состоящий из последовательности бит: «0, 1».
Для шифрования первого бита выберем случайное целое число k=4 и сформируем
шифротекст: 𝐶1 = 4𝐺, 0,7 + 4 7,9 = 9,10 , 0,4 , аналогично выберем случайное
k = 2 для шифрования второго бита и сформируем шифротекст 𝐶2 = 2𝐺, 1,2 +
Пример 2:
Эллиптическая кривая E_89(56, 36)
G=(88, 54)
Pb=(65, 40)
Алфавит:
(72, 57) З П Ч Я
А (87, 70) И Р Ш
Б (64, 30) Й С Щ
В (70, 37) К Т Ъ
Г (60, 10) Л У Ы
Д М Ф Ь
Е Н Х Э
Ж О Ц Ю
Пример 2
Шифротекст:
Q=(66, 51) R=(54, 18)
Q=(80, 7) R=(31, 71)
Q=(77, 22) R=(15, 54)
Q=(26, 72) R=(78, 74)
Q=(60, 79) R=(75, 35)
Q=(54, 71) R=(4, 18)
Q=(52, 55) R=(81, 77)
Q=(60, 10) R=(33, 68)
Q=(71, 82) R=(37, 42)
Q=(77, 67) R=(15, 35)
Q=(46, 1) R=(37, 47)
Q=(37, 47) R=(50, 78)
Q=(41, 63) R=(71, 82)
Q=(45, 26) R=(37, 47)
Q=(53, 15) R=(3, 26)
Q=(88, 35) R=(51, 21)
Q=(88, 35) R=(36, 5)
Q=(51, 68) R=(75, 35)
Q=(26, 17) R=(81, 12)
Q=(57, 39) R=(20, 16)
Q=(43, 58) R=(51, 21)
Q=(64, 59) R=(50, 78)
Q=(36, 84) R=(66, 38)
Q=(41, 26) R=(8, 27)
Q=(2, 45) R=(8, 27)
Q=(75, 54) R=(8, 62)
Q=(36, 84) R=(20, 16)
Q=(14, 2) R=(2, 45)
Q=(79, 16) R=(65, 49)
Q=(43, 58) R=(20, 16)
Q=(2, 45) R=(50, 78)
Q=(50, 78) R=(64, 30)
Q=(3, 63) R=(83, 14)
Q=(54, 71) R=(52, 55)
Q=(71, 82) R=(37, 42)
Q=(78, 74) R=(70, 37)
Q=(45, 63) R=(88, 54)
Q=(4, 18) R=(16, 20)
Q=(46, 1) R=(78, 74)
Q=(22, 41) R=(46, 88)
Q=(64, 59) R=(64, 59)
Q=(64, 59) R=(2, 45)
Q=(37, 47) R=(8, 62)
Q=(1, 87) R=(65, 40)
Q=(0, 83) R=(2, 44)
Q=(0, 6) R=(2, 44)
Q=(88, 35) R=(75, 54)
Q=(16, 20) R=(22, 48)
Q=(51, 68) R=(36, 5)
Q=(50, 78) R=(60, 79)
Q=(5, 21) R=(77, 22)
Q=(60, 10) R=(36, 5)
Q=(64, 59) R=(77, 22)
Q=(88, 54) R=(57, 39)
Q=(20, 16) R=(5, 68)
Q=(50, 11) R=(36, 5)
Q=(75, 35) R=(27, 7)
Q=(2, 44) R=(88, 35)
Q=(39, 60) R=(70, 52)
Q=(78, 74) R=(36, 5)
Q=(77, 22) R=(14, 87)
Q=(57, 39) R=(50, 78)
Q=(26, 72) R=(53, 15)
Q=(50, 78) R=(66, 38)
Q=(81, 12) R=(78, 15)
Q=(37, 42) R=(5, 68)
Q=(8, 62) R=(87, 19)
Q=(64, 59) R=(88, 54)
Q=(51, 21) R=(2, 44)
Q=(74, 2) R=(22, 41)
Q=(37, 42) R=(71, 82)
Q=(26, 72) R=(57, 50)
Q=(3, 26) R=(15, 54)
Q=(4, 71) R=(8, 62)
Q=(66, 51) R=(46, 88)
Q=(16, 69) R=(43, 31)
Q=(47, 74) R=(51, 68)
Q=(32, 8) R=(32, 8)
Q=(64, 30) R=(3, 26)
Q=(66, 51) R=(43, 31)
Q=(2, 45) R=(53, 74)
Q=(74, 2) R=(75, 54)
Q=(27, 7) R=(5, 68)
Q=(2, 45) R=(8, 27)
Q=(31, 71) R=(78, 15)
Q=(42, 5) R=(27, 82)
Q=(33, 21) R=(31, 71)
Q=(0, 83) R=(26, 72)
Q=(37, 47) R=(22, 48)
Q=(83, 75) R=(81, 77)
Q=(43, 31) R=(80, 82)
Q=(60, 10) R=(60, 10)
Q=(60, 10) R=(87, 19)
Q=(1, 87) R=(22, 41)
Результат дешифровки (демонстрация)
[рекомендации и правила использования]
Криптографически «слабые» кривые
(которых следует избегать)
• Кривые над 𝐹2 𝑚, где m − не простое число. Шифрование на
этих кривых подвержено атакам Вейля.
• Кривые с |𝐸(𝐹𝑞)| = 𝑞 уязвимы для атаки, которая отображает
точки данной кривой в аддитивную группу поля 𝐹𝑞.
Рекомендованные наборы параметров
• NIST
• SECG
Быстрая редукция (NIST-кривые)
Деление по модулю p (которое необходимо для операций
сложения и умножения может выполняться быстрее, если в
качестве p выбрать простое число, близкое к степени числа 2. В
частности, в роли p может выступать простое число Мерсенна.
Например, хорошим выбором являются 𝑝 = 2251 − 1 или 𝑝 =
2256 − 232 − 29 − 28 − 27 − 26 − 24 − 1.
Национальный институт стандартов и технологий (NIST)
рекомендует использовать подобные простые числа в качестве p.
Еще одним преимуществом кривых, рекомендованных NIST,
является выбор значения a = -3, что ускоряет операцию сложения в
координатах Якоби.
Эллиптические кривые, рекомендованные NIST
NIST рекомендует 15 эллиптических кривых, многие из которых были
получены Jerry Solinas (NSA) на базе наработок Neal Koblitz. В частности,
FIPS 186-3 рекомендует 10 конечных полей. Некоторые из них:
• поля 𝐹𝑝, где простое p имеет длину 192, 224, 256, 384 или 521 бит,
• поля 𝐹2 𝑚, где m = 163, 233, 283, 409 или 571.
Причём для каждого конечного поля рекомендуется одна эллиптическая
кривая. Эти конечные поля и эллиптические кривые выбраны, как часто
ошибочно считается, из-за высокого уровня безопасности. По заявлениям
NIST, их выбор был обоснован эффективностью программной реализации.
Имеются сомнения в безопасности по крайней мере нескольких из них.
Размер ключа
• Самым быстрым алгоритмам, решающим задачу дискретного
логарифмирования на эллиптических кривых, таким как
алгоритм Шенкса и ρ-метод Полларда, необходимо 𝑂( 𝑛) операций.
Поэтому размер поля должен как минимум в два раза превосходить
размер ключа. Например, для 128-битного ключа рекомендуется
использовать эллиптическую кривую над полем 𝐹𝑝, где p имеет длину
256 бит.
• Самые сложные схемы на эллиптических кривых, публично взломанные
к настоящему времени, содержали 112-битный ключ для конечного
простого поля и 109-битный ключ для конечного поля характеристики 2.
В июле 2009 года кластер из более чем двухсот Sony Playstation 3 за 3,5
месяца нашел 109-битный ключ. Ключ над полем характеристики 2 был
найден в апреле 2004 года, с использованием 2600 компьютеров, в
течение 17 месяцев
Безопасность криптографии с использованием эллиптических
кривых
• Безопасность, обеспечиваемая криптографическим подходом на основе
эллиптических кривых, зависит от того, насколько трудной для решения
оказывается задача определения k по данным kP и P. Эту задачу обычно
называют проблемой логарифмирования на эллиптической кривой.
Наиболее быстрым из известных на сегодня методов логарифмирования на
эллиптической кривой является так называемый p-метод Полларда.
• К тому же, при равных длинах ключей вычислительные усилия, требуемые
при использовании RSA и криптографии на основе эллиптических кривых,
не сильно различаются. Таким образом, в сравнении с RSA при равных
уровнях защиты явное вычислительное преимущество принадлежит
криптографии на основе эллиптических кривых с более короткой длиной
ключа
В таблице сравнивается эффективность этого метода и метод разложения на простые
множители с помощью решета в поле чисел общего вида. Из нее видно, что по
сравнению с RSA в случае применения методов криптографии на эллиптических кривых
примерно тот же уровень защиты достигается со значительно меньшими значениями
длины ключей.
Вычислительные усилия, необходимые для криптоанализа при использовании эллиптических кривых и RSA
Варианты атак
• Алгоритм Полига-Хеллмана. Алгоритм решения дискретного
логарифма. Предположим, что n — количество точек эллиптической
кривой. Пусть число n раскладывается на простые числа 𝑝1, 𝑝2, … , 𝑝 𝑛.
Суть метода сводится к тому, чтобы найти дискретные логарифмы по
модулю числе 𝑝𝑖, а затем получить общее решение с помощью
китайской теоремы об остатках. Атака позволяет свести проблему
дискретного логарифма в большом поле n к той же задаче, но с
гораздо меньшим полем p. Для того, чтобы противостоять атаке
необходимо просто выбирать кривые, количество точек которых
делится на очень большое простое число q≈n.
• Алгоритм Шенкса, более известный как шаги младенца/шаги гиганта.
Типичный пример time memory trade off. Для группы размером n
вычисляется таблиц размером n1/2, затем по этой таблице происходит
поиск нужного элемента. Сложность алгоритма 𝑂 𝑞 , где q —
количество точек эллиптической кривой.
Приложения
Большинство криптосистем современной криптографии естественным образом можно
«переложить» на эллиптические кривые. Основная идея заключается в том, что известный
алгоритм, используемый для конкретных конечных групп, переписывается для использования
групп рациональных точек эллиптических кривых:
• алгоритм ECDSA основывающийся на ЭЦП,
• алгоритм ECDH, основывающийся на алгоритме Диффи — Хеллмана,
• алгоритм ECMQV, основывающийся на MQV, протоколе распределения ключей Менезеса-
Кью-Венстоуна,
• ГОСТ Р 34.10-2012,
• факторизация Ленстры с помощью эллиптических кривых,
• dual EC DRBG.
Необходимо отметить, что безопасность таких систем цифровой подписи опирается не только
на криптостойкость алгоритмов шифрования, но и на криптостойкость
используемых криптографических хэш-функций и генераторов случайных чисел.
По обзору 2013 года чаще всего используются кривые nistp256, nistp384, nistp521, secp256k1,
secp384r1, secp521r1
ЭЦП
ЭЦП
ЭЦП обеспечивает:
• Целостность
• Неотказуемость
• Авторство
Алгоритм:
К выбранным параметрам предъявляются
следующие ограничения:
• Должно выполняться сравнение 𝑝 𝑡 ≠ 1(𝑚𝑜𝑑 𝑞) для 𝑡 = 1, 𝐵, где 𝐵 =
31, если 2254 < 𝑝 < 2256, и 𝐵 = 131, если 2508 < 𝑝 < 2512.
• Порядок группы точек 𝐸 𝑝(𝑎, 𝑏) не должен совпадать с p (q < p)
• Инвариант кривой должен удовлетворять соотношению 𝐽 𝐸 ≠
0,1728
Пример:
Рассмотрим эллиптическую кривую 𝐸11 −2,5 , т.е. кривая описывается
соотношением 𝑦2
≡ 𝑥3
− 2𝑥 + 5 𝑚𝑜𝑑 11 .
Пусть выбрана точка G = (7,2), тогда порядок подгруппы q=7
И пусть секретный ключ d=2, тогда Q=(0,7).
Предположим, что хэш сообщения выражается как e=5.
Выберем случайно k = 3.
Вычисляем точку на эллиптической кривой C=kG=(9,1).
Найдем r = 9 mod 7 = 2.
Вычислим s = (rd + ke) mod q = (2*2+3*5) mod 7 = 5
Цифровая подпись готова – это пара чисел (2,5)
Выводы:
Основные плюсы:
- Гораздо меньшая длина ключа по сравнению к «классической» асимметричной криптографией.
- Скорость работы эллиптических алгоритмов гораздо выше, чем у классических. Это объясняется как
размерами поля, так и применением более близкой для компьютеров структуры бинарного конечного
поля.
- Из-за маленькой длины ключа и высокой скорости работы, алгоритмы асимметричной криптографии
на эллиптических кривых могут использоваться в смарт-картах и других устройствах с ограниченными
вычислительными ресурсами.
Основные минусы эллиптической криптографии:
- Все плюсы эллиптической криптографии вытекают из одного конкретного факта:
для задачи дискретного логарифмирования на эллиптических кривых не существует
субэкспоненциальных алгоритмов решения. Это позволяет уменьшить длину ключа и увеличить
производительность. Однако если такие алгоритмы появятся, то это будет означать крах эллиптической
криптографии.
- Эллиптическая криптография — это очень сложно. Не то чтобы я считал обычную асимметричную
криптографию совсем уж простой штукой. Но «эллиптика» — это огромное количество тонкостей,
которые необходимо учесть. Начиная с выбора эллиптической кривой и заканчивая генерацией ключей.
При массовом переходе на эллиптику скорее всего обязательно будет большое количество ошибок и
уязвимостей, которые уже отработаны для более привычных методов.

More Related Content

What's hot

Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...Nikolay Grebenshikov
 
Тригонометрические функции числового аргумента
Тригонометрические функции числового аргументаТригонометрические функции числового аргумента
Тригонометрические функции числового аргументаFormula.co.ua
 
Линейная алгебра - II
Линейная алгебра - IIЛинейная алгебра - II
Линейная алгебра - II
DEVTYPE
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмов
Mikhail Kurnosov
 
Основы комбинаторики - II
Основы комбинаторики - IIОсновы комбинаторики - II
Основы комбинаторики - II
DEVTYPE
 
Funkciya y cos_ee_svojstva_i_grafik
Funkciya y cos_ee_svojstva_i_grafikFunkciya y cos_ee_svojstva_i_grafik
Funkciya y cos_ee_svojstva_i_grafik
Иван Иванов
 
10 a n_r
10 a n_r10 a n_r
10 a n_r
4book
 
Основы комбинаторики - I
Основы комбинаторики - IОсновы комбинаторики - I
Основы комбинаторики - I
DEVTYPE
 
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и кодыГригорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и кодыYandex
 
егэ часть а
егэ часть аегэ часть а
егэ часть аdasha2012
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.sharikdp
 
Системы счисления
Системы счисленияСистемы счисления
Системы счисления
Andrey Dolinin
 
Лекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графовЛекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графовMikhail Kurnosov
 
Лекция 8. Графы. Обходы графов
Лекция 8. Графы. Обходы графовЛекция 8. Графы. Обходы графов
Лекция 8. Графы. Обходы графов
Mikhail Kurnosov
 
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Nikolay Grebenshikov
 
Использование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовИспользование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовТранслируем.бел
 
геометрический смысл производной
геометрический смысл производнойгеометрический смысл производной
геометрический смысл производнойtkachenko_anna
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиMikhail Kurnosov
 
Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...
Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...
Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...Mikhail Kurnosov
 
Лекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмовЛекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмов
Mikhail Kurnosov
 

What's hot (20)

Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
 
Тригонометрические функции числового аргумента
Тригонометрические функции числового аргументаТригонометрические функции числового аргумента
Тригонометрические функции числового аргумента
 
Линейная алгебра - II
Линейная алгебра - IIЛинейная алгебра - II
Линейная алгебра - II
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмов
 
Основы комбинаторики - II
Основы комбинаторики - IIОсновы комбинаторики - II
Основы комбинаторики - II
 
Funkciya y cos_ee_svojstva_i_grafik
Funkciya y cos_ee_svojstva_i_grafikFunkciya y cos_ee_svojstva_i_grafik
Funkciya y cos_ee_svojstva_i_grafik
 
10 a n_r
10 a n_r10 a n_r
10 a n_r
 
Основы комбинаторики - I
Основы комбинаторики - IОсновы комбинаторики - I
Основы комбинаторики - I
 
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и кодыГригорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
 
егэ часть а
егэ часть аегэ часть а
егэ часть а
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.
 
Системы счисления
Системы счисленияСистемы счисления
Системы счисления
 
Лекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графовЛекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графов
 
Лекция 8. Графы. Обходы графов
Лекция 8. Графы. Обходы графовЛекция 8. Графы. Обходы графов
Лекция 8. Графы. Обходы графов
 
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
 
Использование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовИспользование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетов
 
геометрический смысл производной
геометрический смысл производнойгеометрический смысл производной
геометрический смысл производной
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
 
Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...
Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...
Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...
 
Лекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмовЛекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмов
 

Similar to Use of eliptic curves for generating digital signature

Защита информации семинар №7
Защита информации семинар №7Защита информации семинар №7
Защита информации семинар №7
Alexander Kolybelnikov
 
Защита информации семинар №8
Защита информации семинар №8Защита информации семинар №8
Защита информации семинар №8
Alexander Kolybelnikov
 
Лекция 12 Теоретико-числовые алгоритмы Часть 1
Лекция 12 Теоретико-числовые алгоритмы Часть 1Лекция 12 Теоретико-числовые алгоритмы Часть 1
Лекция 12 Теоретико-числовые алгоритмы Часть 1
simple_people
 
презентация по теме «действительные числа»
презентация по теме «действительные числа»презентация по теме «действительные числа»
презентация по теме «действительные числа»
Kirrrr123
 
Opredelennyj integral
Opredelennyj integralOpredelennyj integral
Opredelennyj integral
Dimon4
 
5
55
20101007 proof complexity_hirsch_lecture04
20101007 proof complexity_hirsch_lecture0420101007 proof complexity_hirsch_lecture04
20101007 proof complexity_hirsch_lecture04Computer Science Club
 
ДИДАКТИЧЕСКИЕ МАТЕРИАЛЫ ПО АЛГЕБРЕ И НАЧАЛАМ АНАЛИЗА ДЛЯ 9 КЛАССА
ДИДАКТИЧЕСКИЕ МАТЕРИАЛЫ ПО АЛГЕБРЕ И НАЧАЛАМ АНАЛИЗА ДЛЯ 9 КЛАССАДИДАКТИЧЕСКИЕ МАТЕРИАЛЫ ПО АЛГЕБРЕ И НАЧАЛАМ АНАЛИЗА ДЛЯ 9 КЛАССА
ДИДАКТИЧЕСКИЕ МАТЕРИАЛЫ ПО АЛГЕБРЕ И НАЧАЛАМ АНАЛИЗА ДЛЯ 9 КЛАССА
Garik Yenoqyan
 
proverochnie-raboti-po-algebre
proverochnie-raboti-po-algebreproverochnie-raboti-po-algebre
proverochnie-raboti-po-algebre
Garik Yenokyan
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Mikhail Kurnosov
 
Циклические коды. Граница БЧХ
Циклические коды. Граница БЧХЦиклические коды. Граница БЧХ
Циклические коды. Граница БЧХ
Alex Dainiak
 
8
88
20110919 computer graphics_galinsky_lecture02_raster
20110919 computer graphics_galinsky_lecture02_raster20110919 computer graphics_galinsky_lecture02_raster
20110919 computer graphics_galinsky_lecture02_rasterComputer Science Club
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
Theoretical mechanics department
 
Линейные коды
Линейные кодыЛинейные коды
Линейные коды
Alex Dainiak
 
Основы SciPy
Основы SciPyОсновы SciPy
Коды Адамара. Каскадные коды Форни.
Коды Адамара. Каскадные коды Форни.Коды Адамара. Каскадные коды Форни.
Коды Адамара. Каскадные коды Форни.
Alex Dainiak
 

Similar to Use of eliptic curves for generating digital signature (20)

Защита информации семинар №7
Защита информации семинар №7Защита информации семинар №7
Защита информации семинар №7
 
Защита информации семинар №8
Защита информации семинар №8Защита информации семинар №8
Защита информации семинар №8
 
Matanal 31oct
Matanal 31octMatanal 31oct
Matanal 31oct
 
Лекция 12 Теоретико-числовые алгоритмы Часть 1
Лекция 12 Теоретико-числовые алгоритмы Часть 1Лекция 12 Теоретико-числовые алгоритмы Часть 1
Лекция 12 Теоретико-числовые алгоритмы Часть 1
 
Diskretn analiz
Diskretn analizDiskretn analiz
Diskretn analiz
 
Diskretn analiz
Diskretn analizDiskretn analiz
Diskretn analiz
 
презентация по теме «действительные числа»
презентация по теме «действительные числа»презентация по теме «действительные числа»
презентация по теме «действительные числа»
 
Opredelennyj integral
Opredelennyj integralOpredelennyj integral
Opredelennyj integral
 
5
55
5
 
20101007 proof complexity_hirsch_lecture04
20101007 proof complexity_hirsch_lecture0420101007 proof complexity_hirsch_lecture04
20101007 proof complexity_hirsch_lecture04
 
ДИДАКТИЧЕСКИЕ МАТЕРИАЛЫ ПО АЛГЕБРЕ И НАЧАЛАМ АНАЛИЗА ДЛЯ 9 КЛАССА
ДИДАКТИЧЕСКИЕ МАТЕРИАЛЫ ПО АЛГЕБРЕ И НАЧАЛАМ АНАЛИЗА ДЛЯ 9 КЛАССАДИДАКТИЧЕСКИЕ МАТЕРИАЛЫ ПО АЛГЕБРЕ И НАЧАЛАМ АНАЛИЗА ДЛЯ 9 КЛАССА
ДИДАКТИЧЕСКИЕ МАТЕРИАЛЫ ПО АЛГЕБРЕ И НАЧАЛАМ АНАЛИЗА ДЛЯ 9 КЛАССА
 
proverochnie-raboti-po-algebre
proverochnie-raboti-po-algebreproverochnie-raboti-po-algebre
proverochnie-raboti-po-algebre
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.
 
Циклические коды. Граница БЧХ
Циклические коды. Граница БЧХЦиклические коды. Граница БЧХ
Циклические коды. Граница БЧХ
 
8
88
8
 
20110919 computer graphics_galinsky_lecture02_raster
20110919 computer graphics_galinsky_lecture02_raster20110919 computer graphics_galinsky_lecture02_raster
20110919 computer graphics_galinsky_lecture02_raster
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
 
Линейные коды
Линейные кодыЛинейные коды
Линейные коды
 
Основы SciPy
Основы SciPyОсновы SciPy
Основы SciPy
 
Коды Адамара. Каскадные коды Форни.
Коды Адамара. Каскадные коды Форни.Коды Адамара. Каскадные коды Форни.
Коды Адамара. Каскадные коды Форни.
 

Use of eliptic curves for generating digital signature

  • 1. Применение эллиптических кривых в криптографии Поляков Андрей КЭ-120
  • 2. План доклада • Эллиптические кривые: что это? (10 мин) • Алгоритмы шифрования на эллиптических кривых (краткий экскурс + пример дешифровки) (10 мин) • Эллиптические кривые с подобранными параметрами (10 мин) • Формирование ЭЦП (10 мин)
  • 3. Эллиптические кривые Эллиптическая кривая над полем K – это множество точек (x,y), удовлетворяющих уравнению 𝑦2 + 𝑎1 𝑥𝑦 + 𝑎3 𝑦 = 𝑥3 + 𝑎2 𝑥2 + 𝑎4 𝑥 + 𝑎6 вместе с точкой на бесконечности. Эллиптическую кривую над полем вещественных чисел без особых точек будем обозначать E(a,b). Откуда a и b? Как узнать, есть ли особые точки?
  • 4. Характеристикой поля K называется наименьшее ненулевое натуральное число n, такое, что 𝑛 ∙ 1 = 0, если же такого n не существует, то характеристика равна 0. Если характеристика равна 2, то эллиптическая кривая с помощью замены координат может быть приведена к виду 𝑦2 + 𝑦 = 𝑥3 + 𝑎𝑥 + 𝑏 Если характеристика равна 3, то эллиптическая кривая приводится к виду 𝑦2 = 𝑥3 + 𝑎2 𝑥2 + 𝑎4 𝑥 + 𝑎6 Если характеристика поля не равна 2 или 3, то уравнение с помощью замены координат приводится к канонической форме: 𝑦2 = 𝑥3 + 𝑎𝑥 + 𝑏 (*)
  • 5. Задача: нужно иметь возможность найти касательную к точкам эллиптической кривой, поэтому будем рассматривать только кривые без особых точек. Алгебраически это значит, что дискриминант Δ = −16(4𝑎3 + 27𝑏2 ) не должен быть равен нулю. Если кривая не имеет особых точек, то ее график имеет две части, если дискриминант положителен, и одну – если отрицателен. Пример: Δ = 1728 Δ = −368
  • 6. Имеют ли особые точки кривые: ?
  • 7. Имеют ли особые точки кривые: да Δ = 0 да Δ = 0
  • 8. Группа точек эллиптической кривой Пусть 𝐸 𝑎, 𝑏 эллиптическая кривая, заданная уравнением 𝑦2 = 𝑥3 + 𝑎𝑥 + 𝑏, над полем вещественных чисел. Выберем две произвольные точки на этой кривой 𝑃 = 𝑥 𝑃, 𝑦 𝑃 , Q = 𝑥 𝑄, 𝑦 𝑄 ∈ 𝐸(𝑎, 𝑏). Рассмотрим множество точек кривой 𝐸 𝑎, 𝑏 и точку 𝑂 – точку, удаленную на бесконечности. Потребуем, чтобы сумма точек эллиптической кривой, лежащих на одной прямой являлась нулем: 𝑃 + 𝑄 + 𝑅 = 𝑂 Определим точку 𝑂 как тождественный элемент по сложению («нулевой элемент») группы точек. Порядком точки P на эллиптической кривой 𝐸 𝑎, 𝑏 называется такое минимальное число 𝑛 ∈ 𝑁, что: 𝑛𝑃 = 𝑃 + 𝑃 + … + 𝑃 = 𝑂 n (**) В случае, если такого n не существует, говорят о точке бесконечного порядка.
  • 9. P и –P имеют одинаковые x-координаты, а их y координаты различаются только знаком, т.е.: − 𝑥, 𝑦 = (𝑥, −𝑦) Из уравнения элиптической кривой (*) сразу следует, что (𝑥, −𝑦) – также точка на 𝐸 𝑎, 𝑏 . Из (**) следует, что P + Q = -R. Найдем координаты –R. Пусть дана 𝐸 𝑎, 𝑏 над полем K (чья характеристика не равна ни 2, ни 3) и точки 𝑃 = 𝑥 𝑃, 𝑦 𝑃 , Q = 𝑥 𝑄, 𝑦 𝑄 ∈ 𝐸(𝑎, 𝑏). Допустим, что 𝑥 𝑃 ≠ 𝑥 𝑄. Тогда координаты точки –R = P + Q выражаются следующим образом: 𝜆 = 𝑦 𝑃 − 𝑦 𝑄 𝑥 𝑃 − 𝑥 𝑄 𝑥−𝑅 = 𝜆2 − 𝑥 𝑃 − 𝑥 𝑄 𝑦−𝑅 = −𝑦 𝑃 + 𝜆(𝑥 𝑃 − 𝑥 𝑅)
  • 10. Если 𝑥 𝑃 = 𝑥 𝑄, то возможны три варианта: • Если 𝑦 𝑃 = −𝑦 𝑄, то сумма определена как 𝑂. • Если 𝑥 𝑃 = 𝑥 𝑄 и 𝑦 𝑃 = 𝑦 𝑄 = 0, то R = P + P = 0 • Если 𝑥 𝑃 = 𝑥 𝑄 и 𝑦 𝑃 = 𝑦 𝑄 ≠ 0, то R = P + P = 2P = 𝑥 𝑅, 𝑦 𝑅 определяется как: 𝜆 = 3𝑥 𝑃 2 +𝑎 2𝑦 𝑃 𝑥−𝑅 = 𝜆2 − 2𝑥 𝑃 𝑦−𝑅 = −𝑦 𝑃 + 𝜆(𝑥 𝑃 − 𝑥 𝑅) Для множества точек эллиптической кривой выполняются все аксиомы группы: замкнутость, ассоциативность, существование нейтрального элемента, существование обратного элемента. Группа точек эллиптической кривой абелева.
  • 12. Пример: Найти порядок точки 𝑷 = (𝟐, 𝟑) на эллиптической кривой 𝑬 𝟎, 𝟏 Решение: Кривая 𝐸 0,1 описывается уравнением 𝑦2 = 𝑥3 + 1. 1) Проверим, что точка P принадлежит этой кривой, для этого надо проверить справедливость равенства 32 = 23 + 1. Равенство выполняется, следовательно 𝑃 ∈ 𝐸 0,1 . 2) Найдем точку 2P = P + P = (0,1) 3) Найдем точку 4P = 2(2P) = 2P + 2P = (0,-1) 4P = -2P, а следовательно 6P = 0. Поэтому порядок точки P может быть равен 2, 3 или 6. Но 2P = (0,1) ≠ 𝑂, а если бы P имела порядок 3 , то 4P = P, что неверно. Следовательно, P имеет порядок 6.
  • 13. Эллиптические кривые над конечным полем. Ранее были рассмотрены эллиптические кривые, определенные над бесконечным полем вещественных чисел. Перенесем эти определения в конечное поле ℤ 𝑝. Эллиптическую кривую над полем ℤ 𝑝 будем обозначать как 𝐸 𝑝 𝑎, 𝑏 . Ее уравнение аналогично уравнению кривой над полем действительных чисел: 𝑦2 ≡ 𝑥3 + 𝑎𝑥 + 𝑏 (𝑚𝑜𝑑 𝑝) Параметрами кривой 𝐸 𝑝 𝑎, 𝑏 являются дискриминант Δ = 4𝑎3 + 27𝑏2 , который должен быть не сравним с p и инвариант 𝐽 𝐸 ≡ 1728 4𝑎3 4𝑎3 + 27𝑏2 (𝑚𝑜𝑑 𝑝) Если 𝐽 𝐸 ∉ 0, 1728 , то параметры кривой a, b определяются по формулам: 𝑎 ≡ 3𝑘 𝑚𝑜𝑑 𝑝 , 𝑏 ≡ 2𝑘 𝑚𝑜𝑑 𝑝 , где 𝑘 ≡ 𝐽 𝐸 1728 − 𝐽 𝐸 (𝑚𝑜𝑑 𝑝)
  • 14. Пример: Эллиптическая кривая 𝒚 𝟐 = 𝒙 𝟑 − 𝟐𝒙 + 𝟓 над полем ℤ 𝟏𝟏 ∗ . Элементами этого поля являются числа от 0 до 10, все операции выполняются по модулю 11. В качестве x мы можем рассматривать все значения от 0 до 10, после чего для каждого значения необходимо вычислить 𝑥3 − 2𝑥 + 5 mod 11 и, если это число квадратичный вычет, вычислить квадратичный корень по модулю 11, пары (𝑥, 𝑥3 − 2𝑥 + 5 𝑚𝑜𝑑 𝑛) и (𝑥, 𝑛 − 𝑥3 − 2𝑥 + 5 𝑚𝑜𝑑 𝑛) будут являться точками на эллиптической кривой 𝐸11 −2,5 . Список всех точек приведен в таблице. Группа включает в себя 14 точек, что соответствует теореме Хассе. Номер X Y 1 0 4 2 0 7 3 1 2 4 1 9 5 2 3 6 2 8 7 3 2 8 3 9 9 6 0 10 7 2 11 7 9 12 9 1 13 9 10 14 ⋈ ⋈
  • 15. Пример: Определим порядок точки G = (7,2) на кривой 𝐸11 −2,5 . Для этого вычислим nG. Результаты вычислений представлены в таблице ниже. Порядок точки G равен 7. Степени точки (7,2) 𝑛 на кривой 𝐸11 −2,5 n 1 2 3 4 5 6 7 X 7 0 9 9 0 7 ⋈ Y 2 7 1 10 4 9 ⋈ Примечание (теорема Хассе для оценки порядка группы точек эллиптической кривой): Пусть N – число точек эллиптической кривой, определенной над конечным полем 𝐹𝑞, тогда 𝑁 − 𝑞 − 1 ≤ 2 𝑞
  • 16.
  • 17. От теории – к практике!
  • 18. Вспомним: Асимметричные криптосистемы • http://tpl-it.wikispaces.com/Асимметричные%20криптосистемы Алгоритм обмена ключами Диффи-Хеллмана: • https://www.youtube.com/watch?v=vFjq9pID4-E • http://www.securitylab.ru/analytics/478912.php С помощью эллиптических кривых могут быть реализованы многие известные протоколы с открытым ключом. Любая криптосистема, основанная на дискретном логарифмировании, легко может быть перенесена на эллиптические кривые. Например, можно заменить математические операции вида 𝑦 = 𝑔 𝑥 𝑚𝑜𝑑 𝑝 на операции математического аппарата эллиптических кривых (операции вычисления композиции точек) в алгоритмах формирования ключа Диффи- Хеллмана или вычисления цифровой подписи Эль-Гамаля. В результате получатся те же алгоритмы, но с другими математическими операциями.
  • 19. Алгоритм обмена ключами Диффи-Хеллмана на основе эллиптической кривой Отправитель Получатель Выбираем случайное большое простое p и параметры эллиптической кривой a и b. Выбираем 𝐺 = (𝑥 𝐺, 𝑦 𝐺) ∈ 𝐸 𝑝(𝑎, 𝑏) так, чтобы порядок G – большое простое число p, a, b, 𝑥 𝐺, 𝑦 𝐺 Подготовка, выбор параметров Генерация и обмен ключами Выбираем большое случайное число 𝑛 𝐴. Вычисляем 𝑃𝐴 = 𝑛 𝐴 𝐺 Выбираем большое случайное число 𝑛 𝐵. Вычисляем 𝑃𝐵 = 𝑛 𝐵 𝐺 𝑃𝐴 𝑃𝐵 Вычисляем общий секретный ключ 𝐾 = 𝑛 𝐴 ⋅ 𝑃𝐵 = 𝑛 𝐴 ⋅ 𝑛 𝐵 𝐺 Вычисляем общий секретный ключ 𝐾 = 𝑛 𝐵 ⋅ 𝑃𝐴 = 𝑛 𝐵 ⋅ 𝑛 𝐴 𝐺
  • 20. Пример: Рассмотрим эллиптическую кривую 𝐸11 −2,5 , т.е. кривая описывается соотношением 𝑦2 ≡ 𝑥3 − 2𝑥 + 5 𝑚𝑜𝑑 11 . Пусть выбрана точка G = (7,2) , которая лежит на кривой 𝐸11 −2,5 , т.к. 22 ≡ 49 ⋅ 7 − 14 + 5 𝑚𝑜𝑑 11 . Порядок точки G равен 7. Личный ключ участника A равен 𝑛 𝐴 = 3 и ему соответствует точка 𝑃𝐴 = 3𝐺 = 9,1 . Личным ключом пользователя B является число 𝑛 𝐵 = 5 и ему соответствует точка 𝑃𝐵 = 5𝐺 = 10,4 . Общий ключ будет иметь вид 𝑛 𝐴 ⋅ 𝑃𝐵 = 𝑛 𝐴 ⋅ 𝑛 𝐵 𝐺 = 𝑛 𝐵 ⋅ 𝑛 𝐴 𝐺 = 𝑛 𝐵 ⋅ 𝑃𝐴 = 3 ⋅ 5 ⋅ G = (2,1) Как провести криптоатаку, если порядок G – маленькое простое число?
  • 23. Вспомним: Алгоритм Эль-Гамаля – криптосистема с открытым ключом, основанная на трудности вычисления дискретных логарифмов в конечном поле. Криптосистема включает в себя алгоритм шифрования и алгоритм цифровой подписи. Был предложен Т. Эль- Гамалем в 1984 году.
  • 24. Алгоритм шифрования на основе эллиптических кривых Отправитель Получатель Выбираем случайное большое простое p и параметры эллиптической кривой a и b. Выбираем 𝐺 = (𝑥 𝐺, 𝑦 𝐺) ∈ 𝐸 𝑝(𝑎, 𝑏) так, чтобы порядок G – большое простое число p, a, b, 𝑥 𝐺, 𝑦 𝐺 Подготовка, выбор параметров Генерация и обмен ключами Выбираем большое случайное число 𝑛 𝐴. Вычисляем 𝑃𝐴 = 𝑛 𝐴 𝐺 Выбираем большое случайное число 𝑛 𝐵. Вычисляем 𝑃𝐵 = 𝑛 𝐵 𝐺 𝑃𝐴 𝑃𝐵Вычисляем общий секретный ключ 𝐾 = 𝑛 𝐴 ⋅ 𝑃𝐵 = 𝑛 𝐴 ⋅ 𝑛 𝐵 𝐺 Вычисляем общий секретный ключ 𝐾 = 𝑛 𝐵 ⋅ 𝑃𝐴 = 𝑛 𝐵 ⋅ 𝑛 𝐴 𝐺 Шифрование Выбираем случайное целое k. Вычисляем Q = kG и 𝑅 = 𝑃𝑚 + 𝑘𝑃𝐵 Q, R Дешифрование 𝑃𝑚 + 𝑘𝑃𝐵 − 𝑛 𝐵 𝑘𝐺 = 𝑃𝑚 + 𝑘𝑛 𝐵 𝐺 − 𝑛 𝐵 𝑘𝐺 = 𝑹 − 𝒏 𝑩 𝑸
  • 25. Пример: Рассмотрим эллиптическую кривую 𝐸11 −2,5 , т.е. кривая описывается соотношением 𝑦2 ≡ 𝑥3 − 2𝑥 + 5 𝑚𝑜𝑑 11 . Пусть выбрана точка G = (7,2). Личный ключ участника A равен 𝑛 𝐴 = 2 и ему соответствует точка 𝑃𝐴 = 2𝐺 = 0,7 . Личным ключом пользователя B является число 𝑛 𝐵 = 6 и ему соответствует точка 𝑃𝐵 = 6𝐺 = 7,9 . Для шифрования сообщения будем использовать следующий алфавит: точка (0,7) будет соответствовать нулевому биту, а точка (1,2) – единичному. Мы хотим передать текст, состоящий из последовательности бит: «0, 1». Для шифрования первого бита выберем случайное целое число k=4 и сформируем шифротекст: 𝐶1 = 4𝐺, 0,7 + 4 7,9 = 9,10 , 0,4 , аналогично выберем случайное k = 2 для шифрования второго бита и сформируем шифротекст 𝐶2 = 2𝐺, 1,2 +
  • 26. Пример 2: Эллиптическая кривая E_89(56, 36) G=(88, 54) Pb=(65, 40) Алфавит: (72, 57) З П Ч Я А (87, 70) И Р Ш Б (64, 30) Й С Щ В (70, 37) К Т Ъ Г (60, 10) Л У Ы Д М Ф Ь Е Н Х Э Ж О Ц Ю
  • 27. Пример 2 Шифротекст: Q=(66, 51) R=(54, 18) Q=(80, 7) R=(31, 71) Q=(77, 22) R=(15, 54) Q=(26, 72) R=(78, 74) Q=(60, 79) R=(75, 35) Q=(54, 71) R=(4, 18) Q=(52, 55) R=(81, 77) Q=(60, 10) R=(33, 68) Q=(71, 82) R=(37, 42) Q=(77, 67) R=(15, 35) Q=(46, 1) R=(37, 47) Q=(37, 47) R=(50, 78) Q=(41, 63) R=(71, 82) Q=(45, 26) R=(37, 47) Q=(53, 15) R=(3, 26) Q=(88, 35) R=(51, 21) Q=(88, 35) R=(36, 5) Q=(51, 68) R=(75, 35) Q=(26, 17) R=(81, 12) Q=(57, 39) R=(20, 16) Q=(43, 58) R=(51, 21) Q=(64, 59) R=(50, 78) Q=(36, 84) R=(66, 38) Q=(41, 26) R=(8, 27) Q=(2, 45) R=(8, 27) Q=(75, 54) R=(8, 62) Q=(36, 84) R=(20, 16) Q=(14, 2) R=(2, 45) Q=(79, 16) R=(65, 49) Q=(43, 58) R=(20, 16) Q=(2, 45) R=(50, 78) Q=(50, 78) R=(64, 30) Q=(3, 63) R=(83, 14) Q=(54, 71) R=(52, 55) Q=(71, 82) R=(37, 42) Q=(78, 74) R=(70, 37) Q=(45, 63) R=(88, 54) Q=(4, 18) R=(16, 20) Q=(46, 1) R=(78, 74) Q=(22, 41) R=(46, 88) Q=(64, 59) R=(64, 59) Q=(64, 59) R=(2, 45) Q=(37, 47) R=(8, 62) Q=(1, 87) R=(65, 40) Q=(0, 83) R=(2, 44) Q=(0, 6) R=(2, 44) Q=(88, 35) R=(75, 54) Q=(16, 20) R=(22, 48) Q=(51, 68) R=(36, 5) Q=(50, 78) R=(60, 79) Q=(5, 21) R=(77, 22) Q=(60, 10) R=(36, 5) Q=(64, 59) R=(77, 22) Q=(88, 54) R=(57, 39) Q=(20, 16) R=(5, 68) Q=(50, 11) R=(36, 5) Q=(75, 35) R=(27, 7) Q=(2, 44) R=(88, 35) Q=(39, 60) R=(70, 52) Q=(78, 74) R=(36, 5) Q=(77, 22) R=(14, 87) Q=(57, 39) R=(50, 78) Q=(26, 72) R=(53, 15) Q=(50, 78) R=(66, 38) Q=(81, 12) R=(78, 15) Q=(37, 42) R=(5, 68) Q=(8, 62) R=(87, 19) Q=(64, 59) R=(88, 54) Q=(51, 21) R=(2, 44) Q=(74, 2) R=(22, 41) Q=(37, 42) R=(71, 82) Q=(26, 72) R=(57, 50) Q=(3, 26) R=(15, 54) Q=(4, 71) R=(8, 62) Q=(66, 51) R=(46, 88) Q=(16, 69) R=(43, 31) Q=(47, 74) R=(51, 68) Q=(32, 8) R=(32, 8) Q=(64, 30) R=(3, 26) Q=(66, 51) R=(43, 31) Q=(2, 45) R=(53, 74) Q=(74, 2) R=(75, 54) Q=(27, 7) R=(5, 68) Q=(2, 45) R=(8, 27) Q=(31, 71) R=(78, 15) Q=(42, 5) R=(27, 82) Q=(33, 21) R=(31, 71) Q=(0, 83) R=(26, 72) Q=(37, 47) R=(22, 48) Q=(83, 75) R=(81, 77) Q=(43, 31) R=(80, 82) Q=(60, 10) R=(60, 10) Q=(60, 10) R=(87, 19) Q=(1, 87) R=(22, 41)
  • 29. [рекомендации и правила использования]
  • 30. Криптографически «слабые» кривые (которых следует избегать) • Кривые над 𝐹2 𝑚, где m − не простое число. Шифрование на этих кривых подвержено атакам Вейля. • Кривые с |𝐸(𝐹𝑞)| = 𝑞 уязвимы для атаки, которая отображает точки данной кривой в аддитивную группу поля 𝐹𝑞.
  • 32. Быстрая редукция (NIST-кривые) Деление по модулю p (которое необходимо для операций сложения и умножения может выполняться быстрее, если в качестве p выбрать простое число, близкое к степени числа 2. В частности, в роли p может выступать простое число Мерсенна. Например, хорошим выбором являются 𝑝 = 2251 − 1 или 𝑝 = 2256 − 232 − 29 − 28 − 27 − 26 − 24 − 1. Национальный институт стандартов и технологий (NIST) рекомендует использовать подобные простые числа в качестве p. Еще одним преимуществом кривых, рекомендованных NIST, является выбор значения a = -3, что ускоряет операцию сложения в координатах Якоби.
  • 33. Эллиптические кривые, рекомендованные NIST NIST рекомендует 15 эллиптических кривых, многие из которых были получены Jerry Solinas (NSA) на базе наработок Neal Koblitz. В частности, FIPS 186-3 рекомендует 10 конечных полей. Некоторые из них: • поля 𝐹𝑝, где простое p имеет длину 192, 224, 256, 384 или 521 бит, • поля 𝐹2 𝑚, где m = 163, 233, 283, 409 или 571. Причём для каждого конечного поля рекомендуется одна эллиптическая кривая. Эти конечные поля и эллиптические кривые выбраны, как часто ошибочно считается, из-за высокого уровня безопасности. По заявлениям NIST, их выбор был обоснован эффективностью программной реализации. Имеются сомнения в безопасности по крайней мере нескольких из них.
  • 34. Размер ключа • Самым быстрым алгоритмам, решающим задачу дискретного логарифмирования на эллиптических кривых, таким как алгоритм Шенкса и ρ-метод Полларда, необходимо 𝑂( 𝑛) операций. Поэтому размер поля должен как минимум в два раза превосходить размер ключа. Например, для 128-битного ключа рекомендуется использовать эллиптическую кривую над полем 𝐹𝑝, где p имеет длину 256 бит. • Самые сложные схемы на эллиптических кривых, публично взломанные к настоящему времени, содержали 112-битный ключ для конечного простого поля и 109-битный ключ для конечного поля характеристики 2. В июле 2009 года кластер из более чем двухсот Sony Playstation 3 за 3,5 месяца нашел 109-битный ключ. Ключ над полем характеристики 2 был найден в апреле 2004 года, с использованием 2600 компьютеров, в течение 17 месяцев
  • 35. Безопасность криптографии с использованием эллиптических кривых • Безопасность, обеспечиваемая криптографическим подходом на основе эллиптических кривых, зависит от того, насколько трудной для решения оказывается задача определения k по данным kP и P. Эту задачу обычно называют проблемой логарифмирования на эллиптической кривой. Наиболее быстрым из известных на сегодня методов логарифмирования на эллиптической кривой является так называемый p-метод Полларда. • К тому же, при равных длинах ключей вычислительные усилия, требуемые при использовании RSA и криптографии на основе эллиптических кривых, не сильно различаются. Таким образом, в сравнении с RSA при равных уровнях защиты явное вычислительное преимущество принадлежит криптографии на основе эллиптических кривых с более короткой длиной ключа
  • 36. В таблице сравнивается эффективность этого метода и метод разложения на простые множители с помощью решета в поле чисел общего вида. Из нее видно, что по сравнению с RSA в случае применения методов криптографии на эллиптических кривых примерно тот же уровень защиты достигается со значительно меньшими значениями длины ключей. Вычислительные усилия, необходимые для криптоанализа при использовании эллиптических кривых и RSA
  • 37. Варианты атак • Алгоритм Полига-Хеллмана. Алгоритм решения дискретного логарифма. Предположим, что n — количество точек эллиптической кривой. Пусть число n раскладывается на простые числа 𝑝1, 𝑝2, … , 𝑝 𝑛. Суть метода сводится к тому, чтобы найти дискретные логарифмы по модулю числе 𝑝𝑖, а затем получить общее решение с помощью китайской теоремы об остатках. Атака позволяет свести проблему дискретного логарифма в большом поле n к той же задаче, но с гораздо меньшим полем p. Для того, чтобы противостоять атаке необходимо просто выбирать кривые, количество точек которых делится на очень большое простое число q≈n. • Алгоритм Шенкса, более известный как шаги младенца/шаги гиганта. Типичный пример time memory trade off. Для группы размером n вычисляется таблиц размером n1/2, затем по этой таблице происходит поиск нужного элемента. Сложность алгоритма 𝑂 𝑞 , где q — количество точек эллиптической кривой.
  • 38. Приложения Большинство криптосистем современной криптографии естественным образом можно «переложить» на эллиптические кривые. Основная идея заключается в том, что известный алгоритм, используемый для конкретных конечных групп, переписывается для использования групп рациональных точек эллиптических кривых: • алгоритм ECDSA основывающийся на ЭЦП, • алгоритм ECDH, основывающийся на алгоритме Диффи — Хеллмана, • алгоритм ECMQV, основывающийся на MQV, протоколе распределения ключей Менезеса- Кью-Венстоуна, • ГОСТ Р 34.10-2012, • факторизация Ленстры с помощью эллиптических кривых, • dual EC DRBG. Необходимо отметить, что безопасность таких систем цифровой подписи опирается не только на криптостойкость алгоритмов шифрования, но и на криптостойкость используемых криптографических хэш-функций и генераторов случайных чисел. По обзору 2013 года чаще всего используются кривые nistp256, nistp384, nistp521, secp256k1, secp384r1, secp521r1
  • 41. ЭЦП обеспечивает: • Целостность • Неотказуемость • Авторство
  • 43. К выбранным параметрам предъявляются следующие ограничения: • Должно выполняться сравнение 𝑝 𝑡 ≠ 1(𝑚𝑜𝑑 𝑞) для 𝑡 = 1, 𝐵, где 𝐵 = 31, если 2254 < 𝑝 < 2256, и 𝐵 = 131, если 2508 < 𝑝 < 2512. • Порядок группы точек 𝐸 𝑝(𝑎, 𝑏) не должен совпадать с p (q < p) • Инвариант кривой должен удовлетворять соотношению 𝐽 𝐸 ≠ 0,1728
  • 44. Пример: Рассмотрим эллиптическую кривую 𝐸11 −2,5 , т.е. кривая описывается соотношением 𝑦2 ≡ 𝑥3 − 2𝑥 + 5 𝑚𝑜𝑑 11 . Пусть выбрана точка G = (7,2), тогда порядок подгруппы q=7 И пусть секретный ключ d=2, тогда Q=(0,7). Предположим, что хэш сообщения выражается как e=5. Выберем случайно k = 3. Вычисляем точку на эллиптической кривой C=kG=(9,1). Найдем r = 9 mod 7 = 2. Вычислим s = (rd + ke) mod q = (2*2+3*5) mod 7 = 5 Цифровая подпись готова – это пара чисел (2,5)
  • 45. Выводы: Основные плюсы: - Гораздо меньшая длина ключа по сравнению к «классической» асимметричной криптографией. - Скорость работы эллиптических алгоритмов гораздо выше, чем у классических. Это объясняется как размерами поля, так и применением более близкой для компьютеров структуры бинарного конечного поля. - Из-за маленькой длины ключа и высокой скорости работы, алгоритмы асимметричной криптографии на эллиптических кривых могут использоваться в смарт-картах и других устройствах с ограниченными вычислительными ресурсами. Основные минусы эллиптической криптографии: - Все плюсы эллиптической криптографии вытекают из одного конкретного факта: для задачи дискретного логарифмирования на эллиптических кривых не существует субэкспоненциальных алгоритмов решения. Это позволяет уменьшить длину ключа и увеличить производительность. Однако если такие алгоритмы появятся, то это будет означать крах эллиптической криптографии. - Эллиптическая криптография — это очень сложно. Не то чтобы я считал обычную асимметричную криптографию совсем уж простой штукой. Но «эллиптика» — это огромное количество тонкостей, которые необходимо учесть. Начиная с выбора эллиптической кривой и заканчивая генерацией ключей. При массовом переходе на эллиптику скорее всего обязательно будет большое количество ошибок и уязвимостей, которые уже отработаны для более привычных методов.