34
Алевтина Юрьевна Васильева — асс., Балтийский федеральный университет им. И. Канта, Калининград.
E-mail: [email protected]
About the authors
Prof. Leonid Zinin — I. Kant Baltic Federal University, Kaliningrad. E-mail: [email protected]
Alexandr Sharamet — ass., I. Kant Baltic Federal University, Kaliningrad. E-mail: [email protected]
Alevtina Vasileva — ass., I. Kant Baltic Federal University, Kaliningrad. E-mail: [email protected]
УДК 512.62
С. И. Алешников, М. В. Алешникова, А. А. Горбачёв
ОБ ОДНОМ АЛГОРИТМЕ ВЫЧИСЛЕНИЯ
ОБРАТНЫХ ЭЛЕМЕНТОВ В КОНЕЧНЫХ ПОЛЯХ
В работе предложены два алгоритма вычисления обратных элементов в конечном поле Fqn, где q — степень простого числа. Они получены путем обобщения алгоритма Вонга для поля F2„ с использованием главной идеи быстрого алгоритма вычисления обратного элемента в поле F n.
2"
In work are two algorithms of calculation of inverses in a finite field Fqn
developed, where q is power of the prime number. They are received by generalisation of algorithm of Wong for a field F2„ with use of the main idea for
fast algorithm of calculation of inverses in the field F2„.
Ключевые слова: конечное поле, умножение, инверсия, нормальный базис, циклический сдвиг, алгоритм, быстрый алгоритм.
Key words: finite field, multiplication, inversion, normal basis, cyclic shift, algorithm, fast algorithm.
Введение
В криптосистемах с открытым ключом на эллиптических и гиперэллиптических кривых, в криптосистемах на основе идентификационных данных, использующих спаривания Вейля и Тэйта и их модификации, используются конечные поля большого порядка. В то же время наиболее трудоемкая операция — вычисление обратных элементов. Вопросам ускорения вычислений посвящена огромная литература.
© Алешников С. И., Алешникова М. В., Горбачёв А. А., 2017
Вестник Балтийского федерального университета им. И. Канта.
Сер.: Физико-математические и технические науки. 2017. № 2. С. 34-40.
Так, список литературы в [2] состоит из 3084 источников. Большое число вычислительных алгоритмов в конечных полях представлено в [1]. Информация по структуре конечных полей содержится в [4; 5]. В работе [3] изложены два алгоритма.
1. Алгоритм Вонга для вычисления обратных элементов в поле с
использованием нормального базиса и циклического сдвига. Он требует выполнения п — 2 операций умножения в поле и п — 1 циклических сдвигов.
2. Быстрый алгоритм для вычисления обратных элементов в поле Б2,, (п = 2Г + 1), также использующий нормальный базис и циклический сдвиг. Требует выполнения М — г операций умножения.
Целью этой работы стало обобщение названных алгоритмов, а именно разработка алгоритма вычисления обратного элемента в поле Б п. В работе получена обобщенная формула для нахождения обратного элемента и, опираясь на алгоритм Вонга, представлен обобщенный алгоритм для поля Б п. Представлен также быстрый алгоритм для
поля Б2п.
1. Обобщенный алгоритм Вонга
Напомним, что нормальным базисом поля Б п над Бц называется ба-
2 п-1
зис вида а, ац, а ,..., а , где а е БцЛ, а ф 0. Разложение элемента х е БцЛ по этому базису записываем в виде
п-1
х — Хо а + х^ а ^ + ... х,^а — [хо, х^, ..., х, —1]. Тогда элемент х вычисляется с помощью к циклических сдвигов,
т. е.
х = [хп —к, хп —к +1, ., хп —1, х0, ., хп —к —
Если натуральное п записано в вице
п — 2к1 + 2к2 + ... + 2к,
где к > к2 > ... > кц, то вес Хэмминга Ии!(п) числа п есть количество индексов г , 1 <с г <с э, для которых к, встречаются в предыдущем разложении.
Так как для любого х е Б1п выполняется х — х, то
х-1 — х?—2. (1)
Рассмотрим степень ц п — 2. Имеем
цп — 2 — (цп — ц) + (ц — 2) — ц(цп 1 — 1) + (ц — 2) — — ц(ц — 1)(1 + ц + ц2 + ... + цп —2) + (ц — 2) — — (ц - 1)(ц + ц2 + ц3 + ... + цп —1) + (ц - 2).
35
г
Следовательно,
Х-1 = х0?-1)(<?+<?2+93 +--+<?"~1)+0?-2) _ (х9-1)9+92+93 +...+9"-1 . х9-2
Таким образом, обратный элемент х 1 вычисляется как
Х 1 _ (х9-1 )9 • (х9-1 / • (х9-1 / •... • (х9-1 )9"-1 • (х9-2). Например, при ц _ 2 обратный элемент х 1 в поле вычисляется как Х-1 _ х2 Х22 Х23 Х2П-1 36 Например, при 9 _ 3 обратный элемент х 1 в поле вычисляется как
Х 1 _ (х2)3 • (х2)32 • (х2)3' •... • (х2)3"-1 • х . Например, при 9 _ 5 обратный элемент х 1 в поле вычисляется как
Х-1 _(х4)5 • (х4)52 • (х4)53 •...• (х4)5"-1 • х3 .
Имеем следующий алгоритм вычисления х 1 в поле Б п.
9
Алгоритм 1.
Шаг 1. g := xq 2 (9 - 3 умножений)
Шаг 2. y1 := g • x (1 умножение)
Шаг 3. y := y1
Шаг 4. for k :=1 to n - 2 do
Шаг 5. begin
Шаг 6. z := yq (1 циклический сдвиг)
Шаг 7. y := z • yx (1 умножение)
Шаг 8. end
Щаг 9. y := yq (1 циклический сдвиг)
Шаг 10. y := y • g (1 умножение)
Шаг 11. write y
Таким образом, алгоритм требует q + n - 3 операций умножения в
поле F n и n - 1 циклических сдвигов над Fq, n > 2.
q
Алгоритм Вонга является частным случаем предыдущего алгоритма для q = 2. В этом алгоритме для вычисления x 1 требуется n - 2 операции умножения в поле F2„ и n - 1 циклических сдвигов.
Пример 1. Вычисление обратного x 1 в поле F38 по формуле (1), а
именно x 1 = x3 - 2 = x6559 требует 6558 операций умножения. Использование предыдущего алгоритма требует q + n 3 = 8 операций умножения и n - 1 = 7 циклических сдвигов.
Таким образом, выигрыш в числе операций в полях большого порядка весьма существенный.
2. Быстрый алгоритм вычисления инверсии
Предложение 1. Пусть x - ненулевой элемент поля F2„ (n = 2r + 1).
Тогда существует алгоритм вычисления обратного элемента x_1, требующий числа умножений
M = log2(n - 1) = r
и числа циклических сдвигов
S = n - 1 = 2r. Соответствующий алгоритм имеет такой виц.
Алгоритм 2.
Шаг 1. y := x
Шаг 2. for k := 0 to r - 1 do Шаг 3. begin
Шаг 4. z := y2 (2k циклических сдвигов)
Шаг 5. y := z • y (1 умножение)
Шаг 6. end
Шаг 7. y := y 2 (1 циклический сдвиг)
Шаг 8. write y
Пример 2. Вычисление обратного x 1 в поле F20 по формуле (1), а
именно x 1 = x2 -2 = x510 требует 509 операций умножения. Использование предыдущего алгоритма требует M = log2(n 1) = log28 = 3 операции умножения и n 1 = 8 циклических сдвигов.
Следующее предложение является обобщением предыдущего. Предложение 2. Пусть x - ненулевой элемент поля F2„. Тогда существует алгоритм вычисления обратного элемента x_1, требующий числа умножений
M = [log2(n - 1)] + Hw(n - 1) - 1 2 • [log2(n - 1)],
где [x] - целая часть числа x, и числа циклических сдвигов
S = n - 1.
Соответствующий алгоритм для быстрого вычисления обратного x в поле F2„ имеет следующий вид.
Алгоритм 3.
Шаг 1. y := x
Шаг 2. for k := 0 to k1 - 1 do Шаг 3. begin
2k
Шаг 4. z := y (2 k циклических сдвигов)
Шаг 5. y := z • y (1 умножение)
37
38
Шаг 6. y[k] := y Шаг 7. end Шаг 8. for i := 2 to s do Шаг 9. begin
2ki
Шаг 10. z := y2 (2k' циклических сдвигов)
Шаг 11. if ki = 0 then y := z • x
else y := z • y[ki - 1] (1 умножение)
Шаг 12. end
Шаг 13. y := y 2 (1 циклический сдвиг)
Шаг 14. write y
Пример 3. Вычисление обратного x 1 в поле F212 по формуле (1), а
именно x 1 = x2'2-2 = x4094 требует 4093 операций умножения. Использование предыдущего алгоритма требует
M = [log2(12 - 1)] + Hw(12 - 1) - 1 = 3 + 3 - 1 = 5
операций умножения и
S = 12 1 = 11
циклических сдвигов.
Следующее предложение обобщает быстрый алгоритм вычисления
1
x для произвольного q.
Предложение 3. Пусть x - ненулевой элемент поля F n. Тогда суще-
q
ствует алгоритм вычисления обратного элемента x_1, требующий числа умножений
M = [log2(n - 1)] + Hw(n - 1) + Hw(q - 2) и числа циклических сдвигов
S = n - 1.
Запишем алгоритм для быстрого вычисления обратного xв поле Fqn. Пусть
t
n - 1 = Yj2ks , где k1 > k2 > ... > kt.
s=l j
q - 2 = Y 2Ps , где рг > p2 > . > pt.
s=l
Тогда Hw (n 1) = t.
Алгоритм 4.
Шаг 1. z := x
Шаг 2. for k := 0 to k1 - 1 do Шаг 3. begin
2k
Шаг 4. l := zq (2 k циклических сдвигов)
Шаг 5. z := z • l (1 умножение)
Шаг 6. z[k] := z
Шаг 7. end
Шаг 8. for i := 2 to t do Шаг 9. begin
Шаг 10. Шаг 11.
Шаг 12. end
l := yq
if k = 0 then z := z • x
else z := l • z[k; - 1]
Шаг 14. y := z • x Шаг 15. g := y
2P1
Шаг 16. y := y
Шаг 17. for k := 2 to j do
Шаг 18. begin
Шаг 19. -----2Pk
Шаг 20. Шаг 21. end Шаг 22. x* := y • z Шаг 23. write x*
(2ki циклических сдвигов) (1 умножение)
(1 циклический сдвиг) (1 умножение)
r := g
y := y • r
(1 умножение) (1 умножение)
Пример 4. Вычисление обратного x 1 в поле F° по формуле (1), а
-1 98-2 43046719
именно x = x 2 = x
требует 43 046 718 операций умножения. Использование предыдущего алгоритма требует
M = [log 2 (8 - 1)] + Hw (8 - 1) + Hw (9 - 2) = 2 + 3 + 3 = 8
операций умножения и
S = 8 - 1 = 7
циклических сдвигов.
Заметим, что в силу определений выполняется неравенство
Hw(n - 1) ^ [log2(n - 1)] + 1.
Тогда число умножений в алгоритме 4 оценивается так:
M4 = [log 2 (n - 1)] + Hw (n - 1) + Hw (q - 2) < ^ [log 2 (n - 1)] + [log 2 (n - 1)] + Hw (q - 2) + 1 ^ < 2 • [log 2 (n - 1)] + q - 2 + 1 ^ n - 2 + q - 1 = n + q - 3 = Ma,
начиная с n = 6. Поэтому алгоритм 4 более быстрый, чем алгоритм 1.
Список литературы
1. Handbook of elliptic and hyperelliptic curve cryptography / Scientific editors, Henry Cohen & Gerhard Frey. Chapman & Hall/CRC, 2006.
2. Handbook of finite Fields / Scientific editors, Gary L. Mullen, Daniel Panario. CRC Press, Taylor & Francis Group, 2013.
3. Itoh T., Tsujii S. A fast algorithm for computing multiplicative inverses in GF(2m) using normal bases, Inform. and Comput. 1988. Vol. 78. P. 171 — 177.
39
k
Шаг 13. z := z q
40
4. Jungnickel D. Finite fields: Structure and Arithmetics. Mannheim ; Leipzig ; Wien ; Zürich, 1993.
5. Lidl R., Niederreiter H. Finite fields (Second edition). Cambridge University Press, 1997.
Об авторах
Сергей Иванович Алешников — канд. техн. наук, доц., Балтийский федеральный университет им. И. Канта, Калининград.
E-mail: [email protected]
Марина Валерьевна Алешникова — ст. преп., Балтийский федеральный университет им. И. Канта, Калининград.
E-mail: [email protected]
Андрей Александрович Горбачёв — канд. техн. наук, доц., Калининградский государственный технический университет.
E-mail: [email protected]
About the authors
Dr Sergey Aleshnikov, ass. prof., I. Kant Baltic Federal University, Kaliningrad.
E-mail: [email protected]
Marina Aleshnikova, head teacher, I. Kant Baltic Federal University, Kaliningrad.
E-mail: [email protected]
Dr Andrey Gorbachev, ass. prof., Kaliningrad State Technical University.
E-mail: [email protected]
УДК 511
С. И. Алешников, М. В. Алешникова, А. А. Горбачёв
ЭЛЕМЕНТАРНОЕ РЕШЕНИЕ ОДНОГО КУБИЧЕСКОГО ДИОФАНТОВА УРАВНЕНИЯ
Представлен элементарный подход к решению кубического диофан-това уравнения y2 = x3 - 22s, зависящего от одного натурального параметра s. Получено полное решение для всех значений s.
An elementary approach to solving of the cubic Diophantine equations y2 = x3 - 2 2s, depending on one natural parameter s is presented. The full solving for all values s is received.
Ключевые слова: диофантово уравнение, квадратичное поле, число классов, уравнение Пелля, делимость, целые гауссовы числа, фундаментальная единица.
Key words: Diophantine equation, quadratic field, class number, Pell equation, divisibility, Gaussian integers, fundamental unit.
© Алешников С. И., Алешникова М. В., Горбачёв А. А., 2017
Вестник Балтийского федерального университета им. И. Канта.
Сер.: Физико-математические и технические науки. 2017. № 2. С. 40-47.