Материал: Теорія чисел в криптографії

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

якого елементу зведеної системи за модулем m обернений елемент буде розв’язком конгруенції ax º 1(mod m) :

x º aϕ(m )−1 (mod m)

Позначимо обернений елемент через a−1 .

Отже для складеного модуля m обернений елемент існує тільки для його зведеної системи лишків і для будь якого елементу a з класу зведеної системи лишків дорівнює:

a−1 º aϕ(m )−1 (mod m)

Якщо модуль є просте число p , то зведена система лишків для нього співпадає з повною системою лишків.

Отже для будь якого елементу повної системи лишків за простим модулем p обернений елемент заданий та єдиний:

a−1 º a p−2 (mod p).

Висновки.

1. Повна система лишків за простим модулем p за операцією множення створює

абелеву групу.

2. Повна система лишків за простим модулем p з заданими на ній операціями

додавання і множення створює поле. Оскільки кількість елементів у повній системі лишків скінчена, то такі поля теж скінчені і носять назву полів Галуа.

Питання 4. Системи конгруенцій першого степеня з одним невідомим.

Розглянемо систему конгруенцій

a1 x º b1

(mod m1 ),

(a1 , m1 ) = 1,

 

a

x º b

(mod m ),

(a

, m ) = 1,

 

 

2

2

2

2

2

(1)

 

K K K K K K K

 

 

a

x º b (mod m ),

(a

, m ) = 1

 

 

k

k

k

k

k

 

з одним невідомим за різними модулями. Будемо вважати також, що m1 , m2 ,..., mk -

попарно прості: (mi , m j )= 1, i = 1, k; j = 1, k; i ¹ j .

Розвязок системи конгруенцій з одним невідомим є таке ціле число α , яке задовольняє усі конгруенції даної системи.

По-перше, спростимо дану систему. Оскільки (ai , mi ) = 1, i = 1, k , то для ai існує обернений елемент ai −1 : ai × ai −1 º 1(mod mi ) . Помноживши кожне рівняння системи на свій зворотній елемент, перейдемо до системи, еквівалентної даній:

x º c1 (mod m1 ),

 

2

2

),

x º c

