1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Kỹ thuật lập trình - Chương 2: Giới thiệu lý thuyết số

19 1,4K 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 918,5 KB

Nội dung

Tài liệu Kỹ thuật lập trình - Chương 2: Giới thiệu lý thuyết số

Trang 1

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 ba và ab, thì a =  b.

o Số b bất kỳ khác 0 là ước số của 0.

o Nếu bg và bh, thì b(mg + nh) đối với bất kì số nguyên m, n.

Để chứng minh khẳng định cuối cùng, cần chú ý như sau:

nếu bg thì g có dạng g = b * g1, đối với số nguyên g1 nào đó,

nếu bh thì h có dạng 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, b là ước số của 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: b = 7, g = 14, h = 63, m = 3, n = 2

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 p > 1 được gọi là số nguyên tố, nếu chỉ có  1 và  p là ước số của nó

Một số nguyên bất kỳ a > 1 có thể phân tích thành các thừa số và được trình bày dưới dạng:

,

2 1

2

p

ở đây: p1 < p2 < … < p t 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:

,

P

a p p

a ở đây tất cả các a p  0

Trang 2

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 a thì giá trị lớn nhất của chỉ 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  k p = m p + n p , đố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 p k 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ố p với chỉ số không vượt hơn k, nghĩa là số p j với j  k Như vậy:

ab  a p  b 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ố a và b Nói rằng, một số nguyên dương c là UCLN của a và b, nếu:

o c là ước số của a và b.

o Ước số bất kỳ của a và b đều là ước số của c.

Có thể định nghĩa tương đương như sau:

gcd(a, b) = max [k, khi ka và kb]

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(a, 0 ) = |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)  k p = min (a p , b p ), đối với tất cả các p.

Trang 3

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 và 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 a và b là 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 n và một số nguyên a bất kỳ, khi chia a cho n, ta nhận được một

số nguyên q nào đó và số dư 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 và r, phù hợp với

quan hệ tính toán trên

Ví dụ 2.11: a = 11; n = 7; 11 = 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 n Như vậy, đối với một số nguyên a bất kỳ có thể viết :

a = a / n * n + (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,bZ, n  N Ta nói a đồng dư với b theo modulo n, khi a và b chia cho n có cùng số dư,

và được viết dưới dạng sau:

n b

a  mod .

Chứng minh: Giả sử chia a và b 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à aq1nr1 và bq2nr2 Trong đó 0r1n 1 và 0r2n 1 Khi

đó có thể dễ dàng thấy rằng abmodn khi và chỉ khi r  Như vậy: 1 r2 abmodn khi và chỉ khi a mod nb modn

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 a1 b1 mod na2 b2 mod n thì a1 a2 b1 b2 mod n

Chứng minh: Từ giả thuyết ta có a1 nt1 b1 và a2 nt2 b2, suy ra

n t t b

b

a

a1 2 1 2(1 2) , điều này có nghĩa là a1 a2b1b2 mod n

Tính chất 2.2: Nếu a1 b1 mod na2 b2 mod n thì a1 *a2b1*b2modn

Chứng minh: Từ giả thuyết ta có a1 nt1b1 và a2 nt2 b2, suy ra

n t nt t b t b b

b

a

a1* 2 1 * 2 ( 1 2  21  1 2) , điều này có nghĩa là a1 *a2 b1*b2 modn

Tính chất 2.3: Nếu như gcd(d, n)1, ab modn,aa d,bb d , thì ab modn

Trang 4

Chứng minh: Từ giả thuyết ta có (a1  b1)d|n, mà gcd(d,n)1, nên suy ra (a1 b1)|n, hay

n

b

a1 1mod

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 2mod7,16 2mod7và23 7mod7, từ tính chất 2.2 có:

7 mod

2

37  2  2

n ,16  1 2  1mod7

n ,23n 7nmod7

Từ tính chất 2.1 có: 37n+2+16n+1+23n 7.2nmod7

 , 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 ) là tập hợp các số nguyên n 0,1, , n 1 bao gồm 2 phép toán cộng và nhân Việc cộng và nhân trong Z được thực hiện giống như cộng và nhân các số nguyên, 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143 Để rút gọn 143 theo modulo 16, ta thực hiện phép chia bình thường: 14381615, bởi vậy

15 16

mod

143  Do đó 111315 trong Z 16

Các định nghĩa trên phép cộng và phép nhân trong Z thoả mãn hầu hết các quy tắc quen thuộc n

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,bZ n,abZ n

