Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh chuyển đổi số và phát triển mạnh mẽ của công nghệ thông tin, việc bảo vệ an toàn cho dữ liệu trong quá trình lưu trữ và truyền tải trở thành yêu cầu thiết yếu đối với mọi cơ quan, tổ chức và cá nhân. Tại Việt Nam, tình hình an toàn thông tin mạng diễn biến ngày càng phức tạp với sự gia tăng về quy mô, số lượng và mức độ tinh vi của các cuộc tấn công mạng. Đặc biệt, các cuộc tấn công có chủ đích sử dụng mã độc APT (Advanced Persistent Threat) nhằm vào hệ thống thông tin của các doanh nghiệp và tổ chức lớn gây ra nhiều thiệt hại nghiêm trọng về tài sản và uy tín. Bên cạnh đó, các cuộc tấn công từ chối dịch vụ (DDoS), tấn công trung gian (Man-in-the-Middle) và hành vi đánh cắp dữ liệu đòi hỏi các giải pháp bảo vệ mang tính nền tảng, trong đó mã hóa dữ liệu là phương thức trọng yếu giúp dữ liệu trở nên vô giá trị đối với kẻ tấn công nếu không có khóa giải mã.

Xuất phát từ thực tiễn trên, đề tài "Phần mềm mã hóa văn bản tiếng Việt" được nhóm sinh viên Khoa Công nghệ Thông tin, Trường Đại học Ngoại ngữ - Tin học Thành phố Hồ Chí Minh (HUFLIT) thực hiện trong khuôn khổ học phần Bảo mật hệ thống thông tin (Học kỳ I, năm học 2023–2024), dưới sự hướng dẫn của ThS. Phạm Đức Thành.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài bao gồm:

  1. Hệ thống hóa các kiến thức cơ bản về an toàn, bảo mật hệ thống thông tin và các nguyên lý mật mã học từ cổ điển đến hiện đại.
  2. Khảo sát các công cụ, ứng dụng mã hóa và giải mã văn bản hiện có trên môi trường web và phần mềm tiện ích.
  3. Phân tích, thiết kế và xây dựng một phần mềm mã hóa và giải mã dữ liệu hỗ trợ ký tự tiếng Việt và các ký tự đặc biệt trên nền tảng desktop.
  4. Hiện thực hóa các thuật toán mã hóa cổ điển (thay thế, chuyển vị, XOR) và hiện đại (DES, SDES, AES, RSA), kết hợp chức năng xử lý tệp (đọc và lưu file).

Đối tượng nghiên cứu của đề tài là các thuật toán mật mã học và cơ chế xử lý văn bản tiếng Việt (bộ ký tự Unicode và bảng mã Character Map). Phạm vi nghiên cứu tập trung vào việc cài đặt, mô phỏng và xây dựng giao diện tương tác cho các giải thuật mật mã bằng ngôn ngữ Python, phục vụ mục đích học tập và nghiên cứu trong khuôn khổ môn học tại trường đại học.


Cơ sở lý thuyết và phương pháp

Cơ sở lý thuyết về hệ thống thông tin và an toàn thông tin

