Giới thiệu dự án

Sự bùng nổ của điện toán đám mây (Cloud Computing) đã tạo nên bước ngoặt lớn trong việc tối ưu hóa hạ tầng lưu trữ và năng lực xử lý phân tán cho các tổ chức, doanh nghiệp. Theo các báo cáo thị trường công nghệ, quy mô thị trường điện toán đám mây toàn cầu đạt 371,4 tỷ USD vào năm 2020 và dự kiến vượt mốc 832,1 tỷ USD vào năm 2025, với hơn 100 Zettabytes dữ liệu được lưu trữ trên nền tảng đám mây (chiếm khoảng 50% tổng dung lượng dữ liệu toàn cầu). Tuy nhiên, việc thuê ngoài cơ sở hạ tầng đồng nghĩa với việc chủ sở hữu dữ liệu (Data Owner - DO) đánh mất quyền kiểm soát vật lý trực tiếp đối với tài nguyên số của mình.

+-------------------------------------------------------------------------+
|                  MÔ HÌNH HỆ THỐNG AN TOÀN TRÊN SQL/CLOUD                |
+-------------------------------------------------------------------------+
|  [Data Owner]                                                           |
|       |                                                                 |
|       +--> Phân mảnh & Mã hóa dữ liệu (AES-CBC / Symmetric Key)         |
|       +--> Mã hóa khóa nội dung bằng CP-ABE (Waters11 / FAME / MA-ABE)  |
|       +--> Xây dựng Chỉ mục mã hóa (Encrypted Inverted Index - SSE)    |
|       |                                                                 |
|       v                                                                 |
|  [Cloud Server / SQL RDBMS]                                             |
|       |                                                                 |
|       +--- Lưu trữ: Ciphertext Cột/Bảng + Encrypted Index + Images      |
|       +--- Thực thi tìm kiếm trên bản mã (Trapdoor / SearchToken)       |
|       +--- Cập nhật bản mã tự động khi thu hồi thuộc tính (CTUpdate)    |
|       |                                                                 |
|       v                                                                 |
|  [Data User]                                                            |
|       |                                                                 |
|       +<-- Nhận Search Token từ Từ khóa tìm kiếm                        |
|       +<-- Nhận Khóa bí mật (SK) từ các Attribute Authorities (AA)      |
|       +<-- Giải mã thành công nếu tập thuộc tính thỏa mãn LSSS Policy   |
+-------------------------------------------------------------------------+

Vấn đề nghiên cứu và Thách thức kỹ thuật

Các nhà cung cấp dịch vụ đám mây (Cloud Service Provider - CSP) được xem là đối tượng "Honest-but-Curious" (trung thực nhưng tò mò) – họ tuân thủ giao thức vận hành nhưng luôn có xu hướng khai thác, phân tích các dữ liệu nhạy cảm lưu trữ trên hệ thống. Khi sử dụng các phương pháp mật mã truyền thống, hệ thống vấp phải hai rào cản cốt lõi:

  • Hạn chế trong kiểm soát truy cập mịn: Cơ chế mã hóa khóa đối xứng (AES) hoặc khóa công khai (RSA) cổ điển đòi hỏi phải biết trước danh tính người nhận hoặc chia sẻ chung khóa bí mật. Khi số lượng người dùng lớn và vai trò thay đổi liên tục, chi phí quản lý khóa, phân phối khóa và lưu trữ bản mã bị nhân bản theo cấp số nhân ($O(N)$).
  • Gián đoạn chức năng xử lý và tìm kiếm: Dữ liệu sau khi mã hóa hoàn toàn mất đi cấu trúc ngữ nghĩa ban đầu. Các câu truy vấn tìm kiếm truyền thống (SELECT * FROM table WHERE condition) trên hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) không thể thực thi trực tiếp trên bản mã nếu không giải mã toàn bộ dữ liệu về bản rõ, dẫn đến nguy cơ lộ lọt dữ liệu và tiêu tốn tài nguyên truyền tải cực lớn. Hơn nữa, các giải pháp tìm kiếm trên dữ liệu mã hóa (Searchable Encryption - SE) thông thường dễ bị tổn thương trước các cuộc tấn công suy luận rò rỉ (Leakage-Abuse Attacks) như Count Attack hoặc File Injection Attack.

