Научная статья на тему 'Быстрый алгоритм извлечения квадратных корней в некоторых конечных полях нечетной характеристики'

Быстрый алгоритм извлечения квадратных корней в некоторых конечных полях нечетной характеристики Текст научной статьи по специальности «Математика»

CC BY
730
16
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОНЕЧНЫЕ ПОЛЯ / ИЗВЛЕЧЕНИЕ КВАДРАТНОГО КОРНЯ / БИТОВАЯ (БУЛЕВА) СЛОЖНОСТЬ / FINITE FIELDS / SQUARE ROOT COMPUTATION / BOOLEAN COMPLEXITY

Аннотация научной статьи по математике, автор научной работы — Гашков Сергей Борисович, Гашков Игорь Борисович

Доказано, что извлечь квадратный корень в поле GF(3s), s=2kr, можно с битовой сложностью O(M(2k)M(r)k+M(r)log2r)+2kkr1+o(1), где M(n) – сложность умножения многочленов степени n над полем характеристики 3. Умножение и деление в поле GF(3s) выполняются со сложностью O(M(2k)M(r)) и O(M(2k)M(r))+r1+o(1) соответственно. Если базис в поле GF(3r) определяется неприводимым биномом над GF(3) или является оптимальным нормальным базисом, то слагаемые 2kkr1+o(1) и r1+o(1) можно опустить. В качестве M(n) можно взять nlog2nψ(n), где ψ(n) растет медленнее любой итерации логарифма. Если k растет, а r фиксировано, то все приведенные оценки имеют вид Or(M(s)log2s)=s(log2s)2ψ(s).

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Быстрый алгоритм извлечения квадратных корней в некоторых конечных полях нечетной характеристики»

СПИСОК ЛИТЕРАТУРЫ

1. Кудрявцев В.Б., Гасанов Э.Э., Перпер Е.М. Автоматическая генерация компьютерной программы, моделирующей нормативно-правовой акт // Интеллектуальные системы. Теория и приложения. 2014. 18, № 2. 133-156.

2. Перпер Е.М. О синтаксическом анализе юридических текстов // Интеллектуальные системы. Теория и приложения. 2016. 20, №2. 31-49.

3. Сокирко А. Семантические словари в автоматической обработке текста (по материалам системы ДИА-ЛИНГ): http://www.aot.ru/docs/sokirko.

4. Подколзин A.C. Самообучение интеллектуальной системы // Интеллектуальные системы. Теория и приложения. 2014. 18, №2. 197-266.

5. Приказ Минфина РФ от 30 марта 2001 г. N 26н "Об утверждении Положения по бухгалтерскому учету "Учет основных средств" ПБУ 6/01".

Поступила в редакцию 27.09.2017

УДК 519.95

БЫСТРЫЙ АЛГОРИТМ ИЗВЛЕЧЕНИЯ КВАДРАТНЫХ КОРНЕЙ В НЕКОТОРЫХ КОНЕЧНЫХ ПОЛЯХ НЕЧЕТНОЙ ХАРАКТЕРИСТИКИ

С. Б. Гашков1, И. Б. Гашков2

