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

Luận văn thạc sĩ toán học Lôgarit rời rạc và mật mã công khai

58 587 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 58
Dung lượng 847,04 KB

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

Nội dung

Bài toán này có nhiều ứng dụng sâu sắc trong nhiều hướng khác nhau của toán học, vật lý học,…đặc biệt bài toán logarit rời rạc là cơ sở để xây dựng hệ mã khóa công khai.. Số hóa bởi Trun

Trang 1

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

ĐẠI HỌC THÁI NGUYÊN

Trang 2

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

MỤC LỤC

MỤC LỤC……… 1

LỜI CẢM ƠN……… 2

MỞ ĐẦU……… 3

CHƯƠNG I KIẾN THỨC CƠ SỞ……… 4

1.1 Khái quát về mật mã, mã công khai……… 4

1.2 Bài toán lôgarit rời rạc……… 11

CHƯƠNG II ỨNG DỤNG LÔGARIT RỜI RẠC TRONG MỘT SỐ HỆ MÃ CÔNG KHAI……… 22

2.1 Hệ mã RSA……… 22

2.2 Hệ mã Elgamal……….27

2.3 Sơ đồ chữ kí Elgamal………37

2.4 Hệ mã đường cong Eliptic………43

KẾT LUẬN……….56

TÀI LIỆU THAM KHẢO……… 57

Trang 3

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

LỜI CẢM ƠN

Sau một thời gian nghiên cứu tìm hiểu, em đã hoàn thành luận văn thạc

sỹ toán học chuyên ngành toán ứng dụng với đề tài: “ Lôgarit rời rạc và mật

mã công khai”

Lời đầu tiên em xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo TS Vũ

Mạnh Xuân đã tận tình hướng dẫn em trong suốt quá trình nghiên cứu và

thực hiện đề tài Em cũng xin chân thành cảm ơn quý thầy cô khoa Toán – tin trường Đại học Khoa học – Đại học Thái Nguyên, các đồng nghiệp và các bạn học trong lớp đã hướng dẫn, truyền đạt kiến thức, tạo mọi điều kiện giúp đỡ cho em trong suốt thời gian theo học và thực hiện luận văn này

Qua việc nghiên cứu và hoàn thành luận văn, em đã có thêm nhiều kiến thức bổ ích trong chuyên môn cũng như phương pháp luận nghiên cứu khoa học Trong khuôn khổ của một luận văn, chắc chắn chưa đáp ứng được đầy đủ những vấn đề đặt ra Vì điều kiện nghiên cứu còn hạn chế, nên mặc dù đã cố gắng rất nhiều nhưng luận văn không tránh khỏi những thiếu sót Em rất mong nhận được sự đóng góp ý kiến, phê bình quý báu của các nhà khoa học, các thầy cô và các bạn đồng nghiệp

Một lần nữa em xin chân thành cảm ơn !

Thái Nguyên, tháng 09 năm 2014

Học viên

Văn Thị Thu Thịnh

Trang 4

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

MỞ ĐẦU

Bài toán logarit rời rạc trong Zp là đối tượng trong nhiều công trình nghiên cứu và được xem là bài toán khó nếu p được chọn cẩn thận Bài toán này có nhiều ứng dụng sâu sắc trong nhiều hướng khác nhau của toán học, vật

lý học,…đặc biệt bài toán logarit rời rạc là cơ sở để xây dựng hệ mã khóa công khai Đây là dạng bài toán một chiều: bài toán lấy lũy thừa có thể tính toán hiệu quả theo thuật toán bình phương và nhân, song bài toán ngược tìm

số mũ thì lại không dễ như vậy

Đề tài này nhằm nghiên cứu về bài toán logarit rời rạc và tìm hiểu ứng dụng của nó trong một vài hệ mã công khai: hệ mã RSA, hệ mã Elgamal, chữ

kí Elgamal và hệ mã đường cong Elliptic

Luận văn được trình bày trong 2 chương ngoài phần mởp đầu và kết luận

Chương 1 gồm những kiến thức cơ sở để nhằm phục vụ cho chương 2, bao gồm những kiến thức liên quan về về hệ mật mã, hệ mã công khai và bài toán logarit rời rạc

Chương 2 tác giả trình bày những kiến thức cơ bản về hệ mã RSA, hệ mã Elgamal, chữ kí điện tử Ellgamal, hệ mã đường cong Elliptic Chương này cũng trình bày một số ví dụ cụ thể để minh họa

Mặc dù đã có nhiều cố gắng, song luận văn mới chỉ dừng ở mức trình bày hệ thống các kiến thức như trên và tính toán trên một số ví dụ cụ thể, phần ứng dụng thực tế còn hạn chế

Trang 5

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

CHƯƠNG I : KIẾN THỨC CƠ SỞ

