Các ứng Dụng Của định Lý Euler Trong Số Học - 123doc

Trước khi trình bày nội dung chính của khóa luận, em xin bày tỏ lòngcảm ơn tới các thầy cô khoa Toán, trường Đại học Sư phạm Hà Nội 2, cácthầy cô trong bộ môn tổ Đại số cũng như các thầy

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2

Trang 2

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2

Trang 3

Trước khi trình bày nội dung chính của khóa luận, em xin bày tỏ lòngcảm ơn tới các thầy cô khoa Toán, trường Đại học Sư phạm Hà Nội 2, cácthầy cô trong bộ môn tổ Đại số cũng như các thầy cô giảng dạy đã tậntình truyền đạt những kiến thức quý báu và tạo điều kiện thuận lợi để emhoàn thành tốt nhiệm vụ khóa học và khóa luận.

Đặc biệt, em xin bày tỏ sự kính trọng và biết ơn sâu sắc tới Thầy ĐỗVăn Kiên, người đã trực tiếp hướng dẫn, giúp đỡ và chỉ bảo tận tình để

em có thể hoàn thành khóa luận này

Do thời gian, năng lực của bản thân và điều kiệu ngoại cảnh nên bảnkhóa luận này không tránh khỏi những thiếu sót Vì vậy, em rất mongnhận được những ý kiến đóng góp quý báu của thầy cô và các bạn

Hà Nội, tháng 5 năm 2019

Sinh viên

Trịnh Ngọc Minh

Trang 4

Em xin cam đoan khóa luận Các ứng dụng của định lý Euler trong sốhọc là công trình nghiên cứu của cá nhân em dưới sự hướng dẫn của giảngviên ThS Đỗ Văn Kiên Đề tài là sự kết hợp của việc nghiên cứu, tìm tòi

và tổng kết các tài liệu tham khảo nên các nội dung trong khóa luận làhoàn toàn trung thực Đề tài sử dụng một số tài liệu tham khảo được ghi

rõ trong danh mục "Tài liệu tham khảo"

Nếu phát hiện bất cứ sự gian lận nào, em xin hoàn toàn chịu tráchnhiệm về khóa luận nghiên cứu của mình !

Hà Nội, tháng 5 năm 2019

Sinh viên

Trịnh Ngọc Minh

Trang 5

Lời mở đầu 1

1.1 Vành các số nguyên 2

1.1.1 Quan hệ hai ngôi 2

1.1.2 Xây dựng vành các số nguyên 3

1.1.3 Vành các lớp thặng dư 6

1.2 Số nguyên tố 7

1.2.1 Số nguyên tố 7

1.2.2 Các số nguyên tố cùng nhau 10

1.3 Hàm Euler, định lý Euler 12

2 Những ứng dụng của định lý Euler 15 2.1 Mật mã RSA 15

2.1.1 Lịch sử 15

2.1.2 Cơ chế hoạt động 16

2.1.3 Mã hóa 19

2.1.4 Giải mã 19

2.1.5 Tạo chữ ký số cho văn bản 22

Trang 6

2.1.6 Tại sao RSA hiệu quả? 22

2.2 Số giả nguyên tố 24

2.2.1 Số Mersenne 29

2.2.2 Số Fermat 32

2.2.3 Số Carmichael 34

2.3 Thuật toán về sự phân tích p − 1p − 1p − 1 của Pollard 38

2.3.1 Thuật toán p − 1p − 1p − 1 của Pollard 39

2.3.2 Chú ý 43

2.3.3 Bảo mật RSA 44

2.3.4 Sự phân tích thành thừa số của số Mersenne 46

Trang 7

Lời mở đầu

