Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số toàn diện, việc số hóa các giao dịch dân sự, thương mại và hành chính công là xu thế tất yếu. Theo các báo cáo an ninh mạng quốc tế, hơn 80% các cuộc tấn công dữ liệu trong giao dịch trực tuyến bắt nguồn từ việc giả mạo danh tính và can thiệp trái phép vào nội dung dữ liệu trên đường truyền. Tại Việt Nam, căn cứ pháp lý theo Khoản 6 Điều 3 Nghị định 130/2018/NĐ-CP của Chính phủ đã khẳng định rõ ràng vai trò tối thượng của chữ ký số trong việc xác lập giá trị pháp lý tương đương với chữ ký tay và con dấu doanh nghiệp trên môi trường điện tử.

Đề tài "Ứng dụng Hệ mật mã RSA trong chữ ký điện tử" do sinh viên Phạm Nhật Hoàng thực hiện dưới sự hướng dẫn khoa học của TS. Hồ Văn Canh tại Trường Đại học Quản lý và Công nghệ Hải Phòng (HPU - 2023) tập trung giải quyết triệt để bài toán xác thực nguồn gốc, chống chối bỏ và bảo đảm tính toàn vẹn của văn bản số.

+-----------------------------------------------------------------------------+
|                      MÔ HÌNH BẢO MẬT GIAO DỊCH SỐ TỔNG THỂ                  |
+-----------------------------------------------------------------------------+
|  [Văn bản gốc (Message)]                                                    |
|         │                                                                   |
|         ▼                                                                   |
|  [Hàm băm an toàn SHA-1] ───► [Message Digest (160-bit)]                    |
|                                       │                                     |
|                                       ▼                                     |
|  [Khóa bí mật RSA (d, n)] ──► [Thuật toán mã hóa RSA]                       |
|                                       │                                     |
|                                       ▼                                     |
|                              [Chữ ký số (Signature)]                        |
|                                       │                                     |
|                                       ▼                                     |
|                     [Gói dữ liệu: Văn bản gốc + Chữ ký]                     |
+-----------------------------------------------------------------------------+

Vấn đề thực tiễn (Problem Statement)

Các giao dịch truyền thống dựa trên giấy tờ bộc lộ nhiều điểm nghẽn nghiêm trọng:

  • Dễ dàng bị làm giả chữ ký tay và con dấu với độ tinh vi ngày càng cao.
  • Chi phí in ấn, lưu kho, vận chuyển hồ sơ chiếm từ 3-5% tổng chi phí vận hành doanh nghiệp.
  • Thời gian xử lý, ký duyệt kéo dài nhiều ngày làm chậm luồng công việc.
  • Dữ liệu số truyền tải qua các kênh mạng công cộng (Public Internet) thường xuyên đối mặt với rủi ro bị tấn công trung gian (Man-In-The-Middle - MITM), chỉnh sửa trái phép (Tampering) mà các bên tham gia không thể phát hiện kịp thời.

Mục tiêu của đồ án

  1. Nghiên cứu lý thuyết nền tảng: Phân tích cấu trúc toán học của hệ mật mã bất đối xứng RSA, nguyên lý hàm băm mật mã và các phương pháp tấn công kinh điển vào RSA.
  2. Thiết kế mô hình xác thực số: Xây dựng quy trình khép kín từ khâu sinh cặp khóa (Key Generation), tạo chữ ký (Signing) đến kiểm định chữ ký (Verification).
  3. Phát triển phần mềm ứng dụng: Hiện thực hóa chương trình thực nghiệm trên nền tảng .NET/C# với giao diện trực quan, hỗ trợ ký và xác thực toàn vẹn các định dạng tệp tin tùy chọn.
  4. Đánh giá và tối ưu an toàn: Phân tích các lỗ hổng thực tế như ROCA (CVE-2017-15361), Fermat Attack, Small Exponent Attack và đề xuất cấu hình tham số an toàn tối thiểu từ 2048-bit.

Giải pháp kỹ thuật và kết quả kỳ vọng

