1. Trang chủ
  2. » Khoa Học Tự Nhiên

Logarit rời rạc và mật mã công khai (Luận văn thạc sĩ)

59 179 0

Đ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 59
Dung lượng 1,08 MB

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

Nội dung

Logarit rời rạc và mật mã công khai (Luận văn thạc sĩ) Logarit rời rạc và mật mã công khai (Luận văn thạc sĩ) Logarit rời rạc và mật mã công khai (Luận văn thạc sĩ) Logarit rời rạc và mật mã công khai (Luận văn thạc sĩ) Logarit rời rạc và mật mã công khai (Luận văn thạc sĩ) Logarit rời rạc và mật mã công khai (Luận văn thạc sĩ) Logarit rời rạc và mật mã công khai (Luận văn thạc sĩ) Logarit rời rạc và mật mã công khai (Luận văn thạc sĩ) Logarit rời rạc và mật mã công khai (Luận văn thạc sĩ) Logarit rời rạc và mật mã công khai (Luận văn thạc sĩ) Logarit rời rạc và mật mã công khai (Luận văn thạc sĩ) Logarit rời rạc và mật mã công khai (Luận văn thạc sĩ)

Trang 1

Số hoá bởi Trung tâm Học liệu – ĐHTN

Trang 2

Số hoá bởi Trung tâm Học liệu – ĐHTN

Trang 3

Số hoá bởi Trung tâm Học liệu – ĐHTN

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 4

Số hoá bởi Trung tâm Học liệu – ĐHTN

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 5

Số hoá bởi Trung tâm Học liệu – ĐHTN

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 6

Số hoá bởi Trung tâm Học liệu – ĐHTN

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 7

Số hoá bởi Trung tâm Học liệu – ĐHTN

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

2 lĩnh vực con:

1 Sinh, chế mã mật (cryptography): nghiên cứu các kỹ thuật toán học

nhằm cung cấp các công cụ hay dịch vụ đảm bảo an toàn thông tin

2 Phá giải mã (cryptanalysis): nghiên cứu các kỹ thuật toán học phục vụ

phân tích phá mật mã và hoặc tạo ra các đoạn mã giản nhằm đánh lừa bên

Trang 8

Số hoá bởi Trung tâm Học liệu – ĐHTN

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 9

Số hoá bởi Trung tâm Học liệu – ĐHTN

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,

sự không từ chối và sự xác thực

- Độ tin cậy: cung cấp sự bí mật cho các thông báo và dữ liệu được lưu bằng

việc che dấu thông tin sử dụng các kĩ thuật mã hóa

- Tính toàn vẹn: cung cấp sự bảo đảm với tất cả các bên rằng thông báo còn

lại không thay đổi từ khi tạo ra đến khi người nhận mở nó ra

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

Số hoá bởi Trung tâm Học liệu – ĐHTN

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 11

Số hoá bởi Trung tâm Học liệu – ĐHTN

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 12

Số hoá bởi Trung tâm Học liệu – ĐHTN

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 13

Số hoá bởi Trung tâm Học liệu – ĐHTN

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 14

Số hoá bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

1.2.1 Định nghĩa

Tổng quát, giả sử G là một nhóm cyclic hữu hạn có n phần tử Zn là vành

các số nguyên modun n Chúng ta kí hiệu phép toán của G theo lối nhân Giả

sử b là một phần tử sinh của G, khi đó mọi phần tử g của G có thể viết dưới

dạng g = bk

với một số nguyên k nào đó Hơn nữa, hai số nguyên có cùng tính

chất đó với g là đồng dư theo modul n Ta định nghĩa một ánh xạ:

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 15

Số hoá bởi Trung tâm Học liệu – ĐHTN

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

và chữ kí số Elgamal

Ngoài ra còn có mật mã sử dụng lôgarit rời rạc trong nhóm con cyclic

của các đường elliptic trên trường hữu hạn gọi là mật mã đường cong elliptic

1.2.3 Một số thuật toán lôgarit rời rạc

1.2.3.1 Phương pháp đơn định

Cho G là nhóm cyclic, a, b  G Bài toán tìm kiếm nghiệm của phương

trình ax

= b gọi là bài toán lôgarit rời rạc trong nhóm G Nghiệm x của

phương trình gọi là lôgarit rời rạc cơ số a của b, ký hiệu là logab, nếu như cơ

số a cố định và nếu như nghiệm của phương trình tồn tại thì log b Za  G, 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 16

Số hoá bởi Trung tâm Học liệu – ĐHTN

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 17

Số hoá bởi Trung tâm Học liệu – ĐHTN

