Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Литература / Дискретная математика (пособие ЛЭТИ) / Дискретная математика (пособие ЛЭТИ)

.pdf
Скачиваний:
588
Добавлен:
16.04.2013
Размер:
527.71 Кб
Скачать

+

0

1

2

3

4

5

 

 

 

 

 

 

 

0

0

1

2

3

4

5

 

 

 

 

 

 

 

1

1

2

3

4

5

0

 

 

 

 

 

 

 

2

2

3

4

5

0

1

3

3

4

5

0

1

2

 

 

 

 

 

 

 

4

4

5

0

1

2

3

 

 

 

 

 

 

 

5

5

0

1

2

3

4

 

 

 

 

 

 

 

×

0

1

2

3

4

5

0

0

0

0

0

0

0

 

 

 

 

 

 

 

1

0

1

2

3

4

5

 

 

 

 

 

 

 

2

0

2

4

0

2

4

3

0

3

0

3

0

3

 

 

 

 

 

 

 

4

0

4

2

0

4

2

 

 

 

 

 

 

 

5

0

5

4

3

2

1

 

 

 

 

 

 

 

В Z/(6) имеются делители нуля. Действительно: 2 ·3 = 0, 3 ·4 = 0. Для элементов {2, 3, 4} нет обратных.

Замечание 3.3. Как легко заметить из последнего примера, таб лица Кэли по сложению в Z/(6) является левоциркулярной матрицей.

Этот факт нетрудно доказать для произвольного модуля. Перейдем к делению сравнений.

Теорема 3.6. Пусть ac ≡ bc (m),

D(c, m) = d, тогда a ≡ b

d .

 

 

 

 

 

 

m

Доказательство. Пусть c = c1d, m = m1d, тогда ac − bc = lm, таким

образом,

ac − bc

 

(a − b)c1

 

 

 

l =

=

,

 

 

 

 

 

 

 

m

m1

 

 

следовательно, (a − b)c1 k m1, íî (c1, m1) = 1, тем самым (a − b) k m1 èëè,

что то же самое, a ≡ b md .

Следствие 3.3. Рассмотрим 2 важных предельных случая теоремы 3.6:

1.Если m k c, тогда из ac ≡ bc (m) следует a ≡ b mc .

2.Если D(m, c) = 1, тогда из ac ≡ bc (m) следует a ≡ b (m).

Результаты, полученные в этом подразделе, обобщает следующая тео рема.

Теорема 3.7. Пусть F (a, b, . . .) произвольная целая рациональная функция от a, b, . . . Z, т. е.

X

F (a, b, . . .) = Ckaαk bβk · · · , ãäå Ck, αk, βk, . . . Z, αk, βk, . . . > 0 .

k

Åñëè a ≡ a1(m), b ≡ b1(m), . . . , òî F (a, b, . . .) ≡ F (a1, b1, . . .)(m) .

30

В качестве простейшего приложения теоремы докажем следующее утверждение.

Утверждение 3.1. Квадрат всякого нечетного числа сравним с 1 по модулю 8.

Доказательство. Действительно, любое нечетное число можно пред

ставить в виде 4k ± 1. Тогда (4k ± 1)2 = 16k2 ± 8k + 1 ≡ 1 (mod 8) .

3.2.Функция Эйлера и ее свойства

Определение 3.4.

def

 

Функция Эйлера ( = ϕ(m)) ставит в соответ

ствие каждому натуральному m количество чисел, меньших m и взаим но простых с m. Будем полагать ϕ(1) = 1.

Вычислять функцию Эйлера согласно определению затруднительно. Выведем общую формулу для произвольного аргумента.

Лемма 3.1. Пусть m = pn, где p простое число. Тогда

ϕ(m) = pn

1 − p .

 

1

 

Доказательство. Из интервала (0, pn) на p делятся только числа, кратные p. Это p, 2p, 3p, . . . , pn − p. Их всего pn−1 − 1. Остальные числа

из данного интервала взаимно просты с p. Поэтому

ϕ(m) = ϕ(pn) = pn − 1 − (pn−1 − 1) = pn 1 − p1 .

Докажем вспомогательную теорему.

Теорема 3.8. Пусть x пробегает полную систему вычетов по моду лю a, а y соответственно по модулю b. При этом D(a, b) = 1. Тогда:

1)z = ay + bx пробегает полную систему вычетов по модулю ab.

2)D(z, ab) = 1 тогда и только тогда, когда D(x, a) = 1, D(y, b) = 1.

