Смекни!
smekni.com

Методи вирішення проблем дискретного логарифмування (стр. 1 из 4)

Методи вирішення проблем дискретного логарифмування


1. Метод Поліга-Хелмана

Метод Поліга-Хелмана запропонований в 1978 році для визначення дискретного логарифма в мультиплікативній групі поля

.

Він заснований на відомій для групи факторизації порядку

групи за ступенями простих чисел

Стосовно до адитивної групи точок з генератором

порядку
маємо
Відповідно до відомої китайської теореми про залишки існує єдине натуральне число
, таке що

Після визначення значення

дискретний логарифм
здобувають за допомогою розширеного алгоритму Евкліда. Наведемо приклад.

Приклад 1

Нехай порядок циклічної групи

дорівнює
, а точка
, тобто
. Це значення має бути визначене в підсумку рішення ECDLP.

Тут

На першому етапі визначаємо точку
Отримуємо точку
другого порядку з відомими координатами
Оскільки
, маємо перше порівняння

На наступному етапі знаходимо одну із точок третього порядку

Ці точки також відомі, тому з
отримуємо наступне порівняння

Нарешті, визначаємо точку 5-го порядку

й отримуємо

.

Наведені три порівняння дають єдине розв’язання

В загальному випадку необхідно знати координати
точок із загальної кількості
.

Задача ускладнюється із зростанням переважно простого співмножника в розкладанні порядку

групи. У цьому зв'язку для захисту від атаки Поліга-Хелмана порядок
криптосистеми обирають рівним великому простому числу, при цьому порядок кривої
називають ² майже простим ² (з малим множником
).

2. Метод ділення точок на два

Метод ділення точок на два. Для кривих над полем

запропонований метод розв’язання
, заснований на процедурі, зворотної обчисленню точки
шляхом послідовних подвоєнь і додавань при двійковому поданні числа
.

У звичайній арифметиці двійкове подання цілого числа починається з визначення молодшого біта: при непарних

з
віднімається 1 (це молодший біт двійкового подання
) і результат ділиться на 2.

Якщо частка парна, ділення триває, у протилежному випадку виконується віднімання 1 і ділення на 2 (отримуємо наступний розряд числа рівний відповідно 0 або 1). Процедура триває до одержання частки, рівної 1. Якщо точка

– генератор простого порядку
, то при знанні відповіді на питання про парність (непарність) множника
точки
легко вирішується ( у поліноміальному часі ) описаною вище послідовною процедурою віднімання-ділення на два.

У простому полі

ділення на два тотожно множення на елемент

Виявляється замість багаторазового додавання ділення точки на два виконується набагато ефективніше й швидше.

Визначимо порядок кривої як

де

- велике просте число (в існуючих криптографічних стандартах
),
- непарне число.

Нехай

- точка порядку
, тоді генератор криптосистеми може бути визначений як точка
порядку
.

Введемо операцію ділення точки несуперсингулярної кривої


:
(1)

на два як зворотну подвоєнню. Нехай маємо точку

та точку
з координатами

(2)

Інакше кажучи, визначення

означає знаходження координат точки
з відомої точки
Відповідно до (2) для цього необхідно вирішувати квадратне рівняння

(3)

У загальному випадку це рівняння має два розв'язки

й
при наслідку

(4)

Якщо слід

то точка
- непарна точка
- непарне). Під час виконання (4) отримуємо дві точки:
і
ділення точки
на два з координатами

(5)

З (1) і (5) неважко отримати співвідношення між координатами точок ділення

які можуть бути корисні при криптоаналізі. Відзначимо дві властивості точок ділення.