Mục tiêu của dự án

  1. Nghiên cứu & Thực nghiệm chuyên sâu các lược đồ CP-ABE tiên tiến: Phân tích cấu trúc toán học, độ phức tạp tính toán và hiệu năng của ba lược đồ: Ciphertext-Policy Attribute-Based Encryption của Brent Waters (Waters11), Fast Attribute-based Message Encryption (FAME) và Multi-Authority ABE hỗ trợ thu hồi thuộc tính (MA-ABE).
  2. Nghiên cứu & Đánh giá các lược đồ Mã hóa có thể tìm kiếm đối xứng (SSE): Hiện thực và tối ưu hóa lược đồ Symmetric Searchable Encryption của Curtmola và Dynamic SSE (DSSE) trên chỉ mục đảo ngược (Inverted Index).
  3. Hiện thực hóa Hệ thống quản lý Hồ sơ Sức khỏe Điện tử (EHR/PHR): Xây dựng ứng dụng hoàn chỉnh tích hợp trên hệ quản trị cơ sở dữ liệu quan hệ SQL, bảo vệ dữ liệu bệnh án nhạy cảm, hình ảnh xét nghiệm y khoa thông qua cơ chế mã hóa thuộc tính và tìm kiếm an toàn trên bản mã.

Phạm vi và Giới hạn đề tài

  • Phạm vi: Tập trung vào kỹ thuật mã hóa dựa trên chính sách bản mã (CP-ABE) với cấu trúc truy cập LSSS (Linear Secret Sharing Scheme) và kỹ thuật tìm kiếm trên dữ liệu mã hóa sử dụng chỉ mục từ khóa (Index-based SSE).
  • Giới hạn: Thực nghiệm trên hai hệ đường cong Elliptic tiêu chuẩn là SS512 (đường cong đối xứng bậc 512-bit) và MNT224 (đường cong bất đối xứng loại 3 bậc 224-bit). Mô hình tập trung vào việc bảo vệ bảo mật dữ liệu lưu trữ tĩnh (Data-at-Rest) và dữ liệu khi truy vấn tìm kiếm (Data-in-Use) trên đám mây.

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

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

Tiêu chí so sánh Kiểm soát truy cập truyền thống (RBAC / ACL) Mã hóa khóa công khai truyền thống (RSA / ElGamal) Mã hóa thuộc tính CP-ABE tiêu chuẩn (Waters11) Giải pháp tích hợp: CP-ABE (FAME / MA-ABE) + SSE
Bảo vệ dữ liệu phía Máy chủ (CSP) Kém (CSP toàn quyền đọc dữ liệu bản rõ) Tốt (Dữ liệu được mã hóa đầu cuối) Rất tốt (Mã hóa đầu cuối kết hợp điều khiển truy cập) Tuyệt đối (Bảo mật cả dữ liệu lẫn truy vấn tìm kiếm)
Độ linh hoạt trong phân quyền Trung bình (Dựa trên cấu hình cứng của DB) Kém (Phải mã hóa riêng cho từng cá nhân) Cao (Chính sách logic AND, OR, threshold) Rất cao (Hỗ trợ biểu thức logic phức tạp, đa cơ quan cấp phát)
Chi phí giải mã (Decryption Cost) $O(1)$ (Không tốn chi phí mật mã) $O(1)$ (1 phép lũy thừa/giải mã) $O(N)$ (Tăng tuyến tính theo số thuộc tính thỏa mãn) $O(1)$ cố định (Chỉ 6 phép Pairing với FAME)
Khả năng tìm kiếm dữ liệu Có sẵn trên RDBMS (Bản rõ) Không thể tìm kiếm trực tiếp trên bản mã Không hỗ trợ tìm kiếm trực tiếp Tìm kiếm tốc độ cao qua Trapdoor/Index mã hóa
Thu hồi quyền người dùng (Revocation) Dễ dàng (Sửa DB) Phức tạp (Thu hồi chứng chỉ/cặp khóa) Rất tốn kém (Phải mã hóa lại toàn bộ dữ liệu) Tối ưu (Cập nhật cục bộ bản mã trên Cloud thông qua Update Key)

Yêu cầu hệ thống theo mô hình MoSCoW

  • Must-Have (Bắt buộc phải có):
    • Cơ chế mã hóa khóa nội dung sử dụng thuật toán CP-ABE kết hợp mã hóa đối xứng AES.
    • Phân quyền động dựa trên biểu thức logic chuyển đổi về ma trận LSSS.
    • Tìm kiếm dữ liệu hồ sơ y tế thông qua chỉ mục mã hóa SSE mà không làm lộ từ khóa tìm kiếm cho máy chủ.
    • Cơ chế thu hồi thuộc tính người dùng tức thời (Attribute Revocation) không đòi hỏi mã hóa lại toàn bộ cơ sở dữ liệu.
  • Should-Have (Nên có):
    • Tối ưu hóa thời gian giải mã về mức hằng số $O(1)$ độc lập với độ dài của chính sách truy cập.
    • Hỗ trợ kiến trúc đa ủy quyền (Multi-Authority) giúp các bộ phận độc lập tự quản lý thuộc tính.
  • Could-Have (Có thể mở rộng):
    • Hỗ trợ tìm kiếm mờ (Fuzzy Keyword Search) và tìm kiếm đa từ khóa kết hợp (Multi-Keyword Conjunctive Search).
  • Won't-Have (Không thực hiện trong phạm vi này):
    • Chống tấn công phân tích lưu lượng nâng cao dựa trên cấu trúc ORAM (Oblivious RAM).

