Научная статья на тему 'БЫСТРЫЕ АЛГОРИТМЫ РЕШЕНИЯ УРАВНЕНИЙ СТЕПЕНИ НЕ ВЫШЕ ЧЕТВЕРТОЙ В НЕКОТОРЫХ КОНЕЧНЫХ ПОЛЯХ'

БЫСТРЫЕ АЛГОРИТМЫ РЕШЕНИЯ УРАВНЕНИЙ СТЕПЕНИ НЕ ВЫШЕ ЧЕТВЕРТОЙ В НЕКОТОРЫХ КОНЕЧНЫХ ПОЛЯХ Текст научной статьи по специальности «Математика»

CC BY
61
9
Читать
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РЕШЕНИЕ УРАВНЕНИЙ / БИТОВАЯ СЛОЖНОСТЬ / БАШНИ КОНЕЧНЫХ ПОЛЕЙ / СТАНДАРТНЫЕ И НОРМАЛЬНЫЕ БАЗИСЫ

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

Решение уравнений степени не выше четырех в поле $GF(p^s),$ где $p>3$, $s=2^kr,$ $k\rightarrow\infty,$ $r=\pm1\pmod6,$ $p,r=O(1)$, при использовании подходящего базиса можно найти с битовой сложностью $O_r(M(2^k)kM(r)M(\lceil\log_2p\rceil))= O_{r,p}(M(s)\log_2s),$ где $M(n)$ -- сложность умножения многочленов степени $n.$ В полях $GF(3^s),$ где $s=\pm1\pmod6,$ при использовании нормального базиса решения можно найти с битовой сложностью $O(M(GF(3^s))\log_2s),$ где $M(GF(q))$ -- битовая сложность умножения в поле $GF(q),$ а в полях $GF(2^s),$ где $s=2r,$ $r\neq0\pmod3,$ -- с битовой сложностью $O(M(GF(2^s))\log_2s).$

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

FAST ALGORITHMS FOR SOLVING FOURTH ORDER EQUATIONS IN SOME FINITE FIELDS

It is possible to solve equations of degree $\leq4$ in some bases of the field $GF(p^s),$ where $p>3,$ $s=2^kr,$ $k\rightarrow\infty,$ $r=\pm1\pmod6,$ $p,r=O(1)$, with the bit complexity $O_r(M(2^k)kM(r)M(\lceil\log_2p\rceil))=O_{r,p}(M(s)\log_2s),$ where $M(n)$ is the complexity of polynomial multiplication. In a normal basis of the fields $GF(3^s),$ $s=\pm1\pmod6,$ all roots may be found with the bit complexity $O(M(GF(3^s))\log_2s),$ where $M(GF(q))$ is the complexity of multiplication in the field $GF(q).$ For normal bases in the fields $GF(2^s),$ where $s=2r,$ $r\neq0\pmod3,$ the bit complexity is $O(M(GF(2^s))\log_2s).$

Текст научной работы на тему «БЫСТРЫЕ АЛГОРИТМЫ РЕШЕНИЯ УРАВНЕНИЙ СТЕПЕНИ НЕ ВЫШЕ ЧЕТВЕРТОЙ В НЕКОТОРЫХ КОНЕЧНЫХ ПОЛЯХ»

7. Колпаков P.M., Посыпкин М.А. О наилучшем выборе переменной ветвления в задаче о сумме подмножеств // Дискрета, матем. 2017. 29, № 1. 51-58.

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

УДК 511

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

С. Б. Гашков1

Решение уравнений степени не выше четырех в поле GF (ps), где p > 3 s = 2kr, k ^ то, r = ±1 (mod 6), p, r = O(1), при использовании подходящего базиса можно найти с битовой сложностью

Or(M(2k)kM(r)M([log2p])) = Or,p(M(s)log2 s),

где M(n) — сложность умножения многочленов степени n. В полях GF(3s), где s = ±1 (mod 6), при использовании нормального базиса решения можно найти с битовой сложностью O(M(GF(3s)) log2 s), где M(GF(q)) — битовая сложность умножения в поле GF(q), а в полях GF(2s), где s = 2r, r = 0 (mod 3), — с битовой сложностью O(M(GF(2s)) log2 s).

Ключевые слова: решение уравнений, битовая сложность, башни конечных полей, стандартные и нормальные базисы.

It is possible to solve equations of degree < 4 in some bases of the field GF(ps), where p > 3, s = 2kr, k ^ то, r = ±1 (mod 6), p, r = O(1), with the bit complexity

