DƯƠNG ANH ĐỨC TRẦN MINH TRIẾT MÃ HÓA VÀ ỨNG DỤNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TPHCM Lời giới thiệu Mật mã (Cryptography) ngành khoa học ngành nghiên cứu kỹ thuật toán học nhằm cung cấp dịch vụ bảo vệ thông tin [44] Đây ngành khoa học quan trọng, có nhiều ứng dụng đời sống – xã hội Khoa học mật mã đời từ hàng nghìn năm Tuy nhiên, suốt nhiều kỷ, kết lĩnh vực không ứng dụng lĩnh vực dân thông thường đời sống – xã hội mà chủ yếu sử dụng lĩnh vực quân sự, trị, ngoại giao Ngày nay, ứng dụng mã hóa bảo mật thơng tin sử dụng ngày phổ biến lĩnh vực khác giới, từ lĩnh vực an ninh, quân sự, quốc phòng…, lĩnh vực dân thương mại điện tử, ngân hàng… Với phát triển ngày nhanh chóng Internet ứng dụng giao dịch điện tử mạng, nhu cầu bảo vệ thông tin hệ thống ứng dụng điện tử ngày quan tâm có ý nghĩa quan trọng Các kết khoa học mật mã ngày triển khai nhiều lĩnh vực khác đời sống – xã hội, phải kể đến nhiều ứng dụng đa dạng lĩnh vực dân sự, thương mại Các ứng dụng mã hóa thơng tin cá nhân, trao đổi thông tin kinh doanh, thực giao dịch điện tử qua mạng trở nên gần gũi quen thuộc với người Cùng với phát triển khoa học máy tính Internet, nghiên cứu ứng dụng mật mã học ngày trở nên đa dạng hơn, mở nhiều hướng nghiên cứu chuyên sâu vào lĩnh vực ứng dụng đặc thù với đặc trưng riêng Ứng dụng khoa học mật mã không đơn mã hóa giải mã thơng tin mà cịn bao gồm nhiều vấn đề khác cần nghiên cứu giải quyết, ví dụ chứng thực nguồn gốc nội dung thông tin (kỹ thuật chữ ký điện tử), chứng nhận tính xác thực người sở hữu mã khóa (chứng nhận khóa cơng cộng), quy trình giúp trao đổi thông tin thực giao dịch điện tử an toàn mạng Các ứng dụng mật mã học khoa học bảo vệ thông tin đa dạng phong phú; tùy vào tính đặc thù hệ thống bảo vệ thông tin mà ứng dụng có tính với đặc trưng riêng Trong đó, kể số tính hệ thống bảo vệ thơng tin: • Tính bảo mật thơng tin: hệ thống đảm bảo thơng tin giữ bí mật Thơng tin bị phát hiện, ví dụ q trình truyền nhận, người công hiểu nội dung thơng tin bị đánh cắp • Tính tồn vẹn thơng tin: hệ thống bảo đảm tính tồn vẹn thông tin liên lạc giúp phát thơng tin bị sửa đổi • Xác thực đối tác liên lạc xác thực nội dung thơng tin liên lạc • Chống lại thoái thác trách nhiệm: hệ thống đảm bảo đối tác hệ thống từ chối trách nhiệm hành động mà thực Những kết nghiên cứu mật mã đưa vào hệ thống phức tạp hơn, kết hợp với kỹ thuật khác để đáp ứng yêu cầu đa dạng hệ thống ứng dụng khác thực tế, ví dụ hệ thống bỏ phiếu bầu cử qua mạng, hệ thống đào tạo từ xa, hệ thống quản lý an ninh đơn vị với hướng tiếp cận sinh trắc học, hệ thống cung cấp dịch vụ đa phương tiện mạng với yêu cầu cung cấp dịch vụ bảo vệ quyền sở hữu trí tuệ thơng tin số Khi biên soạn tập sách này, nhóm tác giả mong muốn giới thiệu với quý độc giả kiến thức tổng quan mã hóa ứng dụng, đồng thời trình bày phân tích số phương pháp mã hóa quy trình bảo vệ thơng tin an tồn hiệu thực tế Bên cạnh phương pháp mã hóa kinh điển tiếng sử dụng rộng rãi nhiều thập niên qua DES, RSA, MD5…, giới thiệu với bạn đọc phương pháp mới, có độ an tồn cao chuẩn mã hóa AES, phương pháp ECC, chuẩn hàm băm mật mã SHA224/256/384/512… Các mô hình quy trình chứng nhận khóa cơng cộng trình bày tập sách Nội dung sách gồm 10 chương Sau phần giới thiệu tổng quan mật mã học khái niệm hệ thống mã hóa chương 1, từ chương đến chương 5, sâu vào tìm hiểu hệ thống mã hóa quy ước, từ khái niệm bản, phương pháp đơn giản, đến phương pháp Rijndael thuật toán ứng cử viên AES Nội dung chương giới thiệu hệ thống mã hóa khóa cơng cộng phương pháp RSA Chương trình bày khái niệm chữ ký điện tử với số phương pháp phổ biến RSA, DSS, ElGamal Các kết nghiên cứu ứng dụng lý thuyết đường cong elliptic trường hữu hạn vào mật mã học trình bày chương Chương giới thiệu hàm băm mật mã sử dụng phổ biến MD5, SHS với phương pháp công bố thời gian gần SHA-256/384/512 Trong chương 10, tìm hiểu hệ thống chứng nhận khóa cơng cộng, từ mơ hình đến quy trình thực tế hệ thống chứng nhận khóa cơng cộng, với ví dụ việc kết hợp hệ thống mã hóa quy ước, hệ thống mã hóa khóa cơng cộng chứng nhận khóa cơng cộng để xây dựng hệ thống thư điện tử an toàn Với bố cục nội dung nêu trên, hi vọng kiến thức trình bày tập sách nguồn tham khảo hữu ích cho quý độc giả quan tâm đến lĩnh vực mã hóa ứng dụng Mặc dù cố gắng hoàn thành sách với tất nỗ lực chắn cịn thiếu sót định Kính mong cảm thơng góp ý q độc giả NHĨM TÁC GIẢ: TS Dương Anh Đức - ThS Trần Minh Triết với đóng góp sinh viên Khoa Công nghệ Thông tin, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia thành phố Hồ Chí Minh Văn Đức Phương Hồng Phan Thị Minh Đức Nguyễn Minh Huy Lương Vĩ Minh Nguyễn Ngọc Tùng Thành phố Hồ Chí Minh, tháng 01 năm 2005 Mục lục Chương Tổng quan 15 1.1 Mật mã học 15 1.2 Hệ thống mã hóa (cryptosystem) 16 1.3 Hệ thống mã hóa quy ước (mã hóa đối xứng) 18 1.4 Hệ thống mã hóa khóa cơng cộng (mã hóa bất đối xứng) 19 1.5 Kết hợp mã hóa quy ước mã hóa khóa cơng cộng 19 Chương Một số phương pháp mã hóa quy ước 20 2.1 Hệ thống mã hóa quy ước 20 2.2 Phương pháp mã hóa dịch chuyển 21 2.3 Phương pháp mã hóa thay 22 2.4 Phương pháp Affine 23 2.5 Phương pháp Vigenere 28 2.6 Phương pháp Hill 29 2.7 Phương pháp mã hóa hốn vị 30 2.8 Phương pháp mã hóa phép nhân 2.8.1 Phương pháp mã hóa phép nhân 2.8.2 Xử lý số học 2.9 Phương pháp DES (Data Encryption Standard) 2.9.1 Phương pháp DES 2.9.2 Nhận xét 2.10 Phương pháp chuẩn mã hóa nâng cao AES 31 31 32 33 33 36 37 Chương Phương pháp mã hóa Rijndael 39 3.1 Giới thiệu 39 3.2 Tham số, ký hiệu, thuật ngữ hàm 40 3.3 Một số khái niệm toán học 42 3.4 3.5 3.6 3.7 3.8 3.3.1 Phép cộng 3.3.2 Phép nhân 3.3.3 Đa thức với hệ số GF(28) Phương pháp Rijndael 3.4.1 Quy trình mã hóa 3.4.2 Kiến trúc thuật tốn Rijndael 3.4.3 Phép biến đổi SubBytes 3.4.4 Phép biến đổi ShiftRows 3.4.5 Phép biến đổi MixColumns 3.4.6 Thao tác AddRoundKey Phát sinh khóa chu kỳ 3.5.1 Xây dựng bảng khóa mở rộng 3.5.2 Xác định khóa chu kỳ Quy trình giải mã 3.6.1 Phép biến đổi InvShiftRows 3.6.2 Phép biến đổi InvSubBytes 3.6.3 Phép biến đổi InvMixColumns 3.6.4 Quy trình giải mã tương đương Các vấn đề cài đặt thuật toán 3.7.1 Nhận xét Kết thử nghiệm 3.9 Kết luận 3.9.1 Khả an toàn 3.9.2 Đánh giá 43 43 46 49 50 52 53 55 56 58 59 59 61 62 63 64 66 67 69 72 73 74 74 75 Chương Phương pháp Rijndael mở rộng 77 4.1 Nhu cầu mở rộng phương pháp mã hóa Rijndael 77 4.2 Phiên mở rộng 256/384/512-bit 4.2.1 Quy trình mã hóa 4.2.2 Phát sinh khóa chu kỳ 4.2.3 Quy trình giải mã 4.2.4 Quy trình giải mã tương đương 4.3 Phiên mở rộng 512/768/1024-bit 78 79 86 88 93 94 4.4 Phân tích mật mã vi phân phân tích mật mã tuyến tính 4.4.1 Phân tích mật mã vi phân 4.4.2 Phân tích mật mã tuyến tính 95 95 96 4.4.3 Branch Number 4.4.4 Sự lan truyền mẫu 4.4.5 Trọng số vết vi phân vết tuyến tính 4.5 Khảo sát tính an tồn phương pháp cơng khác 4.5.1 Tính đối xứng khóa yếu DES 4.5.2 Phương pháp công Square 4.5.3 Phương pháp nội suy 4.5.4 Các khóa yếu IDEA 4.5.5 Phương pháp cơng khóa liên quan 4.6 Kết thử nghiệm 98 99 107 108 108 109 109 110 110 111 4.7 Kết luận 113 Chương Các thuật tốn ứng cử viên AES 5.1 Phương pháp mã hóa MARS 5.1.1 Quy trình mã hóa 5.1.2 S–box 5.1.3 Khởi tạo phân bố khóa 5.1.4 Quy trình mã hóa 5.1.5 Quy trình giải mã 5.2 Phương pháp mã hóa RC6 5.2.1 Khởi tạo phân bố khóa 5.2.2 Quy trình mã hóa 5.2.3 Quy trình giải mã 5.3 Phương pháp mã hóa Serpent 5.3.1 Thuật tốn SERPENT 5.3.2 Khởi tạo phân bố khóa 5.3.3 S–box 5.3.4 Quy trình mã hóa 5.3.5 Quy trình giải mã 5.4 Phương pháp mã hóa TwoFish 5.4.1 Khởi tạo phân bố khóa 5.4.2 Quy trình mã hóa 5.4.3 Quy trình giải mã 5.5 Kết luận 115 115 116 117 118 123 135 137 138 139 143 144 144 144 147 148 153 154 154 163 169 169 Chương Một số hệ thống mã hóa khóa cơng cộng 172 6.1 Hệ thống mã hóa khóa cơng cộng 172 6.2 Phương pháp RSA 6.2.1 Phương pháp RSA 6.2.2 Một số phương pháp công giải thuật RSA 6.2.3 Sự che dấu thông tin hệ thống RSA 6.2.4 Vấn đề số nguyên tố 6.2.5 Thuật toán Miller-Rabin 6.2.6 Xử lý số học 6.3 Mã hóa quy ước mã hóa khóa cơng cộng 174 174 175 182 183 184 186 186 Chương Chữ ký điện tử 191 7.1 Giới thiệu 191 7.2 Phương pháp chữ ký điện tử RSA 192 7.3 Phương pháp chữ ký điện tử ElGamal 7.3.1 Bài toán logarit rời rạc 7.3.2 Phương pháp ElGamal 7.4 Phương pháp Digital Signature Standard 193 193 194 194 Chương Phương pháp ECC 197 8.1 Lý thuyết đường cong elliptic 197 8.1.1 Công thức Weierstrasse đường cong elliptic 198 8.1.2 Đường cong elliptic trường R2 199 8.1.3 Đường cong elliptic trường hữu hạn 204 8.1.4 Bài toán logarit rời rạc đường cong elliptic 212 8.1.5 Áp dụng lý thuyết đường cong elliptic vào mã hóa 213 8.2 Mã hóa liệu 213 8.2.1 Thao tác mã hóa 214 8.2.2 Kết hợp ECES với thuật toán Rijndael thuật toán mở rộng 215 8.2.3 Thao tác giải mã 215 8.3 Trao đổi khóa theo phương pháp Diffie - Hellman sử dụng lý thuyết đường cong elliptic (ECDH) 216 8.3.1 Mơ hình trao đổi khóa Diffie-Hellman 216 8.3.2 Mơ hình trao đổi khóa Elliptic Curve Diffie - Hellman 217 8.4 Kết luận 218 ... Mật mã học 15 1.2 Hệ thống mã hóa (cryptosystem) 16 1.3 Hệ thống mã hóa quy ước (mã hóa đối xứng) 18 1.4 Hệ thống mã hóa khóa cơng cộng (mã hóa bất đối xứng) 19 1.5 Kết hợp mã hóa quy ước mã hóa. .. nghiên cứu ứng dụng mật mã học ngày trở nên đa dạng hơn, mở nhiều hướng nghiên cứu chuyên sâu vào lĩnh vực ứng dụng đặc thù với đặc trưng riêng Ứng dụng khoa học mật mã không đơn mã hóa giải mã thơng... thuật toán ứng cử viên AES 5.1 Phương pháp mã hóa MARS 5.1.1 Quy trình mã hóa 5.1.2 S–box 5.1.3 Khởi tạo phân bố khóa 5.1.4 Quy trình mã hóa 5.1.5 Quy trình giải mã 5.2 Phương pháp mã hóa RC6 5.2.1