Доказательство. x принимает a значений, y b значений, следова тельно, z принимает ab значений. Покажем, что никакие 2 значения z не сравнимы друг с другом по модулю ab. Пусть

z1 = ay1 + bx1, z2 = ay2 + bx2 è ay1 + bx1 ≡ ay2 + bx2 (mod ab) ,

31

тогда согласно теореме 3.3

ay1 + bx1 ≡ ay2 + bx2 (mod a), ay1 + bx1 ≡ ay2 + bx2 (mod b) .

По следствию 3.3(п.2) (так как D(a, b) = 1) имеем x1 ≡ x1 (a) è

y1 ≡ y2 (b). Íî x1, x2 из полной системы вычетов по модулю a, à y1, y2 из полной системы вычетов по модулю b. Следовательно, x1 = x2, y1 = y2, z1 = z2. Таким образом, первая часть теоремы доказана.

Пусть D(z, ab) = 1, тогда очевидно, что D(ay + bx, a) = 1, D(ay + bx, b) = 1. Следовательно, z − ay = bx взаимно просто с a, à z − bx = ay взаимно просто с b. Òàê êàê D(a, b) = 1, òî D(a, x) = 1,

D(b, y) = 1. Повторив последние рассуждения в обратном порядке, полу чаем достаточность п.2.

Следствие 3.4.

D(a, b) = 1, тогда ϕ(ab) = ϕ(a)ϕ(b).

(3.1)

Доказательство. В полной системе вычетов по модулю a существует ϕ(a) значений x, таких, что D(a, x) = 1. Аналогично для модуля b получа ем ϕ(b) значений y, таких, что D(b, y) = 1. Следовательно, всего имеется ϕ(a)ϕ(b) значений z, взаимно простых с ab. Но значения z образуют пол ную систему вычетов по модулю ab, и чисел, взаимно простых с ab, â íåé

ϕ(ab).

Замечание 3.4. Равенство (3.1) легко обобщить на случай несколь ких попарно взаимно простых сомножителей.

Следствие 3.5. Пусть m Z. Согласно (1.2) m представимо в виде

m = pαqβ · · · , где p, q, . . . − простые числа, α, β, . . . > 1.

Тогда

ϕ(m) = pα−1(p − 1)qβ−1(q − 1) · · · = m

1 − p 1 − q

· · · . (3.2)

 

1

1

 

Доказательство. Так как pα, qβ, . . . попарно взаимно просты, то при меняя последовательно следствие 3.4 и лемму 3.1 получаем требуемое.

Рассмотрим важное применение формулы (3.2).

Теорема 3.9 (формула Гаусса). Пусть d пробегает все делители

P

числа m. Тогда m = d ϕ(d).

32

m. Тогда

Доказательство. Пусть m представимо в виде (1.2). Тогда для любого делителя d справедливо представление

d = pχqλ · · · , ãäå 0 6 χ 6 α, 0 6 λ 6 β, . . . .

Рассмотрим произведение

[1 + ϕ(p) + ϕ(p2) + · · · + ϕ(pα)][1 + ϕ(q) + ϕ(q2) + · · · + ϕ(qβ)] · · · .

Перемножая все скобки имеем

X

X

Xd

ϕ(pχ)ϕ(qλ) · · · =

ϕ(pχqλ · · · ) =

ϕ(d) .

χ,λ ...

χ,λ ...

 

С другой стороны, согласно лемме 3.1 каждую скобку можно представить в виде

1 + ϕ(p) + ϕ(p2) + · · ·+ ϕ(pα) = 1 + (p −1) + (p2 −p) + · · ·+ (pα −pα−1) = pα .

Перемножая, получаем pαqβ · · · = m. Теорема доказана. Установим еще одно свойство функции Эйлера.

Теорема 3.10 (Эйлера Ферма). Пусть D(a, m) = 1, тогда

aϕ(m) ≡ 1 (m) .

def

Доказательство. Пусть D(a, m) = 1, ϕ(m) = µ. Тогда классов выче

тов, взаимно простых с m, будет µ. Пусть {a1, a2, . . . , aµ} представители этих классов. Тогда {aa1, aa2, . . . , aaµ} также взаимно просты с m. Пред положим, что aai ≡ aaj (m), тогда ai ≡ aj (m). Следовательно, числа aaiтакже представители всех классов вычетов, взаимно простых с

каждое aai сравнимо с одним и только одним ak, ò. å.

aa1 ≡ aα (m), aa2 ≡ aβ (m) . . . , aaµ ≡ aθ (m), ãäå 1 6 α, β, θ 6 µ.

