Đồ Án Tốt Nghiệp TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI TP HỒ CHÍ MINH BỘ MÔN CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI NGHIÊN CỨU VÀ ỨNG DỤNG THUẬT TOÁN ADVANCED ENCRYPTION STANDAR[.]
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI TP HỒ CHÍ MINH BỘ MƠN CƠNG NGHỆ THƠNG TIN BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI : NGHIÊN CỨU VÀ ỨNG DỤNG THUẬT TOÁN ADVANCED ENCRYPTION STANDARD XÂY DỰNG APP CHAT MÃ HÓA ĐẦU CUỐI Giảng viên hướng dẫn : PHẠM THỊ MIÊN Sinh viên thực : VÕ PHI QN Lớp : CƠNG NGHỆ THƠNG TIN Khố : 59 TP Hồ Chí Minh, năm 2022 TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI TP HỒ CHÍ MINH BỘ MƠN CƠNG NGHỆ THƠNG TIN BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI : NGHIÊN CỨU VÀ ỨNG DỤNG THUẬT TOÁN ADVANCED ENCRYPTION STANDARD XÂY DỰNG APP CHAT MÃ HÓA ĐẦU CUỐI Giảng viên hướng dẫn : PHẠM THỊ MIÊN Sinh viên thực : VÕ PHI QN Lớp : CƠNG NGHỆ THƠNG TIN Khố : 59 TP Hồ Chí Minh, năm 2022 TRƯỜNG ĐẠI HỌC GIAO THƠNG VẬN TẢI CỘNG HỊA XÃ HỘI CHỦ NGHIÃ VIỆT NAM PHÂN HIỆU TẠI THÀNH PHỐ HỒ CHÍ MINH Độc lập – Tự – Hạnh phúc NHIỆM VỤ THIẾT KẾ TỐT NGHIỆP BỘ MÔN: CÔNG NGHỆ THÔNG TIN -*** - Mã sinh viên: 5951071082 Họ tên SV: VÕ PHI QN Khóa: 59 Lớp: Cơng nghệ thông tin Tên đề tài NGHIÊN CỨU VÀ ỨNG DỤNG THUẬT TOÁN ADVANCED ENCRYPTION STANDARD XÂY DỰNG APP CHAT MÃ HĨA ĐẦU CUỐI Mục đích, u cầu a Mục đích : Nghiên cứu thuật tốn advanced encryption standard, xây dựng ứng dụng chat mã hóa đầu cuối b Yêu cầu : - Yêu cầu công nghệ : • Sử dụng ngơn ngữ lập trình Dart • Sử dụng Framework Flutter • Sử dụng Android Studio để lập trình • Sử dụng Firebase làm sở liệu - Yêu cầu chức : i Võ Phi Quân - Yêu cầu phi chức : Nội dung phạm vi đề tài a Nội dung : - Tổng quan toàn yêu cầu - Khảo sát tốn - Phân tích thiết kế hệ thống theo yêu cầu - Thiết kế giao diện phù hợp - Xây dựng ứng dụng mobile chat mã hóa - Kiểm thử ứng dụng thực nghiệm b Phạm vi đề tài : - Nghiên cứu vận dụng kiến thức học kinh nghiệm tham gia phát triển ứng dụng di động - Phát triển ứng dụng phù hợp với khả bên cạnh sử dụng nhiều cơng nghệ bên ngồi trường lớp - Nghiên cứu ngôn ngữ Dart, Framework Flutter, Firebase,… số thư viện hỗ trợ liên quan Công nghệ, công cụ ngơn ngữ lập trình a Cơng nghệ : - Framework Flutter - Firebase b Công cụ : - Android Studio Code c Ngơn ngữ lập trình : ii Võ Phi Quân - Dart Các kết dự kiến đạt ứng dụng - Quyển báo cáo đề tài tốt nghiệp - Nghiên cứu thuật toán mã hóa advance encryption standard - Xây dựng app chat mã hóa đầu cuối thuật tốn advance encryption standard Giáo viên cán hướng dẫn Họ tên: ThS Phạm Thị Miên Đơn vị công tác: Bộ Môn CNTT Điện thoại: 0961170638 Ngày Email: ptmien@utc2.edu.vn tháng 07 năm 2022 Đã giao nhiệm vụ TKTN Trưởng BM Công nghệ Thông tin Giáo viên hướng dẫn ThS Trần Phong Nhã ThS Phạm Thị Miên iii Võ Phi Quân Đã nhận nhiệm vụ TKTN Sinh viên: Võ Phi Quân Ký tên: Điện thoại: 0898043575 Email: phiquan2509@gmail.com iv Võ Phi Quân LỜI CẢM ƠN Lời em xin cảm ơn Cô PHẠM THỊ MIÊN giúp đỡ hướng dẫn nhiệt tình cho em suốt thời gian em làm Báo Cáo Tốt Nghiệp Tiếp theo em xin cảm ơn quý Thầy Cô trường Đại Học Giao Thông Vận Tải phân hiệu TP.HCM giảng dạy truyền cảm hứng đến tất sinh viên em, để chúng em có thêm nhiều kiến thức, mở mang thêm cách tư duy, sáng tạo sống Em mong nhận lời khuyên, lời góp ý chân thành từ q Thầy Cơ để em tự hồn thành vốn kiến thức Với kiến thức cịn thiếu sót, kỹ cịn hạn hẹp, em dành hết thời gian tâm huyết để hồn thành Báo Cáo Tốt Nghiệp, em tránh sai lầm, em mong Thầy Cơ thơng cảm bỏ qua cho em Lời cuối em xin chúc quý Thầy Cô phân hiệu Bộ Môn Công Nghệ Thông Tin đặc biệt Cơ Phạm Thị Miên có thật nhiều niềm vui, sức khỏe thành công công việc Em xin chân thành cảm ơn! v Võ Phi Quân – K59 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Tp Hồ Chí Minh, ngày ….… tháng 07 năm 2021 Giáo viên hướng dẫn Phạm Thị Miên vi Võ Phi Quân – K59 MỤC LỤC LỜI CẢM ƠN v NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN vi MỤC LỤC vii DANH MỤC HÌNH ẢNH x DANH MỤC VIẾT TẮT xii CHƯƠNG MỞ ĐẦU 1.1 Tổng quan đề tài 1.2 Mục tiêu nghiên cứu 1.3 Phạm vi 1.4 Cấu trúc báo cáo tốt nghiệp CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu Flutter 2.1.1 Flutter ? 2.1.2 Flutter làm ? 2.2 Ngơn ngữ lập trình Flutter – Dart 2.2.1 Dart gì? 2.2.2 Tại lại chọn Dart? 2.2.3 Những ưu điểm Dart 2.3 Firebase 2.3.1 Firebase gì? 2.3.2 Cách thức hoạt động Firebase gì? 2.3.3 Ưu điểm Firebase 10 2.3.4 Nhược điểm Firebase 12 2.4 Sinh Trắc học 13 2.4.1 Sinh trắc học gì? 13 2.4.2 Các loại sinh trắc học phổ biến 13 2.4.3 Ưu điểm, nhược điểm sinh trắc học 15 2.5 Kết luận chương 15 CHƯƠNG THUẬT TOÁN MÃ HÓA ADVANCED ENCRYPTION STANDARD 16 vii Võ Phi Quân – K59 3.1 Các loại thuật tốn mã hóa liệu 16 3.1.1 Mã hóa 16 3.1.2 Thuật tốn mã hóa 16 3.1.3 Phân loại phương pháp mã hóa 16 3.1.3.1 Mã hóa cổ điển 16 3.1.3.2 Mã hóa chiều 17 3.1.3.3 Mã hóa đối xứng 18 3.1.3.4 Mã hóa bất đối xứng 19 3.2 Thuật tốn mã hóa Advance Encryption Standard (AES) 20 3.2.1 Advance Encryption Standard gì? 20 3.2.2 Các bước thực mã hóa AES 21 3.2.2.1 Chức AddRoundKey 23 3.2.2.2 Chức SubBytes 23 3.2.2.3 Chức ShiftRows 25 3.2.2.4 Chức MixColumns 26 3.2.2.5 Chức KeyExpansion 28 3.2.3 Các bước thực giải mã AES 32 3.2.3.1 Chức AddRoundKey đảo 35 3.2.3.2 Chức InvShiftRows 35 3.2.3.3 Chức InvSubBytes 36 3.2.3.4 Chức InvMixColumns 38 3.2.3.5 Chức InvKeyExpansion 44 3.3 Mã hóa hình ảnh thuật tốn advance encryption standard 46 3.3.1 Giải thuật mã hóa Base64 47 3.3.1.1 Base64 47 3.3.1.2 Chuyển đổi hình ảnh sang text 47 3.3.2 Mã hóa AES từ base64 47 3.4 Kết luận chương 48 CHƯƠNG 4: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 49 4.1 Đặc điểm cần có app chat mã hóa đầu cuối 49 4.2 Sơ đồ phân rã chức 49 viii Võ Phi Quân – K59 Hình 4.1 Sơ đồ phân rã chức 4.3 Sơ đồ sở liệu Chat mã hóa việc người dùng gửi tin nhắn với mã hóa gửi lên server cần xây dựng sở liệu tối ưu phù hợp với toán đưa Dưới sơ đồ sở liệu ứng dụng 50 Võ Phi Quân – K59 Hình 4.2 Sơ đồ erd 4.4 Sơ đồ UseCase tổng quát Hình 4.3 Sơ đồ usecase tổng quát 51 Võ Phi Quân – K59 4.4.1 UseCase đăng nhập Hình 4.4 Usecase đăng nhập 52 Võ Phi Quân – K59 4.4.2 UseCase nhắn tin Hình 4.5 UseCase nhắn tin 53 Võ Phi Quân – K59 4.5 Biểu đồ 4.5.1 Biểu đồ chức đăng nhập Hình 4.6 Biểu đồ cho chức đăng nhập 54 Võ Phi Quân – K59 4.5.2 Biểu đồ chức chat Hình 4.7 Biểu đồ gửi tin nhắn 55 Võ Phi Quân – K59 4.6 Biểu đồ hoạt động chức Hình 4.8 Biểu đồ hoạt động chức gửi tin nhắn 4.7 Kết luận chương Chương trình bày sơ đồ để thực chức xây dựng sơ đồ liệu app chat 56 Võ Phi Quân – K59 CHƯƠNG 5: GIAO DIỆN ỨNG DỤNG 5.1 Giao diện đăng nhập Sau cài đặt ứng dụng thành công hình mở ứng dụng Cho phép người dùng lựa chọn tài khoản Email đăng nhập Hình 5.1 Màn hình chờ 57 Võ Phi Quân – K59 Hình 5.2 Màn hình đăng nhập 5.2 Giao diện xác thực sinh trắc đăng nhập trước Khi người dùng bật chế độ xác thực sinh trắc lên vào app người dùng phải xác thực vân tay, khuôn mặt mã pin 58 Võ Phi Quân – K59 Hình 5.3 Mà hình xác thực sinh trắc 5.3 Giao diện trang chủ 59 Võ Phi Quân – K59 Hình 5.4 Màn hình trang chủ 60 Võ Phi Quân – K59 Hình 5.5 Giao diện chat 61 Võ Phi Quân – K59 KẾT LUẬN VÀ KIẾN NGHỊ Kết đạt được: Trong suốt khoảng thời gian nghiên cứu thực đề tài, em cố gắng làm hết khả thời gian làm đồ án có hạn nên kết đạt nhiều hạn chế em học hỏi nhiều kiến thức mẻ chun sâu thuật tốn, lập trình việc em đạt sau: • Trình bày kiến thức cơng nghệ, ngôn ngữ, công cụ hỗ trợ xây dựng trang app • Phân tích, thiết kế giải vấn đề q trình xây dựng • Nghiên cứu thuật toán advance encryption standard xây dựng ứng dụng chat mã hóa đầu cuối Tồn Trong trình làm đồ án, hiển nhiên có lỗi chưa khắc phục hoàn toàn với thời gian có hạn nên có chức chưa hồn thiện: • Giao diện chương trình cịn sơ xài • Các chức cịn chưa thực hồn thiện • Số lượng chức cịn Hướng phát triển Cần cải thiện giao diện cho thân thiện với người dùng Cần xây dựng thêm chức chat nhóm để phục vụ nhu cầu giao tiếp ngày rộng rãi người Vì thời gian có hạn trình chạy demo phát sinh số lỗi khách quan, cần phải chạy thực nghiệm thật nhiều để tìm lỗi giúp cho việc trải nghiệm người dùng tốt 62 Võ Phi Quân – K59 PHỤ LỤC Hướng dẫn cài đặt • Download file apk : app-release.apk • Cài đặt file apk • Đăng nhập tài khoản Google 63 Võ Phi Quân – K59 TÀI LIỆU THAM KHẢO [1] M Clow, "Tìm hiểu Flutter," in Learn Google Flutter Fast: 65 Example Apps, 2019 [2] C Buckett, "Tìm hiểu ngôn ngữ Dart," in Dart in action, 2013 [3] Federal Information, Processing Standards Publication 197; ADVANCED ENCRYPTION STANDARD (AES), November 26, 2001 [4] T.V.Dev,"Tìm hiểu Shared-preferences," 2021 https://teamvietdev.com/shared-preferences-trong-android/ [Truy cập 30 tháng 2022] [5] S Biswas, "Tìm hiểu local_auth", 2020 https://pub.dev/packages/local_auth [Truy cập 30 tháng 2022] [6] Tran Le Khuyen, “Vận dụng base64 Image tạo file ảnh có dung lượng mong muốn”, 2015 https://viblo.asia/p/van-dung-base64-image-tao-file-anh-codung-luong-mong-muon-3KbvZ1azGmWB [Truy cập tháng ] 64 Võ Phi Quân – K59