Главная страница
Навигация по странице:

  • Вычисление точек на эллиптической кривой

  • "дискретного логарифмирования на эллиптической кривой».

  • Способы использования эллиптических кривых. (Задача обмена ключами). Подготовительный этап.

  • Расчет открытого ключа

  • Расчет общего секретного ключа

  • Создание подписи

  • Шифрование/дешифрование с использованием эллиптических кривых

  • КЭК. Криптография с помощью эллиптических кривых


    Скачать 1.4 Mb.
    НазваниеКриптография с помощью эллиптических кривых
    Дата25.01.2023
    Размер1.4 Mb.
    Формат файлаppt
    Имя файлаКЭК.ppt
    ТипДокументы
    #905016

    Криптография с помощью эллиптических кривых


    Выполнила: Яганина Ольга, студентка 231 группы


    Эллиптическая криптография
    - раздел криптографии, который изучает асимметричные криптосистемы, основанные на эллиптических кривых над конечными полями


    В общем случае уравнение эллиптической кривой E имеет вид:


    или (путём замены переменных)

    В качестве примера рассмотрим эллиптическую кривую E, уравнение которой имеет вид:


    y2 + y = x3 - x2
    На кривой лежат четыре точки, координаты которых являются целыми числами.
    Это точки А (0, 0), В (1, -1), С (1, 0) и D (0, -1)

    Формы эллиптических кривых:

    Формы эллиптических кривых:

    Формы эллиптических кривых:

    Для определения операции сложения для точек на эллиптической кривой сделаем следующие предположения:


    • На плоскости существует бесконечно удаленная точка 0 ∈ E, в которой сходятся все вертикальные прямые
    • Будем считать, что касательная к кривой пересекает точку касания два раза
    • Если три точки эллиптической кривой лежат на прямой линии, то их сумма есть 0

    Сложение точек на эллиптической кривой


    Точка О – бесконечность
    Р+(-Р)=О
    Точка «касания» - берется дважды (сложить с собой)
    Сложить 2 точки Р и Q
     Провести через них прямую
     Пересечение в 3-й точке R :
    P + Q + R = O
     Отобразить 3-ю точку относительно оси Х (обратный элемент) :
    P + Q = -R


    В криптографии с использованием эллиптических кривых все значения вычисляются по модулю p, где p является простым числом. Элементами являются пары неотрицательных целых чисел, которые меньше р (простое число) и удовлетворяют частному виду эллиптической кривой:
    y2 x3 + ax + b (mod p)


    Эллиптическая кривая:
    y2 x3 + ax + b (mod p)
    Такую кривую будем обозначать Ep (a,b)
    Числа а и b должны быть меньше р и должны удовлетворять условию
    4a3 + 27b2 (mod p) ≠ 0

    Вычисление точек на эллиптической кривой:


    1) Для каждого х ( 0 ≤ х ≤ р) вычисляется
    x3 + ax + b (mod p)
    2) Выясняется: имеет ли это значение квадратный корень
    3) Если корень – есть, то эти два значения (х,у) являются точками
    Ep (a,b)


    Свойства множества точек Ep (a,b)


    Р + 0 = Р
    2) Если Р = (x,y), то Р + (x,-y) = 0
    Точка (x,-y) является отрицательным значением точки Р и обозначается -Р


    3)Если Р = (x1,y1) и Q = (x2,y2), где P ≠ Q, то P + Q = (x3,y3) определяется по следующим формулам:
    x3  λ2 - x1 - x2 (mod p)
    y3  λ (x1 - x3) - y1 (mod p)
    где,


    Свойства множества точек Ep (a,b)


    (y2 - y1)/(x2 - x1) , если P ≠ Q
    λ = {
    (3x12 + a)/2y1 , если P = Q
     Число λ есть угловой коэффициент секущей, проведенной через точки P = (x1, y1) и Q = (x2, y2).
    При P = Q секущая превращается в касательную.


    Задача, которую должен решить атакующий, есть задача "дискретного логарифмирования на эллиптической кривой».
    Даны точки P и Q на эллиптической кривой  
    Ep (a,b). Необходимо найти коэффициент k < p такой, что
    P = k × Q
    Относительно легко вычислить P по данным k и Q, но довольно трудно вычислить k, зная P и Q.

    Способы использования эллиптических кривых. (Задача обмена ключами). Подготовительный этап.


    Выбирается простое число р ≈ 2180 и параметры a и b для уравнения эллиптической кривой. Это задает множество точек Ep (a,b). В Ep (a,b) выбирается генерирующая точка G = (x1,y1). При выборе G важно, чтобы наименьшее значение n, при котором n × G = 0, оказалось очень большим простым числом. Параметры Ep (a,b) и G криптосистемы являются параметрами, известными всем участникам.

    Расчет открытого ключа


    1) Участник А выбирает целое число nA, меньшее n. Это число является закрытым ключом участника А.
    2) Участник А вычисляет открытый ключ
    PA = nA × G (это - точка на Ep (a,b)).
    3) Участник В выбирает закрытый ключ nB и вычисляет открытый ключ PB.
    4) Участники обмениваются открытыми ключами, и вычисляют общий секретный ключ K

    Расчет общего секретного ключа


    Участник А:
    K = nA × PB
    Участник В:
    K = nВ × PА
    Общий секретный ключ – это пара чисел.
    Если ключ предполагается использовать в качестве сеансового ключа для алгоритма симметричного шифрования, то из этой пары необходимо создать одно значение.

    Алгоритм цифровой подписи на основе эллиптических кривых ECDSA (Elliptic Curve Digest Signature Algorithm)


    Создание ключей:
    1) Выбирается эллиптическая кривая   Ep (a,b). Число точек на ней должно делиться на большое целое n.
    2) Выбирается точка Р  Ep (a,b).
    3) Выбирается случайное число d  [1, n-1]
    4) Вычисляется Q = d × P.
    5) Закрытым ключом является d, открытым ключом - (E, P, n, Q).


    Создание подписи:
    1) Выбирается случайное число k  [1, n-1].
    2) Вычисляется k × P = (x1, y1) и r = x1 (mod n)
    Проверяется, чтобы r не было равно нулю, так как в этом случае подпись не будет зависеть от закрытого ключа. Если r = 0, то выбирается другое случайное число k.


    3) Вычисляется k-1 mod n
    4) Вычисляется s = k-1 (Н(M) + dr) (mod n)
    Проверяется, чтобы s не было равно нулю, так как в этом случае необходимого для проверки подписи числа s-1 mod n не существует. Если s = 0, то выбирается другое случайное число k.
    5) Подписью для сообщения М является пара чисел (r,s).

    Шифрование/дешифрование с использованием эллиптических кривых


    Задача состоит в том, чтобы зашифровать сообщение M , которое может быть представлено в виде точки на эллиптической кривой .Участник B выбирает закрытый ключ и вычисляет открытый ключ
    .Чтобы зашифровать сообщение используется открытый ключ получателя
    Участник A выбирает случайное целое положительное число k и вычисляет зашифрованное сообщение , являющееся точкой на эллиптической кривой.


    Чтобы дешифровать сообщение, участник В умножает первую координату точки на свой закрытый ключ и вычитает результат из второй координаты:
    Pm + k × PB - nB × (k × G) =
    Pm + k × (nB × G) - nB × (k × G) = Pm


    Участник А зашифровал сообщение Pm добавлением к нему kxPB. Никто не знает значения k, поэтому, хотя PB и является открытым ключом, никто не знает k × PB.
    Противнику для восстановления сообщения придется вычислить k, зная G и k × G. Сделать это будет нелегко.


    Получатель также не знает k, но ему в качестве подсказки посылается k × G. Умножив k × G на свой закрытый ключ, получатель получит значение, которое было добавлено отправителем к незашифрованному сообщению. Тем самым получатель, не зная k, но имея свой закрытый ключ, может восстановить незашифрованное сообщение.

    Основные плюсы:


    Гораздо меньшая длина ключа по сравнению к «классической» асимметричной криптографией
    Скорость работы эллиптических алгоритмов гораздо выше, чем у классических. Это объясняется как размерами поля, так и применением более близкой для компьютеров структуры бинарного конечного поля
    Из-за маленькой длины ключа и высокой скорости работы, алгоритмы асимметричной криптографии на эллиптических кривых могут использоваться в смарт-картах и других устройствах с ограниченными вычислительными ресурсами

    Минусы:


    Все плюсы эллиптической криптографии вытекают из одного конкретного факта: для задачи дискретного логарифмирования на эллиптических кривых не существует субэкспоненциальных алгоритмов решения. Это позволяет уменьшить длину ключа и увеличить производительность. Однако если такие алгоритмы появятся, то это будет означать крах эллиптической криптографии
    Эллиптическая криптография — это очень сложно. Начиная с выбора эллиптической кривой и заканчивая генерацией ключей. При массовом переходе на эллиптику скорее всего обязательно будет большое количество ошибок и уязвимостей, которые уже отработаны для более привычных методов



    написать администратору сайта