
- •КУРС ЛЕКЦИЙ
- •Из сказанного выше следует, что
- •Допустим, что мы уже установили справедливость соотношений
- •По формуле Байеса
- •Среднее геометрического распределения равно
- •Пусть
- •Тогда
- •Для второй суммы справедлива оценка
- •Следовательно,
- •Отсюда получаем
- •Тогда
- •Это выполняется, когда
- •Тогда справедливо следующее равенство:
- •Обозначим
- •Положим
- •Это апостериорная вероятность того, что z=a. Аналогично
- •Из определения следует, что
- •Тогда уравнение
- •Рис. 1. Схема 3-х раундов DES.
- •Отсюда, используя разложение логарифма в ряд, получим
- •Таким образом,
- •Здесь IV – инициальное значение.
- •Из этих соотношений с учетом (1) получим
- •Аналогично,
- •Откуда следует, что
- •Из соотношений (2) и (3) получим
- •Отсюда
- •Отсюда
- •Находим подходящие тексты такие, что
- •Теперь проверяем равенство
- •Тогда
- •Тогда
- •Сложив два последние равенства, получим
- •Пример: IDEA
- •4.2. Арифметика остатков
- •Заметим, что
- •Подпись RSA.
- •Затем
- •Аналогично
- •Тогда по лемме
- •Глава 1. Примеры шифров……………………………………………………. 3
- •Глава 3. Синтез криптоалгоритмов…………………………………………….67
- •4.2. Арифметика остатков………………………………………………….81
|
|
|
|
|
|
|
|
81 |
3. если n1 и n2 -нечётные, то |
|
|
|
|||||
НОД(n , n |
2 |
) =НОД( |
n1 − n2 |
, n |
2 |
). |
|
|
|
|
|||||||
1 |
|
2 |
|
|
|
|||
|
|
|
|
|
|
|
||
Сложность |
|
алгоритма Стейна. Пусть µ(s) – минимальное значение |
||||||
n1+ n2 , что |
s |
делений потребуется для нахождения |
НОД(n1, n2 ) , |
|||||
n1 ≥ n2 > 0. Тогда |
|
|
|
|||||
s ≤ log2 n1 +1. |
|
|
(6) |
|||||
Пример 3. |
|
|
|
|
|
|
|
|
µ(1)=2 |
|
|
( n1=1, n2 =1); |
|
||||
µ(2)=4 |
|
|
( n1=3, n2 =1). |
|
||||
4.2. Арифметика остатков |
|
|
|
|||||
Определение 1. a сравнимо с b по модулю n |
|
|||||||
a ≡ b(n) , |
|
|
|
|
|
|
|
(1) |
если R n (a) = R n (b).
Отношение (1) есть отношение эквивалентности. Это отношение разбивает Ζ на непересекающиеся классы вычетов. Класс вычетов будем обозначать [a], a,b [a] a ≡ b(n) .
Ζ/ n ={[a]} -коммутативное кольцо:
1.[a] + [b] = [a + b] корректно определенная коммутативная, ассоциативная операция.
2.[a] [b] = [a b] корректно определенная коммутативная, ассоциативная операция.
3.([a] + [b]) [c] = [a c] + [b c].
Докажем, что результат операции сложения не зависит от выбора
представителей (корректность). |
|
~ |
||
a + b = nq1 +r1 |
+nq 2 + r 2 , r1 + r 2 |
|||
= n q + r, |
||||
1 |
1 |
, r1+ r |
~ |
|
a′ + b′ = nq1 +r1 +nq 2 + r 2 |
2 = n q + r. |
Для операции умножения корректность доказывается аналогично.
Лемма 1.
a [b] a − b = kn .
Доказательство непосредственно следует из (1).
Лемма 2. В любом классе вычетов существует единственное наименьшее неотрицательное число.
Д о к а з а т е л ь с т в о.
a N, a [a] r < n r [a].
82
Если a > n: a = qn + r, r < n, то a – r = qn и по лемме 1 r [a].
Докажем единственность от противного. Предположим, что r1 ≠ r,
r1 < n, r1 [a]. Пусть r1 < r, тогда r - r1 = qn > 0 q ≥ 1, но так как r < n, r1 < n, то r - r1 < n – противоречие. Следовательно, не существует такого
r1. Лемма доказана.
С другой стороны, a,b Ν, a > b > 0, Rb (a) = r = a(mod b). Следующие свойства остатков важны для дальнейшего.
1.(c d)(modb) = (c(modb) d(modb))(modb), где {+, -, × }.
2.(a×(c+d))(modb) = ( (a×c)(modb) + (a×d)(modb))(modb).
Использование вычетов в криптографии основано на существовании
алгоритма быстрого возведения в степень. Пусть
a2 2 (mod n) = (a2 )2 (mod n) = (a2 (mod n))2 (mod n),
где a2 (mod n) – остаток от деления a 2 на n, следовательно, его проще
возводить в квадрат, чем число a 2 . Таким образом, любая степень числа два позволяет быстрее возводить в степень, если последовательно приводить промежуточные результаты по модулю n.
a 2k mod n = ((a 2 (mod n))2 (mod n))2 (mod n) K
Если х – произвольное число, то существует представление x = a0 20 + a1 21 +K+ ak 2k
и тогда возведение в степень опирается на быстрый алгоритм возведения в степень числа 2:
a x (mod n) = (a a0 20 (mod n) a a1 21 (mod n)Ka ak 2k (mod n)) (mod n)
Пример 1.
312 (mod19) = (38 mod19)(34 mod19) (mod19);
34 (mod19) = (32 (mod19))2 (mod19) = 92 (mod19) = 5; 38 (mod19) = (34 (mod19))2 (mod19) = 52 (mod19) = 6;
312 (mod19) = (6 5)(mod19) =11.
Можно доказать, что возведение в степень k требует в среднем 1,5k операций.
83
4.3. Основные теоремы о вычетах.
Пусть n взаимно-простое с а число, а ≠ 0; r 0 =0, r1,…,r n−1 |
- |
наименьшие неотрицательные представители различных классов вычетов mod n. Рассмотрим множество чисел:
u 0 = (ar 0 )(modn), u1 = (ar1)(modn),… , u n−1 = (ar n−1 )(modn).
Лемма 1. Числа u 0 , u1,… , u n−1 - различные.
Д о к а з а т е л ь с т в о. Предположим противное. Тогда i >j: u i = u j и по лемме 1 п. 4.2 ar i -ar j = nq, q Z. Тогда
a(ri -r j ) = nq.
Так как n простое и взаимно простое с a, то n делит (r i -r j ). Однако по лемме 1 п. 4.2 это противоречит тому, что r i и r j выбирались из разных
классов вычетов. Лемма доказана.
Следствие 1. Числа u 0 , u1,… , u n−1 - наименьшие неотрицательные
представители всех классов вычетов. |
|
|
|
|
Следствие 2. Среди чисел u 0 , u1,… , u n−1 есть 1. |
|
|
|
|
Следствие 3. |
Если n простое, НОД(a,n) = |
1, |
то |
уравнение |
ax ≡ 1(modn) имеет единственное решение с точностью до класса. |
||||
Доказательство следует из следствия 2. |
|
|
|
|
Определение1. |
Функция Эйлера ϕ(n), n N, определяется как число |
|||
натуральных чисел, меньших n и взаимно простых с n, то есть |
|
|||
ϕ(n)= |{a: НОД(a,n) = 1, a<n}|. |
|
|
|
|
Если n простое, то ϕ(n)= n-1. Если n=pq, где |
p и |
q |
простые, то |
|
ϕ(n)=(p-1)(q-1). |
|
|
|
|
Пусть для n N |
r1, r 2,… , rϕ(n) - все взаимно простые с n натуральные |
числа, меньшие n. Будем называть этот набор системой представителей для n. Пусть a Z и НОД(a,n) = 1. Рассмотрим набор чисел
u1 = (ar1)(modn), u 2 = (ar 2)(modn),… , uϕ(n) = (arϕ(n) )(modn). |
(2) |
Лемма 2. Если НОД(a,n) = 1, то набор чисел u1, u 2,… , uϕ(n)
является системой представителей для n.
Д о к а з а т е л ь с т в о.
Сначала докажем, что [u1], [u 2],… , [uϕ(n) ] -различны. Предположим противное. Тогда существуют u i и u j такие, что
u i ≡ u j (modn).
Отсюда следует ar i -ar j = nq при некотором q. Так как НОД(a,n) = 1, то в произведении a(ri -r j ) сомножитель (r i -r j ) делится на n.Это значит, что r i
|
|
|
|
|
84 |
и r j лежат |
в одном классе вычетов по |
modn. Пусть r i > |
r j , |
тогда |
|
r i -r j =n. Это |
противоречит тому, что 0< |
r i -r j <n. Каждое |
из |
чисел |
|
u1, u 2,… , uϕ(n) меньше n, они различные и их |
ϕ(n) штук. Докажем, что |
||||
каждое из чисел u i взаимно просто с n. Числа ar i |
- взаимно просты с n, так |
||||
как |
|
|
|
|
|
НОД(a,n) = 1, НОД(n,r i ) = 1, i=1,…,ϕ(n). |
|
|
|
(3) |
Тогда, если u i имеет с n общий делитель d>1, то из равенства ari = nq+ u i следует, что d|ar i . Это противоречит (3). Отсюда следует, что u1, u 2,… , uϕ(n) - система представителей. Лемма 2 доказана.
Лемма 2 является основой для доказательства ряда важных для криптографических приложений результатов.
Теорема 1. Если n N, a Z, НОД(a,n) = 1, то уравнение ax ≡ 1(modn) имеет единственное решение в кольце вычетов по modn.
Д о к а з а т е л ь с т в о. Так как 1 принадлежит системе представителей для n, то в наборе u1 , u 2,… , uϕ(n) из леммы 2 найдется 1.
Соответствующее r i такое, что
1= u i = ar i (modn)
определяет искомое . Теорема доказана.
Теорема 2 (Обобщенная теорема Евклида). Для любых a и b из Z найдутся u, v из Z, такие, что
au + bv = НОД(a,b).
Д о к а з а т е л ь с т в о. Пусть сначала НОД(a,b) = 1, |
тогда по |
|
теореме 1 уравнение ax ≡ 1(modb) |
имеет единственное |
решение |
x ≡ u(modb) в кольце вычетов по модулю b. Это означает, что при некотором v:
au-1=bv.
Если НОД(a,b)=d, то a=a1 d, b=b1 d и НОД(a1 ,b1 ) = 1. Тогда для a1 и b1 найдутся u и v, что a1 u+b1 v=1. Умножая обе части равенства на d, получим требуемое равенство. Теорема доказана.
Теорема 3 (Теорема Эйлера). Если n N, a Z, НОД(a,n) = 1, то aϕ ( n ) (modn)=1.
Д о к а з а т е л ь с т в о.
Из леммы 2 следует, что если r1, r 2,… , rϕ(n)
для n, то
u1 = (ar1)(modn), u 2 = (ar 2)(modn),… , uϕ(n)
также система представителей для n. Тогда u1u 2… uϕ(n) ≡ r1r 2… rϕ(n) (modn)
-система представителей
=(arϕ(n) )(modn).
|
|
|
|
|
|
|
|
|
85 |
и |
|
|
|
|
|
|
|
|
|
u1u 2… uϕ(n) ≡ar1ar 2…a rϕ(n) (modn). |
|
|
|
|
|||||
Из этих равенств при некотором q имеем |
|
|
|
|
|||||
r1r 2… rϕ(n) = aϕ ( n ) r1r 2… rϕ(n) + nq. |
|
|
|
(4) |
|||||
Так как НОД(r i ,n)=1, i=1,…, ϕ(n), то НОД(r1r 2… |
rϕ(n) ,n)=1. Поэтому в ра- |
||||||||
венстве (4) q делится на r1r 2… rϕ(n) . Отсюда получаем |
|
|
|||||||
1= aϕ ( n ) +nq’. |
|
|
|
|
|
|
|
|
|
Полученное равенство эквивалентно утверждению теоремы. |
|
|
|||||||
Следствие |
4 (Малая |
теорема |
Ферма). |
Если n - |
простое число, |
||||
НОД(a,n)= 1, то |
|
|
|
|
|
|
|
|
|
a n −1 ≡ 1(modn). |
|
|
|
|
|
|
|
|
|
Следствие 5. Если НОД(a,n) = 1, то |
|
|
|
|
|||||
a −1 ≡ aϕ ( n ) -1 (modn). |
|
|
|
|
|
ϕ(n) обращение в кольце |
|||
То есть, при известном значении функции |
|||||||||
вычетов сводится к возведению в степень. |
|
|
|
|
|||||
В заключение приведем без доказательства полезную теорему [Massey |
|||||||||
94]. |
|
|
|
|
|
|
|
|
|
Теорема 4. (Китайская теорема об остатках). |
Тогда |
для |
|||||||
Пусть |
m1, K, mk Ζ, НОД(mi , m j ) =1, |
i ≠ j. |
|||||||
r1, K,rk Ζ, |
0 ≤ ri < mi , |
i = |
|
|
|
единственное |
решение |
||
1,k |
0 ≤ x < n = m1 Kmk |
системы Rm (x) = ri i =1, K, k . |
|||
|
|
|
|
i |
|
|
4.4. Квадратичные вычеты. |
||
|
|
Пусть р- простое, а < р, р>2. |
||
|
|
Определение |
1. а – квадратичный вычет x : x2 ≡ a( p) . |
|
|
|
Пример 1. Пусть р = 7, тогда 1, 2, 4 – квадратичные вычеты, а 3, 5, 6 – |
||
не квадратичные вычеты: |
||||
12 =1 ≡1 (mod 7) |
|
|
||
22 = 4 ≡ 4 (mod 7) |
|
|
||
|
|
|||
32 = 9 ≡ 2 (mod 7) |
|
|
||
|
/ x : x2 = 3, 5, 6 (mod 7) |
|||
42 =16 ≡ 2 (mod 7) |
|
|||
|
|
|||
|
|
|
|
|
52 = 25 ≡ 4 (mod 7) |
|
|||
6 |
2 |
= 36 ≡1 (mod 7) |
|
|
|
|
|