o Phép cộng là giao hoán, tức là với bất kì a,bZ n thì: a + b = b + a.

o Phép cộng là kết hợp, tức với bất kì a,b, cZ n:

(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  Z n:

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  Z n là m – a, nghĩa là a + (m – a) = (m – a) + a = 0 với bất kì a  Z n

o Phép nhân là đóng, tức với bất kì a,bZ n, a*bZ n

o Phép nhân là giao hoán, nghĩa là với bất kì a,bZ n , a*bb*a

o Phép nhân là kết hợp, nghĩa là với a,b,cZ n , (a*b)*ca*(b*c)

o 1 là phần tử đơn vị của phép nhân, tức là với bất kì a  Z n:

a a

a* 1  1 * 

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,cZ n,

c b c a c b

1.4 Hàm Euler, định lý Euler và định lý Fermat

Định nghĩa 2.2 (Hàm Euler)

Trang 5

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 n, thì (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 p là số nguyên tố thì (p)p 1

3 Nếu như p và q là hai số nguyên tố cùng nhau thì (pq)(p)*(q)

4 (p s) p s 1 (p 1 )

k e

e p p p

2 1

 , ở đây p , 1 p , …, 2 p là số nguyên tố, thì k

k p p

p n

(

2 1

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) n(n)n)

Định lý Euler: Cho n1,gcd(a, n)1, và (n)là hàm Euler Khi đó ta có:

n

a (n) 1 mod

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ử x1, , x(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.

Hãy xét tất cả các khả năng của tích x i a, với i 1 ,(n) Bởi vì a nguyên tố cùng nhau với n và

i

x nguyên tố cùng nhau với n, nên tích x i a cũng nguyên tố cùng nhau với n, do đó có

n x

a

x ij mod

Trang 6

Chú ý rằng các phần dư của phép chia x i a cho n là khác nhau Nếu điều này không đúng, có nghĩa

là tồn tại i  , sao cho1 i2

n a

x a

x i1  i2 mod

Cho nên (x i1  x i2)a0 modn 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 đương với

n x

x i1  i2 0mod

Điều này là mâu thuẫn, bởi các số x1, , x(n) là các cặp khác nhau theo modulo n

Hãy nhân tất cả đẳng thức x i ax j mod n, thì thu được:

n x

x a

x

) (

Hay

n a

x

n ( 1) 0mod

) (

Bởi vì số x1 x(n) mod n nguyên tố cùng nhau với n nên đẳng thức cuối cùng tương đương với

n

a (n) 1 0 mod

Ta có một công thức quan trọng sau: a  (n ) + 1  a mod n

Định lý Fermat nhỏ: Cho p là số nguyên tố, a là số nguyên dương không chia hết cho p Khi đó ta có

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  , p là số nguyên tố, thì ta có: Z a pamodp

2 Choa,bZ , p là số nguyên tố (ab)na nb nmodp

Ví dụ 2.16: Chứng mình rằng 118 +218 +318 +418 +518 +618  –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:

7 mod 1

16

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6mod71mod7

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,bZ,b 0, tồn tại duy nhất cặp giá trị (q, r) với q  Zr  N thỏa mãn:

r

bq

a  ,0 r  b

ở đây r gọi là số dư

Có một số ký hiệu cho số dư như sau:

)

(a

R

rb , r  amod b

Trang 7

Một số tính chất đơn giản của về số dư:

1 Rb(a)R b(a), bởi vì

b r

r b q a

b

r

r qb

a

0

) )(

( 0

2 R b(aib)R b(a),iZ , bởi vì

r b i q

ib

a (  ) 

Nếu như r = 0 thì ta nói a chia hết cho b, ký hiệu là a b

Định lý 2.1: Đối với bất kỳ các số a,b,iZ :

) , gcd(

)

,

Chứng minh: Nếu như a db d , thì aq1d,bq2d Lúc này aibd(q1 iq2) 

d

ib

a ) 

(  Có nghĩa là:

) , gcd(

) ,

gcd(a baib b (*)

Tương tự giả sử rằng ( a ib) db daibq1d, b q2d Lúc này ad(q1 iq2) 

d

a

Có nghĩa là:

) , gcd(

)

,