Chương 1 trình bày những kiến thức cơ sở khái quát về mật mã, khái niệm về hệ mật mã, hệ mã công khai, bài toán lôgarit rời rạc và một số thuật toán lôgarit rời rạc Những kiến thức trình bày trong chương này được trích dẫn ở tài liệu sau: Mã hoá thông tin: Cơ sở toán học và ứng dụng - Phạm Huy Điển, Hà Huy Khoái (2003) - NXB Đại Học Quốc Gia, Lý thuyết mật mã và

an toàn thông tin - Phan Đình Diệu (2002) - NXB Đại Học Quốc Gia Hà Nội, Giáo trình an toàn dữ liệu – Khoa công nghệ thông tin - Trịnh Nhật Tiến - NXB Đại Học Quốc Gia Hà Nội

1.1 KHÁI QUÁT VỀ MẬT MÃ, MÃ CÔNG KHAI

1.1.1 Khái quát về mật mã

1.1.1.1 Giới thiệu

Mật mã đã được con người sử dụng từ lâu đời Các hình thức mật mã sơ khai đã được tìm thấy từ khoảng bốn nghìn năm trước trong nền văn minh Ai Cập cổ đại Trải qua hàng nghìn năm lịch sử, mật mã đã được sử dụng rộng rãi ở khắp nơi trên thế giới từ Đông sang Tây để giữ bí mật cho việc giao lưu thông tin trong nhiều lĩnh vực hoạt động giữa con người và các quốc gia, đặc biệt trong các lĩnh vực quân sự, chính trị, ngoại giao Mật mã trước hết là một loại hoạt động thực tiễn, nội dung chính của nó là để giữ bí mật thông tin Ví

dụ muốn gửi một văn bản từ một người gửi A đến một người nhận B, A phải tạo cho văn bản đó một bản mã mật tương ứng và thay vì gửi văn bản rõ thì A chỉ gửi cho B bản mã mật, B nhận được bản mã mật và khôi phục lại văn bản

rõ để hiểu được thông tin mà A muốn gửi cho mình Do văn bản gửi đi thường được chuyển qua các con đường công khai nên người ngoài có thể

“lấy trộm” được, nhưng vì đó là bản mật mã nên không đọc hiểu được Còn A

có thể tạo ra bản mã mật và B có thể giải bản mã mật thành bản rõ để hiểu

Trang 6

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

được là do hai người đã có một thoả thuận về một chìa khoá chung, chỉ với khoá chung này thì A mới tạo được bản mã mật từ bản rõ và B mới khôi phục được bản rõ từ bản mã mật Khoá chung đó được gọi là khoá mật mã Để thực hiện được một phép mật mã, ta còn cần có một thuật toán biến bản rõ cùng với khoá mật mã thành bản mã mật và một thuật toán ngược lại biến bản mật cùng với khoá mật mã thành bản rõ Các thuật toán đó được gọi tương ứng là thuật toán lập mã và thuật toán giải mã Các thuật toán này thường không nhất thiết phải giữ bí mật, mà cái luôn cần được giữ bí mật là khoá mật mã Trong thực tiễn, có những hoạt động ngược lại với hoạt động bảo mật là khám phá bí mật từ các bản mã “lấy trộm” được, hoạt động này thường được gọi là mã thám hay phá khoá

1.1.1.2 Các khái niệm cơ sở

Mật mã là một lĩnh vực khoa học chuyên nghiên cứu về các phương pháp

và kỹ thuật đảm bảo an toàn và bảo mật trong truyền tin liên lạc với giả thiết

sự tồn tại của các thế lực thù địch, những kẻ muốn ăn cắp thông tin để lợi dụng và phá hoại Tên gọi trong tiếng Anh, Cryptology được dẫn giải nguồn gốc từ tiếng Hy lạp, trong đó kryptos nghĩa là “che dấu”, logos nghĩa là “từ ngữ” Cụ thể hơn, các nhà nghiên cứu lĩnh vực này quan tâm xây dựng hoặc phân tích (để chỉ ra điểm yếu) các giao thức mật mã (cryptographic protocols), tức là các phương thức giao dịch có đảm bảo mục tiêu an toàn cho các bên tham gia (với giả thiết môi trường có kẻ đối địch, phá hoại)

Ngành Mật mã (cryptology) thường được quan niệm như sự kết hợp của

Trang 7

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

nhận tin Hai lĩnh vực con này tồn tại như hai mặt đối lập, “đấu tranh để cùng phát triển” của một thể thống nhất là ngành khoa học mật mã (cryptology) Tuy nhiên, do lĩnh vực thứ hai (cryptanalysis) ít được phổ biến quảng đại nên dần dần, cách hiểu chung hiện nay là đánh đồng hai thuật ngữ cryptography

và cryptology Theo thói quen chung này, hai thuật ngữ này có thể dùng thay thế nhau Thậm chí cryptography là thuật ngữ ưa dùng, phổ biến trong mọi sách vở phổ biến khoa học, còn cryptology thì xuất hiện trong một phạm vi hẹp của các nhà nghiên cứu học thuật thuần túy Mặc dù trước đây hầu như mật mã và ứng dụng của nó chỉ phổ biến trong giới hẹp, nhưng với sự phát triển vũ bão của công nghệ thông tin và đặc biệt là sự phổ biến của mạng internet, các giao dịch có sử dụng mật mã đã trở nên rất phổ biến Chẳng hạn,

