Быстрое вычисление дискретной свертки в редуцированных системах счисления для комплексных полей Мерсенна

ОБРАБОТКА ИЗОБРАЖЕНИИ

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

В.М. Чернов, О.В. Бесполитов* Институт систем обработки изображений РАН Самарский государственный аэрокосмический университет *Самарский государственный университет

В работе рассматривается задача быстрого безошибочного вычисления целочисленной свертки с помощью теоретико-числовых преобразований в комплексных полях Мерсенна. Снижение вычислительной сложности достигается за счет замены умножений сдвигами массива «цифр» при представлении элементов поля Мерсенна в (редуцированной) системе счисления «с комплексным основанием».

1. Постановка задачи Вычисление свертки двух N-периодических последовательностей

N-1

z(k)= ^ х(n) h(k-n),

k = 0,...,N -1

n=0

является массовой задачей цифровой обработки сигналов. В частности, метод Шенхаге-Штрассена сводит умножение больших целых чисел именно к вычислению свертки (1) последовательностей, ассоциированных с массивами цифр их представления в выбранной позиционной системе счисления. Традиционное вычисление свертки с помощью дискретного преобразования Фурье (ДПФ) по схеме:

~ ОДПФ

х

h(n) ПТ7ГЛ

для больших длин сворачиваемых последовательностей может приводить к вычислительной погрешности, связанной с конечноразрядным машинным представлением иррациональных значений базисных функций ДПФ, иногда весьма значительной.

Для ряда задач цифровой обработки сигналов (задач криптографии, в частности) принципиально не допускается «приближенный» ответ. Либо точный, либо - не ответ. Паллиативным решением в этом случае является использование вместо дискретного преобразования Фурье его «модулярных аналогов» - теоретико-числовых преобразований (ТЧП, преобразований Фурье-Галуа): N-1

£(ш)=£ х(n)comn (mod p),

n=0

N

= 1 (mod p).

Теорема о свертке остается справедливой и в этом случае, но для свертки (1), понимаемой не в целочисленной арифметике кольца Z, а в арифметике конечного поля (mod p), существенно отли-

чающейся от арифметики кольца Z. Однако если взять простое число p достаточно большим, а именно:

