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

Trong bối cảnh công nghệ thông tin và mạng truyền thông phát triển mạnh mẽ, nhu cầu bảo vệ an toàn thông tin và xác thực dữ liệu trong các giao dịch điện tử trở nên cấp thiết. Mật mã học đã chuyển dịch từ các phương pháp thủ công, cơ khí sang các hệ thống toán học phức tạp nhằm đáp ứng các yêu cầu bảo mật, toàn vẹn dữ liệu và xác thực danh tính trên các kênh truyền không an toàn như mạng máy tính và Internet.

Theo công bố của tác giả trong đồ án tốt nghiệp ngành Công nghệ Thông tin tại Trường Đại học Dân lập Hải Phòng (năm 2011), các mục tiêu và nhiệm vụ nghiên cứu cụ thể được xác định gồm:

  1. Hệ thống lại các kiến thức cơ bản về mật mã.
  2. Tìm hiểu về mã hóa đối xứng.
  3. Nghiên cứu về chữ ký điện tử và một số mô hình ứng dụng chữ ký điện tử.
  4. Xây dựng chương trình chữ ký điện tử bằng ngôn ngữ C#.
  • Đối tượng nghiên cứu: Lý thuyết số học và đại số trong mật mã học; các thuật toán mã hóa cổ điển, mã hóa đối xứng, mã hóa khóa công khai (trọng tâm là thuật toán RSA, ElGamal) và cơ chế tạo, kiểm tra chữ ký điện tử.
  • Phạm vi nghiên cứu:
    • Không gian và thời gian: Nghiên cứu lý thuyết kết hợp khảo sát thực tiễn ứng dụng mật mã tại Việt Nam và thế giới tính đến năm 2011; đồ án được thực hiện tại Khoa Công nghệ Thông tin, Trường Đại học Dân lập Hải Phòng dưới sự hướng dẫn của thầy giáo Trần Ngọc Thái.
    • Nội dung: Giới hạn trong phạm vi các cấu trúc toán học cơ bản ($\mathbb{Z}_n, \mathbb{Z}^*_n$, thuật toán Euclide mở rộng, hàm phi Euler), phân tích các hệ mật đại diện và triển khai chương trình mô phỏng chữ ký điện tử trên môi trường phần mềm bằng ngôn ngữ C#.

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