Доказано, что извлечь квадратный корень в поле GF(3s), s = 2kr, можно с битовой сложностью 0(M(2k)M(r)k + M(r)log2r) + 2kkr1+°(1\ где M(n) — сложность умножения многочленов степени п над полем характеристики 3. Умножение и деление в поле GF{3s) выполняются со сложностью 0(M(2k)M(r)) и 0(M(2k)M(r)) + соответ-

ственно. Если базис в поле GF(Зг) определяется неприводимым биномом над GF(3) или является оптимальным нормальным базисом, то слагаемые 2kkr1+°^ и r1+°^ можно опустить. В качестве М(п) можно взять nlog2n-0(n), где ф(п) растет медленнее любой итерации логарифма. Если к растет, а г фиксировано, то все приведенные оценки имеют вид Or(M(s) log2 S) = S(log2S)V(s).

Ключевые слова: конечные поля, извлечение квадратного корня, битовая (булева) сложность.

It was proved that the complexity of square root computation in the Galois field GF(3s), s = 2kr, is equal to 0(M(2k)M(r)k + M(r) log2 r) + 2kkr1+o(-1\ where M{n) is the complexity of multiplication of polynomials of degree n over fields with characteristics 3. The complexity of multiplication and division in the field GF{3s) is equal to 0(M(2k)M(r)) and 0(M(2k)M(r)) + r1+o(1), respectively. If the basis in the field GF(3r) is determined by an irreducible binom over GF(3) or is an optimal normal basis, then the summands 2kkr1+°^ and can be

omitted. For M(n) one may take nlog2 nip(n), where ф(п) grows slower than any iteration of the logarithm. If к grows and r is fixed, than all the estimates presented here have the form Or(M(s) log2 S) = S(bg2s)2V'(s)-

Key words: finite fields, square root computation, Boolean complexity.

1. Введение. Алгоритмы извлечения квадратных корней применяются в теории кодирования (для полей небольшого порядка) и в криптографии (для полей большого порядка). Известно, что в поле GF(2n) квадратные корни существуют у любого элемента, определены однозначно и их можно

1 Гашков Сергей Борисович — доктор физ.-мат. наук, проф. каф. дискретной математики мех.-мат. ф-та МГУ, e-mail: sbgashkovQgmail.com.

2 Гашков Игорь Борисович — канд. физ.-мат. наук, доцент Университета г. Карлстад, Швеция, e-mail: igor.gachkovQkau.se.

извлекать со сложностью 0(п) при использовании нормальных базисов и некоторых видов полиномиальных базисов. Для полей нечетной характеристики задача труднее. Наилучшие алгоритмы извлечения корней в полях вычетов по простому модулю фактически были предложены еще в конце XIX — начале XX века итальянскими математиками А. Тонелли и М. Чиппола (см., например, [1, 2]). Впоследствии эти алгоритмы неоднократно переоткрывались и оказалось, что они пригодны в любом конечном поле GF(q), q = рп, где р — простое число. Упомянутые алгоритмы вероятностные, но в предположении справедливости некоторых теоретико-числовых гипотез имеют детерминированные версии полиномиальной сложности (см. [3, 4], где приведены алгоритмы сложности 0(log2<?)2 для проверки существования квадратного корня из произвольного элемента поля GF(q) в этом же поле). Если алгоритм Тонелли многократно применяется в одном и том же поле (например, в схемах декодирования), то сложностью предварительных вычислений (однозначно определяемых этим полем) можно пренебречь (но их результаты использовать при построении схемы извлечения корня в данном поле) и упомянутый алгоритм извлечения корня становится детерминированным.

Для лучшего из них (вероятностного алгоритма Чипполы) известна оценка его битовой сложности

0(log2 q)MGF(p) (п)М(log2 р),

где М(п) — битовая сложность умножения двоичных п-битных чисел, а Мр(п) — сложность умножения многочленов степени, меньшей п, над полем F, где под сложностью понимается число элементарных операций в этом поле.

Известно (см. [5, 6]), что М(п) ^ n\ognip(n), Мр(п) ^ n\ognip(n), где функция ф{п) растет медленнее любой итерации логарифма. Для значений п порядка нескольких тысяч, однако, предпочтительнее алгоритм Шенхаге-Штрассена, а в случае умножения многочленов — алгоритм Шенхаге (см., например, [7]), для которого в случае полей нечетной характеристики

Мр(п) ^ 6п log2 n(\og2 log2 п + 0(1)), при этом число умножений не больше 6n(log2n + O(l)), а в случае полей характеристики два

Мр(п) < 6,32n log2 n(log2 log2 п + 0(1)).

При малых п лучше метод Карацубы (его современные модификации см., например, в [8, 9]).

В поле GF(pr) при р = 3 mod 4 и нечетном г квадратный корень, как известно, можно быстро вычислить, как указано в следующей лемме.

Лемма 1. При q = 3 mod 4 квадратный корень в поле GF(q) вычисляется по формуле у[х = ж(<?+1)/4_ частности, это верно при q = рг, где р = 3 mod 4, г нечетно. Если выбрать в GF(pr) полиномиальный базис, то число операций в поле GF(p) для, извлечения квадратного корня в поле GF(pr) равно 0({\og2r)M(r)) + г1+°(1). Если базис определяется неприводимым биномом или является оптимальным нормальным базисом, то слагаемое г1^1) можно отбросить.

Доказательство. Если q = 3 mod 4, то (ж^+1)/4)2 = = х ■ ж^-1)/2 = х, поскольку если

