86370 (575071)
Текст из файла
Складність деяких методів експоненціювання точки кривої
Найпоширенішою операцією у всіх криптографічних алгоритмах є - кратне додавання точки
, позначуване як
Цю операцію звичайно називають скалярним множенням, або, звертаючись до термінології мультиплікативної групи, експоненціюванням точки кривої.
З метою підвищення продуктивності під час обчислення точки багатьма авторами запропоновано різні методи. Дамо стислий опис й оцінку складності найпоширеніших з них.
Підхід до розрахунку точки може відрізнятися залежно від того, чи є точка
фіксованою (заздалегідь відомою) або довільною точкою. У першому випадку завжди можна користуватися передрозрахунками точок, наприклад,
, які зберігаються в пам'яті. Двійкове подання числа
дозволяє селектрувати ті з них, які в результаті підсумовування утворять точку
. У другому, більш загальному випадку, всі обчислення доводиться проводити в реальному часі.
Нехай порядок і число
подано у двійковій системі
Розглянемо спочатку основні алгоритми експоненціювання при невідомій заздалегідь точці
експоненціювання алгоритм скалярне множення
Алгоритм подвоєння-додавання
Це найприродніший і найпростіший метод, при якому обчислення здійснюються за формулою
Ці обчислення на основі методу розрахунку ліворуч-праворуч здійснюються за допомогою наступного алгоритму.
Алгоритм 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 трійкове число , що потім може розбиватися на блоки довжиною, не менше
Назвемо - вікном числа
непарний коефіцієнт
утримуючий хоча б один ненульовий елемент. Зазначимо, що
. Наприклад, при
маємо вісім різних значень
Цих вікон достатньо для формування числа довільної довжини
. Зазначимо, що парні коефіцієнти в
- поданні числа
надлишкові, тому що вони утворяться подвоєнням непарних. На першому етапі передрозрахунків розраховуються й записуються на згадку вісім точок
і
У загальному випадку в пам'яті зберігається точок. Число
може бути визначене за допомогою модифікованого алгоритму 2. Модифікація полягає в тому, що на кроці 2.1 замість
необхідно записати
, де
означає ціле число
, певне в інтервалі
. Далі обчислюється точка
згідно з алгоритмом 4.
Алгоритм 4.
Вхід
Вихід
1.
2.
3.
3.1
3.2
4. .
Нехай, наприклад, при цьому
й
Використання трійкового
вимагає, мабуть, двох додавань точок, тоді як у другому випадку за рахунок попереднього розрахунку точки
достатньо одного додавання. Число подвоєнь однаково в обох випадках. Зрозуміло також, що виграш за рахунок вікна з'являється лише при порівняно більших довжинах
числа
Перший крок алгоритму 4 у загальному випадку вимагає групових операцій із точками кривої. На третьому кроці складність обчислень оцінюється середнім числом
групових операцій додавання й подвоєння. Збільшення ширини
вікна веде до збільшення складності обчислень на першому кроці (і об'єму пам'яті) і зниження тимчасової складності на третьому кроці. Для значень
розширення поля порядку 180-260 оптимальним виявляється вікно шириною
, а при
- вікно шириною
Метод Монтгомері
Розглянемо метод Монтгомері. Нехай
з
Позначимо
Можна перевірити, що
(1)
Отже, знаючи - координати точок
й
, можна обчислити
координати точок
й
, перейти до пари
, або до пари
.
Кожна така ітерація вимагає одного подвоєння й одного додавання з використанням формули (1).
Після останньої ітерації, - координата точки
може бути відновлена з
- координати точки
й
- координат точок
і
за формулою
Використовуючи проективні координати, можна позбутися від інвертування, і кожна ітерація вимагатиме шість множень. Усього ж трудомісткість алгоритму 5, що реалізує метод експоненціювання Монтгомері, дорівнює причому алгоритм не вимагає додаткової пам'яті на зберігання попередньо обчислених змінних, а час його роботи не залежить від значення
Алгоритм 5. Метод експоненціювання Монтгомері.
Вхід
Вихід
1.
2.
2.1
3.1
3.2
4.
Алгоритм 5 вимагає однієї інверсії, а не двох, тому що можна обчислити
, а
потім отримати множенням на
. Можна домогтися істотного збільшення продуктивності, якщо операцію подвоєння замінити операцією ділення точки на два. Виграш до 40% при цьому досягається у зв'язку з відсутністю операції інверсії елемента в полі. Крім того, групові операції послідовних ділень у НБ зводяться практично до однієї операції множення в полі.
Методи експоненціювання при фіксованій точці
Фіксованою точкою в криптосистемі завжди є генератор або базова точка криптосистеми порядку . Такі точки - це відкриті ключі користувачів. Якщо в системі є резерв пам'яті, його можна використати для зберігання заздалегідь розрахованих точок. Наприклад, якщо обчислити й записати в пам'яті точки
, то для визначення скалярного добутку
залишиться лише обчислити суми точок відповідно до двійкового подання
. У середньому для цього буде потрібно лише
операцій. Їхнє число можна зменшити до
операцій додавання й віднімання, якщо скористатися трійковим поданням
.
Другим досить витонченим підходом є підхід на основі вікон з фіксованою базою. Замість двійкового подання числа використовується -е із передобчислюванням точок
. Дійсно, нехай
-е подання числа
має вигляд
Тоді
де
Ці обчислення здійснюються за допомогою наступного алгоритму.
Алгоритм 6.
Вхід ширина вікна ,
,
Вихід
1. Передрозрахунки
2.
3.
3.1
3.2
4.
Середня обчислювальна складність алгоритму оцінюється кількістю додавань
.
Метод вікон у цьому випадку більше продуктивний, ніж при невідомій точці, тому що передрозрахунки не входять в алгоритм експоненціювання. Якщо використати поряд з додаванням подвоєння точки, реалізувати алгоритм можна інакше. Два вікна точки шириною
кожне можна подати у вигляді
Всі можливі точки й
обчислюються на етапі передрозрахунків і записуються на згадку. Загальна кількість цих точок
зростає експоненційно зі збільшенням ширини вікна
. Двійкове подання точки
розбивається далі на
фрагментів шириною
. У кожному такому фрагменті відбираються старші розряди й розряди зі зрушенням вправо на
(тобто на половину фрагмента).
Їхні двійкові подання дають першу пару точок й
, які складаються, після чого їхня сума подвоюється.
Далі реалізується алгоритм послідовних додавань і подвоєнь праворуч із двома вікнами, описаний нижче.
Алгоритм 7.
Вхід ширина вікна ,
,
,
Вихід
1. Передрозрахунки обчислити всі точки й
,
2. Подати число у вигляді конкатенації фрагментів шириною
Нехай
означає
й біт фрагмента
3.
4.
4.1
4.2
5.
Обчислювальна складність цього алгоритму оцінюється числом групових операцій
Обмінюючи час обчислень на пам'ять, можна й далі підвищувати продуктивність експоненціювання точки кривої. Наприклад, для кожного вікна шириною можна заздалегідь розрахувати
точок, при цьому на згадку рийдеться записати
точок. Операція подвоєння в цьому випадку не використовується, а складність оцінюється числом
додавань. Цей алгоритм назвемо алгоритмом максимальної пам'яті. У табл.13.1 дані для порівняння величини пам'яті
й тимчасової складності
(числа групових операцій) алгоритму 6 й алгоритму максимальної пам'яті при
. В обох випадках зі збільшенням ширини вікна збільшується пам'ять і знижується число групових операцій. Очевидно, що останній алгоритм за наявності більших резервів пам'яті дозволяє істотно прискорити операцію експоненціювання фіксованої точки
Таблиця 1 Об'єм пам'яті й тимчасова складність
(число групових операцій) алгоритму 6 й алгоритму максимальної пам'яті при
Метод | W = 3 | W = 4 | W = 5 | W = 6 | ||||||
M | S | M | S | M | S | M | S | |||
Алгоритм 6 | 14 | 900 | 30 | 725 | 62 | 632 | 126 | 529 | ||
Алгоритм максимальної пам'яті. | 469 | 58 | 750 | 46 | 1280 | 38 | 2079 | 33 |
Размещено на Allbest.ru
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.