ví dụ điển hình là các giao dịch ngân hàng trực tuyến hầu hết đều được thực hiện qua mật mã Ngày nay, kiến thức ngành mật mã là cần thiết cho các cơ quan chính phủ, các khối doanh nghiệp và cả cho cá nhân Một cách khái quát, ta có thể thấy mật mã có các ứng dụng như sau:

- Với các chính phủ: bảo vệ truyền tin mật trong quân sự và ngoại giao, bảo

vệ thông tin các lĩnh vực tầm cỡ lợi ích quốc gia

- Trong các hoạt động kinh tế: bảo vệ các thông tin nhạy cảm trong giao dịch như hồ sơ pháp lý hay y tế, các giao dịch tài chính hay các đánh giá tín dụng…

- Với các cá nhân: bảo vệ các thông tin nhạy cảm, riêng tư trong liên lạc với thế giới qua các giao dịch sử dụng máy tính hoặc kết nối mạng

Trang 8

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

4 E là tập các hàm lập mã

5 D là tập các hàm giải mã Với mỗi k K, có một hàm lập mã

ek E, ek : P → C và một hàm giải mã dk D, dk: C → P sao cho

dk(ek(x)) = x , x P

Hình 1.1: Quá trình mã hoá và giải mã

- Một thông báo thường được tổ chức dưới dạng bản rõ

- Người gửi sẽ làm nhiệm vụ mã hóa bản rõ, kết quả thu được gọi là bản mã

- Bản mã này được gửi đi trên một đường truyền tới người nhận, sau khi nhận được bản mã người nhận giải mã nó để tìm hiểu nội dung

- Dễ dàng thấy được công việc trên khi sử dụng định nghĩa hệ mật mã:

ek (P) = C và dk (C) = P

1.1.1.4 Những yêu cầu đối với hệ mật mã

Một hệ mật mã phải cung cấp một mức cao về độ tin cậy, tính toàn vẹn,

- Tính không từ chối: có thể cung cấp một cách xác nhận rằng tài liệu đã đến

từ ai đó ngay cả khi họ cố gằng từ chối nó

- Tính xác thực: cung cấp hai dịch vụ:

Trang 9

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

+ Đầu tiên là nhận dạng nguồn gốc của một thông báo và cung cấp một vài

sự bảo đảm rằng nó là đúng sự thật

+ Thứ hai là kiểm tra đặc tính của người đang trong một hê thống và sau

đó tiếp tục kiểm tra đặc tính của họ trong trường hợp ai đó cố gắng đột nhiên kết nối và giả dạng người sử dụng

1.1.2 Khái quát về hệ mã công khai

1.1.2.1 Mã đối xứng và mã công khai

Mã đối xứng được dùng để chỉ các hệ mã mà trong đó khi biết khóa lập

mã ta có thể tìm được khóa giải mã một cách đễ dàng Đồng thời việc giải mã cũng đòi hỏi thời gian như việc lập mã Các hệ mã thuộc loại này có thời gian lập mã và giải mã tương đối nhanh vì thế các hệ mã đối xứng thường được sử dụng để mã hóa những dữ liệu lớn Nhưng các hệ mã đối xứng yêu cầu phải giữ bí mật hoàn toàn về khóa lập mã

Để giải quyết vấn đề phân phối và thoả thuận khoá của mật mã khoá đối xứng, năm 1976 Diffie và Hellman đã đưa ra khái niệm về hệ mật mã khoá công khai và một phương pháp trao đổi công khai để tạo ra một khoá bí mật chung mà tính an toàn được bảo đảm bởi độ khó của một bài toán toán học cụ thể (là bài toán tính “lôgarit rời rạc”) Hệ mật mã khoá công khai hay còn được gọi là hệ mật mã phi đối xứng sử dụng một cặp khoá, khoá mã hoá còn gọi là khoá công khai (public key) và khoá giải mã được gọi là khoá bí mật hay khóa riêng (private key) Trong hệ mật này, khoá mã hoá khác với khoá giải mã Về mặt toán học thì từ khoá công khai rất khó tính được khoá riêng Biết được khoá này không dễ dàng tìm được khoá kia Khoá giải mã được giữ bí mật trong khi khoá mã hoá được công bố công khai Một người bất kỳ có thể sử dụng khoá công khai để mã hoá tin tức, nhưng chỉ có người nào có đúng khoá giải mã mới có khả năng xem được bản rõ

Trang 10

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Người gửi A sẽ mã hoá thông điệp bằng khóa công khai của người nhận B và người nhận B sẽ giải mã thông điệp với khoá riêng tương ứng của mình

Quá trình này được mô tả trong hình 1.2 và 1.3

