АЛГОРИТМ БЕЗОШИБОЧНОГО ВЫЧИСЛЕНИЯ СВЕРТКИ В РАСШИРЕНИЯХ КОНЕЧНЫХ ПОЛЕЙ
А.Н. Калугин
Самарский государственный аэрокосмический университет Аннотация
В работе рассматривается алгоритм безошибочного вычисления дискретной круговой свертки с помощью теоретико-числовых преобразований в системе остаточных классов при альтернативной факторизации составного модуля в расширении кольца классов вычетов. Дополнительный вычислительный выигрыш обеспечивается за счет представления входных данных и параметров преобразования в канонических системах счисления
Введение
В связи с ростом объемов глобальных коммуникаций проблемы хранения и эффективной передачи информации становятся все более актуальными. В настоящее время большое значение приобретает цифровая обработка информации, в частности фильтрация, механизм действия которой основан на вычислении свертки входного сигнала и импульсной характеристики фильтра
N -1
у(к) = (х * К)(к) = Х х(п)к(к - п),
п=0
к = 0,..., N -1 . (1)
Также в ряде криптографических задач в качестве одного из этапов алгоритма возникает необходимость умножения двух чисел с величинами, превышающими границы, в которых возможна аппаратная реализация операций на базе существующей вычислительной техники. Данные числа могут быть рассмотрены как значения соответствующих многочленов в точке равной основанию системы счисления. Значение свертки у(]) в этом случае равно коэффициенту при ] -ой степени произведения многочленов, заданных векторами х(п), к(т) коэффициентов при соответствующих степенях.
Стоит отметить, что вычисление свертки «прямым» способом требует чрезмерных вычислительных затрат. Существующие методики, основанные на дискретном преобразовании Фурье (ДПФ),
N -1
X (т) = £ х(п) /т (п) (2)
п=0
/т (т) = С08(-2Лтп) +1 ^(^^п) (3)
позволяют для определенных значений длины свертки N уменьшить сложность вычислений благодаря существованию эффективных (быстрых) алгоритмов вычисления ДПФ.
Относительным недостатком применения ДПФ является то, что в ряде реальных задач х(п), к(т) и, следственно, у( ]) - суть числа с фиксированной точкой или, после понятного масштабирования, целые числа. В то же время значения базисных функ-
ций (3) ДПФ являются иррациональными числами и при вычислениях могут быть представлены лишь с ограниченной точностью, в связи с конечностью разрядной сетки вычислительной машины.
Существует круг задач (задачи криптографии [1], [2]), в которых потеря точности недопустима, что обуславливает необходимость использования вместо ДПФ его модулярного аналога - теоретикочислового преобразования (ТЧП).
N -1
X(m) = ^ x(n)romn (mod р), raN = 1(mod p). (4)
n=0
при
p > max{x(n)}max{h(n)}N x(n), h(n) > 0.
0<n<N 0<n<N
К сожалению, явные «точностные» преимущества ТЧП вступают в конфликт с фактом «неэлемен-тарности» реализации арифметических операций в
конечном поле
Паллиативным решением является использование таких простых р, для которых операции сложения и умножения в соответствующем модулярном кольце реализовывались бы наиболее дружественным образом по отношению к «стандартным» процессорам. Выбор р помимо прочего ограничивается условиями существования в конечном поле корней только степени N с условием делимости:
N | (р-1).
К сожалению, простые числа р с «дружественными» для машинной реализации свойствами модулярных операций (простые числа Мерсенна, Ферма, Голомба и т.п.) встречаются в натуральном ряду достаточно редко. Прямое использование ТЧП по модулю составных чисел наталкивается на серьезные трудности, связанные с возможной неортого-нальностью базисных функций ТЧП, обусловленной наличием в соответствующих модулярных кольцах делителей нуля.
При распараллеливании вычислений в системе остаточных классов характерные преимущества «битовой» реализации арифметических операций в полях по модулям чисел Мерсенна и Ферма не наследуются для вычислений в полях по модулям целых делителей составных чисел Мерсенна или Ферма
т = 2я ± 1 = р р2 ...ра
В самом деле, например, для пятого числа Ферма справедливо разложение на простые множители
/5 =232+1=641*6 700 417.
Эти сомножители уже не являются числами Ферма. Все вышесказанное относится в значительной степени и к составным числам Мерсенна.
В работах [3], [4] показано, что для чисел Ферма ^ = 2в +1, В = 2‘, в том числе и составных, при наложении определенных ограничений, возможно построение структурно-простых алгоритмов вычисления свертки длины N = 2В с использованием
ТЧП и реализаций операций в ^ в виде циклических сдвигов. Аналогичные алгоритмы, позволяющие вычислять свертку длины q , описаны и для
чисел (составных) Мерсенна р=2М.
В цитированных работах были разработаны алгоритмы для вычисления свертки с применением составных чисел Мерсенна и Ферма, базирующиеся на альтернативной факторизация элементов алгебраических полей О ((2) и соответствен-
но. В основе методов работ [3], [4] лежала следующая схема вычислений.
1. Кольцо классов вычетов по, вообще го-
воря, составному модулю т вкладывается в некоторое кольцо W, которое в ряде случаев является алгебраическим расширением кольца клас-
сов вычетов
'mz
2. Кольцо W выбирается так, чтобы разложение модуля m на простые элементы кольца W со-
k. ii
держало только сомножители вида Pj = а j ± 1 .
3. Вычисление свертки проводится по обычной параллельной схеме с применением семейства некоторых дискретных преобразований (аналогов ТЧП) в системе остаточных классов
(mod р.) с последующей реконструкцией значения свертки (mod m) по китайской теореме об остатках.
4. Базисные функции h]m (n) семейства этих преобразований выбираются в форме hJm (n) = а; если входные данные преобразований (mod р.) представлены в позиционной системе счисления «с основанием а. », то вычисление ТЧП, как и, например, в мерсенновском случае, не требует умножений.
Эффективность реализации предложенной схемы вычислений связана, естественно, с возможностью эффективной реализации вычислений при
представлении данных в «нетрадиционных» системах счисления.
Отметим также, что предлагаемые параллельные алгоритмы, использующие «альтернативное» разложение целых чисел в кольце W, остаются справедливыми и для простых чисел Мерсенна и/или Ферма, для которых в кольце целых чисел нет нетривиального разложения на множители.
Однако выбор чисел Мерсенна и Ферма также достаточно ограничен.
В данной работе предлагается расширить класс чисел, порождающих модулярные кольца с сохранением преимуществ «мерсенноподобной» или «фер-маподобной» арифметики, в которых операция умножения реализуется посредством циклических сдвигов.
Канонические системы счисления
Предлагаемая методика основывается на понятии канонических систем счисления (canonical number systems), введенных в работе [5] и исследовавшихся далее, в частности, в работах [6], [7].
Пусть Q поле рациональных чисел. Обозначим Q(|) квадратичное расширение поля Q , порожденное |, £, Ф ka2, (k е Z,a е N ):
Q(§) = {y I Y = a + 6лД, a, b е q} .
Пусть, как обычно, норма N(y) элемента
Y е Q(§) определяется соотношением
N(y) = a2 -!|b2;. (5)
кольцом целых чисел Q[^] поля Q(Q называется множество,
QE] = {y|N(y) е z} .
Целыми алгебраическими числами мнимого поля Q (iy[N) являются числа:
a + bi4N, a, b е Z при N = -2, -3(mod4); r+ 2 b(iJN -1), a,b е Z при N = -1(mod4).
Если для любого y е Q[|] задать множество N0, No = No(y) = {0,1,...,|N(y)|-1}, то корректно следующее определение.
Определение 1. Канонической системой счисления называется пара {y, No}, такая, что для любого элемента а е QE] существует и, причем, единственное конечное представление в виде
а = a0 + a1 y + ... + any” , (ai е N0, i = 0,...,n) (6)
Для различных £ вопросы существования канонических систем счисления и их свойств рассмотрены в работах [5], [6], [7]. В данной работе ограничимся рассмотрением случая N0={0,1}, то есть слу-
чая, когда каноническая система счисления является «бинарной», в частности, система счисления с основанием у = ±/'л/2 в поле О[/'Т2] , существование которой следует из следующей леммы, доказанной в работе [5]
Лемма 1. Для любого натурального числа М, не представимого в виде М = ка2, где к, а - натуральные, и удовлетворяющего равенству -М = 1шос14, пара {і4М, N0(і4м)} будет являться канонической системой счисления в кольце
О[і4ш] .
Данная система счисления описана, например, в монографии [8], однако только для альтернативного бинарного представления всех комплексных чисел, что порождала трудности связанные с представлением мнимой единицы в виде бесконечного непериодического разложения. Если ограничиваться лишь кольцом то подобные трудности, как
показано ниже, вполне преодолимы.
Алгоритм определения представления числа (цифр числа) в данных системах счисления может быть несложным образом получен путем модификации рекурсивного процесса, изложенного в [7]. А именно.
Алгоритм 1. (определения цифр для
{±іл/2, N0(±іТ2)} ):
Для любого 2 = 21 + 22іл/2 Є О[/'л/2] , (21,22 є Z), определим як(2) є Z согласно формул:
к > 0,
М2) = +222, ^ 2) = 2!.
Тогда
2=Е ак(2 )Ьк,
к >0
где ак (2) = як (2)(шоё2) .
Доказательство. Проведем доказательство методом математической индукции по номеру цифры в искомом представлении числа 2 . Проведем
доказательство для случая 5 = /ч/2, случай 5 = -і%/2 доказывается аналогично.
Пусть
2 = 21 + іЧ/222 = -і\/2[—2^] + 21 =
5-1( 2 )
+ ^( 2).
Так как наименьший многочлен, корнем которого является £,, т(х) = х2 + 2, то норма (5)
N(1) = 2 = /ч/2(-/ч/2) = |(-/'\/2). Следовательно,
£,1 N(1). И, таким образом, получаем
ао(2) = 21 = 5о( 2)(modN(|))
Далее, предполагаем, что выполняется равен-
ство
2 -X а і (2) N(5)1
1 = 0___________________ = £
5 к+1 ^
Як ( 2 ) .N(5).
+ Як+1( 2).
(7)
Из последнего соотношения следует, что ак+1 = Як+1 (то^(5)).
Учитывая, что минимальный многочлен определяется как т( х) = х2 + 2, мы получим, что
Як+1( 2) = ак+1( 2) +
1( 2)
N(5)
N(5) =
= ак+1( 2) + £
1( 2 )
N(5)
Следовательно, правая часть равенства (7), примет вид:
аи+1( 2) + 5
Ґ Як(2) -5 Як+1( 2) Л
V 1 N(5) ] 1 N(5) ] У
= ак+1(2) + 5 Як + 2 -
*'к+1( 2)
. N(5) ,
то есть равенство (7) выполняется и для случая к +1, и, следовательно, для всех к > 0 ◄
Числа Мерсенна и Ферма в кольце О[|]
Пусть 5 = іл/2 , 5 = -іл/2 .
Определение 2. В кольце О[|] числами Мер-сенна будем называть числа
М2 = (5п -1)(Г -1) = 2й -(Iй +|”) +1.
Определение 3. В кольце О[5] числами Ферма будем называть числа
- —п —п
¥] = (5п +1)(5 +1) = 2п + (5п +5 ) +1.
Определение 4. При п Ф 0(mod2) числа [ М2 ] будем называть нормальными, если выполняются условия:
• при всех 1 < я < п числа ¥І [ М2 ] и ^2 [ М2, соответственно] взаимно просты;
• элемент п обратим в кольце ^ 2 [эле-
/ Ьп Z
мент п в кольце соответственно].
/М^
Нормальные числа в таблицах 1,2 выделены.
Несложно показать, что
^2к-1 = М2к-„ к Є Z .
Таблица 1. Факторизация чисел Ы2п (1 < п < 40)
Таблица 2. Факторизация чисел (1 < п < 40)
N Факторизация
1 3
2 3x3
3 3x3
4 3x3
5 3x11
6 3х3х3х3
7 3х43
8 3x3x5x5
9 3х3х3х19
10 3х3х11х11
11 3х683
12 3x3x3x3x7x7
13 3x2731
14 3x3x43x43
15 3x3x3641
16 3x3x5x5x17x17
17 3x43691
18 3x3x3x3x3x3x19x19
19 3x174763
20 3x3x11x11x31x31
21 3x3x43x5419
22 3x3x466489
23 3x2796203
24 3x3x3x3x7x7x5x5x13x13
25 3x11x251x4051
26 3x3x2731x2731
27 3x3x19x87211
28 9x9x5461x5461
29 3x59x3033169
30 9x9x3641x3641
31 3x715827883
32 9x289x1285x1285
33 3x3x9544371777
34 3x3x43691x43691
35 3x11x43x281x86171
36 9x9x9x19x19x7x7x73x73
37 3x25781083x1777
38 3x3x174763x174763
39 3x3x22366891x2731
40 3x3x5x5x5x5x11x11x31x31x41x41
N Факторизация
1 3
2 1
3 3x3
4 5x5
5 3x11
6 7x7
7 3х43
8 17x17
9 3х3х3х19
10 31x31
11 3х683
12 3x3x3x3x7x7
13 3x2731
14 127x127
15 3x11x331
16 257x257
17 3x43691
18 7x7x73x73
19 3x174763
20 5x5x5x5x41x41
21 3x3x43x5419
22 23x23x89x89
23 3x2796203
24 17x17x241x241
25 3x11x251x4051
26 8191x8191
27 3x3x3x3x19x87211
28 5x5x29x29x113x113
29 3x59x3033169
30 7x7x31x31x151x151
31 3x715827883
32 65537x65537
33 3x3x9544371777
34 131071x131071
35 3x11x43x281x86171
36 5x5x13x13x37x37x109x109
37 3x25781083x1777
38 524587x524587
39 3x3x22366891x2731
40 17x17x61681x61681
Лемма 2. При п ф 0(mod2), числа йх = (%" -1) и й2 = ( -1) взаимно просты.
Доказательство. Допустим обратное: пусть существуют а, Ь1, Ь е 0[У], не являющиеся единицами в
О (у) , такие что йх = аЬ1, й2 = аЬ2.
Так как алгебраическая норма N у), у е О (|) является мультипликативной функцией:
N(^2) = ^^) N(2), то из очевидных равенств
йх + й?2 = -2 , а(Ь1 + Ь2) = -2 , следует,
4 = N(-2) = N (а(Ь1 + Ь2)) = N (а) (Ь1 + Ь2).
Таким образом, ^а) является четным числом, что противоречит равенству
N(4) = ^а^) = 1 + 2 • 2п-1 = ^а) N(Ь1). ◄
В силу доказанной леммы, возможно определить изоморфизм между фактор-кольцом V/ 2„ и
/ Мп ^
прямой суммой колец п Л. ® V-п . Далее
/(| -1) /(^ -1)
будем рассматривать лишь случай п = 2/ +1 и Ы2Ъ+1.
Приведем правила реализации операций, например, в кольце К = 1) .
1. Любой элемент кольца К представляется в форме
№ = 521 а2І +^2< 'а2<-1 +^2< 2а2І-2 + • • • +5'а1 +5<>а0 ; а] є {0,1}. (8)
2. Это представление однозначно для всех
0 Ф № є К ; нулевой элемент представим двумя
способами в форме (8):
0 .((2 )0 +... + 0 .((2 )2' = 1-(іТ2 )0 +... +
+1. (іл/2 ) = ((2 )2'+1 -1 = 0 (п^(!п -1))
^2'+1
так как у]2 = 1(mod Р), то в случае возник-
новения «бита переполнения» і-^2'+1 при вычислениях эта единица переносится в «самый младший разряд» и суммируется с полученным числом.
3. Сложение элементов производится с «двойным переносом через разряд».
Данное правило основывается на соотношении:
2 - (±і>/2)1 = 1 - (±і 72)1+4 +1 - (±і>/2У+2.
4. Умножение элемента № є К на элемент
5 = іл/2 є К равносильно циклическому сдвигу
«цифр» а1 в представлении (8):
72№ = а2'+а +(а2'а2-1 +а2'-іаі-і + — + а2а02 +а1а0)
2' 2 2'-1 1 9 9 11 0 1
= а а(-1 + а а(-1 + — + а а0 +а а0 +а а, .
5. Умножение элементов кольца К «столбиком» сводится к циклическим перестановкам цифр и сложениям;
6. Мультипликативный порядок элемента
5 = і\/2 є К равен 2' +1: ОМ(і72) = 2' +1 (следовательно, при ю = 72 є Б1 возможна реализа-
ция ТЧП (4) длины N = 21+1 без умножений).
Аналогичные правила вычислений могут быть
получены для кольца К = Щ—п \, простой заме-
Iп -1)
ной | = /72 в формулах для кольца К на
% = -/72.
Пусть, далее, (Д) - главный идеал, порожденный йх, (Б2) - главный идеал, порожденный й2.
Лемма 3. Для любого X = существуют эффективно определяемые элементы р, Р2 е О[%] и константы а, Ь е такие, что справедливо равен-
ство X = аРх В2 + ЬР2 Д, причем X = Р1 (mod(Д)), X = Р2 (mod(D2));
Доказательство. Данная лемма является непосредственным следствием китайской теоремы об остатках. В качестве коэффициентов а и Ь можно взять
а = Ь = 22'+1. ◄
Проекции P1 и P2 могут быть легко найдены с использованием Алгоритма 1. Действительно, необходимо лишь, найдя разложения числа X в системах счисления с основанием | = iV2 и I2 = -i72 , соответственно для P1 и P2 , вычислить наименьший неотрицательный вычет. Для этого полученные биты переполнения - «цифры», начиная с a2t+l, нужно добавить к младшим битам, используя свойство
1. |2t+1 = l( mod (|2t+1 -1)) и правила сложения в соответствующем кольце. ◄
Вычисление свертки
Поскольку арифметические операции в кольцах K и K представляют собой, по сути, операции циклического сдвига и «покоординатного» сложения с двойными переносами, т. е. операции над битовыми векторами, введем определение.
Определение 5. Для любого W є Sj [ W є K ],
W = |2ta2t +|2t 'a2t-1 +|2t 2a2t-2 + — +|1al +|0a0 [ W = |2ta2t +|2t 'a2t-1 +|2t 2a2t-2 + •” + |1al +|0a0 ] вектор (w) = (a2t, a2t-1, a2t-2,..., a1, a0) будем называть кодом W . Положим W (j)^ = a}.
В работе [3] введены понятия сдвига Мерсенна и шифт-преобразования Мерсенна.
Определение б. Оператором левого сдвига Мерсенна назовем оператор M такой, что
M (W) = (a2t-1, a2t- 2 ,' ' ', aL a0, a2t ) .
Аналогично определяется оператор правого сдвига Мерсенна
M(W) = (ao , a2t, a2t-1, a2t-2 ,' ' ', al ) .
Для колец К , К данный оператор аналогичен m(w) = (|w) , m{w) = (|W) , соответственно.
Определение 7. Пусть x(n) есть T -
периодическая последовательность элементов кольца K или К ; T = 2t +1. Определим шифт-преобразование Мерсенна последовательности x(n) равенствами:
{Xk(m)) = XMmn{x(n)) (m = 0,1,..., T -1).
n=0
В работе [3] доказывается, справедливость равенства
(T • x(n)) = ]Т M-mn(X(m)).
m=0
Заметим, что алгоритм 1 определения цифр в системах счисления по основанию | = i72 и
I2 = -72 для числа z є Q[|] даст одинаковые векторы «цифр», то есть, коды (P^ и ^P2^ для обеих систем счисления:
<Р)=( Р)-
Это позволяет улучшить результат работы [3], сократив количество необходимых вычислений.
Теорема 1. Если для преобразуемых последовательностей х(п) и к(п) с помощью метода леммы
3 найдены коды проекций (Р(п)х} (Р2(п)и
{Р1 (п)н} (Р2(п)н} в кольца К и К , соответственно, то для вычисления свертки (1) длины Т = 2' +1 достаточно выполнения:
• трех шифт-ТЧП Мерсенна (двух прямых и одного обратного типа (2'+1 ;0) );
• вычисления произведений компонент спектров шифт-ТЧП в псевдомерсенновской арифметике (в одном из колец);
• реконструкции значений свертки по китайской теореме об остатках.
Сокращение вычислений в данном случае происходит из-за того, что из свойства (Р) = (Р2) для
любой из последовательностей, следует что спектр этой последовательности, коды элементов спектра,
будут совпадать. Обозначим через р спектр проекции р , а через P1 спектр проекции р исходной последовательности.
(р (от)) = X P, («)!"" (mod А) = X(р («)) =
n=0 n=0
= XMmn{p(n)) = XP(nKmn (mod A) = (P(m)) .
n=0 n=0
Таким образом, нет необходимости в вычислении компонент спектра обеих проекций. Для вычисления свертки достаточно вычисления спектра одной из проекций для каждой из преобразуемых последовательностей: необходимо два прямых шифт-ТЧП Мерсенна для x(n) и h(n). Аналогично и для обратного преобразования. Вследствие равенства кодов спектров и совпадения реализации арифметических операций в кольцах К и К , умножение компонент спектра также проводится лишь в одном из колец. Перед реконструкцией результата, достаточно лишь иначе интерпретировать код проекции полученной последовательности в одном из колец, чтобы получить проекцию во второе кольцо (рис. 1).
і ШТЧП |—----------1
■---------
PlY(m)
ОШП
Pi (n)y
Произведение
компонент
спектра
у(п)
Р2 (п),
Рис.1. Схема вычисления свертки
Реализации параллельного алгоритма вычисления свертки мешает тот факт, что все числа ми2(1 < п < 40 ) из таблицы 1 имеют общим множитель, равный 3. Взаимная не простота этих чисел может привести к нарушению ортогональности базисных функций теоретико-числового преобразования (4)
Гт (/) = (+/л/2Г
дискретных преобразований (4) вычисляемых mod(%и -1), mod(fи -1).
Однако, указанную трудность можно преодолеть. Действительно, пусть К ф 0(mod3), а неотрицательные целочисленные последовательности х(п), И(п) и число удовлетворяют неравенству
MN = M > N max {x(n)} max {h(n)}.
Тогда значения компонент свертки (1) совпадают с их наименьшими неотрицательными вычетами (mod M). Пусть y3(k)- результат вычисления
(mod3) свертки (9), гипотетически полученный независимым методом. Результат Y(k) - вычисления
свертки с помощью шифт-преобразований с распараллеливанием в кольцах классов вычетов по
—n
mod(|” -1), mod(| -1), является «ошибочным» -числа M” не являются нормальными (нарушается второе условие). Но, по крайней мере, для нечетных значений n (в пределах Таблицы 1) для нормальных
чисел M” числа 3M” не делятся на 3. Поэтому, по
китайской теореме об остатках для a,b є Z с условиями 3a = 1(modM), 3a = l(modM), выполняется соотношение
Y (k) = 3ay(k) + Mby3 (k) (mod M2N),
откуда следует, что независимо от y3 (k), справедливы сравнения
Z (k) = 3ay(k) + Mby3 (k) (mod M2N)
Y (k) = y(k) (mod M).
То есть, истинное значение y(k) свертки получается редуцированием Y(k) по (mod M).
Заключение Предлагаемый алгоритм, основан на вычислении свертки без использования умножений. Поэтому алгоритм является эффективным и при прямой реализации вычисления свертки, в частности, в случае, когда длина свертки является простым числом.
Предложенная методика позволяет расширить класс используемых чисел для вычисления свертки с применением ТЧП. Реализация алгоритма и возможная его оптимизация зависят от длины вычисляемой свертки, от величины 2t +1. В работе, были рассмотрены бинарные системы счисления в квадратичном поле. Однако, как показано в работе [9], бинарные системы также возможны в полях алгебраических чисел более высоких степеней. Общая методология синтеза соответствующих параллельных алгоритмов машинной арифметики в таких системах счисления анонсирована в [11].
Благодарности Работа выполнена при поддержке Российского фонда фундаментальных исследований (Проект 0301-00736) и российско-американской программы «Фундаментальные исследования и высшее образование» («BRHE»).
Литература
1. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си // М.: Издательство ТРИУМФ, 2002. 816 с.
2. Handbook of Applied Cryptography // by A. Menezes, P. Van Oorschot, and S. Vanstone. CRC Press, 1996.
3. Chernov V.M., Pershina M.V. «Error-free» calculation of the convolution using generalized Mersenne and Fermat transforms over algebraic fields // In: G. Sommer, K. Daniilidis, J. Pauli (Eds) “Computer Analysis o/ Image and Pattern”. (CAIP'97). Springer, LNCS 1296. Р. 621-62В
4. Чернов В.М. Синтез параллельных алгоритмов преобразований Фурье-Галуа в прямых суммах конечных колец // Известия Самарского научного центра Российской Академии Наук, 2000. Вып.1. №2. С. 12В-134.
5. Katai I., Kovacs B. Canonical number systems in imaginary quadratic fields // Acta Mathematica Academiae Scientarium Hungaricae. T. 37 (1-3), 19В1. Р. 159-164.
6. Katai I., Szabo J. Canonical number systems for complex integers // Acta Sci.Math.(Szeged), 37. 1975. Р. 255-260.
7. Thuswardner J. Elementary properties of canonical number systems in quadratic fields // G.E. Bergum et al. (eds.), Applications of Fibonacci Numbers, Volume 7. Р. 405-415.
В. Кнут Д. Искусство программирования // Полу-численные алгоритмы, 3-е изд. М.: Изд. Дом «Вильямс», 2001. Т.2. В32 с.
9. Kovacs A. Generalized binary number systems // Annales Univ. Sci. Budapest, Sect. Comp. 20. 2001. Р. 195-206.
10. Чернов В.М. Неоднозначность разложения на множители, канонические системы счисления в квадратичных кольцах и параллельные алгоритмы вычисления свертки // Доклады 11-й конференции Математические методы распознавания образов (ММРО-11), М..: 2003. С. 212-215