х является квадратом в поле GF(q), то х= 1, согласно критерию Эйлера. Если г нечетно, то Зг = 3 • 32г = 3 • 91 =3 mod 4. Остается применить лемму 2.

В поле GF(ps), где р = 3 mod 4, s четно, этот алгоритм не работает.

Пусть s = 2kr, г нечетно. В следующем пункте покажем, что при к, достаточно большом в сравнении с г, сложность извлечения квадратного корня по порядку равна сложности умножения в поле GF(ps).

2. Алгоритм извлечения квадратного корня в поле GF(ps) при четном s и оценка его сложности. Рассмотрим случай р = 3. При определении сложности под элементарными операциями понимаем арифметические операции в поле GF(3) (троичные операции).

Следуя [7, 10], где приведена более общая конструкция (но для поля характеристики два), в поле GF(32s) построим состоящую из квадратичных расширений подполей башню

GF{Зг) с GF{32г) с ... С GF{32"г) с GF{32"+1г),

на первом этаже которой выбирается базис {1, а}, где а € GF{32r) \ GF{3r), а2 = —1, а на каждом следующем этаже GF{З2' г) С GF{32V) базис {1 ,uii}, где w2 = w^-i, oji € GF{32V) \ GF{32' r),

COl = 1 — OL.

5 ВМУ, математика, механика, №5

Докажем по индукции возможность такого выбора базисов в этой башне. Действительно, 1 — а не является квадратом в GF{32г), так как

ш\ = (1 - а)2 = 1 + а2 - 2а = а, 32г - 1 = 34г+2 - 1 = 81г9 - 1 = 9(16т + 1)1 - 1 = Ш + 8,

и, согласно критерию Эйлера, w^3 = а;(з2г_1)/4 = (—1)(з2г_1)/8 = (—l)2i+1 = —1. Далее, wf 1 =

Wi, ojf = Lüf = а2 = —1, 32r — 1 делится на 8 и не делится на 16, значит,

32V - 1 = (32г - 1)(32г + 1)(34г + 1)... (З2^ + 1)

делится на 2г+2 и не делится на 2г+3, поэтому w^3 = (—1)(з2 г~1)/2г+2 = _ij следовательно,

Шг € GF{32V) не является квадратом в этом поле (иначе aq~l = Jf = —1, q = 32V —1, а € GF(q) вопреки тождеству Ферма), поэтому üJi+i = л/Щ € GF(32l+lr) \ GF(32V). В качестве базиса в поле GF{32lr) над подполем GF{Зг) можно взять произведение базисов

{l,u)i} х {l,Wi_i} х ... х {l,w2} х {1,а},

а над подполем GF(32г) произведение базисов {1, w»} х {1, w^-i} х ... х {1, W2}. Из равенств wf 1 = и)\ и свойств двоичной системы счисления следует, что последний базис является перестановкой полиномиального базиса {1, w»,..., u)f _1}, где ujf = Ш\ = 1 — а € GF(?2r). Поэтому умножение в указанном базисе поля GF{32lr) над подполем GF{32г) сводится к умножению многочленов степени 2г-1 — 1 и приведению полученного многочлена степени 2г — 2 по модулю многочлена ж2* — Ш\.

Сложность умножения троичных многочленов3 степени, меньшей п, обозначим М{п), а сложность умножения многочленов степени, меньшей п, над полем GF(?/) обозначим Мг(п). Выше были приведены верхние оценки для этих функций. Далее можно использовать любую из них. Так как эти оценки фактически не зависят от г, то индекс г далее опускаем. Предполагаем (как обычно делают в подобных задачах), что М(2п) ^ 2М(п).

