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

Trong bối cảnh công nghệ thông tin phát triển, nhu cầu trao đổi dữ liệu từ xa và thực hiện các giao dịch qua mạng máy tính ngày càng gia tăng. Mỗi loại hình ứng dụng trên môi trường mạng đặt ra những yêu cầu bảo mật và an toàn thông tin chuyên biệt. Điển hình như trong các hệ thống bỏ phiếu từ xa (bầu cử điện tử), hệ thống đòi hỏi phải che giấu hoàn toàn danh tính của cử tri nhằm đảm bảo tính nặc danh và quyền tự do tín nhiệm; hoặc trong các văn bản điện tử đã được ký duyệt, người ký có nhu cầu kiểm soát quyền xác thực chữ ký sao cho chữ ký không thể bị kiểm tra tùy tiện khi chưa có sự đồng ý của họ.

Xuất phát từ các đòi hỏi thực tiễn trên, kỹ thuật chữ ký mù (blind signature) đã được nghiên cứu và ứng dụng nhằm giải quyết bài toán cốt lõi: cho phép một bên ký xác thực lên một thông điệp số mà hoàn toàn không thể biết được nội dung thực tế của thông điệp đó. Khóa luận tốt nghiệp của tác giả Trần Thị Chiên, dưới sự hướng dẫn của PGS. Trịnh Nhật Tiến tại Trường Đại Dân Lập Hải Phòng (thực hiện tháng 12 năm 2012), tập trung giải quyết các nhiệm vụ nghiên cứu sau:

  1. Hệ thống hóa các cơ sở toán học số học và đại số trừu tượng cấu thành nền tảng của mật mã học hiện đại, bao gồm lý thuyết số nguyên tố, vành đồng dư, các thuật toán tính toán modulo hiệu năng cao và lý thuyết độ phức tạp thuật toán.
  2. Phân tích các mô hình mật mã học kinh điển (mã hóa đối xứng, mật mã cổ điển) và các hệ mật mã khóa công khai tiêu biểu (RSA, ElGamal), cùng các lược đồ chữ ký số và các biến thể chữ ký chuyên dụng.
  3. Nghiên cứu sâu về lược đồ chữ ký mù, tập trung xây dựng cơ chế ký mù dựa trên thuật toán RSA và phân tích mô hình ứng dụng của chữ ký mù trong hai bài toán thực tế: thanh toán tiền điện tử (e-cash) và hệ thống bỏ phiếu trực tuyến.
  4. Xây dựng chương trình thử nghiệm ứng dụng kỹ thuật chữ ký mù để mô phỏng và kiểm chứng các quy trình giao thức đã nghiên cứu.

Đối tượng nghiên cứu của khóa luận là kỹ thuật mật mã khóa công khai, các lược đồ chữ ký điện tử và giao thức chữ ký mù RSA. Phạm vi nghiên cứu tập trung vào khía cạnh toán học lý thuyết của mật mã học và mô hình hóa giao thức ứng dụng trong bỏ phiếu điện tử và tiền tệ số, hoàn thành trong khuôn khổ học thuật tại Hải Phòng vào tháng 12 năm 2012.

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

Khóa luận được xây dựng dựa trên hệ thống cơ sở lý thuyết toán học mật mã học chuẩn mực:

  • Lý thuyết số học và đại số trừu tượng: Vành số nguyên modulo $\mathbb{Z}_n$, nhóm nhân cyclic $\mathbb{Z}_n^*$, cấu trúc nhóm con, phần tử sinh (primitive root/generator), thặng dư bậc hai và bất thặng dư modulo. Định lý phân tích số nguyên dương duy nhất, số nguyên tố Mersenne ($p = 2^k - 1$), hàm phi Euler $\phi(n)$, định lý Euler ($a^{\phi(n)} \equiv 1 \pmod n$) và định lý Fermat ($a^{p-1} \equiv 1 \pmod p$).
  • Mô hình tính toán và độ phức tạp thuật toán: Khái niệm bài toán (Input/Output), máy Turing, thuật toán đơn định và không đơn định; độ phức tạp thời gian $t_A(n)$ và độ phức tạp bộ nhớ $l_A(n)$ trong trường hợp xấu nhất; ký pháp tiệm cận $O(f(n))$, phân lớp thuật toán thời gian đa thức $O(n^t)$ và thuật toán thời gian hàm mũ $O(t^{f(n)})$.
  • Lý thuyết hàm mật mã: Hàm một phía (one-way function) và hàm một phía có cửa sập (trapdoor one-way function), trong đó bài toán phân tích thừa số nguyên tố lớn ($n = p \cdot q$) và bài toán logarithm rời rạc trong $\mathbb{Z}_p^*$ đóng vai trò hàm một chiều nền tảng.
  • Hệ thống chữ ký số: Định nghĩa bộ 5 thành phần $(P, A, K, S, V)$ gồm tập bản rõ $P$, tập chữ ký $A$, tập khóa $K$, thuật toán ký $S$ và thuật toán xác minh $V$; hàm băm mật mã học MD5 (kích thước khối đầu ra 128 bit); các lược đồ chữ ký RSA, ElGamal, Schnorr (chữ ký một lần), chữ ký đồng thời, chữ ký ủy nhiệm và chữ ký không thể phủ nhận (được David Chaum và Hán Van Antwerpen đề xuất năm 1989).

