Giới thiệu dự án

Sự bùng nổ của điện toán đám mây (Cloud Computing) và các hệ cơ sở dữ liệu phân tán NoSQL đã thúc đẩy hơn 85% doanh nghiệp toàn cầu chuyển đổi hạ tầng lưu trữ sang môi trường bên thứ ba (Third-party Cloud Storage) nhằm tối ưu chi phí và tăng khả năng mở rộng. Tuy nhiên, các nhà cung cấp dịch vụ đám mây (Cloud Service Provider - CSP) về bản chất hoạt động theo mô hình "tin cậy nhưng tò mò" (honest-but-curious): họ thực thi đúng các chỉ thị lưu trữ, tính toán nhưng có xu hướng thu thập, phân tích trái phép dữ liệu nhạy cảm của khách hàng. Rủi ro rò rỉ dữ liệu, tấn công leo thang đặc quyền và các vi phạm quy định bảo mật (như GDPR, HIPAA, Luật An ninh mạng) trở thành rào cản lớn nhất đối với các hệ thống phân tán.

+-------------------------------------------------------------------------+
|                           DATA OWNER (DO)                               |
|  - Mã hóa dữ liệu JSON/Document (AES-256-GCM)                           |
|  - Gắn chính sách kiểm soát truy cập thuộc tính (CP-ABE / LSSS)         |
|  - Xây dựng chỉ mục tìm kiếm an toàn (PIPE / Secure KNN Index)          |
+------------------------------------+------------------------------------+
                                     | Upload Encrypted Data & Index
                                     v
+-------------------------------------------------------------------------+
|                  CLOUD STORAGE (Azure Cosmos DB & Blob)                 |
|  - Lưu trữ bản mã C và Search Index I                                   |
|  - Thực thi Search Matching trên Trapdoor (không giải mã)               |
|  - Tính toán Token hỗ trợ giải mã trung gian cho Data User              |
+------------------------------------+------------------------------------+
                                     ^
                                     | Search Query (Trapdoor) / Download
+------------------------------------+------------------------------------+
|                           DATA USER (DU)                                |
|  - Nhận khóa thuộc tính từ các Attribute Authorities (AAs)              |
|  - Sinh Trapdoor tìm kiếm mờ (Fuzzy Trapdoor) qua LSH                   |
|  - Giải mã bản rõ khi thỏa mãn chính sách truy cập                      |
+-------------------------------------------------------------------------+

Vấn đề thực tiễn và thách thức kỹ thuật

  1. Sự bất lực của mã hóa truyền thống trong kiểm soát truy cập động: Các cơ chế mã hóa đối xứng (AES) hoặc bất đối xứng (RSA, ECC) thông thường chỉ hỗ trợ mô hình chia sẻ dữ liệu một-một (one-to-one). Khi áp dụng vào tổ chức lớn với cơ chế kiểm soát truy cập dựa trên vai trò (RBAC), việc phân phối và quản lý khóa bùng nổ theo cấp số nhân, đồng thời không hỗ trợ kiểm soát truy cập hạt mịn (fine-grained access control) theo thuộc tính ngữ cảnh.
  2. Nghịch lý giữa bảo mật và khả năng 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 và thứ tự tự nhiên. Phương pháp truyền thống buộc người dùng phải tải toàn bộ cơ sở dữ liệu về máy trạm để giải mã rồi mới tìm kiếm cục bộ, gây lãng phí nghiêm trọng băng thông mạng, tài nguyên I/O và độ trễ phản hồi không thể chấp nhận được trong các hệ thống Big Data.
  3. Lỗ hổng từ lỗi đánh máy trong tìm kiếm trên bản mã: Hầu hết các lược đồ tìm kiếm trên bản mã (Searchable Encryption - SE) chỉ hỗ trợ tìm kiếm chính xác (exact match). Một lỗi chính tả nhỏ sẽ dẫn đến sai lệch trapdoor và làm thất bại toàn bộ truy vấn.