Đồ án xây dựng trên nền tảng số học mô-đun, đại số trừu tượng và lý thuyết độ phức tạp tính toán:

  • Các khái niệm và cấu trúc toán học:

    • Số nguyên tố và số nguyên tố cùng nhau: Khóa trong các hệ mật mã hiện đại thường sử dụng các số nguyên tố lớn hơn $10^{150}$. Định lý phân tích số nguyên dương $n \ge 2$ thành tích các lũy thừa nguyên tố: $n = p_1^{e_1} p_2^{e_2} \dots p_k^{e_k}$.
    • Đồng dư thức: $a \equiv b \pmod n$ khi $n \mid (a - b)$.
    • Hàm phi Euler $\phi(n)$: Số lượng số nguyên dương trong đoạn $[1, n]$ nguyên tố cùng nhau với $n$; với $p$ nguyên tố thì $\phi(p) = p - 1$; dạng tổng quát $\phi(n) = n(1 - 1/p_1)(1 - 1/p_2)\dots(1 - 1/p_k)$.
    • Thuật toán Euclide và Euclide mở rộng: Dùng để tìm ước số chung lớn nhất $d = \gcd(a, b)$ và xác định các hệ số nguyên $x, y$ thỏa mãn phương trình vô định Bezout $ax + by = d$. Độ phức tạp thời gian của thuật toán Euclide mở rộng được đánh giá là $O((\lg n)^2)$.
    • Không gian $\mathbb{Z}_n$ và nhóm nhân $\mathbb{Z}^_n$:* Không gian $\mathbb{Z}_n = {0, 1, \dots, n-1}$; không gian $\mathbb{Z}^_n = {a \in \mathbb{Z}_n \mid \gcd(n, a) = 1}$. Định nghĩa cấp của phần tử $\text{ord}(a)$ là số nguyên dương $t$ nhỏ nhất thỏa mãn $a^t \equiv 1 \pmod n$. Tập thặng dư bậc hai $Q_n$ xác định bởi các phần tử $a \in \mathbb{Z}^_n$ tồn tại $x \in \mathbb{Z}^*_n$ sao cho $x^2 \equiv a \pmod n$.
    • Phần tử nghịch đảo trong $\mathbb{Z}_n$: Phần tử $a^{-1} \pmod n$ tồn tại duy nhất khi và chỉ khi $\gcd(a, n) = 1$, được tính toán thông qua thuật toán Euclide mở rộng.
    • Lý thuyết độ phức tạp thuật toán: Đánh giá hàm chi phí thời gian $T = f(n)$ theo độ tăng dữ liệu đầu vào $n$ qua ký hiệu tiệm cận $O(g(n))$; phân biệt lớp bài toán đa thức (bài toán dễ) và bài toán có độ phức tạp vượt quá đa thức (bài toán khó).
  • Phương pháp nghiên cứu:

    • Phương pháp phân tích, tổng hợp tài liệu lý thuyết toán học và mật mã học chuyên ngành.
    • Phương pháp so sánh định lượng và định tính giữa các kiến trúc mật mã (mã hóa đối xứng, mã hóa bất đối xứng, hệ thống mã hóa lai - Hybrid Cryptosystem).
    • Phương pháp mô hình hóa toán học và thực nghiệm thuật toán trên máy tính cá nhân.
  • Nguồn dữ liệu: Các tiêu chuẩn xử lý thông tin liên bang Hoa Kỳ (FIPS 46-3 cho DES/3DES, FIPS 197 cho AES), tài liệu từ Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST), công bố học thuật của RSA Security, báo cáo của Tổ chức Tiền tuyến Điện tử (EFF) và tài liệu triển khai thực tế của các đơn vị tài chính - thương mại tại Việt Nam (VASC, ACB, VCBS, Vietcombank, EAB, Tổng công ty Đường sắt, Hàng không, Chi cục Thuế TP. Hồ Chí Minh).


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

Chương 1: Cơ sở toán học của mật mã học

Chương này thiết lập nền móng toán học số học phục vụ cho toàn bộ các thuật toán mã hóa và chữ ký điện tử:

  • Trình bày định nghĩa, định lý phân tích số nguyên tố, khái niệm đồng dư thức modulo $n$ và các tính chất rút gọn số dư.
  • Khảo sát hàm số Euler $\phi(n)$ và phương pháp tính cho số nguyên tố và hợp số.
  • Chi tiết hóa thuật toán Euclide và thuật toán Euclide mở rộng với các bước lặp $q = \lfloor a/b \rfloor$, $r = a - qb$, cập nhật dãy biến $x, y$; chứng minh độ phức tạp thời gian đạt $O((\lg n)^2)$.
  • Định nghĩa không gian $\mathbb{Z}_n$, nhóm nhân $\mathbb{Z}^*_n$, cấp của phần tử $\text{ord}(a)$, tập thặng dư bậc hai $Q_n$, và thuật toán tìm phần tử nghịch đảo $a^{-1} \pmod n$.
  • Tổng kết lý thuyết độ phức tạp thuật toán, tập trung vào đánh giá chi phí thời gian thực hiện $T = f(n)$, trường hợp tốt nhất, xấu nhất và thứ tự tăng dần của các cấp độ phức tạp $O(\log n)$, $O(n)$, $O(n^k)$.

Chương 2: Tổng quan về mật mã học

