Алгоритм Шуфа
Алгори́тм Шу́фа — ефективний алгоритм підрахунку числа точок на еліптичній кривій над скінченним полем. Має застосування в еліптичній криптографії, де важливо знати кількість точок, щоб оцінити складність розв'язання задачі дискретного логарифма в групі точок на еліптичній кривій.
Алгоритм опублікував Шаблон:Не перекладено в 1985 році. Це був теоретичний прорив, бо це перший детермінований алгоритм, який виконується за поліноміальний час, для Шаблон:Не перекладено. До алгоритму Шуфа підходи до підрахунку точок на еліптичних кривих були здебільшого трудомісткими та виконувались за експоненціальний час.
Вступ
Нехай – еліптична крива над скінченним полем , де , – просте число та . Над полем, характеристика якого не дорівнює 2 або 3, еліптична крива може бути задана рівнянням Вейєрштрасса
- ,
де . Множина точок, визначених над , складається з розв'язків , які задовольняють рівняння кривої, та точки на нескінченності . Застосовуючи груповий закон на еліптичних кривих до цієї множини отримаємо абелеву групу , у якій буде нейтральним елементом. Кількість точок на еліптичній кривій дорівнює потужності множини . Підхід Шуфа для обчислення потужності використовує теорему Гассе про еліптичні криві разом з китайською теоремою про остачі та Шаблон:Не перекладено.
Теорема Гассе
Теорема Гассе стверджує, що якщо є еліптичною кривою над скінченним полем , то задовольняє нерівність
Цей сильний результат, отриманий Гассе в 1934 році, спрощує нашу задачу, звужуючи до скінченного (хоча і великого) набору можливих значень . Позначимо , обчислення значення по модулю буде достатньо для знаходження самого значення , а з нього – значення . Хоча немає прямого ефективного шляху обчислення для довільного , проте можна обчислити для малого простого числа більш ефективно. Виберемо множину різних простих чисел , для яких . Після отримання значень для кожного обчислимо за допомогою китайської теореми про лишки.
Для того, щоб обчислити для простого , використаємо ендоморфізм Фробеніуса та поліноми ділення. Розгляд простих чисел не є проблемою, бо завжди можна вибрати більше просте число, яке займе місце , так щоб добуток вище задовольняв відповідну нерівність.
Ендоморфізм Фробеніуса
Нехай – еліптична крива, визначена над , розглянемо точки на над , де – алгебраїчне замиканням . Тобто ми дозволяємо точки з координатами в . Ендоморфізм Фробеніуса над розширює еліптичну криву відображенням .
Це відображення тотожне на , можна розширити його точкою на нескінченності , що зробить його морфізмом з на себе.
Ендоморфізм Фробеніуса задовольняє квадратне рівняння, пов'язане з потужністю , за наступною теоремою:
Тоді для всіх матимемо , де «» – операція додавання точок на еліптичній кривій за груповим законом, а та – множення точок та на скаляри та , відповідно.
Можна спробувати обчислити , і як функції на Шаблон:Не перекладено кривої , а потім шукати значення , яке задовольняє рівняння. Однак, на практиці, коли степені стають занадто великими, такий підхід буде недоцільним.
Ідея Шуфа полягає в тому, щоб провести ці обчислення, обмежуючись точками порядку для різних малих простих чисел . Фіксуючи непарне просте число , переходимо до задачі знаходження , визначеного як , для заданого . Якщо точка знаходиться в підгрупі -кручення , то , де – єдине ціле, таке що та . Зауважимо, що і для будь-якого цілого виконується . Таким чином, матиме такий же порядок як і . Тоді для матимемо при . Таким чином, задача зводиться до розв'язання рівняння
- , де .
Обчислення по простому модулю
Позначимо (пам'ятаємо, що ми працюємо по модулю Шаблон:Mvar).
Скалярний добуток можна обчислити методом подвоїти та додати або використовуючи -ий поліном ділення. Останній підхід дає:
- ,
де – Шаблон:Mvar-ий поліном ділення. Функція залежить тільки від Шаблон:Mvar, позначимо її через .
Розглянемо два випадки: та (тут рівність по модулю ).
Випадок 1:
Використовуючи формулу додавання для групи отримаємо:
У випадку рівності таке обчислення буде неправильним.
Далі можна звузити вибір координати Шаблон:Mvar до двох можливих варіантів, різних за знаком та рівних по модулю. Потім використовуючи Шаблон:Mvar-координату знайдемо який з варіантів має місце.
Покажемо, шо є функцією тільки від . Розглянемо . Замінимо на , тоді отримаємо
Оскільки парне, то така заміна означає, що ми працюємо у факторкільці .
Якщо для деякого , то виконується рівність
для всіх .
Як згадувалося раніше, використовуючи та , можна визначити, яке з двох значень ( або ) працює. Це дає значення . Далі алгоритм Шуфа зберігає значення в змінній для кожного розглянутого простого Шаблон:Mvar.
Випадок 2:
Спочатку припустимо, що . Для точки , що задовольняє це, з характеристичного рівняння отримуємо . А отже, . З цього випливає, що є квадратом по модулю . Нехай . Обчислимо в та перевіримо чи . Якщо це так, то , де знак залежить від Шаблон:Mvar-координати.
Якщо не є квадратом по модулю Шаблон:Mvar або рівність не виконується для жодного , то припущення, що невірне, тому . Характеристичне рівняння дає .
Додатковий випадок:
Якщо згадати, наші початкові міркування опускають випадок . Припускалось, що Шаблон:Mvar непарне та зокрема, тоді і тільки тоді, коли містить елемент порядку 2. За означенням додавання в цій групі будь-який елемент порядку 2 має вигляд . Таким чином тоді і тільки тоді, коли має корінь з тоді і тільки тоді, коли .
Алгоритм
Ввід:
1. Еліптична крива ;
2. Натуральне число , для скінченного поля .
Вивід:
Число точок Шаблон:Mvar над .
Вибираємо множину непарних простих чисел Шаблон:Mvar, яка не містить Шаблон:Mvar, Шаблон:Nowrap
Шаблон:Nowrap
Шаблон:Nowrap
Всі обчислення в циклі нижче виконуються Шаблон:Nowrap
Шаблон:Nowrap
Шаблон:Nowrap Шаблон:Nowrap
Шаблон:Nowrap
Шаблон:Nowrap
Шаблон:Nowrap
Шаблон:Nowrap
Шаблон:Nowrap
Шаблон:Nowrap
Шаблон:Nowrap
інакше
Шаблон:Nowrap
інакше якщо Шаблон:Mvar є квадратом по модулю Шаблон:Mvar, то
Шаблон:Nowrap
Шаблон:Nowrap
Шаблон:Nowrap
Шаблон:Nowrap
Шаблон:Nowrap
Шаблон:Nowrap
інакше
Шаблон:Nowrap
інакше
Шаблон:Nowrap
Використовуємо китайську теорему про остачі для обчислення Шаблон:Mvar по модулю Шаблон:Mvar
з рівнянь , де .
Виводимо .
Складність
Більшість обчислень припадає на та для кожного простого , тобто на обчислення , , , для кожного простого . Ці обчислення включають піднесення до степені та потребують множень. Степінь дорівнює , тобто . За теоремою про розподіл простих чисел існує близько простих чисел розміру , це дає , маємо . Таким чином, множення в кільці потребує множень , що в свою чергу потребує бітових операцій. Загалом, кількість бітових операцій для кожного простого дорівнює . Оскільки обчислення необхідно провести для простих чисел, то повна складність алгоритму Шуфа дорівнює . Використання швидких операцій з поліномами та цілочисельної арифметики скорочує цей час до . Тут означає зі знехтуваними логарифмічним множниками.
Модифікація алгоритму Шуфа
Шаблон:Main У 1990-х роках Шаблон:Не перекладено, а за ним Шаблон:Не перекладено, вдосконалили алгоритм Шуфа через обмеження множини простих чисел , розглянутої раніше, до простих чисел певного виду. Просте число називається простим числом Елкіса, якщо характеристичне рівняння розкладається над , а прості числа Аткіна – це прості числа, які не є простими Елкіса. Аткін показав як комбінувати інформацію, отриману з простих чисел Аткіна, з інформацією, отриманою з простих чисел Елкіса, щоб отримати більш ефективний алгоритм, який отримав назву алгоритм Шуфа — Елкіса — Аткіна. Перша задача, яку потрібно вирішити, – чи є задане просте число простим Аткіна, чи простим Елкіса. Для цього використовуються модулярні поліноми, які виникають при вивченні модулярних форм та інтерпретації еліптичних кривих над полем комплексних чисел як решіток. Після того, як визначимо, у якому випадку перебуваємо, замість того, щоб використовувати поліноми ділення, ми зможемо працювати з поліномами, які мають нижчий степінь, ніж відповідні поліноми ділення: замість . Для ефективної реалізації використовуються ймовірнісні алгоритми знаходження коренів, що робить алгоритм алгоритмом Лас-Вегаса, а не детермінованим алгоритмом.
При евристичному припущенні, що приблизно половина простих чисел, які не перевищують , є простими числами Елкіса, це дає більш ефективний алгоритм ніж алгоритм Шуфа з очікуваним часом роботи при використанні звичайної арифметики та при використанні швидкої арифметики. Хоч це евристичне припущення вірне для багатьох еліптичних кривих, але невідомо чи воно виконується в загальному випадку, навіть при істинності узагальненої гіпотези Рімана.
Джерела
- R. Schoof: Elliptic Curves over Finite Fields and the Computation of Square Roots mod p. Math. Comp., 44(170):483–494, 1985. Available at http://www.mat.uniroma2.it/~schoof/ctpts.pdf Шаблон:Webarchive
- R. Schoof: Counting Points on Elliptic Curves over Finite Fields. J. Theor. Nombres Bordeaux 7:219–254, 1995. Available at http://www.mat.uniroma2.it/~schoof/ctg.pdf Шаблон:Webarchive
- G. Musiker: Schoof's Algorithm for Counting Points on . Available at http://www.math.umn.edu/~musiker/schoof.pdf Шаблон:Webarchive
- V. Müller: Die Berechnung der Punktanzahl von elliptischen kurven über endlichen Primkörpern. Master's Thesis. Universität des Saarlandes, Saarbrücken, 1991. Available at http://lecturer.ukdw.ac.id/vmueller/publications.php Шаблон:Webarchive
- A. Enge: Elliptic Curves and their Applications to Cryptography: An Introduction. Kluwer Academic Publishers, Dordrecht, 1999.
- L. C. Washington: Elliptic Curves: Number Theory and Cryptography, 2nd Ed. Chapman & Hall/CRC, New York, 2008.
- Н. Коблиц: Курс теории чисел и криптографии, Научное издательство «ТВП», 2001