Hình 1.2: Mã hoá thông điệp sử dụng khoá công khai P

Hình 1.3: Giải mã thông điệp sử dụng khoá riêng của người nhận

Có nhiều hệ thống khoá công khai được triển khai rộng rãi như hệ RSA,

hệ Elgamal sử dụng giao thức trao đổi khoá Diffie-Hellman và nổi lên trong những năm gần đây là hệ mã đường cong Elliptic Trong số các hệ mật mã trên thì hệ RSA là hệ được cộng đồng chuẩn quốc tế và công nghiệp chấp nhận rộng rãi trong việc thực thi mật mã khoá công khai

Việc phát minh ra phương pháp mã công khai tạo ra một cuộc “cách mạng” trong công nghệ an toàn thông tin điện tử Nhưng thực tiễn triễn khai

Trang 11

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

cho thấy tốc độ mã hoá khối dữ liệu lớn bằng các thuật toán mã hoá công khai chậm hơn rất nhiều so với hệ mã hoá đối xứng Ví dụ, để đạt được độ an toàn như các hệ mã đối xứng mạnh cùng thời, RSA đòi hỏi thời gian cho việc mã hoá một văn bản lâu hơn gấp hàng ngàn lần Do đó, thay bằng việc mã hoá văn bản có kích thước lớn bằng lược đồ khoá công khai thì văn bản này sẽ được mã hoá bằng một hệ mã đối xứng có tốc độ cao như DES, IDEA,…sau

đó khoá được sử dụng trong hệ mã đối xứng sẽ được mã hoá sử dụng mật mã khoá công khai Phương pháp này rất khả thi trong việc mã và giải mã những văn bản có kích thước lớn như được mô tả trong hình 1.5 và 1.6

Hình 1.4: Mã hoá thông điệp sử dụng khoá bí mật S để mã thông điệp và khoá công khai P để mã khoá bí mật S

Hình 1.5: Giải mã thông điệp sử dụng khoá bí mật S để giải mã thông điệp và khoá riêng P để giải mã khoá bí mật S

Trang 12

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

1.1.2.2 Ưu và nhược điểm của hệ mật mã khoá công khai

Ưu điểm rõ ràng nhất của hệ mật mã khóa công khai là bảo mật Một văn bản được mã hóa bằng khóa công khai của một người sử dụng thì chỉ có thể giải mã với khóa bí mật của người đó

Hệ mật mã khoá công khai dựa vào các giả thiết liên quan đến các bài toán khó nên đa số các hệ mật mã này đều có tốc độ dịch mã không nhanh lắm Chính nhược điểm này làm cho các hệ mật mã khoá công khai khó được dùng một cách độc lập

Một vấn đề nữa nảy sinh khi sử dụng các hệ mật mã khóa công khai là việc xác thực mà trong mô hình hệ mật mã đối xứng không đặt ra Do các khoá mã công khai được công bố một cách công khai trên mạng cho nên việc đảm bảo rằng “khoá được công bố có đúng là của đối tượng cần liên lạc hay không?” là một kẽ hở có thể bị lợi dụng Vấn đề xác thực này được giải quyết cũng chính bằng các hệ mật mã khoá công khai Nhiều thủ tục xác thực đã được nghiên cứu và sử dụng như Kerberos, X.509… Một ưu điểm nữa của các hệ mật mã khoá công khai là các ứng dụng của nó trong lĩnh vực chữ ký

số, cùng với các kết quả về hàm băm, thủ tục ký để bảo đảm tính toàn vẹn của một văn bản được giải quyết

1.2 BÀI TOÁN LOGARIT RỜI RẠC

Lôgarit rời rạc là sự tiếp nối của phép tính lôgarit trên trường số thực vào các nhóm hữu hạn Ta nhắc lại định nghĩa lôgarit: Với hai số thực x, y và cơ

Trang 13

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

x sao cho: ax = b mod p là bài toán khó giải

Nếu a là căn nguyên tố của p và p là số nguyên tố, thì luôn luôn tồn tại lôgarit rời rạc, ngƣợc lại thì có thể không

Ví dụ:

Cho a = 2, x = 4, n = 13

Ta có : 24 mod 13 = 3

Bài toán ngƣợc lại : tìm x để 2x

= 3 mod 13 là bài toán lôgarit rời rạc

Vậy x = log2 3 mod 13 = 4

Tuy nhiên nếu chon n là số lớn ví dụ tìm x để 2x

= 3 mod 19797 thì việc tìm

x là rất khó

Trang 14

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Ta nhận thấy, trong khi bài toán lũy thừa là dễ dàng, thì bài toán logarit rời rạc là rất khó Đây cũng là một cơ sở của mã công khai

1.2.2 Ứng dụng trong mật mã

Lôgarit rời rạc là bài toán khó (chưa biết một thuật toán hiệu quả nào), trong khi bài toán tính luỹ thừa của một số lại không khó (có thể sử dụng thuật toán bình phương và nhân) Tình trạng này giống như tình hình giữa bài toán thừa số nguyên và phép nhân các số nguyên Chúng đều có thể dùng để xây dựng cấu trúc cho một hệ mật mã