Nội dung chương 2 là phần trọng tâm bao quát toàn diện lịch sử, phân loại và các thuật toán mật mã:

  • Lịch sử phát triển:
    • Mật mã cổ điển: Ký tự tượng hình Ai Cập cổ đại (4500 năm trước), mã Atbash của người Do Thái (500–600 TCN), mã scytale của Hy Lạp cổ đại, mã Caesar của La Mã, biểu tượng số 666 trong kinh Tân Ước, tài liệu Kama Sutra tại Ấn Độ.
    • Thời Trung cổ: Phát minh kỹ thuật phân tích tần suất (khoảng năm 1000) phá vỡ mã đơn ký tự; Alberti phát minh mật mã đa ký tự (1465); các sự kiện lịch sử như âm mưu Babington (dẫn đến xử tử Nữ hoàng Mary I), tài liệu "Người mang mặt nạ sắt", vụ án Dreyfus và Mata Hari.
    • Từ 1800 đến Thế chiến II: Công trình phân tích mã của Charles Babbage, Friedrich Kasiski; nguyên tắc Kerckhoffs; phương pháp giải mã của Edgar Allan Poe trên báo Alexander's Weekly Messenger; ứng dụng thống kê của William F. Friedman; Marian Rejewski (Cục Mật mã Ba Lan) bước đầu phá mã Enigma năm 1932.
    • Thế chiến II: Máy Enigma của Đức (Ba Lan bàn giao tài liệu cho Anh - Pháp tháng 7/1939; Alan Turing, Gordon Welchman phát triển kỹ thuật phá mã tại Bletchley Park); máy tính điện tử Colossus do Max Newman phát triển giải mã Fish (one-time pad); hệ thống mã hóa JN-25, máy Purple của Nhật (chiến dịch thám mã "Magic" giúp Mỹ thắng trận Midway); mật mã Đồng minh gồm SIGABA (Mỹ, bằng sáng chế 6.625 năm 1944 công bố năm 2001) và TypeX (Anh).
    • Mật mã hiện đại: Claude Shannon đặt nền tảng toán học (1949); tiêu chuẩn DES (IBM đề xuất, NBS phát hành 1977, chuẩn FIPS 46-3; bị EFF phá mã năm 1997 trong 56 giờ); tiêu chuẩn AES (Rijndael, chuẩn FIPS 197 năm 2001); bài báo "New Directions in Cryptography" (1976) của Whitfield Diffie và Martin Hellman giới thiệu phương pháp trao đổi khóa Diffie-Hellman; các công trình độc lập trước đó tại GCHQ (Anh) của James H. Ellis, Clifford Cocks (1973) và Malcolm Williamson (1974).
  • Thuật ngữ và phân loại hệ mật: Định nghĩa hệ mật 5 thành phần $(P, C, K, E, D)$ với điều kiện giải mã $d_k(e_k(x)) = x$; khái niệm tốc độ mã, độ an toàn, khả năng chống nhiễu (3 loại lỗi: thay đổi ký tự, chèn ký tự, mất ký tự); phân loại mã dòng (RC4, A5/1, A5/2, Chameleon) và mã khối (DES, 3DES, RC5, RC6, 3-Way khối 96-bit, CAST, Camelia, Blowfish, MARS, Serpent, Twofish, GOST).
  • Chi tiết các hệ mật mã cổ điển:
    • Mã Caesar: $E_k(x) = (x + k) \bmod 26$, $D_k(y) = (y - k) \bmod 26$; ví dụ khóa $k = 11$, bản rõ "wewillmeetatmidnight" chuyển thành bản mã "HPHTWWXPPELEXTOYTRSE".
    • Mã Affine: $E_k(x) = (ax + b) \bmod 26$ với điều kiện $\gcd(a, 26) = 1$; giải mã $D_k(y) = a^{-1}(y - b) \bmod 26$; ví dụ khóa $k = (7, 3)$, mã hóa "hot" thành "AXG", giải mã bằng $D_k(y) = 15y - 19 \pmod{26}$ thu lại "hot".
    • Mã Vigenère: Mã hóa đa bảng chữ cái với từ khóa độ dài $m$, không gian khóa $26^m$; ví dụ từ khóa "CIPHER" mã hóa bản rõ "thiscryptosystemisnotsecure" thành "VPXZGIAXIVWPUBTTMJPWIZITWZT".
    • Mã Hill: Sử dụng tổ hợp tuyến tính ma trận $P = C = (\mathbb{Z}_{26})^m$, mã hóa $E_K(x) = xK \pmod{26}$, giải mã $D_K(y) = yK^{-1} \pmod{26}$; ví dụ mã hóa từ "July" thành "DELW".
    • Mã Playfair: Sử dụng ma trận khóa $5 \times 5$ (loại bỏ $J$ gộp vào $I$) để thay thế từng cặp ký tự (digram).
  • Mật mã khóa công khai và hệ mã lai:
    • Cơ chế cặp khóa công khai (Public Key) và khóa bí mật (Private Key) dựa trên hàm một chiều; giải quyết bài toán phân phối khóa và tạo chữ ký số.
    • Mô hình hệ thống mã hóa lai (Hybrid Cryptosystems): Kết hợp mã hóa bất đối xứng để trao đổi khóa phiên (Session Key) và mã hóa đối xứng để truyền dữ liệu khối lượng lớn.
    • Các yếu điểm: Tấn công kẻ đứng giữa (Man-in-the-middle attack), tấn công đo đạc thời gian trên phần cứng.
    • Ứng dụng thực tiễn: Mã hóa thư điện tử PGP, chứng chỉ số Thawte; thực tiễn tại Việt Nam: VASC ký kết với ACB (30/9/2003), giao dịch chứng khoán VCBS, ngân hàng trực tuyến VCB và EAB (hạn mức chuyển khoản 20–500 triệu đồng/ngày), bán vé trực tuyến đường sắt, hàng không và kê khai thuế TP. Hồ Chí Minh.
  • Hệ mật RSA:
    • Lịch sử: Ron Rivest, Adi Shamir, Len Adleman công bố năm 1977 tại MIT (Bằng sáng chế Hoa Kỳ số 4,405,829 cấp năm 1983, hết hạn ngày 21/9/2000); Clifford Cocks phát minh thuật toán tương đương năm 1973 tại GCHQ (công bố năm 1997).
    • Thuật toán tạo khóa: Chọn 2 số nguyên tố lớn $p, q$ độc lập; tính mô-đun $n = pq$; tính $\phi(n) = (p-1)(q-1)$; chọn số mũ công khai $e$ sao cho $1 < e < \phi(n)$ và $\gcd(e, \phi(n)) = 1$; tính số mũ bí mật $d \equiv e^{-1} \pmod{\phi(n)}$ qua giải thuật Euclide mở rộng. Dạng tối ưu khóa bí mật áp dụng Định lý số dư Trung Quốc (CRT) gồm các thành phần: $p, q, d \bmod (p-1), d \bmod (q-1), (1/q) \bmod p$.
    • Mã hóa và giải mã: Mã hóa $c = m^e \bmod n$; Giải mã $m = c^d \bmod n$ (sử dụng thuật toán bình phương và nhân). Ví dụ minh họa: $p = 61, q = 53 \implies n = 3233, e = 17, d = 2753$; bản rõ $m = 123 \implies c = 123^{17} \bmod 3233 = 855$; giải mã $855^{2753} \bmod 3233 = 123$.
    • Hiệu năng và độ dài khóa: Bộ toolkit BSAFE 3.0 trên máy Pentium 90MHz đạt tốc độ tính khóa bí mật 21,6 Kbps với khóa 512-bit và 7,4 Kbps với khóa 1024-bit. Phần cứng RSA nhanh nhất đạt 300 Kbps (512-bit), xử lý song song đạt 600 Kbps (512-bit) và 185 Kbps (970-bit). Về tốc độ, DES phần mềm nhanh hơn RSA 100 lần, phần cứng nhanh hơn từ 1000 đến 10000 lần.
    • Độ an toàn và các dạng tấn công RSA: Bài toán phân tích $n$ thành thừa số nguyên tố (năm 2005 phân tích thành công số 663-bit bằng tính toán phân tán; thiết bị lý thuyết TWIRL năm 2003 đe dọa khóa 1024-bit; thuật toán Shor năm 1993 trên máy tính lượng tử). Tấn công khi biết $\phi(n)$ đưa về giải phương trình bậc hai $p^2 - (n - \phi(n) + 1)p + n = 0$ (ví dụ: $n = 84773093, \phi(n) = 84754668 \implies p = 9539, q = 8887$). Hiện tượng không che giấu thông tin ($M \equiv M^e \pmod n$, với mọi mô-đun $n$ có ít nhất 9 thông điệp không được che giấu; ví dụ $e = 17, n = 35$ có 14 giá trị bản rõ không bị che giấu).