Phương pháp nghiên cứu thực tế được tác giả áp dụng bao gồm:

  • Phương pháp phân tích - tổng hợp lý thuyết: Hệ thống hóa các định lý toán học, mô tả toán học chính xác các thuật toán mã hóa, phân tích cấu trúc khóa và các bước chứng minh biến đổi đại số.
  • Phương pháp tính toán thực nghiệm: Áp dụng thuật toán Euclid tìm ước chung lớn nhất (ƯCLN), thuật toán Euclid mở rộng tìm phần tử nghịch đảo modulo và thuật toán bình phương và nhân liên tiếp (square-and-multiply) để tính lũy thừa modulo trên các bộ dữ liệu số cụ thể.
  • Phương pháp mô hình hóa giao thức: Thiết kế luồng xử lý 3 bước của chữ ký mù (làm mù, ký mù, xóa mù) và quy trình giao dịch đa bên trong bỏ phiếu điện tử (cử tri, ban bầu cử, ban kiểm phiếu) và lưu thông tiền điện tử (khách hàng Alice, bên bán Bob, ngân hàng).
  • Phương pháp thiết kế hệ thống thử nghiệm: Thiết kế cấu trúc mô-đun và giao diện chương trình phục vụ việc kiểm thử các bước tính toán chữ ký mù.

Nguồn dữ liệu trong khóa luận là các bộ số nguyên số học giả định phục vụ tính toán minh họa từng bước thuật toán, các chuỗi ký tự mẫu trong tiếng Anh và tiếng Việt không dấu dùng cho thử nghiệm mã hóa bản rõ, cùng các thông số chuẩn của các bài toán mật mã (như yêu cầu số nguyên tố có độ dài từ 150 chữ số trở lên đối với hệ mật công khai).

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

Chương 1: Một số khái niệm cơ bản

Chương 1 chiếm dung lượng lớn nhất trong khóa luận, thiết lập toàn bộ nền tảng toán học, mật mã học cổ điển và hiện đại:

  • Cơ sở toán học và tính toán modulo: Tác giả trình bày các định lý về số nguyên tố, khái niệm đồng dư thức và thuật toán Euclid tìm ƯCLN. Ví dụ tính toán minh họa $\gcd(30, 18) = 6$ được thực hiện qua các bước dư lần lượt là 12, 6 và 0. Tiếp theo, tác giả trình bày thuật toán Euclid mở rộng để tìm phần tử nghịch đảo trong $\mathbb{Z}_n$. Qua bài toán giải phương trình $3x \equiv 1 \pmod 7$, bảng tính các hệ số $g_i, u_i, v_i, y$ xác định được phần tử nghịch đảo của 3 trong $\mathbb{Z}_7$ là $x = a^{-1} = -2 + 7 = 5$. Đối với phép tính số mũ lớn, tác giả trình bày thuật toán bình phương và nhân liên tiếp dựa trên khai triển nhị phân của số mũ $k$; bảng tính chi tiết phép tính $5^{596} \pmod{1234}$ qua 10 bước lặp nhị phân (từ bit 0 đến bit 9) cho ra kết quả chính xác là $1013$.
  • Độ phức tạp thuật toán: Tác giả đưa ra bảng phân tích chi phí thời gian thực hiện của các lớp thuật toán khi kích thước đầu vào $n = 10^6$ với giả định máy tính xử lý $10^6$ phép tính mỗi giây.
