Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GrushoCrypto.pdf
Скачиваний:
20
Добавлен:
02.04.2015
Размер:
4.03 Mб
Скачать

 

 

 

 

 

 

 

 

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 n1

-

наименьшие неотрицательные представители различных классов вычетов mod n. Рассмотрим множество чисел:

u 0 = (ar 0 )(modn), u1 = (ar1)(modn),… , u n1 = (ar n1 )(modn).

Лемма 1. Числа u 0 , u1,… , u n1 - различные.

Д о к а з а т е л ь с т в о. Предположим противное. Тогда 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 n1 - наименьшие неотрицательные

представители всех классов вычетов.

 

 

 

Следствие 2. Среди чисел u 0 , u1,… , u n1 есть 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 2uϕ(n) r1r 2rϕ(n) (modn)

-система представителей

=(arϕ(n) )(modn).

 

 

 

 

 

 

 

 

 

85

и

 

 

 

 

 

 

 

 

 

u1u 2uϕ(n) ar1ar 2a rϕ(n) (modn).

 

 

 

 

Из этих равенств при некотором q имеем

 

 

 

 

r1r 2rϕ(n) = aϕ ( n ) r1r 2rϕ(n) + nq.

 

 

 

(4)

Так как НОД(r i ,n)=1, i=1,…, ϕ(n), то НОД(r1r 2

rϕ(n) ,n)=1. Поэтому в ра-

венстве (4) q делится на r1r 2rϕ(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. Существует p21 квадратичных вычетов и p21 не квадратичных вычетов в 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 p21 (mod p) = x2 p21 (mod p) = x p1 1 (mod p) .

87

Таких a ровно

p 1

. Рассмотрим уравнение

2

 

 

 

 

x p1 1 (mod p) .

Любое а – его корень. Отсюда каждое a является корнем одного из сомножителей в следующем уравнении:

p1 p1

(x 2 1)(x 2 +1) 0 (mod p) .

Значит, p21 значений квадратичных вычетов а являются корнями урав-

нения

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).

(111)

2 5 = 4(mod11) 1,

(111)

2 2 =10(mod11) 1,

следовательно, 2 – примитивный элемент. Проверим 3.

89

 

(111)

 

3

5

= 9(mod11) 1

 

(111)

 

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 имеет большой простой множитель.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]