Mục tiêu dự án

  1. Thiết kế kiến trúc kiểm soát truy cập đa ủy quyền (Multi-Authority CP-ABE) dựa trên lược đồ DAC-MACS (Data Access Control for Multi-Authority Cloud Storage), loại bỏ điểm nghẽn của cơ quan chứng thực trung tâm và hỗ trợ cơ chế thu hồi thuộc tính động (dynamic attribute revocation).
  2. Xây dựng hệ thống tìm kiếm đa từ khóa gần đúng (Multi-Keyword Fuzzy Searchable Encryption) trên dữ liệu mã hóa ứng dụng lược đồ tích vô hướng số nguyên tố PIPE (Prime Inner Product Encryption) kết hợp kỹ thuật băm nhạy ngữ cảnh (Locality-Sensitive Hashing - LSH) và Secure KNN.
  3. Hiện thực hóa và kiểm chuẩn end-to-end trên hệ quản trị cơ sở dữ liệu NoSQL phân tán (Microsoft Azure Cosmos DB) cho bài toán quản lý và chia sẻ dữ liệu nhạy cảm trong hệ sinh thái kinh doanh bất động sản.

Phạm vi và giới hạn hệ thống

  • Phạm vi: Xử lý dữ liệu NoSQL dạng Document (JSON) có cấu trúc và bán cấu trúc; triển khai trên hạ tầng Microsoft Azure (Cosmos DB, Blob Storage, API Gateway, Azure Functions).
  • Giới hạn: Giả định kênh truyền được bảo mật bằng TLS 1.3; không xử lý bài toán tìm kiếm toàn văn trên các file media phi cấu trúc (video, audio); mô hình an toàn tập trung vào việc ngăn chặn kẻ tấn công thụ động và CSP bán tin cậy (honest-but-curious).

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 Mã hóa đối xứng truyền thống (AES + RBAC) Single-Authority CP-ABE (BSW07) Giải pháp đề xuất (DAC-MACS + PIPE trên NoSQL)
Kiểm soát truy cập Thô, phụ thuộc Access Control List trên máy chủ Hạt mịn, nhúng chính sách vào bản mã Hạt mịn, đa cơ quan quản lý thuộc tính (Multi-AA)
Rủi ro điểm lỗi đơn (SPOF) Cao (Lộ Master Key trên server là mất toàn bộ dữ liệu) Cao (Phụ thuộc duy nhất 1 Central Authority) Không (Phân tán quyền lực qua nhiều AA độc lập)
Thu hồi khóa/thuộc tính Phải mã hóa lại toàn bộ CSDL Tốn kém $O(N)$ tính toán tại client Hiệu quả cao, ủy thác việc re-encryption cho Cloud
Tìm kiếm trên bản mã Không hỗ trợ (phải tải về giải mã) Không hỗ trợ Hỗ trợ tìm kiếm mờ, đa từ khóa với độ chính xác cao
Khả năng chống thông đồng Phụ thuộc bảo mật máy chủ Chống thông đồng người dùng Chống thông đồng giữa người dùng và giữa các AA

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

  • Must-Have (Bắt buộc):
    • Mã hóa độc lập từng trường dữ liệu (field-level encryption) trong document NoSQL.
    • Phân tán việc cấp phát thuộc tính qua nhiều Attribute Authority (AA).
    • Tìm kiếm mờ đa từ khóa với độ chịu lỗi sai chính tả $f \ge 2$.
    • Thu hồi thuộc tính mà không cần cấp phát lại khóa cho toàn bộ hệ thống.
  • Should-Have (Nên có):
    • Ủy thác tính toán giải mã một phần (outsourced decryption) lên Cloud thông qua Decryption Token nhằm giảm tải cho client.
    • Tích hợp kỹ thuật tách từ gốc (Porter Stemming) để chuẩn hóa tập từ khóa.
  • Could-Have (Có thể có):
    • Xếp hạng kết quả tìm kiếm theo độ tương đồng (Ranked Search).
  • Won't-Have (Không thực hiện trong phạm vi này):
    • Tìm kiếm theo biểu thức chính quy (Regex Search) trên bản mã.

Thiết kế hệ thống

Kiến trúc tổng thể gồm 5 thực thể chính tương tác chặt chẽ thông qua các giao thức mật mã:

                  +-----------------------------------+
                  |   Central Authority (CA - UIT)    |
                  |  - Khởi tạo System Parameter (SP) |
                  |  - Đăng ký UID cho User & AA      |
                  +-----------------+-----------------+
                                    |
          +-------------------------+-------------------------+
          |                                                   |
          v                                                   v
+-----------------------+                           +-----------------------+
| Attribute Authority 1 |                           | Attribute Authority 2 |
|   (AA_NhàCungCấp)     |                           |  (AA_HànhChínhCông)   |
| - Cấp User Secret Key |                           | - Cấp User Secret Key |
| - Quản lý SK_{uid,x}  |                           | - Quản lý SK_{uid,y}  |
+-----------+-----------+                           +-----------+-----------+
            |                                                   |
            +-------------------------+-------------------------+
                                      |
                                      v