Người ta thường chọn nhóm G trong mật mã lôgarit rời rạc là nhóm cyclic (Zp)* chẳng hạn như mật mã Elgamal, trao đổi khóa Diffie – Hellman

số a cố định và nếu như nghiệm của phương trình tồn tại thì a

G

log b Z , nếu như |G|< ∞

Bài toán lôgarit rời rạc có vai trò rất lớn trong ứng dụng của mật mã Đặc biệt quan trọng trong trường hợp G = F(q)*

, với q = pl, p là số nguyên tố, l N, tức là trong trường Galoa, cũng như trong trường hợp G là một nhóm điểm của đường cong Elliptic trong trường hữu hạn

Trang 15

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Ta xét phương trình

ax ≡ b (mod p) (1) trong nhóm Z*p, với p là số nguyên tố Ta giả sử rằng bậc của a (mod p) bằng p-1 Khi đó phương trình giải được, và nghiệm x là một phần tử của Zp-1 Trong phần này ta mô tả phương pháp đơn định để xác định nghiệm của (1) Nghiệm logab của phương trình (1) có thể tìm theo công thức sau

j -1 j a

log b (1-a ) b (mod p-1) ,

Thuật toán tương hợp

từ đây aHu-v b(mod p)

Bước 6 Đưa ra giá trị x Hu-v(modp-1).

Kết thúc thuật toán

1.2.3.2 Thuật toán Pohlig-Hellman

Input: cho số nguyên p

Output: phân tích số nguyên p thành thừa số nguyên tố

Bây giờ giả sử ta biết được sự phân tích thành nhân tử của p-1 ra thừa số

i

s α i i=1

p-1= q

Thuật toán Pohlig-Hellman

Trang 16

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Bản chất của thuật toán nằm ở chổ, tìm số lượng đủ lớn phương trình x theo modulo i

i

q với tất cả i, sau đó tìm nghiệm của phương trình ban đầu bằng định lý phần dư trung hoa Để tìm x theo một trong các modulo như thế, ta phải giải đồng dư thức

j(p-1)/q q,j

Bước 3 Khi tìm log (mod i), 1, ,

a b q i i s, ta tìm loga b(mod p 1)theo định lý phần dư trung hoa

Kết thúc thuật toán

1.2.3.3 Phương pháp ρ- Pollaid đối với logarit rời rạc

Ta đã tìm hiểu phương phápρ- Pollaid đối với nhân tử hóa số nguyên

Bây giờ ta tìm hiểu về bài toán lôgarit rời rạc theo modulo là số nguyên tố p

Ta muốn giải phương trình ax b(modp) Để làm việc này ta xem 3 dãy số

Trang 17

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

u , v , z , i 0,1,2, ,được xác định như sau:

từ đây giá trị x cần tìm bằng log b l(v -v )(mod p-1) a i 2i

1.2.3.4 Lôgarit rời rạc trong trường nguyên tố

Trong phần này ta xem thuật toán giải phương trình

x

a b(modp) , (2)

ở đây p là số nguyên tố Ta cho rằng a(modp)có bậc là p-1

Trang 18

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Thuật toán Adleman

Bước 1 Hình thành cơ sở nhân tử, bao gồm tất cả các số nguyên tố q,

tử

Bước 4 Bằng cách lựa chọn ta tìm ra một giá trị của r, sao cho

q

β r

B<p <B , với B =e1 const logploglogp

Bước 5 Bằng cách tính toán tương tự như bước 2 và 3 của thuật toán, tìm ra lôgarit rời rạc log p đối với các số nguyên tố a i p , ,p ở bước 4 1 k

H:= P +1, J:=H -p > 0, L=e , 0< ε <1 Hình thành tập hợp

Trang 19

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

1/2 1/2+ε

q|q<L H+c|0<c<L , q là số nguyên tố

Bước 2 Bằng cách sàng ta tìm cặp c ,c1 2sao cho 0<c <Li 1/2+ε, i=1,2

q 1 21/2

Trang 20

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Thuật toán LOGsmooth

Giả sử q là số nguyên tố, và là ước của p-1 Khi đó tập nghiệm của phương trình q

-u lq

(ba ) 1(mod p)(4) Khi i = k thì ta có đồng dư

k k

x' =1(modp) Lúc này có thể tìm t sao cho

k-i-1 i

Ta đặt ui+1= u +tqi i Lúc này

k-i-1 k-1 i

Như vậy điều này có nghĩa thỏa mãn (4)

Trang 21

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Nhờ vậy mà ta tìm uk bằng cách thực hiện theo sơ đồ:

k-i-1 i

-u lq 0=1 i

c

i i i+1 i i

t =log r ,u =u +t q

1.2.3.5 Lôgarit rời rạc trong trường Galois

Cố định số nguyên tố p, số tự nhiên n >1, đặt q = p Giả sử a là phần tử n