Độ phức tạp tiệm cận Số phép tính ($n = 10^6$) Thời gian thực thi ($10^6$ phép tính/s)
$O(1)$ 1 1 micro giây
$O(n)$ $10^6$ 1 giây
$O(n^2)$ $10^{12}$ 11,6 ngày
$O(n^3)$ $10^{18}$ 32.000 năm
$O(2^n)$ $10^{301030}$ $10^{301006}$ tuổi của vũ trụ

Tác giả cũng dẫn chứng thực tế xử lý $n$ đối tượng sau 1 giờ: thuật toán có độ phức tạp $O(n)$ xử lý được 3,6 triệu đối tượng; độ phức tạp $O(n \log n)$ xử lý được 0,2 triệu đối tượng; trong khi độ phức tạp $O(2^n)$ chỉ xử lý được vỏn vẹn 21 đối tượng.

  • Các hệ mật mã khóa bí mật cổ điển: Tác giả phân tích cấu trúc toán học của 6 hệ mật mã cổ điển trên bảng chữ cái tiếng Anh ($\mathbb{Z}_{26}$):
Hệ mật mã Khóa $K$ và hàm mã hóa Kích thước không gian khóa Ví dụ tính toán trong văn bản Đánh giá độ an toàn
Mã Dịch chuyển (Ceasar) $k \in \mathbb{Z}_{26}$, $e_k(x) = (x+k) \pmod{26}$ 26 khóa $k=9$, "toinaydichoi" $\to$ "qnwcxrcqdkjh" Rất thấp, duyệt tuần tự 26 khóa
Mã Thay thế Hoán vị $\pi \in S_{26}$, $e_\pi(x) = \pi(x)$ $26! > 4 \times 10^{26}$ "toinaydichoi" $\to$ "mfzsxdazygfz" Bị phá dễ dàng bằng phân tích tần suất
Mã Affine $k=(a,b) \in \mathbb{Z}{26} \times \mathbb{Z}{26}$, $\gcd(a,26)=1$ $\phi(26) \times 26 = 12 \times 26 = 312$ $y = 5x + 6 \pmod{26}$, "xyutgyvuqpyu" Rất yếu, thử vét cạn bằng máy tính
Mã Vigenère $k=(k_1,...,k_m) \in \mathbb{Z}_{26}^m$ $26^m$ khóa ($m=6 \implies 308.776$ khóa) Khóa "CIPHER" $(2,8,15,7,4,17)$, ra "vwxuepfqrosz" Dễ dàng thám mã bằng máy tính
Mã Hill Ma trận vuông $k$ cấp $m$, $\gcd(\det(k), 26) = 1$ Phụ thuộc cấp ma trận $m$ $m=2$, ma trận nghịch đảo tồn tại khi $\det(k)$ lẻ và không chia hết cho 13; "tudo" $\to$ "fgxs" An toàn hơn nếu ma trận lớn, nhưng vẫn là tuyến tính
Mã Hoán vị Hoán vị $\pi \in S_m$ $m!$ khóa ($m=26 \implies 26!$) $m=6$, "toinaydichoi" $\to$ "iatynocodihi" Là trường hợp riêng của mã Hill
  • Hệ mật mã khóa công khai và chữ ký số: Tác giả chỉ ra nhược điểm bùng nổ số lượng khóa của hệ mật đối xứng: trong mạng gồm $N$ thành viên cần tới $C_N^2$ khóa bí mật (ví dụ $N=12$ người cần 66 khóa), trong khi hệ khóa công khai chỉ cần đúng $N$ cặp khóa.
    • Mật mã RSA: Dựa trên bài toán phân tích số nguyên $n = p \cdot q$. Ví dụ tính toán: chọn $p=2, q=5 \implies n=10, \phi(n)=4$. Chọn khóa mã $b=3$, suy ra khóa giải mã $a=7$ (do $3 \times 7 \equiv 21 \equiv 1 \pmod 4$). Bản rõ $x=3$ mã hóa thành $y = 3^3 \pmod{10} = 7$; giải mã: $x = 7^7 \pmod{10} = 3$.
    • Mật mã ElGamal: Dựa trên bài toán logarithm rời rạc trong $\mathbb{Z}_p^*$ (yêu cầu $p$ có ít nhất 150 chữ số). Ví dụ tính toán: chọn $p=7$, phần tử nguyên thủy $\alpha=3$, khóa riêng $a=2$, tính khóa công khai $\beta = 3^2 \pmod 7 = 2$. Chọn số ngẫu nhiên $k=3$, bản rõ $x=3$ được mã hóa thành cặp $(y_1, y_2) = (3^3 \pmod 7, 3 \times 2^3 \pmod 7) = (6, 3)$; giải mã $x = 3 \times (6^2)^{-1} \pmod 7 = 3 \times 1^{-1} \pmod 7 = 3$.
    • Chữ ký số: Khóa luận định nghĩa 5 yêu cầu cốt lõi của chữ ký điện tử gồm: chứng thực, chống giả mạo, chống tái sử dụng, chống thay đổi văn bản và chống phủ nhận; quy trình kết hợp hàm băm MD5 (128 bit) để tạo bản đại diện tóm tắt; lược đồ chữ ký RSA (ký $y = x^a \pmod n$, xác minh $x \equiv y^b \pmod n$), chữ ký ElGamal (ví dụ tính toán với $p=463, g=2, a=211, r=235, x=112$ cho cặp chữ ký $(u,v)=(16,108)$), và chữ ký một lần Schnorr sử dụng cặp chữ ký $(c,s)$ với hệ thức kiểm tra $c = H(m, g^s \cdot y^c)$. Cuối chương, tác giả phân biệt các loại chữ ký chuyên biệt: chữ ký đồng thời (yêu cầu nhóm người tham gia giao thức), chữ ký ủy nhiệm (người chủ ủy quyền cho người khác ký thay nhưng vẫn định danh được người ký) và chữ ký không thể phủ nhận của Chaum & Van Antwerpen (1989) với đặc tính không thể chuyển giao.

