LỜI CAM ĐOANNguyễn Hồng Nlmng Em xin cam đoan, dưới sự hướng dẫn của Thầy giáo Trần Vĩnh Dức khóa luận "Bài toán logarit rời rạc và ứng dụng trong mật mã" được hoàn thành không trùng với
Trang 1TRƯỜNG ĐẠI HỌC sư PHẠM HÀ NỘI 2 KHOA TOÁN
Trang 2dụng-Em xin chân thành cảm ơn gia đình và bạn bè đã tạo mọi điềukiện thuân lợi cho em trong quá trình thực hiện khóa luận.
Em xin chân thành cảm ơn.
Hà Nội, tháng 05
nă
m 201
5 Sin
h viên
Trang 3LỜI CAM ĐOAN
Nguyễn Hồng Nlmng
Em xin cam đoan, dưới sự hướng dẫn của Thầy giáo Trần Vĩnh Dức khóa luận "Bài toán logarit rời rạc và ứng dụng trong mật mã"
được hoàn thành không trùng với bất kỳ đề tài nào khác
Trong quá trình hoàn thành khóa luận, em đã thừa kế những thành tựu của các nhà khoa học với sự trân trọng và biết ơn
Hà Nội, tháng
05
n
Trang 4LỜI CẢM ƠN
m
2015
Sinh
vicn
Nguyễn Hồng Nhung
Trang 5Mục lục
2 Bài toán logarit rời rạc và ứng dụng trong mật mã 7
2.1 Bài toán logarit rời rạc 7
2.2 Diffio-Hollman trao đổi khóa hảo mật 9
2.3 Hệ thống mật mã khóa công khai ElGamal 11
2.4 Bài toán logarit rời rạc khó đến ĩmíe nào? 14
2.5 Thuật toán va chạm cho DLP lô 2.6 Định lý phần dư Trung Quốc 18
2.7 Thuật toán Pohlig-Hollman 23
Trang 6Tài liệu tharn khảo 31
MỞ ĐẦU
1 Lí do chọn đề tài
Bài toán logarit rời rạc có ứng dụng quan trọng trong thực tiễn, nó xuất hiện trên
cơ sở phát triển của khoa học kĩ thuật và những yêu cầu đòi hỏi của thực tế Đặc biệtbài toán logarit rời rạc có ứng dụng quan trọng trong mật mã Với mong muốn được đisâu tìm hiểu vồ bộ môn này dưới góc độ một sinh viên sư phạm Toán và trong phạm vicủa một khóa luận tốt nghiệp cùng với sự hướng dẫn của thầy giáo - TS Trần VĩnhDức, em xin trình bày hiểu biết của mình vồ đồ tài "Bài toán logarit rời rạc và ứng dụngtrong mật mã."
2 Mục đích nghiên cứu
Quá trình thực hiện đề tài đã bước đầu làm quen với việc nghiên cứu khoa học,tìm hiổu sâu hơn về bài toán logarit rời rạc và ứng dụng của nó trong mật mã
3 Nhiệm vụ nghiên cứu
Dề tài nghicn cứu nhằm đi sâu khai thác ứng dụng của bài toán logarit rời rạctrong mật mã
4 Phương pháp nghiên cứu
Dề tài được hoàn thành dựa trên sự kết hợp các phương pháp: nghiên cứu lí luận,phân tích, tống hợp, đánh giá
5 Cấu trúc khóa luận
Ngoài phần mở đầu, kết luận, danh mục tài liệu tham khảo thì khóa luận baogồm 2 chương:
Trang 7Chương 1: Tong quan về lí thuyết nhóm.
Chương 2: Dài toán logarit rời rạc và ứng dụng trong mật mã.
Trang 8Trước hết, ta nói về lũy thừa các phần tử trong F* (với Fp = {0,1, ,p — 1}, p
nguyên tố là một trường) lũy thừa chỉ đơn giản là việc lặp lại phép nhân Chúng ta nhấnmạnh một số đặc trưng quan trọng của phép nhân trong F* và một vài tính chất cơ bản.Các tính chất này là:
• Có một phần tử 1 G thỏa mãn l.a = a với mỗi a G F*.
• Mỗi a G F* có một nghịch đảo a~ l G F* thỏa mãn a.a~ l = a~ l 0, = 1.
• Phép nhân có tính kết hợp: a.(b.c) = (a.b).c với mọi a, 6, c G F*.
• Phcp nhân có tính giao hoán: a.b = b.a với mọi a, b G F*.
Giả sử thay phép nhân trong F* bằng phép cộng trong ¥ p Ta cũng thay 0 ở vị trí số 1
và —a ở vị trí của a-1 Khi đó tất cả bốn tính chất vẫn đúng:
• 0 + a = a với mỗi a G Fp.
• Mỗi a E ¥ p có một phần tử đối — a G ¥ p với a + (—a) = (—a) + a = 0.
• Ngoài ra có tính kết hợp, a + (b + c) = (a + b) + c với mọi a, 6, c G Fp.
• Ngoài ra có tính giao hoán, a + b = b + a với mọi a, b G ¥p.
Trang 9K ì i óa l uận t ốt ny ỉ i i ệ p N guy ễ n Hồng N hung
Định nghĩa 1.1 Một nhóm gồm, m,ột tập G và một phép toán, mà chúng biểu thị bởi , ★, kết hợp hai phần tử a, b G G để có (ỈUỢc phần tử a * b G G Phép toán -k được yêu cầu phải có ba tính chất sau đây:
[ Nhân với phần tử đơn vị] Có e £ G sao cho
Ngoài ra, nếu phần tử thỏa mẫn
[Luật giao hoán] a-kb — b* a với mọi a,b G ơ,
nhóm, này được gọi là m,ột nhóm, giao hoán hoặc một nhóm, abel Nếu G cố hữu hạn phần tử, ta nói rằng G là một nhóm, hữu hạn Bậc của
G là số phần tử trong G; nó được ký hiệu là \G\ hoặc #G.
Ví dụ 1.1 Nhóm có mặt khắp nơi trong toán học và trong khoa học tự nhiên Dưới đây là m,ột số ví dụ:
(a) G = F* và * = phép nhân Phần tử đơn vị ỉ,à e = 1,phần tử nghịch đảo tồn tại G ỉà một nhóm hữu hạn có bậc p — 1.
(b) G = 'LỊN7 J và * = phép cộng Phần tử đơn vị là e — 0 và phần tử đối của a là —a G ỉ,à một nhóm, hữu hạn cố bậc N.
Trang 10K ì i óa l uận t ốt ny ỉ i i ệ p N guy ễ n Hồng N hung
4
G =
(c) G = z và * = phép cộng Phần tử đơn vị là e = 0 và phần hi đối của a là — 0 , Nhỏm, G này là một nhóm, vô hạn.
(d) Chú ý rằng G = z và * = phép nhân không phải là một nhóm,
vì hầu hết phần tử không có phần tử nghịch đảo phép nhân bên trongz.
(e) Tuy nhiên, G = M* và = ★, phép nhân là một nhóm,, vì tất cả các phần tử cố phần tử nghịch đảo phép nhân bên K*.
(Ị) Một ví dụ về một nhóm, không giao hoán là
: a, 6, c, d G K và ad — bc 7^ 0
với phép toán * = phép nhân ma trận Phần tử đơn
vị ỉ,à e =
nghịch đảo được cho bởi công thức quen thuộc
Chú ý rằng G là nhóm không giao hoán, ví dụ
(g) Tổng quát hơn, ta có thể sử dụng các ma trận có kích thước bất kỳ Diều này tạo ra nhóm tuyến tính tểng quát
GL n (R) = ịm,a trận vuông A cấp n với hệ số thực và det(A) Ỷ 0 }
và phép toán * = phép nhân ma trận Ta có thể tạo ra các nhóm, khác bằng cách thay thế K với một số trường khác, ví dụ trường hữu hạn ¥p.
Cho g là một phần tử của nhóm G và cho X là số nguycn dương Khi đó
Trang 11K ì i óa l uận t ốt ny ỉ i i ệ p N guy ễ n Hồng N hung
g x có nghĩa là ta áp dụng phép toán nhóm X lần tới phần tử g,
Mệnh đề 1.1 Cho G ỉ,à nhóm, hữu hạn Thì m,ỗi phần tử của G cỏ bậc hữu hạn Ngoài ra, nếu a G G có bậc d và nếu a k — e, thì d I k.
Chứng minh Vì G là hữu hạn, dãy
a, a2, a3, a4,
cuối cùng phải có một sự lặp lại Nghĩa là tồn tại số nguyên dương ỉ và j với ỉ < j sao cho
aĩ = aJ Nhân cả hai vế với a_ỉ và áp dụng tính chất của nhóm ta được a l ~^ — e Khi i — j >
0, chúng ta gọi d là số mũ dương nhỏ nhất thỏa mãn a d = e.
Bây giờ giả sử rằng k > d thỏa mãn a k = e Chúng ta chia k cho d, đc có được
k = dq + r với 0 < r < d
Sử dụnga k = a d = e, chúng ta nhận thấy rằng
e = a k = a dq+r = (a d ) q * a r = e q * a r Nhưng d là số mũ dương nhỏ nhất của a thỏa mãn a d = e, vì vậy chúng ta phải có r = 0.
Định nghĩa 1.3 (Định lý Lagrange) Cho G là m,ột nhóm, hữu hạn và cho
a G G Thì bậc của G chia hết cho bậc của a.
Trang 12K ì i óa l uận t ốt ny ỉ i i ệ p N guy ễ n Hồng N hung
6
Chính xác hơn, cho n = |ơ| ỉà bậc của G và cho d là bậc của a, tức
là, a d là số mủ dương nhỏ nhất của a bằng e Khi đó
a n = e và d, I n.
Chứng minh Chúng ta cho chứng minh đơn giản trong trường hợp G là giao hoán.
Vì G là hữu hạn, chúng ta có thể liột kc các phần tử của nó như sau
G — { g i , 9 2 , 9 n }
-Bây giờ chứng ta nhân mỗi phần tử của G với a để có được một tập mới, chúng ta gọi là
S a ,
S a = {ữ * </1, a * g 2 ì a * g n } Chúng ta thấy các phần tử của S a là khác nhau Dc thấy điều này, giả sử rằng a * g,ị = a
* g ; j Nhân cả hai vế với ar 1 cho Qị = g.j Do đó S a chứa n phần tử khác nhau và bằng số phần tử của G Do ăó Sa = G, vì vậy nếu chúng ta nhân tất cả các phần tử của S a với nhau
cũng bằng nhân tất cả các phần tử của G với nhan (Chú ý rằng chúng ta đang sử dụng giả định rằng G là giao hoán.) Như vậy
Trang 13Chương 2
Bài toán logarit rời rạc và ứng dụng trong mật mã
2.1 Bài toán logarit rời rạc
Bài toán logarit rời rạc là bài toán xuất hiện ở nhiều dạng, bao gồm cả các dạng
mod p mô tả trong phần này và các dạng đường cong elliptic hiộn đang được sử dụng
rộng rãi trong thực tế Các đề xuất đầu ticn về giao thức trao đổi khóa chung do Diffic
và Hcllman, dựa trcn bài toán logarit rời rạc trong trường hữu hạn ¥ p
Cho p là một số nguyên tố (lớn) Chúng ta biết rằng tồn tại một phần tử nguycn thủy g Điồu này có nghĩa mỗi phần tử khác không của ¥ p tương đương với một lũy thừa của g Dặc biệt, bằng định lí Fermat nhỏ có gP-1 _ ^ lũy thừa nhỏ nhất của g là bằng
1 Tương tự, dãy các phần tử
h g , g 2 , g 3 , - , g p ~ 2 e Fp
là một dãy đầy đủ các phần tử trong F* theo một thứ tự
Định nghĩa 2.1 Cho g là m,ột căn nguyên thủy của Fp và cho h là phần tử khác không của Fp Bài toán logarit rời rạc (DLP) là bài toán về tìm số
Trang 14K ì i óa l uận t ốt ny ỉ i i ệ p N guy ễ n Hồng N hung
g p ~ l = h, thì X + k(p — 1) cũng là nghiệm với mỗi giá trị của k, vì
g x + k ( p - 1 ) = g * ị g V - ' f = h ' ị k = k mo d P '
Như vậy log g (h) được xác định bằng cách cộng hoặc trừ đi bội số của p — 1 Nói cách khác, log g (h) được xác định theo mô đun p — 1 Nó không phải là khó đổ xác minh rằng log g cho một hàm được xác định rõ
: r ; ^ ĩĩéịĩ- I2A >
Dôi khi, vì sự cụ thể, ta đề cập đến “các” logarit rời rạc như các số nguyên X nằm giữa
0 và p — 2 thỏa mãn g x = h mod p.
Chú ý 2.2 Không khó để chứng minh rằng
log g (ab) = log g (a) + log g (b) với mọi a,b G F*.
Trong thuật ngữ toán học, logarit rời rạc log g là phép đẳng cấu nhóm
Trang 15K ì i óa l uận t ốt ny ỉ i i ệ p N guy ễ n Hồng N hung
cho đến khi ta tìm, thấy một số lũy thừa đó bằng 38679 Ta thấy rằng log (J Ợi) =
11235, có thể xác minh điều này bằng cách tính toán 2 11235 mod 56509 và kiểm tra rằng nó bằng 38679.
Chú ý 2.3 Phát biểu của chúng ta trong bài toán logarit rời rạc bao gồm, các
toán logarit rời rạc là xác định một số mũ X thỏa mẫn g x = h mocl p, giả sử rằng tồn tại X.
Định nghĩa 2.2 Cho G là một nhóm, với phép nhân * Dài toán logarit cho G là bài toán có đầu vào ỉà hai phần tử g G G và h G G Tìm số nguyên X thỏa mãn:
g*g*g* *g = h
X lần
2.2 Diffĩe-Hellman trao đối khóa bảo mật
Thuật toán Diffie-Hellman trao đổi giải quyết tình trạng khó xử sau Alice vàBob muốn chia sẻ một khóa bí mật để sử dụng trong một thuật toán mã hóa đối xứng,nhưng phương tiện truyền thông duy nhất của họ không an toàn Mỗi mẩu thông tin mà
họ trao đổi được quan sát bởi đối thủ của họ là Eve Làm thế nào Alice và Bob có thểchia sẻ một chìa khóa mà Eve không thể thấy? Thoạt nhìn nó dường như Alice và Bobphải đối mặt với một nhiộm vụ không thể Khi đó thấy rằng bài toán logarit rời rạc choF* cung cấp một giải pháp hợp lí
Bước đầu tiên là Alice và Bob thống nhất một số nguyên tố lớn p và một số nguyên khác không g mô đun p Alice và Bob công khai các giá trị của p và g\ ví dụ, họ
có thể gửi các giá trị trên các trang web của họ, vì vậy Eve cũng biết đến chúng Vì các
lý do khác nhau để được thảo luận sau này, họ chọn g mà bậc của nó trong F* là một
nguyên tố lớn
Trang 16K ì i óa l uận t ốt ny ỉ i i ệ p N guy ễ n Hồng N hung
1 0
Bước tiếp theo là cho Alice chọn số nguyên bí mật cô ấy không tiết lộ cho bất kỳ
ai, trong cùng thời gian Bob chọn số nguyên b mà anh ấy giữ bí mật Bob và Alicc dùng
số nguycn bí mật của họ để tính toán
A = g a mod p vhD = g b mod p
Alice tính toán này Bob tính toán này
Họ tiếp tục trao đổi các giá trị tính toán, Alice gửi cho Bob A và Bob gửi D cho Alicc Lưu ý rằng Evc thấy được các giá trị của A và D, vì chúng được gửi qua các kênh
truyền thông không an toàn
Cuối cùng, Bob và Alice một lần nữa sử dụng số nguyên bí mật của họ để tínhtoán
A' = D a mod p và D' = A b mod p
' -V -' s -V -'
Các giá trị mà họ tính toán, A và D tương ứng, thực sự giống nhau, khi đó
A' = D a = (g l ’Ỵ = g ab = (g“) b = A h = D' mod p.
Giá trị chung này là chìa khoá trao đổi chúng
Ví dụ 2.2 Alice và Bob đồng ý sử dụng số nguyên tố p = 941 và căn nguyên thủy
g = 627 Alice chọn khóa bí mật a = 347 và tính A = 390 = 62 7 347 mod 941 Tương
tự như vậy, Dob chọn khóa bí mật b = 781 và tính D = 691 = 627 781 mod 941 Alice gửi Bob số 390 và Dob gửi Alice số 691 Cả hai truyền đi được thực hiện trên một kênh khổng an toàn, vì vậy cả hai A = 390 và D = 691 được xem, xét công khai Các số a = 347 và b = 781 không được truyền đi mà giữ bí mật Sau
đó, Alice và Dob đều có thể tính toán số
470 = 62 7347'781 = A b = B a mod 941,
vậy 470 là chia sẻ bí mật của họ.
Giả sử rằng Eve thấy toàn bộ trao đổi này Cô ấy có thể đã, khôi phục lại chia sẻ bí mật của Alice và Bob nếu cô ấy có thế giải quyết một trong các đồng dư
Trang 17K ì i óa l uận t ốt ny ỉ i i ệ p N guy ễ n Hồng N hung
627“ = 390 mod 941 hoặc 627í’ = 691 mod 941,
kể từ đó cô sẽ biết số mũ bí mật của họ Theo như được biết, đây là cách duy nhất cho Eve đe tìm, giá trị chia sẻ bí mật m,à khổng cần hỗ trợ của Alice hay Bob.
Tất nhiên, ví dụ của chúng ta sử dụng con số đó là quá nhỏ để có đủ khả năngAlicc và Bob thực sự bảo mật bất kì, vì nó mất rất ít thời gian cho máy tính của Eve đểkiểm tra tất cả các lũy thừa có thể của 627 mô đun 941 Hướng dẫn hiện tại cho thấy
Alice và Bob chọn một nguyên tố p có khoảng 1.000 bit (tức là, p æ 21000) và phần tử g
có bậc là số nguycn tố và xấp xỉ p/2.
Định nghĩa 2.3 Cho p ỉ,à một số nguyên tố và g là một số nguyên Dài toán Diffie-Hellrnan (DHP) ỉà bài toán tính toán giá trị g ab mod p từ các giá trị đã biết g a mod p và g b mod p.
Rõ ràng là DHP không khó hơn DLP Nếu Eve có thể giải quyết DLP, thì cô ấy
có thể tính toán số mũ bí mật a và b của Alice và Bob cắt ra từ các giá trị Ả = g a và D =
g b , và sau đó nó rất dễ dàng cho cô ấy để tính toán khóa chia sỏ g ab của họ (Trong thực
tế, Evc cần phải tính toán duy nhất a và b.) Nhưng chuyện này là chưa rõ ràng.
2.3 Hệ thống mật mã khóa công khai ElGamal
Trong phần này chúng ta mô tả phiên bản hệ thống mật m,ã khóa công khai của ElGamal
(PKC ElGamal) được dựa trên bài toán logarit rời rạc cho F*
PKC ElGamal là ví dụ đầu tiên của ta về một hệ thống mật mã khóa công khai.Alice bắt đầu bằng việc xuất bản thông tin bao gồm một khóa công khai và một thuậttoán Khóa công khai chỉ đơn giản là một con số, và các thuật toán là phương pháp màBob mã hóa thông tin của mình bằng cách sử dụng khóa công khai của Alice Alicekhông tiết lộ khóa riêng của mình Các khóa riêng cho phép Alice giải mã các thông tin
đã được mã hóa bằng khóa công khai của mình
Trang 18K ì i óa l uận t ốt ny ỉ i i ệ p N guy ễ n Hồng N hung
1 2
Vì PKC ElGamal, Alice cần một số nguyên tố lớn p mà bài toán logarit rời rạc trong F* là khó khăn, và cô ấy cần một phần tử g mô đun p lớn (nguyên tố) Alice chọn
một số bí mật để làm khóa riêng của cô, và cô ấy tính toán con số
một thông tin, và sau đó ông đã loại bỏ nó Số k được gọi là một chìa khóa không lâu,
vì nó tồn tại duy nhất nhằm mục đích mã hóa một thông tin
Bob lấy klioá công khai thông tin 771 của ông ấy, chọn ngẫu nhiên chìa khóa k tạm thời, khóa A Alice công khai và sử dụng chúng để tính toán hai con số
Ci = g k mod p và c2 = mA k mod p.
(Hãy nhớ rằng g và p là các tham số công khai, vì Bob cũng biết giá trị của chúng.) Văn
bản viết thành mật mã của Bob, nghĩa là, mã hoá của
Ông ấy về ra, là cặp số (ci,c2), ông ấy gửi cho Alice
Làm thế nào để Alice giải mã bản mã (ci,c2) của Bob? Từ đó Alice biết là cô có thể tính toán
và X-1 mod p Tiếp theo Alicc nhân c2 với X-1, và được giá trị kốt quả là bản rõ m Để
biết tại sao, ta mở rộng giá trị của x~ l C‘2 và thấy rằng
x~ ỉ c2 — (c")_ 1.c2 mod khi X = dị mod p,
— (ố,aò)_1-(m^fe) m°đ p, khi d = c2 = mi11 mod £>,
— (5,aft)-1-(77ỉ(í/a)fe) mod Pi khi ^4 = g° mod p,
= 777, mod p, khi số hạng g a k triệt tiêu lẫn nhau
Trang 19K ì i óa l uận t ốt ny ỉ i i ệ p N guy ễ n Hồng N hung
Eve biết tham số p và (/ công khai, và cô cũng biết được giá trị của A = g a mod p vì khóa công khai A của Alice được mọi người biết đến Nếu Eve có thể giải quyết bài toán logarit rời rạc, cô ấy có thể tìm thấy a và giải mã thông tin Nếu không thì nó sẽ xuất
hiện khó khăn cho Eve để tìm ra bần rõ
Ví dụ 2.3 Alice sử dụng số nguyên tố p = 467 và căn nguyên thủy g = 2.
Cô chọn a = 153 là chìa khóa cá nhân của mình và tính toán kỉioácông khai
Ả = g a = 2153 = 2 24 mod 467
Dob quyết định gửi cho Alice thông tin m = 331 Ông đã chọn m,ột khóa không lâu ngẫu nhiên, ông chọn k = 197, và ông tính toán hai con số
Ci = 2197 = 87 mod 467 và c 2 = 331.224197 = 57 mod 467
Các cặp (ci,c 2 ) = (87,57) là các bản mă mà Dob gửi cho Aỉice.
Alice, biết a = 153, đầu tiên tính toán
Cuối cùng, cô ấy tính toán
c 2 x~ l = 57.14 = 331 mod 467 và phục hồi thông Un bản rõ 771.
Chú ý 2.4 Trong các hệ thống mật mã ElGamal, bản rõ là m,ột số nguyên m giữa 2 và p — 1, trong khi văn bản viết thành mật m,ẫ bao gồm, hai số nguyên
Cị và C 2 trong cùng khoảng biến thiên.
2.4 Bài toán logarit rời rạc khó đến mức nào?
Ký hiệu bậc đã được phát minh ra để thực hiện những ý tưởng chính xác Nó phổ
biến khắp toán học và khoa học máy tính và cung cấp một cách tiện dụng để có được sựthu hút về độ lớn của con số