Chương 6 THỬ NGHIỆM CHƢƠNG TRÌNH
6.2. GIỚI THIỆU MỘT SỐ CHƢƠNG TRÌNH
6.2.4. Sử dụng hàm băm
Dùng hàm băm để tạo ra các bản đạ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 bất kỳ hoặc nhập vào tại cửa sổ chƣơng trình.
Kết quả (mã băm hay đại diện thông điệp) đƣợc hiển thị ở dòng cuối của cửa sổ chƣơng trình.
Có thể lựa chọn một trong hai thuật toán là MD5 hoặc SHA-1: - Dùng MD5 : Độ dài của đại diện thông điệp là 128 bit. - Dùng SHA-1: Độ dài của đại diện thông điệp là 160 bit. .
6.2.5. Sinh và thẩm tra chữ ký, chữ ký mù
Chƣơng trình gồm các chức năng sau: 1) Ký thông điệp bằng khóa riêng.
2) Thẩm tra chữ ký bằng 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ù” một thông điệp, ta thực hiện:
- Làm “mù” thông điệp ( thực hiện 3). - Ký trên thông điệp “mù” (thực hiện 1).
- Xóa “mù” thông điệp đã ký “mù” (thực hiện 4).
Sử dụng phối hợp các chức năng của chƣơng trình ta sẽ tạo ra đƣợc các chữ ký “mù” hoặc chữ ký bình thƣờng (không “mù”).
Thẩm tra chữ ký
KẾT LUẬN
Qua việc nghiên cứu tổng quan về mã hóa và chữ ký số và tập trung nghiên một số loại chữ ký đặc biệt, luận văn đã đạt đƣợc những mục tiêu cơ bản đề ra và có những ý nghĩa nhất định, tuy nhiên không tránh khỏi những khiếm khuyết vì những lý do khách quan và chủ quan. Sau đây tác giả xin đánh giá các kết quả chính đã đạt đƣợc cũng nhƣ những mặt hạn chế của luận văn và cuối cùng đề xuất hƣớng phát triển của đề tài.
Kết quả chính đạt được của luận văn là:
1) Nghiên cứu, tìm hiểu qua tài liệu, để hệ thống lại các vấn đề sau: - Một số kiến thức toán học sử dụng trong khoa học mật mã. - Tổng quan về mã hóa và 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 các loại chữ ký: mù, nhóm, mù nhóm đối với giao dịch tiền điện tử và bỏ phiếu điện tử.
Các hạn chế của luận văn:
1) Việc nghiên cứu các loại chữ ký đã đề cập trong luận văn chƣa thể đầy đủ hết mọi khía cạnh, nhiều vấn đề tìm hiểu chƣa sâu và chƣa thật hệ thống, vì lĩnh vực này rất rộng và luôn đổi mới.
2) Chƣa có điều kiện tìm hiểu việc cài đặt một số hệ thống tiền điện tử và hệ thống bỏ phiếu điện tử cụ thể, cũng nhƣ các công nghệ đƣợc sử dụng trong thực tiễn, mà mới chỉ dừng lại trên mặt nghiên cứu lý thuyết tổng quan. 3) Các chƣơng trình thử nghiệm vẫn chủ yếu mang tính mô phỏng, vì trong
khuôn khổ thời gian có hạn và 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 sự trong thực tiễn.
Hướng phát triển:
1) Tiếp tục cập nhật các thông tin mới về mặt lý thuyết cũng nhƣ ứng dụng của các loại chữ ký đã trình bày.
2) Nghiên cứu một số hệ thống và công nghệ cụ thể về tiền điện tử, bỏ phiếu điện tử mà có ứng dụng các loại chữ ký mù, chữ ký nhóm nhóm và chữ ký mù nhóm.
3) Cài đặt ứng dụng chữ ký điện tử trong thực tiễn.
4) Nghiên cứu, và đề xuất các giải pháp an toàn cho các 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 quả nghiên cứu còn hết sức khiêm tốn nhƣng có một ý nghĩa lớn lao với bản thân tác giả, đó là đƣợc tiếp cận, đƣợc học tập để hiểu biết thêm những tri thức bổ ích, hy vọng tác giả sẽ có điều kiện đƣợc tiếp tục nghiên cứu đề tài này.
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1] Đoàn Văn Ban, Võ Minh Đức, Chữ ký số RSA và ứng dụng xác thực đề thi, cấp chứng chỉ số trong e-learning, Kỷ yếu hội thảo khoa học Quốc gia về công nghệ phần mềm và phần mềm nhóm, Công nghệ tri thức và 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ã và an toàn thông tin, Nhà xuất bản Đại học Quốc gia Hà Nội, 1999.
[3] Phạm Huy Điển, Hà Huy Khoái, Mã hoá thông tin cơ sở toán học & ứng dụng, Viện toán học, 2004.
[4] Ngô Hoàng Huy, Nguyễn Thành Quang, Lập trình Windows với C++, Nhà xuất bản giao thông vận tải, 2006.
[5] Nguyễn Thành Nhân, RSA - tấn công và phòng chống, Nhà xuất bản thanh 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 về Công nghệ thông tin, Nhà xuất bản Khoa học kỹ thuật, 2005.
[7] Trịnh Nhật Tiến, Giáo trình an toàn dữ liệu và 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.
[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. Springer- Verlag, 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.
[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 31- 53. 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 Cryptology- ASIACRYPT '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. Springer- Verlag, 1990. Lecture Notes in Computer Science No. 435.
Địa chỉ trên 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
MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ ... 1
DANH MỤC CÁC HÌNH VẼ VÀ KÝ HIỆU... 2
MỞ ĐẦU ... 3
Chương 1. CÁC KIẾN THỨC CƠ SỞ... 7
1.1. LÝ THUYẾT SỐ HỌC ... 7
1.1.1. Phép chia hết và chia có dƣ ... 7
1.1.1.1. Định nghĩa ... 7
1.1.1.2. Một số tính chất ... 7
1.1.2. Ƣớc chung lớn nhất, bội chung nhỏ nhất ... 8
1.1.2.1. Định nghĩa ... 8
1.1.2.2. Tính chất ... 8
1.1.2.3. Thuật toán Euclide tìm ƣớc chung lớn nhất ... 9
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 toán đồng dƣ của các 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 ngôi ... 18
1.1.5.2. Nhóm... 18
1.1.5.3. Nhóm con ... 19
1.1.5.4. Nhóm Cyclic ... 20
1.1.5.5. Nhóm cộng Zn và nhóm nhân Zn* ... 21
1.2. LÝ THUYẾT ĐỘ PHỨC TẠP TÍNH TOÁN ... 24
1.2.1. Thuật toán của một bài 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 toán ... 24
1.2.2. Độ phức tạp thuật toán ... 25
1.2.3. Phân lớp bài toán theo độ phức tạp ... 25
1.2.3.1. Lớp bài toán P, NP ... 25
1.2.3.2. Lớp bài toán NP-Hard, NP-Complete ... 26
Chương 2. 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ã và an toà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 của một 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 của Hệ mã hoá Elgamal ... 39
2.2.2.3. Ví dụ... 40
2.2.3. Tính hiệu quả và độ an toàn của 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 các 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ố có thể 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 và 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 quả và bảo mật ... 55
2.4.5.1. Tính hiệu quả ... 55
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 của hàm băm ... 58
2.5.3.3. Phân loại hàm băm ... 58
2.5.3.4. Ý nghĩa củ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 là 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ã hoá thông điệp bằng khóa riêng ... 63
2.6.2.2. Dùng khoá 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 trên độ phức tạp tính toán ... 65
2.7.2. Chứng minh dựa trên mô hình Oracle ngẫu nhiên ... 65
Chương 3. 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 về tiền điện tử ... 74
3.4.1.2. Giao thức giao dịch tiền điện tử cơ bản ... 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 một cuộc 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 trên 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 trên tri thức về 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 trên tri thức về Logarit rời rạc kép ... 92
3.6.2.1. Giao thức chữ ký ... 92
3.6.3.1. Giao thức chữ ký ... 94
3.6.3.2. Phân tích chữ ký. ... 95
Chương 4. CHỮ KÝ NHÓM ... 96
4.1. GIỚI THIỆU ... 96
4.1.1. Các thủ tục của 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 1 ... 102
4.2.2. Sơ đồ chữ ký nhóm dạng 2 ... 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 tấn 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 tấn công... 113
Chương 5. 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 và các 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 và các 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 6. 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