Giải pháp kết hợp thuật toán mã hóa khóa công khai RSA (Rivest – Shamir – Adleman) với thuật toán hàm băm an toàn SHA-1 (Secure Hash Algorithm 1). Thay vì mã hóa toàn bộ tệp tin dung lượng lớn gây quá tải tính toán, hệ thống chỉ tính toán chuỗi đại diện (Message Digest) có độ dài cố định 160-bit để mã hóa với khóa riêng (Private Key). Kết quả đạt được là một giải pháp độc lập, trực quan, đảm bảo tính toàn vẹn 100% với tốc độ xử lý tức thì trên các tệp văn bản số.


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Trong lịch sử mật mã học, các phương pháp cổ điển (Caesar, Affine, Vigenère, Hill, hoán vị) và mã hóa khối đối xứng (DES - Data Encryption Standard) bộc lộ hạn chế chí mạng: bài toán phân phối khóa. Nếu khóa bí mật bị lộ trên đường truyền, toàn bộ hệ thống sẽ sụp đổ.

Tiêu chí Chữ ký viết tay Hệ mật đối xứng (DES/AES) Chữ ký số RSA + Hash
Cơ chế xác thực Trực quan (mắt thường) Khóa chia sẻ bí mật chung Cặp khóa bất đối xứng (Public/Private)
Tính toàn vẹn dữ liệu Kém (dễ tẩy xóa, sửa chữa) Có (dùng kèm MAC) Tuyệt đối (phát hiện sửa đổi cấp độ 1-bit)
Tính chống chối bỏ Trung bình (cần giám định) Không (do 2 bên cùng giữ 1 khóa) Tuyệt đối (chỉ người giữ Private Key ký được)
Tốc độ xử lý Chậm (thủ công) Rất nhanh Tối ưu hóa cao khi kết hợp hàm băm
Khả năng tự động hóa Không thể Khó phân quyền Hoàn hảo cho hệ thống tự động

Phân loại yêu cầu theo mô hình MoSCoW:

  • Must Have (Bắt buộc): Tạo cặp khóa RSA với các độ dài tiêu chuẩn (512, 1024, 2048, 4096-bit); Xuất/nhập cấu trúc khóa định dạng XML; Tính giá trị băm SHA-1; Ký tệp tin và lưu chữ ký; Xác thực tính toàn vẹn và thông báo trạng thái.
  • Should Have (Nên có): Hiển thị chi tiết các tham số toán học của khóa (Modulus $N$, Public Exponent $E$, Private Exponent $D$); Giao diện phân tách 4 khối chức năng rõ ràng.
  • Could Have (Có thể có): Mở rộng hỗ trợ thuật toán SHA-256, SHA-512; Hỗ trợ lưu trữ khóa an toàn chuẩn PKCS#12.
  • Won't Have (Chưa thực hiện): Tích hợp chứng thực số PKI/X.509 công cộng; Tích hợp thiết bị phần cứng ký số chuyên dụng (USB Token / HSM).
+-----------------------------------------------------------------------------+
|                     SƠ ĐỒ PHÂN TÍCH KHÔNG GIAN ĐE DỌA (THREAT MODEL)        |
+-----------------------------------------------------------------------------+
|  [Kẻ tấn công (Attacker)]                                                   |
|         │                                                                   |
|         ├───► [Tấn công Fermat] ────────► Khai thác |p - q| < n^(1/4)       |
|         │                                                                   |
|         ├───► [Tấn công Hastad] ────────► Khai thác số mũ nhỏ e = 3         |
|         │                                                                   |
|         ├───► [Tấn công ROCA] ──────────► Lỗ hổng sinh khóa TPM (CVE-2017)  |
|         │                                                                   |
|         └───► [Tấn công Phân tích Modulus] ──► n < 512-bit bị bẻ bởi CSDL   |
|                                                như FactorDB, Alpertron      |
+-----------------------------------------------------------------------------+

Thiết kế hệ thống

Kiến trúc phần mềm được phân chia thành 4 phân hệ (khối chức năng) vận hành độc lập nhưng tích hợp chặt chẽ theo luồng dữ liệu một chiều:

graph TD
    subgraph "Khối Quản Lý Khóa"
        A[Sinh cặp khóa RSA] -->|512 / 1024 / 2048 / 4096 bits| B[Xuất file cấu trúc XML]
        B --> C[Hiển thị thông số: Modulus N, Exponent E, Exponent D]
    end

    subgraph "Khối Ký Số (Bên Gửi)"
        D[Tệp tin dữ liệu gốc] --> E[Tính giá trị Hash SHA-1: MD1]
        E --> F[Mã hóa MD1 bằng Private Key: S = MD1^d mod n]
        F --> G[Tạo gói tệp tin kèm chữ ký]
    end

    subgraph "Khối Thẩm Định (Bên Nhận)"
        G --> H[Tách tệp tin gốc và Chữ ký số S]
        H --> I[Tính lại Hash tệp tin gốc: MD1]
        H --> J[Giải mã Chữ ký S bằng Public Key: MD2 = S^e mod n]
        I --> K{So sánh MD1 == MD2}
        J --> K
        K -->|Khớp| L[Thông báo: Chữ ký hợp lệ - Dữ liệu toàn vẹn]
        K -->|Sai khác| M[Cảnh báo: Dữ liệu đã bị giả mạo hoặc thay đổi]
    end

Công nghệ và Thư viện triển khai:

  • Ngôn ngữ phát triển: C# (.NET Framework 4.8 / Windows Forms).
  • Thư viện mật mã: System.Security.Cryptography (RSACryptoServiceProvider, SHA1CryptoServiceProvider).
  • Cấu trúc dữ liệu khóa: RSAParameters tuần tự hóa dạng XML (chuẩn W3C XML-Signature).
  • Môi trường thử nghiệm: Windows 10/11 x64, Visual Studio IDE.

Phương pháp nghiên cứu và quản lý dự án (Methodology)

Dự án được triển khai theo mô hình phát triển phần mềm lặp (Iterative Waterfall) với tiến trình kiểm soát rủi ro nghiêm ngặt:

+-----------------------------------------------------------------------------+
|                          TIẾN ĐỘ THỰC HIỆN DỰ ÁN (12 TUẦN)                  |
+-----------------------------------------------------------------------------+
|  Tuần 01-03: Nghiên cứu lý thuyết Mật mã học & Nghị định 130/2018/NĐ-CP     |
|  Tuần 04-06: Thiết kế thuật toán RSA, Phân tích lỗ hổng (ROCA, Fermat, e=3) |
|  Tuần 07-09: Lập trình 4 phân hệ (KeyGen, KeyInfo, Sign, Verify) trên C#   |
|  Tuần 10-11: Kiểm thử chức năng, đo đạc hiệu năng & Đánh giá bảo mật        |
|  Tuần 12   : Hoàn thiện báo cáo đồ án tốt nghiệp và đóng gói sản phẩm       |
+-----------------------------------------------------------------------------+

Implementation và kết quả

Quy trình phát triển và Thuật toán cốt lõi