Лемма 2. Сложность умножения в указанном выше базисе в поле GF(3S), s = 2kr, равна 0(M(2k)M(r)). Сложность операции возведения в степени (Зг — 1)/2 и (Зг + 1)/4; I = 2т, m ^ к, равна 0(М(2к)М(г)к) + 2ккг1+о(-1\ Если базис определяется, неприводимым биномом или является, опт,им,а,л,ьным, нормальным базисом, то слагаемое г1+°(1) можно от,бросить.

Доказательство. Умножение в построенном базисе поля GF(3S), s = 2кг, сводится к умножению многочленов степени, меньшей 2к~1, с коэффициентами в поле GF{32г) по модулю многочлена ж2 — Wo- Приведение по этому модулю выполняется с помощью 0(2к) операций. Умножение многочленов выполняется с помощью М{2к~1) операций сложения и умножения в поле GF{32г). Умножение в поле GF(32г) сводится к 3 умножениям в поле GF(Зг) и 4 сложениям-вычитаниям в том же поле.

Умножение в любом полиномиальном базисе в поле GF(?/) сводится к умножению троичных многочленов степени, меньшей г, по модулю некоторого троичного многочлена. Умножение многочленов степени, меньшей г, требует М(г) троичных операций. С учетом приведения по модулю многочлена степени г умножение в полиномиальном базисе поля GF(?/) требует 0(М(г)) операций.

Для возведения х в степень (3S +1)/4 (при нечетном s) достаточно возвести х в степень (3S_1 — 1)/4, потом в куб и полученный результат умножить на х. Для произвольного элемента а € GF(3S) возведение в куб выполняется по формуле

Г)к — 1 1 О О о О О 1 _ 1 Я