Hệ thống mã hóa Yêu cầu thuật giải và phân phối khóa Tính chất bảo mật
Mã hóa quy ước (Đối xứng) - Dùng chung một thuật giải cho mã hóa và giải mã.
- Người gửi và nhận phải thống nhất và chia sẻ cùng một khóa bí mật qua kênh an toàn.
- Khóa phải được giữ bí mật tuyệt đối.
- Không thể giải mã nếu không có khóa bí mật.
- Biết thuật giải và mẫu bản mã không đủ để xác định khóa.
Mã hóa công khai (Bất đối xứng) - Một thuật giải cho mã hóa và một thuật giải riêng cho giải mã.
- Mỗi bên sở hữu một cặp khóa riêng biệt: Khóa công khai và Khóa bí mật.
- Một trong hai khóa phải được giữ bí mật (khóa cá nhân).
- Không thể (hoặc không khả thi về tính toán) để tìm ra khóa bí mật từ khóa công khai.
- Biết thuật giải và khóa công khai không đủ để giải mã bản tin.

Chương 3: Chữ ký điện tử

Chương này nghiên cứu cơ chế xác thực văn bản trong môi trường số:

  • Trình bày lịch sử ra đời và vai trò pháp lý, kỹ thuật tương đương chữ ký tay của chữ ký điện tử trên tài liệu điện tử.
  • Thiết lập khái niệm và mô hình chung của chữ ký điện tử: Người gửi sử dụng khóa bí mật để ký thông điệp, người nhận sử dụng khóa công khai của người gửi để kiểm tra tính toàn vẹn và nguồn gốc thông điệp.
  • Khảo sát các sơ đồ chữ ký điện tử tiêu biểu, trong đó đi sâu vào cấu trúc sơ đồ chữ ký ElGamal dựa trên bài toán logarit rời rạc.

