Chương 2 - Lý thuyết ma trận số | Đại học Sư phạm Hà Nội

Chương 2 - Lý thuyết ma trận số | Đại học Sư phạm Hà Nội với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng, ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống.

Trường:

Đại học Sư Phạm Hà Nội 2.1 K tài liệu

Thông tin:
19 trang 8 tháng trước

Bình luận

Vui lòng đăng nhập hoặc đăng ký để gửi bình luận.

Chương 2 - Lý thuyết ma trận số | Đại học Sư phạm Hà Nội

Chương 2 - Lý thuyết ma trận số | Đại học Sư phạm Hà Nội với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng, ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống.

38 19 lượt tải Tải xuống
CHƯƠNG 2
GIỚI THIỆU VỀ LÝ THUYẾT SỐ
Hầu hết các thuật toán mật khóa công khai được xây dựng dựa trên các khái niệm của thuyết
số. Trong chương này sẽ trình bày ngắn gọn những kiến thức cơ bản về thuyết số, công cụ hữu
ích để hiểu sâu một thuật toán mật mã nào đó.
1.1 Các số nguyên tố và các số nguyên tố cùng nhau
1.1.1 Các ước số
Nói rằng, (một số khác 0) là ước số của nếu = , với một giá trị nào đó, ở đây , , là cácb a a mb m a b m
số nguyên. Như vậy, ước số của , nếu như chia cho không còn lại số dư. Để kí hiệu ước sốb a a b b
của thường sử dụng cách viết . a b a
Có các quan hệ sau:
o Nếu 1, thì a = 1.a
o Nếu , thì = .b a a b a b
o Số bất kỳ khác 0 là ước số của 0.b
o Nếu , thì + ) đối với bất kì số nguyên , .b g b h b(mg nh m n
Để chứng minh khẳng định cuối cùng, cần chú ý như sau:
nếu thì có dạng = , đối với số nguyên nào đó, b g g g b * g
1
g
1
nếu thì có dạng = * , đối với giá trị nguyên nào đó,b h h h b h
1
h
1
Vì vậy: + = + = ( + )mg nh mbg
1
nbh
1
b * mg
1
nh
1
Cuối cùng, là ước số của + .b mg nh
Ví dụ 2.1: Các số 1, 2, 3, 4, 6, 8, 12 và 24 là các ước số của 24.
Ví dụ 2.2: = 7, = 14, = 63, = 3, = 2 b g h m n
714 và 7 63. Yêu cầu chứng minh rằng 7 (3 * 14 + 2 * 63).
Chúng ta có: ( 3 * 14 + 2 * 63 ) = 7(3 * 2 + 2 * 9)
Như vậy, rõ ràng rằng 7 7(3 * 2 + 2 * 9).
1.1.2 Các số nguyên tố
Một số nguyên > 1 được gọi là số nguyên tố, nếu chỉ có 1 và là ước số của nó. p p
Một số nguyên bất kỳ > 1 có thể phân tích thành các thừa số và được trình bày dưới dạng:a
,...
21
21
t
t
pppa
ở đây: < < … < là các số nguyên tố, còn các giá trị p
1
p
2
p
t
i
> 0.
Ví dụ 2.3
: 91 = 7 * 13; 11011 = 7 * 11 * 13.
2
Nếu hiệu tập hợp tất cả các số nguyên tố, thì đối với một số nguyên dương bất được viếtP
duy nhất dưới dạng:
,
P
a
p
pa
ở đây tất cả các 0a
p
1
Trong công thức này, biểu thứcvế phải sau dấu bằng, ký hiệu tích theo tất cả khả năng của các số
nguyên tố . Đối với mỗi giá trị cụ thể của thì giá trị lớn nhất của chỉ số sẽ bằng 0p a a
p
.
Ví dụ
2.4: 3600 = 2 * 3 * 5 .
4 2 2
Các giá trị của một số nguyên dương bất kỳ có thể liệt kê dưới một dạng đơn giản của tất cả các chỉ
số khác không theo công thức ở trên.
Ví dụ 2.5: Số nguyên 12 có thể trình bày như { = 2, = 1}.a
2
a
3
Số nguyên 18 có thể trình bày như { = 1, = 2}.a
2
a
3
Phép nhân hai số nguyên tương đương với phép cộng các giá trị các chỉ số phù hợp:
k k = m n *
p
= m n p
p
+
p
, đối với tất cả các .
Ví dụ 2.6: = 12 * 18 = 216,k
= 2 + 1 = 3, = 1 + 2 = 3,k
2
k
3
216 = 2 * 3
3 3
Bổ đề: Một số nguyên dương bất kì dạng chỉ có thể chia hết cho một số nguyên, khi số bị chia
p
k
bậc của số nguyên tố với chỉ số không vượt hơn , nghĩa là số với . Như vậy:p k p
j
j k
a b a b p
p
p
, đối với tất cả .
Ví dụ 2.7: a = 12 , b = 36 , 12 36, 12 = 2 * 3, 36 = 2 * 3
2 2 2
a b
2
= 2 =
2
,
a b
3
= 1 2 =
3
.
1.1.3 Các số nguyên tố cùng nhau
Chúng ta sẽ sử dụng ký hiệu gcd( , ) để chỉ ước số chung lớn nhất (UCLN) của số . Nói rằng,a b a b
một số nguyên dương là UCLN của , nếu:c a b
o c là ước số của a b .
o Ước số bất kỳ của đều là ước số của .a b c
Có thể định nghĩa tương đương như sau:
gcd( , ) = max [ , khi ]. a b k ka kb
Bởi vì, đòi hỏi rằng UCLN là một số dương, chúng ta gcd( , ) = gcd( , ) = gcd(– , ) =a b a b a b
gcd(– |).a, –b ). Nói chung, gcd(a, b) = gcd(|a|, |b
Ví dụ 2.8: gcd(60, 24 ) = gcd(60, –24 ) = 12.
Bởi vì tất cả các số nguyên khác không đều là ước số của số 0, chúng ta luôn luôn có: gcd( , 0 ) = | |.a a
Dễ dàng xác định được UCLN của hai số nguyên dương, nếu các số này được trình bày dưới dạng
tích của các thừa số nguyên tố.
Ví dụ 2.9:
300 = 2 * 3 * 5 ,
2 1 2
18 = 2 * 3 .
1 2
gcd(18, 300) = 2 3 5 = 6.
1
1
0
Trong trường hợp chung:
k = gcd( , ) = min ( , ), đối với tất cả các .a b k
p
a
p
b
p
p
2
Việc xác định các thừa số nguyên tố của các số lớn là bài toán không đơn giản, bởi vì rằng các trình
bày ở trên không cho một khả năng thực tiễn để tính UCLN của hai số.
Các số nguyên nguyên tố cùng nhau, nếu chúng không có ước số nguyên tố chung, hay ướca b
số chung duy nhất của chúng là 1. Nói một cách khác hai số nguyên tố cùng nhau nếu gcd( , )a b a b
= 1.
Ví dụ 2.10: Số 8 và số 15 là các số nguyên tố cùng nhau, bởi vì ước số của 8 là 1, 2, 4 và 8, còn các
ước số của 15 là 1, 3, 5 và 15. Như vậy, 1 là ước số chung duy nhất của hai số này.
1.1.4 Số học trong lớp số dư
Đối với bất kỳ một số nguyên dương và một số nguyên bất kỳ, khi chia cho , ta nhận được mộtn a a n
số nguyên nào đó và số dư , phù hợp với quan hệ sau:q r
a qn n q a n = + r, 0 r < , = / .
ở đây ký hiệu số nguyên lớn nhất, không lớn hơn . x x
Đối với một số dương một số nguyên dương , luôn luôn thể tìm được , phù hợp vớia n q r
quan hệ tính toán trên.
Ví dụ 2.11: = 11; = 7; 11 = 1 * 7 + 4; = 4.a n r
Nếu là một số nguyên, còn là một số nguyên dương, thì mod , được xác định như phần dư củaa n a n
phép chia cho . Như vậy, đối với một số nguyên bất kỳ có thể viết : a n a
a a n n a n = / * + ( mod )
Ví dụ 2.12: 11 mod 7 = 4 ; –11 mod 7 = 3.
1.2 Lý thuyết về đồng dư
Định nghĩa 2.1 (Đồng dư)
Cho
Zba ,
,
Nn
. Ta nói đồng dư với theo modulo , khi chia cho có cùng số dư, vàa b n a b n
được viết dưới dạng sau:
nba mod
.
Chứng minh: Giả sử chia a b cho n thu được các thương nguyên và phần dư. Các phần dư nằm
giữa 0 1, nghĩa là n
11
rnqa
22
rnqb
. Trong đó
10
2
nr
. Khi đó có
thể dễ dàng thấy rằng
nba mod
khi chỉ khi
21
rr
. Như vậy:
khi chỉ khi
nbna modmod
.
Chúng ta đi tìm hiểu một số tính chất quan trọng của đồng dư.
Tính chất 2.1: Nếu
nba mod
11
nba mod
22
thì
nbbaa mod
2121
Chứng minh: Từ giả thuyết ta
222
bnta
, suy ra
nttbbaa )(
212121
,
điều này có nghĩa là
nbbaa mod
2121
.
Tính chất 2.2: Nếu
nba mod
11
nba mod
22
thì
nbbaa mod**
2121
Chứng minh: Từ giả thuyết ta
111
bnta
222
bnta
, suy ra
ntnttbtbbbaa )(**
2112212121
, điều này có nghĩa là
nbbaa mod**
2121
3
Tính chất 2.3: Nếu như
dbbdaanband
11
,,mod,1),gcd(
, thì
nba mod
11
Chứng minh: Từ giả thuyết ta
ndba |)(
11
,
, nên suy ra
nba |)(
11
, hay
nba mod
11
.
Ví dụ 2.13
: Chứng minh rằng 37 chia hết cho 7.
n+2
+16 +23
n+1 n
Giải: ràng chúng ta thấy rằng
7mod237
,
7mod216
7mod723
, từ tính chất 2.2 có:
7mod237
22
nn
,
7mod216
11
nn
,
7mod723
nn
.
Từ tính chất 2.1 có: 37
n+2
+16 +23
n+1 n
7mod2.7
n
, và từ tính chất 2.3 suy ra điều phải chứng minh.
1.3 Các số nguyên modulo n
Các số nguyên modulo (ký hiệu n
n
Z
) là tập hợp các số nguyên
1...,,1,0 n
bao gồm 2 phép toán
cộng và nhân. Việc cộng và nhân trong
n
Z
được thực hiện giống như cộng và nhân các số nguyên, ngoại
trừ một điểm là các kết quả sẽ được rút gọn theo modulo .n
Ví dụ 2.14: Tính
13*11
trong
16
Z
. Tương tự như với các số nguyên ta
14313*11
. Để rút gọn
143 theo modulo 16, ta thực hiện phép chia bình thường:
15168143
, bởi vậy
1516mod143
. Do
đó
151311
trong
16
Z
.
Các định nghĩa trên phép cộng và phép nhân trong
n
Z
thoả mãn hầu hết các quy tắc quen thuộc trong
số học. Sau đây ta sẽ liệt kê mà không chứng minh các tính chất này:
o Phép cộng là đóng, tức với bất kì
nn
ZbaZba ,,
.
o Phép cộng là giao hoán, tức là với bất kì
n
Zba ,
thì: + = + .a b b a
o Phép cộng là kết hợp, tức với bất kì
n
Zcba ,,
:
( ).a + b) + = c a + (b + c
o 0 là phần tử đơn vị của phép cộng, có nghĩa là với bất kì
n
Za
:
a a a + 0 = 0 + = .
o Phần tử nghịch đảo của phép cộng của một phần tử bất
n
Za
, nghĩa là + ( ) =m a a m a
(ma) + a = 0 với bất kì
n
Za
.
o Phép nhân là đóng, tức với bất kì
n
Zba ,
,
n
Zba *
.
o Phép nhân là giao hoán, nghĩa là với bất kì
n
Zba ,
,
.
o Phép nhân là kết hợp, nghĩa là với
n
Zcba ,,
,
)*(**)*( cbacba
.
o 1 là phần tử đơn vị của phép nhân, tức là với bất kì
n
Za
:
aaa *11*
.
o Phép nhân tính chất phân phối đối với phép cộng, tức đối với
n
Zcba ,,
,
cbcacba ***)(
cabacba **)(*
.
1.4 Hàm Euler, định lý Euler và định lý Fermat
Định nghĩa 2.2 (Hàm Euler)
4
Cho số nguyên dương, đặtn
)(n
là số các phần tử của tập hợp, mà tập này là các số nguyên trong
khoảng
n,1
và nguyên tố cùng nhau với , thì n
)(n
gọi là hàm Euler.
Ta công nhận một số tính chất quan trọng của hàm Euler:
1.
1)1(
2. Nếu là số nguyên tố thì p
3. Nếu như là hai số nguyên tố cùng nhau thì p q
)(*)()( qppq
4.
)1()(
1
ppp
ss
5. Nếu như
k
e
k
ee
pppn ...
21
21
, ở đây
1
p
,
2
p
, …,
k
p
là số nguyên tố, thì
k
ppp
nn
1
1...
1
1
1
1)(
21
Trên bảng 2.1 trình bày 30 giá trị đầu tiên của
)(n
. Giá trị
(1) là không xác định, nhưng coi rằng nó
bằng 1.
Bảng 2.1: Một số giá trị của hàm Euler
)(n
n
(n) n
(n) n
(n)
1 1 11 10 21 12
2 1 12 4 22 10
3 2 13 12 23 22
4 2 14 6 24 8
5 4 15 8 25 20
6 2 16 8 26 12
7 6 17 16 27 18
8 4 18 6 28 12
9 6 19 18 29 28
10 4 20 8 30 8
Định lý Euler: Cho
1),gcd(,1 nan
, và
)(n
là hàm Euler. Khi đó ta có:
na
n
mod1
)(
Ví dụ 2.15: a = 3, = 10, n
(10) = 4, 3 = 81 1 mod 10,
4
= 2, = 11, a n
(11) = 10, 2 = 1024 1 mod 11.
10
Chứng minh: Giả sử
)(1
...,,
n
xx
– là các số tự nhiên khác nhau, nhỏ hơn nguyên tố cùng nhaun
với .n
5
Hãy xét tất cả các khả năng của tích
ax
i
, với
)(,1 ni
. Bởi nguyên tố cùng nhau với a n
i
x
nguyên tố cùng nhau với , nên tích n
ax
i
cũng nguyên tố cùng nhau với , do đó có n
nxax
ji
mod
.
Chú ý rằng các phần dư của phép chia
ax
i
cho là khác nhau. Nếu điều này không đúng, có nghĩa làn
tồn tại
21
ii
, sao cho
naxax
ii
mod
2
1
Cho nên
naxx
ii
mod0)(
21
. Bởi nguyên tố cùng nhau với , nên biểu thức cuối cùng tươnga n
đương với
nxx
ii
mod0
21
Điều này là mâu thuẫn, bởi các số
)(1
...,,
n
xx
là các cặp khác nhau theo modulo . n
Hãy nhân tất cả đẳng thức
nxax
ji
mod
, thì thu được:
nxxaxx
n
n
n
mod......
)(1
)(
)(1
Hay
naxx
n
n
mod0)1(...
)(
)(1
Bởi vì số
nxx
n
mod...
)(1
nguyên tố cùng nhau với nên đẳng thức cuối cùng tương đương với n
na
n
mod01
)(
hay
na
n
mod1
)(
Ta có một công thức quan trọng sau: a
( ) + 1n
mod . a n
Định lý Fermat nhỏ: Cho là số nguyên tố, là số nguyên dương không chia hết cho . Khi đó ta cóp a p
pa
p
mod1
1
.
Chứng minh: Ta có
1)( pp
, áp dụng định lý Euler ta có điều phải chứng minh.
Từ định lý Fermat chúng ta có các hệ quả quan trọng sau:
1. Cho
Za
, là số nguyên tố, thì ta có: p
paa
p
mod
2. Cho
Zba ,
, là số nguyên tố p
pbaba
nnn
mod)(
Ví dụ 2.16
: Chứng mình rằng 1
18
+2
18
+3
18
+4
18
+5
18 18
+6 –1 mod 7
Giải: Các số 1, 2, 3, 4, 5, 6 là số nguyên tố cùng nhau với 7. Nên theo định lý Fermat chúng ta có các
phương trình sau:
;
7mod12
6
;
7mod13
6
;
7mod14
6
;
7mod15
6
;
7mod16
6
Lấy bậc ba hai vế từng phương trình và cộng lại ta được:
1 +2 +3 +4 +5 +6
18 18 18 18 18 18
7mod17mod6
2.1 Thuật toán Euclide và thuật toán Euclide mở rộng
2.5.1 Thuật toán Euclide
Định lý Euclide: Cho
0,, bZba
, tồn tại duy nhất cặp giá trị ( , ) với q r
Zq
Nr
thỏa mãn:
rbqa
,
br 0
.
6
ở đây gọi là số dư. r
Có một số ký hiệu cho số dư như sau:
)(aRr
b
,
ar
mod
b
.
Một số tính chất đơn giản của về số dư:
1.
)()( aRaR
bb
, bởi vì
br
rbqa
br
rqba
0
))((
0
2.
ZiaRibaR
bb
),()(
, bởi vì
rbiqiba )(
.
Nếu như = 0 thì ta nói chia hết cho , ký hiệu là r a b
ba
.
Định lý 2.1: Đối với bất kỳ các số
Ziba ,,
:
),gcd(),gcd( bibaba
.
Chứng minh: Nếu như
da
db
, thì
dqbdqa
21
,
. Lúc này
)(
21
iqqdiba
diba )(
.
Có nghĩa là:
),gcd(),gcd( bibaba
. (*)
Tương tự giả sử rằng
diba )(
db
dqbdqiba
21
,
. Lúc này
)(
21
iqqda
da
.
Có nghĩa là:
),gcd(),gcd( bibaba
. (**)
Từ (*) và (**) chúng ta có đẳng thức gcd(a,b)=gcd(a+ib,b).
Định lý 2.2: Đối với bất kỳ
0,, bZba
, ta có:
))(,gcd(),gcd( aRbba
b
Chứng minh.
Bởi vì
)(aRbqa
b
,
)),(gcd(),gcd(),gcd( baRbqbaba
b
.
Từ định lý 2.2 ta có thuật toán Euclide. Đây là thuật toán giúp tìm UCLN của hai số nguyên dương a
0
với . a
1
a
0
> a
1
Thuật toán được miêu tả bằng dãy các phép chia như sau:
,
2110
aqaa
0 < a
2
< a
1
,
3221
aqaa
0 < a
3
< a
2
,
112
kkkk
aqaa
0 < a
k k-1
< |a |
0
1
kkk
qaa
Dựa vào định lý 2.1, nhận được gcd( , ) = gcd( , ) = … = gcd( , 0) = .a
0
a
1
a
1
a
2
a
k
a
k
Ví dụ 2.17 (Thuật toán Euclide) : Tìm gcd(814, 187).
Giải: Khai triển dãy phép tính theo thuật toán Euclide:
7
814 = 4 * 187 + 66
187 = 2 * 66 + 55
66 = 1 * 55 + 11
55 = 5 * 11 + 0
Vậy gcd(814, 187) = 11.
Thuật toán có thể viết như sau:
Vào: Hai số nguyên dương với > a b a b
Ra: UCLN của a b
(1) While # 0 dob
r a b a mod , b b r,
(2) Return (a).
2.5.2 Thuật toán Euclide mở rộng
Định nghĩa 2.3 (Phần tử nghịch đảo)
Cho
n
Za
. Phần tử nghịch đảo của phần tử a
n
Zb
sao cho
nabba mod1**
. hiệu
phần tử nghịch đảo của
a a
-1
.
Định lý 2.2: Cho số nguyên > 0 nguyên tố cùng nhau với , thì luôn tồn tại phần tử nghịch đảo củaa n
a n theo modulo .
Chứng minh: Hãy xét tập hợp
1...,,2,1 n
. Nhân từng phần tử của tập hợp với theo modulo , nhậna n
được tập hợp
)mod)1((...,),mod2(),mod( nannana
, tập này sẽ bao gồm các số 1, 2,…, 1, n
nghĩa đối với một số giá trị nào đó sẽ thỏa mãn điều kiện i
1mod nia
. Điều này dẫn đến một mâu
thuẫn nếu như tồn tại hai giá trị thỏa mãn điều kiện trên, nghĩa làh k
nkanha modmod
. Điều này
dẫn đến
nkh mod
, vì gcd = 1, suy ra . Vậy ta tìm được phần tử nghịch đảo của (a, n) h = k i a i
duy nhất.
Hệ quả 2.1: Nếu như số nguyên tố, thì bất kỳ số 0 < , luôn tồn tại phần tử nghịch đảop a, a < p
theo modulo . p
Chúng ta sẽ tìm hiểu về cách tìm phần tử nghịch đảo thông qua thuật toán Euclide mở rộng.
Từ dãy chia của thuật toán Euclide
,
2110
aqaa
0 < a
2
< a
1
,
3221
aqaa
0 < a
3
< a
2
,
112
kkkk
aqaa
0 < a < a
k k-1
Ta dễ dàng rút ra dãy sau:
112
kkkk
aqaa
2231
kkkk
aqaa
nên suy ra
)(
22312
kkkkkk
aqaqaa
, tương tự
như thế, chúng ta rút ra
2k
a
, đến cuối cùng chúng ta có được biểu thức dạng sau:
yaxaa
k 10
(2.1)
8
Nếu như
1),gcd(
10
aa
, chúng ta có là phần tử nghịch đảo của theo modulo .x a
0
a
1
Ví dụ 2.18 (Thuật toán Euclide mở rộng):
1. Tìm trong biểu thức (2.1) với x y a
0
= 814 và a
1
= 187.
Giải: Theo ví dụ 2.17 ta thu được dãy:
814 = 4 * 187 + 66
187 = 2 * 66 + 55
66 = 1 * 55 + 11
55 = 5 * 11 + 0
Suy ra: 11 = 66 – 1 * 55 = 66 – 1 * (187 – 2 * 66) = 3 * 66 – 1 * 187 = 3 * (814 – 4 * 187) –187 = 3 *
814 – 13 * 187. Vậy = 3 và = –13.x y
2. Tìm phần tử nghịch đảo của 17 theo modulo 74.
Giải: Theo ví dụ trên ta có được 3 * 74 – 13 * 17 = 1. Nên phần tử nghich đảo của 17 là –13,
nhưng chỉ lấy số dương, nên phần tử nghịch đảo của 17 là 74 – 13 = 61.
2.2 Giải phương trình đồng dư trong nhóm thương
n
Z
Có nhiều phương pháp giải phương trình đồng dư, nhưng chúng tôi muốn trình bày với bạn đọc một
phương pháp khá hay dựa vào định lý sau:
Định 2.3: Cho > 1, gcd( , ) = 1. Khi đó phương trình đồng n a n
nbax mod
nghiệm duy
nhất, và nghiệm đó là:
nbax
n
mod
1)(
Chứng minh: Theo định Euler, ta
na
n
mod1
)(
, suy ra
nbbaa
n
mod.
1)(
. Vậy nghiệm
.mod
1)(
nbax
n
Ví dụ 2.19: Giải phương trình 7x
3 mod 10.
Chúng ta tính như sau:
)10(
= 4; x
3 * 7 mod 10
4-1
1029 mod 10
9.
Thế nhưng cách này sẽ khó thực hiện nếu bậc của đủ lớn. Bởi vậy chúng ta xem cách sau. a
Chúng ta đã biết định lý về phần tử nghịch đảo, nếu như gcd( , ) = 1, thì luôn tồn tại phần tử nghịcha n
đảo . Nên từ phương trình
a
-1
nbax mod
, suy ra
.mod
1
nbax
Ví dụ 2.20: Giải phương trình
10mod37 x
.
Chúng ta thấy
310mod7
1
. Nên nghiệm của phương trình = 3 * 3 mod 10 = 9.x
Định lý 2.4: Cho >1, để phương trình n
nbax mod
có nghiệm thì điều kiện cần và đủ là gcd( , a n)|
b.
Chứng minh: Phương trình
nbax mod
có thể viết dưới dạng phương trình tuyến tính sau
ax kn b + = , (2.2),
k là số nguyên.
9
Ta chứng minh điều kiện cần. Giả sử hoàn thành điều kiện (2.2). Bời số gcd( , ) ước của vếa n
trái, nên nó cũng phải là ước của vế phải.
Chứng minh điều kiện đủ. Ứng dụng thuật toán Euclide đối với hai số , có thể tínha n
),gcd( nana
(2.3)
Bởi vì , ) là số nguyên, nên nhân hai vế (2.3) cho , ) và nhận được công thức (2.2),b a/gcd( n b a/gcd( n
và ở đây
n
na
b
x mod
),gcd(
là một nghiệm.
Dễ dàng kiểm tra phương trình đã có nghiệm dạng
n
na
ni
x mod
),gcd(
, = 0, 1, 2, .., , ) – 1.i gcd(a n
Tức là phương trình đã cho có gcd( , ) nghiệm khác nhau, nghiệm này nhỏ hơn .a n n
Ví dụ 2.21 :
1. Giải phương trình
10mod52 x
Vì gcd(2, 10) = 2, vì 2 không là ước của 5 nên phương trình trên vô nghiệm, nếu không dựa vào định
lý cũng dễ dàng thấy rằng 2 + 10 = 5 cũngnghiệm, vì vế trái là số chẳn, còn vế phải là số lẻ. Điềux y
này là không thể.
2. Giải phương trình
36mod186 x
. gcd(6, 36)|18. Nên phương trình này 6 nghiệm: 3, 9,
15, 21, 27 và 33.
2.3 Định lý phần dư Trung Hoa.
Định lý này nhằm giúp chúng ta giải hệ phương trình đồng dư thức, định lý phát biểu như sau:
Giả sử cho các số n
1
, n
2
, …, n
k
các số nguyên dương nguyên tố cùng nhau từng đôi một c
1
, c
2
,
, c
k
là các số nguyên khi đó hệ phương trình đồng dư:
11
mod ncx
22
mod ncx
kk
ncx mod
Có nghiệm duy nhất theo modulo và nghiệm đó là:n
k
i
iiii
nnNNcx
1
1
mod)mod(
(2.4)
ở đây
k
nnnn ...
21
i
i
n
M
N
.
Chứng minh:
Nếu ta chứng minh hệ trên tương đương với một phương trình sau:
nxx mod
0
ở đây
k
i
iiii
nNNcx
1
1
0
)mod(
thì coi như chúng ta đã chứng minh được định lý trên.
10
Ta chia hết cho , khi N
i
n
s
s
i. Điều này dẫn đến
)(mod)mod(
1
0
iiiii
ncnNNx
, từ đó
)(mod
0
ii
ncx
. Điều này có nghĩa hệ trên tương đương với hệ sau:
10
mod nxx
20
mod nxx
...
k
nxx mod
0
Điều này tương đương với một phương trình sau
nxx mod
0
. Mà ta đã biết phương trình này có
nghiệm duy nhất là
0
x
mod .n
Ví dụ 2.22: Giải hệ phương trình đồng dư sau:
7mod5x
11mod3x
13mod10x
Giải: Ta có = 7 * 11 * 13 1001; n = N
1
= 5 143; 11 91; 13 = 77n/ = N
2
= n/ = N
3
= n/
Ta đi tính phần tử nghịch đảo của theo modulo N
i
n
i
143
-1
mod 7 = 5; 91 mod 11 = 4 và 77 mod 13 = 12.
-1 -1
Áp dụng công thức (2.4) ta có được nghiệm của hệ phương trình là:
x = (5.143.5 + 3.91.4 + 10.77.12) mod 1001 = 894.
2.4 Bậc và căn nguyên thủy
Định nghĩa 2.4 (Bậc)
Cho gcd( , ) = 1. Bậc mod số nguyên dương nhỏ nhất a n a n
thỏa mãn phương trình đồng
thức:
na mod1
,
Kí hiệu bậc là Ord
n
(a).
Ví dụ 2.23: Tìm bậc của 2 mod 5
Giải
: 2 mod 5 = 2; 2 mod 5 = 4; 2 mod 5 = 3; 2 mod 5 = 1; vậy Ord (2) = 4.
1 2 3 4
5
Định nghĩa 2.5 (Căn nguyên thủy)
Nếu như bậc của modulo bằng giá trị của hàm Euler của . Thì gọi là căn nguyên thủy của .a n n a n
Ví dụ 2.24: Số 2 là căn nguyên thủy của 5. Vì Ord (2) =
5
)5(
4.
2.5 Thặng dư bậc hai
Thặng bậc hai đóng vai trò rất quan trọng trong thuyết số. dụ, thuật toán phân tích số
nguyên ra thừa số. Ngoài ra thặng bậc hai cũng ứng dụng lớn trong mật cũng như trong các giao
thức mã hóa.
Định nghĩa 2.6 (Thặng dư bậc hai)
Cho n số nguyên và
1n
. Số từ nhóm
*
n
Z
gọi là thặng dư bậc hai theo modulo , nếu trong nhómn
*
n
Z
tồn tại số , thỏa mãn điều kiện x
nax mod
2
, trường hợp ngược lại gọi không thặng dư bậc hai.
11
Tập hợp các số thặng dư bậc hai theo modulo hiệu , tập hợp không thặng dư bậc hai ký hiệun QR
n
QNR
n
.
Ví dụ 2.25: Tính QR
11
là tập tất thặng dư bậc hai theo modulo 11.
Chúng ta
9,5,4,3,111mod10,9,8,7,6,5,4,3,2,1
2222222222
11
QR
, trong dụ, chúng ta
tính QR
11
bằng cách lựa chọn các phần tử của nhóm
*
11
Z
.
Độc giả thể kiểm tra lại rằng
9,5,4,3,111mod5,4,3,2,1
22222
11
QR
. Điều này sẽ tìm hiểu
qua định lý sau:
Định lý 2.5: Cho là số nguyên tố. Khi đó những khẳng định sau đây là đúng.p
1.
2/)1(0|)(mod
2
pxpxQR
p
.
2. Nhóm
*
p
Z
chia ra hai tập con, có số phần tử bằng nhau.QR
p
QNR
p
Chứng minh:
Chúng ta chứng minh điều khẳng định thứ nhất. ràng rằng
p
QRpxpxS 2/)1(0|)(mod
2
. Để chứng minh
SQR
p
, điều này sẽ đúng nếu như chúng ta
chứng minh được rằng
SQR
p
.
Chọn một số bất kỳa
p
QRa
. Tồn tại số < , thỏa mãn điều kiệnx p
)(mod
2
pax
. Nếu như
2/)1( px
, thì
Sa
. Giả sử rằng > ( 1)/2. Như thế x p
2/)1( pxpy
)(mod2)(
22222
paxxpxpxpy
. Chứng tỏ,
SQR
p
.
Ta đi chứng minh điều khẳng định thứ hai. Để chứng minh
2/)1(# pQR
p
,thì nó sẽ tương đương
với việc chứng minh rằng đối với tất cả số , thỏa mãn bất đẳng thức x
2/)1(0 pyx
, thì thỏa mãn
điều kiện
)(mod
22
pyx
. Giả sử điều này sai:
).(mod0))((
22
pyxyxyx
Dẫn đến, + )p|(x y
hoặc ). Bởi + < là số nguyên tố. Nên chỉ có thể = . Điều này trái ngược với giảp|(x y x y p p x y
thuyết. Vậy
2/)1(# pQR
p
. Mà #
1
*
pZ
p
, nên điều khẳng định thứ hai hoàn toàn đúng.
Thường xuất hiện bài toán, xác định xem số phải thặng bậc hai theo modulo đã cho hayn
không. Vấn đề này gọi bài toán về thặng bậc hai. Bài toán này được giải quyết thông qua định
sau:
Định lý 2.6 (Tiêu chuẩn Euler): Cho số nguyên tố. Đối với bất kỳ số p
*
p
Zx
, thặng dư bậcx
hai khi và chi khi thỏa mãn điều kiện sau:
px
p
mod1
2/)1(
.
Chứng minh: Đối với
p
QRx
thì tồn tại số
*
p
Zy
sao cho
)(mod
2
pxy
. Theo định Fermat
chúng ta có,
pyx
pp
mod1
12/)1(
.
12
Ngược lại, nếu như
px
p
mod1
2/)1(
, như vậy nghiệm của đa thức x
py
p
mod01
2/)1(
.
Chúng ta đã biết
p
Z
một trường. ta dễ dàng thấy rằng mỗi phần tử của trường nghiệm của đa
thức
pyy
p
mod0
. Hay nói cách khác, mỗi phần tử khác không của trường là nghiệm của đa thức:
.mod0)1)(1(1
2/)1(2/)1(1
pyyy
ppp
tất cả các nghiệm này phải khác nhau, bởi đa thức bậc 1. Điều này dẫn đến ( 1)/2p p
nghiệm của đa thức
py
p
mod01
2/)1(
phải khác nhau. Mà theo địnhvề số phần tử của tập thặng
bậc hai ta tập ( 1)/2 phần tử, mỗi phần tử nghiệm của phương trìnhQR
p
p
py
p
mod01
2/)1(
. bất kỳ phần tử nào khác của nhóm
*
p
Z
cũng phải thỏa mãn phương trình
py
p
mod01
2/)1(
. Vậy
p
QRx
.
Khi chứng minh định này chúng ta thể điều khẳng định sau: Nếu như
p
Zx
tiêu chuẩn
Euler không thỏa mãn thì:
px
p
mod1
2/)1(
.
2.10 Các ký hiệu Legendre và Jacobi
hiệu Legendre một công cụ hữu ích để xem xét liệu một số nguyên thặng bậc haia
theo modulo của một số nguyên tố hay không?p
2.10.1 Ký hiệu Legendre
Định nghĩa 2.7
Nếu lẻ và là một , thì ký hiệu Legendrep số nguyên tố a số tự nhiên
p
a
được xác định như sau:
o 0 nếu ; a p|
o 1 nếu
p
QRa
;
o −1 nếu
p
QNRa
Các tính chất của ký hiệu Legendre:
Cho là một số nguyên tố lẻ và , . Khi đó ký hiệu Legendre có các tính chất sau:p a b Z
1.
p
b
b
a
p
ab
2. Nếu
pba mod
, thì
p
b
p
a
3.
1
1
p
4.
4mod31
4mod11
)1(
1
2
1
pkhi
pkhi
p
p
13
5.
8mod5,31
8mod7,11
)1(
2
8
1
2
pkhi
pkhi
p
p
6.
12mod7,51
12mod11,11
)1(
3
6
1
pkhi
pkhi
p
p
7.
5mod3,21
5mod4,11
)1(
5
5
2
pkhi
pkhi
p
p
8.
28mod23,17,15,13,11,51
28mod27,25,19,9,3,11
)1(
7
6
1
pkhi
pkhi
p
p
9. Nếu là các số nguyên tố lẻ thì p q
2
1
2
1
)1(
pq
q
p
p
q
Tiêu chuẩn Euler thể viết lại như sau: Euler chứng minh rằng với mọi số nguyên tố số ,p a
pa 1
,
pa
p
a
p
mod
2/)1(
.
Ví dụ 2.26: Tính ký hiệu Legendre
11111
23
9
7
2
5
1
3
1
23
3
7
2
5
1
3
1
23
9
7
2
5
1
3
1
23
331
1
7
331
1
5
331
1
3
331
1
331
23
331
7
331
5
331
3
331
161
331
5
331
3
331
823
331
5
331
3
331
12345
2
2.10.2 Ký hiệu Jacobi
Định nghĩa 2.8
Ký hiệu Jacobi là tổng quát hóa của ký hiệu Legendre cho số tự nhiên lẻ . Giả sử n
k
k
pppn
...
21
21
là dạng phân tích tiêu chuẩn của . Với số nguyên bất kỳ, ký hiệu Jacobi là:n a
k
k
p
a
p
a
p
a
n
a
...
21
21
, trong đó tất cả các ký hiệu bên vế phải là ký hiệu Legendre.
14
Các tính chất của ký hiệu Jacobi:
Cho là các số tự nhiên lẻ và , . Kí hiệu Jacobi có các tính chất sau:n a b Z
1. Nếu n là số nguyên tố thì ký hiệu Jacobi là ký hiệu Legendre
2.
1,1,0
n
a
3.
1,gcd0
nakhi
n
a
4.
n
b
n
a
n
ab
5.
n
b
m
a
mn
a
, điều này dẫn tới
2
n
a
là 0 hoặc 1.
6. Nếu
nba mod
, thì
n
b
n
a
7.
1
1
n
8.
4mod31
4mod11
)1(
1
2
1
nkhi
nkhi
n
n
9.
8mod5,31
8mod7,11
)1(
2
8
1
2
nkhi
nkhi
n
n
10.
4
11
1)(
nm
m
n
n
m
Ví dụ 2.27:
1
9
1
9
37
37
9
37
2
37
36
37
147
147
37
147
331
331
147
331
147
331
2
.1
331
294
331
37035
2
Vì 331 là số nguyên tố nên từ đó 37035 là thặng dư bậc hai mod 331.
Có hai tính chất đúng với ký hiệu Legendre nhưng không thể mở rộng cho ký hiệu Jacobi.
+ Khác với hiệu Legendre, ký hiệu Jacobi không cho biết liệu phải một thặng bậc haia
theo modulo hay không. Sự thực nếu thì n a QR
n
1
n
a
. Tuy nhiên
1
n
a
thì không có nghĩa là a
QR
n
.
+ Tính chất thứ hai không thể mở rộng gắn với đồng thức Euler
pa
p
a
p
mod
2/)1(
với số
nguyên tố số nguyên bất kỳ. Một cách tự nhiên đồng dư thức Euler mở rộng từhiệu Legendrep a
15
sang hiệu Jacobi
na
n
a
n
mod
2/)1(
với hợp số lẻ dương . Tuy nhiên đồng thức này sain
với ít nhất một nửa của các mod khi là hợp số. a n n
2.10.3 Bổ đề Gauss
Nếu như là 2 số nguyên tố khác 2 thì:p q
2
1
2
1
)1(
pq
q
p
p
q
Hay nói cách khác, nếu như một trong 2 số hoặc có dạng 4 + 1, thì bình phương theo modulo p q n p q
khi và chỉ khi là bình phương theo modulo . Nếu như cả 2 số có dạng 4 + 3, thì bình phươngq p p q n p
theo modulo khi và chỉ khi không là bình phương theo modulo .q q p
Chứng minh:
Cho rằng
qp
, xét trường
1q
p
F
cũng biết đây là cũng là nhóm cyclic. Theo định lý nhỏ Fermat
thì
1
1
q
p
chia hết cho , nên trong nhóm tồn tại phần tử bậc . Chúng ta xem , lúc nàyq q w
1w
1
q
w
trong
1q
p
F
. Bây giờ xác định tổng Gauss:
q
Zx
x
w
q
x
y
Chúng ta sẽ chứng minh 2 điều khẳng định sau:
Điều khẳng định 1: Ta có đẳng thức sau
qy
q
2
1
2
)1(
.
Chứng minh:
zx ZxZu
uzx
qq
q
xux
ww
q
xz
y
,
2
)(
Từ tổng cuối cùng lấy giá trị trong tập x
0\
q
Z
. Khi
0x
, có:
q
ux
q
ux
q
x
q
xux
q
1
2
1
12
1
)1(
1)(
.
Từ đây
q
Zu
u
u
q
wCy
2
2
1
)1(
,
với
0\
1
1
q
Zx
u
q
ux
C
.
Rõ ràng
0\
0
1
1
q
Zx
q
q
C
.
16
Nếu như
0u
, thì
1
1
uxs
nhận các giá trị trong tập
1\
q
Z
, cho nên:
qqq
s
C
q
Zs
u
11
,
Bởi
0
0
p
, còn trong
0\
q
Z
số lượng phần tử bình phương số lượng phần tử không
chính phương là như nhau. Từ đây:
qwqwC
qq
Zu
u
Zu
u
u
0\
)1(
.
Vậy đã chứng minh được điều khẳng định 1, chúng ta chứng minh tiếp điều khẳng định tiếp theo.
Khẳng định thứ 2: Ta có đẳng thức sau:
q
p
y
p 1
.
Chứng minh: Theo định thức Newton rút ra:
q q
Zx Zx
zxpp
y
q
p
y
q
p
w
q
zp
w
q
x
y
11
,
Vậy điều khẳng định thứ hai đã được chứng minh.
Kết hợp hai khẳng định trên chúng ta có đẳng thức:
p
q
qy
q
p
pq
p
q
p
2
1
2
1
2
1
2
1
1
)1()1(
2.11Tính căn bậc hai theo modulo số nguyên
2.11.1Tính căn bậc hai theo modulo là số nguyên tố
Cho là số nguyên tố, thì có 2 phương án tính như sau:p
Phương án 1 :
4mod7,3p
Trong trường hợp này số + 1 chia hết cho 4. Cho p
p
QRa
. Ta định nghĩa như sau:x
pax
p
mod
4
1
,
Bởi vì theo tiêu chuẩn Euler,
pa
p
mod1
2/)1(
, nên
paaaax
pp
mod
2/)1(2/)1(2
. Như vậy số
x là căn bậc hai của a p theo modulo .
Phương án 2:
8mod5p
Trường hợp này thì + 3 chia hết cho 8. Bởi số ( 1)/2 số chẵn, số –1 thỏa mãn tiêu chuẩnp p
Euler và là thặng dư bậc hai. Cho
p
QRa
, ta định nghĩa như sau:x
)(mod
8
3
pax
p
,
Từ điều kiện
pa
p
mod1
2/)1(
pa
p
mod1
4/)1(
paaaax
pp
mod
4/)1(4/)3(2
.
Điều này chứng tỏ được định nghĩa ở trên là căn bậc hai của hoặc – . Nếu như số dương thì thuật toánx a a
giải quyết xong, nếu số âm thì:
17
)(mod)1(
22
paxx
Dẫn đến
)(mod1
8
3
pax
p
là số cần tìm. Như vậy bài toán dẫn đến tìm
.
Cho số số không thặng bậc hai theo modulo . Như vậy theo tiêu chuẩn Euler ta b p
pbb
pp
mod1)(
2/)1(24/)1(
, như vậy thể thay
pmod1
bằng
pb
b
mod
4/)1(
. Bởi
)1"2)(3'4(8)48)(68()1)(1(1
2
kkkkppp
. ta đã biết
p
QNR2
, nên thể dùng
4/)1(
2
p
thay cho
1
Ngoài ra trong trường hợp tổng quát ta thể tính như sau: Từ tiêu chuẩn Euler, đồng thức
pax mod
2
giải được khi và chỉ khi là thặng dư bậc hai theo modulo , có nghĩa:a p
pa
p
mod1
2
1
.
Giả sử rằng đẳng thức cuối cùng là đúng. Cũng có thể giả sử rằng, chúng ta biết một số số là khôngN
thặng dư bậc hai theo modulo , có nghĩa là biết với tính chất:p N
pN
p
mod1
2
1
.
Giả sử
lp
s
21
, là số lẻ. Chúng ta sẽ tìm dãy số l
01
...,, bb
s
sao cho:
pba
i
i
l
mod1)(
22
.
Có thể đặt
1
1
s
b
. Nếu như
i
b
đã tìm được và
0i
, khai căn, chúng ta nhận được rằng
1
22
)(
i
i
l
ba
so
sánh với 1 và –1 theo modulo . Trong trường hợp thứ nhất thiết lập quan hệ p
ii
bb
1
, trong trường hợp
thứ hai thì
1
2
1
1
i
p
ii
Nbb
. Cuối cùng ta có
pba
l
mod1
2
0
, từ đây
paba
l
mod)(
2
0
2
1
, có nghĩa là:
pbax
l
mod
0
2
1
.
2.11.2Tính căn bậc hai theo modulo là hợp số
Chúng ta biết rằng
pqn
, là số nguyên tố, nhóm p q
*
n
Z
đồng cấu với không gian
**
x
qp
ZZ
. Bởi
vì đồng cấu đảm bảo tính chất lệnh số học nên
nyx mod
2
, thỏa mãn khi và chỉ khi biểu thức trên đúng
với modulo modulo . Điều này nghĩa nếu triển khai được ra thừa số thì căn bậc hai theop q n
modulo n có thể tính được theo thuật toán sau:
Thuật toán 2.1:
Đầu vào 2 số nguyên tố , thỏa mãn điều kiện = , số nguyên p q n pq
p
QRy
.
Đầu ra: Căn bậc hai của theo modulo y n
xp
)(mod py
xq
)(mod qy
return * + mod vp xp vq * xq n
18
ppqv
p
).(mod
1
qqpv
q
).(mod
1
1.5 Thuật toán bình phương và nhân
Thuật toán “bình phương nhân” để tính
nxz
b
mod
. Đây thuật toán tính hàm hiệu quả,
trong các chương tiếp theo chúng ta sẽ áp dụng để tính giá trị hàm đối với trường hợp số
lớn.
Trong thuật toán này, ta coi rằng số mũ được biểu thị ở dạng nhị phân như sau:b
l
i
i
i
bb
0
2
Trong đó = 0 hoặc 1, b
i
10 li
.
Thuật toán tính:
nxz
b
mod
gồm các bước như sau:
1. z = 1
2. for = – 1 down to 0 doi l
3.
nzz mod
2
4. if = 1 then b
i
nxzz mod*
Ví dụ
: Tính 9726 mod 11413
3533
3533 = 2
11 10 8 7 6 3 2
+2 +2 +2 +2 +2 +2 +1 = 110111001101
z = 1
i b
i
z mod 11413
11 1 1
2
* 9726 = 9726
10 1 9726
2
* 9726 = 2659
9 0 2659
2
= 5634
8 1 5634
2
* 9726 = 9167
7 1 9167
2
* 9726 = 4958
6 1 4958
2
* 9726 = 7783
5 0 7783
2
= 6298
4 0 6298
2
= 4629
3 1 4629
2
* 9726 = 10185
2 1 10185
2
* 9726 = 105
1 0 105
2
= 11025
0 1 11025
2
* 9726 = 5761
Vậy 9726 mod 11413 = 5761
3533
19
| 1/19

Preview text:

CHƯƠNG 2
GIỚI THIỆU VỀ LÝ THUYẾT SỐ
Hầu hết các thuật toán mật mã khóa công khai được xây dựng dựa trên các khái niệm của lý thuyết
số. Trong chương này sẽ trình bày ngắn gọn những kiến thức cơ bản về lý thuyết số, nó là công cụ hữu
ích để hiểu sâu một thuật toán mật mã nào đó.
1.1 Các số nguyên tố và các số nguyên tố cùng nhau 1.1.1 Các ước số
Nói rằng, b (một số khác 0) là ước số của a nếu
a = mb, với một giá trị m nào đó, ở đây , a , b m là các số nguyên. Như vậy,
b là ước số của , a nếu như chia a cho
b không còn lại số dư. Để kí hiệu b là ước số
của a thường sử dụng cách viết b . a Có các quan hệ sau: o
Nếu a1, thì a =  1. o
Nếu baab, thì a =  . b o
Số bất kỳ khác 0 là ước số của 0. b o Nếu b và g
bh, thì b(mg + ) đối với bất kì số nguyên nh m, . n
Để chứng minh khẳng định cuối cùng, cần chú ý như sau: nếu b thì g có dạng g =
g b * g1, đối với số nguyên g1 nào đó, nếu b thì h có dạng h = h *
b h1, đối với giá trị nguyên h1 nào đó, Vì vậy: mg + = nh
mbg1 + nbh1 = b * (mg1+ nh1)
Cuối cùng, là ước số của b mg + . nh
Ví dụ 2.1: Các số 1, 2, 3, 4, 6, 8, 12 và 24 là các ước số của 24. Ví dụ 2.2: = 7, b = 14, g
h = 63, m = 3, = 2 n
714 và 763. Yêu cầu chứng minh rằng 7(3 * 14 + 2 * 63).
Chúng ta có: ( 3 * 14 + 2 * 63 ) = 7(3 * 2 + 2 * 9)
Như vậy, rõ ràng rằng 77(3 * 2 + 2 * 9). 1.1.2 Các số nguyên tố
Một số nguyên > 1 được gọi là số nguyên tố, nếu chỉ p
có  1 và  là ước số c p ủa nó.
Một số nguyên bất kỳ > 1 có thể phân tích thành các th a
ừa số và được trình bày dưới dạng: 1  2 t a   1 p p2 ...pt ,
ở đây: p1 < p2 < … < pt là các số nguyên tố, còn các giá trị i > 0.
Ví dụ 2.3: 91 = 7 * 13; 11011 = 7 * 112 * 13.
Nếu P là kí hiệu tập hợp tất cả các số nguyên tố, thì đối với một số nguyên dương bất kì được viết duy nhất dưới dạng: a  ap
p , ở đây tất cả các ap  0 P 1
Trong công thức này, biểu thức ở vế phải sau dấu bằng, ký hiệu tích theo tất cả khả năng của các số
nguyên tố p. Đối với mỗi giá trị cụ thể của thì giá trị lớn nhất của ch a ỉ số a . p sẽ bằng 0
Ví dụ 2.4: 3600 = 24 * 32 * 52.
Các giá trị của một số nguyên dương bất kỳ có thể liệt kê dưới một dạng đơn giản của tất cả các chỉ
số khác không theo công thức ở trên.
Ví dụ 2.5: Số nguyên 12 có thể trình bày như {a2 = 2, a3 = 1}.
Số nguyên 18 có thể trình bày như {a2 = 1, a3 = 2}.
Phép nhân hai số nguyên tương đương với phép cộng các giá trị các chỉ số phù hợp: k = m n
*  kp = mp + np, đối với tất cả các p.
Ví dụ 2.6: k = 12 * 18 = 216,
k2 = 2 + 1 = 3, k3 = 1 + 2 = 3, 216 = 23 * 33
Bổ đề: Một số nguyên dương bất kì dạng pk chỉ có thể chia hết cho một số nguyên, khi số bị chia có
bậc của số nguyên tố với chỉ số không vượt hơn p
k, nghĩa là số pj với jk. Như vậy: a b   apb
p, đối với tất cả p.
Ví dụ 2.7: a = 12 , b = 36 , 1236, 12 = 22 * 3, 36 = 22 * 32 a2 = 2 = b2,
a3 = 1  2 = b3. 1.1.3
Các số nguyên tố cùng nhau
Chúng ta sẽ sử dụng ký hiệu gcd( , a )
b để chỉ ước số chung lớn nhất (UCLN) của số và a . b Nói rằng,
một số nguyên dương c là UCLN của và a , nếu: b o
c là ước số của ab. o
Ước số bất kỳ của a và đều là ước số của b c.
Có thể định nghĩa tương đương như sau: gcd( ,
a b) = max [k, khi k và a kb].
Bởi vì, đòi hỏi rằng UCLN là một số dương, chúng ta có gcd( , a ) b = gcd( , a
b ) = gcd(–a, ) b =
gcd(–a, –b ). Nói chung, gcd(a, b) = gcd(|a|, | |). b
Ví dụ 2.8: gcd(60, 24 ) = gcd(60, –24 ) = 12.
Bởi vì tất cả các số nguyên khác không đều là ước số của số 0, chúng ta luôn luôn có: gcd( , 0 ) = | a a|.
Dễ dàng xác định được UCLN của hai số nguyên dương, nếu các số này được trình bày dưới dạng
tích của các thừa số nguyên tố. Ví dụ 2.9: 300 = 22 * 31 * 52, 18 = 21 * 32.
gcd(18, 300) = 21  31  50 = 6. Trong trường hợp chung: k = gcd( ,
a b)  kp = min (ap, bp), đối với tất cả các . p 2
Việc xác định các thừa số nguyên tố của các số lớn là bài toán không đơn giản, bởi vì rằng các trình
bày ở trên không cho một khả năng thực tiễn để tính UCLN của hai số.
Các số nguyên a
b là nguyên tố cùng nhau, nếu chúng không có ước số nguyên tố chung, hay ước
số chung duy nhất của chúng là 1. Nói một cách khác và a
b hai số nguyên tố cùng nhau nếu gcd(a, ) b = 1.
Ví dụ 2.10: Số 8 và số 15 là các số nguyên tố cùng nhau, bởi vì ước số của 8 là 1, 2, 4 và 8, còn các
ước số của 15 là 1, 3, 5 và 15. Như vậy, 1 là ước số chung duy nhất của hai số này. 1.1.4
Số học trong lớp số dư
Đối với bất kỳ một số nguyên dương và một số nguyên n bất kỳ, khi chi a a cho a , ta nhận được một n
số nguyên nào đó và số dư q
r, phù hợp với quan hệ sau:
a = qn + r, 0  r < n q , = a / n.
ở đây x ký hiệu số nguyên lớn nhất, không lớn hơn x.
Đối với một số dương a và một số nguyên dương ,
n luôn luôn có thể tìm được
q r, phù hợp với quan hệ tính toán trên.
Ví dụ 2.11: a = 11; = 7; 1 n 1 = 1 * 7 + 4; r = 4. Nếu
a là một số nguyên, còn
n là một số nguyên dương, thì a mod ,
n được xác định như phần dư của
phép chia a cho . Như vậy n
, đối với một số nguyên bất kỳ có thể viết : a
a = a / nn * + (a mod n)
Ví dụ 2.12: 11 mod 7 = 4 ; –11 mod 7 = 3.
1.2 Lý thuyết về đồng dư
Định nghĩa 2.1 (Đồng dư)
Choa, b Z , n N . Ta nói a đồng dư với b theo modulo , n khi ab chia cho
n có cùng số dư, và
được viết dưới dạng sau: a b  mod n .
Chứng minh: Giả sử chia ab cho n và thu được các thương nguyên và phần dư. Các phần dư nằm
giữa 0 và n – 1, nghĩa là a q n r
b q n r 0 r n  0 r n  1 1 và 2 2 . Trong đó 1 1 và 1 2 . Khi đó có
thể dễ dàng thấy rằng a b
 mod n khi và chỉ khi r r a b  mod 1 2 . Như vậy: n khi và chỉ khi a mod n b  mod n .
Chúng ta đi tìm hiểu một số tính chất quan trọng của đồng dư.
Tính chất 2.1: Nếu a b mod n a b mod
a a b b mod 1 1 và n 2 2 thì n 1 2 1 2
Chứng minh: Từ giả thuyết ta có a nt b
a nt b a a bb   t (  t ) 1 1 1 và 2 2 2 , suy ra n 1 2 1 2 1 2 ,
điều này có nghĩa là a a b
  b mod n . 1 2 1 2
Tính chất 2.2: Nếu a b mod n a b mod 1 1 và n 2 2 thì a a * b  * b mod n 1 2 1 2
Chứng minh: Từ giả thuyết ta có
a nt b a nt b 1 1 1 và 2 2 2 , suy ra a * a b  *b b
( t b t nt t )n 1 2 1 2 1 2 2 1 1 2
, điều này có nghĩa là a a * b  * b mod n 1 2 1 2 3
Tính chất 2.3: Nếu như gcd d ( , n)  , 1 a b  mod n, a ad, b bd 1 1 , thì a b  mod n 1 1
Chứng minh: Từ giả thuyết ta có (a b )d | n gcd(d, n)  (a b ) | 1 1 , mà 1 , nên suy ra n 1 1 , hay a b  mod n 1 1 .
Ví dụ 2.13: Chứng minh rằng 37n+2+16n+1+23n chia hết cho 7.
Giải: Rõ ràng chúng ta thấy rằng 37 2  mod 7 ,16 2  mod 7 và23 7
 mod 7 , từ tính chất 2.2 có: 37n2 2 2 
n mod7 ,16n 1  2n 1
 mod7 ,23n 7n mod 7 .
Từ tính chất 2.1 có: 37n+2+16n+1+23n 2 . 7 n
mod7 , và từ tính chất 2.3 suy ra điều phải chứng minh.
1.3 Các số nguyên modulo n Các số nguyên modulo n (ký hiệu Z , 0 , 1 ..., n  1
n ) là tập hợp các số nguyên   bao gồm 2 phép toán
cộng và nhân. Việc cộng và nhân trong Zn được thực hiện giống như cộng và nhân các số nguyên, ngoại
trừ một điểm là các kết quả sẽ được rút gọn theo modulo . n
Ví dụ 2.14: Tính 11*13 trong Z16. Tương tự như với các số nguyên ta có 11*13 1  43 . Để rút gọn
143 theo modulo 16, ta thực hiện phép chia bình thường: 143 8  1
 6 15, bởi vậy 143mo 1 d 6 1  5 . Do đó 11 1  3 1  5 trong Z16 .
Các định nghĩa trên phép cộng và phép nhân trong Zn thoả mãn hầu hết các quy tắc quen thuộc trong
số học. Sau đây ta sẽ liệt kê mà không chứng minh các tính chất này: o
Phép cộng là đóng, tức với bất kì a, b Z , a bZ n n . o
Phép cộng là giao hoán, tức là với bất kì a, b Zn thì: + a = b + b . a o
Phép cộng là kết hợp, tức với bất kì a, b, c Zn :
(a + b) + c = a + (b + c). o
0 là phần tử đơn vị của phép cộng, có nghĩa là với bất kì a Zn :
a + 0 = 0 + a = a. o
Phần tử nghịch đảo của phép cộng của một phần tử bất kì a Zn m – , a nghĩa là a + (m – ) a =
(ma) + a = 0 với bất kì a Zn . o
Phép nhân là đóng, tức với bất kì a, b Z
a * b Z n , n . o
Phép nhân là giao hoán, nghĩa là với bất kì a, b Z a * b b  * n , a . o
Phép nhân là kết hợp, nghĩa là với a, b, c Z
(a * b) * c a  * (b * c n , ) . o
1 là phần tử đơn vị của phép nhân, tức là với bất kì a Zn : a *1 1 * a a  . o
Phép nhân có tính chất phân phối đối với phép cộng, tức là đối với a, b, c Z , n
(a b) * c a
 * c b * c a * (b c) a
 * b a * c .
1.4 Hàm Euler, định lý Euler và định lý Fermat
Định nghĩa 2.2 (Hàm Euler) 4
Cho n là số nguyên dương, đặt (n)là số các phần tử của tập hợp, mà tập này là các số nguyên trong khoảng  , 1 
n và nguyên tố cùng nhau với , thì n
 (n) gọi là hàm Euler.
Ta công nhận một số tính chất quan trọng của hàm Euler: 1.  ) 1 ( 1 
2. Nếu là số nguyên tố thì p
 ( p) p  1 3. Nếu như và p
là hai số nguyên tố cùng nhau thì q ( pq) 
 ( p) * (q) 4. ( ps  ) s 1   p ( p  ) 1 5. Nếu như e e e 1 2 k
n p p ...p , ở đây p , p , …, p là số nguyên tố, thì 1 2 k 1 2 k  1  1   1   n ( ) n1 1    ... 1    p1  p2   p k
Trên bảng 2.1 trình bày 30 giá trị đầu tiên của  (n) . Giá trị (1) là không xác định, nhưng coi rằng nó bằng 1.
Bảng 2.1: Một số giá trị của hàm Euler  (n) n(n) n(n) n(n) 1 1 11 10 21 12 2 1 12 4 22 10 3 2 13 12 23 22 4 2 14 6 24 8 5 4 15 8 25 20 6 2 16 8 26 12 7 6 17 16 27 18 8 4 18 6 28 12 9 6 19 18 29 28 10 4 20 8 30 8
Định lý Euler: Cho n  , 1 gcd(a, n) 1
 , và  (n) là hàm Euler. Khi đó ta có: a(n) 1  mod n
Ví dụ 2.15: a = 3, n = 10,  (10) = 4, 34 = 81  1 mod 10,
a = 2, n = 11, (11) = 10, 210 = 1024  1 mod 11.
Chứng minh: Giả sử x , ..., x 1
 (n) – là các số tự nhiên khác nhau, nhỏ hơn n và nguyên tố cùng nhau với . n 5
Hãy xét tất cả các khả năng của tích x a x i , với i  ,
1  (n) . Bởi vì a nguyên tố cùng nhau với n i
nguyên tố cùng nhau với , nên tích n x a x a x  mod i
cũng nguyên tố cùng nhau với , do đó có n n i j .
Chú ý rằng các phần dư của phép chia x a i cho
n là khác nhau. Nếu điều này không đúng, có nghĩa là tồn tại i i  1 2 , sao cho
x a x a mod n i1 i2
Cho nên (x x )a 0  mod n i i
. Bởi vì a nguyên tố cùng nhau với ,
n nên biểu thức cuối cùng tương 1 2 đương với x x 0  mod n i1 i 2
Điều này là mâu thuẫn, bởi các số x ,..., 1
x(n) là các cặp khác nhau theo modulo . n
Hãy nhân tất cả đẳng thức x a x  mod n i j , thì thu được: x ... x a( n) x ... x mod n 1   (n) 1 ( n) Hay x .. x .  an ( ( )  ) 1 0  mod 1 (n n )
Bởi vì số x ...x mod n 1  (n)
nguyên tố cùng nhau với nên đẳng thức cuối cùng tương đương vớ n i a (n)  1 0
 mod n hay a (n) 1  mod n
Ta có một công thức quan trọng sau: a (n ) + 1  mod a . n
Định lý Fermat nhỏ: Cho là số nguyên tố, p
là số nguyên dương không chia hết cho a . Khi đó ta có p a p 1 1  mod p . Chứng minh: Ta có (
p) p  1, áp dụng định lý Euler ta có điều phải chứng minh.
Từ định lý Fermat chúng ta có các hệ quả quan trọng sau:
1. Choa Z , p là số nguyên tố, thì ta có: a p amod p
2. Cho a, b Z , p là số nguyên tố a (  b n ) an   bn mod p
Ví dụ 2.16: Chứng mình rằng 118 +218 +318 +418 +518 18 +6  –1 mod 7
Giải: Các số 1, 2, 3, 4, 5, 6 là số nguyên tố cùng nhau với 7. Nên theo định lý Fermat chúng ta có các phương trình sau: 16 1  mod 7 ; 26 1  mod7 ; 36 1  mod 7 ; 46 1  mod 7 ; 56 1  mod 7 ; 66 1  mod 7
Lấy bậc ba hai vế từng phương trình và cộng lại ta được: 118 +218 +318 +418 +518 +618 6  mod 7  1mod 7
2.1 Thuật toán Euclide và thuật toán Euclide mở rộng 2.5.1 Thuật toán Euclide
Định lý Euclide: Cho a, b Z , b 0
 , tồn tại duy nhất cặp giá trị ( ,
q r) với q Z r N thỏa mãn: a b
q r ,0 r   b . 6
ở đây r gọi là số dư.
Có một số ký hiệu cho số dư như sau: r R  (a) r b , a mod b .
Một số tính chất đơn giản của về số dư:
1. R (a) R (a)  b b , bởi vì
a qbr
a ( q)( b)  r  
0 r b  0 r b 2. R a
(  ib) R (a),i Z b b , bởi vì
a ib (q i)b r .
Nếu như r = 0 thì ta nói a chia hết cho , ký hiệu là b a b  .
Định lý 2.1: Đối với bất kỳ các số a, b, i Z : gcd(a, b) g
 cd(a ib, b) .
Chứng minh: Nếu như a d  và b d  , thì a qd, b qd a ib d  (q iq
 (a ib) d  1 2 . Lúc này ) 1 2 . Có nghĩa là: gcd(a, ) b g
 cd(a ib, b) . (*)
Tương tự giả sử rằng (a ib) d  và b d
  a ib qd ,b qd a d
 (q iq  1 2 . Lúc này ) 1 2 a d  . Có nghĩa là: gcd(a, ) b g
 cd(a ib, b) . (**)
Từ (*) và (**) chúng ta có đẳng thức gcd(a,b)=gcd(a+ib,b).
Định lý 2.2: Đối với bất kỳ a, b Z, b 0  , ta có: gcd(a, b) g  cd( , b R (a)) b Chứng minh. Bởi vì a b
q R (a) b , gcd(a, ) b g
 cd(a qb, b) g
 cd(R (a), b) b .
Từ định lý 2.2 ta có thuật toán Euclide. Đây là thuật toán giúp tìm UCLN của hai số nguyên dương a0
a1 với a0 > a1.
Thuật toán được miêu tả bằng dãy các phép chia như sau:
a a q a , 0 1 1
2 0 < a2 < a1 a aq a , 1 2 2
3 0 < a3 < a2 … aa qa , k 2 k  1 k 1
k 0 < ak < |ak-1| aa q  0 k 1 k k
Dựa vào định lý 2.1, nhận được gcd(a0, a1) = gcd(a1, a2) = … = gcd(ak, 0) = ak.
Ví dụ 2.17 (Thuật toán Euclide): Tìm gcd(814, 187).
Giải: Khai triển dãy phép tính theo thuật toán Euclide: 7 814 = 4 * 187 + 66 187 = 2 * 66 + 55 66 = 1 * 55 + 11 55 = 5 * 11 + 0 Vậy gcd(814, 187) = 11.
Thuật toán có thể viết như sau:
Vào: Hai số nguyên dương và a với b > a b Ra: UCLN của và a b (1) While # 0 do b
ra mod b a ,  b b ,  r (2) Return (a).
2.5.2 Thuật toán Euclide mở rộng
Định nghĩa 2.3 (Phần tử nghịch đảo) Cho a Z b Z
a * b b * a 1  mod
n . Phần tử nghịch đảo của a là phần tử n sao cho n . Kí hiệu
phần tử nghịch đảo của là a a-1.
Định lý 2.2: Cho số nguyên a > 0
nguyên tố cùng nhau với , thì n
luôn tồn tại phần tử nghịch đảo của a theo modulo n.
Chứng minh: Hãy xét tập hợp  , 1 ,
2 ...,n  1 . Nhân từng phần tử của tập hợp với theo modulo a , nhận n
được tập hợp (a mod n), (2a mod )
n , ..., ((n  )
1 a mod n) , tập này sẽ bao gồm các số 1, 2,…, n 1, có
nghĩa đối với một số giá trị i nào đó sẽ thỏa mãn điều kiện ia mod n 1
 . Điều này dẫn đến một mâu
thuẫn nếu như tồn tại hai giá trị
h k thỏa mãn điều kiện trên, nghĩa là ha mod n ka mod n . Điều này dẫn đến h k
 mod n , vì gcd(a, n) = 1,
suy ra h = k. Vậy ta tìm được i là phần tử nghịch đảo của a i là duy nhất.
Hệ quả 2.1: Nếu như
p là số nguyên tố, thì bất kỳ số a, 0
< a < ,
p luôn tồn tại phần tử nghịch đảo theo modulo . p
Chúng ta sẽ tìm hiểu về cách tìm phần tử nghịch đảo thông qua thuật toán Euclide mở rộng.
Từ dãy chia của thuật toán Euclide
a a q a , 0 1 1
2 0 < a2 < a1 a aq a , 1 2 2
3 0 < a3 < a2 … a aqa , k  2 k  1 k  1
k 0 < ak < ak-1
Ta dễ dàng rút ra dãy sau: a aq a aaq a a aq (aq a k k  2
k  1 k  1 mà k  1 k 3
k 2 k  2 nên suy ra ) k k  2 k  1 k  3
k  2 k  2 , tương tự
như thế, chúng ta rút ra ak 2 , đến cuối cùng chúng ta có được biểu thức dạng sau:
a a x a y k 0 1 (2.1) 8
Nếu như gcd(a , a ) 1  0 1
, chúng ta có x là phần tử nghịch đảo của a0 theo modulo a1.
Ví dụ 2.18 (Thuật toán Euclide mở rộng):
1. Tìm xy trong biểu thức (2.1) với a0 = 814 và a1 = 187.
Giải: Theo ví dụ 2.17 ta thu được dãy: 814 = 4 * 187 + 66 187 = 2 * 66 + 55 66 = 1 * 55 + 11 55 = 5 * 11 + 0
Suy ra: 11 = 66 – 1 * 55 = 66 – 1 * (187 – 2 * 66) = 3 * 66 – 1 * 187 = 3 * (814 – 4 * 187) –187 = 3 *
814 – 13 * 187. Vậy x = 3 và y = –13.
2. Tìm phần tử nghịch đảo của 17 theo modulo 74.
Giải: Theo ví dụ trên ta có được 3 * 74 – 13 * 17 = 1. Nên phần tử nghich đảo của 17 là –13,
nhưng chỉ lấy số dương, nên phần tử nghịch đảo của 17 là 74 – 13 = 61.
2.2 Giải phương trình đồng dư trong nhóm thương n Z
Có nhiều phương pháp giải phương trình đồng dư, nhưng chúng tôi muốn trình bày với bạn đọc một
phương pháp khá hay dựa vào định lý sau:
Định lý 2.3: Cho n > 1, gcd( , a )
n = 1. Khi đó phương trình đồng dư ax b mod n có nghiệm duy nhất, và nghiệm đó là:
x ba(n) 1 mod n
Chứng minh: Theo định lý Euler, ta có a (n) 1
 mod n , suy ra a b
. a(n)1 b mod n . Vậy nghiệm  (n) 1 x ba mod . n
Ví dụ 2.19: Giải phương trình 7x 3 mod 10. Chúng ta tính như sau:  1 ( 0)= 4; x 3 * 74-1 mod 10
 1029 mod 10 9.
Thế nhưng cách này sẽ khó thực hiện nếu bậc của đủ lớn. Bởi vậy chúng ta xem c a ách sau.
Chúng ta đã biết định lý về phần tử nghịch đảo, nếu như gcd( , a ) = n
1, thì luôn tồn tại phần tử nghịch
đảo a-1. Nên từ phương trình ax b mod n , suy ra  1 x ba mod n.
Ví dụ 2.20: Giải phương trình 7x 3 mod 10 .
Chúng ta thấy 71 mod 10 3 . Nên nghiệm của phương trình x = 3 * 3 mod 10 = 9.
Định lý 2.4: Cho n >1, để phương trình ax b mod n có nghiệm thì điều kiện cần và đủ là gcd( , a n)| b.
Chứng minh: Phương trình ax b mod n có thể viết dưới dạng phương trình tuyến tính sau
ax + kn = b, (2.2), k là số nguyên. 9
Ta chứng minh điều kiện cần. Giả sử hoàn thành điều kiện (2.2). Bời vì số gcd( , a )
n là ước của vế
trái, nên nó cũng phải là ước của vế phải.
Chứng minh điều kiện đủ. Ứng dụng thuật toán Euclide đối với hai số và a , có thể tính n a  n g  cd(a, ) n (2.3) Bởi vì b/gcd( ,
a n) là số nguyên, nên nhân hai vế (2.3) cho b , a /gcd( )
n và nhận được công thức (2.2), b  và ở đây x
mod n là một nghiệm. a gcd( ,n )
Dễ dàng kiểm tra phương trình đã có nghiệm dạng ni x
mod n , i = 0, 1, 2, .., gcd( , a ) – 1. n gcd(a, n)
Tức là phương trình đã cho có gcd( ,
a ) nghiệm khác nhau, nghiệm này nhỏ hơn n . n Ví dụ 2.21:
1. Giải phương trình 2x 5 mod 10
Vì gcd(2, 10) = 2, vì 2 không là ước của 5 nên phương trình trên vô nghiệm, nếu không dựa vào định
lý cũng dễ dàng thấy rằng 2x + 10y = 5 cũng vô nghiệm, vì vế trái là số chẳn, còn vế phải là số lẻ. Điều này là không thể.
2. Giải phương trình 6x 1
 8 mod 36 . Vì gcd(6, 36)|18. Nên phương trình này có 6 nghiệm: 3, 9, 15, 21, 27 và 33.
2.3 Định lý phần dư Trung Hoa.
Định lý này nhằm giúp chúng ta giải hệ phương trình đồng dư thức, định lý phát biểu như sau:
Giả sử cho các số n1, n2, …, nk là các số nguyên dương nguyên tố cùng nhau từng đôi một và c1, c2,
, ck là các số nguyên khi đó hệ phương trình đồng dư:
x c mod n 1 1 x c  mod n 2 2 …
x c mod n k k
Có nghiệm duy nhất theo modulo và nghiệm đó là: n k x   
c N (N 1 mod n ) mod n i i i i (2.4) i 1 M
ở đây n n n .. n . N  1 2 k i . i n Chứng minh:
Nếu ta chứng minh hệ trên tương đương với một phương trình sau:
x x mod n 0 k ở đây x  
c N (N 1 mod n ) 0 i i i i
thì coi như chúng ta đã chứng minh được định lý trên. i 1 10 Ta có N
i chia hết cho ns, khi s i. Điều này dẫn đến x N  ( 1
N mod n )c (mod n ) , từ đó 0 i i i i i x c  (mod n ) 0 i
i . Điều này có nghĩa hệ trên tương đương với hệ sau:
x x mod n 0 1
x x mod n 0 2 ...
x x0 mod k n
Điều này tương đương với một phương trình sau x x mod n 0
. Mà ta đã biết phương trình này có
nghiệm duy nhất là x0 mod . n
Ví dụ 2.22: Giải hệ phương trình đồng dư sau: x 5 mod 7 x 3  mod 11 x 1  0 mod 13 Giải: Ta có =
n 7 * 11 * 13 = 1001; N1 = n/5 = 143; N2= n/11 = 91; N3 = n/13 = 77
Ta đi tính phần tử nghịch đảo của Ni theo modulo ni
143-1 mod 7 = 5; 91-1 mod 11 = 4 và 77-1 mod 13 = 12.
Áp dụng công thức (2.4) ta có được nghiệm của hệ phương trình là:
x = (5.143.5 + 3.91.4 + 10.77.12) mod 1001 = 894.
2.4 Bậc và căn nguyên thủy
Định nghĩa 2.4 (Bậc) Cho gcd(a, ) n = 1. Bậc a mod
n là số nguyên dương nhỏ nhất  thỏa mãn phương trình đồng dư thức: a  1  mod n ,
Kí hiệu bậc là Ordn(a).
Ví dụ 2.23: Tìm bậc của 2 mod 5
Giải: 21 mod 5 = 2; 22 mod 5 = 4; 23 mod 5 = 3; 24 mod 5 = 1; vậy Ord5(2) = 4.
Định nghĩa 2.5 (Căn nguyên thủy) Nếu như bậc của modulo a bằng giá trị của hà n m Euler của . Thì n
gọi là căn nguyên thủy của a n.
Ví dụ 2.24: Số 2 là căn nguyên thủy của 5. Vì Ord  ) 5 (  5(2) = 4.
2.5 Thặng dư bậc hai
Thặng dư bậc hai đóng vai trò rất quan trọng trong lý thuyết số. Ví dụ, thuật toán phân tích số
nguyên ra thừa số. Ngoài ra thặng dư bậc hai cũng ứng dụng lớn trong mật mã cũng như trong các giao thức mã hóa.
Định nghĩa 2.6 (Thặng dư bậc hai)
Cho n là số nguyên và n 1 . Số từ nhóm * n n
Z gọi là thặng dư bậc hai theo modulo , nếu trong nhóm *
Z tồn tại số x, thỏa mãn điều kiện 2
, trường hợp ngược lại gọi là không thặng dư bậc hai. n x a  mod n 11
Tập hợp các số thặng dư bậc hai theo modulo
n ký hiệu QRn, tập hợp không thặng dư bậc hai ký hiệu là QNRn.
Ví dụ 2.25: Tính QR11 là tập tất thặng dư bậc hai theo modulo 11. Chúng ta có QR   , trong ví dụ, chúng ta 11
12,22,32,42,52,62,72,82,92,102 mod 11  ,1 ,3 ,4 ,5 9
tính QR11 bằng cách lựa chọn các phần tử của nhóm * Z . 11
Độc giả có thể kiểm tra lại rằng QR   11
12,22, 32,42,52 mod 11  ,1 ,3 ,4 ,5 9 . Điều này sẽ tìm hiểu qua định lý sau:
Định lý 2.5: Cho là số nguyên tố. Khi đó những khẳng định sau đ p ây là đúng. 1. QRp  2  x (mod ) p | 0  x (  p  ) 1 / 2 . 2. Nhóm *
Zp chia ra hai tập con, QRpQNRp có số phần tử bằng nhau. Chứng minh:
Chúng ta chứng minh điều khẳng định thứ nhất. Rõ ràng rằng S
x 2(mod p) | 0  x ( p  ) 1 /  2  QR QR p . Để chứng minh S p
, điều này sẽ đúng nếu như chúng ta
chứng minh được rằng QR S p . Chọn một số
a bất kỳ a QR 2
p. Tồn tại số x < ,
p thỏa mãn điều kiện x a(mod p) . Nếu như x (  p  )
1 / 2 , thì a S . Giả sử rằng x > (
p – 1)/2. Như thế y p x ( p  ) 1 / 2 và 2
y ( p x)2 2 p  2 2 2
px x x a
 (mod p) . Chứng tỏ, QR S p .
Ta đi chứng minh điều khẳng định thứ hai. Để chứng minh #QR (  p  ) 1 / 2 p
,thì nó sẽ tương đương
với việc chứng minh rằng đối với tất cả số x, thỏa mãn bất đẳng thức 0  x y (  p  ) 1 / 2 , thì thỏa mãn điều kiện 2 2
x y (mod p) . Giả sử điều này sai: 2 2 x y (  x  )
y (x y)  ( 0 mod )
p . Dẫn đến, p|(x + y)
hoặc p|(xy). Bởi vì x + y < p
p là số nguyên tố. Nên chỉ có thể là x = y. Điều này trái ngược với giả thuyết. Vậy #QR (  p  ) 1 / 2 * p
. Mà #Z p  1 p
, nên điều khẳng định thứ hai hoàn toàn đúng.
Thường xuất hiện bài toán, xác định xem số n có phải là thặng dư bậc hai theo modulo đã cho hay
không. Vấn đề này gọi là bài toán về thặng dư bậc hai. Bài toán này được giải quyết thông qua định lý sau:
Định lý 2.6 (Tiêu chuẩn Euler): Cho
p là số nguyên tố. Đối với bất kỳ số *
x Zp , x là thặng dư bậc
hai khi và chi khi thỏa mãn điều kiện sau: x( p )1 / 2 1  mod p .
Chứng minh: Đối với x QR y Z 2
p thì tồn tại số * p sao cho y
x(mod p) . Theo định lý Fermat
chúng ta có, x( p )1 / 2  y p 1 1  mod p . 12
Ngược lại, nếu như x( p )1 / 2 1 mod p , như vậy x là nghiệm của đa thức y p(  )1/ 2  1 0  mod p .
Chúng ta đã biết Zp là một trường. Mà ta dễ dàng thấy rằng mỗi phần tử của trường là nghiệm của đa
thức y p y 0 mod p. Hay nói cách khác, mỗi phần tử khác không của trường là nghiệm của đa thức: p  1 y  1 ( ( p )1 / 2  y  ) 1 ( ( p )1 / 2 y  ) 1 0 mod p.
Mà tất cả các nghiệm này phải khác nhau, bởi vì đa thức có bậc p – 1. Điều này dẫn đến ( p – 1)/2
nghiệm của đa thức y (p  )1 / 2  1 0
 mod p phải khác nhau. Mà theo định lý về số phần tử của tập thặng
dư bậc hai ta có tập QRp có (
p – 1)/2 phần tử, mỗi phần tử là nghiệm của phương trình
y (p )1 / 2  1 0
 mod p . Và bất kỳ phần tử nào khác của nhóm *
Zp cũng phải thỏa mãn phương trình y (p )1 / 2 1  0
 mod p . Vậy x QRp .
Khi chứng minh định lý này chúng ta có thể điều khẳng định sau: Nếu như x Z p mà tiêu chuẩn Euler không thỏa mãn thì:
x( p )1 / 2   1 mod p .
2.10 Các ký hiệu Legendre và Jacobi
Ký hiệu Legendre là một công cụ hữu ích để xem xét liệu một số nguyên
a có là thặng dư bậc hai
theo modulo của một số nguyên tố hay không? p
2.10.1 Ký hiệu Legendre Định nghĩa 2.7 Nếu là p
số nguyên tố lẻ và là một a
số tự nhiên, thì ký hiệu Legendre  a
  được xác định như sau:  p  o 0 nếu a| ; p o 1
nếu a QRp ; o −1 nếu a QNRp
Các tính chất của ký hiệu Legendre:
Cho là một số nguyên tố lẻ và p , a
b Z. Khi đó ký hiệu Legendre có các tính chất sau:
ab   a  b  1.      
p   b  p
a   b  2. Nếu a b  mod p , thì     
p   p   1  3. 1     p   1 
p 1  1khi p 1 mod 4 4.  (   ) 1 2   p
 1khi p 3 mod 4 13 2  2  p 1 1 khi p  , 1 7 mod 8 5. (   ) 1 8    p   1 khi p  , 3 5 mod 8  p 1 3       khi p 6 1  , 1 11 mod 12 6.     ( ) 1      p   1 khi p  , 5 7 mod 12  p 2 5       khi p 5  1  , 1 4 mod 5 7.     ( ) 1     p  1 khi p  , 2 3 mod 5  p 1 7       khi p 6  1  , 1 , 3 , 9 , 19 , 25 27 mod 28 8.     ( ) 1      p   1 khi p  , 5 , 11 , 13 , 15 1 , 7 23 mod 28  q 1  p 1
q   p  9. Nếu và p
là các số nguyên tố lẻ thì q 2 2  ( ) 1    
p   q
Tiêu chuẩn Euler có thể viết lại như sau: Euler chứng minh rằng với mọi số nguyên tố p và số , a 1 a p ,
a a(p )1/2  mod p  .  p 
Ví dụ 2.26: Tính ký hiệu Legendre 12345     331   3  5  823     
 331 331  331   3  5  161     
 331 331  331   3  5  7   23       
 331 331  331   331   331       1   331 1    331 1    331 1    3   5   7   23  1 1 2   9         3 5 7   23  1 1 2   3 2         3 5 7   23  1 1 2   9         3 5 7   23      1   1   1   1   1
2.10.2 Ký hiệu Jacobi Định nghĩa 2.8
Ký hiệu Jacobi là tổng quát hóa của ký hiệu Legendre cho số tự nhiên lẻ . Giả sử n   k
n p 1 p 2 ...p 1 2 k
là dạng phân tích tiêu chuẩn của . Vớ n
i số nguyên bất kỳ, ký hiệu Jacobi là: a    1 2 k
a   a   a   a     ...
, trong đó tất cả các ký hiệu bên vế phải là ký hiệu Legendre.  n  
p   p   p   1   2   k  14
Các tính chất của ký hiệu Jacobi:
Cho là các số tự nhiên lẻ và n ,
a bZ. Kí hiệu Jacobi có các tính chất sau:
1. Nếu n là số nguyên tố thì ký hiệu Jacobi là ký hiệu Legendre  a  2.     , 0 , 1  1  n   a  3.   0  khi gcd , a n 1   n
ab   a  b  4.     
n   n  n
a   a   b   a  5.    
   , điều này dẫn tới   là 0 hoặc 1.
mn   m   n   2 n
a  b  6. Nếu a b
 mod n, thì    
n   n   1  7.   1   n   1 
n  1 1khi n 1 mod 4 8.    ( ) 1 2   n
 1khi n 3 mod 4 2  2  n  1 1 khin  , 1 7 mod 8 9.   ( ) 1 8   n   1 khi n  , 3 5 mod 8 m  1 n  1  m n
10.   ( )     1 4  n m Ví dụ 2.27:  37035   294  2 147       1  .    331   331  331 331
 147   331  37   147              
 331   147   147   37  36   2 2
  9   37  1              1 
37   37   37   9  9 
Vì 331 là số nguyên tố nên từ đó 37035 là thặng dư bậc hai mod 331.
Có hai tính chất đúng với ký hiệu Legendre nhưng không thể mở rộng cho ký hiệu Jacobi.
+ Khác với ký hiệu Legendre, ký hiệu Jacobi không cho biết liệu
a có phải là một thặng dư bậc hai  a   a
theo modulo hay không. Sự thực nếu n aQR   1  n thì . Tuy nhiên   1
 thì không có nghĩa là a   n   n QRn.  a
+ Tính chất thứ hai không thể mở rộng gắn với đồng dư thức Euler a( p )1 / 2  mod p  với số  p  nguyên tố p và số nguyên
a bất kỳ. Một cách tự nhiên đồng dư thức Euler mở rộng từ ký hiệu Legendre 15  a
sang ký hiệu Jacobi là   a(n )1 / 2 
mod n với hợp số lẻ dương .
n Tuy nhiên đồng dư thức này là sai  n
với ít nhất một nửa của các a mod khi n là hợp số. n
2.10.3 Bổ đề Gauss Nếu như và p
là 2 số nguyên tố khác 2 thì: qq 1  p 1
q   p  2 2  ( ) 1    
p   q
Hay nói cách khác, nếu như một trong 2 số hoặc p có dạng 4 q n + 1, thì
p bình phương theo modulo q khi và chỉ khi là bì q
nh phương theo modulo . Nếu như p cả 2 số p và có dạng q 4 + n 3, thì bình p phương theo modulo khi và chỉ khi q
không là bình phương theo modulo q . p Chứng minh:
Cho rằng p q , xét trường F q1 p
và cũng biết đây là cũng là nhóm cyclic. Theo định lý nhỏ Fermat thì q1 p
 1 chia hết cho q, nên trong nhóm tồn tại phần tử có bậc là .
q Chúng ta xem nó là w, lúc này w 1  và q w 1  trong F q1 p
. Bây giờ xác định tổng Gauss:  xy   x  wx q q Z  
Chúng ta sẽ chứng minh 2 điều khẳng định sau:
Điều khẳng định 1: Ta có đẳng thức sau q 1 y2 2 ( ) 1 q . Chứng minh:  xz  2 x z ux u (  x ) y   w   w     
x,z q   u Z q qx Zq  
Từ tổng cuối cùng x lấy giá trị trong tập Zq \ 0 . Khi x 0  , có:  x u
(  x)    x 2 1   ux 1  q1 1   ux 1          2 ( ) 1   .  q   q  q   q  Từ đây q 1 ( 2 ) 1 y2   u C , uw uZ q   1 1 ux  với Cu   .  x Z \ q q 0       Rõ ràng  1  C q 1 0      .  x Z \ q q 0    16 Nếu như u 0  , thì 1 s 1 
  ux nhận các giá trị trong tập Z \ 1 q , cho nên:  s   1   1  C u          ,  s Zq q   q   q   0  Bởi vì 0   , còn trong Z \ q
 0 số lượng phần tử là bình phương và số lượng phần tử không là  p
chính phương là như nhau. Từ đây:
C wu (q  ) 1  wu q u . u Zu \  q Zq 0
Vậy đã chứng minh được điều khẳng định 1, chúng ta chứng minh tiếp điều khẳng định tiếp theo.
Khẳng định thứ 2: Ta có đẳng thức sau:   p y p 1    .  q
Chứng minh: Theo định thức Newton rút ra: 1 1 px    zp    pxp zp y   w   w y         y ,  x Z q q q q q    x Zq      
Vậy điều khẳng định thứ hai đã được chứng minh.
Kết hợp hai khẳng định trên chúng ta có đẳng thức:  p 1  p   q 1  q 1 p 1 2 p 1  q    y   2 ( ) 1  q ( 2 2   ) 1      q     p
2.11Tính căn bậc hai theo modulo số nguyên
2.11.1Tính căn bậc hai theo modulo là số nguyên tố
Cho là số nguyên tố, thì có 2 phương án tính như p sau:
Phương án 1: p , 3  7 mod 4
Trong trường hợp này số + 1 chia hết p
cho 4. Cho a QRp . Ta định nghĩa x như sau: p 1 
x a 4 mod p ,
Bởi vì theo tiêu chuẩn Euler, a( p )1/ 2 1
 mod p , nên x2 a(p )1/2  a (p )1/ 2  a a
 mod p . Như vậy số
x là căn bậc hai của a theo modulo p.
Phương án 2: p 5  mod 8 Trường hợp này thì
p + 3 chia hết cho 8. Bởi vì số (
p – 1)/2 là số chẵn, số –1 thỏa mãn tiêu chuẩn
Euler và là thặng dư bậc hai. Cho a QRp , ta định nghĩa x như sau: p 3  8 x a  (mod p ) ,
Từ điều kiện a (p )1/ 2 1
 mod p a( p )1/ 4 1  
mod p x2 a( p 3)/ 4 a( p )1/ 4 a  a mod p .
Điều này chứng tỏ x được định nghĩa ở trên là căn bậc hai của
a hoặc – . Nếu như số dương thì thuật toán a
giải quyết xong, nếu số âm thì: 17 2  x (   1x)2 a  (mod p) p3
Dẫn đến x  1 8 a (mod )
p là số cần tìm. Như vậy bài toán dẫn đến tìm  1 mod p .
Cho số b là số không thặng dư bậc hai theo modulo .
p Như vậy theo tiêu chuẩn Euler ta có
(b(p )1/4 )2 b(p )1/2  
 1 mod p , như vậy có thể thay  1 mod p bằng b(b )1/ 4 mod p . Bởi vì 2
p  1(p  ) 1 (p  ) 1  8 ( k  6) 8 ( k  ) 4  ( 8 4k ' ) 3 (2k " )
1 . Mà ta đã biết 2  QNRp , nên có thể dùng ( p ) 1 / 4 2  thay cho  1
Ngoài ra trong trường hợp tổng quát ta có thể tính như sau: Từ tiêu chuẩn Euler, đồng dư thức
x2 a mod p giải được khi và chỉ khi là thặng dư bậc hai theo modu a lo , có nghĩa: p p1 a 2 1  mod p .
Giả sử rằng đẳng thức cuối cùng là đúng. Cũng có thể giả sử rằng, chúng ta biết một số số N là không
thặng dư bậc hai theo modulo , có nghĩa là biết p N với tính chất: p1 N 2   1 mod p . Giả sử p s
 1 2 l , l là số lẻ. Chúng ta sẽ tìm dãy số b , ..., b s 1 0 sao cho: i a ( b l 2 )2 1  mod p . i Có thể đặt b 1  b i l 2 is 1 
. Nếu như i đã tìm được và
0 , khai căn, chúng ta nhận được rằng 1 2 (a b ) so i
sánh với 1 và –1 theo modulo .
p Trong trường hợp thứ nhất thiết lập quan hệ b bi  1
i , trong trường hợp p 1 l 1  thứ hai thì  1 2 2 b b N
. Cuối cùng ta có alb 1  mod p 0
, từ đây ( 2 )2  mod , có nghĩa là: ii a b a p 1 i 0 l 1  x a 2   b mod p . 0
2.11.2Tính căn bậc hai theo modulo là hợp số
Chúng ta biết rằng n pq , p
q là số nguyên tố, nhóm *
Z đồng cấu với không gian * * Z x Z . Bởi n p q
vì đồng cấu đảm bảo tính chất lệnh số học nên x 2 y mod n , thỏa mãn khi và chỉ khi biểu thức trên đúng
với modulo p và modulo .
q Điều này có nghĩa nếu triển khai được
n ra thừa số thì căn bậc hai theo
modulo n có thể tính được theo thuật toán sau: Thuật toán 2.1:
Đầu vào 2 số nguyên tố p, thỏa mãn điều kiện q = n , số nguyên pq y QRp .
Đầu ra: Căn bậc hai của y theo modulo n
xpy(mod p)
xqy(mod q)
return vp * xp + vq * xq mod n 18
v q 1(mod p).p p v p   ( 1 mod q) q . q
1.5 Thuật toán bình phương và nhân
Thuật toán “bình phương và nhân” để tính z xb mod n . Đây là thuật toán tính hàm mũ hiệu quả,
mà trong các chương tiếp theo chúng ta sẽ áp dụng nó để tính giá trị hàm mũ đối với trường hợp số mũ lớn.
Trong thuật toán này, ta coi rằng số mũ được biểu thị ở dạng nhị phân như sau: b l b   i b 2 i i0
Trong đó bi = 0 hoặc 1, 0 i l  1 .
Thuật toán tính: z xb mod n gồm các bước như sau: 1. z = 1
2. for i = l – 1 down to 0 do 3. z z2  modn 4. if bi = 1 then z
z * x mod n
Ví dụ : Tính 97263533 mod 11413 3533 = 211 10 8 7 6 3 2
+2 +2 +2 +2 +2 +2 +1 = 110111001101 z = 1 i bi z mod 11413 11 1 12 * 9726 = 9726 10 1 97262 * 9726 = 2659 9 0 26592 = 5634 8 1 56342 * 9726 = 9167 7 1 91672 * 9726 = 4958 6 1 49582 * 9726 = 7783 5 0 77832 = 6298 4 0 62982 = 4629 3 1 46292 * 9726 = 10185 2 1 101852 * 9726 = 105 1 0 1052 = 11025 0 1 110252 * 9726 = 5761
Vậy 97263533 mod 11413 = 5761 19