Реферат: Методи вирішення проблем дискретного логарифмування
Методи вирішення проблем дискретного логарифмування
1. Метод Поліга-Хелмана
Метод Поліга-Хелмана запропонований в 1978 році для визначення
дискретного логарифма в мультиплікативній групі поля .
Він заснований на відомій для
групи факторизації порядку групи за ступенями простих чисел
Стосовно до адитивної групи точок
з генератором порядку
маємо
Відповідно до відомої китайської
теореми про залишки існує єдине натуральне число
, таке що
Після визначення значення дискретний
логарифм
здобувають
за допомогою розширеного алгоритму Евкліда. Наведемо приклад.
Приклад 1
Нехай порядок циклічної групи дорівнює
, а точка
, тобто
. Це значення
має бути визначене в підсумку рішення ECDLP.
Тут На першому етапі визначаємо точку
Отримуємо
точку
другого
порядку з відомими координатами
Оскільки
, маємо перше порівняння
На наступному етапі знаходимо одну
із точок третього порядку Ці точки також відомі, тому з
отримуємо наступне
порівняння
Нарешті, визначаємо точку 5-го
порядку й
отримуємо
.
Наведені три порівняння дають
єдине розв’язання В загальному випадку необхідно
знати координати
точок із загальної кількості
.
Задача ускладнюється із зростанням переважно простого
співмножника в розкладанні порядку групи. У цьому зв'язку для
захисту від атаки Поліга-Хелмана порядок
криптосистеми обирають рівним великому
простому числу, при цьому порядок кривої
називають ² майже
простим ² (з малим множником
).
2. Метод ділення точок на два
Метод ділення точок на два. Для кривих над полем запропонований
метод розв’язання
, заснований на процедурі,
зворотної обчисленню точки
шляхом послідовних подвоєнь і
додавань при двійковому поданні числа
.
У звичайній
арифметиці двійкове подання цілого числа починається з визначення молодшого
біта: при непарних
з
віднімається 1 (це молодший біт
двійкового подання
) і результат ділиться на 2.
Визначимо порядок кривої як
де - велике просте число (в існуючих криптографічних
стандартах
),
- непарне число.
Нехай - точка порядку
, тоді генератор криптосистеми
може бути визначений як точка
порядку
.
Введемо операцію ділення точки несуперсингулярної кривої
:
(1)
на два як зворотну подвоєнню.
Нехай маємо точку та точку
з координатами
(2)
Інакше кажучи, визначення означає
знаходження координат точки
з відомої точки
Відповідно до (2) для
цього необхідно вирішувати квадратне рівняння
(3)
У загальному випадку це рівняння
має два розв'язки й
при наслідку
(4)
Якщо слід то точка
- непарна точка
- непарне). Під час виконання (4) отримуємо дві точки:
і
ділення точки
на два з
координатами
(5)
З (1) і (5) неважко отримати співвідношення між координатами точок ділення
які можуть бути корисні при криптоаналізі. Відзначимо дві властивості точок ділення.
Точки ділення пов'язані як , де
- точка другого порядку, дорівнює
. Дійсно,
,
тому що
Якщо - точка непарного порядку
, тобто
, то точка
ає порядок , тому що
й
.
У порівнянні з подвоєнням точки
(2), яке вимагає обчислення двох множень й інверсії елемента (найбільш трудомістка
обчислювальна операція), ділення (5) не вимагає інверсії елемента й може бути
реалізоване набагато швидше.
Найбільш ефективне розв’язання рівняння (3) і операцій (4), (5) виконуються в НБ (нормальному базисі) мінімальної складності, зокрема, в ОНБ (оптимальному нормальному базисі).
Розв’язання квадратного рівняння в
НБ здійснюється за допомогою простої -бітової рекурентної
послідовності. Слід (4) елементів парної ваги дорівнює 0, а непарної ваги - 1.
Піднесення у квадрат (добування
кореня квадратного) у нормальному базисі зводиться до циклічного зсуву вправо
(вліво) -бітового
елемента поля.
Поряд з додаванням елементів за
модулем 2 перераховані операції часто називають ²безкоштовними² і
не враховують у наближених розрахунках обчислювальної складності. Ділення
відповідно до (5) вимагає лише двох множень у нормальному базисі як найбільш складних
операцій. Це приблизно на порядок збільшує швидкість виконання операцій ділення
на два в порівнянні з операцією подвоєння точки.
Розглянемо можливі підходи до розв’язання задач дискретного логарифма. Найбільш проста ситуація виникає для кривої
,
,
з коефіцієнтом , порядок якої
Максимальний простий порядок досягається
при
.
Покладемо, що
, а генератор
має порядок
. У циклічній
групі
всі
точки є точками подільності на два, відповідно до (4) їх
-координати мають слід
й, отже,
непарну вагу при поданні в НБ. При діленні на два отримуємо дві точки, одна з
яких належить групі
й має порядок
, а інша максимальний порядок
Вони мають відповідно непарну й
парну вагу -координат
і легко розрізнюються без множення на
Вибір однієї із точок (5) порядку
здійснюється
досить просто. Оскільки в групі
випливає, що
то після множення визначається вага
елемента
або
його слід.
При (парна вага елемента) користуються
другою формулою (5), у протилежному випадку - першою формулою (5). Таким чином, ділення на два з
вибором точки порядку
практично зводиться до двох
множень у поле.
Відзначимо, що при послідовному
діленні на два для половини всіх кривих (з коефіцієнтом і порядком
достатнім
виявляється лише одне множення в поле.
Для цього при кожному діленні
обчислюється лише розв'язання квадратного рівняння (4) і
координата
точки ділення. Нехай
, і при послідовному діленні на
два з вибором точки із групи
одержуємо
.
Згідно з (5) (перша формула) , . . . ,
, тому
підсумовуючи рівності
отримуємо з урахуванням першого ділення
(6)
де кожне з рішень вибирається так, щоб
виконувалася умова
тобто в НБ вагу вектора
була непарним.
Як видно, рекурентне обчислення за
формулою (6) не вимагає обчислення координати на кожному кроці ділення,
замість неї слід лише запам'ятати параметри
й
. За необхідності
– координата
обчислюється як
Таким чином, відповідно до (6)
алгоритм послідовного ділення на дві точки із групи вимагає лише одного множення
елементів у поле
. Це чудова властивість операції
ділення на два можна використати з метою збільшення продуктивності обчислень як
при криптоаналізі, так і при швидкому експоненціюванні
будь-якої точки із групи
.
Якщо припустити, що для будь-якої
точки ми
знайшли спосіб визначення парності (непарності)
, то послідовна процедура
віднімання й ділення на два з вибором точки із групи
за поліноміальний час приведе нас
до відомої точки
.
Значення у двійковому поданні визначається
самою процедурою віднімання-ділення. Зрозуміло, що така функція вже не
однобічна. Це питання поки залишається відкритим і
доводиться вирішувати відомими методами
з експонентною складністю.
Для кривої з коефіцієнтом
оптимальний
порядок
.
При діленні на дві точки із групи
, як й у попередньому випадку,
отримуємо дві точки порядку
й
, однак обидві точки ділення парні
й мають слід
- координат
(і, відповідно, парна
вага в нормальному базисі).
Визначити, яка з них має порядок , можна шляхом
множення кожної з них на
, але це вимагає більших
обчислювальних витрат. Більш раціональне дворазове ділення на два, яке в одній
з галузей дасть дві точки порядку
, вони не діляться на два й мають
координати непарної ваги. Ця галузь відбраковується й залишається точка із
групи
Приклад 1. Розглянемо криву Коблиця над полем
, яка має
порядок
.
Всі точки
з
генератором
наведено
в таблиці 1
Таблиця 1- Координати точок кривої
над полем
|
|
|
|
|
|
|
|
|
|
|
|
|
5 | 29 | 13 | 16 | 20 | 30 | 10 | 4 | 9 | 23 | 0 |
|
9 | 7 | 22 | 7 | 5 | 19 | 30 | 29 | 10 | 28 | _ |
|
12P |
13P |
14P |
15P |
16P |
17p |
18P |
19P |
20P |
21P |
22P |
|
8 | 22 | 27 | 21 | 1 | 11 | 15 | 18 | 2 | 26 | _ |
|
19 | 30 | 28 | 26 | 14 | 15 | 25 | 23 | 28 | 27 | 0 |
|
23P |
24P |
25P |
26P |
27P |
28P |
29P |
30P |
31P |
32P |
33P |
|
26 | 2 | 18 | 15 | 11 | 1 | 21 | 27 | 22 | 8 | 0 |
|
13 | 30 | 20 | 19 | 21 | 15 | 23 | 14 | 11 | 27 | 0 |
|
34P |
35P |
36P |
37P |
38P |
39P |
40P |
41P |
42P |
43P |
44P |
|
23 | 9 | 4 | 10 | 30 | 20 | 16 | 13 | 29 | 5 | * |
|
25 | 27 | 25 | 18 | 7 | 29 | 23 | 29 | 14 | 15 | * |
Приймемо
.
При діленні
точки на
два отримаємо дві точки
й
.
Розглянемо всі операції при діленні точки відповідно до (3), (5) (друга з формул) в ОНБ із ізоморфізмом, тобто
,
.
У нормальному базисі маємо . Розв’язуємо
рівняння (3)
.
Відповідно до таблиці 2 , тоді одне з
розв’язань для
легко отримати, задаючи перший
біт, скажімо, рівним 0.
Таблиця 2 - Елементи поля як степені елемента
в ОНБ
0 | 00000 | 1 | 11111 | - | - |
|
10000 |
|
00011 |
|
01101 |
|
01000 |
|
10001 |
|
10110 |
|
00100 |
|
11000 |
|
01011 |
|
00010 |
|
01100 |
|
10101 |
|
00001 |
|
00110 |
|
11010 |
|
10010 |
|
10111 |
|
10011 |
|
01001 |
|
11011 |
|
11001 |
|
10100 |
|
11101 |
|
11100 |
|
01010 |
|
11110 |
|
01110 |
|
00101 |
|
01111 |
|
00111 |
При цьому інші біти визначаються із суми
, тобто
.
Друге розв’язання, мабуть,
дорівнює .
Легко перевірити, що отримані розв’язання задовольняють рівняння
.
Згідно з (5) (перша з формул) і даних таблиці 2 маємо
Отримано дві точки:
і
.
Для визначення кожної необхідно виконати по два множення елементів поля. Неважко перевірити виконання умови
дискретне логарифмування метод
,
,
зокрема,
.
Обидві точки мають сліди
,
і, отже, діляться на два, але
мають різні порядки. Точка має порядок 22, а точка
- порядок Для визначення порядку достатньо виконати ще
одне ділення на два. Якщо поділити точку
, то отримаємо дві точки порядку
44, що не діляться на два (з непарною вагою x координат). При діленні точки
отримаємо дві
точки з порядками 22 й 11 (з парною вагою x координат).