Professional Documents
Culture Documents
Matem Osn Kryptolohii CH 1
Matem Osn Kryptolohii CH 1
КУРС ЛЕКЦІЙ
ЧАСТИНА І. ЕЛЕМЕНТИ ТЕОРІЇ ЧИСЕЛ
Київ
КПІ ім. Ігоря Сікорського
2023
Математичні основи криптології. Курс лекцій. Частина І. Елементи теорії чисел.
[Електронний ресурс]: навч. посіб. для студ. спец. 125 «Кібербезпека» та 113
«Прикладна математика» / КПІ ім. Ігоря Сікорського; уклад.: Л.О. Завадська. –
Електронні текстові дані (1 файл: 172 Кбайт). – Київ: КПІ ім. Ігоря Сікорського, 2023.
– 32 с.
Відповідальний
редактор: Литвинова Тетяна Василівна, канд. техн. наук, доц.
2
ЗМІСТ
Вступ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 4
3
ВСТУП
4
1. КОНГРУЕНЦІЇ ТА ЇХ ВЛАСТИВОСТІ.
РОЗШИРЕНИЙАЛГОРИТМ ЕВКЛІДА
де k , t , 0 ≤ r <m – деякі цілі числа. Так, у наведених прикладах 23= 2·10+3, 13=
1·10+3; 15=5·3+0, 0=1·0+0; –2= (–1)·5+3, 3=0·5+3.
З (1.1) також випливає, щоa ≡ b mod m тоді і тільки тоді, коли a−b
ділиться наm. Цей факт позначають наступним чином: m│ ( a−b ) (т є дільником а
– b).
При заданому модулі m усі цілі числа розбиваються на класи чисел, які
дають однакові лишки від ділення на m. Наприклад, при m=2 всі цілі числа
робиваються на 2 класи: парні числа (дають при діленні на 2 лишок 0) і непарні
(дають при діленні на 2 лишок 1). При m=3 маємо 3 класи чисел: ті, що діляться
на 3 (тобто дають в остачі 0 при діленні на 3, позначимо цей клас як [ 0 ] , ті, що
дають лишок 1(позначимо цей клас як [1]) і ті, що дають лишок 2 (позначимо
цей клас як [2]). Для довільного m маємо m класів лишків: [0], [1],…, [m−1].
Класи лишків не перетинаються, а їх об’єднання дає всю множину цілих чисел
Z .Коли ми додаємо, віднімаємо, множимо, робимо будь-які операції над
числами за модулем m, то ми насправді працюємо з класами чисел за модулем
т (числа, що належать одному класу лишків ми не розрізняємо). Наприклад,
запис 2+3≡0 mod 5 означає, що сума будь-якого числа з класу [2] і будь-якого
числа з класу [3] за mod 5 потрапить у клас 0 mod 5. Читач може впевнитися в
цьому, розглянувши відповідні приклади.
Властивості конгруенцій
5
Нехай a ≡ b mod m m, c ≡d mod m Тоді:
5) Якщо а=а1d, b=b1d, m=m1d, d ∈ Z , то а1≡b1 mod т1, тобто всі частини
конгруенції, включно з модулем, можна ділити на будь-який спільний
дільник чисел а, b, т .
6
результати додавати (множити) за mod т; при піднесенні числа до степеня за
mod т брати основу за модулем і лишок підносити до степеня, після чого
результат брати за модулем. Формулою це можна записати таким чином: нехай
Але а-1 mod т не завжди існує. Так, перебравши всі лишки від ділення на
6, ви не знайдете такого лишка, щоб при множенні його на 2 вийшла 1за mod 6,
отже, 2-1mod 6 не існує. Дійсно, якби існував лишок х =2-1 mod 6, то мала б
виконуватись рівність 2х = 6k + 1 для деякого k∈Z, звідки 2х – 6k =1, що
неможливо, бо ліва частина останньої рівності ділиться на 2, а права – ні.
Аналогічно можна довести загальне
7
Твердження 1.1
а-1 mod т існує тоді і тільки тоді, коли числа а і т взаємно прості: (а,т)=1.
m=q1·a+r1;
a=q2·r1 + r2;
r1=q3·r2 + r3;
…………….. (1.2)
r n−3 =qn−1·r n−2 +r n−1;
r n−2=qn ·r n−1+ r n;
r n−1=qn·r n .
і підставляючи в (1.3) замість r n−1 його вираз черезr n−2 таr n−3 , отриманий з
попередньої рівності в (1.2), і так продовжуючи аж до першої рівності,
отримаємо вираз для d через а і т виду:
d=um+ va, (1.4)
1=um+ va . (1.5)
8
1=va mod m, (1.6)
тому що um=0 mod m .
З (1.6) випливає, що коефіцієнт v є оберненим до a за mod т:
−1
v=a mod m .
Приклад 1.1
Зауважимо, що–523 = 1089 – 523 = 566 mod1089, отже, 152-1 = 566 mod1089.
Обчисливши добуток 152∙566 =86032 і взявши це число за модулем 1089,
отримуємо 1, що підтверджує вірність результату. ( Зручно превірку робити
таким чином: перевірити, що 86032 – 1=86031 дорівнює 0 за модулем 1089,
тобто ділиться націло на 1089.)
Алгоритм знаходження a-1 mod m можна представити у більш зручному
виді. А саме, нехай при застосуванні алгоритму Евкліда отримано ланцюжок
рівностей(1.2). Тоді a-1modm= pn , де pi=−qi pi−1 + p i−2 , і=1,..., n ; p−1 =0 , p 0=1 .
Обчислення pn зручно здійснювати за допомогою таблички:
−q 1 −q 2 ... −q n
0 1 p1 p2 ... pn
–7 –6 –12
0 1 –7 43 –523
9
Як бачимо, відповідь співпадає з отриманою раніше.
8) Назвіть всі елементи Z10. Скільки елементів у цій множині класів лишків?
Який клас лишків у Z10 є оберненим за додаванням до 1 (тобто –1 )?
А що є –5 у Z10? Які елементи мають обернений за множенням у Z10?
Задачі
1) Довести третю властивість конгруенцій.
10
Степінь конгруенції. Розв’язання лінійних конгруенцій
Розглянемо конгруенцію виду:
an хn + an-1хn-1+ an-2хn-2 … + a0 = 0 modm, (2.1)
а х =b mod m . (2.2)
17х=3mod 23.
Використовуємо табличку:
11
–1 –2 –1
0 1 –1 3 –4
а1 х=b1modm1 (2.4)
Приклад 2.2.
12
(20,52) = 4, відповідно рівняння має 4 корені. Скорочуємо його:
5х = 4 mod 13.
Функція Ойлера
Означення 2.2. Функція Ойлераφ визначена на множині натуральних
чисел. φ ( 1 )=1; приm>1 φ ( m )дорівнює кількості натуральних чисел, менших за m і
взаємно простих зm.
Наприклад, φ (5) = 4 (всі числа від 1 до 4 включно є взаємно простими з 5), φ (6)
= 2 (взаємно простими з 6 у проміжку від 1 до 5 є числа 1 і 5). У теорії чисел, а
також у деяких інших розділах математики, наприклад, теорії скінченних
полів, функція Ойлера грає значну роль. На практиці потрібно обчислювати
функцію Ойлера від великих чисел. Для цього існує нескладна формула.
Зрозуміло, що для простого числа р φ(р) = р–1. Розглянемо φ(р2), де р –
просте число. Серед цілих чисел від 1 до р2 кожне р-те число ділиться на р (це
числа р, 2р,3р, ... , р·р= р2 ), всього їх р2/р= р. Решта цілих чисел у цьому
проміжку взаємно прості з р. Отже, φ(р2) = р2–р. Аналогічно
φ ( mn )=φ ( m ) φ ( n ).
13
Будь-яке натуральне число т можна розкласти на прості дільники, тобто
зобразити у виді
m= pk1 …, pkn , 1
(2.7)
n
де p1, p2,..., pn– різні прості дільники т. Використовуючи розклад (2.7), а також
мультиплікативність функції Ойлера, маємо формулу для обчислення φ(т) для
будь-якого натурального числа т, а саме: якщо (2.7) – розклад т на прості
дільники, то
φ (m) = ( pk1 − p1k −1 ¿( pk2 − p2k −1 ) ... ( pkn − p kn −1).
1 1 2 2 n n
(2.8)
Винісши з кожної дужки правої частини (2.8) pki , і=1,...,п, отримуємо інший вид
i
1 1 1
φ ( m )= p 1 …, pn (1– )(1– p2) ... (1– pn ) =
k1 kn
p1
1 1 1
= т (1– p 1 )(1– p2) ... (1– p n ). (2.9)
1 1 1 1 2 4
φ (360)= 360 (1– )(1– )(1– ) = 360· · · = 96.
2 3 5 2 3 5
a
p−1
=1 mod p. (2.10)
14
Зауваження 2.1. Теорему можна сформулювати і для будь-яких цілихчисел а,
тобто і для тих, які діляться на р включно. Помноживши ліву і праву частини
(2.10) на а, маємо:
a =a mod p.
p
Приклад 2.4.
Теорема Ойлера
15
Приклад 2.5.
х = а1 mod т1;
х = а2mod т2;
...........
х = апmod тп. (2.11)
16
Зауваження 2.4. Єдиність розв’язку з точністю до модуля М означає,
що на відрізку від 0 доМ розв’язок x єдиний; решта розв’язків мають вид
x +k М, k∈Z, тобто конгруентні x заmod М.
Доведення.
Спочатку доведемо єдиність. Нехай є два розв’язки системи (2.11): х1 і
х2. Тоді х1 – х2 = 0mod ті, 1≤ і ≤ n, тому що обидва розв’язки задовольняють
кожному з рівнянь системи. А це означає, що ті│(х1 – х2) для всіх1≤ і≤ n.
Враховуючи той факт, що модулі попарно взаємно прості, та сьому
властивість конгруенцій, бачимо, що х1 – х2 ділиться на добуток усіх
модулів, а це й означає, що х1 = х2 mod М.
Тепер знайдемо сам розв’язок, довівши тим самим його існування.
Уведемо позначення: Мі =М/ті (тобто Мі – це добуток усіх модулів, окрім
ті); Ni=Мі-1 mod ті (подумайте, чому такий обернений існує). Тоді розв’язок
системи (2.11) знаходиться як
х = а1М1N1 + а2М2N2 + ... + ап Мп Nпmod М.
Приклад 2.6.
17
А уяких випадках має розв’язки і скільки саме?
Задачі
1) Розв’язати рівняння:
а) 15х = 7 mod 81; б) 21х = 18 mod 33, в) 9х = 6 mod 13.
2) Обчислити φ(14553).
8) Розв’язати cистему:
x= 2 mod 5;
x= 8 mod 13;
x= 2 mod 9;
x= 5 mod 7.
18
3. КВАДРАТИЧНІ ЛИШКИ ТА НЕЛИШКИ. СИМВОЛИ
ЛЕЖАНДРА ТА ЯКОБІ, ЇХ ВЛАСТИВОСТІ
Теорема 3.1.
p−1
Нехай р – просте число, р>2, аZ. Тодіa 2
=1mod p якщо а – квадратичний
p−1
лишок, іa 2
=−1 mod p , якщо а – квадратичний нелишок за модулем р. Серед
ненульових елементів Zр рівно (р-1)/2 є квадратичними лишками і (р -1)/2 –
квадратичними нелишками замодулем p.
Доведення.
Нехай а – квадратичний лишок за модулем p, тоді (a,р) =1 і за малою
теоремою Ферма а(р-1) = 1 mod p. Так як р –1 – парне, то
( −1 )(a )= 0
p−1 p−1
a p−1−1 ¿ 1 a 2 2
+1 mod p. (3.1)
p−1
a 2
=1mod p , (3.2)
або
p−1
a 2
=−1 mod p . ¿3)
19
конгруенція степеня п за простим модулем має не більше, ніж п розв’язків.
(3.2) і (3.3) можна розглядати як конгруенції степеня (р-1)/2 з невідомим а.
Тому існує не більше за (р-1)/2 таких aÎZp, що виконується (3.2) і не більше за
(р-1)/2 таких aÎZp, що виконується (3.3). А так як для усіх р-1ненульових
лишків за модулем р виконується мала теорема Ферма, то рівно для половини з
них виконується (3.2), а для іншої половини виконується (3.3).
Якщо а – квадратичний лишок, то a=b2 mod р для деякого bÎZ, і (b, р) =1, тож
p−1
a 2 =b p−1=1 mod p за малою теоремою Ферма. Отже, для квадратичних нелишків
p−1
a 2
=−1 mod p .
Таким чином, серед ненульових елементів Zр рівно половина –
квадратичні лишки і половина – квадратичні нелишки. Теорма довдена.
Символ Лежандра
Теорема 3.1 Надає критерій розпізнавання квадратичних лишків. Проте
існує для цього більш зручний інструмент, що спирається на теорему 3.1 і
називається символом Лежандра.
3 a a a
( ) ( )( )
Означення 3.2. Символ Лежандра 5 p p ¿ p ¿ « а по відношенню до
()
p−1
a
=a 2
mod p , a ÎZ. (3.4)
p
20
Властивості символа Лежандра
1. ( 1p )= 1;
( ) −1 p−1
2. p
= (−1) 2 ;
a b
3. Якщо а ≡b mod p, то p = p ( ) ( );
4. ( abp )=( ap )·( bp );
( )=( bp );
2
a b
5.
p
6. ( 2p )=¿;
7. Якщо p, q – прості, p ≠ q, то q =¿. ( p)
Властивості 1-5 легко вивести з (3.4), в той час як властивості 6-7 є
одним з найважливіших результатів теорії чисел і доводяться зовсім не так
просто. Зокрема, властивість 7 називається квадратичним законом взаємності
Гаусса.
Символ Якобі
Узагальненням символа Лежандра є символ Якобі.
п = pk1 1
p k2 … pks – розклад числа п на прості множники. Символом Якобі числа
2 s
a по
відношенню до п називається значення добутку
( )=( ) ( ) ( ) ,
k1 k2 ks
a a a a
…
n p1 p2 ps
21
Властивості символа Якобі
1. ( 1n )= 1;
2. ( −1n )=¿;
3.
a
()()
b
Якщо a b mod п, то n = n ;
6. ( 2n )=¿;
( ) ( mn );
m−1 n−1
m 2
·
2
7. Нехай т, n 1 – непарні, (т, п) = 1. Тоді: n =(−1)
Приклад 3.1.
Задачі
1) Чи є 18 квадратичним лишком за модулем 53?
( 312 )
3) Обчислити символ Лежандра 643 (число 643 –просте).
23
24
4. ЗДОБУВАННЯ КВАДРАТНИХ КОРЕНІВ ЗА ПРОСТИМ
МОДУЛЕМ ТА ЗА МОДУЛЕМ, ЩО Є ДОБУТКОМ ДВОХ
НЕРІВНИХ ПРОСТИХ ЧИСЕЛ
х 2 = а mod p, (4.1)
має. ( p )
−1
Якщо ( p )=
a
1, то а – квадратичний лишок і конгруенція (4.1) має два
Приклад 4.1.
25
( 233 )=¿(–1) ( 233 )= – ( 23 )= – (–1)
1∙11 (9-1)/8
=1. Отже,3–квадратичний лишок
2. p= 8k+5
p−1
Тоді a 2 = a 4 k+ 2= (a 2 k+1)2 = 1mod p, звідки
a = 1mod p
2 k+1
(4.4)
або
a 2 k+1= –1mod p. (4.5)
х = ±аk+1modp.
х = ± ak +1 b 2 k+1 mod p .
х =± ak +1 22 k +1 mod p.
Приклад 4.2.
26
x2= 10 mod 13; 13=8∙1+5 (k = 1)
( 1013 )=( 135 )∙( 132 )= (–1) ( 35 )∙( 132 )= (–1) ( 23 )∙( 132 )= – (–1¿
2∙6 1∙2 (13¿¿2−1)/8 ¿
=
3. p= 8k+1
р−1
(Ми ввели позначення: 2
– непарне натуральні числа,
= 4k =2s d , де s≥2, d
тобто винесли у показнику максимальний степінь двійки). Наша мета –
перетворити праву частину конгруенції (4.7) у таку, де б зліва а було в
непарному степені, а справа – одиниця. Тоді, помноживши, як і в попередніх
випадках, ліву і праву частини на а, ми б знайшли розв’язок.
Обчислюємо a 2 d mod p . В результаті можемо отримати як 1, так і
s−1
s−2
=– 1 mod p ,
s−1
a
2 d
(4.8)
b =– 1 mod p.
s
2d
(4. 9)
(4.10)
s−1 s
2 d 2 d
a b =1 mod p
27
і обчислюємо a 2 d b2 d mod p ¿ корінь з лівої частини (4.10)) і отрмуємо при
s−2 s −1
= 1mod p, (4.11)
t
d 2d
a b
= аmod p,
t
d+ 1 2
a b
Приклад 4.3.
x = 5 mod 41; (4.12)
2
28
41−1
3 2 =320 = – 1 mod 41. (4.13)
Таким чином,
510∙320 = 1mod 41;
обчислюємо:
55∙310= 53∙25∙(34)2∙9= 2∙25∙( – 1)2∙9= 81= – 1 mod 41,
29
їх розв’язки позначимо відповідно ± x p mod pта ± x q mod q.
Розв’язок рівняння (4.15) має задовольняти обом рівнянням (4.16), бо якщо
конгруенція виконується за деяким модулем n, то вона виконується і за будь-
яким модулем, що є дільником n. Таким чином, pозв’язок рівняння (4.15) має
задовольняти системі рівнянь
{ x=± x p mod p
x=± xq mod q
,
{ x=x mod p
1) x=x p mod q
q
{ x=−x mod p
{x=−x mod p
2) x=−x p mod q 3 ¿ x =x pmod q 4) x=−xp mod q
q q q
{ x=x mod p
Приклад 4.4.
x2 = 23 mod 91 (4.17)
( ) ( ) ( )( ) () ()
169−1
23 10 5 2 3 2 9−1
13
= 13
= 13 13
=( – 1 ¿2·6
5
(−1) 8
=
3
( – 1 ) =−(−1) 8 =¿ 1.
30
Отже, 23 є квадратичним лишком як за mod 7, так і за mod 13 і, внаслідок
тведження 4.1, є квадратичним лишком за mod 91. Таким чином, рівняння
(4.17) має 4 розв’язки. Знайдемо їх.
{x=7
x=4 mod 7
mod 13
= 46 mod 91;
і третю систему:
{x=–
x=4 mod 7
7 mod 13
31
2) Скільки розв’язків може мати конгруенція х 2 = а mod n (n = pq, де p, q
– прості числа, p, q>2, p≠ q)?
Задачі
1) Доведіть, що для простого р виду 8k + 5 двійка є квадратичним
нелишком за модулем р.
2) Розв’яжіть конгруенції:
х2 = 24 mod 47;
х2 = 24 mod 37;
х2 = 37 mod 53;
х2 = 18 mod 73;
х2 = 15 mod 119.
32
Список використаної літератури
33