1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài toán logarit rời rạc và ứng dụng trong mật mã

35 1,7K 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 312,25 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

LỜI CAM ĐOANEm xin cam đoan, dưới sự hướng dẫn của Thầy giáo Trần Vĩnh Đứckhó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 k

Trang 1

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

Trang 2

Em xin chân thành cảm ơn Thầy giáo Trần Vĩnh Đức đã tận tìnhhướng dẫn, giúp đỡ em 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-khoaToán, trường Đại học sư phạm Hà Nội 2 đã tạo mọi điều kiện giúp đỡ emhoà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ệnthuâ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 2015

Sinh viên

Nguyễn Hồng Nhung

Trang 3

LỜI CAM ĐOAN

Em xin cam đoan, dưới sự hướng dẫn của Thầy giáo Trần Vĩnh Đứckhó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ànhtự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 viên

Nguyễn Hồng Nhung

Trang 4

Mở đầu 1

1 Tổng quan về lý thuyết nhóm 2

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 Diffie-Hellman trao đổi khóa bả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ức nào? 14

2.5 Thuật toán va chạm cho DLP 16

2.6 Định lý phần dư Trung Quốc 18

2.7 Thuật toán Pohlig–Hellman 23

Trang 5

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 đòihỏi của thực tế Đặc biệt bài toán logarit rời rạc có ứng dụng quan trọngtrong mật mã Với mong muốn được đi sâu tìm hiểu về bộ môn này dướigóc độ một sinh viên sư phạm Toán và trong phạm vi của một khóa luậntốt nghiệp cùng với sự hướng dẫn của thầy giáo - TS Trần Vĩnh Đức, emxin 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à ứngdụ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ứukhoa 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

Đề tài nghiên cứu nhằm đi sâu khai thác ứng dụng của bài toánlogarit rời rạc trong mật mã

4 Phương pháp nghiên cứu

Đề tài được hoàn thành dựa trên sự kết hợp các phương pháp: nghiêncứ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óaluận bao gồm 2 chương:

Chương 1: Tổng quan về lí thuyết nhóm

Chương 2: Bài toán logarit rời rạc và ứng dụng trong mật mã

Trang 6

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∗p (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ệclặp lại phép nhân Chúng ta nhấn mạnh một số đặc trưng quan trọng củaphép nhân trong F∗p và một vài tính chất cơ bản

• Phép nhân có tính kết hợp: a.(b.c) = (a.b).c với mọi a, b, c ∈ F∗p

• Phép nhân có tính giao hoán: a.b = b.a với mọi a, b ∈ F∗p

Giả sử thay phép nhân trong F∗p bằng phép cộng trong Fp 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 ∈ Fp

• Mỗi a ∈ Fp có một phần tử đối −a ∈ Fp với a + (−a) = (−a) + a = 0

Trang 7

Khóa luận tốt nghiệp Nguyễn Hồng Nhung

• Ngoài ra có tính kết hợp, a + (b + c) = (a + b) + c với mọi a, b, c ∈ Fp

• Ngoài ra có tính giao hoán, a + b = b + a với mọi a, b ∈ Fp

Đị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úngbiểu thị bởi ?, kết hợp hai phần tử a, b ∈ G để có được phần tử a ? b ∈ G.Phép toán ? đượ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 ? b = b ? a với mọi a, b ∈ G,

thì 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ậccủ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∗p và ? = phép nhân Phần tử đơn vị là e = 1, phần tửnghịch đảo tồn tại G là một nhóm hữu hạn có bậc p − 1

(b) G = Z/N Z và ? = phép cộng Phần tử đơn vị là e = 0 và phần

tử đối của a là −a G là một nhóm hữu hạn có bậc N

Trang 8

(c) G = Z và ? = phép cộng Phần tử đơn vị là e = 0 và phần tử đốicủa a là −a 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 trong Z

(e) Tuy nhiên, G = R∗ và ? = phép nhân là một nhóm, vì tất cả cácphần tử có phần tử nghịch đảo phép nhân bên R∗

(f) Một ví dụ về một nhóm không giao hoán là

)

với phép toán ? = phép nhân ma trận Phần tử đơn vị là e = 1 0

0 1

!vànghịch đảo được cho bởi công thức quen thuộc

−b ad−bc

−c ad−bc

a ad−bc

!

Chú ý rằng G là nhóm không giao hoán, ví dụ 1 1

