TRƯỜNG ĐẠI HỌC sư PHẠM HÀ NỘI 2 KHOA TOÁN
NGUYỄN HỒNG NHUNG
BÀI TOÁN LOGARIT RỜI RẠC VÀ ỨNG DỤNG TRONG MẬT MÃ
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Chuyên ngành: Toán ứng dụng
Người hướng dẫn khoa học TS Trần Vĩnh Đức
Hà Nội - 2015
Em xin chân thành cảm ơn Thầy giáo Trần Vĩnh Đức đã tận tình hướng dẫn, giúp đỡ cm
trong suốt thời gian thực hiộn khóa luận.
Em xin chân thành cảm ơn các thầy, các cô trong tổ ứng dụng-khoa Toán, trường Dại học sư
phạm Hà Nội 2 đã tạo mọi điều kiện giúp đỡ em hoàn thành khóa luận này.
Em xin chân thành cảm ơn gia đình và bạn bè đã tạo mọi điều kiệ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.
LỜI CẢM ƠN
Hà Nội, tháng 05 năm 2015 Sinh viên
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ăm 2015 Sinh vicn
Nguyễn Hồng Nhung
Mục lục
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ệt
bà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 đi
sâ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 vi
củ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ĩnh
Dứ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ụng
trong 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ạc
trong 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 bao
gồm 2 chương:
Chươ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ã.
Chương 1
Tổng quan về lý thuyết nhóm
Chương này giới thiộu tổng quan một vài kốt quả của lý thuyết nhóm có ứng
dụng trong bài toán logarit rời rạc.
Trướ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ấn
mạ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.
Đị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
e* a = a* e = a với mỗi a G G
[Nhân với phần tử nghịch đảo] Dối với mỗi a G G có một (duy nhất) a~ l G
G
thỏa mãn a ★ a~ l = a~ l ★ a = e.
[Kết hỢp] a ★ (b ★ c) = (a *b)* c với mọi a, 5,cG G.
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
Ví dụ 1.1. Nhóm có mặt khắp nơi trong toán học và trong khoa
#G.
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ỊN7J 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.
Kìióa luận tốt nyỉiiệp
(c) G = z và * = phép cộng. Phần tử đơn
vị là e = 0
và phần hi đối
không phải
là một nhóm,
phép nhân
bên trong z.
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
vì hầu hết phần tử không có phần tử nghịch đảo
(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
G
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.
Nguyễn Hồng
luận
nyỉiiệp
Cho g là một phần tử Kìióa
của nhóm
G tốt
và cho
X là số nguycn dương. Khi đóg x có nghĩa làNguyễn Hồng
ta áp dụng phép toán nhóm X lần tới phần tử g ,
g x = g * g * g * .. .*g
^
V
^
X lần lặp lại
Nếu X là một số nguycn âm, ta định nghĩa gx là
g° = e là các phần
{g~1)~x. Cho X =
0, tập
tử đơn vị của G.
Định nghĩa 1.2.
Cho G là một nhỏm, và cho a
phần
£ G là
một
tử của
tại một số nguyên dương d, với a d = e. số d nhỏ nhất
nhóm. Giả sử tồn
như vậy được gọi là bậc của a. Nếu không có d, như vậy, thì a được cho là cố
bậc vô hạn.
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 al~^ — 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 ak = e. Chúng ta chia k cho d, đc có
k = dq + r với 0 < r
Sử dụngak = ad =
được
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 ad = e, vì vậy chúng ta phải có r = 0.
Do đó k = dq, vậy d I q.
Định nghĩa 1.3. (Định lý Lagrange). Cho G là m,ột nhóm, hữu hạn
a G G. Thì bậc của G chia hết cho bậc của a.
□
và cho
Kìióa luận tốt nyỉiiệp
Chính xác hơn, cho n = |ơ| ỉà bậc của G và cho d
là bậc của a, tức
Nguyễn Hồng
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 — {gi, 92,
9n}-
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à
Sa,
= {ữ * 1, a * g
S a
2
ì
a *g
n
} .
Chúng ta thấy các phần tử của Sa 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 ar1 cho Qị = g.j. Do đó Sa 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 Sa 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
( a * Q i ) ★ ( a ★ g 2 ) * ... * ( a * g n ) = Q ị * (/2 * •••
*9n-
Chúng ta có thể sắp xếp lại bậc của tích số bcn trái (lại sử dụng giao hoán)
để đạt được
a
Bây giờ
n
*
g
1
*
g
2
* ... * g
n
= 01 * 02 * ■ ■ • * 9n
■
nhân với (gi ★ §2 * ... * 9n)~l được an = e. □
Chươ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ố
Kìióa luận tốt nyỉiiệp
Nguyễn Hồng Nhung
mũ X sao cho
gx = h mod p.
Số X được gọi là logarit rời rạc của h với cơ số g và được kí hiệu là
log g (h).
Chú ý 2.1. Dài toán ỉogarit rời rạc là một bài toán đặt ra tìm, số mủ nguyên X
sao cho g x — h . Tuy nhiên, nếu có nghiệm thì có vô số nghiệm,, vì định lí
Ferm,at nhỏ cho chúng ta biết rằng g p ~ l = 1 mod p. Do đố nếu X là nghiệm của
gp~l = h, thì X + k(p — 1) cũng là nghiệm với mỗi giá trị của k, vì
x + k ( p - 1) = g * ị g V - ' f = h ' ị k = k mo d P '
g
Như vậy logg(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, logg(h) được xác định theo mô đun p — 1. Nó không phải là khó đổ xác
minh rằng logg 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 logg là phép đẳng cấu nhóm
từ F* đến z/ ( p — 1)Z.
Ví dụ 2.1. Số p = 56509 là số nguyên tố, và ta kiểm, tra xem, g =
2 có là một căn nguyên thủy mô đun p. Làm, thế nào để tính
toán ỉogarit rời rạc của h = 38679? Rỗ ràng phương pháp duy
nhất ỉ,à tính toán
Kìióa luận tốt nyỉiiệp
Nguyễn Hồng
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 211235 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
giả định rằng cơ số g là một căn nguyên thủy m,ô đun p, nhưng diều này là không
đúng. Nói chung, đối với bất kỳ g G
và bất kỳ h £ ¥*, bài
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
^
V
^
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à Bob
phả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 cho
F* 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.
Kìióa luận tốt nyỉiiệp
Nguyễn Hồng
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ính
toán
A' = Da mod p và D' = Ab mod p
s
'-----------V----------'
----------V---------'
Alice tính toán này
Bob tính toán này
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 7347 mod 941. Tương
tự như vậy, Dob chọn khóa bí mật b = 781 và tính D = 691 = 627781 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ư
Kìióa luận tốt nyỉiiệp
627“ = 390 mod 941 hoặc 627í’ = 691 mod 941,
Nguyễn Hồng
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ăng
Alicc 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ị Ả = ga và D =
gb, và sau đó nó rất dễ dàng cho cô ấy để tính toán khóa chia sỏ gab 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ật
toá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. Alice
khô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.
Kìióa luận tốt nyỉiiệp
Nguyễn Hồng
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ố
A = g a mod p.
Chú ý giống Diffie-Hellman trao đổi khóa. Alice công bố khóa công khai Ả của cô và
khóa riêng cô ấy giữ bí mật một mình.
Bây giờ giả sử Bob muốn mã hóa một thông tin bằng khóa công khai A của
Alicc. Ta sõ cho rằng thông tin m của Bob là một số nguycn giữa 2 và p. Dể mã hóa ra,
đầu tiên Bob chọn ngẫu nhiên số k khác mô đun p. Bob sử dụng k để mã hóa một và chỉ
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 = gk mod p và c2 = mAk 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
X = c \ 1110 d p ,
và X-1 mod p. Tiếp theo Alicc nhân c 2 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
x~ ỉ .c 2
rằng
1
— (c") _ .c 2 mod khi X = dị mod p ,
— (ố,aò)_1-(m^fe) m°đ p, khi d = c2 = mi11
— (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.
mod £>,
Kìióa luận tốt nyỉiiệp
Nguyễn Hồng
Eve biết tham số p và (/ công khai, và cô cũng biết được giá trị của A = ga 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
Ả = ga = 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à c2 = 331.224197 = 57 mod 467.
Các cặp (ci,c2) = (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
X = C ỵ = 87153 = 367 mod 46, v à s a u đ ó x ~ l = 14 mod 467.
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à C2 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ố.
Kìióa luận tốt nyỉiiệp
Nguyễn Hồng
Định nghĩa 2.4. (Kí h i ệ u bậc). Cho /(;x ) v à g ( : x ) ỉ , à h à m , s ố của X l ấ y g i á
trị dương. Chúng ta nói rằng "f ỉà o ỉớn của g " và viết
f(x) = ơ(g(x))
nếu có hằng số dương c và c sao cho
f ( x ) < c g ( x ) với mọi X > c.
Dặc biệt, chúng ta viết f(x) = 0(1) nếu f(x) bị chặn với m,ọi X > c.
Các mệnh đề tiếp theo cho một phương pháp mà đôi khi có thể được sử
dụng để chứng minh rằng f(x) = 0(g(x)).
Mệnh đề 2.1. Nếu giới hạn
/0*0
lim
x->oo g[x)
tồn tại (và là hữu hạn), thì f(x) = 0(g(x)).
Kìióa luận tốt nyỉiiệp
Nguyễn Hồng
Chứng minh. Giả sử L là giới hạn. Theo định nghĩa của giới hạn, cho bất kỳ e >
0 và một hằng số Ct sao cho
/O)
< € với mọi X > Ct.
9( x )
-L
Dặc biột, khi e = 1, chúng ta thấy rằng
f{x)
< L + 1 với mọi X > Cị
9( x )
□
Do đó theo định nghĩa, f(x) = 0(g(x)) với c=L + l v à ơ = ơi. Ví dụ 2.4. Ta có 2x3 —
3x2 + 7 = 0(x3), khi đó
2xò — 3x2 + 7 lim
= 2.
Tương tự như vậy, chúng tax—>oc
có X = 0(2X X ), khi đó
2
X
lim —7 = 0.
X
X—>oc 2
(Nếu bạn không biết giá trị của giới hạn này thì sử dụng quy tắc L’Hôpital
hai lần.)
Tuy nhiên, lưu ý rằng chúng ta có thể có f(x) = 0(g(x)) ngay cả khi giới hạn của
f(x)/g(x) không tồn tại. Ví dụ, giới hạn
(x + 2)cos2(:r)
lim
X —> oo
X
không tồn tại, nhưng
(x + 2)cos 2 (x) = ơ(x), khi đó (x + 2)cos 2 (x) < X + 2 < 2x với mọi X > 2.
Ví dụ 2.5. Dưới đây là một vài ví dụ kí hiệu về o lớn.
(a)x2 + ựx = 0(x2).
(,c)k 300 = 0(2 k ).
(d)(ỉnkf 75 = O(k omi ).
(6)5 + 6x2 — 37x5 = ơ(x5).
(e)k 2 2 k = ơ(e 2k ).
(f)N ỉ0 2 N = 0(e N ).
2.5.
Kìióa luận tốt nyỉiiệp
Nguyễn Hồng
Thuật toán va chạm cho DLP
Trong phần này, chúng ta mô tả một thuật toán logarit rời rạc do Shanks. Nó là
một thuật toán ví dụ về sự va chạm, hoặc giao ở giữa. Thuật toán của Shanks làm viộc
trong nhóm bất kỳ.
Chúng ta bắt đầu bằng cách nhắc lại thời gian chạy của các thuật toán để giải
quyết DLP.
Mệnh đề 2.2. (Giới hạn tầm, thường cho DLP). Cho G ỉ,à một nhổm, và cho g £
G là một phần tử có bậc N. (Nhớ lại rằng diều này cố nghĩa ỉ,à = e và không
có lũy thừa dương của g nhỏ hơn tuơng đương với phần tử đồng nhất e.) Khi
đó bài toán logarit rời rạc
9X = h (2.2)
có thế được giải quyết trong O(N) bước, mà mỗi bước bao gồm phép nhân với
g.
Chứng minh. Tạo một dãy các giá trị gx với X = 0,1, 2,N — 1. Lưu ý rằng mỗi
giá trị kế tiếp có thể thu được bằng cách nhân giá trị trước với g. Nếu một đáp án cho gx
= h tồn tại, thì h sẽ xnất hiện trong dãy của bạn.
□
Mệnh đề 2.3. (Thuật toán Baby step-Giant step của Shanks). Cho G là một
nhóm, và cho g G G là một phần tử có bậc N > 2. Thì giải quyết bài toán logarit
rời rạc gx = h trong 0{y/~N.logN) bước.
1. Cho n = 1 + ựN , thì n > -s/N.
2. Tợ,о ra hai dẫy,
Dẫy 1 : e,g,g 2 ,g 3 ,...,g n ,
Dẫy 2 : /г, h.g~’\ h.g~ 2 '\ h.g~ òĩl ,h.g~n'2.
Tìm thấy một kết hợp giữa hai dẫy, là g 1 = hg •?n. ị. Thì X — ỉ + jn là
một kết quả cho g x = h.
Kìióa luận tốt nyỉiiệp
Nguyễn Hồng
k
h.uk
1
9704
347
2
6181
13357
3
5763
12423
4
1128
13153
5
8431
7928
6 16568
1139
7 14567
6259
8
12013
k
k
g
2987
k
g
h.uk
17 10137
10230
18 17264
3957
19
4230
9195
20
9880
13628
21
9963
10126
22 15501
5416
23
13640
6854
24 15680
5276
Kìióa luận tốt nyỉiiệp
k
h.uk
gk
9
15774
16564
10 12918
11741
11 16360
16367
12 13259
7315
13
2549
4125
14 16911
10221
15
4351
16289
16
1612
4062
k
h.uk
k
g
25
4970
12260
26
9183
6578
27 10596
7705
28
2427
1425
29
6902
6594
30 11969
12831
31
6045
4754
32
7583
14567
Bảng 2.1: Babystcp-giantstcp để giải 9704a’ = 13896 mod
17389
Ví dụ 2.6. Chúng ta minh họa phương pháp Baby step-giantstep của Shanks
bằng cách sử dụng nỏ đê giải quyết bài toán ỉogarit rời rọ,c
g x = h trong F* với g — 9704, h — 13896, và p = 17389.
Số 9704 có bậc 1242 trong F^7389. Dặt n = ịy/ 1242J + 1 và u = g~ n = 9704-36 =
2494. Bảng 2.1 dẫy các giá trị của g k và h.u k khỉ k = 1,2,... Từ
bảng, chúng ta tìm, thấy sự va chạm,
Nguyễn Hồng
Kìióa luận tốt nyỉiiệp
Nguyễn Hồng
97047 = 14567 = 13896.249432 trong F17389.
Dằng cách sử dụng m,ột thực tế rằng 2494 = 9704-38, chúng ta tính toán 13896 =
9704\2494“32 = 97047.(970436)32 = 9704115íl trong F17389.
Do đỏ X = 1159 giải quyết bài toán 9704x trong Fi7389.
2.6.
Định lý phần dư Trung Quốc
Dịnh lý
dư dồng thời.
phần dư Trung Quốc mô tả giải
pháp cho mộthộ thống đồng
Dơn giản nhất là một hệ thống
hai đồng dư,
X = a mod m và X = b
mod Ti,
(2.3)
với gcA(m,n) = 1, trong đó trường hợp định lý phần dư của Trung Quốc là một giải
pháp độc đáo theo mô đun mn.
Ví dụ 2.7. Chúng ta tìm, kiếm m,ột số nguyên X đồng thời thỏa mẫn cả hai đồng
du