86
Теорема 1. Существует p2−1 квадратичных вычетов и p2−1 не квадратичных вычетов в GF(p). У каждого квадратичного вычета суще-
ствуют два корня |
α1 иα2 |
такие, |
что 0 <α1 ≤ |
p −1 |
, |
p −1 |
<α2 ≤ p −1 , |
|
|
2 |
|
||||||
|
|
|
2 |
|
|
|
||
где α1 называется основным корнем. |
|
|
|
|||||
Д о к а з а |
т е л |
ь с т |
в о. β ≡α2 ( p) β ≡ (−α)2 ( p). При |
|||||
p > 2 [α] ≠[−α], |
следовательно, уравнение β = x 2 (modp) |
имеет не ме- |
нее двух корней. Если β =α2 (modp) и β = γ 2 (modp) , то
α2 −γ 2 ≡ 0( p),
(α −γ )(α +γ ) ≡ 0( p).
Тогда или α ≡ -γ(n) или α ≡ γ(n). Отсюда β имеет ровно два значения корня квадратного или ни одного. Ровно половина ненулевых элементов GF(p) есть квадратичные вычеты.
Теорема 2. Если n = p q, где p, q – простые, то |
( p −1)(q −1) |
|
4 |
||
|
квадратичных вычетов по modn и у каждого квадратичного вычета 4 корня.
Пример 2. n = 35 = 5 7 446 = 6 квадратичных вычетов по
mod 35: 1, 4, 9, 11, 16, 29. Каждый квадратичный вычет имеет ровно 4 корня.
Определение 2. Для целого а и простого p>2 символ Лежандра определяется следующим образом:
L(a, p) = 0, если р/а;
L(a, p) = 1, если а- квадратичный вычет по mod p; L(a, p) = -1, если а- не квадратичный вычет по mod p.
|
|
|
|
p −1 |
|
|
|
|
|
|
|
|
Теорема 3. L(a, p) = a 2 (mod p) . |
||||
|
Д о к а з а т е л ь с т в о. |
||||
|
|
p −1 |
|||
|
|
|
|
||
1. |
p / a ( p а) 2 (mod p) = 0. |
2.а- квадратичный вычет, то есть x2 = a (mod p) . Тогда по теореме
Ферма
a p2−1 (mod p) = x2 p2−1 (mod p) = x p−1 ≡1 (mod p) .

