Một số phương pháp mã hóa có thể chối từ dựa trên mã hóa xác suất. Một số phương pháp mã hóa có thể chối từ dựa trên mã hóa xác suất. Một số phương pháp mã hóa có thể chối từ dựa trên mã hóa xác suất. Một số phương pháp mã hóa có thể chối từ dựa trên mã hóa xác suất. Một số phương pháp mã hóa có thể chối từ dựa trên mã hóa xác suất. Một số phương pháp mã hóa có thể chối từ dựa trên mã hóa xác suất.
1 LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng tơi hướng dẫn tập thể cán hướng dẫn khoa học Các nội dung, số liệu kết trình bày Luận án hoàn toàn trung thực chưa có tác giả cơng bố cơng trình khác, liệu tham khảo trích dẫn đầy đủ Tác giả Luận án Nguyễn Đức Tâm LỜI CẢM ƠN Luận án nghiên cứu sinh thực Học viện Kỹ thuật mật mã Ban Cơ yếu Chính phủ Nghiên cứu sinh xin bày tỏ lòng biết ơn sâu sắc tới nhà khoa học: Phó Giáo sư Tiến sĩ Lê Mỹ Tú Tiến sĩ Nguyễn Nam Hải, Thầy tận tình giúp đỡ, trang bị phương pháp nghiên cứu, kinh nghiệm, kiến thức khoa học kiểm tra, đánh giá kết suốt trình thực Luận án Nghiên cứu sinh xin trân trọng cảm ơn Học viện Kỹ thuật mật mã sở đào tạo đơn vị quản lý chun mơn, Đồng chí lãnh đạo Học viện Kỹ thuật mật mã - Ban Cơ yếu Chính phủ, nơi nghiên cứu sinh cơng tác tạo điều kiện thuận lợi, hỗ trợ giúp đỡ nghiên cứu sinh suốt trình học tập, nghiên cứu thực Luận án Xin chân thành cảm ơn nhà giáo, nhà khoa học, đồng chí đồng nghiệp thuộc Khoa Mật mã, Phịng Sau Đại học - Học viện Kỹ thuật mật mã; nhà khoa học Viện Khoa học Công nghệ mật mã - Ban Cơ yếu Chính phủ giúp đỡ, hỗ trợ nghiên cứu sinh trình thực Luận án Nghiên cứu sinh chân thành cảm ơn động viên, giúp đỡ to lớn từ phía gia đình, đồng nghiệp hỗ trợ nghiên cứu sinh suốt q trình thực hồn thành Luận án Nghiên cứu sinh Nguyễn Đức Tâm MỤC LỤC trang DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT vi BẢNG ĐỐI CHIẾU THUẬT NGỮ viii DANH MỤC CÁC BẢNG ix DANH MỤC CÁC HÌNH VẼ x MỞ ĐẦU Chương TỔNG QUAN VỀ MÃ HÓA CÓ THỂ CHỐI TỪ 1.1 Tổng quan mã hóa chối từ 1.1.1 Khái niệm mã hóa chối từ 1.1.2 Ứng dụng mã hóa chối từ 10 1.1.3 Khái niệm khơng phân biệt mặt tính tốn 10 1.1.4 Tính đắn, an tồn, chối từ mã hóa chối từ 11 1.1.5 Một số định nghĩa phân loại lược đồ mã hóa chối từ 13 1.1.6 Tấn cơng cưỡng ép mã hóa chối từ 20 1.1.7 Thẩm quyền đối phương thực cưỡng ép 22 1.2 Các hướng nghiên cứu mã hóa chối từ 23 1.2.1 Các cơng trình nghiên cứu mà hóa chối từ .23 1.2.2 Nhận xét cơng trình nghiên cứu mã hóa chối từ 27 1.3 Phương thức gài đặt mã hóa chối từ dựa mã hóa xác suất 29 1.3.1 Mã hóa xác suất ứng dụng mã hóa xác suất để gài đặt MHCTCT 29 1.3.2 Hai chế độ hoạt động giao thức mã hóa chối từ 31 1.4 Mơ tả toán cần giải Luận án 32 1.5 Kết luận chương 33 Chương ĐỀ XUẤT PHƯƠNG PHÁP MÃ HÓA CÓ THỂ CHỐI TỪ DỰA TRÊN GIAO THỨC BA BƯỚC SHAMIR 34 2.1 Giao thức ba bước Shamir .34 2.1.1 Thuật tốn mã hóa giao hốn 34 2.1.2 Giao thức ba bước Shamir 34 2.2 Phương pháp mã hóa chối từ dựa giao thức ba bước Shamir 35 2.2.1 Phương pháp thực MHCTCT ngữ cảnh cơng 35 2.2.2 Một số thuật tốn sử dụng 37 2.3 Đề xuất số giao thức mã hóa chối từ dựa giao thức ba bước Shamir .38 2.3.1 Giao thức 2.1: giao thức mã hóa chối từ sử dụng thuật toán Pohlig-Hellman .38 2.3.2 Giao thức 2.2: giao thức MHCTCT sử dụng thuật toán SRA 53 2.3.3 Giao thức 2.3: giao thức mã hóa chối từ sử dụng mã hóa Vernam kết hợp thuật toán ElGamal .62 2.4 Nhận xét khuyến nghị sử dụng giao thức đề xuất 72 2.4.1 Đánh giá độ phức tạp thời gian tính tốn giao thức đề xuất 72 2.4.2 So sánh giao thức đề xuất với số cơng trình hướng nghiên cứu 73 2.4.3 Nhận xét khuyến nghị sử dụng giao thức đề xuất 76 2.5 Kết luận chương 78 Chương ĐỀ XUẤT PHƯƠNG PHÁP MÃ HÓA CÓ THỂ CHỐI TỪ DỰA TRÊN MÃ KHỐI 79 3.1 Mơ hình truyền tin, ngữ cảnh cơng tiêu chí thiết kế .79 3.2 Phương pháp mã hóa xác suất dựa mã khối .81 3.2.1 Lược đồ tổng quát mã hóa xác suất dựa mã khối .81 3.2.2 Lược đồ mã hóa xác suất dựa mã khối với hai giai đoạn mã hóa 83 3.3 Đề xuất phương pháp mã hóa chối từ dựa mã khối .84 3.3.1 Lược đồ gài đặt mã hóa chối từ dựa mã khối 84 3.3.2 Thuật tốn mã hóa chối từ dựa mã khối 93 3.4 Kết luận chương 108 KẾT LUẬN 109 DANH MỤC CÁC CƠNG TRÌNH CƠNG BỐ 111 TÀI LIỆU THAM KHẢO 113 PHỤ LỤC A: MỘT SỐ THUẬT TOÁN SỬ DỤNG 118 PHỤ LỤC B: MỘT SỐ KẾT QUẢ THỰC NGHIỆM VÀ MÃ NGUỒN CHƯƠNG TRÌNH THỰC NGHIỆM 121 DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT AES Chuẩn mã hóa tiên tiến (Advanced Encryption Standard) A Bên gửi A a|b a ước số b B Bên nhận B C Tập mã c C Đơn vị cấp phát chứng thư (Certificate Authority) A Tấn công rõ chọn lựa (CPA: Chosen Plaintext Attack) C P A Dk (c) Hàm giải mã D , giải mã mã c k K C với khóa D Chuẩn mã hóa liệu (Data ES Encryption Standard) Đối phương ĐP cơng TC e Tập khóa mã riêng mã hóa khóa bất đối xứng Ek (m ) gcd( a,b) Hàm mã hóa E , mã hóa thơng điệp m với M khóa k K Ước chung lớn a b (greatest common divisor) fr(Z ) Hàm trích chuỗi bit từ chuỗi bit z theo thuật tốn bí mật f (m) Hàm gài đặt mã hóa thơng điệp bí mật m H (x) IND-CPA I K Hàm băm x Không phân biệt mặt tính tốn cơng lựa chọn rõ (Indistinguishability under chosenplaintext attack) Khối mã trung gian Tập tham số, khóa mã bí mật người dùng MHCTCT Mã hóa chối từ m Thông điệp giả mạo nhiên Viện công nghệ chuẩn quốc gia Hoa Kỳ (National Institute of Standards and Technology) m Thơ ng điệp bí mật m1 m Phé p nối chu ỗi bit m1 với chu ỗi bit m2 m Kíc h thư ớc the o bit m M Tập thôn g điệp mod p Phé p toán mod ulo p Tập số tự OTP ord (t) Mã hóa khóa sử dụng lần (one-time pad) Cấp phần tử t nhóm *n PKE Mã hóa khóa cơng khai (Public-key encryption) R Tập ngẫu nhiên RSA Rivest -Shamir-Adlerman SRA Shamir-Rivest -Adlerman SKE Mã hóa khóa bí mật (Secret-key encryption) XOR Phép toán cộng modulo {Xn}n Tập phân bố xác suất biến ngẫu nhiên X n c {Xn}n {Yn }n {Xn}n {Yn}n không phân biệt mặt tính tốn p Tập số ngun Trường p : tập hợp số nguyên nhỏ số nguyên p * p Nhóm nhân số nguyên theo modulo p z Tham số bí mật dùng chung hai bên A B sử dụng giao thức trao đổi khóa an tồn để thống (n) Hàm phi Eurler n BẢNG ĐỐI CHIẾU THUẬT NGỮ Nghĩa tiếng Anh Nghĩa tiếng Việt Active coercives Tấn công chủ động (cưỡng ép chủ động) Bi-deniable encryption Mã hóa chối từ đồng thời hai bên Coercer Người/ quan ép buộc Computational indistinguishability Khơng phân biệt mặt tính tốn Correctness Tính xác Coercive adversary Tấn cơng cưỡng ép Coercer adversary Đối phương cưỡng ép Deniability Tính chối từ Deniable Encryption Mã hóa chối từ Flexible-deniable encryption Mã hóa chối từ linh hoạt Fully-deniable encryption Mã hóa chối từ hồn tồn Negligible Không đáng kể Passive coercives Tấn công bị động (cưỡng ép bị động) Plan-ahead deniable encryption Mã hóa chối từ kế hoạch trước Probabilistic encryption Mã hóa xác suất Sender-deniable encryption Mã hóa chối từ bên gửi Receiver-deniable encryption Mã hóa chối từ bên nhận Security Tính an tồn Shamir three-pass protocol Giao thức ba bước Shamir DANH MỤC CÁC BẢNG trang Bảng 1.1 Phân loại MHCTCT theo bên chối từ 14 Bảng 2.1 Độ phức tạp tính tốn giao thức 2.1 chế độ gài đặt MHCTCT 73 Bảng 2.2 Độ phức tạp tính tốn giao thức 2.2 chế độ gài đặt MHCTCT 73 Bảng 2.3 Độ phức tạp tính tốn giao thức 2.3 73 Bảng 2.4 So sánh giao thức Luận án đề xuất cơng trình nghiên cứu tương tự trước MHCTCT dựa giao thức ba bước Shamir .73 Bảng 2.5 So sánh giao thức 2.3 cơng trình nghiên cứu tương tự MHCTCT sử dụng hệ mã khóa bí mật OTP 75 Bảng B.1 Kết thực nghiệm tính đắn hiệu tính tốn giao thức 2.1 122 Bảng B.2 Kết thực nghiệm tính đắn hiệu tính tốn Lược đồ MHCTCT dựa mã khối 140 mpz_t big_kz, mpz_t big_e, mpz_t big_m, mpz_t big_c1, mpz_t big_c2) { int ret = 0; mpz_t big_s; mpz_init(big_s); mpz_t big_r; mpz_init(big_r); mpz_t big_D; mpz_init(big_D); mpz_t big_DC1; mpz_init(big_DC1); mpz_t big_DC2; mpz_init(big_DC2); mpz_t big_tmp1; mpz_init(big_tmp1); mpz_t big_tmp2; mpz_init(big_tmp2); /* s = m^e mod p */ mpz_powm(big_s, big_m, big_e, big_p); /* D = (z - (kz * z))^-1 mod p */ get_D(big_p, big_z, big_kz, big_D); /* DC1 = (z*r - (z * kz *s)) mod p */ get_DC1(big_p, big_z, big_kz, big_r, big_s, big_DC1); /* DC2 = (z - r) mod p */ get_DC2(big_p, big_s, big_r, big_DC2); /* big_c1 = (D * DC1) mod p */ mpz_mul(big_tmp1, big_D, big_DC1); mpz_mod(big_c1, big_tmp1, big_p); /* big_c2 = (D * DC2) */ mpz_mul(big_tmp2, big_D, big_DC2); mpz_mod(big_c2, big_tmp2, big_p); mpz_clear(big_r); mpz_clear(big_s); mpz_clear(big_D); mpz_clear(big_DC1); mpz_clear(big_DC2); mpz_clear(big_tmp1); mpz_clear(big_tmp2); return; } static char* hex2char(char *dst, unsigned char b) { unsigned char v = b >> 4; *dst++ = (v > 4; *dst++ = (v