Phạm Văn Ất Năm bảo vệ: 2010 Abstract: Giới thiệu chung và cơ sở toán học của lý thuyết mật mã: trình bày các vấn đề chung nhất của mật mã, đưa ra các khái niệm cơ bản; trình bày các
Trang 1Nghiên cứu và phát triển hệ mật mã khóa công khai ứng dụng trong bảo mật dữ liệu và xác thực
các giao dịch điện tử
Trần Đăng Hiên
Trường Đại học Công nghệ Luận văn ThS Chuyên ngành: Công nghệ thông tin; Mã số: 60 48 05
Người hướng dẫn: PGS.TS Phạm Văn Ất
Năm bảo vệ: 2010
Abstract: Giới thiệu chung và cơ sở toán học của lý thuyết mật mã: trình bày các vấn đề chung
nhất của mật mã, đưa ra các khái niệm cơ bản; trình bày các kiến thức toán học làm nền cho các nội dung chính trong luận văn như số học các số nguyên, thuật toán Euclid, thuật toán Euclid mở rộng, lý thuyết đồng dư, thặng dư thu gọn, phần tử nguyên thủy, phương trình đồng dư tuyến tình
và đồng dư bậc hai; trình bày về độ phức tạp thuật toán, hàm một phía và cửa sập một phía Phương pháp kiểm tra và sinh số nguyên tố: trình bày các định nghĩa, định lý về số nguyên tố; giới thiệu một số phương pháp với các thuật toán kiểm tra và sinh số nguyên tố nói chung và số nguyên tố lớn nói riêng, đóng vai trò rất quan trọng trong việc cung cấp số nguyên tố lớn giúp thực thi, ứng dụng các hệ mã hóa khóa công khai; các phương pháp được trình bày trong luận văn là phương pháp cổ điển, phương pháp xác suất và phương pháp xác định; trình bày một phương pháp phân tích một số ra thừa số nguyên tố Đề xuất cấu trúc dữ liệu và thuật toán xử lý
số nguyên lớn: trình bày cụ thể cấu trúc dữ liệu và đề xuất các thuật toán để có thể xây dựng hoàn chỉnh thư viện xử lý số nguyên lớn Một số hệ mã hóa khóa công khai và cải tiến hệ mã hóa Rabin: trình bày lịch sử ra đời, một số bài toán nền tảng xây dựng hệ mã hóa khóa công khai Trong chương này cũng trình bày một số hệ mã hóa khóa công khai RSA, ElGamal, Rabin Hơn nữa chương này đưa ra hướng cải tiến nhằm nâng cao độ an toàn của hệ mã hóa khóa công khai Rabin và hướng khắc phục một số nhược điểm trong quá trình giải mã Đưa ra một số công thức tính nghịch đảo để quy trình giải mã của hệ mã hóa Rabin và Rabin cải tiến được dễ dàng
Keywords: Mật mã; An toàn dữ liệu; Giao dịch điện tử; Công nghệ thông tin
Content:
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ở
Trang 2thà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, )
Do ý nghĩa quan trọng mang tính sống còn mà lĩnh vực bảo mật an toàn thông tin thu hút được sự quan tâm của đông đảo các chuyên gia trên khắp thế giới Các hội nghị khoa học thường niên của Hiệp hội Quốc tế về Nghiên cứu Công nghệ Mã (IACR) được tổ chức liên tục từ những năm 80 đến nay tại Châu Âu (EUROCRYPT), Hoa Kỳ (CRYPTO) và mới đây là Châu Á (ASIACRYPT) ngày càng thu hút được sự quan tâm của các chuyên gia trong nhiều lĩnh vực
khoa học, công nghệ Trong đó nổi bật là các công trình về xây dựng các hệ mã hóa khóa công
khai gắn liền là các công trình về xử lý số nguyên lớn, số nguyên tố của các tác giả: Diffie và
Hellman, Rivest, Sharmir và Adleman, Rabin, Elgamal, Pollard, Lenstra và cho đến nay các
nghiên cứu mới về tính an toàn của các hệ mã hóa khóa công khai cũng như cách thức xử lý số
nguyên lớn, phương pháp tìm số nguyên tố lớn hiệu quả, chính xác liên tục được công bố trên
các tạp chí chuyên ngành về mật mã nói riêng, toán học và tin học nói chung
Ở Việt Nam, gần đây cũng đã xuất hiện một số nghiên cứu về bảo mật an toàn thông tin như: đề tài “Mã hoá và bảo mật thông tin điện tử” - Viện Toán học thực hiện trong năm 2002,
2003, nhóm nghiên cứu ở Đại học Công nghệ - ĐHQG Hà Nội, nhóm nghiên cứu ở Đại học Khoa học Tự nhiên - ĐHQG Hồ Chí Minh, từ đó xuất bản được nhiều ấn bản chuyên ngành, giáo trình và các bài báo công bố ở các hội nghị khoa học trong và ngoài nước
Luận văn này được thực hiện nhằm mục đích nghiên cứu bảo mật an toàn thông tin Luận văn tập trung đi sâu vào nghiên cứu và phát triển hệ mã hóa khóa công khai và các vấn đề liên quan nhằm mục đích ứng dụng vào trong bảo mật và xác thực
Nội dung chính của Luận văn:
(i) Trình bày thuật toán kiểm tra và sinh số nguyên tố lớn Nhằm tìm ra các số nguyên tố
lớn làm khóa cho các hệ mã hóa khóa công khai
(ii) Đề xuất cấu trúc dữ liệu và thuật toán xử lý số nguyên lớn từ đó có thể xây dựng thư
viện lập trình giúp ứng dụng các hệ mã hóa khóa công khai Thực tế xây dựng cho thấy khả năng
xử lý của thư viện lên tới hàng nghìn chữ số và tốc độ thực hiện các phép toán nhanh như trong ngôn ngữ lập trình, thư viện đã có (nội dung này học viên đã báo cáo, được phản biện và đăng
Trang 3trong Kỷ yếu hội thảo quốc gia lần thứ XII “Một số vấn đề chọn lọc của công nghệ thông tin và
truyền thông”, Đồng Nai, 8/2009, NXB KHKT 2010)
(iii) Đặc biệt luận văn đưa ra hướng cải tiến hệ mã hóa khóa công khai Rabin nhằm nâng
cao độ an toàn và đưa ra hướng khắc phục một số nhược điểm trong quá trình giải mã của hệ mã hóa này Ngoài ra đưa ra một số công thức tính nghịch đảo để quy trình giải mã của hệ mã hóa Rabin và Rabin cải tiến được dễ dàng
Ngoài phần mở đầu và kết luận, kết cấu của luận văn gồm 4 chương:
- Chương 1 “Giới thiệu chung và cơ sở toán học của lý thuyết mật mã” nhằm trình bày
các vấn đề chung nhất của mật mã, đưa ra các khái niệm cơ bản Phần cơ sở toán học trình bày các kiến thức toán học làm nền cho các nội dung chính trong luận văn như: số học các số nguyên, thuật toán Euclid, thuật toán Euclid mở rộng, lý thuyết đồng dư, thặng
dư thu gọn, phần tử nguyên thủy, phương trình đồng dư tuyến tình và đồng dư bậc hai
Ngoài ra trình bày về độ phức tạp thuật toán, hàm một phía và cửa sập một phía
- Chương 2 “Phương pháp kiểm tra và sinh số nguyên tố” trình bày các định nghĩa,
định lý về số nguyên tố Giới thiệu một số phương pháp với các thuật toán kiểm tra và sinh số nguyên tố nói chung và số nguyên tố lớn nói riêng, đóng vai trò rất quan trọng trong việc cung cấp số nguyên tố lớn giúp thực thi, ứng dụng các hệ mã hóa khóa công khai Các phương pháp được trình bày trong luận văn là: phương pháp cổ điển, phương pháp xác suất và phương pháp xác định Trong chương này cũng trình bày một phương pháp phân tích một số ra thừa số nguyên tố
- Chương 3 “Đề xuất cấu trúc dữ liệu và thuật toán xử lý số nguyên lớn” trình bày cụ
thể cấu trúc dữ liệu và đề xuất các thuật toán để có thể xây dựng hoàn chỉnh thư viện xử
lý số nguyên lớn Thực tế xây dựng thì khả năng xử lý của thư viện này lên tới hàng nghìn chữ số và tốc độ thực hiện các phép toán như trong các ngôn lập trình, tương
đương với thư viện đã có (có bổ sung so với nội dung đăng trong Kỷ yếu hội thảo quốc
gia lần thứ XII “Một số vấn đề chọn lọc của công nghệ thông tin và truyền thông”, Đồng Nai, 8/2009, NXB KHKT 2010)
- Chương 4 “Một số hệ mã hóa khóa công khai và cải tiến hệ mã hóa Rabin” trình bày
lịch sử ra đời, một số bài toán nền tảng xây dựng hệ mã hóa khóa công khai Trong chương này cũng trình bày một số hệ mã hóa khóa công khai RSA, ElGamal, Rabin Hơn nữa chương này đưa ra hướng cải tiến nhằm nâng cao độ an toàn của hệ mã hóa khóa
Trang 4công khai Rabin và hướng khắc phục một số nhược điểm trong quá trình giải mã Đưa ra một số công thức tính nghịch đảo để quy trình giải mã của hệ mã hóa Rabin và Rabin cải tiến được dễ dàng
TÀI LIỆU THAM KHẢO Tiếng Việt
1 Phạm Văn Ất, Nguyễn Văn Long, Nguyễn Hiếu Cường, Đỗ Văn Tuấn, Cao Thị Luyên, Trần Đăng Hiên (2010), “Đề xuất thuật toán xử lý số nguyên lớn và ứng dụng trong các hệ mật mã
khóa công khai”, Kỷ yếu hội thảo quốc gia lần thứ XII Một số vấn đề chọn lọc của Công nghệ
thông tin và Truyền thông, Đồng Nai - 8/2009, tr 107-118
2 Phạm Văn Ất, Nguyễn Hiếu Cường, Đỗ Văn Tuấn, Bùi Hồng Huế, Trần Đăng Hiên (2008),
“Một số nhận xét về phương pháp giấu tin của Chen - Pan - Tseng”, Ký yếu hội thảo quốc gia
lần thứ X Một số vấn đề chọn lọc của Công nghệ thông tin và Truyền thông, Vĩnh Phúc -
9/2007, tr 306 - 311
3 Phạm Văn Ất (1999), Kỹ thuật lập trình C, NXB Khoa học và Kỹ thuật
4 Phạm Văn Ất (2000), C++ & lập trình hướng đối tượng, NXB Khoa học và Kỹ thuật
5 Phạm Văn Ất (2005), Lập trình Windows dùng ngôn ngữ C và các hàm API của Windows,
NXB GTVT
6 Nguyễn Văn Ba (2006), Lý thuyết ngôn ngữ và tính toán, NXB ĐHQG HN
7 Phan Đình Diệu (2006), Lý thuyết mật mã và An toàn thông tin, NXB ĐHQG HN
8 Nguyễn Xuân Dũng (2007), Bảo mật thông tin mô hình & ứng dụng, NXB Thống kê
9 Đặng Văn Đức, Lê Quốc Hưng (2003), Lập trình Windows bằng Visual C++, NXB Giáo dục
10 Nguyễn Xuân Huy (2007), Sáng tạo trong thuật toán và lập trình, tập 1, NXB Giáo dục
11 Bùi Doãn Khanh, Nguyễn Đình Thúc (2004), Giáo trình Mã hóa Thông tin, NXB Lao động
Xã hội
12 Bùi Doãn Khanh, Nguyễn Đình Thúc, Trần Đan Thư (2007), Cơ sở lí thuyết số trong an toàn
- bảo mật thông tin, NXB Giáo dục
13 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
14 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
15 PGS TS Trịnh Nhật Tiến (2009), Bài giảng cao học: An ninh Cơ sở dữ liệu, ĐH Công nghệ,
ĐHQG HN
16 PGS TS Trịnh Nhật Tiến (2008), Giáo trình: An toàn dữ liệu, ĐH Công nghê, ĐHQG HN
Trang 517 Nguyễn Ngọc Trung (2008), Các thuật toán tối ưu trong bảo mật thông tin, Luận văn thạc
sĩ, Khoa Công nghệ thông tin, Trường Đại học Thái Nguyên
18 Vũ Thanh Vân (2005), Một số vấn đề xác thực và ứng dụng, Luận văn thạc sĩ, Trường Đại
học Bách khoa Hà Nội
Tiếng Anh
19 Manindra Agrawal (2005), “Primality tests based on Fermat’s little theorem”, Department of
CS, Indian Institute of Technology, Kanpur
20 Manindra Agrawal, Neeraj Kayal, Nitin Saxena (2004), “PRIMES is in P”, Ann of Math, (2),
160(2): 781-793
21 A.O.L Atkin, F Morain (1993), “Elliptic curves and primality proving”, Math Comp.,
61(203): 29-68
22 Dan Boneh (1999), “Twenty years of attacks on RSA cryptosystem”, Notices of the AMS,
vol 2, n 6, pp 203-213
23 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
24 R Crandall, Carl Pomerance (2001), “Prime Numbers: A Computational Perspective”,
Springer-Verlag, NewYork, 2001
25 R Crandall and J Papadopoulos (2003), “On the implementation of AKS-class primality
tests”, Technical paper, Apple Advanced Computation Group
26 W Diffie, M.E Hellman (1976), “New Directions in Cryptography”, IEEE Transaction on
Information Theory, V.IT-22, n.6, pp 664-654
27 The GMP developers (2010), The GNU Multiple Precision Arithmetic Library, Edition
4.3.2.( http://gmplib.org/)
28 The GMP developers (2010), The GNU Multiple Precision Arithmetic Library, Edition
5.0.1.( http://gmplib.org/)
29 Harn,L., and Kiesler (1989), “Improved Rabin’s scheme with high efficiency”, Electron
Lett., 25, (1 l), pp 726-728
30 Kaustav Ghoshal (2006), “Primality after AKS”, Dept of Computer Science, Texas A&M
University
31 Safuat Hamdy (2005), “The Miller – Rabin Primality Test”, United Arab Emirates University
College of IT
32 IEEE Std 1363-2000 (2000), Standard Specifications for Public Key Cryptography, IEEE
Press
Trang 633 H W Lenstra Jr (1979), “Miller’s Primality Test”, Information Processing Letters, Vol 8
number 2
34 Chritina Mcintosh (2007), “Finding primes number: Miller Rabin and Beyond”, Electronic
journal of undergraduate mathematics, vol 5, pp 1-4
35 A.J Menezes, P.C Van Oorschot, S.A Vanstone (1997), “Handbook of Applied
Cryptography”, CRC Press
36 R Rivest, A Shamir, L Adleman (1978), “A method for obtaining digital signatures and
public-key cryptosystems”, Communication of the ACM, 21, pp 120-126
37 Rabin, M O (1979), "Digital Signatures and Public Key Functions as Intractable as
Factorization," MIT/LCS/TR-212
38 Rabin, M O (1980), “Probabilistic algorithm for testing primality”, J Number theory, 12(1):
128 – 183
39 Mihnea Rădulescu (2008), Public-key cryptography: the RSA and the Rabin cryptosystems,
Bachelor of science thesis, Faculty of mathematics and computer science, University Cluj-Napoca
40 RSA Laboratory (2002), RSA Cryptography Standard, RSA Security Inc
41 RSA Laboratory (1996), Answers to Frequently Asked Questions About Today’s
Cryptography, Ver 3.0 , RSA Security Inc
42 RSA Laboratory (2000), Answers to Frequently Asked Questions About Today’s
Cryptography, Ver 4.1 , RSA Security Inc
43 RSA Laboratory (2010), Bulletin News and advice from RSA Laboratories, RSA Security
Inc
44 B Schneier (1996), Applied Cryptography, 2nd, John Wiley & Son, Inc
45 Vitor Shoup (2003) A computational Introduction to Number Theory and Algebra, New
York University
46 Douglas R Stinson (1995), Cryptography Theory and Practive, CRC Press
47 René Schoof (2008), “Four primality testing algorithms”, Algorithmic Number Theory,
48 Shimada, M (1992), "Another Practical Public-Key Cryptosystem," {\em Electronics
Letters}, Vol 28, No.23, pp 2146-2147, Nov (1992)
49 Robert Solovay, V Strassen (1977), “A fast Monte – Carlo test primality”, SIAM Journal on
computing, 6(1): 84 – 85
50 Jeff Wehrwein (2008), Primality Testing, Senior thesis in CS, Middlebury College
Trang 751 ZHENG Tian-xiang (2009), “Enhanced Rabin cryptosystem based on cubic congruence equation”, Journal of Computer Applications, vol 29, no.7
52 Hae Yong Kim, Ricardo L de Queiroz (2004), “A public-key authentication watermaking for
binary image”, IEEE press