Chương 2: Chữ ký “mù” và ứng dụng

Chương 2 đi sâu vào trọng tâm nghiên cứu của khóa luận, phân tích bản chất của chữ ký mù do David Chaum giới thiệu năm 1983:

  • Bản chất và quy trình tổng quát của chữ ký mù: Chữ ký mù cho phép người ký tạo ra chữ ký hợp lệ trên một văn bản mà bản thân họ không biết nội dung văn bản đó. Chỉ duy nhất chủ sở hữu khóa bí mật mới tạo được chữ ký hợp lệ, và chữ ký sau khi xóa mù có thể được xác thực công khai bởi bất kỳ ai. Giao thức tổng quát diễn ra qua 3 bước:
    1. Làm mù (Blinding): Bên yêu cầu (A) làm mù thông điệp $x$ bằng hàm $z = \text{Blind}(x)$ nhờ một yếu tố ngẫu nhiên bí mật rồi gửi $z$ cho người ký (B).
    2. Ký mù (Signing): Người ký (B) ký lên $z$ bằng thuật toán $y = \text{Sign}(z)$ và gửi lại $y$ cho A.
    3. Xóa mù (Unblinding): Bên yêu cầu (A) tiến hành giải trừ yếu tố làm mù trên $y$ để thu được chữ ký hợp lệ của B trên thông điệp gốc $x$.
  • Lược đồ chữ ký mù RSA: Sử dụng cấu trúc cặp khóa RSA gồm modulo $n = p \cdot q$, khóa công khai $b$ và khóa bí mật $a$ thỏa mãn $a \cdot b \equiv 1 \pmod{\phi(n)}$. Bên A chọn số ngẫu nhiên $r \in \mathbb{Z}_n^*$ sao cho tồn tại phần tử nghịch đảo $r^{-1} \pmod n$.
    • Hàm làm mù: $z = \text{Blind}(x) = (x \cdot r^b) \pmod n$.
    • Hàm ký mù của B: $y = \text{Sign}(z) = z^a \pmod n = (x \cdot r^b)^a \pmod n = (x^a \cdot r^{ab}) \pmod n = (x^a \cdot r) \pmod n$.
    • Hàm xóa mù của A: $\text{Unblind}(y) = (y \cdot r^{-1}) \pmod n = (x^a \cdot r \cdot r^{-1}) \pmod n = x^a \pmod n$. Kết quả thu được chính là chữ ký RSA chuẩn trên thông điệp $x$.
  • Ví dụ tính toán số học cụ thể về chữ ký mù RSA trong văn bản:
    • Khởi tạo hệ thống: Chọn $p = 3, q = 5 \implies n = 15, \phi(n) = (3-1)(5-1) = 8$. Chọn khóa công khai $b = 3$ (nguyên tố cùng nhau với 8), suy ra khóa bí mật $a = 3$ (do $3 \times 3 \equiv 9 \equiv 1 \pmod 8$). Thông điệp cần ký là $x = 2$.
    • Quá trình thực hiện:
