Khoá luận tốt nghiệp toán học bài toán logarit rời rạc và ứng dụng trong mật mã - Pdf 31

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

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*.


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


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



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,
= {ữ *
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

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ự.


>

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à

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ọ.


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ó
,


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


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


(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

347

2

6181

13357

3

5763

12423

4

1128

13153

5

8431

7928

6 16568

1139



4230

9195

20

9880

13628

21

9963

10126

22 15501

5416

23

13640

6854

24 15680

5276

14 16911

10221

15

4351

16289

16

1612

4062

k

h.uk

k

g

25

4970

12260


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ờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status