(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ỳ Điều này tạo ra nhóm tuyến tính tổng quát

GLn(R) = ma trận vuông A cấp n với hệ số thực và det(A) 6= 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ằngcách thay thế R với một số trường khác, ví dụ trường hữu hạn Fp

Cho g là một phần tử của nhóm G và cho x là số nguyên dương Khi đó

Trang 9

Khóa luận tốt nghiệp Nguyễn Hồng Nhung

gx có nghĩa là ta áp dụng phép toán nhóm x lần tới phần tử g,

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 < d

Sử dụng ak = ad = e, chúng ta nhận thấy rằng

e = ak = adq+r = (ad)q ? ar = eq ? ar.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

Trang 10

Định nghĩa 1.3 (Định lý Lagrange) Cho G là một nhóm hữu hạn và cho

a ∈ G Thì bậc của G chia hết cho bậc của a

Chính xác hơn, cho n = |G| là bậc của G và cho d là bậc của a, tức

là, ad là số mũ dương nhỏ nhất của a bằng e Khi đó

(a ? g1) ? (a ? g2) ? ? (a ? gn) = g1 ? g2 ? ? gn.Chúng ta có thể sắp xếp lại bậc của tích số bên trái (lại sử dụng giao hoán)

để đạt được

an ? g1 ? g2 ? ? gn = g1 ? g2 ? ? gn.Bây giờ nhân với (g1 ? g2 ? ? gn)−1 được an = e 2

Trang 11

Chương 2

Bài toán logarit rời rạc và ứng dụng trong mật mã

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 elliptichiện đang được sử dụng rộng rãi trong thực tế Các đề xuất đầu tiên vềgiao thức trao đổi khóa chung do Diffie và Hellman, dựa trên bài toánlogarit rời rạc trong trường hữu hạn Fp

Cho p là một số nguyên tố (lớn) Chúng ta biết rằng tồn tại mộtphần tử nguyên thủy g Điều này có nghĩa mỗi phần tử khác không của Fp

tương đương với một lũy thừa của g Đặc biệt, bằng định lí Fermat nhỏ có

gp−1 = 1, và lũy thừa nhỏ nhất của g là bằng 1 Tương tự, dãy các phầntử

1, g, g2, g3, , gp−2 ∈ F∗p

là một dãy đầy đủ các phần tử trong F∗p 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 12

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à logg(h).Chú ý 2.1 Bài toán logarit rời rạc là một bài toán đặt ra tìm số mũnguyên x sao cho gx = h Tuy nhiên, nếu có nghiệm thì có vô số nghiệm,

vì định lí Fermat nhỏ cho chúng ta biết rằng gp−1 ≡ 1 mod p Do đó nếu

x là nghiệm của gp−1 = h, thì x + k(p − 1) cũng là nghiệm với mỗi giá trịcủa k, vì

gx+k(p−1) = gx.(gp−1)k ≡ h.1k ≡ h mod p

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ôngphải là khó để xác minh rằng logg cho một hàm được xác định rõ

logg : F∗p −→ Z

Đô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 gx ≡ h mod p

Chú ý 2.2 Không khó để chứng minh rằng

logg(ab) = logg(a) + logg(b) với mọi a, b ∈ F∗p

Trong thuật ngữ toán học, logarit rời rạc logg là phép đẳng cấu nhóm

từ F∗p đế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 logarit rời rạccủa h = 38679? Rõ ràng phương pháp duy nhất là tính toán

22, 23, 24, 25, 26, 27, mod 56509

Trang 13

Khóa luận tốt nghiệp Nguyễn Hồng Nhung

cho đến khi ta tìm thấy một số lũy thừa đó bằng 38679 Ta thấy rằnglogg(h) = 11235, có thể xác minh điều này bằng cách tính toán 211235mod 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ồmcác giả định rằng cơ số g là một căn nguyên thủy mô đun p, nhưng điềunày là không đúng Nói chung, đối với bất kỳ g ∈ F∗p và bất kỳ h ∈ F∗p, bàitoán logarit rời rạc là xác định một số mũ x thỏa mãn gx ≡ h mod 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 ? Bài toán logaritcho G là bài toán có đầu vào là hai phần tử g ∈ G và h ∈ G Tìm sốnguyên x thỏa mãn:

g ? g ? g ? ? g

x lần

= h

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ậttoá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 đốithủ 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 đốimặt với một nhiệm vụ không thể Khi đó thấy rằng bài toán logarit rời rạccho F∗p 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

Trang 14

sau này, họ chọn g mà bậc của nó trong F∗p là một nguyên tố lớn.

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à Alice dùng số nguyên bí mật của họ để tính toán

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

B cho Alice Lưu ý rằng Eve thấy được các giá trị của A và B, 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

Bob tính toán này

Các giá trị mà họ tính toán, A và B tương ứng, thực sự giống nhau, khiđó

A0 ≡ Ba ≡ (gb)a ≡ gab ≡ (ga)b ≡ Ab ≡ B0 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ănnguyên thủy g = 627 Alice chọn khóa bí mật a = 347 và tính A = 390 ≡

627347 mod 941 Tương tự như vậy, Bob chọn khóa bí mật b = 781 và tính

B = 691 ≡ 627781 mod 941 Alice gửi Bob số 390 và Bob 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à B = 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à Bob đều cóthể tính toán số

470 ≡ 627347.781 ≡ Ab ≡ Ba mod 941,

Trang 15

Khóa luận tốt nghiệp Nguyễn Hồng Nhung

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ụclại chia sẻ bí mật của Alice và Bob nếu cô ấy có thể giải quyết một trongcác đồng dư

627a ≡ 390 mod 941 hoặc 627b ≡ 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áchduy nhất cho Eve để tìm giá trị chia sẻ bí mật mà không cần hỗ trợ củaAlice 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 Alice và Bob thực sự bảo mật bất kì, vì nó mất rất ít thời giancho 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ố nguyên tố

và xấp xỉ p2

Định nghĩa 2.3 Cho p là một số nguyên tố và g là một số nguyên Bàitoán Diffie-Hellman (DHP) là bài toán tính toán giá trị gab mod p từ cácgiá trị đã biết ga mod p và gb mod p

Rõ ràng là DHP không khó hơn DLP Nếu Eve có thể giải quyếtDLP, 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ị A = ga và B = 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ế, Eve cần phải tính toánduy nhất a và b.) Nhưng chuyện này là chưa rõ ràng

