Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретико-числовые методы в криптографии и криптопротоколах. Учебное пособие.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Здесь и далее, если не оговорено противное, символ p означает не-
2
3 mod 7x =
2
2 mod 7x =
3x = ±
2
2 mod 11x =
2
3 mod 11x =
5x = ±
0a ≠
0 mod ap=
p
a
p
a ∈
a
p
 

1, ;
0, 0;
1 .
a квадратичный вычет
a
a
p
a квадратичный невычет
−

= =
 
−−
1
a
p

+
 
p
∗
четное простое число.
Примеры. Уравнение
диться прямым перебором, уравнение
. Уравнение
имеет два решения:
Очевидно, что если при
то будет и еще одно решение, отличающееся знаком. При
решений не имеет, как можно убе-
имеет два решения:
решений не имеет, уравнение
.
решение уравнения (2.24) существует,
су-
ществует одно нулевое решение.
Как показывают рассмотренные примеры, для одного значения
разных значениях параметра
решения могут существовать, а могут и не
при
существовать. Поэтому первый вопрос, который возникает: имеет ли уравнение (2.24) решение?
Для ответа на этот вопрос вводят понятие квадратичного вычета. Определение 14. Элемент
называется квадратичным выче-
том, если уравнение (2.24) имеет решение, и невычетом в противном случае.
Определение 15. Символ Лежандра
определяется равенством
Используя данное определение, вычислим количество решений квад-
ратного уравнения (2.24) как
.
Утверждение 9. В мультипликативной группе
четов и половина невычетов.
ровно половина вы-
61
Доказательство. Согласно утверждению 8 группа
p
∗
θ
( )
1pϕ−
1p −
2 j
a = θ
( )
0 12jp≤< −
k
x = θ
22
mod
lj
p
θ=θ
( )
2 2 mod 1lk p= −
(
)
0 12
lp≤< −
lj=
2
j
a = θ
( )
12p −
21
ja+
= θ
( )
0 12jp≤< −
k
x = θ
2 21
mod
lj
p
+
θ=θ
( )
2 2 mod 1lk p= −
(
)
0 12lp
≤< −
lj<
( )
02 1 1jl p< − +< −
( )
21
=1 mod
jl
p
−+
θ
lj>
( )
02 1 1lj p< − −< −
( )
21
=1 mod
ljp−−
θ
21
j
a
+
= θ
( )
12p −
( )
12
mod
p
a
ap
p
−

=
 