Thiết kế hệ thống

Kiến trúc hệ thống bao gồm 5 thực thể chính:

  1. Certificate Authority (CA): Cơ quan quản trị trung tâm, chịu trách nhiệm khởi tạo tham số hệ thống toàn cục ($GPP$), cấp phát định danh duy nhất ($uid$) và cặp khóa toàn cục ($GPK_{uid}, GSK_{uid}$) cho người dùng và các cơ quan cấp thuộc tính ($AA$).
  2. Attribute Authorities ($AA_k$): Các cơ quan quản trị thuộc tính độc lập (ví dụ: Bệnh viện quản lý thuộc tính Doctor, Hội đồng thử nghiệm quản lý thuộc tính Researcher). Mỗi $AA$ quản lý một tập thuộc tính con $S_{aid}$, sinh khóa công khai ($PK_{aid}$) và cấp phát khóa bí mật thuộc tính ($SK_{uid, aid}$) cho người dùng.
  3. Data Owner (DO - Chủ sở hữu dữ liệu): Phân mảnh dữ liệu hồ sơ bệnh nhân, mã hóa dữ liệu nhạy cảm bằng AES với khóa đối xứng $\kappa$, sau đó mã hóa $\kappa$ bằng thuật toán CP-ABE theo cấu trúc chính sách $(M, \rho)$. Đồng thời, DO trích xuất từ khóa, tạo bảng chỉ mục đảo ngược và mã hóa thành $Encrypted_Index$ bằng lược đồ SSE trước khi tải lên máy chủ.
  4. Cloud Service Provider (CSP / SQL Server): Lưu trữ các bảng dữ liệu đã mã hóa và chỉ mục mã hóa. Khi nhận được Search Token ($Trapdoor$), CSP thực thi tìm kiếm trực tiếp trên $Encrypted_Index$ và trả về các định danh bản ghi tương ứng. Khi có sự kiện thu hồi thuộc tính, CSP trực tiếp chạy thuật toán cập nhật bản mã ($CTUpdate$) mà không cần giải mã.
  5. Data User (DU - Người dùng dữ liệu): Bác sĩ, chuyên viên y tế hoặc bệnh nhân gửi Search Token để lấy các bản ghi mã hóa từ CSP, sử dụng tập khóa bí mật cá nhân $SK_{uid}$ để giải mã và phục hồi dữ liệu gốc nếu thỏa mãn chính sách truy cập.
                      +-----------------------------+
                      | Certificate Authority (CA)  |
                      +-----------------------------+
                        /                         \
            (Register) /                           \ (Register)
                      v                             v
       +-----------------------+           +-----------------------+
       | Attribute Auth 1 (AA) |           | Attribute Auth 2 (AA) |
       +-----------------------+           +-----------------------+
            |       \                         /       |
   (PK/VK)  |        \ (Issue SK) (Issue SK) /        | (PK/VK)
            v         \                     /         v
    +-------------+    v                   v    +-------------+
    | Data Owner  |       +-------------+       |  Data User  |
    |    (DO)     |       |  (Doctor /  |       |    (DU)     |
    +-------------+       | Researcher) |       +-------------+
       |       |          +-------------+              |
       | Encrypt Data            ^                     | Query (Trapdoor)
       | & Index                 | Decrypt (SK)        v
       v       v                 |             +---------------+
   +---------------------------------------+   | Cloud Server  |
   | Cloud Server / Database (Encrypted)   |<--| (Exec Search) |
   +---------------------------------------+   +---------------+

Technology Stack

  • Ngôn ngữ phát triển: Python 3.8+
  • Thư viện mật mã chuyên dụng: Charm-Crypto Framework (phiên bản 0.50), Stanford PBC (Pairing-Based Cryptography) Library, GMP (GNU Multiple Precision Arithmetic Library), OpenSSL 1.1.1+.
  • Hệ quản trị cơ sở dữ liệu: MySQL 8.0 / SQLite 3 (Lưu trữ quan hệ với các cột BLOB chứa Payload bản mã mật mã).
  • Hệ điều hành thực nghiệm: Ubuntu Linux 20.04 LTS (x86_64), CPU Intel Core i7, 16GB RAM.
  • Đường cong Elliptic sử dụng:
    • SS512: Symmetric Pairing Type-1 curve với kích thước nhóm $G$ là 512-bit.
    • MNT224: Asymmetric Pairing Type-3 curve với kích thước nhóm $G_1$ là 224-bit.

