Перейти до вмісту

Решето поля функцій

Матеріал з Вікіпедії — вільної енциклопедії.

У математиці Решето поля функцій — один з найефективніших алгоритмів для розв'язання задачі дискретного логарифмування в скінченному полі. Він працює за еврістичний субекспоненційний час. Леонард Адлеман розробив його 1994 року[1], а згодов розробив його разом з М. Д. Хуангом 1999 року[2]. Попередня робота включає роботу Д. Копперсміта[3] про задачу дискретного логарифмування у полях характеристики два.

Задача дискретного логарифмування в скінченному полі полягає в розв'язуванні рівняння при , простого числа та . Функція при фіксованому є односторонньою функцією, яка застосовується в криптографії. Кілька криптографічних методів ґрунтуються на задачі дискретного логарифмування, як-от: Протокол Діффі-Геллмана, схема Ель-Гамаля та DSA (алгоритм цифрового підпису).

Теоретичне підґрунтя числа

[ред. | ред. код]

Поля функцій

[ред. | ред. код]

Нехай  — многочлен, що визначений на алгебраїчній кривій над скічненним полем . Поле функцій можна розглядати як поле часток кільця афінних координат , де  — ідеал, породжений . Це частинний випадок поля алгебраїчної функції. Він визначений над скінченним полем та має степінь трансцендентності один. Трансцендентний елемент позначають за .

Існує бієкція як між кільцями нормувань в полях функцій та класами еквівалентності місць, так і між кільцями нормувань та класами еквівалетності нормувань[4]. Ця відповідність часто використовується в алгоритмі решета поля функцій.

Дільники

[ред. | ред. код]

Дискретне нормування поля функцій , а саме дискретне кільце нормувань , має єдиний максимальний ідеал , який називають простим ідеалом поля функцій. Степенем є , надалі позначимо .

Дільником називають -лінійну комбінацію всіх простих ідеалів, тобто , де та лише скінченне число ненулевих елементів суми. Дільник елемента визначається як , де  — нормування, що відповідає простому ідеалу . Степенем дільника є .

Спосіб

[ред. | ред. код]

Алгоритм решета поля функцій складається з попереднього обчислення, де знаходять дискретні логарифми незвідних многочленів малого степеня, і кроку зведення, на якому вони об'єднуються до логарифму .

Функції, які розкладаються на незвідні функції степенів, менші за деяку межу , називаються -гладкими. Це аналогічно визначенню гладкого числа. Такі функції корисні, оскільки їхнє розкладання можна знайти відносно швидко. Набір цих функцій незвідні, називається розкладеною основою.

Пара функцій називається подвійно гладкою, якщо  — обидва гладкі, де  — норма елемента над полем ,  — деякий параметр та розгладється як елемент поля функцій .

Крок просіювання алгоритму полягає у знаходженні подвійно гладких пар функцій. На наступному кроці ми використовуємо їх, щоб знайти лінійні співвідношення, включаючи логарифми функцій у розкладах. Розв'язуючи лінійну систему, ми обчислюємо логарифми. На кроці зведення ми виражаємо як комбінацію логарифмів, знайдених раніше. Таким чином розв'язуємо задачу дискретного логарифмування.

Попереднє обчислення

[ред. | ред. код]

Вибір параметрів

[ред. | ред. код]

Даний алгоритм вимагає таких параметрів: незвідна функція степені , функція та така крива заданого степеня , що . Тут  — степінь в порядку основного поля . Позначимо за поле функцій, визначений на .

Це приводить до ізоморфізму та гомоморфізму Використовуючи ізоморфізм, кожний елемент можна розглянути як многочлен в .

Також необхідно покласти межу гладкості для розкладеної основи .

Просіювання

[ред. | ред. код]

На цьому кроці подвійно гладкі пари функцій знайдені.

Розглядаються функції вигляду , потім ділить на будь-яку стільки разів, скільки можливо. Кожна , яка зменшується до одиниці в даному процесі, є -гладкою. Щоб реалізувати це, можна використовувати код Грея для ефективного проходження кратних даного многочлена.

Це повністю аналогічно етапу просіювання в інших алгоритмах решета, таких як решето поля чисел або алгоритм обчислення порядку[en]. Замість чисел можна просіювати функції в , але ці функції можна розкласти на незвідні многочлени так само, як числа можна розкласти на прості множники.

Знаходження лінійних співвідношень

[ред. | ред. код]

Це найскладніша частина алгоритму, яка включає поля функцій, місця та дільники, визначені вище. Мета полягає в тому, щоб використовувати подвійно гладкі пари функцій для знаходження лінійних співвідношень, що містять дискретні логарифми елементів у розкладеній основі.

Для кожної незвідної функції в розкладеній основі знаходимо місця поля , які які лежать над ними, та сурогатні функції , що відповідають цим місцям. Сурогатна функція , яка відповідає місцю , задовольняє рівність , де  — це номер класу та  — будь-яке фіксоване дискретне нормування з . Функція, визначена таким чином, єдина з точністю до константи в .

