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

nâng cao tốc độ tính toán của phương pháp mã hóa khóa công khai rabin

78 409 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 78
Dung lượng 1,49 MB

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

Nội dung

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 TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG LÊ THỊ HUYỀN NÂNG CAO TỐC ĐỘ TÍNH TOÁN CỦA PHƯƠNG PHÁP M

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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

LÊ THỊ HUYỀN

NÂNG CAO TỐC ĐỘ TÍNH TOÁN CỦA PHƯƠNG PHÁP

MÃ HÓA KHÓA CÔNG KHAI RABIN

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Thái Nguyên - Năm 2014

Trang 2

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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

LÊ THỊ HUYỀN

NÂNG CAO TỐC ĐỘ TÍNH TOÁN CỦA PHƯƠNG PHÁP

MÃ HÓA KHOÁ CÔNG KHAI RABIN

Chuyên ngành: Khoa học máy tính

Mã số: 60 48 01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

NGƯỜI HƯỚNG DẪN KHOA HỌC

PGS.TS Phạm Văn Ất

Thái Nguyên - Năm 2014

Trang 3

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

LỜI CAM ĐOAN

Tôi xin cam đoan bản luận văn “Nâng cao tốc độ tính toán của phương

pháp mã hóa khóa công khai Rabin” là công trình nghiên cứu của tôi, dưới sự

hướng dẫn khoa học của PGS.TS Phạm Văn Ất, tham khảo nguồn tài liệu đã được chỉ rõ trong trích dẫn và danh mục tài liệu tham khảo Các nội dung công bố và kết quả trình bày trong luận văn này là trung thực và chưa từng được ai công bố trong bất cứ công trình nào

Học viên thực hiện

Lê Thị Huyền

Trang 4

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

MỤC LỤC

MỞ ĐẦU 1

Chương 1: KHÁI LƯỢC VỀ MẬT MÃ VÀ CƠ SỞ TOÁN HỌC CỦA MẬT MÃ 4

1.1 Sơ lược lịch sử mật mã 4

1.2 Các hệ thống mật mã 5

1.2.1 Các bài toán về an toàn thông tin 5

1.2.2 Mật mã khóa đối xứng và mật mã khóa công khai 6

1.2.3 Thám mã và tính an toàn của các hệ mật mã 9

1.3 Một số hệ mật mã khóa công khai 10

1.3.1 Sự ra đời của hệ mật mã khóa công khai 10

1.3.2 Một số hệ mật mã khóa công khai 11

1.4 Cơ sở toán học của lý thuyết mật mã 21

1.4.1 Độ phức tạp của thuật toán 21

1.4.2 Phương pháp sinh số nguyên tố 24

1.4.3.Thuật toán Euclid 33

1.4.4 Định lý số dư Trung Quốc 34

Chương 2: MỘT SỐ SƠ ĐỒ CẢI TIẾN NÂNG CAO TỐC ĐỘ TÍNH TOÁN CỦA PHƯƠNG PHÁP MÃ HÓA KHÓA CÔNG KHAI RABIN 38

2.1 Một số khái niệm và định nghĩa 38

2.1.1 Ký hiệu Legendre 38

2.1.2 Luật thuận nghịch bình phương 44

2.1.3 Kí hiệu Jacobi 47

2.1.4 Phương trình Rabin 51

2.2 Cải tiến của Shimada 51

2.2.1 Quy trình mã hóa 51

2.2.2 Quy trình giải mã 52

2.2.3 Tính đúng đắn của thuật toán 53

2.3 Sơ đồ cải tiến của Chen-Tsu 55

Trang 5

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

2.3.1 Áp dụng định lý số dư Trung Quốc giải phương trình Rabin 56

2.3.2 Thuật toán giải mã 58

2.4 Cải tiến của THA 59

2.4.1 Một số khái niệm, định nghĩa 60

2.4.2 Thuật toán mã hóa 61

2.4.3 Thuật toán giải mã 62

2.4.4 Chứng minh tính đúng đắn 62

2.5 So sánh các sơ đồ cải tiến phương pháp mã hóa khóa công khai Rabin 64 2.5.1 Độ phức tạp tính toán 64

2.5.2 Mức độ bảo mật 65

2.5.3 Phạm vi ứng dụng 65

Chương 3 : PHẦN MỀM THỬ NGHIỆM 66

3.1 Sinh và kiểm tra số nguyên tố làm khóa 68

3.2 Mã hóa theo sơ đồ cải tiến của Shimada 67

3.3 Giải mã theo sơ đồ cải tiến của Shimada 68

3.4 Kết quả thực nghiệm 68

KẾT LUẬN VÀ KIẾN NGHỊ 70

TÀI LIỆU THAM KHẢO 71

Trang 6

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

DANH MỤC BẢNG

Trang

Bảng 1.1 Bảng chữ cái và chỉ số tương ứng Error! Bookmark not defined.

Bảng 2.1: Độ phức tạp tính toán của các thuật toán giải mã 65Bảng 3.1: Thời gian thực hiện các thuật toán giải mã 69

Trang 7

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

DANH MỤC HÌNH VẼ

Trang

Hình 3.1: Sinh số nguyên tố và tạo khóa 66

Hình 3.2: Kiểm tra số nguyên tố 67

Hình 3.3: Mã hóa theo sơ đồ cải tiến của Shimada 67

Hình 3.4: Giải mã theo sơ đồ cải tiến của Shimada 68

Trang 8

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

MỞ ĐẦU

Hiện nay, ở tất cả các nước phát triển cũng như đang phát triển, mạng máy tính đang ngày càng đóng vai trò thiết yếu trong mọi lĩnh vực hoạt động của toàn xã hội, và một khi nó trở thành phương tiện điều hành các hệ thống thì nhu cầu bảo mật an toàn thông tin được đặt lên hàng đầu Nhu cầu này không chỉ có ở các bộ

máy an ninh, quốc phòng, quản lý nhà nước, mà đã trở thành bức thiết trong nhiều

hoạt động kinh tế xã hội: tài chính, ngân hàng, thương mại, và thậm chí trong cả

một số hoạt động thường ngày của người dân (thư điện tử, thanh toán, tín dụng, ) Bởi vậy chúng ta phải làm sao đảm bảo được tính trong suốt của thông tin

Nếu như bạn gửi thư cho một người bạn nhưng lại bị một kẻ lạ mặt nào đó xem trộm và sửa đổi nội dung bức thư trái với chủ ý của bạn, tệ hại hơn nữa là khi bạn ký một hợp đồng, gửi thông qua mạng và lại bị kẻ xấu sửa đổi những điều khoản trong đó, và sẽ còn nhiều điều tương tự như vậy nữa Hậu quả sẽ như thế nào? Bạn bị người khác hiểu nhầm vì nội dung bức thư bị thay đổi, còn hợp đồng

bị phá vỡ bởi những điều khoản đã không còn nguyên vẹn Trước thực tế đó, yêu cầu quan trọng là làm sao để đảm bảo thông tin không bị sai lệch hoặc bị lộ do sự xâm nhập của kẻ thứ ba

Mã hoá thông tin là một trong các phương pháp đảm bảo được tính trong

suốt của thông tin Nó có thể giải quyết các vấn đề rắc rối ở trên giúp bạn, một khi thông tin đã được mã hoá và gửi đi thì kẻ xấu rất khó hoặc không thể giải mã được Một số giải thuật mã hóa đã được xây dựng nhằm đảm bảo tính an toàn dữ liệu tại nơi lưu trữ cũng như khi dữ liệu được truyền trên mạng, như các giải thuật

mã hóa đối xứng (DES), giải thuật mã hóa công khai

Trong số các hệ mật mã hóa công khai thì hệ mật RSA thường được dùng nhiều nhất, kế đến là hệ mã Rabin Hai hệ này có độ an toàn như nhau Hệ Rabin có