sinh của nhóm cyclic F(q)* Ta muốn giải phương trình a =b trong trường xF(q) Để làm điều này ta sử dụng các thuật toán với một cơ sở nhân tử Ta xem thuật toán index-calculus sau:

Ý tưởng của thuật toán này là , từ đẳng thức

m n

i j i=1 j=1

x = y Với các phần tử x ,y nằm trong trường hữu hạn i j Z p, thì

a i a j i=1 j=1

log x log y (mod p-1) (7) Khi nhận được số lượng đủ lớn biểu thức (7)( điều kiện là ít nhất là phải

có một phần tử g, mà log ga đã biết), thì ta có thể giải hệ phương trình tuyến tính với ẩn là log x và a i log y trong vành a j Zp-1 với điều kiện là số lượng ẩn trong hệ không quá lớn

Phương pháp đơn giản để tạo ra biểu thức (7) – chọn phần tử bất kỳ

Từ ý tưởng trên ta có thuật toán cụ thể sau:

Thuật toán index-calculus

Input: cho hai số a và b

Output: Tìm logab

Trang 22

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Bước 1 (Tính toán ban đầu) Trường F(q) đồng cấu với F(p) y /f(y), với f(y) F(p) y là đa thức bất khả quy bậc n Cho nên bất kỳ thành phần của trường F(q) được biểu diễn dưới dạng đa thức bậc không vượt quá n-1

Và nhân các đa thức như vậy sẽ rút gọn theo modulo f(y), điều này chúng ta

đã tìm hiểu ở chương trường số Phần tử (q-1)/(p-1)

1

a =a có bậc là p-1 và tạo thành F(p)* Với sự hổ trợ của nó chúng ta lập bảng logarithm “hằng số”- có nghĩa là phần tử của trường nguyên tố F(p) F(q) Ta tính a =1,a ,a , ,a10 1 12 1p-2 Bước 2 (Lựa chọn cơ sở nhân tử) Cơ sở nhân tử B F(q)thành lập từ tất cả các đa thức bất khả quy g bật không lớn hơn t, ở đây t là một số tham

0

g B

a c g (modf(y)) , Với c0 F(p) , từ đây ta tìm được biểu thức

a 0 a a

g B

m log c + α (m)log g(modq-1) ,

ở đây log c ta đã biết, còn a 0 log ga ta chưa biết độ lớn

Bước 4 (tìm thuật toán cho các phần tử của cơ sở nhân tử) Khi tìm ở bước 3 với số lượng đủ lớn các biểu thức (lớn hơn |B|), ta giải hệ phương trình tuyến tính trong vành Zq-1 và tìm ra log ga với g B

Bước 5 (Tìm lôgarit riêng) Ta tìm một giá trị của m sao cho

g

β m

Trang 23

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

CHƯƠNG II: ỨNG DỤNG LÔGARIT RỜI RẠC TRONG MỘT

SỐ HỆ MÃ CÔNG KHAI

Chương 2 trình bày những kiến thức cơ bản về hệ mã RSA, hệ mã Elgamal, chữ kí điện tử Ellgamal, hệ mã đường cong Elliptic Chương này cũng trình bày một số ví dụ cụ thể để minh họa Những kiến thức trình bày trong chương này được trích dẫn ở tài liệu sau: 1 Mã hoá thông tin: Cơ sở toán học và ứng dụng - Phạm Huy Điển, Hà Huy Khoái (2003) - NXB Đại Học Quốc Gia, 2 Lý thuyết mật mã và an toàn thông tin - Phan Đình Diệu (2002) - NXB Đại Học Quốc Gia Hà Nội, 3 Giáo trình an toàn dữ liệu – Khoa công nghệ thông tin - Trịnh Nhật Tiến - NXB Đại Học Quốc Gia Hà Nội

2.1 HỆ MÃ RSA

2.1.1 Giới thiệu

Trong mật mã học, RSA là một thuật toán mật mã hóa khóa công khai Đây là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa Nó đánh dấu một sự tiến bộ vượt bậc của lĩnh vực mật mã học trong việc sử dụng khóa công cộng RSA đang được sử dụng phổ biến trong thương mại điện tử và được cho là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn

Thuật toán được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào năm 1977 tại Học viện Công nghệ Massachusetts (MIT) Tên của thuật toán lấy từ 3 chữ cái đầu của tên 3 tác giả Trước đó, vào năm 1973, Clifford Cocks, một nhà toán học người Anh làm việc tại GCHQ, đã mô tả một thuật toán tương tự Với khả năng tính toán tại thời điểm đó thì thuật toán này không khả thi và chưa bao giờ được thực nghiệm Tuy nhiên, phát minh này chỉ được công bố vào năm 1997 vì được xếp vào loại tuyệt mật

Trang 24

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Thuật toán RSA được MIT đăng ký bằng sáng chế tại Hoa Kỳ vào năm

