СПИСОК ЛИТЕРАТУРЫ
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]. Можно это делать всегда перед началом извлечения корня, тогда сложность вычисления может в среднем немного уменьшиться.
Пример. Вычисление квадратного корня данным алгоритмом.
Пусть нужно извлечь корень из элемента а = —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.