Контрольная работа: Складність деяких методів експоненціювання точки кривої
Розглянемо метод Монтгомері. Нехай з Позначимо Можна перевірити, що
(1)
Отже, знаючи - координати точок й , можна обчислити координати точок й , перейти до пари , або до пари .
Кожна така ітерація вимагає одного подвоєння й одного додавання з використанням формули (1).
Після останньої ітерації, - координата точки може бути відновлена з - координати точки й - координат точок і за формулою
Використовуючи проективні координати, можна позбутися від інвертування, і кожна ітерація вимагатиме шість множень. Усього ж трудомісткість алгоритму 5, що реалізує метод експоненціювання Монтгомері, дорівнює причому алгоритм не вимагає додаткової пам'яті на зберігання попередньо обчислених змінних, а час його роботи не залежить від значення
Алгоритм 5. Метод експоненціювання Монтгомері.
Вхід:
Вихід:
1.
2.
2.1
3.1
3.2
4.
Алгоритм 5 вимагає однієї інверсії, а не двох, тому що можна обчислити
, а потім отримати множенням на . Можна домогтися істотного збільшення продуктивності, якщо операцію подвоєння замінити операцією ділення точки на два. Виграш до 40% при цьому досягається у зв'язку з відсутністю операції інверсії елемента в полі. Крім того, групові операції послідовних ділень у НБ зводяться практично до однієї операції множення в полі.
Методи експоненціювання при фіксованій точці
Фіксованою точкою в криптосистемі завжди є генератор або базова точка криптосистеми порядку . Такі точки - це відкриті ключі користувачів. Якщо в системі є резерв пам'яті, його можна використати для зберігання заздалегідь розрахованих точок. Наприклад, якщо обчислити й записати в пам'яті точки , то для визначення скалярного добутку залишиться лише обчислити суми точок відповідно до двійкового подання . У середньому для цього буде потрібно лише операцій. Їхнє число можна зменшити до операцій додавання й віднімання, якщо скористатися трійковим поданням .
Другим досить витонченим підходом є підхід на основі вікон з фіксованою базою. Замість двійкового подання числа використовується -е із передобчислюванням точок . Дійсно, нехай -е подання числа має вигляд
Тоді
де