Tài liệu xây dựng nền tảng nghiên cứu dựa trên các khái niệm chuẩn mực về hệ thống thông tin (HTTT) và an toàn thông tin (ATTT):

  • Thành phần của HTTT: Bao gồm 5 yếu tố cấu thành chính là phần cứng máy tính, phần mềm máy tính (phần mềm hệ thống và phần mềm ứng dụng), hệ thống viễn thông, cơ sở dữ liệu/kho dữ liệu, cùng nhân sự và quy trình thủ tục vận hành.
  • Mục tiêu và nguyên tắc bảo mật: Hệ thống an toàn phải đảm bảo 4 yếu tố cốt lõi: Tính bí mật (Confidentiality), Tính toàn vẹn (Integrity), Tính chính xác và Tính sẵn sàng (Availability). Các nguyên tắc triển khai gồm: nguyên tắc tam giác bảo mật, bảo vệ theo lớp (defense-in-depth) và bảo vệ theo tiến trình xử lý thông tin (từ thu thập, xử lý, lưu trữ đến truyền tải).
  • Biện pháp bảo đảm an toàn: Phân chia thành 3 nhóm biện pháp: vật lý (tường lửa vật lý, khóa, cảm biến), kỹ thuật (mã hóa dữ liệu đối xứng/bất đối xứng, hàm băm, chữ ký số, tường lửa, phần mềm diệt virus, IDS, VPN) và quản lý (chính sách bảo mật, quản lý tài khoản, đào tạo nhận thức nhân viên, kế hoạch phản hồi sự cố).
  • Chuẩn bảo mật và khung pháp lý: Tài liệu tham chiếu các chuẩn bảo mật quốc tế và quốc gia như ISO 27001, PCI DSS, HIPAA, FIPS 140; cùng các quy định pháp luật liên quan đến bảo vệ dữ liệu y tế, tài chính và ngân hàng (HIPAA, SOX, GLBA).

Phương pháp nghiên cứu và nguồn dữ liệu

  • Phương pháp tổng hợp và phân tích lý thuyết: Nghiên cứu cấu trúc toán học và quy trình thực hiện của từng thuật toán mật mã đối xứng và bất đối xứng.
  • Phương pháp khảo sát ứng dụng thực tế: Nhóm tác giả tiến hành khảo sát chức năng và giao diện của 4 công cụ mã hóa/giải mã tiêu biểu:
    1. Web mã hóa CrypTool (Crytil): Cung cấp khả năng chọn quy luật, nhập liệu, mã hóa/giải mã và hiển thị kết quả.
    2. Web mã hóa Rumkin: Hỗ trợ tùy biến theo bảng chữ cái/ngôn ngữ, chọn khóa và xem mẫu trực quan.
    3. Web mã hóa Encode/Decode: Giao diện trực tuyến cho phép mã hóa/giải mã chuỗi ký tự theo nhiều thuật toán.
    4. Google Admin Toolbox: Tiện ích hỗ trợ mã hóa, chuyển đổi định dạng và kiểm tra dữ liệu.
  • Phương pháp phân tích và thiết kế phần mềm: Xây dựng sơ đồ chức năng (Functional Diagram), sơ đồ trường hợp sử dụng (Use Case Diagram), thiết kế khung giao diện (Wireframe) và mô hình hóa theo kiến trúc Model-View-Controller (MVC).
  • Nguồn dữ liệu thực nghiệm: Các tập văn bản tiếng Việt có dấu, chuỗi ký tự đặc biệt thuộc bảng mã Unicode / Character Map và các tệp văn bản mẫu phục vụ kiểm thử tính năng đọc/ghi file.

Thiết kế và triển khai hệ thống phần mềm

Kiến trúc phần mềm và công nghệ phát triển

Hệ thống được xây dựng theo mô hình kiến trúc MVC (Model-View-Controller) nhằm tách biệt logic dữ liệu, giao diện người dùng và các luồng điều khiển xử lý thuật toán:

  • Data (Model): Đại diện cho dữ liệu văn bản, tệp tin và logic cấu trúc dữ liệu cần biến đổi.
  • View (Giao diện): Chứa các tệp giao diện hiển thị được thiết kế qua PyQt6 Designer. Thư mục View được tổ chức thành các thư mục con chuyên biệt:
    • Icon: Lưu trữ các tệp biểu tượng chức năng.
    • Image: Lưu trữ các tệp hình ảnh đồ họa của ứng dụng.
  • Controller (Bộ điều khiển): Lưu trữ các mô-đun Python đảm nhận việc tiếp nhận sự kiện từ giao diện, gọi hàm thực thi thuật toán mã hóa/giải mã tương ứng và trả kết quả về màn hình hiển thị.