Leonhard Euler (1707-1783) là một trong những nhà toán học nổitiếng của thế kỉ XVII, ông được coi là một trong những nhà toán học vĩđại nhất trong lịch sử Euler đã có những khám phá quan trọng và cóảnh hưởng đặc biệt trong rất nhiều lĩnh vực toán học như lý thuyết đồthị, vi tích phân, lý thuyết số giải tích, giải tích toán học, Tài lệu khóaluận này đề cập, tổng hợp và nghiên cứu về một công trình nổi tiếng củaông, đó là Định lý Euler -định lý đặc biệt quan trọng trong lý thuyết số

Khóa luận gồm hai chương

Chương 1 "Một số kiến thức chuẩn bị" trình bày một số khái niệm

và kết quả cơ bản về số nguyên tố, vành số nguyên, hàm Euler và định

lý Euler

Chương 2 "Những ứng dụng của định lý Euler" trình bày về nhữngứng dụng của định lý Euler bao gồm mật mã RSA và một số ứng dụngcủa mật mã Khái niệm số giả nguyên tố và một số dạng số giả nguyên

tố cơ bản Thuật toán về sự phân tích p − 1 của Pollard

Trang 8

Một số kiến thức chuẩn bị

1.1 Vành các số nguyên

1.1.1 Quan hệ hai ngôi

Cho hai tập hợp X, Y Mỗi tập con S của tích Descartes X × Y đượcgọi là quan hệ hai ngôi từ X vào Y Nếu (a, b) ∈ S thì ta nói a có quan

hệ S với b và ký hiệu là aSb Đặc biệt khi X = Y thì ta nói S là mộtquan hệ hai ngôi trên X

Định nghĩa 1.1 Cho S là một quan hệ hai ngôi trên X Ta nói S làmột quan hệ tương đương nếu thỏa mãn các tính chất sau:

1 (Phản xạ) Với mọi a ∈ X suy ra aSa

2 (Đối xứng) Với mọi a, b ∈ X; nếu aSb thì bSa

3 (Bắc cầu) Với mọi a, b, c ∈ X; nếu aSb và bSc thì aSc

Định nghĩa 1.2 Cho S là một quan hệ hai ngôi trên X Ta nói S làmột quan hệ thứ tự nếu thỏa mãn các tính chất sau:

1 (Phản xạ) Với mọi a ∈ X thì aSa

Trang 9

2 (Phản đối xứng) Với mọi a, b ∈ X; nếu aSb và bSa thì a = b.

3 (Bắc cầu) Với mọi a, b, c ∈ X; nếu aSb và bSc thì aSc

Trang 10

Định lý 1.1 Vành Z là một vành cực tiểu, chứa tập hợp các số tự nhiên

N như là nửa nhóm con cộng và nửa nhóm con nhân, nghĩa là mọi vànhcon của Z chứa tập hợp số tự nhiên N đều trùng với Z Hơn nữa mọivành cực tiểu chứa tập hợp số tự nhiên N như là nửa nhóm con cộng vànửa nhóm con nhân đều đẳng cấu với Z

Chứng minh (Xem [3-tr.31])

Định nghĩa 1.3 Trên vành số nguyên Z ta xác định một quan hệ haingôi (≤) như sau: ∀x, y ∈ Z, x ≤ y khi và chỉ khi y − x ∈ N

Trang 11

Ta dễ dàng chứng minh được rằng quan hệ (≤) là một quan hệ thứ

tự trên Z Hơn nữa Z cùng với quan hệ thứ tự đó là một tập sắp thứ tựtoàn phần

Một phần tử x ∈ Z sao cho 0 ≤ x, tức là x ∈ N, được gọi là phần tửkhông âm Một phần tử x ∈ Z mà x /∈ N được gọi là phần tử âm và kýhiệu x < 0 Hơn nữa quan hệ thứ tự (≤) thu hẹp trên N cũng cho ta mộtquan hệ thứ tự toàn phần trên N

Định nghĩa 1.4 Một vành giao hoán A cùng với một quan hệ thứ tựtoàn phần (≤) trên A được gọi là vành sắp thứ tự nếu các điều kiện sauđược thỏa mãn:

i) x ≤ y kéo theo x + z ≤ y + z với mọi z ∈ A