1. Cơ sở toán học của thuật toán RSA

  • Tạo khóa:

    1. Chọn hai số nguyên tố lớn ngẫu nhiên $p$ và $q$ ($p \neq q$).
    2. Tính Modulus: $n = p \times q$.
    3. Tính giá trị hàm phi Euler: $\phi(n) = (p - 1)(q - 1)$.
    4. Chọn số mũ công khai $e$ thỏa mãn: $1 < e < \phi(n)$ và $\gcd(e, \phi(n)) = 1$ (thông thường chọn $e = 65537 = 2^{16} + 1$ hoặc $e = 3, 17$).
    5. Tính số mũ giải mã $d$ là nghịch đảo modulo của $e$: $d \equiv e^{-1} \pmod{\phi(n)} \iff d \times e \equiv 1 \pmod{\phi(n)}$.
    • Khóa công khai (Public Key): $K_U = {e, n}$.
    • Khóa bí mật (Private Key): $K_R = {d, n}$ (hoặc đầy đủ ${p, q, d, \phi(n)}$).
  • Thuật toán Ký số (Signing): $$\text{Message Digest: } M_D = \text{SHA-1}(M)$$ $$\text{Chữ ký số: } S = (M_D)^d \pmod n$$

  • Thuật toán Xác thực (Verification): $$\text{Tính lại băm: } M_{D1} = \text{SHA-1}(M')$$ $$\text{Giải mã chữ ký: } M_{D2} = S^e \pmod n$$ $$\text{Kiểm tra: } M_{D1} \stackrel{?}{=} M_{D2}$$

2. Hiện thực hóa mã nguồn (C# / .NET)

Đoạn mã sinh khóa RSA và trích xuất cấu trúc XML:

using System;
using System.IO;
using System.Security.Cryptography;

public class RSAKeyManager
{
    public static void GenerateAndSaveKeys(int keySize, string publicKeyPath, string privateKeyPath)
    {
        // Khởi tạo đối tượng RSA CSP với kích thước khóa tùy chọn: 512, 1024, 2048, 4096 bits
        using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(keySize))
        {
            try
            {
                // Xuất khóa công khai dưới định dạng XML (chỉ chứa Modulus và Exponent)
                string publicKeyXml = rsa.ToXmlString(false);
                File.WriteAllText(publicKeyPath, publicKeyXml);

                // Xuất khóa bí mật dưới định dạng XML (chứa toàn bộ tham số P, Q, D, InverseQ...)
                string privateKeyXml = rsa.ToXmlString(true);
                File.WriteAllText(privateKeyPath, privateKeyXml);
            }
            finally
            {
                rsa.PersistKeyInCsp = false; // Tránh lưu vĩnh viễn khóa trong Windows Key Container
            }
        }
    }
}

Đoạn mã tạo chữ ký số từ tệp tin:

public class RSASigner
{
    public static byte[] SignFile(string filePath, string privateKeyXml)
    {
        byte[] fileBytes = File.ReadAllBytes(filePath);
        
        using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
        {
            rsa.FromXmlString(privateKeyXml);
            using (SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider())
            {
                // Tính băm SHA-1 và mã hóa bằng Private Key trong một chu trình tối ưu
                byte[] signature = rsa.SignData(fileBytes, sha1);
                return signature;
            }
        }
    }
}

Đoạn mã xác thực chữ ký số:

public class RSAVerifier
{
    public static bool VerifyFile(string filePath, byte[] signature, string publicKeyXml)
    {
        byte[] fileBytes = File.ReadAllBytes(filePath);
        
        using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
        {
            rsa.FromXmlString(publicKeyXml);
            using (SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider())
            {
                // Xác minh tính tương ứng giữa văn bản gốc, chữ ký số và Public Key
                return rsa.VerifyData(fileBytes, sha1, signature);
            }
        }
    }
}

Kiểm thử và Đánh giá hiệu năng

Hệ thống được kiểm thử thực nghiệm trên cấu hình vi xử lý Intel Core i5 @ 2.50GHz, 8GB RAM, hệ điều hành Windows 10 x64. Các tệp dữ liệu thử nghiệm bao gồm tài liệu văn bản (.docx, .pdf, .txt) dung lượng từ 100 KB đến 50 MB.

Kích thước Khóa (Bit) Thời gian Sinh Khóa (ms) Thời gian Ký Tệp 5MB (ms) Thời gian Xác Thực (ms) Mức độ An toàn (NIST Khuyến nghị)
512-bit 18.4 ms 12.1 ms 2.3 ms Không an toàn (Bị giải mã trong vài giờ)
1024-bit 64.7 ms 16.8 ms 3.1 ms Lỗi thời (Không dùng cho hệ thống mới)
2048-bit 412.5 ms 28.4 ms 4.6 ms Tiêu chuẩn an toàn hiện tại (Đạt chuẩn)
4096-bit 3,180.2 ms 54.2 ms 8.9 ms An toàn cao cấp (Dành cho cơ quan tối mật)
+-----------------------------------------------------------------------------+
|                     KỊCH BẢN KIỂM THỬ XÁC THỰC TOÀN VẸN                    |
+-----------------------------------------------------------------------------+
|  [Tệp tin gốc: Contract.pdf] ────────► Tạo chữ ký ──────► Signature.sig    |
|                                                                 │           |
|  Kịch bản 1: Không can thiệp                                    │           |
|  [Contract.pdf] + [Signature.sig] + [Public Key] ───────────────► HỢP LỆ    |
|                                                                             |
|  Kịch bản 2: Can thiệp sửa 1 ký tự trong tệp (1-bit alteration)             |
|  [Contract_tampered.pdf] + [Signature.sig] + [Public Key] ──────► BÁO LỖI  |
|                                                                             |
|  Kịch bản 3: Sử dụng sai Public Key                                         |
|  [Contract.pdf] + [Signature.sig] + [Wrong_Public_Key] ─────────► BÁO LỖI  |
+-----------------------------------------------------------------------------+

Kết quả đạt được

  • Khối tạo key: Hoạt động ổn định, xuất khóa định dạng chuẩn XML với đầy đủ 4 tùy chọn kích thước bit.
  • Khối thông tin key: Phân rã chính xác các trường Modulus ($N$), Public Exponent ($E$), Private Exponent ($D$) từ file XML.
  • Khối tạo chữ ký: Tự động hóa quá trình tính Message Digest và mã hóa chữ ký, xuất ra tệp tin chữ ký nhị phân đi kèm dữ liệu gốc.
  • Khối thẩm định chữ ký: Đạt độ chính xác 100% trong việc phát hiện mọi sự sai khác dữ liệu dù là 1 bit, loại bỏ hoàn toàn khả năng giả mạo chữ ký.

Đổi mới và đóng góp

Điểm cải tiến kỹ thuật

  1. Khắc phục triệt để chi phí tính toán của RSA truyền thống: Đề tài áp dụng kỹ thuật băm trước khi ký (Hash-then-Sign). Khi ký một tệp tài liệu 50 MB, nếu mã hóa RSA trực tiếp toàn văn sẽ mất hàng chục giây và làm phình to dung lượng bản mã; thông qua SHA-1, kích thước đầu vào của hàm lũy thừa modulo luôn cố định ở 160-bit (20 bytes), giúp giảm 99.8% khối lượng tính toán CPU.
  2. Cấu trúc hóa tham số khóa trực quan: Ứng dụng giải pháp tuần tự hóa XML giúp lưu trữ và truyền tải cặp khóa độc lập với hệ thống mà không cần phụ thuộc vào registry hay cơ sở dữ liệu cồng kềnh.
  3. Tổng hợp và phân tích phòng thủ lỗ hổng RSA: Đồ án không chỉ cài đặt thuật toán mà còn hệ thống hóa các phương thức tấn công RSA nổi tiếng dựa trên nghiên cứu chuyên sâu của TS. Hồ Văn Canh (2017):
    • Phân tích Fermat: Xảy ra khi $|p - q| < n^{1/4}$, cho phép tin tặc tách thừa số nguyên tố dễ dàng.
    • Hastad Broadcast Attack: Xảy ra khi dùng số mũ công khai nhỏ $e = 3$ gửi cùng thông điệp tới nhiều nút mạng.
    • Common Modulus Attack: Khi nhiều người dùng dùng chung Modulus $n$ nhưng khác cặp số mũ $(e_i, d_i)$.
    • Lỗ hổng ROCA (CVE-2017-15361): Phân tích lỗi sinh khóa trên chip TPM của Infineon làm suy yếu an ninh hàng tỷ thiết bị.
+-----------------------------------------------------------------------------+
|                 SO SÁNH CÁC HỆ MẬT MÃ VÀ CHỮ KÝ ĐIỆN TỬ                     |
+-----------------------------------------------------------------------------+
|  Tiêu chí          DES (Symmetric)   El-Gamal (Public)   RSA + SHA-1 (Đề tài)
|  ──────────────────────────────────────────────────────────────────────────
|  Loại khóa         Khóa đơn (56-bit) Cặp khóa (p, alpha) Cặp khóa (e, d, n) 
|  Bài toán nền tảng Mạng Feistel      Logarit rời rạc     Phân tích số nguyên tố
|  Chức năng ký số   Không trực tiếp   Có (Chữ ký dài)     Tối ưu, phổ biến nhất 
|  Tốc độ xử lý      Rất nhanh         Trung bình          Rất nhanh (khi băm)
|  Hiệu quả lưu trữ  Trung bình        Bản mã gấp đôi      Nhỏ gọn (1 file .sig)
+-----------------------------------------------------------------------------+

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng trong đời sống và doanh nghiệp

  • Hệ thống Kê khai thuế và Hóa đơn điện tử: Doanh nghiệp sử dụng phần mềm để ký số trực tiếp lên các tệp hóa đơn (.xml, .pdf) trước khi gửi lên cơ quan thuế, ngăn chặn gian lận hóa đơn.
  • Ký duyệt văn bản nội bộ (Paperless Office): Ban giám hiệu hoặc ban lãnh đạo ký số các quyết định, phiếu thu, phiếu chi, hợp đồng lao động từ xa mà không cần in giấy.
  • Giao dịch ngân hàng và thương mại điện tử B2B: Xác thực lệnh thanh toán và hợp đồng kinh tế giữa các đối tác qua Internet an toàn tuyệt đối.
+-----------------------------------------------------------------------------+
|                 LỘ TRÌNH TRIỂN KHAI DOANH NGHIỆP (ROADMAP)                  |
+-----------------------------------------------------------------------------+
|  Giai đoạn 1: Chuẩn bị hạ tầng & Cài đặt môi trường .NET Runtime (1-2 ngày) |
|  Giai đoạn 2: Khởi tạo cặp khóa 2048/4096-bit & Phân quyền quản trị (1 ngày)|
|  Giai đoạn 3: Tích hợp module ký số vào luồng luân chuyển tài liệu (1 tuần) |
|  Giai đoạn 4: Đào tạo nhân sự & Vận hành chính thức (Liên tục)             |
+-----------------------------------------------------------------------------+

Phân tích Chi phí - Lợi ích (Cost-Benefit Analysis)

  • Chi phí đầu tư: 0 VNĐ tiền bản quyền phần mềm (sử dụng nền tảng tự phát triển trên mã nguồn mở .NET).
  • Tiết kiệm vận hành: Giảm 85% chi phí in ấn, chuyển phát nhanh và kho lưu trữ giấy tờ.
  • Thời gian hoàn vốn (ROI): Ước tính đạt điểm hòa vốn chỉ sau 2-3 tháng triển khai nhờ cắt giảm chi phí văn phòng phẩm và nhân sự chuyển phát.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Đề tài sử dụng thuật toán băm SHA-1 làm thử nghiệm mặc định. Mặc dù tối ưu về tốc độ, nhưng theo các tiêu chuẩn mật mã quốc tế hiện hành (NIST), SHA-1 đã xuất hiện nguy cơ va chạm lý thuyết (collision attack) và đang được khuyến cáo thay thế hoàn toàn bằng SHA-256 hoặc SHA-3.
  • Cấu trúc lưu trữ khóa dưới dạng XML thô chưa được mã hóa đối xứng (như AES-GCM) bảo vệ khi lưu trên ổ cứng, có nguy cơ bị lộ nếu máy tính bị nhiễm phần mềm gián điệp.
  • Chưa tích hợp cơ chế đóng dấu thời gian (Timestamping Server - TSA) để chứng minh thời điểm ký chính xác.

Hướng nâng cấp mở rộng

  1. Nâng cấp thuật toán nền tảng: Chuyển đổi hàm băm sang SHA-256/SHA-512 và hỗ trợ thêm hệ mật đường cong Elliptic (ECDSA) nhằm giảm kích thước khóa xuống 256-bit mà vẫn đạt độ an toàn tương đương RSA 3072-bit.
  2. Bảo mật phần cứng: Tích hợp chuẩn giao tiếp PKCS#11 / Microsoft CryptoAPI (CAPI) để hỗ trợ ký số thông qua các thiết bị phần cứng bảo mật chuyên dụng như USB Token, SmartCard hoặc Cloud HSM.
  3. Phát triển Web Service: Đóng gói module nghiệp vụ thành các RESTful API / Microservices trên nền tảng ASP.NET Core để tích hợp vào các hệ thống quản trị doanh nghiệp (ERP, CRM) quy mô lớn.

Đối tượng hưởng lợi

+-----------------------------------------------------------------------------+
|                    MA TRẬN GIÁ TRỊ CHO CÁC ĐỐI TƯỢNG HƯỞNG LỢI              |
+-----------------------------------------------------------------------------+
|  Sinh viên CNTT / An toàn thông tin                                         |
|  - Tài liệu tham khảo chuẩn mực về hiện thực hóa thuật toán RSA và SHA-1.   |
|  - Bộ mã nguồn mẫu C# sáng sủa, dễ dàng kế thừa cho đồ án tốt nghiệp.       |
|                                                                             |
|  Kỹ sư phát triển phần mềm (Developers)                                    |
|  - Cung cấp mô hình module hóa xử lý mã hóa khóa công khai và quản lý khóa. |
|  - Nắm vững các kỹ thuật phòng tránh tấn công mật mã trong thực tế.         |
|                                                                             |
|  Doanh nghiệp vừa và nhỏ (SMEs)                                             |
|  - Sở hữu giải pháp ký số độc lập, miễn phí bản quyền để số hóa quy trình.  |
|  - Tiết kiệm 85% chi phí quản lý chứng từ và loại bỏ rủi ro giả mạo tài liệu|
|                                                                             |
|  Cộng đồng nghiên cứu Mật mã học                                            |
|  - Đóng góp phân tích chi tiết về các lỗ hổng RSA và thực trạng an toàn số. |
+-----------------------------------------------------------------------------+

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

1. Yêu cầu cấu hình hệ thống để triển khai phần mềm là gì?

Phần mềm có dung lượng siêu nhẹ (< 15 MB) và tương thích hoàn toàn với mọi máy tính chạy hệ điều hành Windows 7/8/10/11 (32-bit hoặc 64-bit) đã cài đặt .NET Framework 4.7.2 trở lên. Cấu hình phần cứng tối thiểu chỉ cần CPU 1.0 GHz và 512 MB RAM.

2. Độ dài khóa RSA bao nhiêu bit là an toàn nhất hiện nay?

Theo khuyến nghị mới nhất từ Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST):

  • 512-bit & 1024-bit: Tuyệt đối không sử dụng trong thực tế do có thể bị bẻ khóa bằng các siêu máy tính hoặc cơ sở dữ liệu phân tích số nguyên tố trực tuyến.
  • 2048-bit: Là chuẩn an toàn tối thiểu bắt buộc cho các ứng dụng thương mại điện tử hiện nay.
  • 4096-bit: Được khuyến nghị cho các tài liệu lưu trữ bảo mật quốc gia có giá trị trên 20-30 năm.