Về công nghệ triển khai, ứng dụng sử dụng ngôn ngữ lập trình Python (phiên bản Python 3.12), kết hợp thư viện đồ họa PyQt6 và công cụ Qt Designer để xây dựng giao diện người dùng trực quan, trên môi trường lập trình Visual Studio Code.

Quy trình mã hóa và giải mã khóa đối xứng

Quy trình trao đổi thông tin bảo mật theo mô hình khóa đối xứng được xác định qua 6 bước:

  1. Bước 1: Người gửi nhập dữ liệu/văn bản cần mã hóa.
  2. Bước 2: Nhập mật khẩu / khóa bí mật tương ứng.
  3. Bước 3: Sử dụng giải thuật mã hóa đã chọn để chuyển bản rõ thành bản mã $Y = E_K(X)$.
  4. Bước 4: Truyền bản mã đến người nhận qua kênh liên lạc.
  5. Bước 5: Khóa bí mật dùng chung được chia sẻ an toàn qua một kênh riêng biệt.
  6. Bước 6: Người nhận sử dụng khóa bí mật và giải thuật giải mã tương ứng để khôi phục lại văn bản gốc $X = D_K(Y)$.
Nhóm kỹ thuật mật mã Các thuật toán được hiện thực hóa Dạng khóa / Tham số đầu vào
Kỹ thuật thay thế Caesar, Belasco, Trithemius, Vigenère Số nguyên dịch chuyển (Caesar), Chuỗi ký tự khóa (Belasco, Vigenère), Quy luật tịnh tiến (Trithemius)
Kỹ thuật chuyển vị Chuyển vị 2 dòng (HaiDong), Chuyển vị nhiều dòng (NhieuDong) Ma trận hoán vị, Số lượng phần tử của khóa
Kỹ thuật kết hợp XOR XOR Caesar, XOR Belasco, XOR Trithemius, XOR Vigenère Phép toán XOR trên mã bit/ký tự kết hợp khóa số hoặc chuỗi
Mật mã hiện đại SDES (Simplified DES), DES, AES, RSA Khóa đối xứng khối (SDES, DES, AES), Cặp khóa công khai/bí mật (RSA)

Nội dung chính theo từng chương

Chương I: Giới thiệu đề tài

Chương mở đầu phân tích tính cấp thiết của an toàn thông tin trong bối cảnh các cuộc tấn công mạng, mối đe dọa APT và tội phạm công nghệ cao tại Việt Nam ngày càng gia tăng. Tác giả trình bày 4 lý do chính khi lựa chọn đề tài: nâng cao hiểu biết về mật mã học, đáp ứng yêu cầu chuẩn mực bảo mật trong các ngành trọng yếu (ngân hàng, y tế, chính phủ), bảo vệ quyền riêng tư người dùng và ngăn chặn tấn công mạng (đánh cắp dữ liệu, Man-in-the-Middle). Chương I cũng tiến hành khảo sát 4 công cụ mã hóa thực tế, mô tả mô hình quy trình mã hóa đối xứng 6 bước, vạch rõ danh mục chức năng dự kiến (mã hóa cổ điển, hiện đại, hàm băm, xử lý file) và xác định phạm vi xử lý trên văn bản tiếng Việt Unicode bằng Python và Qt Designer.

Chương II: Cơ sở lý thuyết