Giai đoạn Thao tác và công thức Tính toán chi tiết Kết quả
Làm mù (Ông A) Chọn số ngẫu nhiên $r = 4$ ($\gcd(4, 15)=1$). Tính bí danh $u = \text{Blind}(x) = (x \cdot r^b) \pmod n$. $u = (2 \cdot 4^3) \pmod{15} = (2 \cdot 64) \pmod{15} = 128 \pmod{15}$ $u = 8$
Ký mù (Người B) Người B nhận bí danh $u = 8$, thực hiện ký: $v = \text{Sig}(u) = u^a \pmod n$. $v = 8^3 \pmod{15} = 512 \pmod{15}$ $v = 2$
Xóa mù (Ông A) Ông A nhận chữ ký $v=2$, thực hiện xóa mù: $\text{Unblind}(v) = (v \cdot r^{-1}) \pmod n$. Biết $4^{-1} \equiv 4 \pmod{15}$ (do $4 \times 4 = 16 \equiv 1$). $\text{Unblind}(v) = (2 \cdot 4) \pmod{15}$ $8$ (Chính là $x^a = 2^3 \pmod{15}$)
  • Ứng dụng của chữ ký mù trong thanh toán tiền điện tử: Mô phỏng giao dịch mua sách trị giá 50$ giữa Alice và Bob thông qua dịch vụ ngân hàng:
    • Rút tiền: Alice tạo đồng tiền điện tử $C$ chứa số serial và mệnh giá 50$, yêu cầu ngân hàng ký mù lên $C$. Khi giao thức ký thành công, ngân hàng trừ 50$ trong tài khoản Alice mà không biết số serial thực của $C$.
    • Tiêu tiền (Spending): Alice chuyển đồng tiền $C$ đã có chữ ký mù của ngân hàng cho Bob để lấy quyển sách. Bob xác minh tính hợp lệ của chữ ký; nếu hợp lệ, Bob chấp nhận giao dịch.
    • Gửi tiền (Deposit): Bob nộp $C$ cho ngân hàng. Ngân hàng xác thực chữ ký và đối chiếu cơ sở dữ liệu xem số serial của $C$ đã được tiêu trước đó chưa. Nếu chưa tiêu, ngân hàng cộng 50$ vào tài khoản của Bob. Do đồng tiền $C$ được ký mù, ngân hàng không thể truy vết được đồng tiền này từng được rút bởi Alice, đảm bảo tính nặc danh giao dịch.
  • Ứng dụng của chữ ký mù trong bỏ phiếu trực tuyến: Đặt bài toán cử tri Việt Nam bỏ phiếu biểu quyết chấp thuận/không chấp thuận một dự án hoặc bầu chọn 1 trong số $n$ ứng viên. Quy trình gồm 3 giai đoạn:
    • Giai đoạn 1 (Đăng ký quyền bỏ phiếu): Cử tri xuất trình Chứng minh thư nhân dân (CMND) để ban bầu cử xác thực điều kiện cử tri. Để bảo vệ danh tính, cử tri tự sinh một số định danh ngẫu nhiên lớn $x_i$, sau đó thực hiện làm mù thành bí danh $z_i = \text{Blind}(x_i)$ rồi gửi cho ban bầu cử. Ban bầu cử kiểm tra tính hợp lệ và tránh trùng lặp trên sổ đăng ký (nếu trùng bí danh sẽ yêu cầu cử tri chọn lại định danh), lưu thông tin CMND kèm bí danh để chống việc bỏ phiếu 2 lần, sau đó ký mù lên $z_i$ và gửi lại cho cử tri. Cử tri tiến hành xóa mù trên chữ ký nhận được để thu về chữ ký hợp lệ của ban bầu cử trên định danh thật $x_i$.
    • Giai đoạn 2 (Bỏ phiếu): Cử tri chọn lựa thông tin lá phiếu, tiến hành mã hóa nội dung lá phiếu, sau đó gửi kèm định danh thật $x_i$ cùng chữ ký hợp lệ (đã xóa mù) trực tiếp tới ban kiểm phiếu.
    • Giai đoạn 3 (Kiểm phiếu): Ban kiểm phiếu kiểm tra cặp định danh $x_i$ và chữ ký đi kèm; nếu hợp pháp sẽ ghi nhận lá phiếu vào hòm phiếu. Quá trình này đảm bảo ban bầu cử không biết cử tri bầu cho ai, còn ban kiểm phiếu chỉ kiểm tra tính hợp lệ của lá phiếu mà không thể liên kết định danh $x_i$ với danh tính thực của cử tri.