ưu điểm là tốc độ mã hóa nhanh hơn RSA, nhưng nhược điểm là việc giải mã không cho một lời giải duy nhất và một trong những lời giải đó là bản rõ cần tìm Trong những năm gần đây đã có một số cải tiến để khắc phục nhược điểm này của hệ mật Rabin, nhưng hầu hết các sách và tài liệu tiếng Việt vẫn trình bày phương pháp

Trang 9

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

Rabin gốc Chính vì vậy, em chọn đề tài: “Nâng cao tốc độ tính toán của phương

pháp mã hóa khóa công khai Rabin”

Nội dung chính của luận văn:

Trình bày thuật toán kiểm tra và sinh số nguyên tố Nhằm tìm ra các số nguyên

tố làm khóa cho các hệ mật mã khóa công khai

Nghiên cứu hướng cải tiến phương pháp mã hóa khóa công khai Rabin nhằm nâng cao tốc độ xử lý

Luận văn bao gồm 3 chương:

Chương 1: Giới thiệu chung về mật mã và cơ sở toán học của lý thuyết mật mã Nhằm giới thiệu lịch sử của mật mã, giới thiệu các hệ thống mật mã, đưa ra một số hệ mật mã khóa công khai

Trình bày các kiến thức toán học làm nền tảng cho các nội dung chính trong luận văn như: Độ phức tạp của thuật toán, thuật toán Euclid, thuật toán Euclid mở rộng, số nguyên tố và các phương pháp kiểm tra số nguyên tố

Chương 2: Một số sơ đồ cải tiến nâng cao tốc độ tính toán phương pháp mã hóa khóa công khai Rabin

Trình bày ký hiệu Legendre, Jacobi, định lí số dư Trung Quốc

Trình bày một số cải tiến phương pháp mã hóa khóa công khai Rabin nâng cao tốc độ xử lý: Cải tiến của Shimada, Chen-Tsu, THA

Chương 3: Cài đặt và thực nghiệm

Cài đặt chương trình và kết quả thực nghiệm một số sơ đồ cải tiến phương pháp mã hóa khóa công khai Rabin

Do thời gian và trình độ còn hạn chế nên luận văn khó tránh khỏi những thiếu sót, kính mong nhận được sự đóng góp, chỉ bảo của các thầy giáo, cô giáo và các bạn đồng nghiệp

Cuối cùng, em xin chân thành bày tỏ lòng biết ơn sâu sắc đến thầy giáo PGS

TS Phạm Văn Ất – Đại học Giao thông Vận tải đã tận tình hướng dẫn, chỉ bảo, giúp đỡ, khích lệ em trong suốt quá trình làm luận văn Đồng thời, em xin chân thành cảm ơn các thầy cô trong Phòng Sau Đại học – Trường Đại học Công nghệ

Trang 10

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

thông tin và Truyền thông, các thầy cô trong Viện Công nghệ thông tin – Viện Khoa học và Công nghệ Việt Nam đã tạo điều kiện thuận lợi, giúp đỡ em hoàn thành luận văn này

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

Học viên thực hiện

Lê Thị Huyền

Trang 11

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

Chương 1 KHÁI LƯỢC VỀ MẬT MÃ VÀ CƠ SỞ TOÁN HỌC CỦA MẬT MÃ

Tóm tắt chương: Trong chương này, luận văn giới thiệu tổng quan về mật mã bao gồm lịch sử mật mã, các hệ thống mật mã: mật mã khóa đối xứng, mật mã khóa công khai, một số hệ mã hóa khóa công khai như RSA, Elgamal, Rabin Độ phức tạp tính toán và phương pháp sinh số nguyên tố

1.1 Sơ lược lịch sử mật mã

Mật mã học là một ngành có lịch sử từ hàng nghìn năm nay, lịch sử mật mã học chính là lịch sử của những phương pháp mật mã học cổ điển - các phương pháp mật mã hóa với bút và giấy, đôi khi có hỗ trợ từ những dụng cụ cơ khí đơn giản Vào đầu thế kỷ 20, sự xuất hiện của các cơ cấu cơ khí và điện cơ, chẳng hạn như máy Enigma, đã cung cấp những cơ chế phức tạp và hiệu quả hơn cho việc mật

mã hóa Sự ra đời và phát triển mạnh mẽ của ngành điện tử và máy tính trong những thập kỷ gần đây đã tạo điều kiện để mật mã học phát triển nhảy vọt lên một tầm cao mới

Sự phát triển của mật mã học luôn luôn đi kèm với sự phát triển của các kỹ thuật phá mã (hay thám mã) Các phát hiện và ứng dụng của các kỹ thuật phá mã trong một số trường hợp đã có ảnh hưởng đáng kể đến các sự kiện lịch sử Một vài

sự kiện đáng ghi nhớ bao gồm việc phát hiện ra bức điện Zimmermann khiến Hoa

Kỳ tham gia Thế chiến I và việc phá mã thành công hệ thống mật mã của Đức Quốc

xã góp phần làm đẩy nhanh thời điểm kết thúc thế chiến II

Tại Ấn Độ, mật mã học cũng khá nổi tiếng Trong cuốn sách Kama Sutra, mật mã học được xem là cách những người yêu nhau trao đổi thông tin mà không bị phát hiện

Người Hi Lạp đã sử dụng phép mã chuyển vị từ 400 năm trước công nguyên

Người ta dùng một dải băng dài và mảnh quấn quanh một khối hình trụ tròn xoay rồi viết chữ lên đó theo cách thức thông thường (từ trái sang phải và từ trên xuống dưới) Mẩu tin được chuyển đi dưới dạng dải băng và chỉ có thể đọc ra được khi biết được bán kính của thiết diện khối trụ

Trang 12

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

Hoàng đế Caesar đã từng sử dụng phép mã thay thế trong quân sự, trong đó

mỗi ký tự được thay thế bởi ký tự đứng sau nó 3 vị trí trong bảng chữ cái alphabet, nghĩa là chữ A được thay thế bởi chữ D, chữ B được thay bởi chữ E, Trong thực

tế, việc triển khai một hệ mã như vậy là khá đơn giản (và cũng rất thuận tiện cho việc sử dụng), với việc dùng hai chiếc đĩa đồng tâm có bán kính khác nhau và có các bảng chữ cái alphabet rải đều trên mỗi vành đĩa

Tuy nhiên, từ những năm cuối của thập kỷ 60, mối đe dọa về vấn đề "an toàn máy tính" đã trở thành hiện thực Người ta cần đến các chương trình mã hóa mạnh hơn để chống lại khả năng phá mã của các siêu máy tính với tốc độ ngày càng lớn Vấn đề này đã được quan tâm nghiên cứu tích cực trong các năm 1968-1975 và được đánh dấu bằng sự ra đời của hệ mã Lucifer (1974) và sau đó được cải tiến

thành hệ mã dữ liệu tiêu chuẩn DES (1975), một hệ mã khối đối xứng với chìa khóa dài 56 bits, kết hợp luân phiên 16 phép thay thế với 15 phép hoán vị Tiếp sau đó,

sự ra đời của hệ mã hóa với khóa công khai, vào cuối những năm 70 của thế kỷ vừa

qua, đã lôi cuốn theo sự phát triển của một số bộ môn của toán học và tin học

1.2 Các hệ thống mật mã

1.2.1 Các bài toán về an toàn thông tin

Có nhiều bài toán khác nhau về yêu cầu an toàn thông tin tùy theo những tình huống cụ thể khác nhau, nhưng tập trung có một số bài toán chung nhất thường gặp trong thực tiễn là những bài toán sau đây:

- Bảo mật: giữ thông tin được bí mật đối với tất cả mọi người, trừ một ít người

