Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 86 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
86
Dung lượng
538,41 KB
Nội dung
Bộ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC sư PHẠM HÀ NỘI LÊ HOÀNG HỆ MẬT MÃ HIỆN ĐẠI VÀ ỨNG DỤNG TRONG XÁC THựC CHỮ KÝ ĐIỆN TỬ Chuyên ngành: Khoa học máy tính Mã sổ: 06 48 01 01 LUẬN VĂN THẠC sĩ KHOA HỌC MÁY TÍNH Người hướng dẫn khoa học: TS KIỀU VĂN HƯNG HÀ NỘI, LỜI CẢM ƠN Luận văn tốt nghiệp cao học hoàn thành Trường Đại học Sư phạm Hà Nội Có luận văn tốt nghiệp này, tơi xin bày tỏ lịng biết ơn chân thành sâu sắc đến Trường Đại học Sư phạm Hà Nội 2, phòng sau đại học, đặc biệt TS Kiều Văn Hưng trực tiếp hướng dẫn, dìu dắt, giúp đỡ với dẫn khoa học quý giá suốt trình triển khai, nghiên cứu hoàn thành đề tài Hệ mật mã đại ứng dụng xác thực chữ ký điện tử Xin ghi nhận cơng sức đóng góp q báu nhiệt tình bạn học viên lớp đóng góp ý kiến giúp đỡ tơi suốt q trình Có thể khẳng định thành cơng luận văn này, trước hết thuộc công lao tập thể, nhà trường, quan xã hội Đặc biệt quan tâm động viên khuyến khích thơng cảm sâu sắc gia đình Nhân tơi xin bày tỏ lịng biết ơn sâu đậm Xin chân thành cảm ơn! Hà Nội, ngày 02 tháng 12 năm 2015 Học viên Lê Hoàng LỜI CAM ĐOAN Tôi xin cam đoan số liệu kết nghiên cứu luận văn trung thực không trùng lặp với đề tài khác Tôi xin cam đoan giúp đỡ cho việc thực luận văn đuợc cảm ơn thơng tin trích dẫn luận văn đuợc rõ nguồn gốc Hà Nội, ngày 02 tháng 12 nãm 2015 Học viên Lề Hoàng MỤC LỤC 1.2.1 1.2.2 Hệ mật tích 1.1 1.2 1.3 DANH MỤC KÝ HIỆU, TỪ VIẾT TẮT 1.1 1.2 ST 1.4 1.5 1.7 1.8 1.10 1.11 1.13 1.14 1.16 TỪ VIẾT TẮT DES 1.6 1.3 Ý NGHĨA Data Encryption Standard RSA 1.9 Rivest, Shamir, Adleman K p 1.12 1.15 Key Plain Text Cipher Text Unicity Distance 1.17 c 1.20 u 1.18 1.21 NP GCD 1.24 1.27 NonPolynomial Greatest Common Divisor 1.29 1.31 1.32 SPN EFF 1.30 1.33 Substitution-Permutation Network Electronic Frontier Foundation 1.34 1.35 AES 1.36 Advanced Encryption Standard 1.37 1.38 ECB 1.39 Electronic Codebook 1.19 1.22 1.23 1.25 1.26 1.28 11 1.40 1.41 CBC 1.42 Cipher Block Chaining 1.44 CTR 1.45 Counter 1.47 OFB 1.48 Output Feedback 1.50 1.52 1.53 CFB KDC 1.51 1.54 Cipher Feedback Key Distribution Center CA LGDDT 1.57 1.60 Certificate Authority Luật giáo dục điện tử MD5 SHA 1.63 1.66 Message Digest Secure Hash Algorithm 1.43 1.46 1.49 1 1.55 1.56 1.58 1.59 1 1.61 1.62 1.64 1.65 1.67 1.4 1.5 DANH MỤC CÁC BẢNG 1.68 1.69 ST 1.71 1.74 Bảng 2.1 1.73 1.70 TÊN BẢNG Hiệu ứng lan truyền 1.75 Bảng 2.2 1.76 Bảng liệt kê mốc phá mã RSA 1.77 1.6 DANH MỤC 1.72 BẢNG 1.7 DANH MỤC HÌNH VẼ, ĐỒ THỊ 1.78 1.79 ST ÌNH VẼ T1.81 1.82 Hình 2.1 1.84 1.85 Hình 2.2 1.87 1.88 Hình 2.3 1.90 1.91 Hình 2.4 1.93 1.94 Hình 2.5 1.96 1.97 Hình 2.6 1.99 1.100 Hình 2.7 1.102.1.103 Hình 2.8 1.105.1.106 Hình 2.9 1.108.1.109 Hình 10 2.10 1.111.1.112 Hình 11 2.11 1.114.1.115 Hình 12 2.12 1.117.1.118 Hình 13 2.13 1.120.1.121 Hình 14 2.14 1.123.1.124 Hình 15 2.15 1.126.1.127 Hình 16 2.16 1.129.1.130 Hình 17 2.17 1.132.1.133 Hình 18 2.18 1.135.1.136 Hình 19 2.19 1.138.1.139 Hình 20 2.20 1.141.1.142 Hình 21 2.21 1.144.1.145 Hình 22 2.22 1.147 1.8 H 1.80 TÊN HÌNH VẼ 1.83 Mơ hình mã dịng 1.86 Mã dịng A5/1 Mơ hình mã khối Feistel 1.89 1.92 1.95 Các vòng Feistel mã TinyDES Cấu trúc vòng mã TinyDES Các vòng Feistel mã DES 1.101 Cấu trúc vòng mã DES 1.98 1.104 Mơ hình ECB mã khối 1.107 Mã hóa ECB khơng che dấu hết thơng tin 1.110 Mơ hình CBC mã khối 1.113 Bức ảnh sau mã hóa dùng mơ hình CBC 1.116 Mơ hình OFB mã khối 1.119 Mơ hình CFB mã khối 1.122 Trao đổi khóa bí mật dùng KDC 1.125 Mơ hình bảo mật với mã hóa cơng khai 1.128 Mơ hình khơng thối thác với mã hóa cơng khai 1.131 Mơ hình kết hợp bảo mật, chứng thực khơng từ chối 1.134 Trao đổi khóa cơng khai tự phát 1.137 Trao đổi khóa cơng khai dùng trung tâm chứng thực 1.140 Thiết lập khóa phiên bí mật mã hóa khóa cơng khai 1.143 Tấn cơng kẻ-đứng-giữa với phuơng pháp DiffieHellman 1.146 Bảo vệ khóa Diffie-Hellman khóa cơng khai 1.743 Ku = (3, 33) 1.744 1.573 1.574 KR = (7, 33) Theo phương án (mã hóa chứng thực): 6) Mã hóa rõ M = 15: 1.575 c = Md mod N = 157 mod 33 = 27 (vì 157 = 170.859.375 = 5177.556 X 33 + 27) 7) Giải mã mã c = 9: 1.576 M = mod N = 273 mod 33 = 15 = M (vì 273 = 19.683 = 596 X 33 + 15) 1.577 Phép tính mã hóa/giải mã 1.578 Phép tính mã hóa giải mã dùng phép lũy thừa modulo Để an toàn, thường phải chọn N, e, d, M lớn Nếu thực cách tính phép lũy thừa trước sau rút gọn modulo, giá trị phép lũy thừa lớn để lưu trữ tính tốn Tuy nhiên số học modulo có tính chất sau: 1.579 (a * b) = [(omôdn) * (/) mod n)] modn 1.580 Chúng ta sử dụng tính chất để đơn giản phép tính lũy thừa modulo thơng qua phương pháp gọi “ bình phương liên tiếp” Ví dụ cần tính X16 mod n, tính a = X mod n, b = X2 mod n = a2 mod n, c = X4 mod n = b2 mod n, d = X8 mod n = c2 mod n, cuối X16 mod n = d2 mod n Các số a, b, c, d nhỏ n tránh việc tính số lũy thừa lớn đồng thời nâng cao tốc độ tính tốn 1.581 Trong trường hợp tổng qt để tính Xb mod n, ta viết b dạng số nhị phân 1.582 1.583 b = bkbk_! b2b1b0 bị bít 0, Như vậy: b = £bt:f02¿ 1.584 Do dó: x b = Y\b t ±o ỵ2t m °dn 1.585 Như ứng với bị = 1, ta dùng phương pháp bình phương liên tiếp để tính X2 mod 71 Sau nhân kết với rút gọn modulo để có kết cuối 1.586 Ví dụ: Tính y = 520 mod 11: số 20 viết dạng nhị phân 10100, có bít bít (Nghĩa 20 = 16 + 4) 51 = mod 52 = (51)2 = 25 = mod 11 54 = (52)2 = 32 = mod 11 1.587 58 = (54)2 = 92 = 81 = mod 11 516 = (58)2 = 42 = 16 = mod 11 Kết cuối 1.588 y = 520 mod 11 = (54 mod 11 )(516 mod 11) = X mod 11=1 Thuật tốn tính lũy thừa modulo xb mod n a = x; y = 1; 1.589 if (b mod 0) 1.590 y = (y*a) mod n; 1.591 end if b = b shr 1; a = (a*a) mod n; while (b>0); return y; 1.592 Đe tăng toc q trình mã hóa liệu, thường chọn khóa cơng khai e cụ thể Thường e 65537 (216 + 1) Ngồi cịn chọn e 17 Lý để chọn số lúc e có bít Do giảm phép phép nhân phép tính lũy thừa modulo ( ý chọn p q cho e nguyên tố với n) Tuy nhiên chọn e nhỏ RSA bị phá mã cách sử dụng định lý số dư Trung Hoa 1.593 Giả sử chọn e = Alice gửi thơng điệp M cho ba người khác có khóa cơng khai (3, Ni), (3, N2), (3, N3) Ba mã Ci = M3 mod N3, c3 = M3 mod N3 Thường Ni, N2, N3 nguyên tố theo cặp Theo nguyên tắc RSA, M nhỏ Ni, N2, N3 nên M3 < NIN2N3 Vậy xét góc độ định lý số dư Trung Hoa: 1.594 NIN2N3^T 1.595 M3 «-A 1.596 Ni tj, N2 t2, N3 t3 1.597 Ci a1; C2 €3- a2, C3 1.598 a3 Theo định lý số dư Trung Hoa, biết ap a2, a3, tj, t2, t3 ta khơi phục giá trị A Vậy Trudy có CỊ, c2, c3 Alice, Trudy tìm Af3 từ tính M 1.599 Vì ta chọn e nhỏ nên d tìm lớn Do ngồi việc áp dụng d phương pháp bình phương liên tiếp để tính M = c mod N, người ta cịn áp dụng định lý số dư Trung Hoa để tăng tốc độ tính tốn lên lần Cách thực sau: 1.600 Bổ sung vào khóa riêng tham số p, q, dP, dQ, qlnv, với: - p, q hai số nguyên tố để tính N - dP.e = mod p - dQ.e = mod q - plnv.q = mod p (với giả định p>q) 1.601 Áp dụng định lý số dư Trung Hoa theo phương án Garner, thay tính M = cd mod N, tính M sau: - mj = CdP mod p - m2 = CdQ mod q - h = qlnv(m! - m2) mod p - M = m2 + qh 1.602 Với cách thực trên, tính phép modulo số p, q có kích 1.603 thước nhỏ N 1.604 Chứng minh: 1.605 Tương tự cách chứng minh RSA, đặt e.dP = u(p - 1) + 1, ta có: 1.606 mi = CdP mod p = (Me mod N)dP mod p = Me dP mod p (vì N chia hết cho p) 1.607 = Mu(p_1) + modp 1.608 Từ áp dụng định lý Fermat bé, ta suy ra: ni! = M mod p Tương tự, ta có m2 = M mod q 1.609 Do đó, xét theo định lý số dư Trung Hoa theo phương án Garner M ZN tương ứng với cặp (m1; m2) Zp X Zq : 1.610 N T, M A, p t2, q ti, mi a2, m2 a1; qlnv c12 Ta có: 1.611 bi = ãị mod ti = m2 1.612 b2 = (a2 - bi)c12 mod t2 = qlnv(m! - m2) mod p = h Vậy: M = A =b2ti + bi = m2 + qh Phép tính sinh khóa 1.613 Phép tính sinh khóa chọn p q ngun tố để tính N Để phân tích số N thành tích hai thừa số ngun tố p, q, có cách thử số p q Do phải chọn p, q đủ lớn để việc thử khơng khả thi Hiện chưa có phương pháp để sinh số nguyên tố lớn tùy ý Chỉ có cách chọn số lẻ ngẫu nhiên kiểm tra số có phải số ngun tố khơng Việc kiểm tra tính ngun tố gặp nhiều khó khăn Thuật tốn kiểm tra số nguyên tố hiệu thuật tốn Miller-Rabin, khơng hồn tồn xác 100%, nhiên đạt sai số nhỏ khơng đángrkể 1.614 Dựa vào lý thuyết số nguyên tố, người ta ước tính cần thử trung bình 1.615 200 1.616 khoảng 70 số lẻ để tìm số nguyên tố lớn chừng 1.617 Vì chọn e trước 65537 (hay 17 ), cần kiểm tra xem e có nguyên tố với n = ip-\){q-\) hay không Neu không ta phải thử lại với p q khác Sau tìm p q thích hợp, kết hợp việc kiểm tra tính nguyên tố e n, đồng thời e nguyên tố với n thuật tốn cho biết d Vì khơng cần tiến hành bước tìm d riêng 1.618 Độ an toàn RSA 1.619 Sau ta xem xét số công phương pháp RSA 1) Vét cạn khóa: cách cơng thử tất khóa d có để tìm giải mã có ý nghĩa, tương tự cách thử khóa K mã hóa đối xứng Với N lớn, việc công bất khả thi 2) Phân tích N thành thừa số nguyên tố N = pq\ Chúng ta nói việc phân tích phải bất khả thi hàm chiều, nguyên tắc hoạt động RSA Tuy nhiên, nhiều thuật tốn phân tích đề xuất, với tốc độ xử lý máy tính ngày nhanh, làm cho việc phân tích N khơng cịn khó khăn trước Năm 1977, tác giả RSA treo giải thưởng cho phá RSA có kích thước N vào khoảng 428 bít, tức 129 chữ số Các tác giả ước đốn phải 40 nghìn triệu triệu năm giải Tuy nhiên vào năm 1994, câu đố giải vòng tháng Bảng sau liệt kê kích thước N RSA phá mã 1.745 Bảng 2.2: Bảng liệt kề mốc phá mã RSA 1.747 1.746 Sổ 1.748 Năm 1.749 chữ số N sổbữ 100 110 120 129 130 140 155 160 174 200 1.751 322 1.755 365 1.759 398 1.763 428 1.767 431 1.771 465 1.775 512 1.779 530 1.783 576 1.787 1.750 1.754 1.758 1.762 1.766 1.770 1.774 1.778 1.782 1.786 1.790 633 phá mã 1.752 1.756 1.760 1.764 1.768 1.772 1.776 1.780 1.784 1.788 1991 1992 1993 1994 1996 1999 1999 2003 2003 2005 Thuật toán 1.753 Quadratic 1.757 Quadratic 1.761 Quadratic 1.765 Quadratic 1.769 GNFS 1.773 GNFS 1.777 GNFS 1.781 Lattice 1.785 Lattice 1.789 Lattice 1.620 1.621 Dĩ nhiên việc phá mã thực phịng thí nghiệm Tuy nhiên người ta cho kích thước N phải khoảng 1024 bít (309 chữ số) bảo đảm an toàn thật 3) Đo thời gian: Đây phương pháp phá mã không dựa vào mặt toán học thuật toán RSA, mà dựa vào “hiệu ứng lề” sinh trình giải mã RSA Hiệu ứng lề thời gian thực giải mã Giả sử người phá mã đo thời giải mã dùng thuật tốn bình phương liên tiếp Trong thuật tốn bình phương liên tiếp, bít d xảy hai phép modulo, bít có phép modulo, thời gian thực giải mã khác Bằng số phép thử chosen-plaintext, người phá mã biết bít d hay từ biết d 1.622 Phương pháp phá mã ví dụ cho thấy việc thiết kế hệ mã an toàn phức tạp Người thiết kế phải lường trước hết tình xảy 2.3.3 Bảo mật, chứng thực khơng thối thác với mã khóa công khai 1.623 Giả sử Alice muốn gửi liệu cho Bob dùng mã hóa khóa cơng khai, trước tiên Alice Bob chọn cặp khóa riêng-khóa cơng khai Ký hiệu khóa riêngkhóa cơng khai Alice KRA KUB KRB KUB 1.624 Như để gửi liệu bảo mật cho Bob, Alice dùng phương án 1: mã hóa liệu khóa cơng khai KUB Bob, Bob dung khóa riêng KRB để giải mã c = E( M, Kub) M = D( c, Krb) 1.791 1.796 1.812 1.792 KUB 1.797 1.798 1.801 M 1.802 F 1.806 1.807 sin 1.793 1.794.1.795 kênh thường kênh 1.808 c h khó 1.799.1.800 a 1.804 1.805 M 1.813 r\ 1.809 1.810.1.811 Bo b 1.625 1.626 Hình 2.15: Mơ hình bảo mật với mã hóa cơng khai 1.627 Đe đảm bảo tính chứng thực Alice không từ chối trách nhiệm gửi liệu, Alice dùng phương án 2: Alice mã hóa liệu khóa riêng KRA, Bob dùng khóa cơng khai KRA Alice để giải mã 1.628 c= E(M, Kra) M = D(C, Kua) 1.833 1.814 1.816 sin 1.815 KUA h 1.819 kênh thường kh 1.817 1.818 óa 1.823 1.832.1.822 Alic M1.827 E e 1.824 kenn thưởng 1.829 c 1.820 1.821 1.825 D M 1.834 1.831 Bo b 1.629 1.630 Hình 2.16: Mơ hình khơng thối thác với mã hóa công khai 1.631 Cũng với giả định thông điệp có ý nghĩa dãy bít có cấu trúc, giải mã Bob hợp lệ rõ ràng Alice người gởi có Alice có khóa riêng KRA Giống mã hóa đối xứng, Trudy can thiệp chỉnh sửa mã c Bob giải mã rõ dãy bít vơ nghĩa Cịn Trudy có khóa KRA Alice khơng thể thối thác trách nhiệm làm lộ khóa 1.632 Tuy nhiên mơ lại khơng đảm bảo tính bảo mật Vì khơng riêng Bob, Trudy biết khóa cơng khai KUA Alice Do Trudy giải mã mã c biết nội dung rõ M 1.633 Để giải vấn đề trên, người ta kết hợp tính bảo mật, chứng thực khơng từ chối qua mơ hình sau: c = E(E(M, Kra), Kub) 1.634 M = D(D(C, Krb), Kua) 1.635 Hình 2.17: Mơ hình kết hợp bảo mật, chửng thực khơng từ chối KRA KUB KRB KUA 2.3.4 Trao đỗi khóa phương pháp trao đỗi khóa Diffie - Hellman Trao đỗi khóa 1.636 Khi hai người sử dụng muốn truyền liệu với phương pháp mã hóa khóa cơng khai, trước tiên họ phải trao đổi khóa cơng khai cho Vì khóa cơng khai nên khơng cần giữ bí mật việc trao đổi này, khóa truyền công 1.637 khai kênh thường Alice Bob, hay người khác cơng bố rộng rãi khóa cơng khai theo mơ hình bên dưới: 1.638 Hình 2.18: Trao đổi khóa cơng khai tự phát 1.639 1DA\\KUA Tuy nhiên lại gặp phải vấn đề chứng thực Làm mà Alice đảm bảo KUB khóa cơng khai Bob? Trudy mạo danh Bob cách lấy khóa KUT Trudy nói khóa cơng khai Bob 1.640 Vì vậy, việc trao đổi khóa cơng khai theo mơ hình đặt gánh nặng lên vai cá nhân Alice muốn gửi thông điệp cho Bob hay người khác phải tin tưởng vào khóa cơng khai Bob hay người Tương tự cho Bob 1.641 Để giảm gánh nặng cho cá nhân, mơ hình gọi “chứng khóa cơng khai” (public-ke3rxertificate) sử dụng Trong mơ hình có tổ chức làm nhiệm vụ cấp chứng gọi trung tâm chứng thực (Certificate Authority - CA) Các bước thực cấp chứng cho Alice sau: 1) Alice gửi định danh IDA khóa cơng khai KUA đến trung tâm chứng thực 2) Trung tâm chứng nhận dáểm tra tính hợp lệ Alice, ví dụ ID A “Microsoft”, Alice phải có chứng chứng tỏ thực cơng ty Microsoft 3) Dựa sở đó, trung tâm chứng thực cấp chứng CA để xác nhận khóa cơng khai KUA tương ứng với IDA Chứng đượcrký chứngthực khóa riêng trung tâm để đảm bảo nội dung chứng trung tâm ban hành 1.642 CA = E(IDAIIKua, KRAuth) 1.643 (II phép nối dãy bỉt) 4) Alice công khai chứng CA 5) Bob muốn trao đổi thông tin với Alice giaỉ mã CA khóa cơng khai trung tâm chứng thực để có khóa cơng khai KUA Alice Do Bob tin tưởng vào trung tâm chứng thực Bob tin tưởng KUA tương ứng với IDA, tức tương ứng với Alice 1.835 1.644 1.645 Hình 2.19: Trao đồi khóa cơng khaỉ dùng trung tâm chứng thực 1.646 Như cỗ thấy Bob muôn gởi thông điệp cho Alice, Cindy, hay Darth , Đob khơng cần phải tin tưởng vào khóa cơng khai Alỉce, Cỉndy, hay Darth Bob cần tin tường vào trung tâm chứng thực khỏa công khai trung tâm chủng thực đủ 1.647 Hiện mơ hình chứng khóa cơng khai áp dụng rộng rãỉ với chuẩn chứng chuẩn X.509 Trên giới có khoảng BO tể chức chứng thực chứng khỗa cơng khai 1.648 Do đặc điểm tốn học phương pháp mã hóa khóa cơng khai, thời gian mã hóa giải mã phương phảp chậm so với phương án mã hóa đối xứng Trong thực tế, đốỉ vớỉ vấn đề bảo đảm tính bảo mật, người ta sử dụng phương pháp mã hóa đối xứng Mã hóa khóa cơng khai dùng để thiết lập khỗa bí mật cho phiên teao đổi liệu Lúc khóa bí mật gọi khóa phiên (session key), phiên ưao đểi liệu khác dùng khóa bí mật khác 1.649 Hình mơ tả mơ hình đơn giản để thiết lập khóa phiên Ks gỉữâ Alice Bob 1.836 1.650 1.651 Hình 2.20: Thiết lập khóa phiên bí mật mã hóa khóa cơng khai 1.652 Alice tạo khóa phiên Ks , mã hóa khóa riêng Alice, sau mã hóa khóa cơng khai Bob Bob giải mã Ks dùng khóa riêng củã Bob khỗa cơng khai Alice Nhờ tính bảo mật, Alice biết ngồi Alice cố Bob mói biết Ks Nhờ tính khơng từ chếi, Bob biết ngồi Bob có Alice biết Ks Alice dùng khóa riêng để mã hỗa Ks Do Ks dùng làm khóa bí mật cho mã hóa đối xứng đề trao đểi liệu Alice Bob Sau phiên ữao đổi liệu, Ks hủy bỏ nên khóa bí mật có khả bị lộ Lúc vai ưò mã hỗa khóa cơng khai khơng phải bảo mật liệu (vỉệc mã hỗâ đổỉ xứng đảm trách) mà bảo đảm tỉnh bỉ mật khóa đối xứng, có A B biết khóa Ks 1.653 Phương pháp trao đồi khóa Diffie - Heilman 1.654 Phương pháp trao đổi khóa Diffie-Hellman dùng để thiết lập khỏa bỉ mật người gửi người nhận mà không cần dùng đến mã hỗa công khai Phương phảp dùng hàm chiều làm hàm logarỉth rời rạc Diffie-Hellman khơng có ý nghĩa mặt mã hỗâ giống RSA 1.655 Trước tiên Alice Bob thống sử dụng chung số nguyên tố p 1.656 số g nhỏ p primitive root p (nghĩa phép toán gx mod p khả nghịch) Hai số p g không cần giữ bí mật Sau Alice chọn số a giữ bí mật số a Bob chọn số b giữ bí mật số b Tiếp theo Alice tính gửi ga modp cho Bob, Bob tính gửi gb modp cho Bob Trên sở Alice tính: 1.657 (gb) a mod p = g a b mod p 1.658 Bob tính: 1.659 (g a )b mod p = g a b mod p 1.660 Do Alice Bob có chung giá trị gab mod p Giá trị dùng làm khóa cho phép mã hóa đối xứng 1.661 Như vậy, kẻ phá mã Trudy có g, p, ga gb Muốn tính gab mocị pì Trudy dùng cách: gagb mod p = ga+b mod p -ệ- gab mod p 1.662 Muốn tính gab mod p , Trudy phải tính a b Tuy nhiên việc tính a hay b theo cơng thức: 1.663 a = dlogg, p g a hay b = dlogg, p gb 1.664 Là không khả thi tính phức tạp phép logarith rời rạc Vậy Trudy khơng thể tính gab mod p Hay nói cách khác, khóa dùng chung trao đổi bí mật Alice Bob 1.665 Tuy nhiên, thuật toán Diffie-Hellman lại thất bại cách công kẻ- đứng-giữa Trong phương pháp công này, Trudy đứng Alice Bob Trudy chặn thông điệp Alice Bob, giả mạo thông điệp mà Alice Bob không hay biết Alice nghĩ nhận liệu từ Bob ngược lại 1.666 Do Trudy thiết lập khóa Diffie-Hellman gat mod p với Alice khóa gbt mod p với Bob Khi Alice gửi liệu, Trudy giải mã khóa gat mod p, sau mã hóa lại gbt mod p gửi cho Bob Như Alice Bob không hay biết cịn Trudy xem trộm liệu 1.838 qa mod 1.837 p 20 1.842 1.843 1.847 Alice 1.848 gt mod 1.852 1.667 p 1.840 ql mod 1.839 46 1.849 Trud y p 1.845 1.850 gb mod p 1.841 1.846 1.851 B ob 1.668 Hình 2.21: Tấn cơng kẻ-đứng-giữa với phương pháp Diffie-Hellman 1.669 Để an tồn, q trình thiết lập khóa Diffie-Hellman phải mã hóa khóa cơng khai Lúc câu hỏi đặt bảo vệ khóa cơng khai rồi, chọn khóa đối xứng bất kỳ, cần chọn khóa Diffie-Hellman? Tuy nhiên có số trường hợp, mà cách thức công kẻ-đứnggiữa khơng thể thực được, phương thức Diffie-Hellman tỏ hữu dụng 1.670 Trong hình 2.21, giả sử Trudy ghi nhận lại hết tất thông điệp Alice Bob Sau Trudy phát khóa riêng KRA KRB Alice Bob, Trudy khơi phục lại khóa đối xứng Ks Và từ Trudy khơi phục lại rõ mà mã hóa khóa Ks Bây ta xét mơ hình sau dùng 1.671 Diffie-Hellman bảo vệ mã hóa khóa cơng khai: 1.853 1.672 1.673 Hình 2.22: Bảo vệ khóa Diffie-Hellman khóa cơng khai KRA 1.674 Trong mơ hình trên, sau Trudy phát khóa riêng 1.675 K RB Alice Bob, Trudy tìm ga mod p gb mod p Tuy 1.676 vậy, Trudy khơi phục lại khóa bí mật gab mod p Và khơng thể khơi phục lại rõ Alice Bob Đây ý nghĩa phương pháp Diffie-Hellman 1.677 Chương 1.678 ỨNG DỤNG MẬT MÃ HIỆN ĐẠI TRONG XÁC THỰC CHỮ KÝ ĐIỆN TỬ 3.1 Chữ ký điện tử 3.1.1 Khái niệm 1.679 Chữ ký điện tử tạo lập dạng từ, chữ, số, ký hiệu, âm hình thức khác phương tiện điện tử, gắn liền kết hợp cách lơ gíc với thơng điệp liệu, có khả xác nhận người ký thơng điệp liệu xác nhận chấp thuận người nội dung thông điệp liệu ký (xem [6]) 1.680 Chữ ký điện tử hoạt động dựa hệ thống mã hóa khóa cơng khai Hệ thống mã hóa gồm hai khóa, khóa bí mật khóa cơng khai (khác với hệ thống mã hóa khóa đối xứng, gồm khóa cho q trình mã hóa giải mã) Mỗi chủ thể có cặp khóa vậy, chủ thể giữ khóa bí mật, cịn khóa cơng khai chủ thể đưa công cộng để biết Nguyên tắc hệ thống mã hóa khóa cơng khai là, ta mã hóa khóa bí mật khóa cơng khai giải mã thông tin được, ngược lại, ta mã hóa khóa cơng khai, có khóa bí mật giải mã 1.681 Chữ ký điện tử xem hạ tầng cho giao dịch điện tử phát triển, tất hoạt động có giao dịch trực tuyến sử dụng chữ điện tử ứng dụng triển khai hành cơng điện tử, phủ điện tử, ứng dụng thương mại điện tử, giao dịch điện tử, 3.1.2 So sánh chữ ký điện tử chữ ký thường văn 1.682 - Chữ ký điện tử chữ ký thường có nhiều điểm khác nhau: tài liệu ký: Với tài liệu thơng thường, phần vật lý tài liệu Ngược lại, chữ ký điện tử khơng phải theorìrìểu vật lý gắn vào thơng báo nên khơng nhìn thấy điện - vấn đề kiểm tra chữ ký: Chữ ký thông thường kiểm tra cách só sánh với chữ ký xác thực khác (chữ ký mẫu) Điểm yếu chữ ký thơng thường khơng an tồn, dễ giả mạo Ngược lại, chữ ký điện tử lại kiểm tra nhờ dùng thuật tốn kiểm tra cơng khai, kiểm tra Việc dùng sơ đồ chữ ký an tồn ngăn chặn giả mạo 3.1.3 Sơ đồ tổng quan hệ thống chữ ký số điện tử 1.683 đây: Một sơ đồ chữ ký điện tử (P,A,K,S,V) thỏa mãn điều kiện - p tập hữu hạn điện (thông điệp, rõ) - A tập hữu hạn chữ ký - K tập hữu hạn khóa - s tập thuật toán ký - V tập thuật toán xác minh 1.684 Với khoá K —» k tồn thuật toán ký SigK —» s thuật toán xác minh VerK —» V Mỗi Sigk: p —» A verK: p X A —» {TRUE, FALSE} hàm cho điện X —» p chữ ký y —» A thoả mãn phương trình đây: 1.686 1.685 True y = sig(x) Ver (x, y) = 1.687 1.688 L— False y Ỷ sig(x) Với k thuộc K, hàm SigK VerK hàm thời gian đa thức, Verk hàm cơng khai cịn Sigk hàm mật 1.689 - Ý nghĩa sơ đồ: 1.690 Khi người dùng muốn ký lên thơng báo X người dùng thuật tốn an tồn để tạo chữ ký y = sig(x) nhận gửi cho người nhận Người nhận nhận chữ ký sig(x) dùng thuật tốn xác minh ver(x,y) để xác định tính đắn chữ ký số (trả true false) 1.691 Quy trình sử dụng chữ ký điện tử 1.692 Chữ ký điện tử hoạt động dựa hệ thống mã hóa khóa cơng khai Hệ thống mã hóa gồm hai khóa, khóa bí mật khóa cơng khai Mỗi chủ thể co cặp khóa vậy, chủ thể giữ khóa bí mật, cịn khóa cơng khai chủ thể đưa công cộng để biết Nguyên tắc hệ thống mã hóa khóa cơng khai mã hóa khóa bí mật khóa công khai giải mã thông tin ngược lại, mã hóa khóa cơng khai, có khóa bí mật giải mã 1.693 Ngồi ra, chữ ký cịn đảm bảo phát giác thay đổi liệu “ký” Để ký lên văn bản, phần mềm ký nghiền liệu để gói gọn vài dịng, gọi thơng báo tóm tắt, tiến trình gọi “kỹ thuật băm”, tạo thành chữ ký điện tử Cưới cùng, phần mềm ký tên gắn chữ ký điện tử vào văn 1.694 Ví dụ: Giả sử bên A có tài liệu p cần ký Bên A thực băm văn thành tóm lược X, sau dùng khóa bí mật ký lên tóm lược X để văn chữ ký điện tử Y, say gửi tài liệu p kèm theo chữ ký Y cho A Giả sử B muốn xác nhận tài liệu p A, với chữ ký mã Y Bên B dùng khóa công khai A để xác nhận chữ ký Y A ký văn p gửi có hay khơng, xác nhận chữ ký Y A ký văn p, ngược lại khơng phải ký thay đổi 1.695 Một số trường hợp xảy với chữ ký điện tử, giống trường hợp xảy với chữ ký truyển thống Ví dụ: Khi tài liệu A bị thay đổi (dù ký tự, dấu chấm, hay ký hiệu bất kỳ), B xác nhận, thấy giải mã khác với tài liệu anh A B kết luận tài liệu bị thay đổi, khơng phải tài liệu A ký 1.696 Trường hợp khác, A để lộ khóa bí mật, nghĩa văn tài liệu A ký người khác có khóa bí mật A Khi xác nhận tài liệu cho A ký, chữ ký hợp lệ, khơng phải A ký Như vậy, chữ ký A khơng cịn giá trị pháp lý Do đó, việc giữ khóa bí mật tuyệt đối quan trọng hệ thống chữ ký điện tử 1.697 Trong trường hợp ví dụ trên, A có cặp khóa để ký văn bản, tài liệu số Tương tự vậy, B hay sử dụng chữ ký điện tử, có cặp khóa Khóa bí mật giữ riêng, cịn khóa cơng khai đưa cơng cộng Vậy vấn đề đặt làm để biết khóa cơng khai thuộc A, B hay người 1.698 Hơn nữa, giả sử mơi trường giao dịch Internet, cần tin cậy cao, A muốn giao dịch với nhân vật X X A cần trao đổi thông tin cá nhân cho nhau, thơng tin gồm họ tên, địa chỉ, số điện thoại, email Vậy để A chắn giao dịch với nhân vật X khác giả mạo X? Chứng số tạo để giải vấn đề này! Chứng số có chế để xác nhận thơng tin xác đối tượng sử dụng chứng số 1.699 Thông tin A X xác nhận bên trung gian mà A