1983 (Số đăng ký 4,405,829) 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ước khi có đăng ký bảo hộ nên sự bảo hộ hầu như không có giá trị bên ngoài Hoa Kỳ Ngoài ra, nếu như công trình của Clifford Cocks đã được công bố trước đó thì bằng sáng chế RSA đã không thể được đăng ký

5 Tính d sao cho de ≡ 1 mod (n)

6 Công khai cặp (e, n), giữ bí mật d, cặp (p, q)

2.1.2.2 Mã hóa

Giả sử An có đoạn thông tin M cần gửi cho Bình Đầu tiên An chuyển M thành một số x < n theo một hàm có thể đảo ngược (từ x có thể xác định lại M) được thỏa thuận trước với Bình An có x và biết khóa tạo mã là (n, e) của Bình, An tính y là bản mã của x theo công thức: y = xe mod n Hàm trên có thể tính dễ dàng sử dụng phương pháp tính hàm mũ theo mođun bằng thuật toán bình phương và nhân Sau đó gửi y cho Bình

2.1.2.3 Giải mã

Trang 25

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Khi Bình nhận y từ An, Bình sẽ sử dụng khóa bí mật d để giải mã bằng cách tính yd mod n = x

Biết x, Bình tìm lại M theo phương pháp đã thỏa thuận trước và đọc được bản rõ

Chọn e = 3 thì UCLN (e, (n)) = UCLN (3, 20) = 1

Tìm d sao cho ed ≡ 1 mod (n) hay 3d ≡ 1 mod 20

Dễ thấy d = 7 Ta có: ed - 1 = 20

Vậy khóa công khai là (n, e) = (33, 3)

Khóa bí mật là (p, q) = (11, 3)

Giả sử cần mã hóa thông báo M = 7

Ta có: y = Me mod n = 73 mod 33 = 343 mod 33 = 13

Khi đó thông báo đã được mã hóa thành : y = 13

Để giải mã, ta tính toán như sau:

M = yd mod n = 137 mod 33 = 13(3+3+1) mod 33 = 133 133 13 mod 33

= (133 mod 33).(133 mod 33).(13 mod 33)

= (2197 mod 33).(2197 mod 33) (13 mod 33) = 19.19.13 mod 33

= 4693 mod 33 = 7

Trang 26

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

2.1.3.2 Ví dụ 2

Chọn p = 61, q = 53

Khi đó n = pq = 61 53 = 3233

(n) = (p-1)(q-1) = 60.52=3120

Chọn e = 17 thì UCLN (e, (n)) = UCLN (17, 3120) = 1

Tìm d sao cho ed ≡ 1 mod (n) hay 17d ≡ 1 mod 3120

Khi đó thông báo đã được mã hóa thành : y= 855

Và để kiểm tra giải mã, ta tính toán như sau:

M = yd mod n = 8552753 mod 3233 = 123

2.1.4 Nhận xét

2.1.4.1 Đặc điểm của hệ mã RSA

Trong thực tế, tốc độ mã hóa và giải mã của RSA là rất chậm so với các

hệ mã khác Điều này dẫn đến việc RSA chủ yếu được dùng để mã hóa khóa

bí mật hoặc các các bản rõ ngắn Phần nội dung chính cần gửi sẽ được mã hóa bằng một phương pháp mã hóa khác có tốc độ thực hiện nhanh hơn (Phương pháp này thường kém an toàn hơn so với RSA) Người nhận sẽ giải mã bằng RSA để lấy khóa bí mật rồi mới tiến hành giải mã nội dung cần nhận Điều này đã dẫn đến những bất cập về ứng dụng RSA rộng rãi trong thực tế Giải quyết được mâu thuẫn giữa việc tăng tính an toàn và tăng thời gian thực hiện

mã hóa là vấn đề cần được nghiên cứu để giải quyết

Trang 27

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

2.1.4.2 Tính bảo mật

Giả sử Bắc là người nhận được bản mã y và muốn đọc lại bản rõ Ta đã thấy với cách tạo mã trên và chỉ biết khóa công khai n và e của Bình, Bắc cần tính được d thì mới giải được Ta biết d được tính là nghịch đảo của e theo modulo (n) nghĩa là d là nghiệm của ez 1 (mod (n)) Để giải phương trình này cần biết (n) mà (n) = (p-1)(q-1) nghĩa là cần biết dạng phân tích

n = pq Nếu ta chọn p và q là những số nguyên tố lớn cỡ 100 chữ số thì n có

cỡ 200 chữ số và nếu chọn p và q hợp lý thì để tìm dạng biểu diễn n = pq theo các thuật toán hiện nay trên máy tình cũng mất hàng chục tỷ năm

Một số điểm lưu ý với hệ mã này:

1) Chọn p và q sao cho (p-1) và (q-1) phải có các thừa số nguyên tố lớn, ước chung lớn nhất của (p-1) và (q-1) phải nhỏ đồng thời p và q chứa các chữ số khác nhau không nhiều