Перемножая последние µ сравнений, имеем a1a2 · · · aµaµ ≡ aαaβ · · · aθ (m). Заметим, что aα, aβ, . . . , aθ это те же числа, что и a1, a2, . . . , aµ, только в

другом порядке. После сокращения (в силу D(ai, m) = 1) получаем нужное сравнение.

Следствие 3.6 ( малая теорема Ферма). Если p простое, то

ap ≡ a (p).

Замечание 3.5. Этот частный случай установил Ферма в XVII в., а полностью теорема 3.10 была доказана Эйлером.

33

3.3.Решение сравнений первой степени

Определение 3.5. Сравнением первой степени называется уравне ние следующего вида:

ax ≡ b (mod m), ãäå a, b, x, m Z.

(3.3)

Очевидно, что решениями уравнения (3.3) являются классы вычетов,

поэтому сравнение может иметь не более m решений. Установим критерий разрешимости сравнения (3.3).

Теорема 3.11. Справедливо следующее:

1.

 

 

def

 

 

 

Сравнение (3.3) разрешимо b k d = D(a, m).

 

2.

При этом существует d классов решений

.

 

x0, x0 + d , x0

+ 2 d , · · · , x0

+ (d − 1) d

 

 

m

m

 

m

Доказательство. Oчевидно, что разрешимость сравнения (3.3) экви

валентна разрешимости диофантового уравнения ax − my = b. Применив теорему 2.4 устанавливаем п. 1. Далее, все решения соответствующего дио

фантового уравнения (а нас интересует только неизвестное x) описываются

m

согласно (2.16) следующим образом: x = x0 d t. Различных по модулю m среди них ровно d, т. е. п. 2 установлен.

Замечание 3.6. Из теоремы 3.11 можно сделать следующие выво

äû:

1.Решение сравнения ax ≡ b (mod m) сводится к решению диофан тового уравнения ax − my = b.

2.Если p простое число, то сравнение ax≡b (mod p) всегда имеет единственное решение (кроме случая a = 0). Таким образом (см.

замечание 3.2), в случае простого модуля для любого a Z/(m), a 6= 0(p) существует обратный элемент a−1, т. е. Z/(m) являет ся полем.

С пoмощью сравнений установим критерий простоты числа.

Теорема 3.12 (Вильсонa). Число p Z является простым тогда и только тогда, когда (p − 1)! ≡ −1 (mod p).

34

Доказательство. Пусть p простое. Не умаляя общности, считаем, что p > 3. Тогда для любого a Z, не делящегося на p, сравнение

ax ≡ 1 (mod p)

(3.4)

имеет единственный класс решений x ≡ b (p), ãäå b некоторый вычет из {1, 2, . . . , p − 1}. Заметим, что b 6= 0, òàê êàê, åñëè x ≡ 0 (p), òî

x k p. Рассмотрим все пары {a, b}, взаимно простые с p, из той же системы вычетов, что и решения (3.4), такие, что ab ≡ 1 (p). Пусть a = b. Имеем a2 ≡ 1 (p), тогда (a + 1)(a − 1) k p, следовательно, a ≡ ±1 (p), ò. å. a = 1 èëè a = −1. Тогда, для пар {a, b}, таких, что 2 6 a, b 6 p − 2, справедливо a 6= b. Таких пар всего (p − 3)/2. Перемножив (p − 3)/2 сравнения вида ab ≡ 1 (mod p), получим 2 · 3 · · · · (p − 2) ≡ 1 (mod p). Домножая на триви альное сравнение p − 1 ≡ −1 (mod p) получаем критерий Вильсона. Пусть теперь p составное число. Тогда D((p − 1)! , p) > 1, следовательно,

(p − 1)! + 1 не может делиться на p. Теорема доказана.

Перейдем к системам сравнений первой степени. Рассмотрим важный частный случай, когда модули сравнений системы попарно взаимно просты.

Теорема 3.13 (китайская теорема об остатках). Система срав

нений

x ≡ c1 (m1), x ≡ c2 (m2), · · · , x ≡ ck (mk),

(3.5)

ãäå D(mi, mj) = 1 для i 6= j, имеет единственное (по модулю m1 · · · mk) решение.

def def

Доказательство. Введем обозначения: m1 · · · mk = M, M/ml = Ml. Òàê êàê D(Ml, ml) = 1 l 1 . . . k, то согласно теореме 3.11 каждое сравне

def

íèå Mlx≡1(ml) имеет единственное решение ( = xl). Тогда легко построить решение системы (3.5):