r a (modp), j0, ,q1 Bước 2 Đối với từng số nguyên tố q, q ||p-1α , ta tìm α

a

log b(mod q ) Đặt

Theo bảng trong bước 1 ta tìm ra giá trị của x1 và tiếp tục như thế Giá trị

của x iđược tìm thấy từ phương trình

i-1 i+1

-x -x q- -x q (p-1)/q x (p-1)/q

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

a b q iis, 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 18

Số hoá bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

      u , v , zi i i , i0,1,2, ,được xác định như sau:

z b a (mod p-1)

Tiếp theo ta xem tập hợp (z ,u ,v ,z ,u ,v )i i i 2i 2i 2i , i=1,2,3, , ta tìm vị trí i,

sao cho z =zi 2i Từ đẳng thức cuối cùng ta rút ra

b a (modp),

từ đây giá trị x cần tìm bằng log ba l(v -v )(mod p-1)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 19

Số hoá bởi Trung tâm Học liệu – ĐHTN

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ính thu được ứng với các ẩn log qa - logarit rời rạc của phần tử của cơ sở nhân

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ướ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 pa i đối với các số nguyên tố p , ,p1 k ở bước 4

Trang 20

Số hoá bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

q|q<L1/2  H+c|0<c<L1/2+ε, 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

Bước 3 Trên bước 2 ta tìm được số lượng đủ lớn phương trình, ta giải hệ

phương trình tuyến tính thu được và tìm ra log (H+c),log qa a

Bước 4 Để tìm x, ta đưa ra giới hạn mới 2

Bước 5 Bằng cách tương tự như bước 2 và 3 ta tìm lôgarit của một số

nguyên tố u, u xuất hiện trong bước 4

Trang 21

Số hoá bởi Trung tâm Học liệu – ĐHTN

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 x' =1 trong trường q Z gồm các phần tử p 1,c,c , ,c2 q-1, với

-u l(ba k) 1(mod p)

Từ (2) sẽ tương đương

k

(a ) 1(mod q )đẳng thức cuối cùng cho ta (x-u )lk chia hết cho p-1, có nghĩa

k k

xu (mod q )

Ta tìm các đồng dư thức như vậy đối với các ước q của p-1, có thể tìm

được x (mod p-1) bằng định lý phần dư trung hoa

Vấn đề còn lại là tìm ui thế nào để thỏa mãn phương trình (4) Ta có thể

đặt u =10 Nếu như một số uitìm được, thì từ (4) dẫn đến -u i lqk-i-1

mãn phương trình x' =1(modp)q Lúc này có thể tìm t sao cho

k-i-1 i -u lq t

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

k-i-1 k-1 i

-u +1 lq t -tlq

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

Trang 22

Số hoá bởi Trung tâm Học liệu – ĐHTN

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

u , r (ba ) (mod p), 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 = pn Giả sử a là phần tử

sinh của nhóm cyclic F(q) Ta muốn giải phương trình * a =b trong trường x

F(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

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 xa i và 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ỳ

p

g Z , tính u=a (modp)g và bằng cách lựa chọn chúng ta thử tìm số thỏa mãn

điều kiện sau

iu=p

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 23

Số hoá bởi Trung tâm Học liệu – ĐHTN

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

số, t<n

Bước 3 (Tìm biểu thức) Lựa chọn ngẫu nhiên m, 1 m q-2, ta tìm các

giá trị sao cho thỏa mãn biểu thức

g

α (m) m

ở đây log ca 0 ta đã biết, còn 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 24

Số hoá bởi Trung tâm Học liệu – ĐHTN

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 25

Số hoá bởi Trung tâm Học liệu – ĐHTN

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 26

Số hoá bởi Trung tâm Học liệu – ĐHTN

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

Để 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 27

Số hoá bởi Trung tâm Học liệu – ĐHTN

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 28

Số hoá bởi Trung tâm Học liệu – ĐHTN

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 29

Số hoá bởi Trung tâm Học liệu – ĐHTN

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ó

dễ hơn là brute-force

• Frequency analysis: thống kê tần suất, chỉ có thể áp dụng được đối với

các thuật toán cổ điển dùng phương pháp thay thế, ví dụ phương pháp Caesar

Để thực hiện phương pháp này ta cần một lượng văn bản đã mã hóa đủ lớn để

phép thống kê được chính xác Ngoài ra còn phải biết ngôn ngữ sử dụng trong

văn bản ban đầu, nếu văn bản ban đầu là tiếng Anh thì nhiều khả năng kí tự

xuất hiện nhiều nhất trong văn bản đã mã hóa là do chữ e mã hóa thành

• 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

Ngày đăng: 30/01/2018, 15:07

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w