có thẩm quyền được đọc, biết thông tin

- Toàn vẹn thông tin: bảo đảm thông tin không bị thay đổi hay xuyên tạc bởi những kẻ không có thẩm quyền hoặc bằng những phương tiện không được phép

- Nhận thực một thực thể: xác nhận danh tính của một thực thể chẳng hạn một người, một máy tính cuối trong mạng, một thẻ tín dụng…

- Nhận thực một thông báo: xác nhận nguồn gốc của một thông báo được gửi đến

- Chữ ký: một cách để gắn kết một thông tin với một thực thể, thường dùng

Trang 13

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

trong bài toán nhận thực một thông báo cũng như trong nhiều bài toán nhận thực khác

- Ủy quyền: chuyển cho một thực thể khác quyền được đại diện hoặc được làm một việc gì đó

- Cấp chứng chỉ: cấp một sự xác nhận thông tin bởi một thực thể được tín nhiệm

- Báo nhận: xác nhận một thông báo đã được nhận hay một dịch vụ đã được thực hiện

- Làm chứng: kiểm thử việc tồn tại một thông tin ở một thực thể khác với người chủ sở hữu thông tin đó

- Không chối bỏ được: ngăn ngừa việc chối bỏ trách nhiệm đối với một cam kết

1.2.2 Mật mã khóa đối xứng và mật mã khóa công khai

Giả sử một người gửi A muốn gửi đến một người nhận B một văn bản (chẳng

hạn, một bức thư) p, để bảo mật A lập cho p một bản mật mã c, và thay cho việc gửi

p, A gửi cho B bản mật mã c, B nhận được c và “giải mã” c để lại được văn bản p

như A định gửi Để A biến p thành c và B biến ngược lại c thành p, A và B phải thỏa thuận trước với nhau các thuật toán lập mã và giải mã, và đặc biệt một khóa

mật mã chung K để thực hiện các thuật toán đó Người ngoài không biết các thông

tin đó (đặc biệt, không biết khóa K), cho dù có lấy trộm được c trên kênh truyền thông công cộng, cũng không thể tìm được văn bản p mà hai người A, B muốn gửi

cho nhau Sau đây ta sẽ cho một định nghĩa hình thức về sơ đồ mật mã và cách thức thực hiện để lập mật mã và giải mật mã

Trang 14

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

Định nghĩa: Một sơ đồ hệ thống mật mã là một bộ năm

S = ( P, C, K, E, D) thỏa mãn các điều kiện sau đây:

x P: e k (x) = E(K,x); y C: d k (y) = D(K, y)

e k và d k được gọi lần lượt là hàm lập mã và hàm giải mã ứng với khóa mật

mã K Các hàm đó phải thỏa mãn hệ thức:

x P: d k (e k (x))= x

Về sau, để thuận tiện ta sẽ gọi một danh sách trên thỏa mãn các tính chất kể

trên là một sơ đồ hệ thống mật mã, còn khi đã chọn cố định một khóa K, thì danh sách (P, C, e k , d k ) là một hệ mật mã thuộc sơ đồ đó

Trong định nghĩa này, phép lập mật mã (giải mã) được định nghĩa cho từng

ký tự bản rõ (bản mã) Trong thực tế, bản rõ của một thông báo thường là một dãy

các ký tự bản mã, tức là phần tử của tập C*, việc mở rộng các hàm e k và d k lên các

miền tương ứng P* và C* để được các thuật toán lập mật mã và giải mã dùng trong

