TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐẠI HỌC QUỐC GIA HÀ NỘI LUẬN VĂN THẠC SỸ NGUYỄN TRỊNH ĐOÀN Người hướng dẫn: PGS TS Trịnh Nhật Tiến Hà Nội ngày 01 tháng 12 năm 2007 DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ Viết tắt Thuật ngữ tiếng Anh Nghĩa tiếng Việt BDS Blind Digital Signature Chữ ký số mù CA Certificate Authority Nhà cung cấp chứng số CTF Central Tabulating Facility Phƣơng tiện lập bảng trung tâm DEA Data Encryption Algorithm Thuật toán mật mã liệu DES Data Encryption Standard Chuẩn mã hóa liệu DSS Digital Signature Standard Chuẩn chữ ký số GDS Group Digital Signature Chữ ký số nhóm GBDS Group Blind Digital Signature Chữ ký số mù nhóm IDEA International Data Encryption Thuật tốn mật mã liệu Algorithm Quốc tế LRF Local Registration Facility Phƣơng tiện đăng ký địa phƣơng MAC Message Authentication Code Mã xác thực thông điệp MD5 Message Digest algorithm Thuật toán hàm băm MD5 PKI Public Key Infrastructure Cơ sở hạ tầng khố cơng khai SHA-1 Secure Hash Algorithm Thuật toán hàm băm SHA-1 SK Signature of Knowledge Chữ ký dựa tri thức VSF Vote Submission Facility Phƣơng tiện đệ trình phiếu DANH MỤC CÁC HÌNH VẼ VÀ KÝ HIỆU CÁC HÌNH VẼ Hình 1: Minh họa mã hóa giải mã 33 Hình 2: Minh họa sinh thẩm tra chữ ký 48 Hình 3: Minh họa hàm băm đại diện thông điệp 57 Hình 4: Minh họa chữ ký số sử dụng hàm băm 59 Hình 5: Mơ hình ngân hàng điện tử phân tán 125 CÁC KÝ HIỆU a R A Phần tử a đƣợc chọn ngẫu nhiên tập A Zn Tập số nguyên {0, 1,…, n-1} Zn* Tập số nguyên Zn mà nguyên tố với n Định nghĩa 3.5.2 Định nghĩa thứ mục 3.5 [2, 3, 5, 7, 33] Tài liệu tham khảo [2], [3], [5], [7], [33] MỞ ĐẦU Lý chọn đề tài Trong sống hoạt động ngƣời, việc trao đổi thông tin nhu cầu thiết yếu, ngƣời trao đổi thông tin để tồn phát triển quy luật vận động tự nhiên xã hội Thông tin đa dạng, phong phú đƣợc thể dƣới nhiều dạng thức khác nhƣ văn bản, hình ảnh, âm thanh, số liệu,…Mặt khác việc trao đổi thông tin diễn dƣới nhiều hình thức phƣơng pháp khác Cùng với phát triển công nghệ thông tin, phƣơng tiện công nghệ truyền thơng tiên tiến đời, mạng máy tính đặc biệt mạng Intenet giúp ngƣời trao đổi thông tin thuận tiện, nhanh chóng Một vấn đề vơ quan trọng đƣợc đặt bảo mật an toàn việc trao đổi thông tin Các thông tin truyền phải đảm bảo tính xác, khơng bị sửa đổi nhiều trƣờng hợp cần đƣợc bảo đảm tính bí mật thơng tin cần xác thực ngƣời gửi ngƣời nhận Xuất phát từ thực tế có nhiều biện pháp an tồn thơng tin đời Một giải pháp hữu hiệu cho cho việc đảm bảo tính bí mật thơng tin mã hóa thơng tin Mã hóa thơng tin biến đổi thơng tin thành dạng khác với mục đích “che giấu” nội dung thơng tin, đối tƣợng có thẩm quyền giải mã thơng tin mã hóa (hủy bỏ “che giấu”) để lấy lại thông tin ban đầu Để xác thực thông tin, gắn trách nhiệm thực thể với thơng tin, nhƣ đảm bảo tính tồn vẹn, thơng tin truyền khơng bị sửa đổi ngồi ý muốn, ngƣời sáng tạo chữ ký số Vấn đề xƣng danh xác nhận danh tính thực thể vấn đề cần thiết giao dịch điện tử Các yêu cầu an tồn bảo mật truyền thơng gồm: 1) Đảm bảo tin cậy: Thơng tin đƣợc bí mật, khơng chép trái phép 2) Tính tồn vẹn: Nội dung thơng tin khơng bị thay đổi 3) Tính xác thực: Thơng tin đƣợc gửi nhận hợp pháp, chủ thể giao dịch, không mạo danh 4) Không thể chối bỏ trách nhiệm: Ngƣời gửi tin chối bỏ trách nhiệm thông tin gửi Bằng cơng nghệ mã hóa chữ ký số thực đƣợc yêu cầu trên, sử dụng chữ ký số đảm bảo tốt ba yêu cầu sau Hiện ngƣời ta sử dụng chữ ký số công việc: giao dịch tài liệu điện tử, trao đổi thƣ tín, tiền điện tử, giao dịch ngân hàng,…, ứng dụng nhiều lĩnh vực khác nhƣ: quản lý hành chính, giáo dục, kinh tế, thƣơng mại điện tử… Ở Việt Nam, luật giao dịch điện tử đƣợc Quốc hội khóa XI thông qua vào tháng 11 năm 2005 kỳ họp thứ có hiệu lực từ 01/03/2006, tạo hành lang pháp lý thuận lợi cho giao dịch điện tử Trong tƣơng lai không xa việc ứng dụng chữ ký điện tử trở thành phổ biến đóng vai trị quan trọng thúc đẩy phát triển kinh tế xã hội đất nƣớc Xuất phát từ thực tế nêu trên, việc nghiên cứu phƣơng pháp an tồn thơng tin nói chung, chữ ký số nói riêng thiết thực có ý nghĩa to lớn Luận văn “MỘT SỐ LOẠI CHỮ KÝ ĐIỆN TỬ VÀ ỨNG DỤNG” đƣợc nghiên cứu dựa vấn đề thực tiễn sống đòi hỏi nhƣ việc trao đổi thông tin hàng ngày tổ chức, cá nhân mà yêu cầu bảo mật an toàn thông tin đƣợc đề Nội dung nghiên cứu luận văn Luận văn tập trung nghiên cứu số vấn đề sau đây: 1) Một số kiến thức toán học sử dụng khoa học mật mã 2) Tổng quan mã hóa chữ ký số (chữ ký điện tử) 3) Sơ đồ chữ ký RSA 4) Các sơ đồ chữ ký số mù, chữ ký số nhóm, chữ ký số mù nhóm 5) Ứng dụng sơ đồ chữ ký nói Sơ đồ chữ ký RSA sơ đồ chữ ký thơng dụng cài đặt đơn giản tính an tồn cao, làm sở xây dựng nhiều loại chữ ký khác Các sơ đồ chữ ký số mù, chữ ký số nhóm chữ ký số mù nhóm sơ đồ chữ ký đặc biệt có nhiều ứng dụng lĩnh vực: Tiền điện tử, giao dịch ngân hàng, thƣơng mại điện tử, bỏ phiếu trực tuyến,…Các loại chữ ký đƣợc thiết kế để giải vấn đề: ẩn danh, làm việc theo nhóm ký đại diện cho nhóm giao dịch điện tử Phƣơng pháp nghiên cứu Luận văn đƣợc nghiên cứu dựa trên: 1) Học hỏi, xin ý kiến thầy hướng dẫn đồng nghiệp 2) Nghiên cứu tài liệu chuyên môn liên quan tiếng Việt, tiếng Anh, tìm kiếm thơng tin Internet 3) Tìm hiểu quan sát thực tiễn 4) Thử nghiệm số chương trình đơn giản Tổ chức luận văn Luận văn gồm chƣơng nhƣ sau: Chương 1: Các kiến thức sở Chương 2: Tổng quan mã hóa chữ ký số Chương 3: Chữ ký mù Chương 4: Chữ ký nhóm Chương 5: Chữ ký mù nhóm Chương 6: Thử nghiệm chương trình Vì thời gian có hạn, đề tài lại sâu rộng, mặt khác kiến thức kinh nghiệm thân lĩnh vực hạn chế, luận văn tránh khỏi khiếm khuyết Rất mong nhận đƣợc góp ý bổ xung thầy cô, bạn bè đồng nghiệp Hy vọng đề tài đƣợc tiếp tục nghiên cứu phát triển để hoàn thiện Chương CÁC KIẾN THỨC CƠ SỞ Lý thuyết mật mã ngành khoa học đƣợc xây dựng dựa sở toán học, đặc biệt lý thuyết số học Chƣơng tổng hợp số kiến thức toán học liên quan đƣợc sử dụng lý thuyết mật mã nhƣ lĩnh vực chữ ký số [2, 3, 5, 7, 33] 1.1 LÝ THUYẾT SỐ HỌC 1.1.1 Phép chia hết chia có dƣ 1.1.1.1 Định nghĩa 1.1.1 1) Cho hai số nguyên a b (b ≠ 0) Nếu có số nguyên q cho a = b.q ta nói a chia hết cho b, kí hiệu b\a Khi ta nói b ƣớc a hay a bội b Ví dụ: a = 8, b = 2; ta có = 2.4 ƣớc ký hiệu 2\8 2) Cho số nguyên a, b (b ≠ 0), tồn cặp số nguyên (q, r) cho a = b.q + r, r < b , q gọi thƣơng nguyên, r gọi số dƣ phép chia a cho b Nếu r = ta có phép chia hết Ví dụ: a = 13, b = 5; 13 = 5.2 + → q = 2, r = 1.1.1.2 Một số tính chất Với a, b, c số nguyên ta có: 1) ±1\a, với a; a\0, a\a, với a ≠ 2) Nếu a\b b\c a\c, với a ≠ 0, b ≠ 3) Nếu a\b a\b.c, với a ≠ 4) Nếu a\b a\c a\(b+c) a\(b-c), với a ≠ 5) Nếu a\b c\d a.c\b.d, với a ≠ 0, c ≠ 1.1.2 Ƣớc chung lớn nhất, bội chung nhỏ 1.1.2.1 Định nghĩa 1.1.2 1) Một số nguyên d đƣợc gọi ƣớc chung số nguyên a 1, a2, …, an ƣớc tất số 2) Một số nguyên m đƣợc gọi bội chung số nguyên a1, a2, …, an bội tất số 3) Một ƣớc chung d>0 số nguyên a1, a2, …, an cho ƣớc chung a1, a2, …, an ƣớc d, d đƣợc goi ƣớc chung lớn a1, a2, …, an ký hiệu d = gcd(a1, a2, …, an) Để cho gọn trình bày ta ký hiệu d = (a1, a2, …, an) 4) Nếu gcd(a1, a2, …, an) = số a1, a2, …, an đƣợc gọi nguyên tố 5) Một bội chung m>0 số nguyên a1, a2, …, an cho bội chung a1, a2, …, an bội m, m đƣợc goi bội chung nhỏ a1, a2, …, an ký hiệu m = lcm(a1, a2, …, an) Ví dụ: gcd(12,18) = 6; lcm(12,18) = 36; gcd(8,9) = hai số nguyên tố 1.1.2.2 Tính chất 1) d = gcd(a1, a2, …, an) tồn số x1, x2,…, xn cho: d = a1x1+a2x2+…+an 2) m = lcm(a1, a2, …, an) (m/a1, m/a2,…, m/an) =1 3) Nếu d ƣớc chung a1, a2, …, an thì: d = gcd(a1, a2, …, an) gcd(a1/d, a2/d,…, an/d) =1 4) Nếu gcd(a,b) = b\ac b\c 5) Nếu gcd(a,b) = gcd(ac,b) = gcd(c,b) 6) Nếu gcd(a, b) =1 lcm(a, b) = ab 7) Nếu b > 0, a = bq+r gcd(a,b) = gcd(b,r) 8) gcd(ma1, ma2, …, man) = m.gcd(a1, a2, …, an) (với m≠0) 9) lcm(a, b) = ab/gcd(a, b) 1.1.2.3 Thuật tốn Euclide tìm ước chung lớn 1) Bài toán Dữ liệu vào: Cho hai số nguyên không âm a, b, a ≥ b Kết quả: gcd(a,b) 2) Thuật tốn (mơ ngơn ngữ Pascal) Readln(a, b); While b > Begin r := a mod b; a := b; b := r; End; Writeln(a); 3) Ví dụ Cho: a = 30, b = 18; Ta có: gcd(30,18) = gcd(18,12) = gcd(12,6) = gcd(6,0) = a b r a = b.q + r 30 18 12 30 = 18.1 + 12 18 12 18 = 12.1 + 12 12 = 6.2 + 6.2.2 Sinh khóa RSA Đầu tiên chƣơng trình sinh ngẫu nhiên hai số nguyên tố p, q (hoặc nhập trực tiếp) sau tính n sinh khóa cơng khai e, khóa riêng d theo thuật tốn sinh khóa RSA trình bày Thời gian chạy chƣơng trình sinh khóa RSA: (Đơn vị thời gian: giây) Thành Số bit phần Thời gian Số bit trung bình Thời gian Số bit trung bình Thời gian trung bình p 512 0.1 1024 2048 40 q 512 0.1 1024 2048 40 n 512 0.1 1024 0.1 2048 0.2 e 512 0.2 1024 12 2048 150 d 512 0.1 1024 0.1 2048 0.2 137 6.2.3 Mã hóa, giải mã RSA Chƣơng trình đƣợc thực theo thuật tốn mã hóa RSA trình bày 1) Sinh khóa 2) Mã hố, giải mã 138 6.2.4 Sử dụng hàm băm Dùng hàm băm để tạo đại diện thơng điệp Chƣơng trình cho phép lựa chọn thông điệp đầu vào từ file nhập vào cửa sổ chƣơng trình Kết (mã băm hay đại diện thông điệp) đƣợc hiển thị dịng cuối cửa sổ chƣơng trình Có thể lựa chọn hai thuật toán MD5 SHA-1: - Dùng MD5 : Độ dài đại diện thông điệp 128 bit - Dùng SHA-1: Độ dài đại diện thông điệp 160 bit 139 6.2.5 Sinh thẩm tra chữ ký, chữ ký mù Chƣơng trình gồm chức sau: 1) Ký thơng điệp khóa riêng 2) Thẩm tra chữ ký khóa cơng khai 3) Làm “mù” thơng điệp 4) Xóa “mù” thơng điệp ký “mù” Để ký “mù” thông điệp, ta thực hiện: - Làm “mù” thông điệp ( thực 3) - Ký thông điệp “mù” (thực 1) - Xóa “mù” thơng điệp ký “mù” (thực 4) Sử dụng phối hợp chức chƣơng trình ta tạo đƣợc chữ ký “mù” chữ ký bình thƣờng (khơng “mù”) Ký thông điệp 140 Thẩm tra chữ ký Làm “mù” xóa “mù” 141 KẾT LUẬN Qua việc nghiên cứu tổng quan mã hóa chữ ký số tập trung nghiên số loại chữ ký đặc biệt, luận văn đạt đƣợc mục tiêu đề có ý nghĩa định, nhiên khơng tránh khỏi khiếm khuyết lý khách quan chủ quan Sau tác giả xin đánh giá kết đạt đƣợc nhƣ mặt hạn chế luận văn cuối đề xuất hƣớng phát triển đề tài Kết đạt luận văn là: 1) Nghiên cứu, tìm hiểu qua tài liệu, để hệ thống lại vấn đề sau: - Một số kiến thức toán học sử dụng khoa học mật mã - Tổng quan mã hóa chữ ký số (chữ ký điện tử) - Chữ ký mù - Chữ ký nhóm - Chữ ký mù nhóm 2) Tìm hiểu, nghiên cứu việc ứng dụng loại chữ ký: mù, nhóm, mù nhóm giao dịch tiền điện tử bỏ phiếu điện tử 3) Thử nghiệm số chƣơng trình mã hóa chữ ký số 142 Các hạn chế luận văn: 1) Việc nghiên cứu loại chữ ký đề cập luận văn chƣa thể đầy đủ hết khía cạnh, nhiều vấn đề tìm hiểu chƣa sâu chƣa thật hệ thống, lĩnh vực rộng ln đổi 2) Chƣa có điều kiện tìm hiểu việc cài đặt số hệ thống tiền điện tử hệ thống bỏ phiếu điện tử cụ thể, nhƣ công nghệ đƣợc sử dụng thực tiễn, mà dừng lại mặt nghiên cứu lý thuyết tổng quan 3) Các chƣơng trình thử nghiệm chủ yếu mang tính mơ phỏng, khn khổ thời gian có hạn tập trung vào nghiên cứu lý thuyết nên chƣa chƣa xây dựng đƣợc chƣơng trình ứng dụng thực thực tiễn Hướng phát triển: 1) Tiếp tục cập nhật thông tin mặt lý thuyết nhƣ ứng dụng loại chữ ký trình bày 2) Nghiên cứu số hệ thống công nghệ cụ thể tiền điện tử, bỏ phiếu điện tử mà có ứng dụng loại chữ ký mù, chữ ký nhóm nhóm chữ ký mù nhóm 3) Cài đặt ứng dụng chữ ký điện tử thực tiễn 4) Nghiên cứu, đề xuất giải pháp an toàn cho sơ đồ chữ ký 5) Tìm hiểu việc sử dụng chữ ký điện tử Việt Nam Mặc dù kết nghiên cứu khiêm tốn nhƣng có ý nghĩa lớn lao với thân tác giả, đƣợc tiếp cận, đƣợc học tập để hiểu biết thêm tri thức bổ ích, hy vọng tác giả có điều kiện đƣợc tiếp tục nghiên cứu đề tài 143 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Đoàn Văn Ban, Võ Minh Đức, Chữ ký số RSA ứng dụng xác thực đề thi, cấp chứng số e-learning, Kỷ yếu hội thảo khoa học Quốc gia công nghệ phần mềm phần mềm nhóm, Cơng nghệ tri thức giải pháp mã nguồn mở cho hệ thống e-learning, 2006 [2] Phan Đình Diệu, Giáo trình lý thuyết mật mã an tồn thơng tin, Nhà xuất Đại học Quốc gia Hà Nội, 1999 [3] Phạm Huy Điển, Hà Huy Khối, Mã hố thơng tin sở tốn học & ứng dụng, Viện tốn học, 2004 [4] Ngơ Hồng Huy, Nguyễn Thành Quang, Lập trình Windows với C++, Nhà xuất giao thông vận tải, 2006 [5] Nguyễn Thành Nhân, RSA - cơng phịng chống, Nhà xuất niên, 2007 [6] Trịnh Nhật Tiến, Trƣơng Thị Thu Hiền, Nguyễn Đình Nam, Một số kỹ thuật bỏ phiếu từ xa, Kỷ yếu hội thảo khoa học Quốc gia Công nghệ thông tin, Nhà xuất Khoa học kỹ thuật, 2005 [7] Trịnh Nhật Tiến, Giáo trình an tồn liệu mã hóa, Đại học Công nghệ-Đại học Quốc Gia Hà Nội, 2006 Tiếng Anh [8] G Ateniese and G Tsudik A coalition-resistant group signature scheme Technical Report, In Submission, October 1998 [9] G Ateniese and G Tsudik Some open issues and new directions in group signature Proceedings of the International Conference on Financial Cryptography '99 (To Appear), November 1998 [10] G Ateniese and G Tsudik Group signatures a' la carte In ACM Symposium on Discrete Algorithms, January 1999 144 [11] Mihir Bellare and Phillip Rogaway Random oracles are practical: A paradigmfor designing efficient protocols In First ACM Conference on Computer and Communications Security, pages 62-73, Fairfax, 1993 ACM [12] Jan Camenisch Efficient and generalized group signatures In Proc EUROCRYPT97, pages 465-479 Springer-Verlag, 1997 Lecture Notes in Computer Science No 1233 [13] Jan Camenisch, Ueli Maurer, and Markus Stadler Digital payment systems with passive anonymity-revoking trustees Journal of Computer Security, 5(1), 1997.82 [14] Jan Camenisch and Markus Stadler Efficient group signatures for large groups In Proc CRYPTO 97, pages 410-424 Springer-Verlag, 1997 Lecture Notes in Computer Science No 1294 [15] D Chaum, A Fiat, and M Naor Untraceable electronic cash In S Goldwasser, editor, Proc CRYPTO 88, pages 319-327 SpringerVerlag, 1988 Lecture Notes in Computer Science No 403 [16] David Chaum Blind signatures for untraceable payments In R L Rivest, A Sherman, and D Chaum, editors, Proc CRYPTO 82, pages 199-203, New York, 1983 Plenum Press [17] David Chaum and Eugene van Heyst Group signatures In Proc EUROCRYPT91, pages 257-265 Springer-Verlag, 1991 Lecture Notes in Computer Science No 547 [18] L Chen and T P Pedersen New group signature schemes (extended abstract) In Proc EUROCRYPT 94, pages 171-181 Springer-Verlag, 1994 Lecture Notes in Computer Science No 547 [19] A Juels, M Luby, and R Ostrovsky Security of blind digital signatures In Proc CRYPTO 97, Lecture Notes in Computer Science, pages 150-164 Springer-Verlag, 1997 Lecture Notes in Computer Science No 1294 145 [20] A Lysyanskaya and Z Ramzan Group blind digital signatures: A scalable solution to electronic cash In Proceedings of the International Conference on Financial Cryptography, 1998 [21] A Menezes, P Van Oorschot, and S Vanstone, Handbook of Applied Cryptography, CRC Press, 1996 [22] T Okamoto Provable secure and practical identification schemes and corresponding signature signature schemes In CRYPTO92, pages 3153 SPVER, 1992 Lecture Notes in Computer Science No 740 [23] PKCS #1 v2.1: RSA Cryptography Standard (RSA LaboratoriesJune 14,2002) Copyright © 2002 RSA Security Inc [24] David Pointcheval and Jacques Stern Provably secure blind signature schemes In M.Y Rhee and K Kim, editors, Advances in CryptologyASIACRYPT '96, pages 252-265 Springer-Verlag, 1996 Lecture Notes in Computer Science No.1163 [25] O’Reilly & Associates, Inc, Java Security 2nd, 1995 See http://www.oreilly.com/catalog/javasec2/ [26] R Rivest, A Shamir, L Adleman A Method for Obtaining Digital Signatures and Public-Key Cryptosystems Communications of the ACM, Vol 21 (2), pp.120–126 1978 Previously released as an MIT "Technical Memo" in April 1977 Initial publication of the RSA scheme [27] B Schneier Applied Cryptography: Protocols, Algorithms, and Source Code in C John Wiley & Sons, New York, 1993 [28] Douglas R Stinson, Cryptography theory and practice- Second Edition, It was published in March, 1995, by CRC Press, Inc [29] C P Schnorr Efficient identification and signatures for smart cards In G Brassard, editor, Proc CRYPTO 89, pages 239-252 SpringerVerlag, 1990 Lecture Notes in Computer Science No 435 [30] Jacque Traore Weaknesses of the "coalition resistant" group signature scheme Unpublished Manuscript, November 1998 146 Địa mạng INTERNET [31] http://codeproject.com [32] http://www.cryptography.com [33] http://www.math.niu.edu/~beachy/abstract_algebra [34] http:/www.plannetsourcecode.com [35] http://www.ssh.com/support/cryptography/algorithms/asymmetric.html 147 MỤC LỤC DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ DANH MỤC CÁC HÌNH VẼ VÀ KÝ HIỆU MỞ ĐẦU Chương CÁC KIẾN THỨC CƠ SỞ 1.1 LÝ THUYẾT SỐ HỌC 1.1.1 Phép chia hết chia có dƣ 1.1.1.1 Định nghĩa 1.1.1.2 Một số tính chất 1.1.2 Ƣớc chung lớn nhất, bội chung nhỏ 1.1.2.1 Định nghĩa 1.1.2.2 Tính chất 1.1.2.3 Thuật tốn Euclide tìm ƣớc chung lớn 1.1.2.4 Thuật toán Euclide mở rộng 10 1.1.3 Số nguyên tố 11 1.1.3.1 Định nghĩa 11 1.1.3.2 Một số định lý 12 1.1.4 Đồng dƣ thức 13 1.1.4.1 Định nghĩa 13 1.1.4.2 Các tính chất 13 1.1.4.3 Các lớp thặng dƣ 15 1.1.4.4 Các định lý 15 1.1.4.5 Tính tốn đồng dƣ lũy thừa bậc lớn 16 1.1.5 Cấu trúc nhóm 18 1.1.5.1 Phép toán hai 18 1.1.5.2 Nhóm 18 1.1.5.3 Nhóm 19 1.1.5.4 Nhóm Cyclic 20 1.1.5.5 Nhóm cộng Zn nhóm nhân Zn* 21 1.2 LÝ THUYẾT ĐỘ PHỨC TẠP TÍNH TỐN 24 1.2.1 Thuật toán toán 24 1.2.1.1 Bài toán 24 1.2.1.2 Định nghĩa thuật toán 24 1.2.1.3 Hai mơ hình tính tốn 24 1.2.2 Độ phức tạp thuật toán 25 1.2.3 Phân lớp toán theo độ phức tạp 25 1.2.3.1 Lớp toán P, NP 25 1.2.3.2 Lớp toán NP-Hard, NP-Complete 26 1.2.4 Hàm phía hàm phía có cửa sập 27 1.2.5 Một số tốn khó đƣợc sử dụng lý thuyết mật mã 28 148 Chương TỔNG QUAN VỀ MÃ HÓA VÀ CHỮ KÝ SỐ 29 2.1 CÁC KHÁI NIỆM CƠ BẢN 29 2.1.1 Lý thuyết mật mã an tồn thơng tin 29 2.1.2 Hệ mã hóa 31 2.1.2.1 Định nghĩa 31 2.1.2.2 Các yêu cầu hệ mã hóa 31 2.1.2.3 Hệ mã hóa khóa đối xứng 32 2.1.2.4 Hệ mã hóa khóa cơng khai 33 2.2 MỘT SỐ HỆ MÃ HĨA KHĨA CƠNG KHAI 35 2.2.1 Hệ mã hóa RSA 35 2.2.1.1 Giới thiệu 35 2.2.1.2 Sơ đồ hệ mã hóa RSA 35 2.2.1.3 Ví dụ 37 2.2.2 Hệ mã hoá Elgamal 39 2.2.2.1 Sơ đồ hệ mã hóa Elgamal 39 2.2.2.2 Đặc điểm Hệ mã hoá Elgamal 39 2.2.2.3 Ví dụ 40 2.2.3 Tính hiệu độ an tồn hệ mã hóa 41 2.2.3.1 Hệ mã hóa khóa đối xứng 41 2.2.3.2 Hệ mã hóa khóa cơng khai RSA 41 2.2.3.3 Cơ sở hạ tầng khóa cơng khai KPI 42 2.3 CHỮ KÝ SỐ 43 2.3.1 Khái niệm chữ ký 43 2.3.1.1 Chữ ký viết tay 43 2.3.1.2 Chữ ký số 45 2.3.2 Sơ đồ chữ ký số 47 2.3.3 Phân loại sơ đồ chữ ký số 49 2.3.3.1 Sơ đồ chữ ký số kèm theo thông điệp gốc 49 2.3.3.2 Sơ đồ chữ ký số khơi phục thơng điệp gốc 50 2.4 SƠ ĐỒ CHỮ KÝ RSA 52 2.4.1 Cơ sở toán học 52 2.4.2 Thuật toán sinh khoá 53 2.4.3 Thuật toán sinh xác thực chữ ký RSA 53 2.4.3.1 Sinh chữ ký 53 2.4.3.2 Xác thực chữ ký 53 2.4.4 Ví dụ 54 2.4.5 Tính hiệu bảo mật 55 2.4.5.1 Tính hiệu 55 2.4.5.2 Tính bảo mật 55 2.5 HÀM BĂM VÀ ĐẠI DIỆN THÔNG ĐIỆP 56 2.5.1 Đặt vấn đề 56 2.5.2 Đại diện thông điệp 57 149 2.5.3 Hàm băm mật mã 58 2.5.3.1 Định nghĩa 58 2.5.3.2 Các tính chất hàm băm 58 2.5.3.3 Phân loại hàm băm 58 2.5.3.4 Ý nghĩa việc dùng hàm băm 59 2.5.3.5 Một số thuật toán hàm băm mật mã thông dụng 60 2.6 PHƢƠNG PHÁP XÁC THỰC THÔNG ĐIỆP 63 2.6.1 Xác thực thơng điệp gì? 63 2.6.2 Một số phƣơng pháp xác thực thông điệp 63 2.6.2.1 Mã hố thơng điệp khóa riêng 63 2.6.2.2 Dùng khố bí mật chung 64 2.6.2.3 Dùng hàm băm 64 2.7 CHỨNG MINH SỰ AN TOÀN CỦA SƠ ĐỒ CHỮ KÝ 65 2.7.1 Chứng minh dựa độ phức tạp tính tốn 65 2.7.2 Chứng minh dựa mơ hình Oracle ngẫu nhiên 65 Chương CHỮ KÝ MÙ 66 3.1 GIỚI THIỆU 66 3.2 CHỮ KÝ MÙ DỰA TRÊN CHỮ KÝ RSA 68 3.2.1 Sơ đồ chữ ký RSA 68 3.2.2 Sơ đồ chữ ký mù Chaum 69 3.3 CHỮ KÝ MÙ DỰA TRÊN CHỮ KÝ SCHNORR 71 3.3.1 Sơ đồ chữ ký Schnorr 71 3.3.2 Sơ đồ chữ ký mù Schnorr 73 3.4 CÁC ỨNG DỤNG 74 3.4.1 Ứng dụng với tiền điện tử 74 3.4.1.1 Giới thiệu tiền điện tử 74 3.4.1.2 Giao thức giao dịch tiền điện tử 75 3.4.1.3 Một số vấn đề an toàn với tiền điện tử ẩn danh 77 3.4.2 Ứng dụng với bỏ phiếu điện tử 79 3.4.2.1 Các yêu cầu với bỏ phiếu 79 3.4.2.2 Giao thức bỏ phiếu điện tử 79 3.5 CHỮ KÝ DỰA TRÊN TRI THỨC 82 3.5.1 Một số khái niệm toán học liên quan 82 3.5.2 Chữ ký dựa tri thức 84 3.6 CHỮ KÝ MÙ DỰA TRÊN TRI THỨC 88 3.6.1 Chữ ký mù dựa tri thức Logarit rời rạc 88 3.6.1.1 Giao thức chữ ký 88 3.6.1.2 Phân tích chữ ký 91 3.6.2 Chữ ký mù dựa tri thức Logarit rời rạc kép 92 3.6.2.1 Giao thức chữ ký 92 3.6.2.2 Phân tích chữ ký 93 3.6.3 Chữ ký mù dựa tri thức gốc Logarit rời rạc 94 150 3.6.3.1 Giao thức chữ ký 94 3.6.3.2 Phân tích chữ ký 95 Chương CHỮ KÝ NHÓM 96 4.1 GIỚI THIỆU 96 4.1.1 Các thủ tục chữ ký nhóm 97 4.1.2 Các yêu cầu với chữ ký nhóm 98 4.1.3 Giới thiệu lịch sử nghiên cứu chữ ký nhóm 100 4.2 CHỮ KÝ NHÓM CHAUM VÀ HEYST 102 4.2.1 Sơ đồ chữ ký nhóm dạng 102 4.2.2 Sơ đồ chữ ký nhóm dạng 104 4.3 CHỮ KÝ NHÓM CAMENISCH VÀ STADLER (CS97) 107 4.4 MỘT BIẾN THỂ AN TOÀN HƠN CỦA CS97 110 4.4.1 Sự liên minh công chống lại CS97 110 4.4.2 Sửa đổi giao thức Join để ngăn chặn liên minh công 113 Chương CHỮ KÝ MÙ NHÓM 115 5.1 GIỚI THIỆU 115 5.2 CÁC YÊU CẦU BẢO MẬT CỦA CHỮ KÝ MÙ NHÓM 116 5.3 CÁC THỦ TỤC CỦA CHỮ KÝ MÙ NHÓM 118 5.4 CHỮ KÝ MÙ NHÓM LYSYANSKAYA VÀ RAMZAN 119 5.4.1 Giao thức chữ ký 119 5.4.2 Phân tích chữ ký 121 5.5 ỨNG DỤNG CỦA CHỮ KÝ MÙ NHÓM 123 5.5.1 Ứng dụng với ngân hàng điện tử phân tán 123 5.5.1.1 Sơ đồ ngân hàng điện tử phân tán 123 5.5.1.2 Thiết đặt giao thức 125 5.5.2 Ứng dụng với tiền mặt điện tử ngoại tuyến 128 5.5.2.1 Các yêu cầu 128 5.5.2.2 Thiết đặt giao thức 129 5.5.3 Ứng dụng với bỏ phiếu trực tuyến 133 5.5.3.1 Sơ đồ bỏ phiếu 133 5.5.3.2 Giao thức bỏ phiếu trực tuyến 133 Chương THỬ NGHIỆM CHƢƠNG TRÌNH 135 6.1 MỤC ĐÍCH 135 6.2 GIỚI THIỆU MỘT SỐ CHƢƠNG TRÌNH 136 6.2.1 Sinh số nguyên tố lớn, phép toán số lớn 136 6.2.2 Sinh khóa RSA 137 6.2.3 Mã hóa, giải mã RSA 138 6.2.4 Sử dụng hàm băm 139 6.2.5 Sinh thẩm tra chữ ký, chữ ký mù 140 KẾT LUẬN 142 TÀI LIỆU THAM KHẢO 144 151