Chương 3: Chương trình thử nghiệm

Theo danh mục mục lục của khóa luận (trang 51 đến 57), Chương 3 được cấu trúc thành 4 nội dung kỹ thuật:

  • Phân tích yêu cầu hệ thống cho việc cài đặt thử nghiệm chữ ký mù.
  • Xây dựng và mô tả các thành phần chức năng của chương trình.
  • Thiết kế giao diện tương tác người dùng của chương trình.
  • Cài đặt kịch bản ứng dụng thử nghiệm chữ ký mù.

(Ghi chú thư mục: Phần nội dung chi tiết dạng văn bản toàn văn của Chương 3 không nằm trong phạm vi văn bản nguồn được cung cấp; tài liệu trích đoạn chỉ thể hiện kết cấu mục lục của chương này).

Thiết kế và triển khai

Căn cứ vào cấu trúc mục lục được công bố tại trang 1 của văn bản khóa luận, phần thiết kế và triển khai của tác giả được bố trí trọn vẹn trong Chương 3 mang tên "Chương trình thử nghiệm" với 4 tiểu mục kỹ thuật:

  1. Yêu cầu hệ thống: Xác định các thông số kỹ thuật, cấu hình phần cứng và môi trường hệ điều hành cần thiết để thực thi ứng dụng mật mã.
  2. Các thành phần của chương trình: Phân chia kiến trúc phần mềm thành các mô-đun chức năng, phụ trách việc sinh khóa RSA, thực hiện các hàm biến đổi làm mù thông điệp, tạo chữ ký số trên dữ liệu đã làm mù và thuật toán xóa mù.
  3. Giao diện chương trình: Xây dựng màn hình tương tác trực quan cho phép người dùng nhập bản rõ, quan sát các giá trị số sau khi làm mù, chữ ký trung gian và kết quả xác minh chữ ký sau khi xóa mù.
  4. Ứng dụng chữ ký “mù”: Hiện thực hóa kịch bản thử nghiệm mô phỏng quy trình ký mù phục vụ giao dịch điện tử hoặc bầu cử trực tuyến.

Do văn bản trích đoạn kết thúc tại trang 50 và không đính kèm mã nguồn chi tiết hay ảnh chụp giao diện, các thông số về ngôn ngữ lập trình cụ thể, thư viện mã hóa và kết quả kiểm thử định lượng không được văn bản ghi nhận chi tiết.

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

Khóa luận tốt nghiệp của tác giả Trần Thị Chiên mang lại các kết quả học thuật và đóng góp cụ thể:

  • Hệ thống hóa toán học chặt chẽ: Khóa luận đã xây dựng một bức tranh toán học hoàn chỉnh cho mật mã học, từ các định lý số học nguyên thủy (Euclid, Mersenne, Fermat, Euler) đến các thuật toán tính toán modulo quan trọng (Euclid mở rộng, bình phương liên tiếp tính lũy thừa). Mọi công thức đều đi kèm thuật toán mã giả và ví dụ số học thực nghiệm có đối soát từng bước.
  • Phân tích định lượng các hệ mật mã kinh điển: Tác giả đã tổng hợp và đối sánh định lượng không gian khóa của các hệ mã cổ điển (từ 26 khóa của Caesar, 312 khóa của Affine, $308.776$ khóa của Vigenère với $m=6$, cho đến $26!$ của mã thay thế), chứng minh bằng lý thuyết độ phức tạp thuật toán lý do các hệ mật cổ điển không thể đảm bảo an toàn trước máy tính hiện đại.
  • Hiện thực hóa chi tiết cơ chế chữ ký mù RSA: Đóng góp trọng tâm của tác giả là đã giải thích tường minh cơ chế toán học của chữ ký mù RSA qua các biểu thức đại số $(x \cdot r^b)^a \equiv x^a \cdot r \pmod n$, đồng thời cung cấp một ví dụ số học hoàn chỉnh với các thông số $p=3, q=5, n=15, b=3, a=3, x=2, r=4$, chứng minh tính đúng đắn của việc phục hồi chữ ký $x^a \pmod{15} = 8$ sau khi xóa mù.
  • Mô hình hóa quy trình giải pháp cho hai bài toán thực tiễn: Khóa luận đã chuẩn hóa quy trình phân quyền và trao đổi dữ liệu 3 giai đoạn đối với tiền điện tử (Rút tiền - Tiêu tiền - Gửi tiền) và bỏ phiếu trực tuyến (Đăng ký - Bỏ phiếu - Kiểm phiếu), chỉ ra giải pháp kỹ thuật để đảm bảo đồng thời tính nặc danh của người dùng và tính toàn vẹn, chống gian lận của hệ thống.

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

  • Hạn chế của nghiên cứu:
    • Về mặt lý thuyết xử lý va chạm: Trong giao thức bỏ phiếu điện tử, khi xảy ra trùng lặp bí danh giữa các cử tri, giải pháp tác giả nêu là yêu cầu cử tri tự chọn lại định danh ngẫu nhiên khác. Văn bản chưa phân tích sâu giải pháp thuật toán tự động giải quyết xung đột định danh trên quy mô dữ liệu cử tri lớn.
    • Về mặt thử nghiệm: Văn bản trích đoạn chưa cung cấp các số liệu đo kiểm thực nghiệm về thời gian xử lý, độ trễ mạng hay khả năng chịu tải của chương trình thử nghiệm khi số lượng người dùng đồng thời tăng cao.
  • Hướng nghiên cứu tiếp:
    • Ngay trong phần Lời cảm ơn, tác giả đã khẳng định hướng nghiên cứu tiếp theo sau khi tốt nghiệp là tiếp tục nghiên cứu chuyên sâu trong lĩnh vực an toàn thông tin.
    • Mở rộng nghiên cứu chữ ký mù từ nền tảng RSA sang các hệ mật mã hiện đại khác (như mật mã đường cong Elliptic - ECC) nhằm tối ưu hóa độ dài khóa và tốc độ tính toán, đồng thời hoàn thiện hệ thống bỏ phiếu trực tuyến hoàn chỉnh có khả năng triển khai diện rộng.

