ECDLP

ECDLP (Elliptic Curve Discrete Logarithm Problem) — задача дискретного логарифмирования в группе точек эллиптической кривой.

Пусть даны эллиптическая кривая E, конечное поле Fp и точки P, Q ∈ E(Fp). Задача ECDLP: найти такое k, если оно существует, что Q = [k]P.

Определения

Эллиптической кривой E над конечным полем Fp называется кривая вида (форма Вейерштрасса):

, где a, b ∈ Fp.

Набор точек на эллиптической кривой в поле Fp, включающий точку «бесконечность» (обозначается как Ο), образует конечную абелеву группу и обозначается как E(Fp).

Точка Q ∈E (Fp) называется обратной точкой к P ∈ E(Fp), если P + Q = Ο и обозначается как Q = -P.

Для натурального числа n и P ∈ E(Fp) будем считать:

Записи [n]P и nP эквиваленты. Определение можно расширить для любого целого числа n, если использовать -P.

Порядком группы точек называется число N равное мощности множества E(Fp) и обозначается как |E(Fp)| = N. Обычно в эллиптической криптографии берутся кривые такие, что N = h * l, где h = 1, 2 или 4, а l — большое простое число.

Порядком точки P ∈ E(Fp) называется минимальное число s такое, что [s]P = Ο. При этом образуется подгруппа и точка P называется генератором .

Алгоритмы решения

Полный перебор

Является самой просто атакой в реализации. Необходимо только уметь делать операцию R = [k]P.

Алгоритм

  1. if , then  — решение
  2. else ; перейти к [2].

Сложность алгоритма: Ο(N).

Описание

Пусть G — подгруппа E(Fp), (то есть предполагается, что число N может быть факторизовано), и .

Будем решать задачу о поиске k по модулю , затем, используя китайскую теорему об остатках, найдем решение k по модулю N.

Из теории групп известно, что существует изоморфизм групп:

где  — циклическая подгруппа G,

Тогда проекция на :

Следовательно, в .

Покажем, как решить задачу в , сведя её к решению ECDLP в .

Пусть и .

Число определено по модулю . Тогда можно записать k в следующем виде:

Найдем значения по индукции. Предположим, известно  — значение , то есть

Теперь хотим определить и таким образом вычислить :

Тогда .

Пусть и , тогда

Теперь  — элемент порядка , чтобы получить элемент порядка и, следовательно, свести задачу в необходимо умножить предыдущее выражение на . Т.о.

и

Получили ECDLP в поле в виде .

Предполагая, что можно решить эту задачу в , находим решение в . Используя китайскую теорему об остатках, получаем решение ECDLP в .

Как говорилось выше, на практике берутся эллиптические кривые такие, что , где  — очень большое простое число, что делает данный метод малоэффективным.

Пример

Шаг 1. Найти

  • Находим проекции точек на :
  • Решаем

Шаг 2. Найти

  • Находим проекции точек на :
  • Решаем
Заметим, что , тогда

Шаг 3. Найти

  • Находим проекции точек на :
  • Решаем

Шаг 4. Найти

  • Из китайской теоремы об остатках для значений, полученных на предыдущих шагах 1-3, имеем, что

Алгоритм Шенкса (Baby-Step/Giant-Step method)

Описание

Пусть  — циклическая подгруппа .

Представим в виде:

Так как , то .

Вычисляем список «маленьких шагов» , и сохраняем пары .

Сложность вычислений: .

Теперь вычисляем «большие шаги». Пусть , найдём , .

Во время поиска пробуем найти среди сохранённых пар такую, что . Если удалось найти такую пару, то .

Или, что то же самое:

.

Сложность вычислений «больших шагов»:.

В таком случае общая сложность метода , но также требуется памяти для хранения, что является существенным минусом алгоритма.

Алгоритм

  1. сохранить
  2. проверить в списке [2]

Описание

Пусть  — циклическая подгруппа .

Основная идея метода — найти различные пары и по модулю такие, что .

Тогда или . Следовательно, .

Чтобы реализовать эту идею, выберем случайную функцию для итераций , и случайную точку для начала обхода. Следующая точка вычисляется как .

Так как  — конечная, то найдутся такие индексы , что .

Тогда .

На самом деле , для .

Тогда последовательность  — периодична с периодом (см. рис).

Так как f случайная функция, то, согласно парадоксу дней рождения, совпадение случится примерно через итераций. Для ускорения поиска коллизий используется метод, придуманный Флойдом для поиска длины цикла: вычисляется сразу пара значений для , пока не найдется совпадение.

Алгоритм

  1. Инициализация.
    Выбрать число ветвей L (обычно берётся 16)
    Выбрать функцию
  2. Вычисление .
    Взять случайные
  3. Вычисление .
    Взять случайные
  4. Подготовка к циклу.
  5. Цикл.
  6. Выход.
    ОШИБКА или запустить алгоритм ещё раз.

Сложность алгоритма: .

Пример

Шаг 1.Определить функцию.

Шаг 2. Итерации.

Шаг 3. Обнаружение коллизии.

  • При :
  • Получаем, что

Литература

Болотов, А. А., Гашков, С. Б., Фролов, А. Б., Часовских, А. А. Элементарное введение в эллиптическую криптографию: Алгебраические и алгоритмические основы. — М. : КомКнига, 2006. — С. 328. — ISBN 5-484-00443-8.

Болотов, А. А., Гашков, С. Б., Фролов, А. Б., Часовских, А. А. Элементарное введение в эллиптическую криптографию: Протоколы криптографии на эллиптических кривых. — М. : КомКнига, 2006. — С. 280. — ISBN 5-484-00444-6.

Galbraith, S.D., Smart, N.P. EVALUATION REPORT FOR CRYPTREC: SECURITY LEVEL OF CRYPTOGRAPHY — ECDLP MATHEMATICAL PROBLEM.

Song Y. Yan Quantum Attacks on ECDLP-Based Cryptosystems. — Springer US, 2013 — ISBN 978-1-4419-7721-2

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.