(mod m

 

 

 

(2)

K K K K

 

x º c

(mod m ),

 

k

k

 

Отже, розв’язавши систему (1), ми тим самим знайдемо розв’язок системи (2). Відповідь про існування та структуру розв’ язку системи (2) дає

Китайська теорема про залишки:

41

 

Нехай дані k попарно простих чисел m1 , m2 ,..., mk та чисел c1, c2 ,..., ck , таких, що

0 £ ci £ mi

-1,

 

i =

 

. Тоді існує таке єдине ціле число α , у якого залишок від ділення на

1, k

mi становить ci (тобто a º ci (mod mi )).

 

 

 

 

 

 

 

 

 

 

 

 

Доведення.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Доводити будемо побудовою числа α . Позначимо через M НСК всіх модулів.

Оскільки вони попарно прості, то M = m1m2 ...mk . Далі побудуємо систему чисел

 

 

 

=

M

=

m1m2 ...mi ...mk

= m m

 

 

 

 

 

i =

 

 

 

 

 

 

 

M

i

...m

 

m

...m

,

1, k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mi

 

 

 

 

 

 

mi

 

1

 

2

 

 

i−1

i+1

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кожне M i

є взаємно простим з числом mi

, тому для нього існує обернений елемент

 

M

i

−1 º M

ϕ(mi )−1 mod(m )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

 

−1ci

 

 

 

 

 

 

 

 

 

 

 

Побудуємо число: a = M i M i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тоді розв’язком системи (2) буде клас лишків, що задовольняє конгруенції:

 

x º a(mod M )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Дійсно, підставимо α у першу конгруенцію системи (2):

 

 

 

 

M

1

M

1

−1c + M

2

M

−1c

2

+ ... + M

k

M

k

−1c

k

º c (mod m )

 

 

 

 

 

 

 

1

 

 

 

 

 

 

2

 

 

 

 

 

1

 

1

 

 

 

 

 

 

 

Всі доданки, починаючи з другого діляться на m1 , бо цей модуль присутній у M i , як

множник. Тому всі ці доданки конгруентні 0 за модулем m . Добуток M

M

−1

º 1(mod m ) за

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

1

1

побудовою,

(M1, m1 ) = 1 . Залишається тотожна конгруенція c1 º c1 (mod m1 ).

 

 

 

У другому рівнянні не конгруентним 0 за модулем m2

буде тільки доданок

M 2 M 2

−1c2 . Отже α є розв’язком для другої конгруенції і т. д.

 

 

 

 

 

Розв’язок підійде до кожної конгруенції в силу своєї структури.

 

 

 

 

Висновок: Розвязок системи (2) існує, і це є клас чисел

 

 

 

 

x = α + Mt,

 

t Z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приклад. Розв’язати систему конгруенцій.

x º 16(mod13);x º 128(mod 5)x º 82(mod 3)x º 55(mod 7)

Розвязання.

По-перше спростимо систему:

x º 3(mod13);

 

x º -2(mod 5)

x º 1(mod 3)

 

x º -1(mod

7)

 

M i : M1 = 5

× 3

× 7 = 105; M 2 = 13 × 3 × 7 = 273; M 3 = 13 × 5 × 7 = 455; M 4 = 13 × 5 × 3 = 195

Знайдемо обернені значення до M i ,

i = 1,2,3,4 :

105M1−1 º 1mod(13): 105 = 13 ×8 +1

273M 2

−1 º 1mod(5): 273 × 2 = 546 = 545 +1

105 º 1(mod13) M1−1 º 1(mod13)

M 2

−1 º 2 (mod 5)

42

455M 3

−1 º 1mod(3):

 

195M 4

−1 º 1mod(7): 195 × 6 = 1170 = 167 × 7 +1

455 × 2 = 910 = 909 +1 M 3

−1 º 2(mod 3)

M 4

−1 º 6 (mod 7) º -1(mod 7)

Будуємо розв’язок:

a = 105 ×1× 3 + 273 × 2 × (- 2)+ 455 × 2 ×1 +195 × (-1)× (-1) = 315 -1092 + 910 +195 = 328

Перевірка:

328 = 25 ×13 + 3; 328 = 65 × 5 + 3 = 66 × 5

- 2;

 

 

 

 

 

 

 

 

 

 

328 = 109 × 3 +1; 328 = 46 × 7 + 6 = 47 ×8

-1

 

 

 

 

 

 

 

 

 

 

Система розв’язана вірно.

 

 

 

 

 

 

 

 

 

 

 

Відповідь: розв’язком системи є клас лишків x = 328 + 13 × 5 × 3 × 7 × t

за модулем, що

дорівнює НСК 13, 5, 3, 7

 

 

 

 

 

 

 

 

 

 

 

Якщо у системі (1) для будь якої конгруенції ai x º bi (mod mi )

(ai , mi ) = d > 1, d | bi , то

 

 

a

i

 

b

 

 

 

m

скорочуючи конгруенцію на d , переходимо до конгруенції

 

x º

i

 

mod

 

i

і вже цю

 

 

 

 

 

 

 

 

d

d

 

d

 

 

конгруенцію підставляємо до системи. Якщо для нової системи збереглася попарна простота модулів, то вона має єдиний розв’язок, згідно з китайською теоремою про залишки. Але в цьому випадку i -та конгруенція має d розв’язків:

x º c + t

 

mi

(mod m ), t

 

=

0, (d -1), отже необхідно розглянути, відповідно, d систем, в

j d

 

i

i

j

 

 

кожній з яких на i му місці буде стояти відповідний розв’язок конгруенції.

Якщо модулі системи конгруенцій не є попарно простими, тобто (mi , m j )= d > 1 , то для розв’язання системи треба додатково досліджувати існування розв’язку. Якщо він є, то

 

 

 

 

 

 

m1m2 ...mk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

це буде розв’язок за модулем, рівним НСК модулів системи: x º a mod

(m , m ,..., m )

 

 

 

 

 

 

1 2

k

 

 

Розглянемо для прикладу систему з двох конгруенцій. Будемо вважати, що її

можна звести до вигляду:

 

 

 

 

 

 

 

 

 

 

x º c1

(mod m1 )

 

 

 

 

 

 

 

 

 

 

x º c2

(mod m2 )

 

 

 

 

 

 

 

 

 

 

Нехай (m1 , m2 ) = d > 1,

 

 

 

 

 

m1 = m1 × d

, m2 = m2 × d ,

(m1

, m2 ) = 1

 

 

 

 

 

Будемо розв’язувати систему методом підстановки. З першої конгруенції можна

записати:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x = c1 + m1dt .

 

 

 

 

 

 

 

 

 

 

Розв’язок повинен задовольняти і другу конгруенцію. Підставимо x у другу

 

 

конгруенцію:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c1 + m1dt º c2 (mod m2 d ),

m1dt º c2

- c1 (mod m2d )

 

 

 

 

 

 

 

 

Отже виникла умова:

 

 

 

 

 

 

 

 

 

Якщо d | c2 - c1 , то друга конгруенція розвязок має. В іншому випадку

 

ні.

Нехай умова виконується. Тоді розглядаємо конгруенцію m¢t º

c2 - c1

(mod m¢ ).

 

 

 

 

 

 

1

 

d

2

 

 

 

 

 

 

 

 

 

 

 

 

Розв’язком її буде конгруенція

t = c2 - c1 (m1¢)−1 (mod m¢2 ). d

Розв’язок можна подати так: t = c2 - c1 (m1¢)−1 + m2¢t1 . d

43

Підставимо значення t

 

у вираз для x :

 

= c + m(c c )(m)

+ m

 

t =

x = c + mdt = c + md

c2

c1

(m)

+ mt

 

m2

 

 

 

 

 

 

 

−1

 

 

 

−1

 

 

1

 

1

1

1

 

 

 

 

 

d

 

 

 

1

 

2 2

 

1 1 2 1 1

1

d

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= c + m(m)−1

(c

2

c ) +

m1m2

t

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

 

1

 

 

 

 

 

d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Позначимо c + m(m)−1

(c

2

c ) = x ,

m1m2

= M .

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

1

 

 

 

 

 

 

 

1

1

d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тоді розв’язок системи буде мати вигляд:

x x1 (mod M )

Висновки.

 

x c1

(mod m1 )

 

1.Система з двох рівнянь виду

x c2

(mod m2 ) в разі (m1 , m2 ) = d > 1

буде мати

розв’язок тільки за умови, що d | c2 c1 . В іншому разі система не сумісна. Якщо умова виконана і розв’язок є, він буде знайдений за модулем, який дорівнює НСК m1 та m2

2. Якщо система складається з k > 2 конгруенцій з модулями, що мають НСД>1, то перевірку необхідно проводити поступово. В разі, коли хоча б одна з отриманих конгруенцій в ході розв’язку немає розв’язку, то і вся система не сумісна. Якщо розв’язок є, то це буде конгруенція по НСК усіх модулів.

Питання 5 Конгруенції n-го степеня за простим модулем. Кількість коренів конгруенції n -го степеня за простим модулем

Розглянемо загальні теореми, які стосуються конгруенцій n-го степеня за простим модулем p . Припустимо, що задано конгруенцію

f (x) ≡ 0(mod p),

f (x) = a

xn + a xn−1

+ ... + a

n−1

x + a

n

,

(1)

 

 

 

0

1

 

 

 

 

 

 

 

де p - просте число і a0

не ділиться на p .

 

 

 

 

 

 

Теорема 1. Конгруенцію (1) завжди можна замінити на еквівалентну їй

 

f (x) ≡ 0(mod p), f (x) = xn + b xn−1 + ... + b

x + b

 

 

 

 

 

 

1

 

 

n−1

 

 

n

 

 

Справді,

через те що p

просте і a0

не ділиться на

p завжди існує єдине число,

обернене до a0 : a0 a0

−1 ≡ 1(mod p),

a0

−1 a0 p−2 (mod p) . Помноживши конгруенцію (1) на a0

−1 ,

отримаємо еквівалентну конгруенцію із старшим коефіцієнтом b0 ≡ 1(mod p)

Теорема 2. Якщо степінь конгруенції (1) не менший від модуля конгруенції, то вона еквівалентна деякій конгруенції степеня, не вище за p − 1 (за тим самим модулем). Тобто,

якщо у (1)

n ³ p , то

 

 

 

 

 

 

 

 

 

≡ 0(mod p)

a xn + a xn−1

+ ... + a

n−1

x + a

n

b x p−1

+ b x p− 2

+ ... + b

p− 2

x + b

p−1

0

1

 

 

0

1

 

 

 

Доведення.

 

 

 

 

 

 

 

 

 

 

Поділимо

f (x) на x p x . Частку від ділення позначимо черезQ(x) , залишок – через

R(x). Тоді на підставі алгоритму ділення з остачею дістанемо:

f (x) = (x p x)Q(x) + R(x)

 

 

 

де Q(x)

поліном, степеня n p ,

R(x) – поліном степеня,

не

більшого за p − 1 .

Коефіцієнти

Q(x) , R(x) – цілі числа.

За теоремою Ферма якщо

p

– просте число, то

x p x ≡ 0(mod p) для будь-якого цілого х. Отже, отримаємо еквівалентну конгруенцію:

f (x) R(x)(mod p)

Висновок: Конгруенції f (x) ≡ 0(mod p) та R(x) ≡ 0(mod p) мають однакові корені.

44

Частинні випадки:

1.

(x p x)| f (x) . Тоді R(x) ≡ 0(mod p) - тотожна, 0 ≡ 0(mod p), тобто вірна для будь

якого x .

R(x) bp−1 (mod p) - поліном нульового степеня. Якщо bp−1 не ділиться на p , то дана

2.

конгруенція не має розв’язків, бо вона зводиться до невірної конгруенції : bp−1 ≡ 0(mod p). Приклад. Знайти конгруенцію степені не вище 4, еквівалентну даній:

f (x) = x17 + 2x11 + 3x8 − 4x7 + 2x − 3 ≡ 0(mod 5)

Розв’язання: Поділимо f (x) на x5 x . Для полегшення ділення використаємо наслідок з малої теореми Ферма ( a p−1 ≡ 1(mod p), (a, p) = 1 ).

Наслідок з теореми Ферма:

Якщо (a, p) = 1, n m(mod p − 1) an am (mod p).

Дійсно, нехай n > m, n = m + q(p − 1), За теоремою Ферма a p−1 ≡ 1(mod p). Піднесемо цю конгруенцію до степені q : a( p−1)q ≡ 1(mod p). Помножимо отриману конгруенцію і конгруенцію am am (mod p), дістанемо:

a( p−1)q+m am (mod p) , або an am (mod p)

За допомогою цього слідства можна зменшити степені вихідного полінома, взявши замість даних степенів їх залишки за модулем 4:

17 ≡ 1(mod 4); 11 ≡ 3(mod 4); 8 ≡ 0(mod 4); 7 ≡ 3(mod 4)

Отримаємо:

R(x) = x1 + 2x3 + 3x0 − 4x3 + 2x − 3 ≡ 0(mod 5) , або − 2x3 + 3x ≡ 0 mod(5),

або, замінивши лишок -2 на лишок 3(mod5), отримаємо: 3x3 + 3x ≡ 0 mod(5), і остаточно:

x3 + x ≡ 0 mod(5)

Очевидні розв'язки останньої конгруенції x1 ≡ 2(mod 5), x2 ≡ 3(mod 5)

будуть також і

розв'язками вихідної конгруенції.

 

 

 

 

 

 

 

 

Теорема 3. Якщо α1

деякий розв'язок конгруенції n го степеня

f (x) ≡ 0(mod p),

то має місце тотожна конгруенція:

 

 

 

 

 

 

 

 

f (x) (x − α1 ) f1 (x)(mod p)

 

 

 

 

 

 

 

(2)

де f1 (x) — поліном

n − 1 -го

степеня. Старший коефіцієнт

полінома f1 (x) збігається з

старшим коефіцієнтом вихідного полінома

f (x) .

 

 

 

 

 

Доведення.

на x − α1

 

 

 

 

 

 

 

 

 

Поділимо f (x)

і частку позначимо через

f1 (x), остачу –

через R(x):

(x − α1 ) f1 (x) + R(x) ≡ 0(mod p).

 

 

 

 

 

 

 

 

За теоремою Безу R(x) = f (α1 ), але оскільки α1

розв'язок конгруенції, то

f (α1 ) ≡ 0(mod p) , отже справедливою буде конгруенція:

 

 

 

(x − α1 ) f1 (x) ≡ 0(mod p).

 

f (x) ділиться на

x − α1 за модулем

 

 

За таких умов кажуть,

що

p . Очевидно, що й

навпаки: якщо

f (x)

ділиться на

x − α1

з

нульовим

залишком за

модулем p (тобто

R(x) ≡ 0 mod(p) ),

то,

використовуючи

теорему

Безу,

можна

стверджувати, що

f (α1 ) = R(x) ≡ 0(mod p), звідки витікає, що α1

розв'язок конгруенції.

 

 

45