+---------------------------------------------------------------------------+
|                              DATA OWNER (DO)                              |
|  - Encrypt Payload: C = AES-GCM(Data, K)                                  |
|  - Encrypt Key: C_K = DAC-MACS.Encrypt(K, Access_Policy_Tree)             |
|  - Build Index: I = PIPE.BuildIndex(Keywords, Secret_Key)                 |
+-------------------------------------+-------------------------------------+
                                      | Push C, C_K, I
                                      v
+---------------------------------------------------------------------------+
|                   MICROSOFT AZURE CLOUD SERVICES                          |
|  +---------------------------+   +-------------------------------------+  |
|  |     Azure Cosmos DB       |   |         Azure Blob Storage          |  |
|  |  - Lưu JSON Document mã   |   |  - Lưu Index tìm kiếm nhị phân      |  |
|  |  - Lưu Metadata chính sách|   |  - Lưu Encrypted Search Traps       |  |
|  +-------------+-------------+   +------------------+------------------+  |
|                ^                                    ^                     |
|                +-----------------+------------------+                     |
|                                  | Query Execution                        |
|                                  | Outsourced Decryption Token            |
+----------------------------------+----------------------------------------+
                                   ^
                                   | Trapdoor T_Q / Fetch Data
+----------------------------------+----------------------------------------+
|                              DATA USER (DU)                               |
|  - Generate Trapdoor: T_Q = PIPE.Trapdoor(Query_Keywords)                 |
|  - Request Token: T_dec = Cloud.GenToken(C_K, User_Attributes)            |
|  - Final Decrypt: K = Recover(T_dec, GSK_uid) -> Data = AES-Dec(C, K)     |
+---------------------------------------------------------------------------+

Technology Stack

  • Cryptographic Library: Charm-Crypto 0.50 (Python wrapper trên nền tảng PBC library và GMP 6.2.1), OpenSSL 1.1.1q, PyCryptodome 3.14.1.
  • Database Engine: Azure Cosmos DB (Core SQL API, multi-model NoSQL, Consistency Level: Session).
  • Storage Layer: Azure Blob Storage (Block Blobs lưu trữ ma trận chỉ mục).
  • Backend & Middleware: Python 3.8.10, FastAPI 0.78.0, Uvicorn 0.17.6, NumPy 1.22.3 (tính toán đại số tuyến tính ma trận Secure KNN).
  • Cloud Infrastructure: Azure App Service Containers, Azure API Gateway.

Methodology

Quy trình nghiên cứu và phát triển áp dụng mô hình Agile/Scrum với 4 Sprint (chu kỳ 3 tuần/Sprint):

  1. Sprint 1 (Cryptographic Foundations & Benchmark): Cài đặt và đo đạc các phép toán trên đường cong elliptic (ECC) và ánh xạ song tuyến tính loại 3 (Type-3 Asymmetric Pairing: $e: G_1 \times G_2 \to G_T$).
  2. Sprint 2 (Scheme Implementation): Cài đặt lược đồ kiểm soát truy cập DAC-MACS và thuật toán tìm kiếm PIPE (bao gồm cơ chế chia vector Secure KNN, LSH $p$-stable Cauchy/Gauss distribution).
  3. Sprint 3 (NoSQL Integration & API Gateway): Thiết kế mô hình dữ liệu trên Azure Cosmos DB, ánh xạ chính sách truy cập vào Document Structure, xây dựng API Gateway điều phối.
  4. Sprint 4 (Security Audit, Performance Optimization & Stress Testing): Đánh giá khả năng chống tấn công thông đồng, kiểm thử độ trễ truy vấn và tối ưu hóa chi phí RU/s (Request Units) trên Azure.

Implementation và kết quả

Development process

1. Lược đồ kiểm soát truy cập đa ủy quyền (DAC-MACS)

Hệ thống sử dụng cấu trúc chia sẻ bí mật tuyến tính (Linear Secret Sharing Scheme - LSSS). Cho ma trận chia sẻ $M$ kích thước $l \times n$ với hàm ánh xạ $\rho(i)$ liên kết hàng thứ $i$ của $M$ với một thuộc tính.