(а0 + aiwfc + ... + а2к-1_1шк ") = а0 + ахшк + ... + а^-^Ц,

Так как 1 = = 1 — а € GF{9) С GF{32г), то = mod 2к ^ значит, возведение в

куб в рассматриваемом базисе поля GF(3S) сводится к 2к~1 возведениям в куб в подполе GF{32г) и не более чем к 2к умножениям в этом подполе на элементы и1 = 1-аиш? = а. Аналогично операция возведения в произвольную степень Зт сводится к 2к~1 возведениям в степень Зт в подполе GF{32г) и не более чем к 2к умножениям в этом подполе на элементы 1 — а, а, — 1,а — 1, —а. При этом в

3То есть многочленов с коэффициентами в поле GF(3).

случае т, кратном 2г, возведения в степень Зт в поле GF{32г) в силу малой теоремы Ферма не требуются. Значит, в этом случае для выполнения операции Фробениуса (т.е. возведения в степень рк в поле характеристики р) достаточно 0{2kr) = 0(s) операций. Если через F(s) обозначить число операций, необходимых для выполненния произвольной операции Фробениуса в поле GF(3s), то F(s) ^ 2kF{r) + 0{s).

Для возведения в степень (3s — 1)/2 = (3s — 1)/(3 — 1) и в степень (3s — 1)/4 (при четном s) лучше сначала выполнить возведение в степень (3s — 1)/(32г — 1), а затем полученный результат возвести в степень (32г — 1)/2 (или (32г — 1)/4).

Оценим сложность возведения в степень (32г — 1)/2 (или (32г — 1)/4) методом Брауэра (см., например, [11])- Для этого достаточно не более 0(log2í") умножений и операций Фробениуса возведения в степени 3mi, где = О(г).

В поле GF(32г) выбираем базис {1, а} над подполем GF(Зг). В частности, если в подполе GF(3r) существует оптимальный нормальный базис (см. [2, 12]), то F(s) = О (s), а для умножения в этом базисе справедлива оценка 0(М(г)) (верно ли это для произвольных нормальных базисов, неизвестно).

Оценка F(s) = О (s) также справедлива, если в поле GF(3r) выбрать полиномиальный базис над подполем соответствующий неприводимому биному хь — а, а € GF( Зг/г). Например, это

верно при г = А-Ъ1 (в поле GF{3s) башню подполей можно всегда закончить на подполе GF{Зг)) или при г = 3 • 13г. В обоих указанных случаях сложность возведения в степень (32г — 1)/2 оценивается как

0(M(2k)M(r) log2 г).

При произвольном г в поле GF(3r) можно выбрать полиномиальный базис, определяемый неприводимым многочленом, содержащим ограниченное число одночленов4. Для этого базиса возведение в куб очевидно выполняется за О (г) троичных операций. В этом случае справедливо равенство F (s) = О (s), а для возведения в степень Зт справедливо равенство F (s) = 0(ms) = O(rs). В этом случае сложность возведения в степень (32г — 1)/2 оценивается как

0{M(2k)M(r) log2 г).

Без указанного предположения для выполнения произвольной операции Фробениуса в подполе GF(3r) можно воспользоваться модулярной суперпозицией многочленов (см., например, [2, 13]). Используя результат [14], можно показать, что F (г) = г1+°(1). Тогда F (s) = 2 fcj-1+°(1) = sr°^ и сложность возведения в степень (32г — 1)/2 оценивается как

0{M(2k)M(r) log2 г) + sroi-l\

Выполним теперь возведение х в степень (3s — 1)/(32г — 1), s = 2кг, методом Брауэра: после-

2 2 2^ — ^ -i довательно вычисляем х\ = xq+l = xqx, q = 32r, x2 = x\ = x\ x, ...,Xk~i = xqk_1 , Xk-i =

x(q — !)/(<?—!) = ж(зг,-!)/(3 При этом выполняется не к — 1 умножений и операций Фробениуса возведения в поле GF{3s), 3s = q2 . Используя полученные выше оценку 0(М(2к)М(г)) для умножения в поле GF(q2 ) и оценки F (s) ^ 2 kF(r) + 0(s) = в общем случае и оценку F (s) = 0(2kr) в указанных выше случаях (существования подходящего полиномиального базиса или существования оптимального нормального базиса в поле GF(Зг) имеем для возведения в степень (q2 —l)/(q2 — l) в этом поле оценки 0(М(2к)М(г)к) + 2ккг1+0^ и 0(М(2к)М(г)к) + 0(2кг) = 0(М(2к)М(г)к) соответственно.

Остается воспользоваться тем, что сложность возведения в степень (q2 — 1)/2 = (32г — 1)/2 в поле GF(q2) оценивается как 0(M(2k)M(r) log2 r)+rl+°^l\ а в предположении, что в поле GF(q) выбран оптимальный нормальный базис или подходящий полиномиальный базис, последнее слагаемое исчезает.

Следующая лемма в случае полей характеристики 2 доказана в [7, 10] (и в рассматриваемом здесь случае доказывается аналогично).

Лемма 3. Сложность вычисления мультипликативного обратного в том же базисе в поле GF(3s) равна 0(M(2k)M(r))+ г1+0^1\ Если выбранный в GF(3Т) базис определяется, неприводимым, биномом или является, опти,м,а,л,ьн,ы,м, нормальным базисом, то слагаемое г1^1) можно заменить на 0(M(r) log2 г).

Доказательство. Для инвертирования (вычисления мультипликативного обратного) в произвольном поле GF{3s) можно воспользоваться формулой х~1 = (ж38 -1)3ж. Но в случае s = 2kr в поле GF(3s) лучше использовать указанную выше башню полей и на каждом ее этаже сводить

4 Этот факт, по-видимому, никем не доказан, но, кажется, не доказано и обратное. 6 ВМУ, математика, механика, №5

операцию инвертирования (а + 1 к инвертированию в нижнем этаже по формуле

1 а — büüi

а + büüi а2 — b2üüi-1 '

При этом кроме операции инвертирования в подполе GF(З2* 1г) выполняются в этом подполе 2 возведения в квадрат, 2 умножения произвольных элементов и одно умножение на фиксированный элемент а также одно вычитание.

Пусть M (ri), Q(n), 1(п) — сложность умножения, возведения в квадрат и инвертирования в поле GF(3ra) соответственно. Так как (а + = i + aw¿, то для умножения в поле GF(32*r) на

элемент ил достаточно столько же операций, сколько для умножения в поле GF(32г) на Ш\ = 1 — а, т.е. 2г операций. Тогда при п = 2V, г ^ 1, имеем рекуррентное неравенство

1{2п) ^ J(n) + 2М(п) + 2Q(n) + 2г + п.

Так как Q(n) ^ M (ri) и M(2ri) ^ 2 M (ri), то при п = 2кг имеем

1(п) < /(г) + 4M (ri) +n + 2kr < ö(M(2k)M(r)) + г1+о(1).

Если выбранный в GF(Зг) базис определяется неприводимым биномом или является оптимальным нормальным базисом, то слагаемое г1+0(-1) согласно лемме 2 можно заменить на 0(M(r) log2 г).

Теорема. Извлечение квадратного корня в поле GF(3S), s = 2кг, можно выполнить со сложностью 0(M(2k)M(r)k + log2 г M (г)) + 2kkr1+0(1\ Если базис в поле GF( Зг) определяется, неприводимым бином,ом, или, является, оптимальным нормальным базисом, то слагаем,ое 2можно отбросить.

Доказательство. Покажем, как извлечение корня в поле GF(32*r) при использовании базиса {1, lüí} можно свести к извлечению корня в его подполе GF(З2* г). Положим для краткости З2* г = q. Тогда GF(З2' r) = GF(q), GF(32ír) = GF(q2) и ж € GF(q2) \ GF(q). Для нахождения элемента у € GF(q2), такого, что у2 = х, рассмотрим элемент z = у + yq. Так как zq = yq + yq = yq + у = z, то z G GF(q), значит, w = z2 € GF(q). Но

w = z2 = (y( 1 + yq~1))2 = y2( 1 + x^/2)2 = x(l + x^/2)2, поэтому z = = ±y/x(l + ж(9_1)/2) = ±y(l + ж(9_1)/2), откуда

_ ±z _ _ ±л/х(1 +х(1-1У2)2

У - 1+x(g-l)/2 - 1 + x(g-l)/2 ~ l+x{q-l)/2 "

Для вычисления у = y/x по указанной формуле следует выполнить возведение х в степень (q — 1)/2, потом сложение с 1, далее возведение результата в квадрат, потом умножение квадрата на х (в результате получается элемент w € GF(q), значит, последнее умножение выполняется проще произвольного умножения в поле GF(q2)), затем извлечение корня в поле GF(q) (если он не извлекается, то и у/х в поле GF(q2) не существует) и деление результата на ранее вычисленный элемент 1+ж^-1)/2.

Этот элемент с вероятностью, не большей (q — 1)/(2(q2 — q)) = 1/(2q), может быть равен нулю. В этом случае выбираем элемент с € GF(q2) \ GF(q) и вычисляем указанным методом корень из с2х, а потом полученный результат делим на с. При этом вместо 1 + x^q~1^2 = 0 делить следует на l + cq~lx{~q~1^2 ф 0, так как с9-1 ф 1. В качестве с можно взять тогда умножение выполняется на Lüí-1, т.е. со сложностью О (г), а деление на со сложностью 0(М(2г)М(г)) (значит, описываемый алгоритм не вероятностный, а детерминированный).

Сложность всех операций, кроме возведения в степень, равна 0(М(2г)М(г)), а сложность возведения в степень согласно лемме 2 равна 0(М(2г)М(г)) + г1+0^. Пусть S (г) — сложность извлечения корня в поле GF(32*r). Тогда

S (г) < S(i - 1) + 0(M(2i)M(r)) + r1+o(1),

согласно лемме 1 имеем S( 1) = 0((log2 г)М(г)) +г1+о(-1\ значит, S(k) = ö(M(2k)(M(r))) + .

Если базис в поле GF(?/) определяется неприводимым биномом или является оптимальным нормальным базисом, то слагаемое кг1+°^ исчезает.

Если корень из ж € GF{3S), s = 2кг, в поле GF{3s) не существует, то он принадлежит полю GF{32s). Для его вычисления очевидно применяется указанный выше алгоритм, только начинать его работу следует сразу на этаже GF(32к+1г). Если хотим лишь узнать, существует ли корень в поле GF(3S), быстрее вычислить и применить критерий Эйлера или более быстрый алгоритм

[4]. Можно это делать всегда перед началом извлечения корня, тогда сложность вычисления может в среднем немного уменьшиться.

Пример. Вычисление квадратного корня данным алгоритмом.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Пусть нужно извлечь корень из элемента а = —wf — ашз — 1 = —и)з(и)2 + а) — 1 € GF(З8). Вычисляем:

b = (а9 • а)3 • а9 • а + 1 = а40 + 1 = -wf + (1 + a)u)¡ + аи3 - а € GF(З8), с = b2 ■ а = —(1 + a)üü2 — а € G_F(81), тогда л/а = л/c/b. Для вычисления л/с находим bi = с4 + 1 = с3 • с + 1 = -аш2 - 1 - а € GF(81), а = b\ • с = 1 € GF(9), и л/с\ = 1, значит, л/с = л/с\/Ь\ = l/b\ = —(1 + а)ш2 — 1,1/b = —awf — 1 = —aw2W3 — 1, у/а = л/c/b = ((1 + a)ui2 + l)(aui20J3 + 1) = аш\ + (1 + a)w2 — aw 3 + 1.

Замечания. Приведенная оценка сложности извлечения корня установлена только для указанного выше базисе. Если в поле GF{3s), s = 2кг, изначально задан другой базис, то для построения указанного базиса следует найти элементы w2 = € GF{32V) \GF{32' r), i = 2,...,k,

u)\ = 1 — а, для этого требуется к — 1 раз извлекать корень в поле GF(3S). Но фактически это делать

не нужно, так как правило умножения в базисе {1 ,Шк,... -1} (и его перестановках) не зависит от выбора элемента Однако придется преобразовать вектор координат в изначальном базисе в вектор координат в специально построенном для извлечения корня базисе. Это линейное преобразование, и его можно выполнить со сложностью порядка п2/ log2 п, а иногда и меньшей (см., например, [2]). Поэтому если для умножения многочленов используется стандартный алгоритм квадратичной сложности, то в произвольном (необязательно полиномиальном) базисе квадратные корни в поле GF{3S), s = 2кг, к —> оо, можно вычислять по порядку с той же сложностью.

При выполнении некоторых алгоритмов (например, алгоритмов декодирования кодов, исправляющих ошибки) извлечение корней в фиксированном поле GF(3s) делается многократно, тогда нет смысла для каждой такой операции переходить от изначального к специально построенному базису, а все вычисления следует делать в этом специальном базисе (то же самое верно и при применении ASIC VLSI (специальных электронных логических схем) для выполнения вычислений в поле GF(3s), так как используемый в них базис можно выбирать произвольно из соображений удобства). Тогда сложность операции извлечения корня по порядку равна сложности умножения и деления в этом базисе, которые по порядку такие же, как в изначальном полиномиальном базисе.

Алгоритм для поля GF(3S) можно почти без изменений перенести на случай поля GF(ps), где простое р = Ак + 3. Отличие только в том, что если р > 3, то (1 — а)2 = —2а, и в качестве элемента W\ € GF{p2r+l), такого, что w\ = а, в случае р = 8к + 3 можно взять w\ = (1 — а)/л/—2 (тогда л/—2 = л/р — 2 € GF(p), так как 2 — квадратичный невычет по модулю р согласно квадратичному закону взаимности) и в случае р = 8к + 7 можно взять w\ = (—1 — а)/у/2.

В случае простого р = Ак + 1 изменений чуть больше. Тогда а € GF(p) (так как —1 — квадратичный вычет в GF(p)), при р = 8к + 1 выберем w\ = 2л/а € GF(p), 2 л/а ф GF(pr) (согласно критерию Эйлера) и при р = 8к + 5 положим w\ = л/а € GF(p2) \ GF(p), у/.а ф. GF(p2r) (поскольку тогда р2 — 1 = (р—1)(р-\-1) кратно 8, но не кратно 16). Далее специальный базис строится аналогично рассмотренному случаю р = 3, но вместо алгоритма леммы 1 для извлечения корня в поле GF{p2r) используется алгоритм Чипполы, имеющий сложность 0(rlog2P)MQp^p/r)M(log2P).

В обоих случаях при р > 3 и фиксированном нечетном г в поле GF(ps), s = 2кг, к оо, сложность извлечения корня, а также сложность умножения и деления равны

Or(M(2k)M(r)M(\og2'p)),

где константы в знаке Ог зависят только от г (в предположении, что предварительные вычисления в алгоритме Чипполы, зависящие только от поля GF(pr), в сложности не учитываются). Если в поле

7 ВМУ, математика, механика, № 5

GF(pr) существует оптимальный нормальный базис или полиномиальный базис с неприводимым

двучленом, то для уменьшения сложности следует использовать эти базисы.

В качестве примера возможного применения данного в этой статье алгоритма извлечения квадратного корня можно указать алгоритм декодирования троичного квазисовершенного кода [15],

предложенный в [16].

Работа выполнена при финансовой поддержке РФФИ, проекты № 18-01-00337 и 17-01-00485.

СПИСОК ЛИТЕРАТУРЫ

1. Tonelli A. Bemerkung uber die Aulosung quadratischer Congruenzen // Goettinger Nachr. 1891. 344-346.

2. Болотов А.А., Гашков С.Б., Фролов А.Б., Часовских А.А. Элементарное введение в эллиптическую криптографию. Алгебраические и алгоритмические основы. М.: URSS, 2012.

3. Bach Е. Explicit bounds for primality testing and related problems // Math. Сотр. 1989. 22. 355-380.

4. Bach E. A note to square roots in finite fields // IEEE Trans. Inform. Theory 1990. 36. 1494^1498.

5. Fuerer M. Faster integer multiplication // SIAM J. Comput. 2009. 39, N 3. 979-1005.

6. Harvey D., van der Hoeven J., Lecerf G. Faster polynomial multiplication over finite fields // ArXive.org>cs> arXive: 1407.3361 12 Jul 2014.

7. Гашков С.Б., Сергеев И. С. О сложности и глубине булевых схем для умножения и инвертирования в конечных полях характеристики два // Дискрета, матем. 2013. 25, № 1. 3-32.

8. Bernstein D.J. Batch binary Edwards // Advances in Cryptology. CRYPTO. 2009. 317-336.

9. Bernstein D.J., Chuengsatiansup C., Lange T. Curve 41417: Karatsuba revisited // Cryptographic hardware and embedded systems. CHES. 2014. 316-334.

10. Гашков С.Б., Сергеев И.С. О сложности и глубине булевых схем для умножения и инвертирования в некоторых полях GF(2п) // Вестн. Моск. ун-та. Матем. Механ. 2009. № 4. 3-7.

11. Гашков С.Б., Сергеев И. С. О применении метода аддиттивных цепочек для инвертирования в конечных полях // Дискрета, матем. 2006. 18, № 4. 56-72.

12. Болотов А.А., Гашков С.Б. О быстром умножении в нормальных базисах конечных полей // Дискрета, матем. 2001. 13, № 3. 3-31.

13. Гашков С.Б., Сергеев И. С. Сложность вычислений в конечных полях // Фунд. и прикл. матем. 2012. 17, № 4. 95-131.

14. Kedlaya К. S., Umans С. Fast polynomial factorization and modular composition // SIAM J. Comput. 2011. 40, N 6. 1767-1802.

15. Гашков И.Б., Сидельников В.М. Линейные троичные квазисовершенные коды, исправляющие две ошибки // Проблемы передачи информации. 1986. 22, № 4. 43-48.

16. Додунеков С.М., Нильсон Я. О декодировании некоторых замечательных троичных кодов // Проблемы передачи информации. 1995. 31, № 2. 36-43.

Поступила в редакцию 22.11.2017

УДК 515.124.4+514.177.2

ОПТИМАЛЬНОЕ ПОЛОЖЕНИЕ КОМПАКТОВ В ПРОСТРАНСТВАХ С ЕВКЛИДОВО ИНВАРИАНТНОЙ МЕТРИКОЙ ГРОМОВА-ХАУСДОРФА

О. С. Малышева1

Изучаются непустые компакты, находящиеся в евклидовом пространстве в оптимальном положении (расстояние Хаусдорфа между ними нельзя уменьшить). Установлено, что если один из них одноточечный, то он находится в чебышёвском центре другого. Изучаются также многие другие частные случаи. В качестве приложения показано, что каждое трехточечное метрическое пространство изометрично вкладывается в пространство орбит группы сохраняющих ориентацию движений, действующей на компактных подмножествах

1 Малышева Ольга Сергеевна — студ. каф. дифференциальной геометрии и приложений мех.-мат. ф-та МГУ, e-mail: osm95Qmail.ru.

i Надоели баннеры? Вы всегда можете отключить рекламу.