thực tế sẽ được trình bày sau Các tập ký tự bản rõ và bản mã thường dùng là các tập ký tự của ngôn ngữ thông thường như tiếng Việt, tiếng Anh (ký hiệu tập ký tự

tiếng Anh là A tức A = {a, b, c, , x, y, z } gồm 26 ký tự; tập ký tự nhị phân B chỉ

gồm hai ký tự 0 và l; tập các số nguyên không âm bé hơn một số n nào đó (ký hiệu tập này là Zn tức Zn = {0, 1, 2, , n-1}) Chú ý rằng có thể xem B = Z2 Để thuận tiện, cũng thường đồng nhất tập ký tự tiếng Anh với tập gồm 26 số nguyên không

âm đầu tiên Z26 = {0, 1, 2, 24, 25} với sự tương ứng sau đây:

Trang 15

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

Theo định nghĩa về sơ đồ mật mã, cứ mỗi lần truyền tin bảo mật, cả người gửi

A và người nhận B phải cùng thỏa thuận trước với nhau một khóa chung K, sau đó người gửi dùng e k để lập mật mã cho thông báo gửi đi, và người nhận dùng d k để giải mã bản mật mã nhận được Người gửi và người nhận cùng có một khóa chung

K, được giữ như bí mật riêng của hai người, dùng cả cho lập mật mã và giải mã, gọi

những hệ mật mã với cách sử dụng đó là mật mã khóa đối xứng, đôi khi cũng gọi là

mật mã truyền thống, vì đó là cách đã được sử dụng từ hàng ngàn năm nay

Tuy nhiên, về nguyên tắc hai hàm lập mã và giải mã là khác nhau, không nhất

thiết phải phụ thuộc cùng một khóa Nếu ta xác định mỗi khóa K gồm có hai phần K

= (K’, K’’), K’ dành cho việc lập mật mã (và ta có hàm lập mã e k’ ), K’’ dành cho việc giải mã (và có hàm giải mã d k’’), các hàm lập mã và giải mã thỏa mãn hệ thức

d k’’ (e k’ (x)) = x với x P, thì được một hệ mật mã khóa phi đối xứng Như vậy,

trong một hệ mật mã khóa phi đối xứng, các khóa lập mã và giải mã (K’ và K’’) là

khác nhau, nhưng tất nhiên có quan hệ với nhau Trong hai khóa đó, khóa cần phải

giữ bí mật là khóa giải mã K’’, còn khóa lập mã K’ có thể được công bố công khai; tuy nhiên điều đó chỉ có ý nghĩa thực tiễn khi việc biết K’ tìm K" là cực kỳ khó khăn

đến mức hầu như không thể thực hiện được Một hệ mật mã khóa phi đối xứng có

tính chất nói trên, trong đó khóa lập mật mã K’ của mỗi người tham gia đều được công bố công khai, được gọi là hệ mật mã khóa công khai Khái niệm mật mã khóa

công khai mới được ra đời vào giữa những năm 1970, và ngay sau đó đã trở thành một khái niệm trung tâm của khoa học mật mã hiện đại

Trang 16

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

và giải mã (tức các thuật toán E và D), không nhất thiết là bí mật, do đó bài toán quy về việc tìm chìa khóa mật mã K, hay chìa khóa giải mã K’’, nếu hệ mật mã có

khóa phi đối xứng Như vậy, có thể quy ước xem bài toán thám mã cơ bản là bài toán tìm khóa mật mã K (hay khóa giải mã K’’) Để giải bài toán đó, giả thiết người thám mã biết thông tin về sơ đồ hệ mật mã được dùng, kể cả các phép lập mã và giải mã tổng quát E và D Ngoài ra, người thám mã có thể biết thêm một số thông tin khác, tùy theo những thông tin được biết thêm này mà ta có thể phân loại bài toán thám mã thành các bài toán cụ thể như sau:

- Bài toán thám mã chỉ biết bản mã: là bài toán phổ biến nhất, khi người thám

mã chiếm được (tạm thời) máy lập mã;

- Bài toán thám mã khi có bản mã được chọn: người thám mã có thể chọn một bản mật mã Y, và biết bản rõ tương ứng X Điều này có thể xảy ra khi người thám

mã chiếm được tạm thời máy giải mã

1.2.3.2 Tính an toàn của một hệ mật mã

Tính an toàn của một hệ thống mật mã phụ thuộc vào độ khó khăn của bài toán thám mã khi sử dụng hệ mật mã đó Người ta đã đề xuất một số cách hiểu cho khái

Trang 17

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

niệm an toàn của hệ thống mật mã, để trên cơ sở các cách hiểu đó nghiên cứu tính

an toàn của nhiều hệ mật mã khác nhau, sau đây ta giới thiệu vài cách hiểu thông dụng nhất:

- An toàn vô điều kiện: giả thiết người thám mã có được thông tin về bản mã

Theo quan niệm lý thuyết thông tin, nếu những hiểu biết về bản mã không thu hẹp được độ bất định về bản rõ đối với người thám mã, thì hệ mật mã là an toàn vô điều

kiện, hay theo thuật ngữ của C.Shannon, hệ là bí mật hoàn toàn Như vậy, hệ là an

toàn vô điều kiện, nếu độ bất định về bản rõ sau khi người thám mã có được các thông tin (về bản mã) bằng độ bất định về bản rõ trước đó

- An toàn được chứng minh: một hệ thống mật mã được xem là có độ an toàn

được chứng minh nếu ta có thể chứng minh được là bài toán thám mã đối với hệ

thống đó khó tương đương với một bài toán khó đã biết, thí dụ bài toán phân tích

một số nguyên thành tích các thừa số nguyên tố, bài toán tìm lôgarit rời rạc theo

một mô đun nguyên tố, v.v (khó tương đương có nghĩa là nếu bài toán này giải

được thì bài toán kia cũng giải được với cùng một độ phức tạp như nhau)

- An toàn tính toán: hệ mật mã được xem là an toàn (về mặt) tính toán, nếu

mọi phương pháp thám mã đã biết đều đòi hỏi một nguồn năng lực tính toán vượt mọi khả năng (kể cả phương tiện thiết bị) tính toán của một kẻ thù giả định An toàn theo nghĩa này, nói theo ngôn ngữ của lý thuyết về độ phức tạp tính toán, là bao hàm cả khái niệm an toàn theo nghĩa “được chứng minh” nói trên

Tính an toàn theo nghĩa được chứng minh hay tính toán được sử dụng nhiều trong việc nghiên cứu các hệ thống mật mã hiện đại, đặc biệt là các hệ thống mật

mã khóa công khai

1.3 Một số hệ mật mã khóa công khai

1.3.1 Sự ra đời của hệ mật mã khóa công khai

Sự ra đời của khái niệm hệ mật mã khóa công khai là một tiến bộ có tính chất bước ngoặt trong lịch sử mật mã nói chung, gắn liền với sự phát triển của khoa học tính toán hiện đại Người ta có thể xem thời điểm khởi đầu của bước ngoặt đó là sự

Trang 18

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

xuất hiện ý tưởng của W Diffie và M.E Hellman được trình bày vào tháng 6 năm

1976 tại Hội nghị quốc gia hàng năm của AFIPS (Hoa Kỳ) trong bài Multiuser

cryptographic techniques Vài ngay sau đó, công việc tìm kiếm những thể hiện cụ

thể có khả năng ứng dụng trong thực tế đã bắt đầu thu hút sự quan tâm của nhiều chuyên gia Một năm sau, năm 1977, R.L.Rivest, A.Shamir và L.M.Adleman đề xuất một hệ cụ thể về mật mã khóa công khai mà độ an toàn của hệ dựa vào bài toán khó “phân tích số nguyên thành thừa số nguyên tố”, hệ này về sau trở thành một hệ nổi tiếng và mang tên là hệ RSA, được sử dụng rộng rãi trong thực tiễn bảo mật và

an toàn thông tin Cũng vào thời gian đó, M.O Rabin cũng đề xuất một hệ mật mã khóa công khai dựa vào cùng bài toán số học khó nói trên Liên tiếp sau, nhiều hệ mật mã khóa công khai được đề xuất, mà khá nổi tiếng và được quan tâm nhiều là các hệ: hệ McEliece được đưa ra năm 1978 dựa trên độ NP-khó của bài toán giải mã đối với các hệ mã cyclic tuyến tính, hệ Merkle-Hellman dựa trên tính NP-đầy đủ của bài toán xếp ba lô (knapsacd problem), hệ mật mã nổi tiếng ElGamal dựa trên

độ khó của bài toán lôgarit rời rạc, hệ này về sau được mở rộng để phát triển nhiều

hệ tương tự dựa trên độ khó của các bài toán tương tự lôgarit rời rạc trên các cấu trúc nhóm cyclic hữu hạn, nhóm các điểm nguyên trên đường cong eliptic, v.v

1.3.2 Một số hệ mật mã khóa công khai

1.3.2.1 Sơ đồ chung hệ mật mã khoá công khai

y = E(K', x) - phép biến đổi x P thành y C, dùng để tạo mã

x = D(K", y) - phép biến đổi y C thành x P, dùng để giải mã

1.3.2.2 Hệ mật mã RSA (Rivest - Shamir - Adleman)

a, Ý tưởng và dữ liệu dùng trong hệ mật mã RSA

Trang 19

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

Ý tưởng dựa vào phép biến đổi thuận và ngược như sau:

y = xe (mod n)

x = yd (mod n)

d = e-1 (mod (n))

Dữ liệu gốc:

p, q: hai số nguyên tố lẻ khác nhau

Dữ liệu suy diễn: Từ p và q lần lượt tính

n = p q )

Mã hoá (lập mã):

y = E(K', x) = xe (mod n), x P Giải mã:

Trang 20

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

Mặt khác:

D(K", E(K', x)) = xde (mod n) nên:

D(K", E(K', x)) = x1 + t (n) (mod n) (1.2) Chia 2 trường hợp: x nguyên tố với n và x không nguyên tố với n

Trường hợp 1: x nguyên tố với n, khi đó theo định lý Fermat:

(vì cả hai vế đều chia hết cho p)

Từ mệnh đề thứ hai (1.4) lần lượt suy ra:

xq-1 = 1 (mod q) (vì x Z*q)

xt(p-1)(q-1) = 1 (mod q)

xt n( ) = 1 (mod q)

xt ( ) 1n = x (mod q) Kết hợp điều này với (1.5) suy ra

Trang 21

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

xt n( )+1 - x đồng thời chia hết cho p và q

Mặt khác p, q là các số nguyên tố lẻ khác nhau nên đại lượng này cũng chia hết cho n=p q, tức là:

xt n( )+1 = x (mod n)

Từ đây và (1.2) suy ra (1.1) Vậy (1.1) được chứng minh

1.3.2.3 Hệ mật mã ElGamal

a, Ý tưởng và dữ liệu dùng trong hệ mật mã ElGamal

Ý tưởng dựa vào công thức sau:

x(adk)(akd)-1 = x Đặt: b = ad

Khi đó có thể dùng phép biến đổi thuận:

y1 = ak

y2= x bk Phép biến đổi ngược:

x = y2 (y1d)-1

Dữ liệu gốc:

p: số nguyên tố

Dữ liệu suy diễn

a: phần tử nguyên thuỷ của Z*pd: 1 < d < p

Trang 22

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

x = D(K", y) = D(K", y1, y2) = y2 ((y1d)-1 mod p) (mod p)

Nhận xét: Tính khả thi của công thức giải mã:

Do a là phần tử nguyên thuỷ của Z*p, nên

y1 = ak (mod p) Z*p

Từ đó lại suy ra: y1d Z*p

Điều này đảm bảo tồn tại:

y2 ((y1d)-1 mod p) (mod p) = (x bk) (akd)-1 (mod p)

= x (adk) (akd)-1 (mod p) = x

Vậy (1.9) được chứng minh

1.3.2.4 Hệ mật mã Rabin

a,Ý tưởng và dữ liệu dùng trong hệ mật mã Rabin

Ý tưởng dựa vào công thức sau:

Trang 23

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

2

b b y x

Dữ liệu gốc: Hai số nguyên tố p và q có dạng 3 mod 4:

p = 3 + 4t q = 3 + 4m

Dữ liệu suy diễn:

n = p q b: 0 b n

Mã hoá:

y = x(x + b) mod n , với x ZnGiải mã:

24

2

b b y

Trang 24

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

24

2

b b y

)2

(4

b x

b y

2

b x

z2 = c (mod n)

Ngoài ra do n=p q, nên suy ra:

Trường hợp 1: z <> 0 mod p và z <> 0 mod q

Do p nguyên tố nên suy ra:

zp-1 = 1 (mod p) Mặt khác do (p-1)/2 nguyên, nên:

1 )

1 2 2 1

p p p

z z

Suy ra:

c c

p

2 1 (mod p) Mặt khác do (p+1)/4 nguyên nên nếu đặt:

4 1

p c

u (mod p) thì suy ra

Lập luận tương tự, nếu đặt

Trang 25

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

4 1

q c

v (mod q) thì cũng suy ra:

Từ (1.10) và (1.12) suy ra:

z2 = u2 (mod p) Nói cách khác: z cần thoả một trong 2 phương trình

z = u (mod p) Tương tự, từ (1.11) và (1.13) suy ra: z cần thoả một trong 2 phương trình

z = v (mod q) Trường hợp 2: z = 0 mod p và z <> 0 mod q

Do z =0 mod p nên c = 0 mod p u = 0 mod p

Vậy z2 = u2 (mod p)

Tương tự như trường hợp 1 với z <> 0 mod q, ta có z2

= v2 (mod q) Trường hợp 3: z <> 0 mod p và z = 0 mod q

Do z = 0 mod q nên c=0 mod q v=0 mod q, vậy z2 = v2 (mod q) Tương tự như trường hợp 1 với z <> 0 mod p, ta có z2

= u2 (mod p) Như vậy, trong các trường hợp trên z cần thoả mãn một trong 4 hệ phương trình sau: z = u (mod p)

Trang 26

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

4

13

*4

2 2

n b y

b y

c (mod n) (xem bổ đề bên dưới)

4 1

p c

u (mod p) 4

1

q c

v (mod q) Giải 4 hệ phương trình đồng dư:

z = u (mod p)

z = v (mod q) (Xem cách giải bên dưới) sẽ nhận được 4 nghiệm

Thay 4 nghiệm z vào công thức:

giá trị x

Trong 4 giá trị này chỉ một là giá trị đích thực của x cần tìm

Giải hệ phương trình đồng dư

z = u (mod p)

z = v (mod q) quy về tìm k và m sao cho:

z = u + k p

z = v + m q hay:

Trang 27

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

Bổ đề 1.3.3 Với n=p q trong đó p và q là 2 số nguyên tố có dạng 3 (mod 4) thì: 4-1

n = p*q = 77 Chọn b dương nhỏ hơn n:

b = 8

Mã hoá: Giả sử với bản rõ x = 44

y = x(x+b) (mod n) = 44*52 (mod 77) = 55 Giải mã:

Trang 28

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

4

13

*4

2 2

n b y

b y

c = 55 + 64*(3*77 + 1)/4 (mod 77)

= 55 + 16*(3*77 + 1) = 55 + 16 = 71

c = 71 4 1

p c

u (mod p) = 712 (mod 7) = (71 mod 7)2 (mod 7) = 12 = 1 4

1

q c

v (mod q)=713(mod 11)=(71 mod 11)3= 53 = 125 (mod 11) = 4 Việc giải hệ phương trình để tìm z quy về tìm k1 và m1 sao cho

k1*p - m1*q = 1 Với p=7, q=11, dùng thuật toán Euclide, ta có:

+ Với u=1, v=4 => x = 1 - 63 -4 (mod 77) = 11 + Với u=1, v=-4 => x = 1 +105 - 4 (mod 77) = 25 + Với u=-1, v=4 => x = -1 - 105 -4 (mod 77) = 44 + Với u=-1, v=-4 => x = -1 + 63 -4 (mod 77) = 58 Bản rõ x sẽ nhận một trong 4 giá trị trên, trong trường hợp này x = 44

1.4 Cơ sở toán học của lý thuyết mật mã

1.4.1 Độ phức tạp của thuật toán

Thời gian làm việc của máy tính khi chạy một thuật toán nào đó không chỉ phụ thuộc vào thuật toán, mà còn phụ thuộc vào máy tính được sử dụng Vì thế, để có một tiêu chuẩn chung, ta sẽ đo độ phức tạp của một thuật toán bằng số các phép tính phải làm khi thực hiện thuật toán Khi tiến hành cùng một thuật toán, số các phép

Trang 29

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

tính phải thực hiện còn phụ thuộc vào cỡ của bài toán, tức là độ lớn đầu vào Vì thế,

độ phức tạp của thuật toán sẽ có một hàm số phụ thuộc độ lớn của đầu vào Trong những ứng dụng thực tiễn, chúng ta không cần biết chính xác hàm này, mà chỉ cần biết cỡ của chúng, tức là cần có một ước lượng đủ tốt của chúng

Khi làm việc máy tính thường ghi các chữ số bằng những bóng đèn “sáng, tắt”: bóng đèn sáng chỉ số 1, bóng đèn tắt chỉ số 0 Vì thế thuận tiện nhất là dùng hệ đếm cơ số 2 Một ký hiệu 0 hoặc 1 được gọi là một bit Một số nguyên n biểu diễn bởi k chữ số 1 và 0 được gọi là một số k – bit, số tự nhiên n sẽ là một số k – bit với

k = [log2n]+1 (dấu [] ký hiệu phần nguyên của một số)

Độ phức tạp của thuật toán được đo bằng số các phép tính bit Phép tính bit là một phép tính logic hay số học thực hiện trên các số 1-bit 0 và 1

Để ước lượng độ phức tạp của thuật toán ta dùng khái niệm bậc O-lớn

Định nghĩa 1: Giả sử f(n) và g(n) là hai hàm xác định trên tập hợp các số nguyên dương Ta nói f(n) có bậc O-lớn của g(n), và viết f(n)=O(g(n)) hoặc f=O(g), nếu tồn tại một số C>0 sao cho với n đủ lớn, các hàm f(n) và g(n) đều dương, đồng thời f(n)<Cg(n)

Nếu f1(n)=O(g(n)), f2(n)=O(g(n)) thì f1 + f2 = O(g)

Nếu f1=O(g1), f2=O(g2) thì f1f2 = O(g1g2)

Nếu tồn tại giới hạn hữu hạn

( )lim( )

n

f n

g n

thì f = O (g)

Với mọi số 0, logn O n( )

Định nghĩa 2: Một thuật toán được gọi là có độ phức tạp đa thức, hoặc có thời gian đa thức, nếu số các phép tính cần thiết khi thực hiện thuật toán không

Trang 30

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

vượt quá O(log d n), trong đó n là độ lớn của đầu vào, và d là số nguyên dương nào

đó

Nói cách khác, nếu đầu vào là các số k – bit thì thời gian thực hiện thuật toán

là O(kd), tức là tương đương với một đa thức của k

Các thuật toán có với thời gian O(n ), a > 0 được gọi là các thuật toán với độ phức tạp mũ, hoặc thời gian mũ

Chú ý: Nếu một thuật toán nào đó có độ phức tạp trung gian giữa đa thức và

mũ Ta thường gọi đó thuật toán dưới mũ Chẳng hạn, thuật toán nhanh nhất được biết đến hiện nay để phân tích một số nguyên n ra thừa số là thuật toán có độ phức tạp exp( log log log )n n

Khi giải một bài toán, không những ta chỉ cố gắng tìm ra một thuật toán nào

đó, mà còn muốn tìm ra thuật toán “tốt nhất” Đánh giá độ phức tạp là một trong những cách để phân tích, so sánh, và tìm ra thuật toán tối ưu Tuy nhiên, độ phức tạp không phải là tiêu chuẩn duy nhất để đánh giá thuật toán Có những thuật toán,

về lý thuyết thì có độ phức tạp cao hơn một thuật toán khác, nhưng khi sử dụng lại

có kết quả (gần đúng) nhanh hơn nhiều Điều này còn tùy thuộc những bài toán cụ thể, những mục tiêu cụ thể, và cả kinh nghiệm của người dùng

Chúng ta cần lưu ý thêm một điểm sau đây, mặc dù định nghĩa thuật toán mà chúng ta đưa ra chưa phải là chặt chẽ, nó vẫn quá “cứng nhắc ” trong những ứng dụng thực tế Bởi vậy, chúng ta còn cần đến các thuật toán “xác suất”, tức là các thuật toán phụ thuộc vào một hay nhiều tham số ngẫu nhiên Những “thuật toán” này, về nguyên tắc không được gọi là thuật toán vì chúng có thể với xác suất bé, không bao giờ kết thúc Tuy nhiên, thực nghiệm chỉ ra rằng, các thuật toán xác suất thường hữu hiệu hơn các thuật toán tất định Thậm chí, trong rất nhiều trường hợp, chỉ có các thuật toán như thế là sử dụng được

Khi làm việc với các thuật toán xác suất, ta thường hay phải sử dụng các số

“ngẫu nhiên” Khái niệm chọn số ngẫu nhiên cũng cần được chính xác hóa Thường thì người ta sử dụng một “máy” sản xuất số giả ngẫu nhiên nào đó Ở đây, chúng ta không đề cập tỷ mỷ vấn đề nói trên, mà mỗi lần nói đến việc chọn số ngẫu nhiên, ta

Trang 31

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

sẽ hiểu là điều đó thực hiện được trên máy

1.4.2 Phương pháp sinh số nguyên tố

1.4.2.1 Định nghĩa số nguyên tố

Định nghĩa: Số nguyên tố là số nguyên lớn hơn 1, không chia hết cho số nguyên dương nào ngoài số 1 và chính nó Số nguyên lớn hơn 1 không phải là số nguyên tố gọi là hợp số

Định lý: (Định lý cơ bản của số học) Mọi số nguyên lớn hơn 1 đều phân tích được một cách duy nhất thành tích các số nguyên tố, trong đó các thừa số được viết với thứ tự không giảm

Chứng minh:

Xét tập F gồm tất cả các số nguyên lớn hơn 1 không biểu diễn được thành tích một số hữu hạn thừa số nguyên tố Ta chỉ cần chỉ ra F= Thật vậy, giả sử

F Khi đó có số nguyên dương nhỏ nhất m thuộc F Vì m F nên m phải là hợp

số Khi đó có hai số nguyên dương q 1 , q 2 >1 để m = q 1 q 2 Vì q 1 ,q 2 < m nên q 1 ,q 2

F Như vậy ta có phân tích: q 1 = t 1 t 2 t h và q 2 = u 1 u 2 u k

Ở đó các t i , u i, đều là các số nguyên tố Khi đó:

m = q 1 q 2 = t 1 t 2 t h u 1 u 2 u k

Điều này mâu thuẫn với giả thiết m F Như vậy F phải là tập rỗng Do đó mọi

số tự nhiên lớn hơn 1 đều phân tích thành tích của hữu hạn thừa số nguyên tố

Bây giờ giả sử một số được phân tích thành hai tích dạng A và B các thừa số nguyên tố Khi đó A = B Bằng cách lược bỏ tất cả các thừa số nguyên tố xuất hiện trong cả A và B, ta nhận được đẳng thức tương đương C=D Ta cần phải chứng minh C=D=1

Thật vậy giả sử trái lại C = D 1 Gọi p là thừa số nguyên tố xuất hiện trong

C Khi đó p không thể là thừa số xuất hiện trong biểu thức tích của D Có nghĩa là D

không phải là bội của p, và do đó C cũng không là bội của p (mâu thuẫn) Vậy C =

D = 1 Điều này chứng tỏ rằng sự phân tích ra các thừa số nguyên tố của một số

nguyên >1 là duy nhất nếu không kể đến thứ tự các thừa số

Trang 32

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

1.4.2.2 Phương pháp xác suất kiểm tra và sinh số nguyên tố

* Thuật toán Fermat

Thuật toán Fermat là kiểm tra xác suất dựa trên định lý Fermat nhỏ (Fermat’s Little Theorem) Định lý được phát biểu như sau:

Định lý (Định lý Fermat): Nếu p là số nguyên tố và a là số không chia hết cho p thì:

Kết quả trên xác nhận khi p là số nguyên tố, thì 2 p-1 = 1 mod p, và cũng cho

một phỏng đoán rằng p không phải là số nguyên tố, thì 2 p-1 1 mod p Tuy nhiên

phỏng đoán này lại không đúng, chẳng hạn như: n = 341 = 11 x 31 không phải là số nguyên tố, nhưng nó vẫn thoả mãn 2 341-1 = 1 mod 341 Do vậy định lý Fermat với a

= 2 có thể được sử dụng kiểm tra một số là hợp số nhưng không thể dùng để kiểm

tra một số chắc chắn là số nguyên tố Các số mà thoả mãn định lý Fermat mà không

phải là số nguyên tố gọi là số giả nguyên tố và được định nghĩa một cách như sau:

Định nghĩa: Một số giả nguyên tố cơ sở a là một hợp số nguyên n thoả mãn công thức a n-1 = 1 mod n

Nếu số giả nguyên tố cơ sở a không tồn tại, thì định lý Fermat cho một cách rất đơn giản để kiểm tra số nguyên tố: một số n là số nguyên tố nếu và chỉ nếu a n-1

=1 mod n Đáng tiếc số giả nguyên tố cơ sở a lại tồn tại với mọi cơ sở, vì vậy định

Trang 33

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

lý Fermat chỉ cho một cách kiểm tra thiên về hợp số Thuật toán như sau:

Nếu một số vượt qua kiểm tra số giả nguyên tố với vài cơ sở thì khả năng nó

là số nguyên tố khá chắc chắn (vẫn có một xác suất nào đó)

Thuật toán Fermat được xây dựng trên cơ sở thuật toán kiểm tra thiên về hợp

số ở trên Nó sẽ kiểm tra một số n là giả nguyên tố với k cơ sở được chọn một cách

ngẫu nhiên và kết luận là một số nguyên tố với xác suất nào đó nếu và chỉ nếu nó vượt qua k kiểm tra Thuật toán như sau:

Thuật toán pseudoprime có độ phức tạp thời gian là O(logn) Thuật toán kiểm tra Fermat thực hiện thuật toán pseudoprime k lần vì vậy độ phức tạp thời gian

O(k logn) hay O(k s) Do vậy nó là thuật toán xác suất kiểm tra số nguyên tố rất

hiệu quả

* Thuật toán Solovay – Strassen

Định nghĩa 1: Thặng dư bậc hai (quadratic residue) mod n là một số nguyên

a thoả mãn phương trình x 2 = a mod n có nghiệm x Ngược lại a là bất thăng dư bậc hai mod n

Ví dụ: Số 4 là thặng dư mod 5 vì 3 2 = 9 = 4 mod 5 Trong trường hợp khác,

Số 3 là bất thặng dự bởi vì không có số nguyên nào trong tập hợp {0, 1, 2, 3, 4} bình phương bằng 3 mod 5 Ở đây xin nhắc lại khái niệm vẻ ký hiệu Legendre và Jacobi:

Định nghĩa 2: Nếu p là một số nguyên tố lẻ Với mọi a 0 ta định nghĩa ký

Trang 34

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

hiệu Legendre

p

a như sau:

0 if

1

p a a

a a quadractic residue p p

otherwise Định nghĩa 3: với n 1 lẻ và mọi số nguyên a 0 Giả sử n có triển khai chính tắc thành thừa số nguyên tố là n = p 1 x1 p 2 x2 p k xk , thì ký hiệu Jacobi được định nghĩa như sau:

2

x p

a

xk

k p a

Khi n = p là số nguyên tố thì giá trị của ký hiệu Legendre và Jacobi là

như nhau

Định lý: (tiêu chuẩn Euler) nếu n là số nguyên tố lẻ, thì:

n

a

Định nghĩa 4: với n là một hợp số nguyên lẻ Nếu gcd(a,n)>1hoặc a (n-1)/2

mod n, thì a là giả mạo Euler (Euler liar) của n

Sau đây là thuật toán xác định a là bằng chứng Euler(Euler witness) của n là

hợp số:

Bước đầu tiên của thuật toán là tính r = a (n-1)/2 mod n, giống như với thuật

toán Fermat Nếu r = 1 mod n, thì r2 = a n-1 =1mod n, nên n là hợp số bằng thuật

Trang 35

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

toán Fermat Bước tiếp theo là tính Jacobi

Giống như thuật toán Fermat, thuật toán Solovay-Strassen một số nguyên n

là hợp số bằng cách thực hiện thuật toán euler-witness với vài giá trị ngẫu nhiên của

a Nếu có k giá trị a cho trả lời đúng thì n là hợp số Ngược lại thì k là số nguyên tố

với xác suất nào đó, thuật toán được trình bày như sau:

Nó không hiệu quả để kiểm tra tất cả các giá trị có thể của a, nên chúng ta muốn biết sự giống nhau giữa cách chọn lựa của a như thế nào, nếu n là hợp số, một giá trị a ngẫu nhiên là bằng chứng Euler (Euler witness) cho n là hợp số Trong

kiểm tra Fermat, chúng ta tìm thấy một tập chắc chắn các số là số Carmichael, có rất

ít bằng chứng Định lý dưới đây sẽ đảm bảo rằng tiêu chuẩn Euler không giống số Carmichael Định lý sử dụng phi hàm Euler:

Định lý: Nếu n là hợp số nguyên lẻ, thì có nhiều nhất (n)/2 giả mạo Euler (Euler liar) cho n trong đoạn [2, n-1]

Chúng ta biết rằng (n)<n, nên với mỗi hợp số n lẻ, ít hơn n/2 sự chọn lựa là giả mạo Euler (Euler liars), và do đó có ít nhất n/2 chọn lựa là bằng chứng (Euler

witness) Điều này ngụ ý rằng nếu n là hợp số, thì có ít nhật 50% cơ hội cho mỗi giá

trị ngẫu nhiên của a trong thuật toán Solovay-Strassen sẽ là bằng chứng (witness)

Nếu kiểm tra phân loại một số là hợp số thì không có một sai sót nào Nếu kiểm tra phân loại một số là số nguyên tố thì có thể là không chính xác Xác suất sai được

Trang 36

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

cho bởi một hệ quả sau đây:

Hệ quả: Nếu thuật toán Solovay-Strassen với tham số n và k phân loại n là

số nguyên tố, thì xác suất sai nhiều nhất là (1/2) k

Vì vậy, chúng ta có thể đạt được xác suất n là số nguyên tố cao hơn đơn giản bằng cách tăng k lên một giá trị cần thiết Hơn nữa, thuật toán Solovay-Strassen bảo đảo xác suất giống nhau của phân loại đúng bất chấp độ lớn của n Điều này rất hữu

ích vì chúng ta muốn tìm kiếm số nguyên tố lớn

Để tiện theo dõi ở đây nhắc lại cách tính Jacobi:

Định lý: Với m, n >1 là số nguyên lẻ và với a, b là số nguyên bất kỳ Thì ký hiệu Jacobi có các tính chất sau:

(iv) Nếu a=b mod n thì

n

a

=

n b

(vii) 2 1 2 1 /8 1 1 mod 8

1 3 mod 8

if n n

3 mod 41

1 mod 4 1mod 4

m n

n

if m n m

Trang 37

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

mà không cần phải phân tích n thành thừa số nguyên tố:

Thời gian chạy của thuật toán tính Jacobi là O(log 2 n) Thuật toán Euler-witness

thực hiện với hai phép tính chính: a (n-1)/2 mod n và

thời gian chạy coi như không đáng kể, vì vậy độ phức tạp thời gian của thuật toán

euler-witness là O(log 2 n) Kiểm tra Solovay-Strassen thực hiện thuật toán k lần nên

có thời gian thực hiện là O(k log 2 n)

Với thuật toán Solovay-Strassen, chúng ta có (1/2)k khả năng phân loại sai cho

thời gian thực hiện O(k log 2 n) Như vậy là chậm hơn thuật toán Fermat O(k.log n),

nhưng thuật toán Fermat không đưa ra một giá trị cụ thể nào đảm bảo sự chặc chắn của mình kể cả sự tồn tại của số Carmichael

* Thuật toán Miller-Rabin

Thuật toán Miller Rabin là phiên bản sửa đổi của thuật toán Fermat sử dụng ý tưởng đơn giản trình bày dưới đây để tạo ra kiểm tra thiên về hợp số rất mạnh Nó thay thế thuật toán Solovay-Strassen như là một chọn lựa đầu tiên để kiểm tra xác

Trang 38

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

suất vì hiệu quả cao hơn và xác suất chính xác cũng cao hơn

Định lý: Nếu x 2

= 1 mod n có nghiệm không tầm thường, thì n là hợp số

Giống như giả nguyên tố, thuật toán kiểm tra a n-1 = 1 mod n và phân loại là số

giả nguyên tố nếu được Cũng như vậy, tuy nhiên, nó cũng kiểm tra căn bậc hai

không tầm thường (nontrivial square root) của 1 mod n bằng cách tính a n-1 theo

một cách riêng Đầu tiên, nó biểu diễn n-1 = u.2 t , u là số lẻ Sau đó viết a n-1 = a u.2t = (a u ) 2t được tính bằng cách bình phương liên tiến a u tổng cộng t lần Thuật toán đầu

tiên tính au sử dụng bình phương liên tiếp (ordinary binary exponentiation), sau đó bình phương nó t lần, giữ lại giá trị hiện tại(cur) và giá trị cuối cùng (last) ở mỗi bước Nếu cur = 1, thì last là thặng dư bậc hai (square root) của 1 mod n Nếu last khác 1, hoặc -1, thì nó là bất thặng dư bậc hai (nontrivial square root) của 1 mod n,

và do đó n là hợp số Nếu mr-witness(a, n) trả về đúng (true), thì a là cơ sở cho n là hợp số

Kiểm tra Miller-Rabin chỉ đơn giản chạy thuật toán mr-witness với k lần ngẫu nhiên chọn gia trị a Nếu bất kỳ giá trị nào chứng tỏ n là hợp số thì n là hợp số, ngược lại n là số nguyên tố với xác suất nào đó:

Thuật toán thể hiện mạnh hơn kiểm tra Fermat, bởi vì nó sử dụng định lý ở trên

để tăng cường kiểm tra hợp số Định lý tiếp theo trình bày bằng chứng là những

Trang 39

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

thay đổi tạo ra dấu hiệu cho thấy kiểm tra xác suất số nguyên tố tốt hơn

Định lý: nếu n là hợp số lẻ, thì số bằng chứng chứng tỏ n là hợp số ít nhất bằng 3/4 (n-1)

Theo định lý này nếu n là hợp số thì ít nhất 75% khả năng chứng tỏ là hợp số với bất kỳ giá trị ngẫu nhiên của cơ sở Kiểm tra Miller – Rabin sẽ chỉ có lỗi nếu nó chọn k cở sở kiểm tra từ tập hợp bằng chứng sai Xác suất sai được phát biểu bởi hệ quả của định lý dưới đây:

Hệ quả: Nếu thuật toán Miller – Rabin với tham số n và k phân loại n là nguyên tố, thì xác suất sai nhiều nhất là (1/4) k

Cũng như thuật toán Solovay–Strassen, xác suất sai độc lập với n Ví dụ, nếu

chọn k = 25, thì Miller – Rabin rất có khả nẳng tìm ra một bằng chứng cho n là hợp

số, dù chỉ là một Nếu nó không tìm được bằng chứng, thì xác suất n là nguyên tố với xác suất sai là (1/4) 25 = 10 -15

Thuật toán mr-witness thực hiện với độ phức tạp thời gian O(log n), về bản chất nó tính an-1 mod n bằng phương pháp bình phương liên tiếp Nghĩa là độ phức tạp của nó tương đương với thuật toán giả nguyên tố của kiểm tra Fermat, nhưng

kiểm tra thiên về hợp số mạnh hơn Thuật toán Miller–Rabin thực hiện mr-witness k lần, nên độ phưc tạp thời gian là O(k logn) Kiểm tra Miller–Rabin cho khả năng phân loại sai là (1/4) k với độ phức tạp O(k log n)

Vì đây là thuật toán xác suất tìm số nguyên tố tốt nhất hiện nay, nên trong luận văn này xin trình bày một số ví dụ minh hoạ

Ví dụ 1: Lấy n = 91 = 7.13, n-1=90=21.45, nên s=1 Chú ý 91 là hợp số

(a) Chọn ngẫu nhiên cơ sở a=10 Bắt đầu với b=1045 mod 91 = 90 Do đó thuật toán kết luận là số nguyên tố Tuy nhiên, chúng ta biết rằng 91 không phải là

số nguyên tố, vậy 10 là một cơ sở cho kết luận sai

(b) Chọn ngẫu nhiên cơ sở a=29 Bắt đầu với b=2945 mod 91 = 1 Do đó thuật toán lại trả về kết quả đúng (true), và 29 cũng là một cơ sở cho kết luận sai (c) Cuối cùng, chọn a=2 bắt đầu với b=245 mod 91 = 57 Ở đây thuật toán không thể vào vòng lặp ( bởi vì s-1=0), thuật toán đến dòng 14, và từ đây cho kết

Ngày đăng: 18/12/2014, 00:21

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] Phan Đình Diệu (2006), Lý thuyết mật mã và An toàn thông tin, NXB ĐHQG HN Sách, tạp chí
Tiêu đề: Lý thuyết mật mã và An toàn thông tin
Tác giả: Phan Đình Diệu
Nhà XB: NXB ĐHQG HN
Năm: 2006
[3] Hà Huy Khoái, Phạm Huy Điển (2003), Số học thuật toán: Cơ sở lý thuyết và tính toán thực hành, NXB ĐHQG HN Sách, tạp chí
Tiêu đề: Số học thuật toán: Cơ sở lý thuyết và tính toán thực hành
Tác giả: Hà Huy Khoái, Phạm Huy Điển
Nhà XB: NXB ĐHQG HN
Năm: 2003
[4] Hà Huy Khoái, Phạm Huy Điển (2004), Mã hoã thông tin: Cơ sở toán học và ứng dụng, NXB ĐHQG HN Sách, tạp chí
Tiêu đề: Mã hoã thông tin: Cơ sở toán học và ứng dụng
Tác giả: Hà Huy Khoái, Phạm Huy Điển
Nhà XB: NXB ĐHQG HN
Năm: 2004
[5] Đỗ Văn Tuấn, Trần Đăng Hiên, Phạm Văn Ất, Một sơ đồ cải tiến hệ mật mã khóa công khai Rabin, Kỷ yếu hội thảo quốc gia lần thứ XIV, Một số vấn đề chọn lọc Công nghệ thông tin và Truyền thông, Cần Thơ - 2011, tr 280-289.Tiếng Anh Sách, tạp chí
Tiêu đề: Một sơ đồ cải tiến hệ mật mã khóa công khai Rabin
[6] Chin-Chen Chang and Sun-Min Tsu (2000), “An improvement on Shimada’s public-key cryptosystem”, Journal of Science and Engineering, vol. 3, no. 2, pp. 75-79 Sách, tạp chí
Tiêu đề: “An improvement on Shimada’s public-key cryptosystem”
Tác giả: Chin-Chen Chang and Sun-Min Tsu
Năm: 2000
[7] Harn, and Kiesler (1989), “Improved Rabin’s scheme with high efficiency”, Electron. Lett., 25, (1 l), pp. 726-728 Sách, tạp chí
Tiêu đề: “Improved Rabin’s scheme with high efficiency
Tác giả: Harn, and Kiesler
Năm: 1989
[8] Rabin, M. O (1980), “Probabilistic algorithm for testing primality”, J. Number theory, 12(1): 128 – 183 Sách, tạp chí
Tiêu đề: ), “Probabilistic algorithm for testing primality”
Tác giả: Rabin, M. O
Năm: 1980
[9] Safuat Hamdy (2005), “The Miller – Rabin Primality Test”, United Arab Emirates University College of IT Sách, tạp chí
Tiêu đề: “The Miller – Rabin Primality Test”
Tác giả: Safuat Hamdy
Năm: 2005
[10] Shimada, M (1992), "Another Practical Public-Key Cryptosystem", {\em Electronics Letters}, Vol.28, No.23, pp.2146-2147 Sách, tạp chí
Tiêu đề: Another Practical Public-Key Cryptosystem
Tác giả: Shimada, M
Năm: 1992

HÌNH ẢNH LIÊN QUAN

Bảng 1.1. Bảng chữ cái và chỉ số tương ứng - nâng cao tốc độ tính toán của phương pháp mã hóa khóa công khai rabin
Bảng 1.1. Bảng chữ cái và chỉ số tương ứng (Trang 15)
2.3. Sơ đồ cải tiến của Chen-Tsu - nâng cao tốc độ tính toán của phương pháp mã hóa khóa công khai rabin
2.3. Sơ đồ cải tiến của Chen-Tsu (Trang 62)
Sơ đồ  Số phép toán cơ bản - nâng cao tốc độ tính toán của phương pháp mã hóa khóa công khai rabin
ph ép toán cơ bản (Trang 72)
Hình 3.1: Sinh số nguyên tố và tạo khóa - nâng cao tốc độ tính toán của phương pháp mã hóa khóa công khai rabin
Hình 3.1 Sinh số nguyên tố và tạo khóa (Trang 73)
Hình 3.3: Mã hóa theo sơ đồ cải tiến của Shimada - nâng cao tốc độ tính toán của phương pháp mã hóa khóa công khai rabin
Hình 3.3 Mã hóa theo sơ đồ cải tiến của Shimada (Trang 74)
Hình 3.4: Giải mã theo sơ đồ cải tiến của Shimada - nâng cao tốc độ tính toán của phương pháp mã hóa khóa công khai rabin
Hình 3.4 Giải mã theo sơ đồ cải tiến của Shimada (Trang 75)
Bảng 3.1: Thời gian thực hiện các thuật toán giải mã - nâng cao tốc độ tính toán của phương pháp mã hóa khóa công khai rabin
Bảng 3.1 Thời gian thực hiện các thuật toán giải mã (Trang 76)

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