3. Làm thế nào để tích hợp module ký số này vào hệ thống phần mềm có sẵn?

Do mã nguồn được viết trên ngôn ngữ C# hướng đối tượng, lập trình viên có thể dễ dàng biên dịch các khối chức năng thành một thư viện liên kết động (RSADigitalSignature.dll). Sau đó, thêm tham chiếu (Reference) vào các dự án ASP.NET, WPF hoặc WinForms khác và gọi các phương thức tĩnh SignFile()VerifyFile() chỉ với vài dòng lệnh.

4. Nếu bên gửi làm lộ Private Key thì cần xử lý như thế nào?

Ngay khi phát hiện lộ khóa bí mật (Private Key), bên gửi phải ngay lập tức công bố vô hiệu hóa cặp khóa hiện tại tới tất cả đối tác và hệ thống liên quan. Mọi văn bản ký sau thời điểm lộ khóa sẽ không còn giá trị pháp lý. Sau đó, tiến hành sinh cặp khóa mới với độ dài tối thiểu 2048-bit và phân phối lại Public Key mới tới các bên nhận.

5. Chi phí triển khai và thời gian thu hồi vốn (ROI) thực tế ra sao?

Giải pháp giúp doanh nghiệp cắt giảm hoàn toàn chi phí bản quyền phần mềm bên thứ ba. Với một doanh nghiệp quy mô trung bình xử lý 1.000 chứng từ/tháng, việc loại bỏ chi phí in ấn, chuyển phát giấy tờ (khoảng 15.000 - 30.000 VNĐ/chứng từ) sẽ giúp tiết kiệm từ 15 - 30 triệu VNĐ mỗi tháng, đạt điểm hòa vốn triển khai ngay trong tháng đầu tiên.


Kết luận

Đồ án tốt nghiệp "Ứng dụng Hệ mật mã RSA trong chữ ký điện tử" của sinh viên Phạm Nhật Hoàng dưới sự hướng dẫn của TS. Hồ Văn Canh đã hoàn thành xuất sắc toàn bộ các mục tiêu nghiên cứu và ứng dụng thực tiễn. Đề tài không chỉ hệ thống hóa một cách khoa học, chuyên sâu về lý thuyết mật mã học (từ các hệ mật cổ điển, mã hóa đối xứng DES đến hệ mật khóa công khai RSA, El-Gamal và giao thức trao đổi khóa Diffie-Hellman), mà còn xây dựng thành công một giải pháp phần mềm ký số hoàn chỉnh, trực quan và an toàn tuyệt đối.

Sản phẩm là tài liệu tham khảo có giá trị học thuật cao cho sinh viên ngành Công nghệ thông tin, đồng thời mở ra hướng ứng dụng thực tế đầy tiềm năng cho các doanh nghiệp đang trên lộ trình chuyển đổi số và tự động hóa quy trình nghiệp vụ văn phòng không giấy tờ.