gcd(a baib 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,bZ,b 0, ta có:

)) ( , gcd(

)

,

gcd(a bb R b a

Chứng minh

Bởi vì abqR b (a),

) ), ( gcd(

) , gcd(

)

,

gcd(a baqb bR b a 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à a 1 với a0 > a1

Thuật toán được miêu tả bằng dãy các phép chia như sau:

,

2 1

1

0 a q a

a   0 < a 2 < a1

,

3 2

2

1 a q a

a   0 < a 3 < a2

,

1 1

a      0 < a k < |ak-1|

0

k k

k a q

a

Dựa vào định lý 2.1, nhận được gcd(a0, a1) = gcd(a1, a2) = … = gcd(a k , 0) = 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:

814 = 4 * 187 + 66

187 = 2 * 66 + 55

66 = 1 * 55 + 11

Trang 8

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 a và b với a > b

Ra: UCLN của a và b

(1) While b # 0 do

r  a 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 n Phần tử nghịch đảo của a là phần tử b  Z n sao cho a*bb*a  1 mod n

Kí hiệu phần tử nghịch đảo của a là a-1.

Định lý 2.2: Cho số nguyên a > 0 nguyên tố cùng nhau với n, thì 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 a theo modulo n,

nhậ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 và k thỏa mãn điều kiện trên, nghĩa là

n ka

n

ha mod  mod Điều này dẫn đến hk 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 và 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

,

2 1

1

0 a q a

a   0 < a 2 < a1

,

3 2

2

1 a q a

a   0 < a 3 < a2

,

1 1

a      0 < a k < a k-1

Ta dễ dàng rút ra dãy sau:

1 1

2  

 

k k k

aa k 1 a k 3 q k 2a k 2 nên suy ra

)

1

a , tương tự như thế, chúng ta rút ra a k 2, đến cuối cùng chúng ta có được biểu thức dạng sau:

y a x a

a k  0  1 (2.1) Nếu như gcd(a0, a1)1, chúng ta có x là phần tử nghịch đảo của a 0 theo modulo a1

Ví dụ 2.18 (Thuật toán Euclide mở rộng):

1 Tìm x và y trong biểu thức (2.1) với a 0 = 814 và a 1 = 187

Trang 9

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 Z n

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ư axb mod ncó nghiệm duy nhất, và nghiệm đó là:

n ba

x (n)  1 mod

Chứng minh: Theo định lý Euler, ta có a (n) 1 modn

 , suy ra a.ba (n) 1 b mod n

nghiệm x ba (n ) 1 mod 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 4-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 a đủ lớn Bởi vậy chúng ta xem cá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 axb mod n, suy ra x ba 1 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 axb 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 axb mod ncó 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.

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ố a và n, có thể tính

) ,

gcd( n a n

a  (2.3)

Trang 10

Bởi vì b/gcd(a, n) là số nguyên, nên nhân hai vế (2.3) cho b/gcd(a, n) và nhận được công thức (2.2),

n a

b

) , gcd(

Dễ dàng kiểm tra phương trình đã có nghiệm dạng

n n

a

ni

) , gcd(

, i = 0, 1, 2, , gcd(a, n) – 1.

Tức là phương trình đã cho có gcd(a, n) nghiệm khác nhau, nghiệm này nhỏ hơ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  18 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, …, n k là các số nguyên dương nguyên tố cùng nhau từng đôi một và c1, c2,

…, c k là các số nguyên khi đó hệ phương trình đồng dư:

1

1 mod n c

x 

2

2mod n c

x 

k

c

Có nghiệm duy nhất theo modulo n và nghiệm đó là:

k

i ciNi Ni ni n

x

1

ở đây nn1n2 n k

i i n

M

Chứng minh:

Nếu ta chứng minh hệ trên tương đương với một phương trình sau:

n x

x  0 mod

ở đây  

k

n N

N c

x

1

1

0 ( mod )thì coi như chúng ta đã chứng minh được định lý trên

Ta có Ni chia hết cho n s , khi si Điều này dẫn đến ( 1mod ) (mod )

0 N i N i n i c i n i

) (mod

0 c i n i

x  Điều này có nghĩa hệ trên tương đương với hệ sau:

1

0 mod n x

x 

2

0 mod n x

x 

Ngày đăng: 26/04/2014, 20:53

HÌNH ẢNH LIÊN QUAN

Bảng 2.1: Một số giá trị của hàm Euler  φ (n ) - Tài liệu Kỹ thuật lập trình - Chương 2: Giới thiệu lý thuyết số
Bảng 2.1 Một số giá trị của hàm Euler φ (n ) (Trang 5)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w