Trong phần này chúng ta mô tả phiên bản hệ thống mật mã khóacông khai của ElGamal (PKC ElGamal) được dựa trên bài toán logarit rời

Trang 16

rạc cho F∗p.

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ộtkhóa công khai và một thuật toán Khóa công khai chỉ đơn giản là mộtcon số, và các thuật toán là phương pháp mà Bob mã hóa thông tin củamình bằng cách sử dụng khóa công khai của Alice Alice không tiết lộ khóariê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

Vì PKC ElGamal, Alice cần một số nguyên tố lớn p mà bài toánlogarit rời rạc trong F∗p 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 ≡ ga mod p

Chú ý giống Diffie-Hellman trao đổi khóa Alice công bố khóa công khai

A 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 Alice Ta sẽ cho rằng thông tin m của Bob là một số nguyên giữa

2 và p Để mã hóa m, đầ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ấtnhằm mục đích mã hóa một thông tin

Bob lấy khoá công khai thông tin m của ông ấy, chọn ngẫu nhiênchìa khóa k tạm thời, khóa A Alice công khai và sử dụng chúng để tínhtoán hai con số

c1 ≡ 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

Trang 17

Khóa luận tốt nghiệp Nguyễn Hồng Nhung

ông ấy về m, là cặp số (c1, c2), ông ấy gửi cho Alice

Làm thế nào để Alice giải mã bản mã (c1, c2) của Bob? Từ đó Alicebiết là cô có thể tính toán

x ≡ ca1 mod p,

và x−1 mod p Tiếp theo Alice 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−1.c2 và thấy rằng

x−1.c2 ≡ (ca1)−1.c2 mod p, khi x ≡ ca1 mod p,

≡ (gab)−1.(mAk) mod p, khi c1 ≡ gk, c2 ≡ mAk mod p,

≡ (gab)−1.(m(ga)k) mod p, khi A ≡ ga mod p,

≡ m mod p, khi số hạng gak triệt tiêu lẫn nhau

Eve biết tham số p và g công khai, và cô cũng biết được giá trị của A ≡ gamod 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 rabả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 khoá côngkhai

A ≡ ga ≡ 2153 ≡ 224 mod 467

Bob quyết định gửi cho Alice thông tin m = 331 Ông đã chọn một khóakhông lâu ngẫu nhiên, ông chọn k = 197, và ông tính toán hai con số

c1 ≡ 2197 ≡ 87 mod 467 và c2 ≡ 331.224197 ≡ 57 mod 467

Các cặp (c1, c2) = (87, 57) là các bản mã mà Bob gửi cho Alice

Alice, biết a = 153, đầu tiên tính toán

x ≡ ca1 ≡ 87153 ≡ 367 mod 46, và sau đó x−1 ≡ 14 mod 467

Ngày đăng: 02/11/2015, 09:30

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w