О схемах для арифметики в конечных полях

Автор: Бурцев Алексей Анатольевич, Гашков Сергей Борисович

Журнал: Труды Московского физико-технического института @trudy-mipt

Статья в выпуске: 4 (16) т.4, 2012 года.

Бесплатный доступ

В работе доказывается, что для любого ɛ> 0 при любом m, n = ms и s ≥ sɛ можно выбрать в поле GF(2n) базис, для которого схемная сложность умножения меньше n1+ɛ/2, а сложность инвертирования меньше n+ɛ. При n = 2 · 3k в некотором базисе получены оценки сложности умножения n(log3n)(log2 log3 n)/2+O(1), и по порядку такие же оценки получены для инвертирования.

Булевы схемы, сложность схем, арифметика, конечные поля

Короткий адрес: https://sciup.org/142185866

IDR: 142185866

Текст научной статьи О схемах для арифметики в конечных полях

Известно (см. [1], [2]), что при использовании стандартных базисов в полях GF (2П) сложность булевой схемы для умножения, построенной из двухвходовых элементов, равна О(п logn log log п). Для инвертирования (т.е. вычисления мультипликативного обратного в данном поле) известен быстрый алгоритм Евклида с оценкой сложности О(пlog2 п loglogn) (см. [1], [3]). Однако мультипликативная константа в этой оценке велика (несколько сотен), и при реальных значениях п стандартный алгоритм Евклида работает быстрее. Кроме того, этот алгоритм затруднительно применить при построении булевой схемы для инвертирования. Методом [4] можно построить такую схему сложности: I (п) = О(п(ш+1)/2 log2 п), где ш — экспонента матричного умножения. Однако величина мультипликативной константы здесь с трудом поддается оценке, также трудно оценить глубину этой схемы. Используя [5], можно построить схему для инвертирования глубины О(log2n) и сложности О(п1од2 v/14(log2 п)1од28/7), где мультипликативные константы сравнительно невелики, но и эта схема при реальных значениях п представляется неэффективной.

При использовании в поле GF (2П) нормального базиса можно построить схему для умножения сложности О(п2/logn) (см. [6]). Если для инвертирования применить метод [7] (основанный на методе Шольца—Брауэра для вычисления 2п — 1 аддитивными цепочками [8]), то можно построить схему сложности О(М^ (n)logn) = О(п2) с небольшой мультипликативной константой в оценке, где M n (п) — сложность умножения в данном базисе. Для некоторых специальных нормальных базисов (существующих не при всех п) можно построить более эффективные схемы для умножения, и, как следствие, для инвертирования. В [6] показано, что для оптимальных нормальных базисов первого типа можно построить мультиплер сложности М(п) + О(п), где М (п) — сложность умножения двоичных многочленов степени п — 1. Для оптимальных нормальных базисов второго типа в [6] указана оценка 3М(п)) + 3)1 log2n + О(п). В [6] также показано, что если п = тк, т,к > пс, С 6 1/2, (т, к) = 1, то для некоторого нормального базиса сложность умножения равна. О(п(т + к)/ logn) = О(п2-С/ logn), откуда следует, что если п — достаточно гладкое число, то для некоторого нормального базиса сложность умножения равна О(п2-С) при С >  0, характеризующем гладкость числа п. В [4] доказано, что для гауссовых нормальных базисов типа к в поле GF (2П) сложность умножения равна О(М (пк)), а в [9] подобный результат получен в более общем случае.

К упомянутым результатам можно добавить также следующие.

Теорема 1. Для любого е >  0 при любом т п = ms us > se можно указать в поле GF (2П) базис (не стандартный и не нормальный), в котором можно построить схему умножения сложности М (ms) < п1+е/2 и схему инвертирования сложности I (ms ) < п1+е.

Доказательство. Пусть k < s — параметр, значение которого укажем позднее. Выберем наименьшее г такое, что 2m’’ >  к — 1, и г = s mod к. Тогда г = О(к). Поле

GF (2mS ) = GF (qm ”} = GF (qmki) ,q = 2m, представим в виде башни расширений