2) Nên chọn e là số nguyên tồ lớn hơn p và q và phải thỏa mãn 2e > n.Nếu điều kiện này không thỏa mãn thì việc thám mã có thể sẽ dễ dàng nhờ phép khai căn

2.1.4.3 Thám mã hệ mã RSA

Bất cứ ai cũng có thể tạo ra một hệ thống thông tin mã hóa cho riêng mình Nhưng để có một hệ thống an toàn và hiệu quả đòi hỏi người thiết kế phải có kiến thức toán học sâu sắc, có kinh nghiệm về bảo mật và am hiểu các phương pháp tấn công

• Brute-force attack: phương pháp tấn công bằng cách thử tất cả những chìa khóa có thể có Đây là phương pháp tấn công thô sơ nhất và cũng khó khăn nhất Theo lý thuyết, tất cả các thuật toán mã hóa hiện đại đều có thể bị đánh bại bởi brute-force nhưng trong thực tiễn việc này chỉ có thể thực hiện được trong thời gian hàng triệu, thậm chí hàng tỉ năm Vì thế có thể coi một

Trang 28

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

thuật toán mã hóa là an toàn nếu nhƣ không còn cách nào khác để tấn công nó

• Tấn công dựa trên thời gian

Năm 1995, Paul Kocher mô tả một dạng tấn công mới lên RSA: Khi kẻ tấn công nắm đủ thông tin về phần cứng thực hiện mã hóa và xác định đƣợc thời gian giải mã đối với một số bản mã lựa chọn thì có thể nhanh chóng tìm ra khóa d Dạng tấn công này có thể áp dụng đối với hệ thống chữ ký điện tử sử dụng RSA

2.2 HỆ MÃ ELGAMAL

2.2.1 Giới thiệu

Hệ mã Elgamal là một hệ mật mã công khai Hệ mã này dựa trên bài toán lôgarit rời rạc Tính an toàn của hệ mã này dựa vào độ phức tạp của bài toán loogarit

Hệ Elgamal là một biến thể của sơ đồ phân phối khóa Diffie – Hellman, đƣợc đƣa ra năm 1985 So với hệ mã RSA , hệ Elgamal không có nhiều rắc rối về vấn đề bản quyền sử dụng

2.2.2 Hệ mã Elgamal

2.2.2.1 Cách tạo khóa

Trong hệ mã hóa Elgamal, các khóa công khai và khóa bí mật đƣợc tạo

ra nhƣ sau:

Trang 29

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

1 Chọn số nguyên tố đủ lớn p sao cho sao cho bài toán lôgarit rời rạc trong Zp là khó giải

2 Cho g Zp* là phần tử nguyên thuỷ

3 Chọn khóa bí mật x là số ngẫu nhiên sao cho 1< x < p Tính khóa công khai y theo công thức: y = gx (mod p)

4 Sử dụng ba giá trị (p, g, y) làm khóa công khai của người nhận và gửi chúng cho người sử dụng cần mã hóa thông tin bí mật gửi cho mình

2.2.2.2 Mã hóa hệ Elgamal

Giả sử An có đoạn thông tin M cần gửi cho Bình Khi đó để gửi bản tin

M cho Bình, với 0 < M < p, An sẽ thực hiện các bước như sau:

1 An chọn số ngẫu nhiên k thỏa mãn 1< k < p, sau đó An tính giá trị R theo công thức: R = gk

Ngày đăng: 18/12/2015, 16:02

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Quá trình mã hoá và giải mã - Luận văn thạc sĩ toán học Lôgarit rời rạc và mật mã công khai
Hình 1.1 Quá trình mã hoá và giải mã (Trang 8)
Hình 1.2: Mã hoá thông điệp sử dụng khoá công khai P - Luận văn thạc sĩ toán học Lôgarit rời rạc và mật mã công khai
Hình 1.2 Mã hoá thông điệp sử dụng khoá công khai P (Trang 10)
Hình  1.5:  Giải  mã  thông  điệp  sử  dụng  khoá  bí  mật  S  để  giải  mã  thông  điệp và khoá riêng P để giải mã khoá bí mật S - Luận văn thạc sĩ toán học Lôgarit rời rạc và mật mã công khai
nh 1.5: Giải mã thông điệp sử dụng khoá bí mật S để giải mã thông điệp và khoá riêng P để giải mã khoá bí mật S (Trang 11)
Hình 1.4: Mã hoá thông điệp sử dụng khoá bí mật S để mã thông điệp và  khoá công khai P để mã khoá bí mật S - Luận văn thạc sĩ toán học Lôgarit rời rạc và mật mã công khai
Hình 1.4 Mã hoá thông điệp sử dụng khoá bí mật S để mã thông điệp và khoá công khai P để mã khoá bí mật S (Trang 11)
Hình 2.1: Phép cộng trên đường cong Elliptic - Luận văn thạc sĩ toán học Lôgarit rời rạc và mật mã công khai
Hình 2.1 Phép cộng trên đường cong Elliptic (Trang 48)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w