p > max {x

0<n< N 0<n< N

и считать, что выполняются неравенства

0 < x(n), h(n) e Z ,

то наименьший неотрицательный вычет значения целочисленной свертки, вычисляемой непосредственно по формуле (1), равен значению этой свертки.

При вычислении свертки (1) с помощью теоретико-числовых преобразований (ТЧП) результаты промежуточных вычислений могут превзойти число p, и полученные значения компонент свертки оказываются «вычисленными с ошибкой», с точностью до слагаемого, делящегося на число p. Выбор числа p с условием (3) в сочетании с (грубой) априорной информацией о диапазоне изменения значений сворачиваемых функций позволяет утверждать, что найденные значения свертки являются точными (следующее целое число, отличающееся от найденного слагаемым, делящимся на p, «слишком велико»).

Отметим, что спектральные методы вычисления (1) с помощью ТЧП содержат ряд вполне объективных трудностей, связанных с арифметическими особенностями конечных полей:

• арифметические операции (mod p) не являются «элементарными компьютерными операциями», а простые числа p c «дружественными» для машинной реализации свойствами модулярных операций встречаются в натуральном ряду достаточно редко;

• в отличие от поля комплексных чисел, в конечном поле GF(p) существуют корни не любой степени N единицы, а только удовлетворяющие условию делимости N |(p -1).

К сожалению, эти особенности отчасти конфликтуют между собой: «хорошие» для машинной реализации операций простые числа имеют «плохие» делители числа (p -1), что несколько осложняет

алгоритмическую поддержку вычислений ТЧП, и наоборот. Поэтому основной задачей статьи является разработка неких компромиссных решений, базирующихся на использовании представления элементов конечных полей в специальных системах счисления.

2. Арифметика в полях Мерсенна Простым числом Мерсенна называется простое число вида р = 2q -1. Из вида числа Мерсенна сразу следует необходимое (но не достаточное) ограничение на число q, которое также должно быть простым. Числа Мерсенна встречаются в натуральном ряду достаточно редко. К настоящему времени известно только 39 чисел Мерсенна для q = 2,3,5,7,13,17,19,31,61,89,107,127,

521,607,...,13466917.

Тем не менее, вычислительная привлекательность чисел Мерсенна заключается в том, что арифметические операции в полях классов вычетов по модулю таких чисел реализуются достаточно просто.

Сформулируем основные правила вычислений в поле М = ^р^, Р = 2q -1 (см., например, [1]):

1. любой элемент поля М представляется в форме

x = x020 + x^1 +... + xq-12q-1, xj e{0,1} ;

2. это представление однозначно для всех 0 Ф x e M ; нулевой элемент представим двумя способами в форме (4):

0 • 20 +... + 0 • 2q-1 = 1-20 + ... +1-2q-1 =

= 2q -1 = 0 (mod р);

3. так как 2q = 1 (mod р), то в случае возникновения «бита переполнения» 1 • 2q при вычислениях эта единица «самого старшего разряда» переносится в «самый младший разряд» и суммируется с полученным числом;

4. умножение элемента x e M на элемент 2 e M равносильно циклическому сдвигу «цифр» Xj в

представлении (4):

2 x = Xq_12 + Xq 2 +... + Xq_2 2q ;

5. умножение элементов поля M «столбиком» сводится к циклическим перестановкам цифр и сложениям;

6. мультипликативный порядок элемента 2 e M равен q: Ord(2) = q (следовательно, при ю= 2 e M возможна реализация ТЧП (2) длины N = q без умножений);

7. мультипликативный порядок элемента (-2) e M равен 2q: Ord(-2) = 2q (следовательно, при ю = (-2) e M возможна реализация ТЧП (2) длины N = 2q без умножений);

8. максимальная степень двойки, делящая число

(р -1), равна единице.

Следует заметить, что последнее свойство чисел Мерсенна несколько осложняет задачу эффективного вычисления ТЧП Мерсенна, так как требование делимости N|(р -1) приводит к необходимости синтеза быстрых алгоритмов таких преобразований для весьма «экзотических» длин N.

Например,

(231 -1)-1 = 2 •(230 -1) = 2 • 32 • 7-11-31-151-331 и так далее.

Паллиативным способом преодоления указанной трудности является рассмотрение ТЧП в комплексном поле Мерсенна

M(i) = {z :,

+ bi; a, b e M, i2 =-1

В этом случае условие делимости имеет вид N (р -1) в силу равенства

(р2 -1) = (р -1)(р +1) = 2q+1 (2q-1 -1) .

Следовательно, в поле M(i) существуют корни степени

N = 2t, (t = 1,2,., q +1).

Следует отметить, что арифметические действия в поле M(i) совершено аналогичны операциям в комплексном поле С и отличаются лишь необходимостью вычисления остатков по (mod р) . В работе мы рассматриваем специфические системы счисления в поле M(i), позволяющие еще более упростить некоторые операции над элементами этого поля.

3. Редуцированные системы счисления в комплексном поле Мерсенна

В монографии [2] рассмотрена система счисления в комплексном поле С с основанием, равным 2i, названная, по аналогии с «четверичной» системой счисления, «мнимо-четверичной» (негачетве-ричной) ввиду того, что каждое комплексное число может быть представлено в этой системе при помощи цифр 0, 1, 2 и 3, причем тех же цифр, взятых со знаком минус, не требуется.

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

Пусть M = ^рz , и р = 2q -1 является простым

числом Мерсенна. Рассмотрим «модулярный» аналог этой системы счисления для «комплексного поля Мерсенна» (5).

Лемма 1. Любой элемент z e M(i) может быть представлен в форме

z = a-1(2i) 1 + a0(2i )0 +

+aj (2i) + . + av (2i)v, aj = 0,1,2,3,

где v = v(q) < q +1.

Доказательство. Положим

z = x -

где

x - xq (-4)0 + X2 (-4)1 +... + X2t (-4)t (mod р),

y - Уо (-4)0 + У2 (-4)1 + . + y2t (-4)t (mod р), (8) xj,yj e {0,1,2,3}.

Тогда доказательство леммы сводится к доказательствам:

(а) принципиальной возможности представления элементов поля M в форме (8);

(б) определению минимального натурального t = t (р), при котором возможно такое представление.

Для доказательства утверждений (а)-(б) достаточно заметить, что представление произвольного элемента поля M в четверичной системе счисления

возможно и требует не более t = (q + слагаемых.

Далее, так как

X - Xq (-4)0 + X2 (-4)1 + . + X2t (-4)t (mod р) -

-(XQ(4)Q + X4(4)2 +... )-

-4((4)0 + X6(4)2 + ... )(mod р) -

- X(+)-4 X (-)(mod р), X(+), X(-) e M,

то и для элемента X (+)- 4 X( ) e M также требуется не более t = (q + слагаемых.

Находя для элементов x, y e M их представление в «негачетверичной» системе счисления

a-1 = УО, ao = XQ, aj = yb a2 = xx...,

получаем утверждение Леммы 1.

Лемма 2. Мультипликативный порядок элемента 2i в поле M(i) равен Ord (2i) = 4q .

Доказательство. Вычисляя последовательно, получаем:

(2i )2 =-4, (2i )4 = 16. Далее, в силу того, что н.о.д. (16,2q -1) = 1, мультипликативный порядок элемента 16 = 24 равен мультипликативному порядку элемента 2, и, следовательно, для элемента 2i в поле M(i) справедливо соотношение:

Ord (2i) = 4Ord (16) = 4Ord (2) = 4q .

Таким образом, для ю = 2/ возможна реализация ТЧП длины N = 4д без умножений в поле М(/).

Как и в комплексном случае, при сложении и умножении элементов поля М(/) в редуцированной мнимо-четвертичной системе счисления в промежуточных результатах могут возникнуть «цифры», не являющиеся элементами множества {0,1,2,3}. Другими словами, необходимо сформулировать «правила переноса» в старшие разряды для действий, производимых над элементами в форме (6). Сформулируем эти непосредственно проверяемые правила в виде леммы.

Лемма 3. В поле М(/) справедливы равенства:

4 = 1(2/ )4 + 3 • (2/ )2 = 1 • (-4)2 + 3 • (-4)1,

5 = 1(2/ )4 + 3 •(2/)2 +1(2/ )0 =

= 4-4 )2 + 3 ^(-4 )1 +Ь(-4 )0,

6 = 1 • (2/ )4 + 3 .(2/ )2 + 2 .(2/ )0 =

= 1 • (-4 )2 + 3 • (-4) + 2 '(-4 )0,

7 = 1 • (2/ )4 + 3 •(2/)2 + 3 •(2/)0 =

= 1 • (-4)2 + 3 • (-4)1 + 3 • (-4)0 ,

8 = 1 • (-4)2 + 2 • (-4)1,

9 = Ъ(-4 )2 + 2 ^(-4) + ¡•(-4)0.

Несмотря на «четверичность» рассмотренной системы счисления, вычисления в ней легко реализуются на обычной «бинарной» вычислительной технике, если рассмотреть для каждого из возможных значений «цифр» aj = 0,1,2,3 их двухбитовое

представление.

«Бинарную» редуцированную систему счисления для поля М(/) можно также получить, используя основание (/ -1), предложенное У. Пенни и

также рассмотренное для комплексного поля в книге [2].

Лемма 4. Любой элемент г е М(/) может быть представлен в форме

z = a0 (i -1)0 + aj(i -1)1 + ... + av (i - 1)v

aj = 0,1,

где V = v(q) < 2д .

Доказательство. Положим / -1 = а. Так как

а4 = -4 , то для элементов х, у е М : х + /у = г е М(/),

согласно Лемме 2 справедливо представление в не-гачетверичноой системе счисления

х = ¿0 (-4)0 + ¿1(-4)1 + ... + ^ (-4)^, у = С0(-4)° + С1(-4)1 +... + с^ (-4)^, Ь] = 0,1,2,3,

где ц =

+1. В свою очередь, «цифры» bj, о]

представляются в виде сумм степеней элемента / -1 = а:

0 = 0-а0 + 0-а1 +0-а2 + 0-а3,

1 = 1-а0 +0-а1 + 0-а2 + 0-а3,

2 = 0-а0 + 0-а1 +1-а2 +1-а3,

3 = 1-а0 + 0-а1 +1-а2 +1-а3.

Кроме того, справедливо равенство

/ = 1-а0 +1-а1 +0-а2 + 0-а3.

Преобразуя цифры» bj, Cj согласно (10)-(11),

получаем утверждение Леммы 4.

Как и для случая мнимо-четверичной системы счисления, при сложении и умножении элементов поля М(/) в редуцированной системе счисления в промежуточных результатах может возникнуть «цифра», не являющаяся элементом множества {0,1}. В этом случае «правило переноса» в старшие разряды для действий, производимых над элементами поля М(/), определяется соотношением

2-1)0 = ( -1)3 + ( -1)2.

Лемма 5. Мультипликативный порядок элемента (/ -1) = ю в поле М(/) равен О^ (/ -1) = 8д .

Доказательство. Так как (/-1)2 = -2/, то справедливо равенство

Ога (/ -1) = 2Ога (-2/) = 2 - 4д = 8д .

Таким образом, для ю = / -1 возможна реализация теоретико-числовых преобразований длины N = 8д без умножений в поле М(/).

Заключение

Таким образом, рассмотренный в работе метод вычисления дискретной круговой свертки обладает следующим вычислительным преимуществом: • за счет представления данных в редуцированных системах счисления в комплексном поле Мерсенна удается расширить множество тех длин N, для которых алгоритмы вычисления ассоциированного теоретико-числового преобразования свободны от модулярных умножений.

Литература

1. Нуссбаумер П. Быстрое преобразование Фурье и алгоритмы вычисления сверток // М.: Радио и связь, 1985.

2. Кнут Д.Е. Искусство программирования для ЭВМ // М.: Мир, 1977. Т. 2.