Nội dung chương II tập trung hệ thống hóa nền tảng lý thuyết bảo mật hệ thống thông tin theo chuẩn đầu ra học phần (CLO1):

  • Khái niệm, 5 thành phần cốt lõi, 5 chức năng chính và cách phân loại hệ thống thông tin theo lĩnh vực (kinh doanh, giáo dục, y tế, chính phủ), theo mức độ tích hợp và quy mô.
  • Bản chất của an toàn thông tin, 4 yếu tố không thể tách rời (bí mật, toàn vẹn, chính xác, sẵn sàng), 3 nguyên tắc bảo vệ và 3 nhóm biện pháp (vật lý, kỹ thuật, quản lý).
  • Tổng quan về các cơ chế xác thực, ủy quyền, tường lửa, IDS, VPN, phần mềm chống virus, các chuẩn bảo mật (ISO 27001, PCI DSS, HIPAA, FIPS 140) và quy định pháp lý.
  • Giới thiệu các đặc điểm kỹ thuật của ngôn ngữ lập trình Python (cú pháp đơn giản, hướng đối tượng, đa nền tảng, hệ sinh thái phong phú) cùng công cụ thiết kế giao diện PyQt6 Designer.

Chương III: Phân tích và thiết kế

Chương III trình bày quá trình mô hình hóa hệ thống phần mềm:

  • Sơ đồ phân rã chức năng: Hệ thống chia thành các nhánh chính gồm Đăng nhập, Đăng ký, Quản lý tài khoản, Phân hệ Mã hóa và Phân hệ Giải mã với các nhóm giải thuật thay thế, chuyển vị, XOR và hiện đại.
  • Sơ đồ trường hợp sử dụng (Use Case): Mô tả tương tác giữa người dùng với các chức năng hệ thống.
  • Thiết kế Wireframe giao diện: Chi tiết hóa cấu trúc các màn hình Đăng nhập (UserName, PassWord, nút Login/Cancel), màn hình Đăng ký (UserName, PassWord, xác nhận lại mật khẩu), màn hình Trang chủ (menu điều hướng, thông tin nhóm tác giả, chọn phương pháp) và màn hình Khung xử lý chung (khu vực nội dung gốc, nội dung sau xử lý, ô nhập key, các nút Mở file, Xử lý, Lưu file).
  • Thiết kế xử lý kiến trúc: Xác lập cấu trúc MVC với phân định rõ ranh giới giữa tầng lưu trữ dữ liệu, tầng giao diện (View với thư mục con Icon, Image) và tầng xử lý giải thuật (Controller).

Chương IV: Kết luận (Kết quả đạt được)

Chương IV trình bày chi tiết kết quả xây dựng ứng dụng với giao diện thực tế và quy trình vận hành:

  • Màn hình chính và Quản lý tài khoản: Giao diện hiển thị thông tin môn học, nhóm thực hiện và GVHD. Chức năng đăng ký/đăng nhập kiểm tra tính hợp lệ và khớp mật khẩu trước khi cấp quyền truy cập.
  • Phân hệ giao diện Mã hóa (12 giao diện cụ thể):
    • Mã hóa AES & RSA: Hỗ trợ mở tệp hoặc nhập văn bản trực tiếp, tiến hành mã hóa dữ liệu văn bản tiếng Việt và lưu kết quả ra tệp mới.
    • Mã hóa Belasco, Vigenère, SDES, XOR Belasco, XOR Vigenère: Tiếp nhận khóa là chuỗi ký tự, thực hiện biến đổi dữ liệu bản rõ theo thuật toán và hỗ trợ xuất file.
    • Mã hóa Caesar & XOR Caesar: Tiếp nhận khóa là giá trị số nguyên dịch chuyển.
    • Mã hóa Chuyển vị Hai Dòng & Chuyển vị Nhiều Dòng: Thực hiện hoán vị vị trí ký tự theo cấu trúc dòng và độ dài mảng phần tử khóa.
    • Mã hóa Trithemius & XOR Trithemius: Mã hóa tự động theo quy tắc dịch chuyển tịnh tiến không cần nhập khóa ngoài.
  • Phân hệ giao diện Giải mã (12 giao diện cụ thể): Cung cấp các thao tác tương ứng cho từng thuật toán (mở file mã hóa, nhập đúng khóa bí mật/chọn khóa, kích hoạt nút "Giải mã" và lưu văn bản gốc sau khi khôi phục).
  • Hạn chế và Định hướng phát triển: Đánh giá các điểm chưa hoàn thiện về giao diện, số lượng thuật toán hiện đại và đề xuất phương hướng nâng cấp hệ thống.

