- •Лекція 11 Складність алгоритмів факторизації.
- •Лекція 12 Еліптичні криві й операції в групах точок еліптичних кривих.
- •Контрольні запитання та завдання
- •Лекція 13
- •Лекція 14 Оптимальний нормальний базис поля . План.
- •Лекція 15 Розрахунок порядку еліптичної кривої. План
- •Лекція 16 Складність деяких методів експоненцирування точки кривої.
- •Алгоритм подвоєння - додавання
- •Алгоритм подвоєння - додавання - вирахування
- •Метод Монтгомері
- •Лекція 17 Проблема дискретного логарифмування.
- •Лекція 18 Складність методів розв’язання проблеми дискретного логарифмування в групі точок еліптичної кривої. Метод Полларда ( продовження). Метод Шенкса. План
- •Лекція 19
- •Лекція 20
Лекція 16 Складність деяких методів експоненцирування точки кривої.
План
1. Алгоритм подвоєння - додавання.
2. Алгоритм подвоєння – додавання - вирахування.
3. Метод вікон з алгоритмом подвоєння – додавання - вирахування.
4. Метод Монтгомері.
5. Метод експоненцирування Монтгомері.
Найпоширенішою операцією у
всіх криптографічних алгоритмах є
- кратне додавання точки
,
позначуване як
Цю операцію звичайно називають скалярним множенням, або, звертаючись до термінології мультиплікативної групи, експоненцируванням точки кривої.
З метою підвищення продуктивності при обчисленні точки багатьма авторами запропоновані різні методи. Дамо короткий опис й оцінку складності найпоширеніших з них .
Підхід до розрахунку точки
може відрізнятися залежно від того, чи
є точка
фіксованою (заздалегідь відомою) або
довільною точкою. У першому випадку
завжди можна користуватися предрозрахунуками
точок, наприклад,
,
які зберігаються в пам'яті. Двійкове
подання числа
дозволяє селектирувати ті з них, які в
результаті підсумовування утворять
точку
.
У другому, більш загальному випадку,
всі обчислення доводиться проводити в
реальному часі.
Нехай порядок
і число
представлене у двійковій системі
Розглянемо спочатку основні
алгоритми експоненцирування
при невідомій заздалегідь точці
Алгоритм подвоєння - додавання
Це самий природний і простий метод, при якому обчислення здійснюються по формулі
Ці обчислення на основі методу розрахунку ліворуч - праворуч здійснюються за допомогою наступного алгоритму.
Алгоритм 1.
Вхід
Вихід
1.
2.
2.1.
2.2.
3.
.
Реалізація методу вимагає
операцій
подвоєння точки й
додавань
,
де
-
вага Хеммінга двійкового вектора
(число одиниць цього вектора). Так як
в середньому число одиниць випадкового
вектора дорівнює
,
загальне число групових операцій
оцінюється величиною
Алгоритм подвоєння - додавання - вирахування
Попередній алгоритм можна
вдосконалити, якщо вести додаткову
операцію - вирахування точки. Цей метод
запропонований в 1990 році Ф. Морейном і
Дж. Олівосом. Наприклад, число
у двійковій системі має вага
,
але його можна представити як
з вагою
Ця ідея знижує вагу Хеммінга і, відповідно,
число групових операцій. Реалізувати
алгоритм подвоєння – додавання
вирахування можна переходом від
двійкового подання числа
до трійкового
з коефіцієнтами
Одне із властивостей подання
-
відсутність у ньому суміжних пар
ненульових елементів, завдяки чому
зростає питома вага нульових елементів
.
Для розрахунку
використається наступний алгоритм.
Алгоритм 2.
Вхід
позитивне ціле число
Вихід
1.
2.
2.1.
2.2.
2.3.
3.
Після розрахунку обчислюється точка методом ліворуч – праворуч за допомогою алгоритму 3.
Алгоритм 3.
Вхід
Вихід
1.
2.
2.1.
2.2.
2.3.
3. .
-
подання числа
може виявитися на один біт більше
двійкового. У той же час, для випадкового
ймовірність ненульових елементів
і
знижується від
до
,
тобто, у середньому, для
-
розрядного числа їхня кількість
оцінюється величиною
.
Тоді загальне середнє число групових
операцій додавання
й подвоєння
в алгоритмі 3 можна оцінити як суму
Метод вікон з алгоритмом подвоєння - додавання - вирахування
Якщо в криптосистемі є резерви
пам'яті, їх можна задіяти для подальшого
збільшення швидкості обчислень. Ідея
полягає в тому, що замість точки
можна експоненцирувати і надалі складати
суміжні блоки або вікна шириною
в
-
поданні точки
Для цього розраховується за
допомогою алгоритму 2 трійкове число
,
що потім може розбиватися на блоки
довжиною, не менше
Назвемо
- вікном числа
непарний коефіцієнт
утримуючий хоча б один ненульовий
елемент. Зазначимо, що
.
Наприклад, при
маємо 8 різних значень
Цих вікон досить для формування
числа
довільної довжини
.
Ясно, що парні коефіцієнти в
-
поданні числа
надлишкові, тому що вони утворяться
подвоєнням непарних. На першому етапі
предрозрахунків розраховуються й
записуються на згадку 8 точок
і
У загальному випадку в пам'яті
зберігається
точок. Число
може бути визначене за допомогою
модифікованого алгоритму 2. Модифікація
полягає в наступному
на кроці 2.1 замість
варто записати
,
де
означає ціле число
,
певне в інтервалі
.
Далі обчислюється точка
згідно алгоритму 4.
Алгоритм 4
Вхід
Вихід
1.
2.
3.
3.1.
3.2.
4. .
Нехай, наприклад,
при цьому
й
Використання трійкового
вимагає, мабуть, двох додавань точок,
тоді як у другому випадку за рахунок
попереднього розрахунку точки
досить одного додавання. Число подвоєнь
однаково в обох випадках. Ясно також,
що виграш за рахунок вікна з'являється
лише при порівняно більших довжинах
числа
Перший крок алгоритму 4 у
загальному випадку вимагає
групових операцій із точками кривої.
На третьому кроці складність обчислень
оцінюється середнім числом
групових операцій додавання й подвоєння.
Ріст ширини
вікна веде к збільшенню складності
обчислень на першому кроці ( і об'єму
пам'яті ) і зниженню тимчасової складності
на третьому кроці. Для значень
розширення поля порядку 180-260 оптимальним
виявляється вікно шириною
,
а при
- вікно шириною