87
Таких a ровно |
p −1 |
. Рассмотрим уравнение |
|
2 |
|
||
|
|
|
x p−1 ≡1 (mod p) .
Любое а – его корень. Отсюда каждое a является корнем одного из сомножителей в следующем уравнении:
p−1 p−1
(x 2 −1)(x 2 +1) ≡ 0 (mod p) .
Значит, p2−1 значений квадратичных вычетов а являются корнями урав-
нения
p −1
x 2 −1 ≡ 0 (mod p) .
Тогда по основной теореме алгебры остальные а, не являющиеся квадратичными вычетами, являются корнями уравнения
p −1
x 2 +1 ≡ 0 (mod p) .
Если а- не квадратичный вычет, тогда
p −1
a 2 = −1(mod p) .
Теорема доказана.
Определение 3. Пусть р- простое, g < p. g называется примитивным элементом мультипликативной группы поля GF(p) (или примитивным эле-
ментом по mod p), если 0 < n ≤ p-1 a: n ≡ g a (mod p) .
Пример 3. При p = 11, 2 есть примитивный мультипликативной груп-
пы GF(11).

88
210 =1024 ≡1 (mod11);
21 = 2 ≡ 2(mod11);
28 = 256 ≡ 3(mod11);
22 = 4 ≡ 4(mod11);
24 =16 ≡ 5(mod11);
29 = 519 ≡ 6(mod11);
27 =128 ≡ 7(mod11);
23 = 8 ≡ 8(mod11);
26 = 64 ≡ 9(mod11);
25 = 32 ≡10(mod11).
Каждое число n (1; 10) может быть представлено в виде 2а (mod p) .
Для р = 11 числа 2, 6,7,8 являются примитивными элементами мультипликативной группы GF(11). Остальные не являются примитивными элементами.
Замечание. В GF(p) ϕ(p-1) примитивных элементов.
Нахождение примитивного элемента, вообще говоря, не является простой задачей. Примитивный элемент находится легко, если известна факторизация р-1. Пусть g1, K, gn - простые множители р-1. Для того чтобы
проверить, является ли g примитивным элементом по mod p, вычисляется
( p −1)
l = g gi (mod p), i =1, n . Если для некоторого i это число равно 1, то g-
не примитивный элемент. Если это не выполняется ни для какого i =1, n , то g- примитивный элемент.
Пример 4. При р = 11 имеем р - 1 = 10 = 2 5. Проверим, что число 2 является примитивным элементом мультипликативной группы GF(11).
(11−1)
2 5 = 4(mod11) ≠1,
(11−1)
2 2 =10(mod11) ≠1,
следовательно, 2 – примитивный элемент. Проверим 3.