Chương 4: Mô phỏng chữ ký điện tử

  • Cài đặt chương trình thực nghiệm mô phỏng quy trình hoạt động của chữ ký điện tử.
  • Hiện thực hóa các thuật toán sinh cặp khóa, thuật toán tạo chữ ký và thuật toán xác thực chữ ký điện tử trên môi trường máy tính sử dụng ngôn ngữ lập trình C#.

Thiết kế và triển khai

Căn cứ nội dung chương 4 và phần mở đầu của đồ án, tác giả đã tiến hành thiết kế và triển khai phần mềm mô phỏng hệ thống chữ ký điện tử:

  • Công nghệ phát triển: Ngôn ngữ lập trình C# trên nền tảng .NET Framework.
  • Quy trình triển khai:
    • Mô đun sinh khóa: Hiện thực các thuật toán số học để tạo lập cặp khóa công khai và khóa bí mật.
    • Mô đun ký số: Tiếp nhận văn bản đầu vào, sử dụng khóa bí mật của người gửi để tính toán và xuất mã chữ ký điện tử.
    • Mô đun kiểm tra chữ ký: Sử dụng khóa công khai của người gửi và văn bản nhận được để kiểm tra tính hợp lệ, xác thực danh tính người gửi và đảm bảo dữ liệu không bị sửa đổi trên đường truyền.

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

  • Kết quả khoa học chính:

    • Hệ thống hóa toàn diện cơ sở toán học mật mã bao gồm lý thuyết đồng dư, hàm phi Euler, giải thuật Euclide mở rộng $O((\lg n)^2)$ và cấu trúc nhóm $\mathbb{Z}_n, \mathbb{Z}^*_n$.
    • Tổng kết bức tranh lịch sử mật mã học từ thời cổ đại đến hiện đại, phân loại tường minh các hệ mã cổ điển (Caesar, Affine, Vigenère, Hill, Playfair) và các hệ mã hiện đại (DES, AES, Diffie-Hellman, RSA, ElGamal, ECC).
    • Phân tích chi tiết quy trình sinh khóa, mã hóa, giải mã và kỹ thuật tăng tốc CRT của thuật toán RSA; chỉ rõ các tham số đánh giá độ an toàn theo tiêu chuẩn NIST và RSA Security.
    • Lập trình thành công chương trình mô phỏng thuật toán chữ ký điện tử bằng ngôn ngữ C#.
  • Đối chuẩn kỹ thuật và khuyến nghị:

    • Tổng hợp số liệu so sánh hiệu năng: Khẳng định DES nhanh hơn RSA 100 lần trên phần mềm và 1000–10000 lần trên phần cứng.
    • Phân cấp chiều dài khóa RSA theo ứng dụng: Export (512 bit), Person (768 bit), Commercial (1024 bit), Military (2048 bit).
    • Đưa ra khuyến nghị áp dụng mô hình mã hóa lai (Hybrid Cryptosystem) trong các ứng dụng thương mại và giao dịch điện tử thực tế nhằm tận dụng tối đa tốc độ của mã hóa đối xứng và tính an toàn trong quản lý khóa của mã hóa công khai.