GF (q) С GF (qmk ) C GF ((qmk )m ) = GF ^qm2k ) C ... C GF (qmki) . Для каждого этажа башни

GF (qi) = GF (Д ) C GF ((q^)m') = GF ^q^) " ) = GF (qi+1)

выберем стандартный базис {1,a,...,amk-1}, определяемый неприводимым над полем GF (qi) многочленом pi(x) степени тк таким образом, чтобы элемент а порождал нормальный базис {а, а^ ..., а^т 1 }, где Q = qi. Тогда произвольный элемент поля GF(qi +1 ) можно представить в виде тк-мерного вектора с компонентами из поля GF(qi) и в виде mk(i+1)-мepнoгo вектора с компонентами из поля GF (q). Умножение в поле GF (qi+1) можно свести к умножению по модулю многочлена pi двух многочленов степени t = тк — 1 над полем GF(qi). Известно [1], что умножение в поле GF (qi+1) сводится к трем умножениям многочленов степени t над полем GF(qi) и t сложениям в этом поле. Для умножения двух многочленов f, g степени t над полем GF(qi) можно сначала вычислить значения f(ai),g(ai) на произвольных 2t + 1 элементах его подполя GF (q), выполнить 2t + 1 умножение в поле GF(qi) и потом, используя интерполяционную формулу, восстановить по значениям h(ai) = f (ai)g(ai) коэффициентьi произведения h(x) = f (x)g(x). Для выполнения всех этих операций с помощью схемы Горнера и формулы Лагранжа требуется O(t2) операций сложения и умножения на элементы подполя GF(q) в поле GF(qi). Поэтому сложность умножения в поле GF (qi+1) оценивается как

М(GF(qi+1)) 6 3(2тк — 1)М(GF(qi)) + О(т2к)miк(log2 q)log23, так как сложение в поле GF(qi) выполняется со сложностью log2 qi = тгк log2 q, а сложность умножения на элементы подполя GF(q) равна М(GF(q))mik = O(log2 q)log2 3miк, потому, что это умножение сводится к тгк умножениям в поле GF(q). Если обозначить М(GF(qi')') через М(г), а 3(2тк — 1) через а, то полученное рекуррентное неравенство переписывается в виде М(г + 1) 6 аМ(г) + bm(i+1)k, где b = О(а)(тктТlog23) = О(а)то(к), М(0) = М(GF(q)) = O(log2 q)log23. Применяя индукцию, имеем

М(к) 6 а1М(0) + b (аі1-1тік + а/-2т2к + ... + т1к) , следовательно:

М (/) 6 а' М (0) + а-b 1 к 6 а>М (0) +          6

1 — тк/а             1 — тк/а

6 а-М(0) +3а-Ь/2 = О(а-+1)то(к) = О(а)то(к)2-log23(2mk-1).

Учитывая, что q- = qmki, имеем I = (log2 logy q-)/log2 тк, log2 q- = п, log2 logq 41 log2 3(2mk -1)

М(GF (2Д) = М(GF (q')) = О(тг log23))2-log23(2m -1) = то(к)2       ^-k       =

= mo(k^ (logq ®)1од™к 32m/ - = mo(k4log2 qtf0^ 3(2mk-1) = mo(kn°g™k 3(2mk-1), Поскольку logmk 3(2mk — 1) ^ 1 при mk ^ то, to для любого е > 0 при любом m, n = ms и s > se, имеем М (GF(2n)) = М (GF(2mS)) = n1+e/2. Умножение на каждом этаже башни можно выполнять и в нормальном базисе, если выполнить переход к стандартному базису, произвести умножение в нем и вернуться опять в нормальный базис. Грубая оценка сложности переходов между базисами равна m2kM (GF (qi)) + (m2k — mk )mik+r, ведь для выполнения как прямого, так и обратного преобразования координат требуется не более m2k умножений и не более m2k — mk сложений в поле GF(qi), имеющем размерность m^+r. с помощью циклических сдвигов вычислим в нормальном базисе систему степеней ж®, ж®2,..., ж^™ 1, Q = qi.

Возьмем кратчайшую линейную аддитивную цепочку (см. [8]) для числа t = mk — 1, Oo = 1,01 = 2,02,.. . ,o l = t длины L = L(t), т.е. такую последовательность, что каждый ее член оп при n >  0 равен on-i + Ok, k < n (если k = n — 1, то операция вычисления оп называется шагом удвоения, а если k < n — 1 — линейным шагом). Построим линейную аддитивную цепочку, содержащую подпоследовательность

Q"1 — 1 Q«2 — 1     Qt — 1

Q — 1 , Q — 1 ,..., Q — 1’ между соседними членами которой производятся несколько последовательных шагов удвоения и один линейный шаг, пользуясь формулами

Q'2 — 1 _ Q"' " - — 1 _ Q4 — 1   Q^ — 1

Q 1 Q — 1         Q — 1     Q — 1

Так как возведение в степень Qn в нормальном базисе делается бесплатно, а ж((2а0-1)/(Q-1) = ж, то для вычисления К (ж) = х^^1-^/^-1) требуется только L = L(mk — 1) операций умножения. Еще одно умножение требуется для вычисления N (ж) = жК (ж). Поэтому сложность совместного вычисления К (ж),N (ж) оценивается как

LM(GF (qi+i)) 6 L (3(m2k + 2mk — 1)М(GF(qi)) + O(m2k)mik(mr)log23) .

Используя формулу ж-1 = К (ж)/N(ж), получаем рекуррентную оценку сложности инвертирования:

I (log2 qi+1) = I (m ( i +1) k + r ) 6 I (mik + r ) + mk M(GF(q^) + + L(mk — 1) (3(m2k + 2mk — 1)M(GF(qi)) + O(m2k )mik(mr )log2з) . Очевидно, что L(t) 6 X2(t) + ^2(t) — 1 6 2log2 1 6 2klog2 m, где X2 (t) — длина двоичной записи числа t, a ^(t) — число единиц в ней (см. [8], где приведены и более точные оценки). Из полученных выше оценок по индукции с помощью неравенства оМ (n) 6 М (on) выводим оценку

I(ms) = I (mlk + r ) = I (log2 qi) 6 I(mr ) + O(km2k log2m)M(log2 q i - 1 ) =

= I(mr ) + O(kmk log2 m)M(ms ) = O(kmk log2 m)M (ms).

Теорема доказана.

Укажем конкретный пример применения данного метода. Пусть m = 2,n = ms. Выберем k = 8, тогда logm/= 3(2mk — 1) = log256 1 533 < 1.33 Получаем как следствие в некотором базисе поля GF (22п) оценку сложности умножения O(2n '33) и оценку сложности инвертирования I (n) = О(М (n)). Эти оценки асимптотически лучше оценок [10] (полученных для другого базиса).

3.    Схемы в поле GF(2п) при n = 2 • 3k

При т = 3 можно уточнить доказанную теорему следующим образом.

Теорема 2. При п = 2 • 3к в поде GF (2П) можно указать некоторый (не стандартный и не нормальный) базис и построить в нем схемы умножения и инвертирования сложности:

М (п) = n(logз n)(log2 log3 п)/2+°(1),/ (п) = О(М (п)).

Доказательство. Положим = 2ai ,аг = 2 • 3b , bi = 2г и рассмотрим башню полей

GF (qo) С GF(qi) С ... C GF (qk ).

Так как qi — 1 = 2ai — 1 кратно 3bi+1 = 3пг, то в поле GF(qi ) найдется элемент порядка 3bi+1 = 3щ, И) значит, определено дискретное преобразование Фурье порядка 3bi+1 = 3пг Как следует из [11], многочлены степени меньше пг = 3b = аг/2 над полем GF(qi ) могут быть перемножены с помощью 24пг log3 пг +О(пг) умножений и 68пг log3 пг+О(пг) сложений в этом поле. Если обозначить сложность умножения в поле GF(qг ) через М(GF(qг )), то сложность умножения многочленов степени меньше пг над полем GF(qг ) будет оцениваться как

(24пг logзпг + О(пг ))М (GF (qг)) + (68пг log3 пг + О(пг ))пг.

Обозначим далее эту оценку через Мг . Выберем в этом поле примитивный элемент аг, тогда двучлен = хПі аг будет неприводимым согласно теореме 3.75 [12], так как пг = 3b делит — 1, а значит, и +1 — 1 = 2ai+1 — 1. Выбирая в расширении GF (qг+1) поля GF(qг ) стандартный базис, соответствующий двучлену /г, и замечая, что умножение в этом базисе сводится к умножению многочленов степени меньше пг над полем GF(qг ) и приведению результата по модулю /г (которое выполняется школьным алгоритмом деления с помощью пг операций умножения и пг операций сложения в поле GF((qг ))). имеем

М(GF (qг+1)) 6 Мг + пгМ(GF(qг )) + аг +i 6

6 (24пг logзпг + О(пг))М(GF(qг)) + (68пг log3 пг + О(пг))пг + аг +i 6

6 (12аг log3 аг + О(аг))М(GF(qг )) + (17а2 log3 аг + О(а2)) + аг +i 6

6 (12аг log3 аг + О(аг))М(GF(qг)) + (17а2 log3 аг + О(а2 )) 6

6 (12аг Ьг + О(аг))М(GF(qг )).

Отсюда по индукции следует, что log2 М(GF(qn)) 6 у log2 12агЬг + О(1) = ^((log2 3)2г + г log2 24) + О(1) 6 г=1                         г=1

  • 6 (log2 3)2+ п2/2 + (22 + log2 3)п + О(1), значит,

М(GF(qn)) 6 О ^32п+"2(п2+5п)/2) ,qn = 22^32".

Обозначая для краткости ап = 2 • 32" через N, имеем

М(GF (2n )) 6 N (log3N)и/2+°(1) = N (log3N)(log2log3 N)/2+o(1).

Получим теперь оценку для сложности инвертирования. В расширении GF (qг+1) поля GF (qг) выполняем инвертирование по формуле

Так как

.                             2               п*                     2              ",' 1                  . .

N (x)q* = xq* xq* ... xq*  = xqi xq* ... xq*    x = N (x), то N(x) € GF(qt), поэтому для инвертирования нужно вычислить К(x),N(x), потом выполнить инвертирование в подполе G F(qt) и nt раз выполнить умножение в поле G F(qt). п*/3   2п*/3

Для вычисления N(x),K (x) сначала найдем у = xxqt xq *   , а потом

п*/ 3 - 1                          п*/ 3 - 1

N(x) = yyqi .. 4 *      (x) = у* ... у4 *

,. п*/ 3    2п*/ 3

q *        q i

^u        ^u          .

Поскольку

п» /3         пі /3    2п» /3    пі qt i          qt i qqi i qqi у i — x i x i x г

п*/ 3   2 п*/ 3

= xxq* xq*    = у,

то у GF (q"*/3). Значит, для вычисления у можно сделать 2 умножения в поле GF (qt+1)

"^/3  2"/3

и 2 операции возведения в степени q^  , q^    в том же поле, потом вычислить

п* / 3 - 1

N (x) = yyq * .. .у4 *

и для вычисления К (x) сделать одно умножение в поле GF (qt+1) на элемент подполя GF(q" /3). Учитывая, что произвольный элемент поля GF (qt+1) можно представить в виде

X o +X i yt + Х 2 у 2

где Xj = xj + x3y3+:i + x3 ( n./3 - i) +jXt^ni /3-1) GF (qt"* / 3 ),j = 0,1, 2, то умножение в поле GF (qt+1) на элемент подполя GF(q"1 /3) сводится к трем умножениям в этом подполе. Поле GF(q" /3) является расширением степени nt/3 = 3b* -1 подполя GF (qt) 11 в нем можно выбрать базис { 1, 3t,..., 3" /3 1}, где 3"/3 = at. Умножение в этом базисе совпадает с умножением многочленов степени nt/3 по модулю неприводимого над полем GF(qt) многочлена x"*/3 +a t . В расширении GF(qt) С GF(qt+1) ранее был выбраи базис {1, y t ,..., y"1 -1}, где у" = at. Положим 3t = 73. Тогда произвольный элемент подполя GF(q"* /3) имеет относительно базиса {1, 3t,..., 3" /3 1} координаты, которые совпадают с nt/3 координатами этого элемента относительно базиса {1, at,..., a"1 -1} (а остальные его координаты в указанном базисе равны нулю). Поэтому сложность умножения элементов данного подполя оценивается неравенством

М(GF(q" /3)) 6 М (at+1/3) + (nt/3)M(GF(qt)) + at+1/3 6

6 (8nt log3 nt + O(nt))M(GF(qt)) + ((68/3)nt log3 nt + O(nt))nt + at+1/3 6

6 (4atbt + O(at))M(GF(qt)).

Оценим сложность возведения в степени q"* / 3 ,q 2 ni /3 в поле GF(qt +1 ). Произвольный элемент x поля GF (qt+1) можно представить в виде

Хо + Х1У' + X27t2, где Xj € GF(qn"/3),j = 0,1, 2, то

п*/ 3 xq*

пі/ 3         пі/ 3

= X0q*   + Xq*

п^/ 3 qt

У' *

+ X2q*

п*/ 3

2,о п*/3                    оп*/3           2-Оп*/3

y2q*   =Xo +X1yq*   +X2y2q*   .

Так как q"*/3 — 1 делится па qt — 1. а 'значит, кратно nt, то ytq*    = yt(at)(qi*/ 1)/п* = atyt,yt2q* 1 = y2(at)2(q3-1 1)/9 = bty2,at,bt € GF(qt), пД3                   9'. 3          ^q4/'3

поэтому ж91   = Хо + X1yt 1   + X2yt 1   = Хо + X1atyt + JC^y^, значит, возведение в сте пень q^/ в поле G F(qt+i) сводится к двум умножениям в подполе G F(д"1/) на элементы подполя GF(qt). Следовательно, его еложность оценивается как (2щ/3)М(GF(qt)). Точно так же оценивается сложность возведения в степень q2"1 /3. Поэтому суммарная сложность всех выполненных операций равна

Lt = 2М(GF (qt+i)) + ЗМ(GF(q" /3)) + (4щ/3)М (GF (qt)) 6

6 (36a»bt + O(at))М(GF (qt)).

Для вычисления

П.-/ 3 - 1 уу91 ... У91

где у Е GF(q" /3), применяем тот же прием, вычисляя сначала

„п1/9  „2п1/9

  • 2    = уу91 у91    .

^1/ 3                  п1/ 9                                      "-/9

Так как у9 1    = у, то 291   = 2, значит, 2 Е GF(q»1 ). Для вычисления 2 нужно выпол-

"і/3\                                   "і/9 2"/9

нить два умножения в поле GF (q»  ) и возведение в степени qt  ,q»    в том же поле.

Аналогично предыдущим рассуждениям, оцениваем их сложность как

(GF(q "^3 )) + (4щ/9)М (GF(qt) 6 (24at - i bt + O(at - 1 ))M(GF(qt)).

Поскольку

П1/ 3 - 1                   пх/ 9 - 1

уу . . .у9       = 2Ғ11 . . . 29      ,

то остается вычислить

41 ...Ғ41-1    ,2 Е GF(q"1^9').

Применяя тот же прием, сводим это вычисление со сложностью

(GF(q^9) + (4щ/27)М (GF(qt) 6 (24at - 2 bt + O(at - 2 )W(GF(qt)

к вычислению

ww91

.

Пх/ 27-1                    /07

..w91       ,w Е GF (q"1/27)

и т.д. Так как щ = 3Ь1 , этот процесс закончится через bt шагов. На каждом шаге требуемая сложность уменьшается асимптотически в три раза, поэтому сложность вычисления N (ж) оценивается как

( 24| at - i bt + О(а»^М (GF (qt)), значит, сложность вычисления N (х),К (ж) оценивается как

(44ctbt + O(a» ))М (GF (qt)).

Отсюда следует рекуррентная оценка сложности инвертирования:

I (at+i) 6 I(at)+ntМ(GF (qt)) + (44a»bt + О(а»))М (GF(qt)-) 6

6 I (at) + (44atbt + О(а»))М (GF (qt()

Из нее по индукции получаем, что

I(а"( 6 52(44atbt + O(at))М(GF (q»)) + I(ao) = t=i

= (44an-ibn-i + O(an—i))M (GF (q.-i)).

Поскольку М(GF (qt+i)) 6 (12atbt + О(аі))М(GF(qt)), то предполагая, что

М (GF (qt+i)) = (12atbt + О(сі))М (GF (qt)), получаем асимптотическую оценку:

I (а,) 6 (у + «(1))

М (GF (q„)).

Замечая, что М(GF(q2)) = О (з2' +'2'22' 52 2 j , во всех случаях имеем

I (а.) = (44a2-ib2-i + O(C2-1))M (GF (q.-i)) = О ^+22(22+52)/2) .

Поэтому при N = а2 справедлив о равенство I (N ) = О(М (GF (2N ))). Такие же оценки можно получить и для любого N = 2 • 32. Для этого выберем к так, чтобы 2fc-1 6 и <  2к и определим последовательность а^ = N, at—i = 2 • 3^1og3(ai/2))/2^, положим qt = 2a* и рассмотрим башню полей GF (qg) С GF (qi) С ... С GF(q^ ). Теорема доказана.

Для практического построения схем для умножения и инвертирования в полях GF (22) произвольной размерности можно разложить и на множители, равные степеням простых чисел, построить эти схемы для полей, размерности которых равны указанным множителям, сводя их построение к построению схем для полей простой размерности, а потом применить метод построения схем для полей составной размерности при условии взаимной простоты сомножителей. Для инвертирования в полях простой размерности применяется метод [7]. Вместо простых чисел, при возможности, можно применять размерности, для которых существуют оптимальные нормальные базисы, или гауссовы базисы малой сложности (см., например, [9]).

4.    Вывод

Для любого е >  0 при любом т, и = ms и s > se можно выбрать в поле GF (22) базис, для которого схемная сложность умножения меньше и1+e/2, а сложность инвертирования меньше и1+e. При и = 2 • 3к для некоторого базиса можно получить для умножения оценки сложности и(1одз и)(1од2 1og3 2)/2+o(i) и по порядку такие же оценки можно получить для инвертирования.

Список литературы О схемах для арифметики в конечных полях

  • Gathen J. von zur, Gerhard J. Modern computer algebra. -Cambridge University Press, 1999.
  • Schonhage A. Schnelle Multiplication von Polynomen.uber K.orpern der Charakteristik 2//Acta Informatica. -1977. -V. 7. -P. 395-398.
  • Schonhage A. Schnelle berechnung von kettenbruchentwicklungen//Acta Informatica 1. -1971. -P. 139-144.
  • Gao S., Gathen J. von zur, Panario D., Shoup V. Algorithm for exponentiation in finite field//J. of Symbolic Computation. -2000. -V. 29. -P. 879-889.
  • Штрассен Ф. Алгоритм Гаусса не оптимален//Кибернетический сборник. -Вып. 7. -М.: Мир, 1971.
  • Болотов А.А., Гашков С.Б. О быстром умножении в нормальных базисах конечных полей//Дискретная математика. -2001. -Т. 13, № 3. -С. 3-31.
  • Itoh T., Tsujii S. A fast algorithm for computing multiplicative inverses in GF(2n) using normal bases//Inform. And Comp. -1988. -V. 78. -P. 171-177.
  • Кнут Д. Искусство программирования. Т. 2. -2-е изд. -М.: Вильямс, 2000.
  • Gathen J. von zur, N.ocker M. Fast arithmetic with general Gauss periods//Theor. Comp. Sci. -2004. -V. 315. -P. 419-452.
  • Paar C., Fan J.L. Efficient inversion in tower fields of characteristic two. -ISIT, Ulm, Germany, 1997.
  • Гашков С.Б. Замечания о быстром умножении многочленов, преобразовании Фурье и Хартли//Дискретная математика. -2000. -Т. 12, № 3. -С. 124-153.
  • Лидл Р., Hидеppейтеp Х. Конечные поля. -М.: Миp, 1988.
Еще
Статья научная