Or(M(2k)kM(r)M([log2p)D = Or,p(M(s)log2 s),

M(n)

GF(3s), s = ±1 (mod 6), all roots may be found with the bit complexity O(M(GF(3s)) log2 s), where M(GF(q)) is the complexity of multiplication in the field GF(q). For normal bases in the fields GF(2s), where s = 2r, r = 0 (mod 3), the bit complexity is O(M(GF(2s)) log2 s).

Key words: solving equations, bit complexity, tower of finite fields, standard and normal bases.

1. Введение. Известен вероятностный алгоритм решения уравнений над конечными полями (см., например, [1-4] ). Для решения уравнений малых степеней существуют специальные алгоритмы (см., например, [5-8]). Частным случаем является задача извлечения корней из элементов конечного поля. К ней сводится решение любых уравнений не выше четвертой степени (за некоторыми исключениями). Уравнения пятой и более высокой степени в радикалах решаются редко. Понижения степени уравнения можно добиться путем разложения многочлена на неприводимые множители с помощью алгоритма Берлекемпа (см., например, [1-4]).

Если предполагать, что неединичный корень n-й степени из единицы в поле GF(q) найден, то остальные корни (если они есть) определяются путем возведения его в степени вплоть до (n — 1)-й, и сделать это можно с битовой 2 сложностью (n — 2)M(GF(q)) (здесь и далее M(GF(q)) — битовая сложность умножения в поле GF(q); она зависит от выбранного базиса и кодировки элементов

n

один корень n-й степени из заданного элемента, остальные корни вычисляются со сложностью (n — 1)M(GF(q)). Нахождение одного корня сводится к дискретному логарифмированию. Для малых полей при условии использования таблицы индексов это удобный способ извлечения корней.

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

Gashkov Sergei Borisovieh — Doctor of Physical and Mathematical Sciences, Professor, Lomonosov Moscow State University, Faculty of Mechanics and Mathematics, Chair of Discrete Mathematics.

2Так называется число двоичных операций &, V, ф в данном алгоритме. Далее рассматриваются в основном алгоритмы с двоичными операциями.

В случае полей (рп) корни степени р существуют у любого элемента, определены однозначно и их можно извлекать в нормальном базисе с битовой сложностью Ор(п). В произвольном полиномиальном базисе этот корень извлекается с битовой сложностью Ор(Мр(п)), где Мр(п) — сложность умножения р-ичных многочленов степени п (т.е. число р-ичных операций), а в некоторых полиномиальных базисах — со сложностью Ор(п) (без учета предварительных вычислений, зависящих от выбора базиса, см. [9]). Для полиномиальных базисов, связанных с оптимальными нормальными базисами, сложность извлечения корня равна Ор(пп), предварительных вычислений не требуется [10, 11].

Для М(С^(рп)) известна оценка 0(М(А(р))Мр(п)) (см., например, [4, 10]), где А(р) = р] есть длина двоичной записи числа р, М(п) = 0(пА(п)) — битовая сложность умножения п-битных чисел, а Мр(п) = Ор(пА(п)) (см. [12, 13]). Инвертирование (т.е. вычисление мультипликативного обратного) в поле (д) равносильно возведению в степень д — 2. Оценки для сложности возведения в произвольную степень в различных базисах имеются в [14]. Для нормальных базисов сложность инвертирования I(С^(рп)) в толе (рп) равна 0(М(С^(рп))А(п), а для оптимальных нормальных базисов I(С^(рп)) = 0(Мр(п))А(п)А(р) (см. [10, 11]).

Из предположения М(С^(рп))/пМ(С^(р)) ^ то следует, что сложность возведения в квадрат в поле (рп) при р > 2 асимптотически не меньше М(С^(рп))/2 (так как жу = ((ж+у)2 — (ж—у)2)/4), а I(С^(рп)) асимптотически не меньше М(С^(рп))/6 (так как ж2 = 1/(1/ж — 1/(ж + 1)) — ж).

В [15, 16] представлены примеры полей и базисов в них, таких, что I(С^(2П)) = 0(М2(п)). Далее будут приведены примеры полей (рп), для которых I(С^(рп)) = 0(А(р)Мр(п)), а сложность извлечения квадратного корня равна 0(Мр(п)А(р)А(п)).

В [17] показано, как модифицировать вероятностный алгоритм Тонелли-Шенкса в простых полях (р) так, что для его выполнения (при определенных предположениях относительно числа р) требуется асимптотически А(р) умножений в поле (р) (и он быстрее вероятностного алгоритма Чипполы). В [17] отмечено, что алгоритмы, близкие к алгоритму Чипполы, предлагались также Г. Поклингтоном (см. [3]) и даже А.-М. Лежандром [18].

В случае простых полей (р) для проверки существования квадратного корня применяется алгоритм Якоби-Кронекера, который имеет модификацию, основанную на использовании быстрого алгоритма Евклида-Шенхаге-Лемера, со сложностью 0(А(А(р))М(А(р)). Инвертирование в простых полях с помощью алгоритма Евклида-Шенхаге-Лемера также выполняется со сложностью 0(А(А(р))М (А(р)).

В [19] дан алгоритм, который обобщает алгоритм Тонелли-Шенкса и извлекает в поле (рп) корни любой заданной степени г со сложностью 0(гп4(А(р))4 (см. также [3]).

Для извлечения корней произвольной степени г для некоторых полей (рп) в [20] приведен

алгоритм, использующий 0(г(А(п) + А(А(р)) операций в поле (рп) (а именно умножений и воз-р

В [21] для извлечения квадратных корней в поле (рп) указан алгоритм, требующий 0(М(п)А(р) + С(п)А(п)) умножений в поле (р), где С(п) — число операций в поле (р), необ-

п

получена оценка С(п) = п1+о(1), ранее была известна оценка Брента-Кунга С(п) = 0(п1'67) (см. [4]).

В [24] приведены алгоритм извлечения квадратного корня в поле (р5), р = 3 (шоё 4), в = 2кг, г = 1 (шоё 2), к ^ то, сложности Ог,р(М(§)А(§)) и алгоритм инвертирования сложности Ор(М(2к)М(г)) + г1+о(1) (доказательства приведены для случая р = 3). Этот алгоритм извлечения корней в поле (35) можно почти без изменений перенести на случай поля (р5), где простое р = Ак + 3, в = 2кг, г = 1 (тоё 2). Действительно, существует г € СР(р2), (1 — г)2 = — 2г, и в качестве -Ш1 € СР(р2г), такого, что = г, можно взять и)\ = (1 — г)/л/—2 в случае р = 8/г + 3 и ■Ш1 = (1 + г)/л/2, если р = 8/г + 7.

В случае простого р = 4к + 1 существует г € (р), г2 = — 1, при р = 8к + 1 выберем =

лД € СР(рг) так, что ч/гУ]" = 2 лД £ СР(рг), и при р = 8/г + 5 возьмем -Ш1 = л/^ £ СР(р2г), л/Щ = л/1 ^ СР(р2г), далее базис строится аналогично случаю р = 3, но для извлечения корня в поле (р2г) используется алгоритм Чипполы сложности 0(гА(р))М(г)М(А(р)) или вариант алгоритма Тонелли [17].

р > 3 г

поле (р5), 8 = 2кг, к ^ то, а также сложность умножения и деления в этом поле равны Ог(М(2к)М(г)М(А(р))) (в предположении, что предварительные вычисления в алгоритме Тонелли, зависящие только от поля (рг), в сложности не учитываются).

Если для умножения в поле применяется стандартный алгоритм квадратичной сложности, то в произвольном (не обязательно полиномиальном базисе) квадратные корни в поле GF(3s), s = 2kr, k ^ то, можно вычислять со сложностью O(s2A(s)).

Извлечение кубических корней в поле GF(3s) при использовании произвольного полиномиального базиса {1, а,..., as-1} выполняется со сложностью не более 3M(GF(3s)) + 7s/3 + 1, если заранее вычислить кубический корень из а (см. [9]). В некоторых полиномиальльных базисах оценка понижается до O(s) за счет того, что а1/3 и а2/3 содержат мало слагаемых.

2. Быстрое извлечение кубических и квадратных корней в одном базисе. Сначала рассмотрим задачу извлечения кубических корней в полях характеристики три, для которых в [24] приведен быстрый алгоритм извлечения квадратных корней. Пусть q = 32ir, r нечетно. Извлечение кубического корня в поле GF(q2) при использовании базиса {1 из г = у], \ € GF(q), Шг € GF(q2) \GF(q), сводится к решению системы x3 = a, y3Шг_1 = b в толе GF(q), т.е. к извлечению двух кубических корней и делению на Wj_i, которые выполняются со сложностью O(r).

Если обозначить через S(i) сложность извлечения кубического корня в поле GF(32*r), то будем иметь

S(i) < 2S(i — 1) + r, S(1) = O(M(r)), значит, сложность извлечения кубического корня в GF(3s), s = 2kr, при использовании базиса

{1, шк,..., ш2'-1-1} равна S(k) = O(2kM(r)).

Рассмотрим задачу извлечения кубических корней в некоторых полях, характеристика которых больше трех.

Теорема 1. Сложность извлечения кубического корня в поле GF(q), где q = ps, p = 0 (mod 3), p > 2, s = 2k(2r + 1), равна

O(M (2k )k(M (r))M (A(p)) + r4(A(p))4) + kr1+o(1) A(p).

Лрм k ^ то, r = O(1), p = O(1) эта оценка, имеет, вид

Or,p(M (2k )k(M (r))M (A(p)) = Or,p(M (s)A(s)).

q—1 3 k > 0

GF(q), если они существуют, равно трем. Достаточно найти один из корней (остальные получаются умножением на е € GF(q), е3 = 1, е = 1; для нахождения е решаем уравнение x2 + x + 1 в поле GF(q)

Пусть x € GF(q2) \ GF(q). Для нахождения y € GF(q2), такого, что y3 = x, рассмотрим z = У + yq. Так как zq = yq + yq = yq + y = z, то z € GF(q), значит, w = z3 € GF(q). Ho

w = z3 = (y(1 + yq-1))3 = y3(1 + x(q-1)/3)3 = x(1 + x(q-1)/3 )3,

поэтому

z=^= + x^"1)/3) = у (1 + x^"1)/3),

откуда получаем

_ z _ ^E _л/х{1 + xfa~1)/3)3

У ~ 1 + ~ 1 + ж(9-1)/з ~ 1 + ж(<г-1)/з •

Для вычисления у = -у/ж по указанной формуле следует выполнить возведение х в степень (q — 1)/3, сложение с 1, возведение результата в куб, умножение на x (в итоге получим w € GF(q), значит,

GF(q2)

в поле GF(q) (если он не извлекается, то и у/х в поле GF(q2) не существует) и деление на ранее вычисленный элемент 1+x(q_1)/3. Этот элемент с вероятностью не больше (q — 1)/(3(q2 — q)) = 1 /(3q) может быть равен нулю. В этом случае выбираем элемент c € GF(q2)\GF(q) и вычисляем указанным методом корень из c3x, а потом полученный результат делим на с. При этом вместо 1 + x(q-1)/3 = 0 делить следует на 1 + cq-1x(q_1)/3 = 0, так как cq-1 = 1.

Заметим, что в башне полей на каждом этаже GF(q2i), кроме нулевого, выполнено условие: q2i — 1 кратно трем. В качестве с можно взять Шг, тогда умножение выполняется на Шг_1, т.е. со сложностью O(r), деление на Шг также со сложностью O(r). Сложность всех операций, кроме возведения в степень, равна O(M(2г)M(r)M(A(p))), а сложность возведения в степень равна

O(M (2г )M (r)M (A(p))i) + r1+o(1)2i iM (A(p)).

Если обозначить через S(i) сложность извлечения корн я в поле GF (p2V), то будем иметь

S(i) < S(i - 1) + O(M(2®)M(r)M(A(p))i) + r1+o(1)2®iM(A(p)). Остается получить оценку S(1) = Or(M(A(p))), и тогда

S (k) = O(M (2k )M (r)M (A(p))k) + 2k r1+o(1) kM (A(p)).

Для извлечения корня в поле GF(q2), q = p2r+1, указанным способом необходимо, чтобы q = 1 (mod 3). Это верно при p = 1 (mod 3). В случае p = 2 (mod 3) используем другой прием. Пусть

(ж + yw1)3 = а + bw1 € GF(q2),w2 = а € GF(p),w1 € GF(p).

Тогда

ж3 + 3жу2а = а, у3 а + 3ж2у = b, 3ау2 = а/ж — ж2,3ж2 = b/у — у2а, (3ау2 + ж2)2ж2 = а2,

(8ау3 + b)2(b — у3а) = (3(3ау2 + ж2)у)23ж2у = (9у2а2/ж2)3ж2у = 27а2у3.

Для отыскания у следует решить кубическое уравнение в поле GF(q) (оно обязано иметь или один, или три корня) и извлечь из его решений кубические корни (кубический корень всегда существует

ж3 = 1

ж находится извлечением квадратного корня. Для извлечения кубического корня из ж = 0 в поле GF(q), q = 2 (mod 3), найдем число а, такое, что 3а = 1 (mod q — 1), тогда ж3а = ж, значит, жа = ж1/3. Сложность вычисления жа равна

O(M (GF (q)A(q))) = O(M (2r + 1)M (A(p))rA(p)).

В случае q = 1 (mod 3) в поле GF(q) для отыскания одного из трех кубических корней из ж при q = 7 (mod 9) достаточно вычислить у = ж(<?+2)/9, поскольку ж(<?-1)/3 = 1 (иначе корни не существуют), значит, у3 = ж(<?+2)/3 = ж. Если q = 4 (mod 9), вычислим у = ж(2<?+1)/9, тогда получим у3 = ж(2<?+1)/3 = ж2(<?-1)/3ж = ж. Во всех этих случаях сложность вычислений равна O(M(GF(q)A(q))).

При q = 1 (mod 9) для извлечения кубического корня в GF(q) можно применить алгоритм [17] со сложностью O(r4(A(p))4).

Значит, в общем случае сложность извлечения кубического корня в поле GF(q2), q = p2r+1, оценивается как O(r4(A(p))4). Если кубический корень из ж в поле GF(ps), s = 2k(2r + 1), k > 0, не существует (чтобы это проверить, можно вычислить ж(<?-1)/3 и сравнить результат с 1,е,е2, е3 = 1, е € GF(p2) с GF(p2(2r+1)), это делается со сложностью O(M(2r + 1)M(A(p))A(r))), то он принадлежит полю GF(p3s) и его можно найти, выполнив указанные выше вычисления в башне полей, начинающейся с поля GF(p3(2r+1)) со сложностью Or,p(M(2k)k(M(r))M(A(p)). □

Рассмотрим задачу извлечения кубических корней в некоторых полях характеристики два. Теорема 2. Извлечение кубических корней в поле GF(q), q = 2s, s = 2r ■ 3k, r не кратно 3, выполняется со сложностью

O(M (3k )(k + r)M (r) + 3k krM (r)) = Or (M (GF (q))A(A(q)) = Or (M (s)A(s)).

Извлечение квадратных корней в том же базисе того же поля выполняется со сложностью

O(3k M (r)) = Or (M (s)).

Доказательство. Рассмотрим башню, состоящую из кубических расширений подполей:

GF(22r) с GF(26r) с ... С GF(23"2r).

На каждом этаже этой башни GF(23"2r) выберем базис (1,Wj, w2}, вде w3 = wi-1, Wj € GF(23i2r) \ GF(23i 2r), wo € GF(4). Элемент Wj является корнем неприводимого трехчлена ж312 + ж31 + 1 над полем GF (2) и неприводимого бинома ж31 + Wo над пол ем GF (4) (это следует из теоремы 3.75 [25]).

Для извлечения кубического корня в поле GF(q3), q = 22^3*, r не кратно 3, при использовании базиса {1,Wj, w2} над полем GF(q) можно применить указанный в теореме 1 прием сведения к

GF(q), q = 1 (mod 3).

Пусть х € (д3) \ (д). Если в поле (д3) существует кубический корень из х, то таких корней три. Достаточно найти один из них. Для нахождения у € (д3), такого, что у3 = х, рассмотрим г = у + у9 + у9 € (д3). Так как я9 = у9 + у9 + у9 = у9 + у9 + у = я, то я € (д), значит, ад = я3 € (д). Но

ад = я3 = (у(1 + у9-1 + у92-1))3 = у3(1 + х(9-1)/3 + х(92-1)/3)3 = х(1 + х(9-1)/3 + х(92-1)/3)3,

поэтому

у г = у/гй = + ж^"1)/3 + ж^2"1)/3) = у(1 + ж^"1)/3 + ж^2"1)/3), откуда

__£___^ад__ {/ж(1 + ж^-1)/3 + ж^2~1)/3')3

У - 1 + ж(?-1)/З+ж(92-1)/З - 1+ж(?-1)/З+ж(92-1)/З - 1+ж(9-1)/З+ж(92-1)/З •

Для вычисления у = ^/ж по указанной формуле следует выполнить возведение ж в степень (д — 1)/3, потом в степень д + 1, сложение с 1, возведение результата в куб, умножение на х (в итоге получается ад € (д), значит, это умножение выполняется проще произвольного умножения в поле (д3)), извлечение корня в поле ОР{д) (если он не извлекается, то и ^/ж в поле ОР{д3) не существует) и деление на ранее вычисленный элемент 1 + х(9-1)/3 + х(9 -1)/3. Этот элемент с вероятностью не больше (д2 — 1)/(3(д3 — д)) = 1/(3д) может быть равен нулю. В этом случае выбираем элемент с € (д3)\С^(д) и вычисляем указанным методом корень из с3х, а потом полученный результат делим на с. При этом вместо 1+ х(9-1)/3 + х(9 -1)/3 = 0 делить следует на 1 + с9-1х(9-1)/3 + с9 -1х(9 -1)/3 = 0.

В качестве с можно взять шг, тогда с9-1 = (ш3*)(9-1)/3 = ш09 1)/3 . Так как д — 1 = 1 — 1, г не кратно 3, то 4Г — 1 не кратно 9, откуда индукцией с помощью тождества д3 — 1 = (д —1)(1 + д + д2) получаем, что — 1 кратно 3г+1, то не 3г+2. Значит, с9-1 = , I = 1, 2, с9 -1 = (ш0)9+1 = ш", т = 3 — I, и если. 1 + х(9-1)/3 + х(«2-1)/3 =0, 1 + с9-1х(9-1)/3 + с92-1х(«2-1)/3 = 0, то

(Ш0 — 1)х(9-1)/3 + (ш" — 1)х(^-1)/3 = 0,

откуда получаем х(?2-9)/3 = ш", т = 1, 2. Поэтому х?2-9 = 1, х93-?2 = 1, следовательно, х?2-1 = 1, х9 -9 = 1, х9-1 = 1, т.е. х € (д), то это противоречит условию х € (д3) \ (д).

Умножение на Шг-1 в поле (д), д = , выполняется со сложностью О(г), а деление на Шг — со сложностью О(г). Сложность всех операций, кроме возведений в степень, равна 0(М(3г)М(г)). Возведение в степень д в поле (д3) выполняется по формуле Фробениуса:

(х0 + х1Шг + х2Ш2)9 = х0 + х^Ш9 + х2(ш2)9 = х0 + х^ + х2(ш2)9.

Так как согласно проверенному выше ш^-1 = ш0, I = 1, 2, то ш? = шгш0, ш29 = ш2ш^г,

(хо + х^г + х2ш2)9 = хо + (х^ )ш* + ^ш^ш2)9,

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

т.е. такая операция Фробениуса выполняется со сложностью 0(3гг).

Остается оценить сложность возведения в степень (д —1)/3 в поле (д3). Так как д = до = 43*г, то, полагая д1 = 43* г, д2 = 43* г, ..., дг = 4Г, имеем в силу д3 = д.,--1, ^ = 1,..., г, тождество

+ дг + 1)...(д2 + д1 + 1).

33

х

д — 1 _ дг — К„2 Л\ („2

х = хо + х1шг+1 + ... + х3*+1-1ш3]_1 1, х^ € (4Г),; = 0,..., 3г+1 — 1

(это достигается перестановкой координат в исходном базисе). Возведение в любую степень д^ согласно тождеству Фробениуса выполняется по формуле

+ х9г ш91 + + х9г ш(3г+1-1)9г

х0 + х1 шг+1 + ... + х3г+1 — 1шг+1 .

Каждая степень ш^ в силу равенств ш3+11 = ш0 € (4), ш3^2 = ^на шь+1ш0, где Ь < 3г+1, с < 3. Каждая из степеней х9г равна х^, где а < 4Г — 1 (так как х4 -1 = 1). Сложность вычисления

всех этих степеней равна 0(3*rM(r)), поэтому сложность возведения в степень q оценивается как 0(3*rM(r)), значит, сложность возведения в степень q2 тоже равна 0(3*rM(r)), следовательно, сложность возведения в степень 1 + q^ + q2 равнa 0(M(3*)M(r) + 3VM(r)). Суммарная сложность всех таких экспоненцирований составляет 0(iM(3*)M(r) + 3*irM(r)). Так как (q* — 1)/3 < 4r, то сложность возведения в эту степень равна 0(rM(3*)M(r)). Значит, сложность всех вычислений, кроме извлечения корня в поле GF(43r), оценивается как 0((i + r)M(3*)M(r) + 3*irM(r)). Если обозначить через S (i) сложность извлечения корн я в поле GF (43 r), то будем иметь

S(i) < S(i — 1) + 0((i + r)M(3*)M(r) + 3*irM(r)).

Так как r не крат но 3, то q — 1 = 4r — 1 не кратно 9. Поэтому в поле GF (q) кубический корень извлекается по формуле ж1/3 = ж(<?+2)/9, если q = 7 (mod 9), и по формуле ж1/3 = ж(2<?+1)/9, если q = 4 (mod 9). Действительно, пусть y = x(q+2)/9, тогда y9 = xq+2 = ж3, значит, y3 = жы, где ы3 = 1, ы € GF(22). Если кубический корень из ж существует в поле GF(q), то ж(<?-1)/3 = 1, значит, y3 = ж(<?+2)/3 = ж (т.е. ы = 1). В случае же ы = 1 находим элемент а € GF(26), такой, что а3 = ы, тогда элемент y/а € GF(43r) = GF(q3) таков, что (y/а)3 = жы/а3 = ж, остальные кубические корни получаются домножением на ы и ы2 = ы + 1 € GF (4). В случае q = 4 (mod 9) берем y = ж(2<?+1)/9, тогда y9 = ж2<?+1 = ж3 и дальше аналогично рассмотренному случаю. В обоих случаях S(0) = 0(rM(r)), поэтому

S (k) = 0(M (3k )(k + r)M (r) + 3k krM (r)).

ok

Если кубический корень из ж € GF(43 r) не извлекается (чтобы это проверить, можно вычислить ж(<?-1)/3, q = 43 r, и сравнить результат с 1,ы0,ы2, ыо € GF(4)), то он принадлежит полю GF(43k+1r) и вычисления следует проводить в этом поле. Их сложность равна 0(M(3k)(k + r)M(r) + 3k krM (r)).

Оценим сложность извлечения квадратных корней в том же базисе. Извлечение квадратного корня в поле GF(4r), как известно, выполняется со сложностью 0(M(2r)) в любом полиномиальном базисе, а в некоторых из них — со сложностью 0(r), как и в нормальных базисах. Извлечение квадратных корней на следующих этажах башни основано на решении системы уравнений

(ж + уы*+1 + ¿ы2+1)2 = a + Ьы*+1 + сы2+1

в подполе GF(22^3*), т.е. сводится к извлечению трех квадратных корней и делению на ы* в этом

подполе. Переходя в нем путем перестановки координат к полиномиальному базису {1, ы*,..., ы3 -1},

ы3 = ы0 € GF(4), и замечая, что 1/ы* = ы3-1/ы0, получаем, что деление на ы* в этом базисе выполняется по формуле

1 / 3 —1\ жо — 1 — 2

— (XQ+XiUJi + ...+Xii_lUJi ) = -UJi +ж1 +X2UJi + . . . + X3i_1Wi

ы* ыо

со сложностью 0(r), так как ж0/ы0 = ж0ы^ = ж0(ы0 + 1) = (u0 + г>0ы0)(ы0 + 1) = u0 + v0 + и0ы0. Отсюда по индукции следует, что сложность извлечения квадратного корня в поле GF(22r^k) равна 0(3kM(r)). □

3. О решении уравнений не выше четвертой степени над конечными полями. Далее вместо M2(n) для краткости пишем M (n).

Теорема 3. Решение уравнений степени не выше четырех в поле GF(ps), где p > 3, s = 2kr, k —^ то, r = ±1 (mod 6), p, r = 0(1), при использовании подходящего базиса можно найти с битовой сложностью

0Г (M (2k )kM (r)M (A(p))) = 0r,p (M (s)A(s)).

В полях GF(3s), где s = ±1 (mod 6), в нормальном базисе решения можно найти с битовой сложностью 0(M(GF(3s))A(s)), a в полях GF(2s), где s = 2r, r = 0 (mod 3), — с битовой сложностью 0(M (GF (2s ))A(s)).

Доказательство. Решение квадратных уравнений в полях нечетной характеристики стандартным способом сводится к извлечению квадратных корней в этих полях. В случае GF(2n) оно

сводится либо к извлечению квадратного корня, либо к решению уравнения х2 + х = а путем линейной замены переменных. Сложность указанного сведения равна 0(/(СР(2П))). Уравнения обоих типов решаются со сложностью О(п) в любом нормальном базисе и в некоторых полиномиальных базисах (см., например, [10]).

Решение уравнения х3 + ах2 + Ьх = с над полем СР(д), характеристика которого не равна трем, путем стандартной замены у = х + а/3 сводится со сложи остью 0(М (СР (д))) к решению уравнения вида у3 + ау = Ь. При а = 0 в поле СР(д) любой характеристики это задача извлечения кубического корня. В поле характеристики три она имеет одно решение, а в остальных случаях — одно решение (есть еще два решения, принадлежащие СР(д2) \ СР(д)), три решения или нуль решений (т.е. все три решения принадлежат СР(д3) \ СР(д)). а=0

(т.е. все три решения принадлежат множеству СР(д3) \ СР(д)) или иметь одно решение (остальные два принадлежат множеству СР(д2) \ СР(д)). Путем замены ж = у/с, где с = л/а, оно сводится к уравнению вида ж3 + х = й, а при с = л/ка — к уравнению х3 + х/к = й = Ъ/{кал/ка). Если с = л/а ф СР(д), то выберем простейший квадратичный невычет к € СР(д), тогда можно использовать с = л/ка.

В случае, когда уравнение у3+ау = Ь не имеет решений в поле СР(д), все три решения уравнения х3 + х/к = с? принадлежат СР(д3) \ СР(д), а после деления на с = л/ка либо все полученные три решения уравнения у3+ау = Ь попадают в СР(д3)\СР(д) (тогда многочлен у3+ау—Ь неприводим над полем СР(д)), либо все три принадлежат СР(д), либо один лежит в этом поле и два в СР(д2)\СР(д).

Решения уравнений вида х3 + х/к = ^ можно затабулировать. Таблицы составляются заранее, и сложность их вычисления не учитывается в оценке сложности рассматриваемого алгоритма. В случае полей большого порядка лучше эти уравнения все же решать.

Если поле СР(д) имеет характеристику, не равную трем, то очевидно применение метода Ферро-

Тартальи-Кардано. Пусть х = и + V, тогда и3 + 3тох + V3 + х/к = Положим то = — 1/(3к), будем

иметь и3 + V3 = и3^3 = —1/(27к3), значит, и3 и V3 являются корнями квадратного уравнения

х2 — ^х = 1/27к3 (в поле характеристики два минус заменяется на плюс, к = 1, значит, справа

стоит 1). Согласно теореме 1 в полях СР(р5), в = 2к(2г + 1), р > 2, это квадратное уравнение при

к ^ то, г = 0(1) можно решить со сложностью 0Г (кМ (2к )М (г)М (А(р))) и с такой же по порядку

и3

V3 принадлежат СР(ф), где ф = д,д2, то и, V € СР(ф3^и СР(ф), причем имеем по три значения для и и V. Различных сумм и + V будет девять, но так как то = —1/3к, то из них следует оставить три, которые должны быть корнями уравнения. Некоторые могут не принадлежать СР(д), проверка этого при использовании для вычислений в полях СР(дт) полиномиальных или нормальных базисов над полем СР(д) тривиальна. Сложность всех проведенных вычислений (согласно теоремам 1, 2) очевидно равна 0Г (кМ (2к )М (г)М (А(р))) при д = р5, в = 2к(2г + 1), к ^ то.

Рассмотрим случай полей СР(д) характеристики три. Уравнения вида х3 + ах2 + Ьх = с при а = 0 в поле СР(3П) можно заменой х = ау свести к уравнению вида у3 + у2 + ^у = е, а потом при помощи замены х = у — ^/2 — к уравнению вида х3 + х2 = /. В случае / = 0 применив замену у = 1/ж, сводим уравнение к виду ж3 — ж// = 1//, а далее путем замены X = ж/с при с = л/1// — к уравнению X3 — X = 1/с в поле СР((5), <5 = <?,<?2. Если с = л/1// € СР(д), то <5 = д. В случае д = 32га+1 и с = л/1// ^ СР(д) возьмем С = л/—1// € СР(д) и уравнение заменой X = х/ сразу сводится к X3 + X = —1/С € СР(д). Сделав далее замену X = гх, г € СР(9), г2 = —1, получаем уравнение х3—х = ^ € СР(д2). В полях СР(32га+1) квадратные корни, если существуют, извлекаются путем возведения в степень (д + 1)/4, д = 32га+1, со сложностью М(СР(д))А(А(д)).

В полях СР(32п) извлечение квадратного корня алгоритмом Тонелли-Шенкса имеет сложность 0(М(СР(д))(А(д))2). Так как

(9П — 1)/8 = 1 + 9 + 92 + ... + 9П-1,

то при п = 2к +1 имеем огё2(9га — 1) = 3, при п = 4к + 2 имеем огё2(9га — 1) = 4, при п = 8к + 4 имеем огс12(9П — 1) = 5 (огс^п — максимальная степень двойки, делящая п). Поэтому на самом деле при д = 3П, п = 0 (шоё 1)6, сложность алгоритма Тонелли-Шенкса равна 0(М(СР(д))А(д)), алгоритм можно рассматривать как детерминированный (сложность нахождения квадратичного невычета в поле СР(3П) игнорируем), а в остальных случаях применить вероятностный алгоритм Чипполы со сложностью 0(М(СР(д))А(д).

Решение кубических уравнений в поле СР(3П) выше было сведено к решению уравнения вида

ж3 — ж = d или ж3 = d в поле GF(3n) или GF(32n). В нормальных базисах решение уравнения ж3 — ж = d сводится к решению циклической системы линейных уравнений, каждое из которых содержит две неизвестные, и выполняется со сложностью O(n). Извлечение кубического корня (он в поле GF(3n) существует и единственный, причем трехкратный) в нормальном базисе сводится к циклическому сдвигу координат и не требует выполнения других операций над ними. Уравнение ж3 — ж = d имеет корень в GF(3n) тогда и только тогда, когда след Tr(d) = 0. Вычисление следа и в нормальном, и в степенном базисе, и в башне полей при n = 2k выполняется со сложностью O(n). Если n = 2k + 1 и в поле GF(3n) использовался нормальный базис, то в поле GF(32n) нормальный базис можно получить перестановкой произведения нормального базиса в GF(3n) и нормального базиса {ы1,ы3} в GF(32), ы1 = 1 — i, i2 = —1. Если уравнение ж3 — ж = d не имеет решений в поле GF(3m), то все его корни лежат в поле GF(33m) и их можно найти со сложностью O(m), используя нормальный базис в этом поле, который можно при m = 0 (mod 3) построить путем перестановки произведения нормального базиса в GF(3m) и нормального базиса {а, а3 ,а9} в поле GF(33), а3 = а2 — 1.

Рассмотрим теперь случай поля GF(32'r), j > 1. В качестве базиса в поле GF(32'r) над подполем GF(32r) можно взять произведение базисов

{1, ы j } X {1,ы,-_1} X ... X {1,ы2}.

Из равенств ы2' 1 = ы1 и свойств двоичной системы счисления следует, что последний базис является

перестановкой полиномиального базиса {1, ы^,..., ы2' 1-1}, где ы2' 1 = ы1 = 1 — i € GF(32), i2 = — 1,

соответствующего неприводимому двучлену ж2' 1 — ы1 над пол ем GF (32). Возведение в куб в этом базисе выполняется по формуле

(ж0 + ж^- + ... + ж2, - 1_1ы2' 1-1)3 = ж|] + ж3^3 + ... + ж3, - 1_1ы3(2' -1).

Так как w3fc = w3fc (-mod V ^ ' иЗ к (mod 2J_1), где к = 0,..., 2J_1 — 1, по разу пробегает

все значения 0,1,..., 2j-1 — 1, то решение уравнения ж3 = d в этом степенном базисе сводится к решению 2j-1 уравнений вида ж3ы1' = dj в поле GF(32r). Представляя его элементы в виде ж + уы1, ж, y € GF(3r), ы2 + ы1 = 1, замечаем, что деление на элемент ык сводится к умножению на элемент , а умножение на произвольный элемент a + Ьы1 пол я GF (9), a, b € GF (3), сводится к 0(1) сложениям в поле GF(3r), т.е. имеет сложность O(r). Извлечение корня сводится к решению системы ж3 + у3ы3 = a + Ьы1, ы3 = ы1 — ы2 = —1 — ы1, т.е. системы ж3 — y3 = a, —y3 = b, поэтому оно со сложностью O(r) сводится к двукратному извлечению корня в поле GF(3r). Если это выполняется в нормальном базисе, то сложность извлечения корня равна O(r), а если в произвольном степенном, то, вычисляя заранее корни из первой и второй степени порождающего элемента, нужный нам корень можно найти со сложностью 2M(r) = O(rA(r)).

Таким образом, в поле GF(ps), s = 2k(2r + 1), при k — то, p > 2 сложность решения кубических уравнений равна Or(kM(2k)M(r)M(A(p))), а в поле GF(2s), s = 3k2r, при k — то равна Or (kM (3k )M (r)).

p> 2

шению кубического уравнения, разложению левой части уравнения на два квадратных множителя GF(q2) GF(q6)

рых могут принадлежать полю GF(q4) или GF(q3). Проверка найденных корней на принадлежность полю GF(q) выполняется быстро. Таким образом, в некотором базисе поля GF(q), q = ps, s = 2kr, r = ±1 (mod 6), уравнения четвертой степени решаются со сложностью Or (kM(2k)M(r)M(A(p))) при фиксированном r и k — то.

Рассмотрим поля характеристики два. Используем в них нормальные базисы. В случае полей GF(q),q = 22n+1, для извлечения кубических корней применяем формулу ж1/3 = жа, где 3a = 1 (mod q — 1) q = 2 (mod 3)

жа со сложностью O((M(GF(q))A(q))/A(A(q))) (см., например, [10, 11, 14]). В случае полей GF(q), q = 4n, n = 0 (mod 3), очевидно q = 4 (mod 9) или q = 7 (mod 9) и, как и в теореме 2, справедливы формулы ж1/3 = ж(2<?+1)/9 и ж1/3 = ж(<?+2)/9 соответственно. Представим (2q + 1)/9 в виде

7(2q + 1)/(43 — 1) = 56(q/4 — 1)/(43 — 1) + 1,

тогда для отыскания ж(2<?+1)/9 достаточно вычислить ж(<?/4 1)/63, потом возвести в 56-ю степень и умножить на ж. Так как (q/4 —1)/(43 — 1) = (43m —1)/(43 — 1), то методом Шольца-Брауэра находим ж(?/4-1)/63 со сложностью

O(M(GF(q)log2 m)) = O(M(GF(q))A(A(q))).

Поэтому вычисление ж(2<?+1)/9 выполняется со сложностью O(M(GF(q))A(A(q))). Аналогично проверяем, что сложность вычисления ж(<?+2)/9 равнa O(M(GF(q))A(A(q))) (вначале возводим в степень (q/16 — 1)/63 = (43m — 1)/63). В случае q = 1 (mod 9) можно применить метод [19], который без учета предварительных вычислений, используемых для нахождения кубического невычета, имеет сложность O(M(GF(q))(A(q))2).

В уравнении ж4 + aж3 + Ьж2 + сж = d можно избавиться от члена сж сдвигом y = ж + e, найдя e из условия ae2 = с. Уравнение ж4 + aж3 + Ьж2 = d заменой y = 1/ж сводится к уравнению вида y4 + ay2 + by = с (инвертирование в нормальных базисах имеет сложность O(M(GF(q))A(A(q))), см., например, [10, 11])- Рассмотрим случай а ф 0. Заменой х = л/ау сведем его к виду у4 + у2 + by = с. В нормальном базисе это уравнение превращается в циклическую систему линейных уравнений над GF(2) b = 0 1,

O(A(q)). a = 0, b = 0

у4 + by = с ш после замены у = yfbz получаем уравнение вида z4 + z = с, которое в нормальном базисе сводится к циклической системе над полем GF (2) и решается со сложи остью O(n). Рассмотрим случай произвольного Ь = 0. Разложим y4 + y2 + by + с на множители:

y4 + y2 + by + с = (ж2 + иж + v) (ж2 + иж + w).

Для этого решим систему v + w + u2 = 1, vw = с, u(w + v) = b, из которой следует, что b/u + u2 =

I, v+w = b/u, vw = с (см., например, [26])- Решим кубическое уравнение u3 +и = b (достаточно найти один корень), потом находим v, w, решая уравнение ж2 + жЬ/u + с = 0. Линейной заменой z = ж^Ь сводим его к виду z2 + z = с. В нормальном базисе это уравнение превращается в линейную систему над полем GF(2) и решается со сложностью O(A(q)). □

В заключение заметим, что оценка M(GF(pn)) = O(M(n)) справедлива для некоторых нормальных базисов, например для гауссовых нормальных базисов, а также для нормальных базисов, являющихся перестановками произведения нескольких гауссовых нормальных базисов в подполях взаимно простых размерностей (см., например, [10, 11]).

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

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

1. Василенко О.Н. Теоретико-числовые алгоритмы в криптографии. М.: .\IIUI.\K). 2003.

2. Коблиц Н. Курс теории чисел и криптографии. М.: Научное издательство НТП, 2001.

3. Bach Е., Shallit D. Algorithmic number theory. Vol. 1. Massachusetts: MIT Press Cambridge, 1996.

4. von zur Gathen J., Gerhard J. Modern computer algebra. Cambridge University Press, 2003.

5. Berlekamp E.R., Rumsey H., Solomon G. On the solution of algebraic equation over finite fields // Inform, and Control. 1967. 10. 553-564.

6. Chien R. Т., Cunningham B.D., Oldham I.B. Hybrid methods for finding roots of a polynomial with application to BCH decoding // IEEE Trans. Inform. Theory. 1969. IT15, N 2. 329-335.

7. Chen C.L. Formulas for solutions of quadratic equations over GF(2m) // IEEE Trans. Inform. Theory. 1982. IT28, N 5. 792-794.

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

9. Ahmadi O., Hankerson D., Menezes A. Formulas for cube roots in GF(3m) // Discrete Appl. Math. 2007. 155, N 3. 260-270.

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

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

12. Harvey D., van der Hoeven J. Integer multiplication in time O(n log n) // HAL Techn. report N 02070778, 2019, available at: https://hal.archives-ouverts.fr/hal-02070778.

13. Harvey D., van der Hoeven J. Polynomial multiplication over finite fields in time O(n log n) // HAL Techn. report N 02070816, 2019, available at: https://hal.archives-ouverts.fr/hal-02070816.

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

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

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

17. Bernstein D.J. Faster square roots in annoing finite fields. URL: http://cr.yp.to/.

18. Legendre A.-M. Recherches d'analyse indeterminee // Historie de L'Academie Royale des Sciences. 1785. 465559.

19. Adleman L. M., Manders K., Miller G. On taking roots in finite fields //18 IEEE Symp. Foundations of Computer Science. 1977. 175-177.

20. Barreto P., Voloch J. Efficient computation of roots in finite fields // Designs, Codes and Cryptography. 2006.

39. 275-280.

21. Doliskani J., Schost E. Taking roots over high extensions of finite fields // Math. Сотр. 2014. 83. 435-446.

22. Doliskani J., Schost E. Computing in degree 2fc-extensions of finite fields of odd characteristic // Designs, Codes and Cryptography. 2015. 74. 559-569.

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

23. Kedlaya K.S., Umans C. Fast polynomial factorization and modular composition // SIAM J. Comput. 2011.

40, N 6. 1767-1802.

24. Гашков С.Б., Гашков И.Б. Быстрый алгоритм извлечения квадратных корней в некоторых конечных полях нечетной характеристики // Вестн. Моск. ун-та Матем. Механ. 2018. № 5. 8-14.

25. Лидл Р., Нидеррейтер Г. Конечные поля. Т. 1. М.: Мир, 1988.

26. Redei L. Algebra (Erster Teil). Leipzig Akademische verlaggeselschaft Geest& Portig K.-G, 1959.

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

УДК 519.622

О ПРИМЕНЕНИИ МЕТОДА ИНТЕГРИРОВАНИЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ, ОСНОВАННОГО НА ИСПОЛЬЗОВАНИИ РЯДОВ ЧЕБЫШЁВА, К ОГРАНИЧЕННОЙ ПЛОСКОЙ КРУГОВОЙ ЗАДАЧЕ ТРЕХ ТЕЛ

О. Б. Арушанян1, С. Ф. Залеткин2

Рассматривается приближенный метод решения задачи Коши для нелинейных обыкновенных дифференциальных уравнений первого порядка, основанный на согласованном применении смещенных рядов Чебышёва и квадратурной формулы Маркова. Кратко изложена методика автоматического разбиения интервала вычисления решения задачи Коши на некоторое количество элементарных сегментов, в каждом из которых приближенное решение задачи представляется частичной суммой смещенного ряда Чебышёва, удовлетворяющей наперед заданной точности. Работа метода подробно рассмотрена на примере одной из классических задач небесной механики, а именно ограниченной плоской круговой задачи трех тел. Наглядно показаны достоверность используемой оценки погрешности, ее близость к истинной погрешности, выделены преимущества предлагаемого метода по сравнению с известным методом Гира интегрирования обыкновенных дифференциальных уравнений.

Ключевые слова: обыкновенные дифференциальные уравнения, приближенные аналитические методы, численные методы, ортогональные разложения, смещенные ряды Че-

1 Арушанян Олег Багратович — доктор техн. наук, проф., зав. лаб. Научно-исслед. вычисл. центра МГУ, e-mail: arushQsrcc. msu .ru.

2 Залеткин Сергей Федорович — канд. физ.-мат. наук, ст. науч. сотр. Научно-исслед. вычисл. центра МГУ, e-mail: irazQsrcc.msu.ru.

Arushanyan Oleg Bagratovich — Doctor of Technical Sciences, Professor, Lomonosov Moscow State University, Research Computing Center, Head of Laboratory.

Zaletkin Sergei Fedorovich — Candidate of Physical and Mathematical Sciences, Senior Researcher, Lomonosov Moscow State University, Research Computing Center.

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