k

 

 

Xl

 

 

x ≡ Mlxlcl

(mod M).

(3.6)

=1

 

 

Подставляя x в каждое сравнение (3.5), убеждаемся, что (3.6) реше ние системы. Подставим, для примера, x в первое уравнение (3.5). Тогда

M2x2c2 + M3x3c3 + · · · + Mkxkck ≡ 0 mod m1, íî M1x1 ≡ 1 mod m1, следо

вательно, M1x1c1 ≡ c1 mod m1 è x ≡ c1 mod m1.

Следствие 3.7. Åñëè c1 = c2 = · · · = ck = c, òî

x ≡ c (m1m2 · · · mk) i 1 . . . k x ≡ c (mi).

35

Доказательство. Необходимость была установлена в п.1 теоремы 3.3. Достаточность очевидным образом вытекает из теоремы 3.13.

Замечание 3.7. Набор c1, c2, . . . , ck называется китайским кодом числа x .

Пример 3.3. Решим систему сравнений: x ≡ 2 (3), x ≡ 4 (5), x ≡ 0 (8). Имеем:

1)

40x ≡ 1

(3),

x1

= 1;

2)

24x ≡ 1

(5),

x2

= 4;

3)

15x ≡ 1

(8),

x3

= 7.

Тогда x ≡ 104

mod 120.

3.4.Применение теоремы Эйлера в криптографии. Система шифрования RSA

Развитие телекоммуникаций привело к повышению роли алгоритмов шифровки информации и развитию нового направления в криптографии науке о способах преобразования (шифрования) информации с целью ее защиты от незаконных пользователей. Центральным понятием этого на правления является понятие односторонней функции.

Определение 3.6. Функция f называется односторонней, если су

ществует эффективный (полиномиальный) алгоритм вычисления ее зна чений f(x), но для решения уравнения f(x) = a (обращения функции f)

эффективного алгоритма нет.

Несмотря на то что построенные на понятии односторонней функции криптографические системы уже работают и понятия электронной подпи си и электронных денег вошли в экономическую практику и закреплены законодательно, математического доказательства того, что эти функции действительно односторонние, пока не получено. Поэтому неизвестно, су ществуют ли односторонние функции.

Электронная подпись и электронные деньги основаны на так называ емой функции с секретом (или ловушкой).

Определение 3.7. Функцией с секретом K называется функция fK , зависящая от параметра K и обладающая тремя свойствами:

1)при любом K существует эффективный (полиномиальный) алго ритм вычисления fK ;

36

2)при неизвестном K не существует эффективного алгоритма об ращения fK ;

3)при известном K существует эффективный алгоритм обращения fK .

Наиболее известной и популярной односторонней функцией является функция f(x) = xe mod m, лежащая в основе шифра RSA(Rivest, Shamir, Adleman). Рассмотрим эту систему шифрования более подробно.

Будем считать, что шифруемые сообщения представлены (закодиро ваны) длинными целыми числами. Пусть m è e натуральные числа.

Функция f, осуществляющая шифрование, определяется следующим обра

çîì: f(x) = xe mod m.

Для дешифрования сообщения нужно решить сравнение xe ≡ a (m). Для возведения x в степень e (в кольце Z/(m)) есть эффективный

алгоритм (см. 1.8). Для решения же обратной задачи нахождения x ïî e

è a такого алгоритма предположительно нет. Поэтому f односторонняя функция.

Оказывается, при некоторых условиях, налагаемых на m è e, функцию f можно использовать как функцию с секретом. Найдем эти условия.

Пусть число e взаимно просто с ϕ(m), ãäå ϕ функция Эйлера, а d решение сравнения de ≡ 1 (ϕ(m)). Тогда de = 1 + k · ϕ(m), ãäå k Z,

1 6 d < ϕ(m). Òàê êàê D (e, ϕ(m)) = 1, то согласно теореме 3.11 существует единственный класс решений d mod ϕ(m).

Авторы шифра RSA предложили выбирать число m в виде произведе ния двух простых множителей p è q, примерно одинаковых по значению. Тогда ϕ(m) = ϕ(pq) = ϕ(p) · ϕ(q) = (p − 1)(q − 1) и условия взаимной простоты e ñ m сводятся к условиям взаимной простоты e ñ p − 1 è ñ q − 1.

Покажем, что число d может служить секретом.

Теорема 3.14. x < m xed ≡ x (mod m).

Доказательство. В силу выбора чисел d, e è m