Chiều dài khóa RSA (bit) Mức độ an toàn tương đương (Mã đối xứng) Đánh giá độ an toàn và khuyến cáo sử dụng
512 bit < 80 bit Không an toàn; có thể bị phân tích bởi vài trăm máy tính (dữ liệu 1999).
1024 bit 80 bit Nguy cơ bị phá vỡ trong giai đoạn 2006–2010 (theo RSA Security); bị đe dọa bởi thiết bị TWIRL (2003).
2048 bit 112 bit Mức an toàn khuyến cáo đến năm 2030 cho các hệ thống thương mại và quân sự.
3072 bit 128 bit Khuyến cáo sử dụng cho thông tin cần bảo mật sau năm 2030.
15360 bit 256 bit Mức an toàn tối cao theo hướng dẫn quản lý khóa của NIST.

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

  • Hạn chế:
    • Phần lớn dung lượng đồ án tập trung vào phân tích lý thuyết toán học và cơ chế thuật toán RSA; các thuật toán chữ ký số khác như DSA hay ElGamal chỉ dừng lại ở mức giới thiệu sơ đồ nguyên lý.
    • Chương trình mô phỏng trên C# mới phục vụ mục đích minh họa học thuật trên máy đơn lẻ, chưa tích hợp đầy đủ hệ thống hạ tầng khóa công khai (PKI) hoàn chỉnh hoặc thử nghiệm trên hệ thống phân tán thực tế.
  • Hướng nghiên cứu tiếp:
    • Nghiên cứu sâu hơn về mật mã đường cong Elliptic (ECC) nhằm đạt độ an toàn tương đương với độ dài khóa ngắn hơn, giảm thiểu chi phí tính toán.
    • Hoàn thiện ứng dụng phần mềm chữ ký điện tử để tích hợp trực tiếp vào các hệ thống quản lý văn bản số, cổng thanh toán ngân hàng hoặc kê khai thuế điện tử.

Giá trị tham khảo

Đồ án là tài liệu tham khảo giá trị cho:

  • Sinh viên, học viên ngành Công nghệ Thông tin, An toàn Thông tin và Toán ứng dụng: Có thể sử dụng Chương 1 và Chương 2 để học tập, nắm vững các bước chứng minh toán học, phương pháp giải thuật toán Euclide mở rộng, ma trận Hill, mã Affine và các bước thiết lập hệ mật RSA.
  • Kỹ sư phát triển phần mềm ứng dụng: Tham khảo mô hình phân phối khóa lai (Hybrid Cryptosystem), cấu trúc chữ ký điện tử và phương pháp cài đặt giải thuật mật mã bằng ngôn ngữ C# để áp dụng vào các bài toán xác thực dữ liệu.

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

1. Thuật toán Euclide mở rộng trong đồ án được sử dụng để làm gì và có độ phức tạp là bao nhiêu?
Thuật toán Euclide mở rộng nhận đầu vào là hai số nguyên không âm $a, b$ ($a \ge b$), cho đầu ra là ước số chung lớn nhất $d = \gcd(a, b)$ cùng hai số nguyên $x, y$ thỏa mãn phương trình vô định $ax + by = d$. Trong hệ mật RSA, thuật toán này được sử dụng để tính số mũ giải mã bí mật $d \equiv e^{-1} \pmod{\phi(n)}$. Độ phức tạp thời gian của thuật toán là $O((\lg n)^2)$.