Giá trị tham khảo

Công trình khóa luận có giá trị tham khảo thiết thực cho các nhóm đối tượng sau:

  • Sinh viên ngành An toàn thông tin, Công nghệ thông tin và Khoa học máy tính: Khóa luận là tài liệu tham khảo tốt cho học phần Mật mã học và An toàn mạng. Đặc biệt, các phần trình bày thuật toán Euclid mở rộng, thuật toán bình phương và nhân liên tiếp kèm bảng tính số học từng bước giúp sinh viên nắm vững phương pháp giải các bài toán modulo lớn.
  • Học viên, nghiên cứu sinh nghiên cứu về chữ ký số và hệ thống nặc danh: Phần phân tích chữ ký mù RSA ở Chương 2 cung cấp nền tảng toán học và quy trình giao thức rõ ràng, dễ tiếp cận cho những ai bắt đầu tìm hiểu về các công nghệ bảo vệ quyền riêng tư (privacy-preserving protocols).
  • Kỹ sư phát triển hệ thống bỏ phiếu điện tử và ví điện tử: Mô hình phân tách vai trò 3 giai đoạn trong bỏ phiếu điện tử (tách biệt giữa ban bầu cử nắm danh tính và ban kiểm phiếu nắm lá phiếu) cùng quy trình kiểm tra tiền điện tử chống tiêu lặp (double-spending) là tài liệu tham khảo hữu ích cho việc thiết kế kiến trúc bảo mật nghiệp vụ.

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

1. Ý tưởng cốt lõi của chữ ký mù là gì và do ai đề xuất đầu tiên?

Ý tưởng cốt lõi của chữ ký mù là cho phép người ký tạo ra một chữ ký số hợp lệ trên một văn bản mà chính người ký hoàn toàn không biết nội dung của văn bản đó. Chỉ có người yêu cầu ký mới có khả năng xóa mù để lấy chữ ký hợp lệ trên bản rõ, và bất kỳ ai cũng có thể xác minh tính đúng đắn của chữ ký này bằng khóa công khai. Khái niệm chữ ký mù được David Chaum giới thiệu lần đầu tiên vào năm 1983.

2. Quá trình làm mù, ký mù và xóa mù trong ví dụ RSA của khóa luận được tính toán ra sao?