ii) 0 ≤ x và 0 ≤ y kéo theo 0 ≤ xy

Định lý 1.2 Vành số nguyên Z cùng với quan hệ thứ tự thông thường

Trang 12

Hệ quả 1.2 Vành số nguyên Z cùng với ánh xạ

Ký hiệu: a ≡ b (mod m)

Rõ ràng quan hệ ≡ theo mođun m là một quan hệ tương đương trênZ

Định nghĩa 1.6 Tập thương của tập hợp các số nguyên Z theo quan

hệ đồng dư (≡) theo môđun n được gọi là tập các lớp thặng dư môđun

n, và được ký hiệu là Zn Mỗi phần tử của Zn được gọi là một lớp thặng

Trang 13

Định lý 1.4 Tập hợp tất cả các lớp thặng dư môđun n, Zn, cùng vớiphép toán cộng và phép toán nhân vừa xác định trên đây là một vànhgiao hoán có đơn vị.

Tập hợp các số nguyên tố kí hiệu là P

Định lý 1.5 (Định lý cơ bản của số học) Mọi số tự nhiên a lớn hơn 1

có thể viết một cách duy nhất (không kể sự sai khác về thứ tự các thừasố) thành tích các thừa số nguyên tố, tức là

a = p1α1p2α2 .pkαk,

trong đó p1, p2, , , pk là các số nguyên tố và α1, α2, , αk là các sốnguyên dương

Ta gọi sự phân tích ở trên là sự phân tích tiêu chuẩn của số nguyêndương a

Trang 14

p3, Quá trình này phải kết thúc vì ta có a > a1 > a2 > > 0 nên

p2p3 pn = q2q3 qm.Lập lại lý luận trên với p2, p3, cho tới khi đã ước lược hết các thừa

số nguyên tố của một vế trong đẳng thức trên, vì không thể xảy ra

1 = pm+1 pn hoặc 1 = qn+1 qm cho nên ta được m = n và pi = qi

Trang 15

2 Cho p là số nguyên tố; a ∈ N; a 6= 0 Khi đó

(a, p) = p ⇔ p|a,(a, p) = 1 ⇔ p - a

3 Nếu tích của nhiều số chia hết cho một số nguyên tố p thì có ít nhấtmột thừa số chia hết cho p, tức là nếu

thì tồn tại ai sao cho p là ước của ai

4 Ước số dương bé nhất khác 1 của một hợp số a là một số nguyên tốkhông vượt quá √

a

5 Số a > 1 không có ước nguyên tố nào từ 2 đến √

a thì a là số nguyên

Trang 16

6 2 là số nguyên tố nhỏ nhất và cũng là số nguyên tố chẵn duy nhất