Kết quả và đóng góp

Kết quả chính của đề tài

  1. Xây dựng thành công ứng dụng mã hóa đa năng: Đồ án đã hiện thực hóa một phần mềm giao diện đồ họa hoàn chỉnh trên nền tảng desktop bằng Python và PyQt6, có khả năng xử lý tốt văn bản tiếng Việt có dấu và các ký tự đặc biệt theo bảng mã Unicode.
  2. Triển khai đồng bộ 12 thuật toán và biến thể mật mã:
    • Nhóm cổ điển thay thế: Caesar, Belasco, Trithemius, Vigenère.
    • Nhóm chuyển vị: Chuyển vị 2 dòng, Chuyển vị nhiều dòng.
    • Nhóm kết hợp phép toán XOR: XOR Caesar, XOR Belasco, XOR Trithemius, XOR Vigenère.
    • Nhóm mật mã hiện đại: SDES, DES, AES và RSA.
  3. Tích hợp tiện ích tệp tin: Tất cả các màn hình xử lý đều tích hợp tính năng đọc dữ liệu từ tệp đầu vào (Mở file) và xuất bản mã/bản giải mã ra tệp tin (Lưu file), nâng cao tính tiện dụng khi làm việc với các khối văn bản dài.
  4. Kiến trúc hệ thống chuẩn hóa: Ứng dụng áp dụng mô hình MVC, giúp phân tách rõ ràng giữa giao diện hiển thị (View), xử lý sự kiện/giải thuật (Controller) và dữ liệu (Data), tạo điều kiện thuận lợi cho việc bảo trì mã nguồn.

Đóng góp thực tiễn

Đề tài cung cấp một sản phẩm phần mềm mang tính trực quan hóa cao, phục vụ hiệu quả cho việc học tập, thực hành và nghiên cứu môn học Bảo mật hệ thống thông tin. Phần mềm giúp người học dễ dàng đối chiếu, so sánh cơ chế hoạt động, sự biến đổi dữ liệu giữa các phương pháp mật mã cổ điển và hiện đại trên cùng một nền tảng thống nhất.


Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đề tài

Theo tự đánh giá của nhóm tác giả trong văn bản, đồ án vẫn còn một số điểm tồn tại:

  • Giao diện người dùng (UI/UX) ở một số phân hệ chưa được tối ưu hóa đồng bộ và thẩm mỹ cao.
  • Chưa khai thác và cài đặt đầy đủ một số thuật toán mã hóa hiện đại phổ biến khác như TripleDES (3DES), Twofish.

Hướng phát triển tiếp theo

Nhóm tác giả đề xuất 5 định hướng nâng cấp trong tương lai:

  1. Tối ưu hóa hiệu năng tính toán của các thuật toán mã hóa, tăng tốc độ xử lý khi làm việc với các tập dữ liệu văn bản và tệp tin có dung lượng lớn.
  2. Bổ sung tính năng lưu trữ dữ liệu sau khi mã hóa trực tiếp lên nền tảng đám mây (Cloud storage).
  3. Mở rộng và tích hợp thêm các giải thuật mật mã hiện đại và các hàm băm bảo mật cao (TripleDES, Twofish, SHA-256, SHA-3).
  4. Tinh chỉnh thiết kế giao diện đồ họa nhằm nâng cao trải nghiệm người dùng, đảm bảo tính thân thiện và hiện đại.
  5. Phát triển đồng bộ hệ thống quản lý tài khoản người dùng gắn liền với hạ tầng lưu trữ đám mây để đồng bộ hóa các tệp tin đã mã hóa.

Giá trị tham khảo