2. Điều kiện cần và đủ để hàm mã hóa Affine $E_k(x) = (ax + b) \bmod 26$ là một hàm mã hóa hợp lệ?
Hàm mã hóa Affine là một hàm hợp lệ (tức là một đơn ánh trên $\mathbb{Z}{26}$) khi và chỉ khi $\gcd(a, 26) = 1$. Nếu $\gcd(a, 26) = d > 1$, phương trình đồng dư thức $ax \equiv 0 \pmod{26}$ sẽ có ít nhất hai nghiệm phân biệt trong $\mathbb{Z}{26}$ (gồm $x = 0$ và $x = 26/d$), khiến hai ký tự rõ khác nhau bị mã hóa thành cùng một ký tự mã, không thể giải mã tường minh.

3. Tốc độ mã hóa của RSA khi thử nghiệm với bộ toolkit BSAFE 3.0 trên máy tính Pentium 90MHz đạt kết quả như thế nào?
Theo số liệu trích dẫn trong văn bản, bộ toolkit BSAFE 3.0 chạy trên máy tính Pentium 90MHz đạt tốc độ tính khóa bí mật là 21,6 Kbps đối với khóa 512-bit và 7,4 Kbps đối với khóa 1024-bit. Khi so sánh tổng thể, mã hóa khối DES trên phần mềm nhanh hơn RSA 100 lần, và trên phần cứng nhanh hơn từ 1000 đến 10000 lần.

4. Hiện tượng không che giấu thông tin trong hệ thống RSA xuất hiện trong những trường hợp nào?
Hiện tượng không che giấu thông tin xảy ra khi bản mã trùng với bản rõ, tức $M \equiv M^e \pmod n$. Với mọi mô-đun $n$, luôn tồn tại ít nhất 9 thông điệp không được che giấu. Ví dụ trong đồ án chỉ ra rằng với $e = 17, n = 35$, có 14 giá trị dữ liệu bị giữ nguyên khi mã hóa gồm tập ${1, 6, 7, 8, 13, 14, 15, 20, 21, 22, 27, 28, 29, 34}$; đặc biệt khi chọn $p = 109, q = 97, e = 865$ thì hệ thống hoàn toàn không che giấu bất kỳ thông tin nào vì $M \equiv M^{865} \pmod{109 \times 97}$ với mọi giá trị $M$.

5. Vì sao các hệ thống thực tế thường sử dụng mô hình mã hóa lai (Hybrid Cryptosystems)?
Mã hóa khóa công khai giải quyết triệt để vấn đề phân phối và quản lý khóa nhưng có tốc độ tính toán chậm. Mã hóa đối xứng có tốc độ mã hóa rất nhanh nhưng khó khăn trong việc chia sẻ khóa bí mật trên kênh truyền không an toàn. Hệ thống mã hóa lai kết hợp ưu điểm của cả hai: Sử dụng thuật toán bất đối xứng (như RSA) để mã hóa và truyền an toàn khóa phiên (Session Key), sau đó sử dụng thuật toán đối xứng (như DES, AES) cùng khóa phiên đó để mã hóa toàn bộ dữ liệu thực tế.


Kết luận

Đồ án tốt nghiệp của tác giả đã hệ thống hóa đầy đủ cơ sở lý thuyết toán học đại số và số học mô-đun phục vụ mật mã học hiện đại. Công trình cung cấp bức tranh tổng quan sâu sắc về lịch sử phát triển, cấu trúc hoạt động, các dạng tấn công và tham số an toàn của hệ mật mã khóa công khai RSA, đồng thời làm rõ mô hình chữ ký điện tử và sơ đồ ElGamal. Kết quả nghiên cứu lý thuyết được hiện thực hóa thông qua việc xây dựng thành công chương trình mô phỏng chữ ký điện tử bằng ngôn ngữ C#, đóng góp tài liệu học thuật hữu ích cho sinh viên và người nghiên cứu trong lĩnh vực an toàn thông tin.