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 1TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
Trang 3Trướ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 4Em 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 5Lờ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 62.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 7Lờ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 8Mộ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 92 (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 11Ta 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 12Hệ 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 14p3, 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 152 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 166 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 191 − 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 21Trướ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 22bố 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 23Tạ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 24cũ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 25khó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 26Do 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 2713 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 28trướ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 29Bà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