de = 1 + k · ϕ(m) = 1 + k(p − 1)(q − 1)

при некоторoм k. Åñëè x 6 ≡0 (mod p), то по следствию 3.6 имеем:

 

xed ≡ x

xp−1

 

k(q−1)

≡ x · 1k(q−1) ≡ x

(mod p).

Åñëè

x ≡0 (mod p)

, òî

 

 

x

ed

≡x (mod p)

, очевидно, выполняется.

 

 

сравнение

Таким образом,

0 6 x < m xed ≡ x (mod p).

 

 

37

Аналогично получаем

0 6 x < m xed ≡ x (mod q).

Применяя следствие 3.7, получаем требуемое. Итак, лицо, заинтересованное в организации шифрованной переписки

ñпомощью шифра RSA, выбирает 2 достаточно больших простых числa p è q и перемножает их: m = pq. Затем выбирается число e, взаимно простое

ñp − 1 è ñ q − 1; вычисляется ϕ(m) è d. Числа m è e публикуются, а

число d держится в секрете. Теперь любой может отправить шифрованное

сообщение лицу, опубликовавшему m è e, расшифровать которое сможет только последний.

Пример 3.4. Для иллюстрации своего метода авторы RSA зашиф ровали фразу The magic words are squeeamish ossifrage , предварительно

заменив ее символы наборами из двух десятичных цифр: 00 пробел, 01a, 02 b, . . . , 26 z.

При этом m было равно числу . . . , которое получилось перемножени

ем простых чисел, записываемых соответственно 64 и 65 десятичными знаками.

Число e = 9007.

Это сообщение f(x) = ... ждало своей расшифровки 17 лет.

Для дешифровки сообщения пришлось искать разложение на мно жители 129-значного десятичного числа. Это было непросто, поскольку для разложения числа на множители до сих пор не найдено эффективно го алгоритма. Все известные алгоритмы, в том числе и использованный в решении метод квадратичного решета, основаны на методе полного пе ребора.

Интересно, что нахождение этого разложения стало, по-видимому, первым серьезным сетевым проектом. В работе, возглавляемой четырь мя авторами проекта и продолжавшейся 220 дней, участвовало 660 че ловек и 1600 компьютеров, объединенных сетью Интернет.

3.5.Другие примеры использования RSA

1. Электронная подпись.

Электронная подпись существенно отличается от привычной. Ее смысл так зашифровать передаваемое сообщение, чтобы расшифровать его можно было только с помощью открытой части кода, принадлежа щей лицу, поставившему подпись . Таким образом, проверяется принад лежность письма предполагаемому автору. Как следует из теоремы 3.14,

38

операции зашифровки и расшифровки различаются только показателем степени и, следовательно, коммутируют:

x = (xe)d mod m = xed mod m = xde mod m = xd e

mod m = x.

На этом свойстве и основан прием, называемый электронной подпи сью. Отправитель кодирует сообщение x своим закрытым ключoм d:

y = xd mod m и посылает адресату пару {x, y}, т. е. подписанное сообще ние. Адресат декодирует подпись сообщения с помощью открытой части кода e è m, т. е. вычисляет x¯ = ye mod m. Åñëè x¯ = x, то сообщение пра

вильное, если же x¯ 6= x, то сообщение было искажено при передаче или фальсифицировано.

2. Электронные деньги.

Электронные деньги также сильно отличаются от обыкновенных. Электронные купюры может печатать любой человек, но действитель ными они становятся только после электронной подписи банка, а их дей ствие прекращается тем, что банк заносит их в список использованных (аналог сжиганию бумажных купюр). Система электронных платежей должна обеспечить безопасность банка (от подделки купюр) и безопасность абонентов банка (от прослеживания банком перемещения электронных ку пюр от покупателя к продавцу).

Рассмотрим простейшую операцию покупки с помощью электронных денег, в которой участвуют продавец, банк и покупатель.

А. Покупатель:

выбирает число x < m ( номер купюры единичного достоинства, та ких купюр в предложенной схеме придется выписывать много);

вычисляет f(x), ãäå f односторонняя функция, объявленная банком, с открытой частью шифра m è e;

выбирает затемняющий множитель r (чтобы банк не узнал о номере созданной купюры);

посылает в банк число y = f(x) re, ставя на него для идентификации свою электронную подпись.

Â.Áàíê:

идентифицирует клиента по электронной подписи, проверяет счет и снимает с него денежную единицу;

подписывает затемненную купюру: z = yd;

отсылает подписанную купюру покупателю.

39