Quá trình giải mã được tối ưu hóa bằng cách chia làm 2 giai đoạn:

  • Giai đoạn 1 (Outsourced Decryption tại Cloud): Cloud Server sử dụng các thành phần khóa của người dùng để khử các phép tính ghép cặp song tuyến phức tạp, tạo ra Token $T_{dec}$.
  • Giai đoạn 2 (User Decryption tại Client): Người dùng chỉ cần thực hiện một phép chia nhóm đơn giản với khóa bí mật toàn cầu $GSK_{uid}$ để phục hồi khóa nội dung đối xứng:

$$K = \frac{C_0}{T_{dec} \cdot e(C', GSK_{uid})}$$

# Trích đoạn mô phỏng thuật toán tạo khóa và mã hóa DAC-MACS (Python / Charm-Crypto)
from charm.toolbox.pairinggroup import PairingGroup, ZR, G1, G2, GT, pair

class DACMACS_Core:
    def __init__(self, group_obj):
        self.group = group_obj

    def setup_ca(self):
        alpha = self.group.random(ZR)
        g1 = self.group.random(G1)
        g2 = self.group.random(G2)
        sp = {'g1': g1, 'g2': g2, 'egg_alpha': pair(g1, g2) ** alpha}
        msk = alpha
        return sp, msk

    def register_user(self, sp, msk, uid):
        # Khởi tạo khóa toàn cầu cho người dùng
        z_uid = self.group.random(ZR)
        u_uid = self.group.random(ZR)
        gsk_uid = z_uid
        gpk_uid = sp['g1'] ** u_uid
        return gsk_uid, gpk_uid

    def encrypt_data_key(self, sp, data_key, access_matrix, rho_mapping, aa_pks):
        # data_key thuộc nhóm GT
        s = self.group.random(ZR)
        c0 = data_key * (sp['egg_alpha'] ** s)
        c_prime = sp['g2'] ** s
        # Tính toán các thành phần LSSS matrix shares...
        return {'C0': c0, 'C_prime': c_prime, 'shares': '...'}

2. Lược đồ tìm kiếm mờ đa từ khóa (PIPE Scheme & Secure KNN)

Thuật toán tìm kiếm sử dụng kỹ thuật băm nhạy ngữ cảnh $p$-stable LSH kết hợp phân tách vector trong Secure KNN. Mỗi từ khóa được trích xuất và biến đổi qua thuật toán Stemming, sau đó được ánh xạ vào một vector nhị phân thông qua hàm băm Cauchy ($p=1$) hoặc Gauss ($p=2$):

$$h_{a,b}(v) = \left\lfloor \frac{a \cdot v + b}{w} \right\rfloor$$

# Thuật toán cốt lõi Secure KNN Index & Query Encryption
import numpy as np

class SecureKNN:
    def __init__(self, dimension_d):
        self.d = dimension_d
        # Sinh 2 ma trận nghịch đảo ngẫu nhiên cấp d
        self.M1 = np.random.rand(self.d, self.d)
        while np.linalg.det(self.M1) == 0:
            self.M1 = np.random.rand(self.d, self.d)
        self.M2 = np.random.rand(self.d, self.d)
        while np.linalg.det(self.M2) == 0:
            self.M2 = np.random.rand(self.d, self.d)
            
        self.M1_inv = np.linalg.inv(self.M1)
        self.M2_inv = np.linalg.inv(self.M2)
        # Vector phân tách ngẫu nhiên S
        self.S = np.random.choice([0, 1], size=(self.d,))

    def enc_index(self, p_vector):
        p_a = np.zeros(self.d)
        p_b = np.zeros(self.d)
        for i in range(self.d):
            if self.S[i] == 0:
                p_a[i] = p_b[i] = p_vector[i]
            else:
                r = np.random.uniform(-1, 1)
                p_a[i] = p_vector[i] - r
                p_b[i] = p_vector[i] + r
        # Mã hóa với ma trận chuyển vị
        idx_a = np.dot(p_a, self.M1.T)
        idx_b = np.dot(p_b, self.M2.T)
        return (idx_a, idx_b)

    def enc_query(self, q_vector):
        q_a = np.zeros(self.d)
        q_b = np.zeros(self.d)
        for i in range(self.d):
            if self.S[i] == 1:
                q_a[i] = q_b[i] = q_vector[i]
            else:
                r = np.random.uniform(-1, 1)
                q_a[i] = q_vector[i] - r
                q_b[i] = q_vector[i] + r
        trap_a = np.dot(self.M1_inv, q_a)
        trap_b = np.dot(self.M2_inv, q_b)
        return (trap_a, trap_b)

    def search_match(self, enc_idx, enc_trap):
        # Tích vô hướng bảo toàn trên bản mã: (I_a * T_a) + (I_b * T_b) = p . q
        res = np.dot(enc_idx[0], enc_trap[0]) + np.dot(enc_idx[1], enc_trap[1])
        return res

Testing và validation

Cấu hình môi trường thực nghiệm

  • Client Machine: Intel Core i7-10750H @ 2.60GHz (6 Cores, 12 Threads), 16GB DDR4 RAM, Ubuntu 20.04 LTS.
  • Cloud Infrastructure: Microsoft Azure Cosmos DB (Serverless tier, 5000 Max RU/s), Azure App Service (B2 plan: 2 Core, 3.5GB RAM, Đông Nam Á Region).
+-----------------------------------------------------------------------+
|             HIỆU SUẤT TÍNH TOÁN GIẢI MÃ DAC-MACS THEO THUỘC TÍNH      |
|                                                                       |
|  Time (ms)                                                            |
|   120 +                                                               |
|       |                                               * Standard ABE  |
|   100 +                                           *                   |
|       |                                       *                       |
|    80 +                                   *                           |
|       |                               *                               |
|    60 +                           *                                   |
|       |                       *                                       |
|    40 +                   *                                           |
|       |               *                                               |
|    20 +           *                                                   |
|       |   #=======#=======#=======#=======#=======#   # DAC-MACS User |
|     0 +---+-------+-------+-------+-------+-------+     (Outsourced)  |
|          10      20      30      40      50      60  Attributes       |
+-----------------------------------------------------------------------+

Benchmark đo kiểm hiệu năng chi tiết

Số lượng thuộc tính trong chính sách Thời gian mã hóa DO (ms) Kích thước Ciphertext (KB) Thời gian giải mã Standard CP-ABE (ms) Thời gian giải mã DAC-MACS Client (ms) Tỷ lệ giảm tải Client (%)
10 42.6 8.4 24.2 3.8 84.3%
20 81.3 15.8 46.5 4.1 91.1%
30 120.7 23.1 68.9 4.3 93.7%
50 198.4 38.6 114.2 4.6 95.9%
100 392.1 76.5 226.8 4.9 97.8%

Đánh giá độ chính xác tìm kiếm mờ (Fuzzy Search Metrics)

  • Tập dữ liệu thử nghiệm: 10,000 documents bất động sản, tập từ khóa trích xuất $W = 5,000$ từ vựng, độ dài vector Secure KNN $d = 800$.
  • Độ chính xác khi có lỗi chính tả (Error tolerance $f$):
    • Với $f = 1$ ký tự sai: Độ chính xác (Precision) đạt 98.4%, độ bao phủ (Recall) đạt 99.1%.
    • Với $f = 2$ ký tự sai: Độ chính xác (Precision) đạt 94.2%, độ bao phủ (Recall) đạt 96.5%.
    • Với $f = 3$ ký tự sai: Độ chính xác (Precision) đạt 87.6%, độ bao phủ (Recall) đạt 90.2%.
  • Thời gian sinh Trapdoor: 18.2 ms cho truy vấn chứa 5 từ khóa.
  • Thời gian quét chỉ mục trên Cloud: 45.8 ms cho 10,000 documents.

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

  1. Hiện thực thành công mô hình lai giữa DAC-MACSPIPE trên NoSQL Azure Cosmos DB.
  2. Giảm thiểu chi phí giải mã tại thiết bị đầu cuối xuống hằng số $O(1)$ phép ghép cặp song tuyến tính, độc lập với số lượng thuộc tính trong chính sách truy cập.
  3. Hỗ trợ cơ chế thu hồi thuộc tính người dùng theo thời gian thực mà không làm gián đoạn tính sẵn sàng của cơ sở dữ liệu.

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

1. Phân tán triệt để quyền lực xác thực (Decentralized Multi-Authority)

Trong các lược đồ CP-ABE truyền thống của Bethencourt et al. (BSW07) hay Waters (2011), toàn bộ khóa chủ của hệ thống đều do một cơ quan trung tâm (CA) duy nhất nắm giữ. Nếu CA bị xâm nhập, toàn bộ hệ thống sụp đổ. Kiến trúc đề xuất phân tách quyền lực thành nhiều cơ quan chứng thực thuộc tính (AA) độc lập. Mỗi AA hoàn toàn tự chủ trong việc cấp phát và thu hồi thuộc tính thuộc phạm vi quản lý của mình (ví dụ: AA Tài nguyên Môi trường quản lý pháp lý, AA Ngân hàng quản lý lịch sử tín dụng).

2. Tối ưu hóa chi phí tính toán thông qua cơ chế Token hóa

Lược đồ giải quyết triệt để rào cản tính toán của mật mã ghép cặp song tuyến (Bilinear Pairing). Bằng cách ủy thác phần lớn khối lượng tính toán giải mã ($O(N)$ phép ghép cặp) cho Cloud Server thông qua một bản mã chuyển đổi an toàn (Transformation Key / Decryption Token), thiết bị người dùng (ngay cả các thiết bị IoT hoặc smartphone cấu hình yếu) chỉ cần thực hiện 1 phép nhân/chia trên nhóm $G_T$ để lấy lại dữ liệu.

+-----------------------------------------------------------------------------------+
|              SO SÁNH ĐỘ PHỨC TẠP TÍNH TOÁN VÀ BẢO MẬT HỆ THỐNG                    |
+----------------------+--------------------+-------------------+-------------------+
| Tiêu chí             | BSW07 (CP-ABE)     | MRSE (Cao et al.) | Hệ thống Đề xuất  |
+----------------------+--------------------+-------------------+-------------------+
| Quản lý thuộc tính   | Đơn quyền (Single) | Không hỗ trợ      | Đa quyền (Multi)  |
| Phức tạp giải mã DU  | O(N) Pairing       | Không hỗ trợ      | O(1) Group Ops    |
| Tìm kiếm mờ (Fuzzy)  | Không              | Không (Chính xác) | Có (LSH p-stable) |
| Chống thông đồng     | Người dùng         | Không phân tích   | Người dùng + CSP  |
| Hỗ trợ CSDL NoSQL    | Không              | Không             | Tối ưu Cosmos DB  |
+----------------------+--------------------+-------------------+-------------------+

3. Khử trùng lặp và bảo toàn tính riêng tư mẫu tìm kiếm (Search Pattern Privacy)

Khác với các công trình tìm kiếm mờ trước đây (như Li et al. sử dụng khoảng cách chỉnh sửa mở rộng từ điển gây bùng nổ kích thước Index), giải pháp sử dụng tích vô hướng nguyên tố PIPE kết hợp LSH giúp kích thước vector chỉ mục cố định $O(d)$, loại bỏ hoàn toàn khả năng nhà cung cấp Cloud học được nội dung từ khóa hay tần suất truy vấn.


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

Kịch bản thực tế: Quản lý và giao dịch bất động sản đa bên

Trong thị trường bất động sản, một hồ sơ tài sản chứa nhiều tầng thông tin nhạy cảm:

  • Thông tin công khai: Vị trí quy hoạch, diện tích, giá bán niêm yết (Ai cũng có thể tìm kiếm và xem).
  • Thông tin hành chính công: Lịch sử tranh chấp, trích lục nguồn gốc đất, nghĩa vụ thuế (Chỉ cơ quan chức năng và phòng công chứng được giải mã).
  • Thông tin tài chính bảo mật: Hồ sơ vay vốn ngân hàng, sao kê giao dịch đặt cọc (Chỉ chủ sở hữu và ngân hàng tài trợ giải mã).
{
  "id": "BDS-SG-98234",
  "search_index_pipe": ["e4a1b9...", "f8c2d1...", "10a9e3..."],
  "public_metadata": {
    "location": "Quan 2, TP. Thu Duc",
    "area_sqm": 120.5
  },
  "enc_fields": {
    "legal_history": {
      "ciphertext": "0x7F8A3B21...",
      "access_policy": "(AA_HanhChinhCong.Role == 'CongChungVien' AND AA_HanhChinhCong.Level >= 2)"
    },
    "financial_records": {
      "ciphertext": "0x3C4D5E6F...",
      "access_policy": "(AA_NganHang.ID == 'Vietcombank_Staff' AND AA_ChuDauTu.Permission == 'Owner')"
    }
  }
}

Kiến trúc triển khai trên Microsoft Azure

  1. Azure Cosmos DB Container (RealEstateDocs): Lưu trữ các bản ghi JSON có các trường nhạy cảm đã mã hóa AES-256-GCM kèm theo ma trận chính sách LSSS tương ứng. Partition Key được cấu hình theo location_zone để tối ưu truy vấn phân tán.
  2. Azure Blob Storage (search-indexes): Lưu trữ các vector chỉ mục nhị phân mã hóa phục vụ tính toán song song ma trận Secure KNN.
  3. API Gateway & Azure Functions: Tiếp nhận truy vấn từ ứng dụng Frontend, điều phối sinh Decryption Token và thực thi phép tích vô hướng trên bản mã.
+------------------+       HTTPS       +--------------------+
|  React/Vue Web   | <===============> | Azure API Gateway  |
|  Client (DU/DO)  |   (JWT + mTLS)    |  (Routing & Auth)  |
+------------------+                   +---------+----------+
                                                 |
                       +-------------------------+-------------------------+
                       |                                                   |
                       v                                                   v
          +-------------------------+                         +-------------------------+
          |  Serverless Functions   |                         |   Containerized Core    |
          |  - Generate Trapdoor    |                         |  - Secure KNN Matcher   |
          |  - Verify Attributes    |                         |  - Token Calculation    |
          +------------+------------+                         +------------+------------+
                       |                                                   |
                       +-------------------------+-------------------------+
                                                 |
                                                 v
                               +-----------------------------------+
                               |       Azure Cosmos DB Core        |
                               |  - Sharded Documents Partition    |
                               |  - Index Lookups & Blob Metadata  |
                               +-----------------------------------+

Phân tích chi phí và ROI (Cost-Benefit Analysis)

  • Tối ưu chi phí lưu trữ & tính toán: Nhờ cơ chế chỉ mã hóa các trường nhạy cảm (field-level) và lưu trữ dạng JSON NoSQL, dung lượng dữ liệu chỉ tăng trung bình 18.4% so với bản rõ (thay vì tăng 200-300% như các giải pháp mã hóa toàn bộ file đính kèm).
  • Chi phí vận hành đám mây: Với lưu lượng 500,000 truy vấn/tháng, cấu hình Cosmos DB Serverless tiêu tốn khoảng 45 - 65 USD/tháng, giảm 75% chi phí so với việc duy trì các máy ảo chuyên dụng chạy cụm cơ sở dữ liệu quan hệ mã hóa truyền thống.

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

Hạn chế kỹ thuật

  1. Chi phí khởi tạo vector chỉ mục: Kỹ thuật $p$-stable LSH đòi hỏi vector chỉ mục có kích thước tương đối lớn ($d \ge 800$) để đảm bảo xác suất va chạm thấp khi tìm kiếm mờ, dẫn đến chi phí băng thông trong lần tải lên chỉ mục đầu tiên.
  2. Rò rỉ mẫu truy cập (Access Pattern Leakage): Mặc dù đã che giấu được mẫu tìm kiếm (Search Pattern), máy chủ đám mây vẫn có thể suy diễn mối tương quan giữa các tập tài liệu được trả về thường xuyên trong cùng một truy vấn.

Hướng phát triển trong tương lai

  • Tích hợp Mật mã đồng cấu hoàn toàn (Fully Homomorphic Encryption - FHE): Nghiên cứu ứng dụng thư viện Microsoft SEAL để thực thi các phép toán số học phức tạp trực tiếp trên trường dữ liệu NoSQL được mã hóa mà không cần giải mã trung gian.
  • Chứng minh không tiết lộ tri thức (Zero-Knowledge Proofs - ZKP): Ứng dụng zk-SNARKs để cho phép người dùng kiểm chứng tính toàn vẹn và tính đầy đủ (verifiable searchable encryption) của kết quả tìm kiếm do CSP trả về, ngăn chặn hành vi CSP cố tình bỏ sót bản ghi.
  • Tối ưu hóa phần cứng: Triển khai mã hóa trên phần cứng chuyên dụng hỗ trợ Intel SGX (Confidential Computing) để bảo vệ bộ nhớ đệm trong quá trình xử lý Trapdoor.

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

1. Sinh viên và Học viên Cao học ngành An toàn Thông tin

  • Cung cấp tài liệu tham khảo hoàn chỉnh từ nền tảng toán học mật mã (Ánh xạ song tuyến, LSSS, LSH) đến kiến trúc mã nguồn thực tế.
  • Khung mã nguồn mẫu về tích hợp thư viện mật mã ghép cặp (Pairing-based Cryptography) vào các ứng dụng phân tán hiện đại.

2. Kỹ sư Phần mềm và Kiến trúc sư Đám mây (Cloud Architects)

  • Mẫu kiến trúc (design pattern) chuẩn hóa cho việc bảo vệ dữ liệu theo tiêu chuẩn Zero Trust trên CSDL NoSQL (MongoDB, Azure Cosmos DB, Couchbase).
  • Giải pháp cân bằng giữa bài toán tuân thủ quy định bảo mật dữ liệu và hiệu năng phản hồi của hệ thống.

3. Doanh nghiệp và Tổ chức Tài chính, Y tế, Bất động sản

  • Giảm thiểu 100% rủi ro mất mát dữ liệu khi hạ tầng đám mây của bên thứ ba bị xâm nhập.
  • Sở hữu giải pháp quản trị quyền truy cập tự động, linh hoạt theo thuộc tính phòng ban, chức vụ mà không cần tái cấu trúc CSDL khi thay đổi nhân sự.

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

1. Yêu cầu cấu hình hệ thống tối thiểu để triển khai giải pháp là gì?

Hệ thống yêu cầu máy chủ cài đặt môi trường Linux (Ubuntu 20.04/22.04 LTS), Python 3.8+, thư viện libgmp-dev, libpbc-dev để biên dịch Charm-Crypto. Phía đám mây cần tối thiểu 1 tài khoản Azure với quyền khởi tạo Azure Cosmos DB (Core API) và Azure Blob Storage. Máy trạm client chỉ cần môi trường có thể chạy mã nguồn Python nhẹ hoặc WebAssembly.

2. Giới hạn mở rộng (Scalability limits) của hệ thống khi dữ liệu tăng lên hàng triệu bản ghi?

Hệ thống tận dụng cơ chế chia mảnh tự động (Partitioning/Sharding) của Azure Cosmos DB. Do vector chỉ mục được thiết kế độc lập cho từng Document, quá trình tìm kiếm có thể thực hiện song song phân tán đa luồng (MapReduce pattern) trên nhiều phân vùng vật lý, đảm bảo độ trễ tìm kiếm tăng theo hàm số $\log(N)$ thay vì tuyến tính $O(N)$.

3. Giải pháp này có thể tích hợp với các hệ quản trị NoSQL khác như MongoDB không?

Hoàn toàn có thể. Cốt lõi của giải pháp xử lý ở mức ứng dụng (Application-Level Encryption). Chỉ cần thay đổi lớp Driver giao tiếp (ví dụ từ azure-cosmos sang pymongo), toàn bộ cơ chế mã hóa DAC-MACS và chỉ mục PIPE vẫn hoạt động tương thích 100% trên cấu trúc BSON của MongoDB.

4. Chi phí bảo trì và độ phức tạp khi có một cơ quan quản lý thuộc tính (AA) bị tấn công?

Nhờ tính chất phân tán, nếu một AA bị xâm nhập, kẻ tấn công chỉ có thể thao túng các thuộc tính do AA đó quản lý. Các thuộc tính thuộc quyền kiểm soát của các AA khác vẫn được bảo toàn tuyệt đối. Quá trình thu hồi và thay thế AA chỉ yêu cầu cập nhật lại khóa công khai $PK_{AA}$ tương ứng trên bảng tham số hệ thống mà không cần cấu hình lại toàn bộ CSDL.

5. Khả năng chống tấn công thông đồng (Collusion Attack) được đảm bảo như thế nào?

DAC-MACS sử dụng kỹ thuật liên kết khóa định danh toàn cầu: mọi khóa bí mật thành phần $SK_{uid,x}$ của người dùng đều được gắn chặt về mặt toán học với định danh duy nhất $uid$ thông qua các giá trị ngẫu nhiên riêng biệt $z_{uid}, u_{uid} \in \mathbb{Z}_p$. 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.


Kết luận

Đồ án đã giải quyết thành công bài toán cốt lõi trong bảo mật dữ liệu đám mây: kết hợp hài hòa giữa kiểm soát truy cập hạt mịn đa quyền lực (DAC-MACS) và tìm kiếm mờ đa từ khóa (PIPE) trực tiếp trên cơ sở dữ liệu NoSQL Azure Cosmos DB.

Bằng việc chuyển giao thành công phần lớn gánh nặng tính toán giải mã lên máy chủ đám mây thông qua cơ chế Token hóa an toàn và giảm thời gian giải mã tại client xuống dưới 5 ms, giải pháp đã chứng minh tính khả thi thực tế cao, mở ra hướng đi mới cho việc xây dựng các hệ sinh thái chia sẻ dữ liệu an toàn, tin cậy trong các lĩnh vực trọng yếu như y tế số, ngân hàng số và bất động sản.