За означенням дільника for . Використовуючи це і те, що , отримуємо такий вираз:

,

де  — будь-яке нормування with . Далі, використовуючи той факт, що дільник сурогатної функції єдині з точністю до константи, отримуємо

для деякого

Тепер ми використовуємо той факт, що , і відомий розклад цього виразу на незвідні многочлени. Нехай буде степенем у цьому розкладанні. Тоді

Тут ми можемо взяти дискретний логарифм рівняння з точністю до оборотного елементу. Це називається обмеженим дискретним логарифмом . Він визначається рівнянням для деякого оборотного .

,

де є оберненим до за модулем .

Вирази та логарифми невідомі. Коли знайдено достатньо рівнянь цієї форми, можна розв'язати лінійну систему для кожного . Узявши весь вираз за невідому, ми можемо виграти час, оскільки , , or не потрібно обчислювати. Зрештою, для кожного можна обчислити оборотний елемент, що відповідає обмеженому дискретному логарифму, який потім дає .

Крок зведення

[ред. | ред. код]

Спочатку mod обчислюються для випадкового . При достатньо високій ймовірності це буде -гладкою, тому це можна розкласти як for з . Кожний з цих многочленів можна звести до многочлена меншого степеня за допомогою узагальненого метода Копперсміта[en][2]. Ми можемо зменшувати степінь, поки не отримаємо добуток -гладких многочленів. Потім, беручи логарифм за основою , ми можемо зрештою обчислити

, що розв'язує задачу дискретного логарифмування.

Складність

[ред. | ред. код]

Вважається, що решето поля функцій працює за субекспоненційний час[en]

,

використовуючи L-нотацію. Немає строгого доведення цієї складності, оскільки вона ґрунтується на деяких евристичних припущеннях. Наприклад, на етапі просіювання ми припускаємо, що числа у вигляді поводяться як випадкові числа в заданому діапазоні.

Порівняння з іншими способами

[ред. | ред. код]

Існують два інших добре відомих алгоритми, які розв'язують задачу дискретного логарифмування за субекспоненційний час: алгоритм обчилення порядку[en] та решето поля чисел[5]. У своїх найпростіших формах обидва розв'язують задачу дискретного логарифмування в скінченних полях простого порядку, але їх можна розширити, щоб розв'язати задачу також у .

Решето поля чисел для задачі дискретного логарифмування у має складність [6] і тому трохи повільніше, ніж найкраща робота решета поля функцій. Однак це швидше за решето поля функцій при . Не дивно, що існує два схожі алгоритми, один з числовими полями, а інший з функціональними полями. Насправді між цими двома видами глобальних полів[en] існує широка аналогія.

Алгоритм обчилення порядку[en] набагато легше сформулювати, ніж решето поля функцій та решето поля чисел, оскільки він не включає жодних розширених алгебраїчних структур. Це асимптотично повільніше зі складністю . Основна причина, чому решето поля чисел та решето поля функцій швидші, полягає в тому, що ці алгоритми можуть працювати з меншою межею гладкості , тому більшість обчислень можна виконувати з меншими числами.

Див. також

[ред. | ред. код]

Посилання

[ред. | ред. код]
  1. L. Adleman. «The function field sieve». In: Algorithmic Number Theory (ANTS-I). Lecture Notes in Computer Science. Springer (1994), pp.108-121.
  2. а б Adleman, Leonard M.; Huang, Ming-Deh A. (1999-05). Function Field Sieve Method for Discrete Logarithms over Finite Fields. Information and Computation (англ.). 151 (1-2): 5—16. doi:10.1006/inco.1998.2761. Процитовано 21 грудня 2024. {{cite journal}}: Перевірте значення |doi= (довідка)
  3. D. Coppersmith. (1984), «Fast evaluation of discrete logarithms in fields of characteristic two». In: IEEE Trans. Inform. Theory IT-39 (1984), pp. 587—594.
  4. Fried, Michael D.; Jarden, Moshe (2005). 2.1. Field Arithmetic (англ.). Т. 11. Berlin, Heidelberg: Springer Berlin Heidelberg. doi:10.1007/b138352. ISBN 978-3-540-22811-0.
  5. Gordon, Daniel M. (1993-02). Discrete Logarithms in $GF ( P )$ Using the Number Field Sieve. SIAM Journal on Discrete Mathematics (англ.). 6 (1): 124—138. doi:10.1137/0406010.. ISSN 0895-4801. Процитовано 21 грудня 2024. {{cite journal}}: Перевірте значення |doi= (довідка)
  6. R. Barbulescu, P. Gaudry, T. Kleinjung. «The Tower Number Field Sieve». In: Advances in Cryptology — Asiacrypt 2015. Vol. 9453. Springer, May 2015. pp. 31-58