циклична,
в ней есть примитивный элемент
элементов), имеющий порядок
(на самом деле
примитивных
, и элемент a, являющийся степенью
элемента θ. В зависимости от четности этой степени может возникнуть две ситуации.
Пусть
,
, т. е. степень четная. Любой элемент x
из равенства (2.24) также является степенью примитивного элемента:
. Тогда
, где
,
(результат приведения четного числа по модулю четного числа есть чет-
ное число). Очевидно, что
– решение, т. е. когда
– четная сте­пень примитивного элемента, то a – квадратичный вычет и таких элемен­тов
.
Пусть теперь
Тогда
,
, т. е. степень нечетная,
, где по-прежнему
.
Пусть
тиворечит примитивности элемента θ. Аналогично при
, тогда
и
и
, что про-
имеем
, что также противоречит прими-
тивности элемента θ. Полученное противоречие означает, что предполо­жение о существовании элемента x, удовлетворяющего равенству (2.24),
не верно. Таким образом, в случае, когда
– нечетная степень
примитивного элемента, решений квадратного уравнения нет, элемент a является квадратичным невычетом и таких элементов
.
.
,
Утверждение 10 (Критерий Эйлера). Справедливо равенство
. (2.25)
62
Доказательство. Пусть
0a =
2 j
a = θ
p
∗
( ) ( )
( )
12 1
1
mod mod mod 1 1 1
j
p jp
pj
ap p p
−−
−
=θ=θ===
1
a
p

= −
 
21j
a
+
= θ
(
)
( )
( )
( ) ( )
( )
12 2 1 12 1 12 12 mod
mod mod mod
p j p jp p p p
ap p p b
− +− − − −
=θ =θθ =θ ≡
(
)
( )
2
1 mod 1 1 0 mod b pb b p= ⇔ − +=
1b = ±
1b =
1b = −
mod aa p
pp

=
  
1
1
p

=
 
( )
( )
12
1
1
pp−

− = −
 
, тогда левая и правая часть фор-
мулы (2.25) равны нулю, т. е. это равенство выполняется.
Пусть теперь a – квадратичный вычет, т. е. левая часть фор-
мулы (2.25) равна 1. Из доказательства предыдущего утверждения следу-
ет, что в этом случае
, где θ – примитивный элемент группы
Посчитаем правую часть выражения (2.25):
что означает равенство обоих частей формулы (2.25).
Рассмотрим случай, когда a – квадратичный невычет,
:
Для введенного элемента b справедливо равенство
.
,
,
.
.
Так как в поле нет делителей нуля, то
чит условию примитивности элемента θ, поэтому
. Случай
противоре-
, что доказывает
формулу (2.25).
Основываясь на критерии Эйлера, можно доказать следующее утвер-
ждение.
Утверждение 11 (Свойства символов Лежандра).
1.
2.
,
;
;
63
3.
ab a b
p pp
 
=
   
2
ab a
pp


=

 

(
)
11
22
1
pq
pq
qp
−− ⋅
 
= −
   
( )
2
1
8
2
1
pp−

= −
 
( )
2
18p −
21pk= +
( )( ) ( )
2
11 1
1
88 2
p p kk
p
−+ +
− = =
( ) ( )
52238538 2 26119269 26119269
св-во 3 св-во 6
86294753 86294753 86294753 86294753
  
= = = = =
     
( )
( )
( )
9 2902141 2902141
св-во 3 св-во 4 св-во 3
86294753 86294753 86294753
 
= = = = = =
   
(
) ( )
11 263831 86294753 263831
св-во 5 св-во 1
86294753 86294753 11 86294753
 
= = = = =
   
( )
( )
6 263831 2 3 263831
св-во 3 св-ва 6, 5
11 86294753 11 11 86294753
  
= = = = =
       
;
4.
;
5. Свойство взаимности Гаусса:
четное простое число;
6.
.
Прокомментируем последнее свойство:
ло. Действительно,
,
, где q – не-
– всегда целое чис-
,
и из двух соседних чисел одно всегда четное.
Пример 27.
64
( )
(
)
11 263831 1 263831
св-во 1 св-во 2
3 86294753 3 86294753
−
 
= = = = =
     
( )
(
)
263831 193 1367
св-во 3 св-ва 5, 5
86294753 86294753 86294753
 
=−==− ==
   
( )
( )
86294753 86294753 14 144
св-во 1 св-во 3
193 1367 193 1367
 
=− ==−==
     
( )
2
2 7 12 193
св-ва 6, 5, 4
193 193 1367 7

 
=− = =−=

   

( ) ( )
4
св-во 1 св-во 4 1
7

= =−= =−
 
1
1
k
k
np p
α
α
=
a
n
 

1
1
k
k
aa a
np p
α
α



=

  


np=
1
a
n

=
 
2
mod xa n=
.
Как мы видим, самая сложная операция при вычислении символа Ле­жандра, для которой не существует эффективного алгоритма, это разло­жение нечетного числа на сомножители. Чтобы обойти эту проблему, вво­дят понятие символа Якоби.
Определение 16. Пусть
Символ Якоби
определяется выражением
– нечетное составное число.
. (2.26)
Символ Якоби определяется через символы Лежандра, стоящие в пра­вой части равенства (2.26), и является обобщением символа Лежандра, с которым совпадает, когда
– простое число.
Отметим, что если для составного нечетного числа n символ Якоби
равен 1:
, то это совсем не значит, что уравнение
65
имеет решение. Однако, используя китайскую теорему об остатках, можно
1
a
n

= −
 
mod
aa n
nn

=
  
1
1
n

=
 
( )
( )
12
1
1
nn−
−

= −
 
ab a b
n nn

=
   
2
ab a
nn


=

 

( )
11
22
1
nm
mn
nm
−− ⋅
 
= −
   
( )
2
1
8
2
1
n
n
−

= −
 
a
p
 

показать, что если
, то это уравнение решений не имеет. Позже
мы еще вернемся к этому уравнению.
Для символов Якоби справедливы те же свойства, что и для символов
Лежандра.
Утверждение 12 (Свойства символов Якоби).
1.
2.
3.
,
;
;
;
4.
5. Свойство взаимности:
;
, где m – нечетное
число;
6.
Пусть требуется посчитать символ Лежандра
.
. Мы смотрим на
него как на символ Якоби, вычисляем его, пользуясь свойствами символа Якоби. В конце, получив значения символа Якоби, мы тем самым получа­ем значение символа Лежандра.
Символы Якоби вычисляются значительно легче чем символы Ле-
жандра. Общий алгоритм вычисления символа Якоби следующий: выде-
66
ляем из «числителя» максимальное количество двоек и применяем свой-
2826498 8307223
 

( )
(
)
2826498 2 1413249 1413249
св-во 3 св-во 6
8307223 8307223 8307223 8307223
  
= = = = =
     
(
)
( ) ( )
8307223 172271 172271
св-во 5 св-во 1 св-во 2
1413249 1413249 1413249
−
  
= = = = = = =
     
( ) (
)
( )
1413249 35081 172271
св-во 5 св-во 1 св-во 5
172271 172271 35081
   
= = = = = = =
       
( ) ( ) ( )
3134 1567 35081
св-во 1 св-ва 2, 6 св-во 5
35081 35081 1567
−
  
= = = = = = =
     
( ) (
) ( )
607 1567 254
св-во 1 св-во 5 св-во 1
1567 607 607
−
   
= == =−= =− =
       
( ) ( ) ( )
2
127 607 99 3 11
св-ва 2, 6 св-во 5 св-во 1
607 127 127 127

⋅
  
= = = =−= =−=− =

     

( ) ( ) ( )
11 127 6 3
св-во 4 св-во 5 св-во 1
127 11 11 11
     
= =− = = = ==−=
           
( ) ( ) ( )
11 1
св-во 5 св-во 1 св-во 2 1
33
−
  
= = = = = −
     
ства 6 и 4. Потом, когда у нас «числители» и «знаменатели» нечетные, ис­пользуем свойство взаимности 5, а потом свойство 1. На этом итерация заканчивается. Значения «числителя» и «знаменателя» к следующей ите­рации уменьшаются как минимум вдвое. Через логарифмическое число итераций приходим к ответу.
Пример 28. Посчитаем символ Лежандра
:
.
67
Возникает вопрос, зачем нам для вычисления символа Лежандра ис-
( )
3
ON
[ ]
2
logNp=
(
)
2
ON
p
3 mod 4p =
1
a
p

=
 
( )
12
1 mod
p
ap
−
=
( )
12
mod
p
a ap
+
=
34pk= +
22
mod
k
a ap
+
=
( )
14
1
mod mod
k
xa pa p
+
+
=±=±
5 mod 8p =
58
pk= +
mod 4 3p =
5 mod 8p =
пользовать свойства символа Якоби, когда можно воспользоваться крите­рием Эйлера (2.25). эффективный алгоритм возведения в степень мы уже обсуждали в разделе 2.1.3 (формула (2.1)). Однако сложность этого алго-
ритма оценивается как
пользующий свойства символа Якоби, имеет сложность
(
), в то время как алгоритм, ис-
.
Перейдем к обсуждению алгоритма решения квадратного уравне-
ния (2.24) в конечном простом поле
Разберем сначала случай
.
. Любое нечетное число, приве-
денное по модулю 4, в остатке может давать 1 или 3, поэтому 50 % про­стых чисел относится к этому случаю.
Прежде чем решать уравнение (2.24) убедимся, что решение суще-
ствует, т. е.
. Согласно критерию Эйлера (2.25) это означает, что
. (2.27)
Умножив правую и левую часть формулы (2.27) на a, получим
вид
. Для выбранных чисел
. Легко видеть, что
это равенство примет
(2.28)
является решением (2.24) и других решений нет.
Разберем теперь случай
, что эквивалентно
.
По модулю 8 возможны остатки 1, 3, 5, 7. Остатки 3 и 7 относятся к предыдущему случаю, так как для таких чисел
половина из оставшихся простых чисел относится к случаю
. Поэтому
.
68
Так как a – вычет, то имеет место равенство (2.27), которое для рас-
( )
22 1
1 mod
k
ap
+
=
21
mod
k
ca p
+
=
(
)(
)
2
1 mod 1 1 0 mod 1c p c c pc
= ⇔ − + = ⇔=±
1с =
(
)
2
21 22 1
1 1 mod mod mod
kk k
c a pa apa ap
++ +
=⇔= ⇒= ⇔ = ⇒
(
)
38
1
mod mod
k
xa pa p
+
+
⇒=± =±
1
с = −
( )
12
42
1 mod 1 mod
p
k
b pb p
−
+
=− ⇔=−
( ) ( )
21 22 22 42
1 1 1 mod 1 mod
k k kk
c a pa a pa b
+ + ++
=−⇔ ⋅− = ⇔ ⋅− = ⇒ ⋅ =
( ) ( )
38 14
1 21
mod mod mod
pp
kk
a pxab pa b p
+−
++
= ⇒=± ⋅ =± ⋅
1
2
100
1
2
2
3 mod 61x =
7k =
15
3 mod 61 1c = = −
10b =
8 15
3 10 mod 71 8x =±⋅ =±
сматриваемого простого числа принимает вид:
чим
Случай
, тогда
:
.
Случай
:
Пусть b – произвольный невычет, что эквивалентно равенству
.
. Обозна-
.
Тогда
.
Для реализации этого алгоритма нам потребовалось найти произволь­ный квадратичный невычет b. Строго говоря, пока неизвестен детермини­рованный полиномиальный алгоритм нахождения квадратичного невыче­та, представленный алгоритм также нельзя считать полиномиальным. Од­нако, с практической точки зрения, в силу утверждения 9 с вероятностью
мы его найдем случайным выбором (вероятность не найти невычет за
100 попыток равна
).
Пример 29. Решим уравнение:
. Выберем невычет
и выпишем ответ
. Здесь
.
69
,
Алгоритм Тонелли – Шенкса
21
t
pm= +
2t ≥
3 mod 4p
=
1 mod
sz
ab p⋅=
( )
( )
2
12
2
mod
s
z
a b ap
+
⋅=
( )
12
2
mod
s
z
xa b p
+
=±⋅
( )
12
1
mod
p
ra p
=
( )
12sp= −
2
1r
=
0z =
12
mod r rr p= ⋅
1r ≠
( )
: 12zz p=+−
( )
12
2
mod
s
z
xa b p
+
=±⋅
:2
ss=
:2zz=
1
mod
s
ra p=
2
mod
z
rb p=
1
±
( )
12
1 mod
p
bp
−
= −
1t −
113p =
4t =
7m =, 2a =
3b =
56
1
2 mod 113 1r = =
56s =
2
1
r
=
0z =
11 1r =⋅=
0z =
56s =
28s =
0z =
28
1
2 mod 113 1r = =
2
1r =
Перейдем к общему случаю, где b – по-прежнему обозначает квадра-
тичный невычет. Простое число p имеет структуру нечетное,
(иначе
– уже рассмотренный случай). Если мы
сумеем найти такое нечетное число s и четное z, что
, т. е.
. Представим алго-
ритм нахождения таких s, z и решения x.
1. Полагаем
2. Вычисляем
3. Если
, то переопределяем
,
,
,
.
.
.
4. Проверяем четность числа s. Если число s нечетно, то работа ал-
горитма заканчивается и выводится ответ:
5. При четном s переопределяем переменные:
,
, где m –
, то
.
,
,
и возвращаемся на шаг 2.
На каждом проходе цикла мы извлекаем квадратный корень из 1, полу-
чая один из двух возможных ответов
. Если ответ (–1), то умножаем на
, получая опять 1. Далее цикл повторяется. В начале рабо-
ты алгоритма число s – четное в степени
, на каждой петле цикла сте­пень четности этого числа уменьшается, и через t проходов цикла работа алгоритма заканчивается. Заметим, что степень четности у числа z всегда больше, чем у числа s, и поэтому к окончанию работы число z – четное.
Пример 30. Пусть
1.
2.
.
3. Число z не меняется:
,
,
,
,
,
,
.
.
.
4.
5.
– четное. ,
,
70
,
.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]