Tài liệu báo cáo đồ án có giá trị tham khảo thiết thực cho các đối tượng sau:

  • Sinh viên ngành Công nghệ Thông tin và An toàn Thông tin: Tài liệu cung cấp ví dụ thực tế về cách chuyển đổi các giải thuật mật mã lý thuyết (từ các hệ mã cổ điển như Caesar, Vigenère đến hiện đại như DES, RSA, AES) thành chương trình ứng dụng cụ thể xử lý chuỗi tiếng Việt Unicode.
  • Người học lập trình Python GUI: Phần phân tích thiết kế, bố cục thư mục MVC và cách thức liên kết giữa các tệp thiết kế Qt Designer (.ui) với logic xử lý trong Python cung cấp kinh nghiệm triển khai phần mềm trực quan.
  • Tài liệu học liệu môn học: Là mẫu báo cáo đồ án kết thúc học phần hoàn chỉnh về cấu trúc, bao gồm khảo sát, phân tích nghiệp vụ, đặc tả Use Case, thiết kế Wireframe và hướng dẫn sử dụng chi tiết từng màn hình chức năng.

Câu hỏi thường gặp

1. Phần mềm được xây dựng bằng ngôn ngữ và công nghệ gì?
Phần mềm được phát triển bằng ngôn ngữ lập trình Python (phiên bản Python 3.12), sử dụng thư viện PyQt6 kết hợp công cụ Qt Designer để xây dựng giao diện đồ họa trên môi trường phát triển Visual Studio Code.

2. Ứng dụng giải quyết được vấn đề xử lý ký tự nào trong văn bản?
Ứng dụng thực hiện mã hóa và giải mã chính xác cho các ký tự tiếng Việt có dấu và các ký tự đặc biệt nằm trong bộ mã Unicode / Character Map.

3. Danh mục các thuật toán mật mã được cài đặt trong phần mềm gồm những gì?
Hệ thống cài đặt 12 thuật toán và biến thể, bao gồm: nhóm thay thế (Caesar, Belasco, Trithemius, Vigenère); nhóm chuyển vị (Hai dòng, Nhiều dòng); nhóm XOR (XOR Caesar, XOR Belasco, XOR Trithemius, XOR Vigenère); và nhóm hiện đại (SDES, DES, AES, RSA).

4. Cấu trúc mã nguồn của phần mềm được tổ chức theo mô hình kiến trúc nào?
Phần mềm được thiết kế theo mô hình MVC (Model-View-Controller). Trong đó, tầng View lưu trữ các file giao diện và chia thành hai thư mục con là Icon (chứa tệp icon) và Image (chứa tệp hình ảnh); tầng Controller lưu trữ các file xử lý logic giải thuật; và tầng Data quản lý cấu trúc dữ liệu.

5. Điểm hạn chế chính được nhóm tác giả tự xác định trong đồ án là gì?
Hai hạn chế chính được ghi nhận là giao diện người dùng chưa được tối ưu hóa toàn diện và hệ thống chưa khai thác hết một số thuật toán mã hóa hiện đại như TripleDES hay Twofish.


Kết luận

Báo cáo học phần "Phần mềm mã hóa văn bản tiếng Việt" của nhóm sinh viên Trường Đại học Ngoại ngữ - Tin học TP.HCM đã hoàn thành trọn vẹn mục tiêu nghiên cứu và hiện thực hóa phần mềm bảo mật thông tin. Ứng dụng triển khai thành công 12 thuật toán mật mã cổ điển và hiện đại trên nền tảng Python/PyQt6, đáp ứng yêu cầu xử lý dữ liệu văn bản tiếng Việt có dấu. Kết quả đồ án thể hiện rõ năng lực phân tích thiết kế hệ thống theo mô hình MVC, cung cấp tài liệu tham khảo có giá trị ứng dụng thực hành cao cho sinh viên khối ngành công nghệ thông tin.