89
|
(11−1) |
|
3 |
5 |
= 9(mod11) ≠1 |
|
(11−1) |
|
3 |
2 |
= 243(mod11) =1, |
следовательно, 3 не примитивный элемент мультипликативной группы
GF(11).
4.5. Факторизация. Логарифмирование в конечных полях.
Факторизация числа означает нахождение его простых множителей.
Пример 1.
10 = 2 × 5,
60 = 2 × 2 × 3 × 5,
252601 = 41 × 61 × 101,
2113 - 1 = 3391 × 23279 × 65933 × 1868569 × 1066818131868207.
Проблема факторизации – одна из старейших в теории чисел. Сложность самого быстрого алгоритма факторизации [Schn96]:
e ln n
ln ln n
Пусть π(n) – число простых чисел ≤ n.
Теорема. (Чебышева о числе простых чисел [Massey 94]).
lim π(n) =1.
n→∞ n
ln n
Все современные тесты на простоту основаны на обобщениях теоремы Ферма.
Если α имеет порядок N (αN =1(modp)) в мультипликативной группе поля GF(p), что предполагает, что α0 =1,α,α2 , K,α N −1 - различны, и
β =αi , где 0 ≤ i < N . |
Тогда i называется дискретным логарифмом от β |
по основанию α и обозначается i = logα β . |
|
y = f (x) =α x , |
0 ≤ x < N, |
c
x = f −1( y) = logα y
при этом:
(1)вычислять экспоненту легко: требуется не более 2[log2 N] операций
в алгоритме быстрого возведения в степень;
(2) вычисление дискретного логарифма в GF(p) является очень сложной задачей, когда р-1 имеет большой простой множитель.