Trong ví dụ số của khóa luận, hệ thống chọn $p = 3, q = 5 \implies n = 15, \phi(n) = 8$; khóa công khai $b = 3$, khóa bí mật $a = 3$; thông điệp cần ký là $x = 2$, số làm mù ngẫu nhiên là $r = 4$:

  • Làm mù: Ông A tính bí danh $u = x \cdot r^b \pmod n = 2 \cdot 4^3 \pmod{15} = 128 \pmod{15} = 8$.
  • Ký mù: Người B ký trên bí danh $u$, tính $v = u^a \pmod n = 8^3 \pmod{15} = 512 \pmod{15} = 2$.
  • Xóa mù: Ông A nhận $v=2$, tính $\text{Unblind}(v) = v \cdot r^{-1} \pmod{15} = 2 \cdot 4 \pmod{15} = 8$. Giá trị 8 chính là chữ ký đúng của RSA trực tiếp ($2^3 \pmod{15} = 8$).

3. Trong ứng dụng tiền điện tử, chữ ký mù giúp ngăn chặn việc theo vết người tiêu dùng như thế nào?

Khi Alice rút tiền, cô tạo đồng tiền $C$ (gồm số serial và mệnh giá 50$) và yêu cầu ngân hàng ký mù lên $C$. Ngân hàng chỉ ký trên dữ liệu đã làm mù và trừ tiền trong tài khoản của Alice, hoàn toàn không biết số serial thực tế của $C$. Khi Alice dùng $C$ để mua sách của Bob và Bob nộp $C$ lại cho ngân hàng, ngân hàng chỉ xác thực chữ ký và ghi nhận số serial để chống tiêu hai lần. Vì chưa từng nhìn thấy số serial này khi Alice rút tiền, ngân hàng không thể liên kết đồng tiền nhận được từ Bob với tài khoản của Alice, giúp giao dịch hoàn toàn không lưu vết người tiêu.

4. Hệ thống bỏ phiếu trực tuyến trong khóa luận giải quyết bài toán nặc danh của cử tri bằng cách nào?

Hệ thống giải quyết bài toán nặc danh bằng quy trình 3 giai đoạn: Cử tri sinh ngẫu nhiên một số định danh $x_i$ rồi làm mù thành $z_i$ trước khi nộp cho ban bầu cử kèm CMND. Ban bầu cử chỉ kiểm tra quyền cử tri và ký mù lên bí danh $z_i$ mà không biết định danh thật $x_i$. Sau đó, cử tri tự xóa mù để lấy chữ ký của ban bầu cử trên định danh $x_i$, rồi gửi lá phiếu đã mã hóa kèm cặp $(x_i, \text{chữ ký})$ trực tiếp tới ban kiểm phiếu. Ban kiểm phiếu kiểm tra chữ ký thấy hợp lệ thì chấp nhận phiếu mà không biết $x_i$ thuộc về công dân cụ thể nào.

5. Vì sao hệ mật mã đối xứng gặp khó khăn trong môi trường truyền thông lớn như mạng Internet?

Hệ mật đối xứng đòi hỏi mỗi cặp người dùng muốn trao đổi an toàn phải chia sẻ một khóa bí mật riêng. Với $N$ người tham gia, tổng số khóa bí mật cần thiết là $C_N^2 = \frac{N(N-1)}{2}$. Ví dụ chỉ với 12 người đã cần tới 66 khóa; khi số lượng người dùng lên đến hàng triệu trên Internet, số lượng khóa sẽ bùng nổ khổng lồ và việc phân phối khóa an toàn trước khi truyền tin trở nên bất khả thi. Ngược lại, hệ mật khóa công khai giải quyết triệt để vấn đề này vì chỉ cần đúng $N$ cặp khóa cho $N$ người.

Kết luận

Khóa luận tốt nghiệp của tác giả Trần Thị Chiên là một công trình nghiên cứu học thuật hoàn chỉnh về cơ sở toán học và kỹ thuật ứng dụng của chữ ký mù dựa trên nền tảng RSA trong lĩnh vực an toàn thông tin. Tác giả đã hệ thống hóa từ lý thuyết số học modulo, phân tích các hệ mật mã kinh điển đến việc xây dựng chi tiết các bước tính toán và ví dụ số học cho lược đồ chữ ký mù. Các mô hình ứng dụng được đề xuất trong thanh toán tiền điện tử và hệ thống bỏ phiếu trực tuyến đã làm rõ giải pháp bảo đảm tính ẩn danh và an toàn dữ liệu trên môi trường mạng. Công trình mang lại giá trị tham khảo rõ ràng về mặt lý thuyết toán học mật mã và mô hình thiết kế giao thức bảo mật cho sinh viên cũng như các nhà nghiên cứu chuyên ngành.