Implementation và kết quả

Development Process & Core Algorithms

1. Thuật toán Chuyển đổi Biểu thức Logic sang Ma trận LSSS

Thuật toán phân tích cây cú pháp trừu tượng (Syntax Tree) của chính sách truy cập, trong đó nút lá là các thuộc tính và nút gốc/trung gian là các cổng logic AND, OR.

# Minh họa cấu trúc chuyển đổi biểu thức truy cập sang ma trận LSSS
# Đầu vào: Biểu thức logic dạng cây (Policy Tree)
# Đầu ra: Ma trận LSSS M (l x n) và hàm ánh xạ rho: {1..l} -> Attributes

def build_lsss_matrix(policy_tree):
    vector_var = [1] # Gán vector ban đầu tại nút gốc
    c = 1            # Biến đếm số chiều cột
    matrix_rows = []
    mapping_rho = {}

    def traverse(node, current_vector):
        nonlocal c
        if node.is_leaf():
            # Đệm các giá trị 0 cho đủ kích thước c
            padded_vector = current_vector + [0] * (c - len(current_vector))
            matrix_rows.append(padded_vector)
            mapping_rho[len(matrix_rows) - 1] = node.attribute
        elif node.op == 'OR':
            traverse(node.left, current_vector)
            traverse(node.right, current_vector)
        elif node.op == 'AND':
            c += 1
            # Nhánh trái nhận vector (current_vector | 1)
            # Nhánh phải nhận vector (0...0 | -1)
            left_vec = current_vector + [0] * (c - 1 - len(current_vector)) + [1]
            right_vec = [0] * (c - 1) + [-1]
            traverse(node.left, left_vec)
            traverse(node.right, right_vec)

    traverse(policy_tree.root, vector_var)
    return normalize_matrix(matrix_rows), mapping_rho

2. Thuật toán Lược đồ CP-ABE Hiệu suất cao (FAME)

FAME tối ưu hóa chi phí tính toán trên đường cong bất đối xứng Loại 3: $e: G \times H \rightarrow G_T$.

  • Khởi tạo ($Setup$): Chọn $g \in G, h \in H$; các giá trị bí mật $a_1, a_2, b_1, b_2, d_1, d_2, d_3 \in \mathbb{Z}_p$. Khóa công khai: $PK = (h, H_1=h^{b_1}, H_2=h^{b_2}, T_1=e(g, h)^{d_1 a_1 + d_3}, T_2=e(g, h)^{d_2 a_2 + d_3})$.
  • Giải mã ($Decrypt$): Tận dụng sự triệt tiêu đại số giữa các thành phần khóa và bản mã, chỉ sử dụng đúng 6 phép ánh xạ song tuyến ($6$ Bilinear Pairings) để phục hồi bản rõ $m$:

$$\text{Bản rõ } m = \frac{CT' \cdot \prod_{j=1}^3 e\left(\prod_{i \in I} CT_{i,j}^{\omega_i}, SK_{0,j}\right)}{\prod_{j=1}^3 e\left(\prod_{i \in I} SK_{i,j}^{\omega_i}, CT_{0,j}\right)}$$

Trong đó ${\omega_i}{i \in I}$ là các hằng số tái tạo LSSS thỏa mãn $\sum{i \in I} \omega_i M_i = (1, 0, \dots, 0)$.

+-----------------------------------------------------------------------------------+
|            THUẬT TOÁN GIẢI MÃ FAME (CỐ ĐỊNH 6 PHÉP ÁNH XẠ SONG TUYẾN)             |
+-----------------------------------------------------------------------------------+
| 1: Input: PK, CT = (CT0, CT1..CTm, CT'), SK = (SK0, {SKy}, SK')                   |
| 2: Xác định tập chỉ số I thỏa mãn chính sách truy cập: sum(w_i * M_i) = (1, 0..0) |
| 3: num = CT'                                                                      |
| 4: den = 1                                                                        |
| 5: for j = 1 to 3 do                                                              |
| 6:     P_j = 1; Q_j = 1                                                           |
| 7:     for each i in I do                                                         |
| 8:         P_j = P_j * (CT_{i,j})^{w_i}                                           |
| 9:         Q_j = Q_j * (SK_{i,j})^{w_i}                                           |
| 10:    end for                                                                    |
| 11:    num = num * e(P_j, SK_{0,j})   <-- Tích lũy 3 phép pairing ở tử số         |
| 12:    den = den * e(Q_j, CT_{0,j})   <-- Tích lũy 3 phép pairing ở mẫu số        |
| 13: end for                                                                       |
| 14: Output: m = num / den             <-- Phục hồi chính xác khóa AES nội dung    |
+-----------------------------------------------------------------------------------+

3. Thuật toán Tìm kiếm trên Bản mã (Symmetric Searchable Encryption)

Dựa trên cấu trúc chỉ mục đảo ngược $T$, với mỗi từ khóa $w$, Data Owner tạo:

  • Khóa tìm kiếm: $K_1 = f_{k_1}(w)$, Khóa che giấu: $K_2 = f_{k_2}(w)$.
  • Search Token (Trapdoor) gửi lên CSP: $T_w = (K_1, K_2)$.
  • CSP đối sánh $Trapdoor$ với bảng băm lưu trữ bản mã của chỉ mục $Encrypted_Index$ và trích xuất danh sách $ID$ tài liệu mà hoàn toàn không suy ra được từ khóa $w$ là gì.

Testing và Validation

Thực nghiệm đo lường hiệu năng được tiến hành trên hai kịch bản độc lập:

  1. Kịch bản 1: Tăng số lượng thuộc tính hệ thống từ 0 đến 500 (Universe Size), cố định độ phức tạp chính sách truy cập (policy = "1 AND 2 AND 3 AND 4").
  2. Kịch bản 2: Cố định số thuộc tính hệ thống ở mức 50, tăng dần độ dài chính sách truy cập từ 1 đến 40 thuộc tính liên kết (policy = "Attr1 AND Attr2 AND ... AND AttrN").

Bảng kết quả thực nghiệm hiệu năng chi tiết (Đường cong SS512)

Chỉ số thực nghiệm Lược đồ Waters11 (CP-ABE) Lược đồ FAME (CP-ABE) Lược đồ MA-ABE (Đa ủy quyền)
Thời gian Setup (500 Thuộc tính) 3.25 s 0.08 s (Nhanh nhất) 12.84 s (Do gồm CA + AA Setup)
Kích thước Khóa công khai (PK) ~68.5 KB (Phụ thuộc Universe) 1.2 KB (Hằng số) 0.8 KB (GPP + GMK)
Thời gian Sinh khóa (SK Gen - 500 Attrs) 1.82 s 8.45 s 2.15 s
Kích thước Khóa riêng (User SK) 65.2 KB 184.6 KB 67.8 KB
Thời gian Mã hóa (Policy Size = 40) 0.42 s 0.85 s 0.94 s
Kích thước Bản mã CT (Policy Size = 40) 12.4 KB 24.8 KB 38.6 KB
Thời gian Giải mã (Policy Size = 40) 1.18 s (Tăng tuyến tính) 0.12 s (Cố định 6 Pairings) 1.45 s (Tăng tuyến tính)
Hỗ trợ Thu hồi thuộc tính (Revocation) Không (Phải Re-encrypt toàn bộ) Không hỗ trợ trực tiếp Có (Cập nhật bản mã tự động)
BIỂU ĐỒ SO SÁNH THỜI GIAN GIẢI MÃ KHI POLICY SIZE TĂNG DẦN (1 -> 40)
Thời gian (s)
  1.6 +                                                    [MA-ABE: 1.45s]
  1.4 |                                                *
  1.2 |                                     [Waters11: 1.18s]
  1.0 |                                 *          *
  0.8 |                             *          *
  0.6 |                         *          *
  0.4 |                     *          *
  0.2 |                 *          *
  0.0 +---+-------------+----------+-----------+-----------+---> Policy Size
         N=1           N=10       N=20        N=30        N=40
      ---------------------------------------------------------
      [FAME]: Luôn duy trì mức hằng số xấp xỉ 0.12s (6 phép Pairing)

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

+------------------------------------------------------------------------------------+
|                         BẢNG DỮ LIỆU BỆNH ÁN ĐÃ MÃ HÓA (SQL)                       |
+----+--------------------+-------------------------------+--------------------------+
| id | patient_name       | medical_diagnosis (AES+ABE)   | images_blob (Encrypted)  |
+----+--------------------+-------------------------------+--------------------------+
| 1  | Alice (Encrypted)  | 0x7F8B99A1C204E9... (Policy)  | [Encrypted File / Blood] |
| 2  | Bob (Encrypted)    | 0x3D4A88E1B902F1... (Policy)  | [Encrypted File / Eye]   |
+----+--------------------+-------------------------------+--------------------------+
  1. Bảo mật CSDL SQL toàn diện: Mã hóa thành công các trường thông tin nhạy cảm trong bảng dữ liệu bệnh nhân datapatients. Dữ liệu bản rõ, kết quả chẩn đoán và hình ảnh y khoa (images) hoàn toàn bị xáo trộn dưới dạng chuỗi nhị phân mã hóa trước khi đưa vào cơ sở dữ liệu.
  2. Kiểm soát truy cập phân quyền tuyệt đối:
    • Người dùng Alice (sở hữu tập thuộc tính thỏa mãn chính sách) thực thi giải mã dữ liệu hồ sơ bệnh án thành công trong thời gian dưới 0.15 giây.
    • Người dùng Trudy (không đủ thuộc tính ủy quyền) hoàn toàn thất bại khi cố gắng giải mã bản mã nội dung.
  3. Thực thi Thu hồi thuộc tính (Revocation) an toàn:
    • Khi tiến hành thu hồi thuộc tính HOD (Trưởng khoa) của người dùng Trudy, cơ quan $AA$ phát hành khóa cập nhật $UK$.
    • Máy chủ đám mây chạy thuật toán $CTUpdate$ tự động nâng cấp phiên bản bản mã từ $v_1$ lên $v_2$. Sau khi thu hồi, Trudy mất hoàn toàn khả năng giải mã các tài liệu chứa chính sách HOD, trong khi người dùng hợp lệ Alice chỉ cần cập nhật khóa thông qua $SKUpdate$ mà không làm gián đoạn hệ thống.
  4. Tìm kiếm từ khóa tốc độ cao trên bản mã:
    • Truy vấn tìm kiếm với từ khóa "blood" hoặc "eye" trả về chính xác các tệp hình ảnh xét nghiệm liên quan trong thời gian dưới 25 mili-giây trên tập dữ liệu thực nghiệm, hoàn toàn không để lộ từ khóa gốc cho quản trị viên cơ sở dữ liệu.

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

  1. Đột phá về Hiệu năng Giải mã CP-ABE: Lược đồ FAME loại bỏ triệt để điểm nghẽn tính toán lớn nhất của mật mã ABE truyền thống (Waters11). Bằng việc ứng dụng phép ánh xạ song tuyến Loại 3 trên đường cong MNT224, thời gian giải mã được đưa về mức hằng số tối ưu (chỉ 6 phép Pairing), giúp giảm hơn 89.8% thời gian giải mã trong các chính sách phức tạp quy mô lớn (40 thuộc tính).
  2. Cơ chế Thu hồi Phân tán không cần DO trực tuyến: Lược đồ MA-ABE giải quyết triệt để bài toán thu hồi thuộc tính bằng cách ủy quyền cho Máy chủ đám mây tính toán bản mã mới ($CTUpdate$). Data Owner sau khi tải dữ liệu lên không cần duy trì kết nối trực tuyến (Off-line DO), loại bỏ hoàn toàn chi phí truyền tải lại dữ liệu (Zero Bandwidth Re-encryption).
  3. Mô hình Bảo mật Hai lớp (Defense-in-Depth) trên RDBMS: Kết hợp đồng thời sức mạnh của CP-ABE (quản lý phân quyền truy cập nội dung mức độ mịn) và SSE (truy vấn tìm kiếm từ khóa an toàn tốc độ cao trên chỉ mục đảo ngược), thiết lập kiến trúc an toàn dữ liệu đầu cuối cho các ứng dụng thực tế trên môi trường lưu trữ đám mây.

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

+--------------------------------------------------------------------------------+
|                   KỊCH BẢN TRIỂN KHAI THỰC TẾ HỒ SƠ BỆNH ÁN (EHR)              |
+--------------------------------------------------------------------------------+
|  [Bệnh nhân / DO]                                                              |
|         |                                                                      |
|         +--> Mã hóa hồ sơ bệnh án:                                             |
|              Policy: "('HOSPITAL_A' AND 'DOCTOR') OR 'RESEARCH_INSTITUTE'"    |
|                                                                                |
|  [Bác sĩ Alice (Hospital A)]                                                   |
|         |                                                                      |
|         +--> Sở hữu SK: {Hospital_A, Doctor} --> [GIẢI MÃ THÀNH CÔNG]          |
|                                                                                |
|  [Kỹ thuật viên Bob (Hospital B)]                                              |
|         |                                                                      |
|         +--> Sở hữu SK: {Hospital_B, Doctor} --> [TỪ CHỐI TRUY CẬP / FAILED]   |
|                                                                                |
|  [Nghiên cứu viên Trudy]                                                       |
|         |                                                                      |
|         +--> Sở hữu SK: {Research_Institute}  --> [GIẢI MÃ THÀNH CÔNG]          |
|         +--> Sau khi bị thu hồi quyền:         --> [TỰ ĐỘNG KHÓA TRUY CẬP]      |
+--------------------------------------------------------------------------------+

Kịch bản Triển khai: Hệ thống Quản lý Hồ sơ Sức khỏe Điện tử (EHR/PHR)

Trong môi trường y tế hiện đại, việc chia sẻ dữ liệu bệnh án giữa các bệnh viện, trung tâm xét nghiệm, công ty bảo hiểm và viện nghiên cứu lâm sàng là nhu cầu cấp thiết:

  • Tình huống ứng dụng: Bệnh nhân tải hồ sơ bệnh án cá nhân (bao gồm lịch sử khám bệnh, dữ liệu xét nghiệm máu, hình ảnh X-quang/MRI) lên cơ sở dữ liệu đám mây. Dữ liệu được mã hóa dưới chính sách: $$\text{Policy} = \text{("HOSPITAL_A" AND "DOCTOR") OR "CARDIOLOGY_RESEARCH"}$$
  • Quyền hạn truy cập: Bác sĩ khoa tim mạch thuộc Bệnh viện A sẽ sở hữu tập khóa thuộc tính đáp ứng đầy đủ nhánh trái của chính sách và giải mã xem kết quả điều trị. Viện nghiên cứu tim mạch đáp ứng nhánh phải có thể truy cập tập dữ liệu ẩn danh để phục vụ thống kê mà không cần cấp quyền truy cập toàn bộ hệ thống bệnh viện.

Yêu cầu Triển khai và Tối ưu Chi phí (ROI)

  • Hạ tầng tối thiểu:
    • Máy chủ Database: 2 vCPU, 4GB RAM, cài đặt MySQL 8.0 / PostgreSQL 13+.
    • Máy trạm Client / Application Server: Hỗ trợ môi trường Python 3.8+ cùng thư viện Charm-Crypto.
  • Hiệu quả kinh tế & Vận hành:
    • Tiết kiệm hơn 70% chi phí băng thông so với phương thức giải mã toàn bộ dữ liệu về Client để tìm kiếm.
    • Ngăn ngừa hoàn toàn rủi ro lộ lọt dữ liệu y tế nhạy cảm (tuân thủ nghiêm ngặt các tiêu chuẩn quốc tế như HIPAA, GDPR).

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

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

  • Lược đồ MA-ABE đa ủy quyền trong nghiên cứu hiện tại được thiết kế trên đường cong đối xứng Type-1 (SS512), làm cho kích thước bản mã và chi phí lưu trữ lớn hơn so với các hệ đường cong bất đối xứng Type-3.
  • Cơ chế tìm kiếm SSE hiện tại hỗ trợ tối ưu cho việc tìm kiếm từ khóa chính xác đơn lẻ (Single Keyword Search), chưa tối ưu cho các truy vấn phức tạp như tìm kiếm toàn văn hoặc biểu thức chính quy (Regex).

Hướng nghiên cứu tiếp theo

  • Chuyển đổi và tối ưu hóa lược đồ MA-ABE sang hệ đường cong bất đối xứng Loại 3 (Asymmetric Pairing Type-3 Curve) để thu nhỏ kích thước khóa công khai và tăng tốc độ mã hóa.
  • Tích hợp kỹ thuật mã hóa tìm kiếm chống rò rỉ mẫu truy cập (Access Pattern Leakage) bằng cách kết hợp cấu trúc Oblivious RAM (ORAM) phân tán.
  • Xây dựng Module tự động chuyển đổi các câu lệnh SQL chuẩn (SELECT, JOIN, WHERE) thành các hàm Trapdoor thực thi trong suốt trên RDBMS.

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

  • Sinh viên & Học viên chuyên ngành An toàn Thông tin / Khoa học Máy tính: Tài liệu tham khảo toàn diện về cơ sở toán học của mật mã đường cong Elliptic, ánh xạ song tuyến (Bilinear Pairings) và kỹ thuật lập trình mật mã ứng dụng với Charm-Crypto.
  • Kỹ sư Phần mềm & Chuyên gia Bảo mật Hệ thống: Nắm vững mẫu thiết kế (Design Patterns) tích hợp mã hóa nâng cao CP-ABE và SSE vào hệ quản trị cơ sở dữ liệu quan hệ SQL sẵn có mà không làm thay đổi cấu trúc dữ liệu cốt lõi.
  • Doanh nghiệp & Tổ chức Y tế / Tài chính: Cung cấp giải pháp khả thi để đưa các hệ thống dữ liệu nhạy cảm lên nền tảng đám mây công cộng (Public Cloud), giải quyết triệt để rào cản pháp lý và an toàn bảo mật thông tin.

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai giải pháp này là gì?

Hệ thống yêu cầu máy chủ/máy trạm chạy hệ điều hành Linux (khuyến nghị Ubuntu 20.04 LTS trở lên), Python phiên bản 3.8+, thư viện OpenSSL, thư viện Stanford PBC, GMP và thư viện Charm-Crypto Framework được biên dịch chính xác với trình biên dịch GCC.

2. Sự khác biệt cốt lõi giữa KP-ABE và CP-ABE là gì?

Trong KP-ABE (Key-Policy ABE), chính sách truy cập được gắn liền với khóa bí mật của người dùng, còn dữ liệu bản mã được gán nhãn thuộc tính. Ngược lại, trong CP-ABE (Ciphertext-Policy ABE), chính sách truy cập logic được nhúng trực tiếp vào bản mã dữ liệu, còn khóa bí mật của người dùng đại diện cho tập thuộc tính mà họ sở hữu. CP-ABE phù hợp hơn cho các hệ thống quản trị dữ liệu doanh nghiệp vì nó cho phép chủ sở hữu dữ liệu toàn quyền quy định ai được phép đọc dữ liệu.

3. Làm thế nào để ngăn chặn các cuộc tấn công thông đồng (Collusion Attacks) trong CP-ABE?

Các thuật toán CP-ABE (như Waters11, FAME, MA-ABE) ngăn chặn tấn công thông đồng bằng cách nhúng các giá trị ngẫu nhiên hóa độc lập (ví dụ: số mũ $t \in \mathbb{Z}_p$ ngẫu nhiên trong Waters11 hoặc định danh duy nhất $uid$ trong MA-ABE) vào khóa bí mật của từng người dùng. Do các thành phần khóa bị ràng buộc đại số với giá trị ngẫu nhiên riêng biệt, hai người dùng không thể kết hợp các thuộc tính riêng lẻ của họ để giải mã một bản mã mà từng người đơn lẻ không có quyền truy cập.

4. Hệ thống xử lý thế nào khi một thuộc tính của người dùng bị thu hồi?

Trong lược đồ MA-ABE, cơ quan $AA$ quản lý thuộc tính sẽ tạo ra một khóa phiên bản mới cùng khóa cập nhật ($UK$). Khóa $UK$ này được gửi lên Máy chủ đám mây để cập nhật lại các thành phần bản mã liên quan thông qua thuật toán $CTUpdate$ mà không cần giải mã. Người dùng không bị thu hồi sẽ cập nhật khóa bí mật của mình thông qua $SKUpdate$, trong khi người dùng bị thu hồi sẽ không thể giải mã các dữ liệu thuộc phiên bản mới.

5. Việc tích hợp mã hóa SSE có làm giảm đáng kể hiệu năng truy vấn của cơ sở dữ liệu SQL không?

Không. Việc đối sánh từ khóa được thực thi thông qua bảng chỉ mục đảo ngược mã hóa (Encrypted Inverted Index) với độ phức tạp tìm kiếm chỉ là $O(1)$ cho mỗi từ khóa truy vấn. Thời gian tìm kiếm thực tế trên tập dữ liệu hồ sơ bệnh án chỉ mất khoảng 20 - 30 mili-giây, hoàn toàn đáp ứng tốt các yêu cầu thời gian thực của ứng dụng doanh nghiệp.


Kết luận

Đồ án tốt nghiệp "Mã hóa, kiểm soát truy cập và tìm kiếm trên hệ quản trị cơ sở dữ liệu SQL" của tác giả Phạm Trần Tiến Đạt (Khoa Mạng máy tính và Truyền thông, Trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM), dưới sự hướng dẫn của TS. Nguyễn Ngọc Tự, đã giải quyết thành công bài toán bảo mật và phân quyền truy cập dữ liệu nhạy cảm trên môi trường điện toán đám mây. Đề tài đã xây dựng cơ sở lý thuyết vững chắc về các lược đồ CP-ABE (Waters11, FAME, MA-ABE) và SSE, đồng thời hiện thực hóa thành công mô hình ứng dụng thực tế trên cơ sở dữ liệu SQL phục vụ quản lý hồ sơ sức khỏe điện tử (EHR). Kết quả thực nghiệm minh chứng tính khả thi vượt trội về mặt hiệu năng tính toán, khả năng mở rộng và độ an toàn tuyệt đối trước các mô hình tấn công hiện đại.