7 Tập hợp các số nguyên tố là vô hạn (tương đương với việc không có

Ta xét riêng với trường hợp c là ước chung lớn nhất của a và b Kýhiệu U (a, b) = max k

k|a k|b

Dễ thấy rằng

U (a, b) = U (a, −b) = U (−a, b) = U (−a, −b)

Nói chung, U (a, b) = U (|a|, |b|) 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 có U (a, 0) = |a| Dễ dàng xác địnhđược ước chung lớn nhất của hai số nguyên dương, nếu các số này đượcphân tích tiêu chuẩn dưới dạng tích của các thừa số nguyên tố Giả sửtìm ước chung lớn nhất của a và b với a < b :

Trang 17

• Ta xác định được phân tích tiêu chuẩn của a, b như sau:

a = p1α1p2α2 .pnαn, b = q1β1q2β2 .qmβm

trong đó p1, p2, , , pn, q1, q2, , , qm là các số nguyên tố và α1,

α2, , αn, β1, β2, , βm là các số nguyên dương

• r là các thừa số chung của a, b

• γ là số mũ nhỏ nhất của mỗi thừa số chung r

Gọi A là iđêan của vành số nguyên Z sinh ra bởi a1, a2, , an Vì Z

là một vành chính nên A là một iđêan chính, nghĩa là có c ∈ Z để cho

A = cZ, c 6= 0 vì ai 6= 0 Ta có thể giả thiết rằng c > 0, ta sẽ chứngminh rằng c = (a1, a2, , an) Thật vậy, ai = A ∈ cZ nên c|ai với mọi

i = 1, n, nghĩa là c là một ước chung của a1, a2, , an

Mặt khác, vì c ∈ A và A là iđêan sinh bởi a1, a2, , an, nên có các

số nguyên x1, x2, , xn sao cho c = a1x1, a2x2, , anxn, do đó, mọi ướcchung của a1, a2, , an đều là ước của c Suy ra c là một ước chung lớnnhất của a1, a2, , an

Vậy luôn tồn tại ước chung lớn nhất của a1, a2, , an 2

Trang 18

Định nghĩa 1.9 Các số nguyên a và b được gọi là nguyên tố cùng nhaunếu chúng không có ước số nguyên tố chung, hay U (a, b) = 1.

1.3 Hàm Euler, định lý Euler

Định nghĩa 1.10 Hàm Euler (hay phi hàm Euler) là hàm biểu thị các

số tự nhiên khác 0, không lớn hơn n và nguyên tố cùng nhau với n

Trang 19

1 − 1

pk



6 |Z∗n| = ϕ(n)

Định lý 1.8 (Định lý Euler) Nếu n là số nguyên dương bất kỳ và a là

số nguyên tố cùng nhau với n, thì

Trang 21

Trước đó, vào năm 1973, Clifford Cocks, một nhà toán học người Anhlàm việc tại GCHQ, đã mô tả một thuật toán tương tự Với khả năngtính toán tại thời điểm đó thì thuật toán này không khả thi và chưa baogiờ được thực nghiệm Tuy nhiên, phát minh này chỉ được công bố vàonăm 1997 vì được xếp vào loại tuyệt mật.

Thuật toán RSA được MIT đăng ký bằng sáng chế tại Hoa Kỳ vàonăm 1983 (Số đăng ký 4405829) Bằng sáng chế này hết hạn vào ngày

21 tháng 9 năm 2000 Tuy nhiên, do thuật toán đã được công bố trướckhi có đăng ký bảo hộ nên sự bảo hộ hầu như không có giá trị bên ngoàiHoa Kỳ Ngoài ra, nếu như công trình của Clifford Cocks đã được công

Trang 22

bố trước đó thì bằng sáng chế RSA đã không thể được đăng ký.

2.1.2 Cơ chế hoạt động

Mô tả sơ lược

Thuật toán RSA có hai loại khóa: khóa công khai (hay khóa côngcộng) và khóa bí mật (hay khóa cá nhân) Mỗi loại khóa là những con

số cố định được sử dụng trong quá trình mã hóa và giải mã Khóa côngkhai là khóa được công khai cho mọi người đều biết, mọi người dựa vào

mã công khai để mã hóa dữ liệu Tuy nhiên khi giải mã thì những thôngtin mã hóa bằng khóa công khai chỉ có thể được giải mã dựa vào khóa

cá nhân (bí mật) tương ứng Nói cách khác, mọi người đều có thể mãhóa nhưng chỉ có người biết khóa cá nhân (bí mật) mới có thể giải mãđược

Ta có thể mô phỏng trực quan một hệ mật mã khoá công khai nhưsau: Nam muốn gửi cho Việt một thông tin mật mà Nam muốn duynhất Việt có thể đọc được Để làm được điều này, Việt gửi cho Nam mộtchiếc hộp có khóa đã mở sẵn và giữ lại chìa khóa Nam nhận chiếc hộp,cho vào đó một tờ giấy viết thư bình thường và khóa lại (như loại khoáthông thường chỉ cần sập chốt lại, sau khi sập chốt khóa, ngay cả Namcũng không thể mở lại được-không đọc lại hay sửa thông tin trong thưđược nữa) Sau đó Nam gửi chiếc hộp lại cho Việt Việt mở hộp với chìakhóa của mình và đọc thông tin trong thư Trong ví dụ này, chiếc hộpvới khóa mở đóng vai trò khóa công khai, chiếc chìa khóa chính là khóa

bí mật

Trang 23

Tạo khóa

Giả sử Việt và Nam cần trao đổi thông tin bí mật thông qua mộtkênh không an toàn (ví dụ như Internet) Với thuật toán RSA, Việt đầutiên cần tạo ra cho mình cặp khóa gồm khóa công khai và khóa bí mậttheo các bước sau:

Bước 1: Chọn 2 số nguyên tố lớn p và q với p 6= q, lựa chọn ngẫu nhiên

và độc lập

Bước 2: Tính: n = pq

Bước 3: Tính: giá trị hàm số Euler ϕ(n) = (p − 1)(q − 1)

Bước 4: Chọn một số tự nhiên e sao cho 1 < e < ϕ(n) và là số nguyên

Trang 24

cũng là số tự nhiên Khi đó sử dụng giá trị

Một dạng khác của khóa bí mật bao gồm:

• p và q, hai số nguyên tố chọn ban đầu;

Trang 25

khóa bí mật (dạng CRT) thì p và q sẽ được xóa ngay sau khi thực hiệnxong quá trình tạo khóa.

2.1.3 Mã hóa

Giả sử Nam muốn gửi đoạn thông tin M cho Việt Đầu tiên Namchuyển M thành một số m < n theo một hàm có thể đảo ngược (từ m

có thể xác định lại M ) được thỏa thuận trước

Lúc này Nam có m và biết n cũng như e do Việt gửi Nam sẽ tính c

là bản mã hóa của m theo công thức:

c = me (mod n)

Hàm trên có thể tính dễ dàng bằng việc sử dụng phương pháp tínhhàm mũ (theo mođun) bằng thuật toán bình phương và nhân Cuối cùngNam gửi c cho Việt

2.1.4 Giải mã

Việt nhận c từ Nam và biết khóa bí mật d Việt có thể tìm được m

từ c theo công thức sau

m = cd (mod n)

Biết m, Việt tìm lại M theo phương pháp đã thỏa thuận trước Quátrình giải mã hoạt động vì ta có

cd ≡ (me)d ≡ med (mod n)

Trang 26

Do ed ≡ 1 (mod p − 1) và ed ≡ 1 (mod q − 1), nên:

p = 19 số nguyên tố thứ nhất (giữ bí mật hoặc hủy sau khi tạo khóa)

q = 23 số nguyên tố thứ hai (giữ bí mật hoặc hủy sau khi tạo khóa)

n = 437 môđun (công bố công khai), ( với n = pq)

e = 13 số mũ công khai

d = 61 số mũ bí mật

Giả sử Việt muốn gửi đoạn tin nhắn "Toán" đến Nam, từ "Toán"được Việt chia thành 4 ký tự và dịch thành các số có hai chữ số (bản rõ)tương ứng là 20, 15, 01, 14 Đây là cách dịch mà hai người đã thống nhấttrước với nhau Cách dịch này chỉ mang tính chất ví dụ, có rất nhiềucách dịch mã khác từ chữ sang số mà bạn đọc có thể tự tìm hiểu thêm.Sau đó, Việt mã hóa tin nhắn bằng cách nâng từng ký tự số lên số mũ

Trang 27

13 và tính đồng dư với mođun 437 như sau:

Khóa công khai là cặp (e, n) Khóa bí mật là d Hàm mã hóa là

Mã hóa(m) = me (mod n) = m13 (mod 437)

với m là văn bản cần mã hóa Quá trình mã hóa

Sau khi giải mã xong thì Nam sẽ nhận được đoạn ký tự số là 20, 15,

1, 14 Sau đó Nam dựa vào cách dịch ký tự chữ ra số đã được thống nhất

Trang 28

trước với Việt để dịch ngược lại Đoạn văn bản sau khi dịch ngược lại là

"Toán"

2.1.5 Tạo chữ ký số cho văn bản

Thuật toán RSA còn được dùng để tạo chữ ký, số cho văn bản Giả

sử Việt muốn gửi cho Nam một văn bản có chữ ký của mình Để làmviệc này, Việt tạo ra một giá trị băm (hash value) của văn bản cần ký

và tính giá trị mũ d (mod n) của nó (giống như khi Việt thực hiện giảimã) Giá trị cuối cùng chính là chữ ký điện tử của văn bản đang xét.Khi Nam nhận được văn bản cùng với chữ ký điện tử, anh ta tính giátrị mũ e (mod n) của chữ ký đồng thời với việc tính giá trị băm của vănbản Nếu 2 giá trị này như nhau thì Nam biết rằng người tạo ra chữ kýbiết khóa bí mật của Việt và văn bản đã không bị thay đổi sau khi ký.Cần chú ý rằng các phương pháp chuyển đổi văn bản thường (nhưRSA-PSS) giữ vai trò quan trọng đối với quá trình mã hóa cũng như chữ

ký điện tử và không được dùng khóa chung đồng thời cho cả hai mụcđích trên

2.1.6 Tại sao RSA hiệu quả?

Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học: bàitoán phân tích ra thừa số nguyên tố các số nguyên lớn và bài toán RSA.Nếu 2 bài toán trên là khó (không tìm được thuật toán hiệu quả để giảichúng) thì không thể thực hiện được việc phá mã toàn bộ đối với RSA.Phá mã một phần phải được ngăn chặn bằng các phương pháp chuyểnđổi văn bản gốc an toàn

Trang 29

Bài toán RSA là bài toán tính căn bậc e mođun n (với n là hợp số):tìm số m sao cho me = c (mod n) , trong đó (e, n) chính là khóa côngkhai và c là bản mã Hiện nay phương pháp tối ưu nhất giải bài toánnày là phân tích n ra thừa số nguyên tố Khi thực hiện được điều này,

kẻ tấn công sẽ tìm ra số mũ bí mật d từ khóa công khai và có thể giải

mã theo đúng quy trình của thuật toán Nếu kẻ tấn công tìm được 2 sốnguyên tố p và q sao cho: n = pq thì có thể dễ dàng tìm được giá trị(p − 1)(q − 1) và qua đó xác định d từ e Chưa có một phương phápnào được tìm ra trên máy tính để giải bài toán này trong thời gian đathức (polynomial-time) Tuy nhiên người ta cũng chưa chứng minh đượcđiều ngược lại (sự không tồn tại của thuật toán) Xem thêm phân tích

ra thừa số nguyên tố về vấn đề này

Tại thời điểm năm 2005, số lớn nhất có thể được phân tích ra thừa sốnguyên tố có độ dài 663 bit với phương pháp phân tán trong khi khóacủa RSA có độ dài từ 1024 tới 2048 bit Một số chuyên gia cho rằngkhóa 1024 bit có thể sớm bị phá vỡ (cũng có nhiều người phản đối việcnày) Với khóa 4096 bit thì hầu như không có khả năng bị phá vỡ trongtương lai gần Do đó, người ta thường cho rằng RSA đảm bảo an toànvới điều kiện n được chọn đủ lớn Nếu n có độ dài 256 bit hoặc ngắnhơn, nó có thể bị phân tích trong vài giờ với máy tính cá nhân dùng cácphần mềm có sẵn Nếu n có độ dài 512 bit, nó có thể bị phân tích bởivài trăm máy tính tại thời điểm năm 1999 Một thiết bị lý thuyết có tên

là TWIRL do Shamir và Tromer mô tả năm 2003 đã đặt ra câu hỏi về

độ an toàn của khóa 1024 bit Vì vậy hiện nay người ta khuyến cáo sửdụng khóa có độ dài tối thiểu 2048 bit

Từ khóa » định Lý Euler Số Học