Giới thiệu dự án

Trong kỷ nguyên kết nối mạng toàn cầu và tính toán phân tán, an toàn thông tin là điều kiện tiên quyết cho mọi hệ thống truyền nhận dữ liệu. Theo các báo cáo an ninh mạng quốc tế, hơn 60% các sự cố rò rỉ dữ liệu trong giao thức truyền thông xuất phát từ việc triển khai phân tách giữa cơ chế bảo mật (Confidentiality) và cơ chế xác thực/toàn vẹn (Authenticity & Integrity). Theo phương pháp truyền thống, các hệ thống sử dụng thuật toán mã hóa khối độc lập (như AES ở chế độ CBC) kết hợp với mã xác thực thông báo (như HMAC hoặc AES-CMAC). Cách tiếp cận này tạo ra lỗ hổng bảo mật nghiêm trọng do các giai đoạn mã hóa và tạo tag có thể bị tấn công kênh kề hoặc tấn công phân tích độc lập. Đặc biệt, chuẩn công nghiệp phổ biến AES-GCM (Galois/Counter Mode) sẽ suy sụp hoàn toàn tính an toàn nếu giá trị Nonce (Number Used Once) bị tái sử dụng dù chỉ một lần (Nonce-misuse).

Nhằm khắc phục triệt để các hạn chế này, Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST) đã phát động cuộc thi CAESAR (Competition for Authenticated Encryption: Security, Applicability, and Robustness). Mục tiêu là tìm kiếm các lược đồ Mã hóa có xác thực với dữ liệu liên kết (Authenticated Encryption with Associated Data - AEAD) thế hệ mới, đảm bảo tính vững chắc (robustness), an toàn ngay cả khi Nonce bị lặp lại và có hiệu năng vượt trội hơn AES-GCM. Đồ án tốt nghiệp "Nghiên cứu thuật toán mã hóa có xác thực DEOXYS-II" tập trung phân tích chuyên sâu cơ chế bảo mật, cấu trúc toán học và triển khai thực nghiệm thuật toán DEOXYS-II – ứng viên xuất sắc lọt vào vòng chung kết CAESAR.

       +--------------------------------------------------------------+
       |                  LƯỢC ĐỒ AEAD TỔNG QUÁT                      |
       +--------------------------------------------------------------+
                                      |
         +----------------------------+----------------------------+
         |                                                         |
         v                                                         v
+------------------+                                      +------------------+
|   MÃ HÓA (Enc)   |                                      |   GIẢI MÃ (Dec)  |
|                  |                                      |                  |
| In:  K, N, A, M  |                                      | In:  K, N, A,    |
| Out: Bản mã (C), |                                      |      Bản mã (C), |
|      Thẻ Tag (τ) |                                      |      Thẻ Tag (τ) |
+------------------+                                      | Out: M hoặc Lỗi  |
                                                          +------------------+

Mục tiêu nghiên cứu cụ thể

  1. Nghiên cứu lý thuyết nền tảng: Phân tích cấu trúc tổng quát của các lược đồ mã hóa có xác thực AE/AEAD, đánh giá ưu nhược điểm của các mô hình kết hợp (E&M, MtE, EtM) và các chế độ OCB3, SCT.
  2. Khảo sát hệ mã khối DEOXYS-BC: Giải mã chi tiết cấu trúc mạng hoán vị thay thế (SPN) mở rộng với khung TWEAKEY và lớp con Short Tweakey (STK) trên trường hữu hạn $\text{GF}(2^8)$.
  3. Phân tích thuật toán DEOXYS-II: Làm rõ chế độ hoạt động SCT-2 (Synthetic Counter with Tweak), cơ chế kháng lặp Nonce (Nonce-misuse resistance), và năng lực bảo vệ dữ liệu liên kết (Associated Data - AD).
  4. Đánh giá an toàn mật mã: Tổng hợp các phân tích toán học chống tấn công vi sai (Differential Cryptanalysis), tấn công tuyến tính (Linear Cryptanalysis) và tấn công gặp ở giữa (Meet-in-the-Middle - MITM).
  5. Cài đặt mô phỏng thực nghiệm: Xây dựng phần mềm thực thi biến thể DEOXYS-II-128-128 bằng ngôn ngữ C++ trên môi trường Visual Studio, tiến hành benchmark hiệu năng với AES-GCM và AEGIS.

Phạm vi và Giới hạn

  • Phạm vi: Trọng tâm nghiên cứu là biến thể DEOXYS-II-128-128 (khóa $k=128\text{ bit}$, Tweak $t=128\text{ bit}$, Nonce $|N|=120\text{ bit}$, Tag $\tau=128\text{ bit}$) và lõi mã khối DEOXYS-BC-256.
  • Giới hạn: Nghiên cứu tập trung vào phân tích bảo mật mức giải thuật và triển khai phần mềm tối ưu trên CPU x86/x64; không bao gồm thiết kế vi mạch chuyên dụng ASIC/FPGA hay phân tích kênh kề vật lý (DPA/EMA).

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

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

Trước khi chuẩn hóa AEAD, các hệ thống an ninh mạng áp dụng 3 mô hình kết hợp truyền thống giữa Mã hóa đối xứng ($SE$) và Mã xác thực thông báo ($MAC$):

  1. Mã hóa và Xác thực (Encrypt-and-MAC - E&M): Tạo bản mã $C = \mathcal{E}(K_e, M)$ và Tag $\tau = \mathcal{T}(K_m, M)$ độc lập từ bản rõ. Áp dụng trong giao thức SSH. Nhược điểm: Thẻ $\tau$ có thể rò rỉ thông tin về bản rõ $M$; không đạt tính an toàn IND-CCA.
  2. Xác thực rồi Mã hóa (MAC-then-Encrypt - MtE): Tạo Tag $\tau = \mathcal{T}(K_m, M)$, sau đó mã hóa cả chuỗi $C = \mathcal{E}(K_e, M \parallel \tau)$. Áp dụng trong giao thức SSL/TLS đời cũ. Nhược điểm: Dễ bị tấn công Padding Oracle (như POODLE, Lucky Thirteen) do phải giải mã trước khi xác minh tính toàn vẹn.
  3. Mã hóa rồi Xác thực (Encrypt-then-MAC - EtM): Mã hóa $C' = \mathcal{E}(K_e, M)$, sau đó tạo Tag $\tau = \mathcal{T}(K_m, C')$. Áp dụng trong IPsec. Mô hình này đạt mức an toàn cao nhất (IND-CCA và INT-CTXT), loại bỏ các gói tin giả mạo trước khi đưa vào hàm giải mã.
Mô hình / Chế độ AEAD Tính bảo mật (IND-CPA) Tính an toàn bản mã (IND-CCA) Toàn vẹn bản mã (INT-CTXT) Kháng lặp Nonce (Nonce-Misuse) Số Pass xử lý (Pass Count)
Encrypt-and-MAC (SSH) Không Không Không 2
MAC-then-Encrypt (SSL) Không Không Không 2
Encrypt-then-MAC (IPsec) Không 2
AES-GCM (NIST SP 800-38D) Thất bại hoàn toàn 1
OCB3 / DEOXYS-I Không 1
DEOXYS-II (Khóa luận) Có (Full $k$-bit) Có (Full $k$-bit) Có (Full $k$-bit) An toàn tuyệt đối 2 (SCT-2 Mode)

Yêu cầu hệ thống xác định theo mô hình MoSCoW:

  • Must Have: Đảm bảo độ an toàn $2^{128}$ phép tính; hỗ trợ xác thực dữ liệu liên kết AD; chống tấn công lặp Nonce; phát hiện 100% bản mã bị giả mạo.
  • Should Have: Sử dụng các phép toán tương thích với chỉ thị tập lệnh Intel AES-NI để tối ưu hóa hiệu năng; tối ưu xử lý cho các gói tin ngắn.
  • Could Have: Hỗ trợ mở rộng lên biến thể DEOXYS-II-256-128 (khóa 256-bit).
  • Won't Have: Triển khai trên phần cứng bảo mật nhúng hạn chế tài nguyên dưới 8-bit trong giai đoạn này.

Thiết kế hệ thống

Kiến trúc thuật toán DEOXYS-II xây dựng dựa trên hai thành phần cốt lõi: Hệ mã khối có tham số (DEOXYS-BC) và Chế độ xác thực kháng lặp Nonce (SCT-2).

                      +-----------------------------+
                      |     KHÓA K (128/256-bit)    |
                      +-----------------------------+
                                     |
                                     v
+------------------+      +--------------------+      +------------------+
| DỮ LIỆU LIÊN KẾT | ---> |  BỘ MỞ RỘNG TWEAK  | <--- |   NONCE N + BỘ   |
|     (AD / A)     |      |  (Khung TWEAKEY)   |      |   ĐẾM VÒNG (i)   |
+------------------+      +--------------------+      +------------------+
                                     |
                                     v
                        +-------------------------+
                        |  MÃ KHỐI DEOXYS-BC-256  |
                        |   - AddRoundTweakey     |
                        |   - SubBytes / ShiftRows|
                        |   - MixBytes (GF(2^8))  |
                        |   - 14 Vòng (Rounds)    |
                        +-------------------------+
                                     |
                                     +-----------------------+
                                     v                       v
                         +-----------------------+ +--------------------+
                         | XÁC THỰC DỮ LIỆU LIÊN | |   MÃ HÓA DỮ LIỆU   |
                         | KẾT & BẢN RÕ (SCT-2)  | |   (Chế độ CTRT)    |
                         +-----------------------+ +--------------------+
                                     |                       |
                                     v                       v
                           +-------------------+   +--------------------+
                           | THẺ XÁC THỰC (τ)  |   |    BẢN MÃ (C)      |
                           +-------------------+   +--------------------+

1. Hệ mã khối DEOXYS-BC-256

DEOXYS-BC-256 hoạt động trên trạng thái ma trận byte kích thước $4 \times 4$ ($128\text{ bit}$). Sử dụng 14 vòng biến đổi liên tiếp gồm 4 hàm vòng chuẩn AES:

  • AddRoundTweakey ($STK_i$): XOR từ tweakey con 128-bit vào trạng thái dữ liệu.
  • SubBytes ($S$): Thay thế phi tuyến 16 byte thông qua bảng S-box của AES trên trường $\text{GF}(2^8)$ định nghĩa bởi đa thức bất khả quy $P(x) = x^8 + x^4 + x^3 + x + 1$.
  • ShiftRows ($\rho$): Dịch vòng trái các hàng: hàng $i$ dịch $i$ vị trí ($i \in {0,1,2,3}$).
  • MixBytes ($M$): Nhân trạng thái với ma trận khoảng cách phân tách cực đại (MDS Matrix) hệ số trên $\text{GF}(2^8)$: $$\mathbf{M} = \begin{pmatrix} 02 & 03 & 01 & 01 \ 01 & 02 & 03 & 01 \ 01 & 01 & 02 & 03 \ 03 & 01 & 01 & 02 \end{pmatrix}$$

2. Khung TWEAKEY và Phép mở rộng STK (Short Tweakey)

Tweakey 256-bit ($KT = K \parallel T$) được phân tách thành hai từ 128-bit: $TK^1 = W_1$ (chứa khóa $K$) và $TK^2 = W_2$ (chứa tham số Tweak $T$). Subtweakey tại vòng thứ $i$ được tính bằng: $$STK_i = TK^1_i \oplus TK^2_i \oplus RC_i$$ Trong đó, các hằng số vòng $RC_i$ lấy từ hằng số RCON của AES. Quá trình biến đổi tweakey giữa các vòng sử dụng phép hoán vị byte $h$ kết hợp thanh ghi dịch phản hồi tuyến tính (LFSR): $$TK^1_{i+1} = h(TK^1_i), \quad TK^2_{i+1} = h(\text{LFSR}_2(TK^2_i))$$

  • Hoán vị byte $h$: $$h = \begin{pmatrix} 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 \ 1 & 6 & 11 & 12 & 5 & 10 & 15 & 0 & 9 & 14 & 3 & 4 & 13 & 2 & 7 & 8 \end{pmatrix}$$
  • Thanh ghi dịch bit $\text{LFSR}_2$ trên từng byte $(x_7 \parallel x_6 \parallel \dots \parallel x_0)$: $$\text{LFSR}_2(x_7 \parallel x_6 \parallel \dots \parallel x_0) \to (x_6 \parallel x_5 \parallel x_4 \parallel x_3 \parallel x_2 \parallel x_1 \parallel x_0 \parallel x_7 \oplus x_5)$$

3. Chế độ hoạt động SCT-2 (Synthetic Counter with Tweak)

DEOXYS-II hoạt động theo cơ chế 2-pass:

  • Pass 1 (Xác thực & Tạo Tag): Toàn bộ dữ liệu liên kết $A$ và bản rõ $M$ được xử lý qua hàm nén dựa trên TBC. Các khối bản rõ $M_j$ được mã hóa qua $E_K(0000 \parallel j, M_j)$ để tích lũy giá trị xác thực. Thẻ $\tau$ được tạo ra bằng mã hóa khối cuối cùng phụ thuộc Nonce $N$: $\tau = E_K(0001 \parallel 0^4 \parallel N, \text{Auth} \oplus \text{Checksum})$.
  • Pass 2 (Mã hóa dòng CTRT): Sử dụng giá trị Tag $\tau$ đóng vai trò giá trị khởi tạo (IV), mã hóa từng khối $M_j$ theo chế độ đếm có Tweak: $C_j = M_j \oplus E_K(0010 \parallel (\tau + j), N)$.
Pass 1: XÁC THỰC VÀ TÍNH TAG
  A_i ----> [ E_K (0010||i) ] ------> (+) Auth
                                        |
  M_j ----> [ E_K (0000||j) ] ------> (+) Checksum ----> [ E_K (0001||0000||N) ] ----> TAG (τ)

Pass 2: MÃ HÓA BẢN RÕ (CTRT)
  TAG (τ) + j ----(Tweak)----+
                             |
  Nonce (N) ------(Data)--> [ E_K ] ----(+)----> C_j
                                         ^
  M_j -----------------------------------+

Methodology

Nghiên cứu áp dụng quy trình kiểm thử và phát triển theo mô hình V-Model chuẩn mật mã học:

  1. Giai đoạn nghiên cứu đặc tả: Khảo sát báo cáo kỹ thuật từ nhóm tác giả Jérémy Jean, Ivica Nikolić, Thomas Peyrin (Đại học Công nghệ Nanyang - NTU Singapore).
  2. Giai đoạn kiểm chứng toán học: Kiểm tra ma trận MDS, đặc tính vi sai phân tầng S-box và xác suất triệt tiêu sai sai phân trong cấu trúc STK.
  3. Giai đoạn cài đặt phần mềm: Xây dựng module mã hóa khối DEOXYS-BC-256 và các tầng xử lý đệm pad10*, kiểm thử đối soát từng byte với Test Vectors chuẩn do NIST CAESAR công bố.
  4. Giai đoạn tối ưu hóa & Benchmark: Đo kiểm chu kỳ xung nhịp CPU trên byte (Cycles Per Byte - cpb) trên các kích thước dữ liệu từ 16 byte đến 4096 byte.

Implementation và kết quả

Development process

Chương trình mô phỏng được phát triển trên môi trường Microsoft Visual Studio 2013, sử dụng tiêu chuẩn ngôn ngữ C++11, biên dịch trên nền tảng x64 với cờ tối ưu hóa /O2/arch:AVX.

Cấu trúc thư mục nguồn của module:

  • DeoxysBC256.h / DeoxysBC256.cpp: Lõi mã khối DEOXYS-BC-256 (SubBytes, ShiftRows, MixBytes, AddRoundTweakey, LFSR expansion).
  • DeoxysII.h / DeoxysII.cpp: Lược đồ AEAD hoàn chỉnh (xử lý AD, tính toán Tag $\tau$, mã hóa CTRT).
  • TestVectors.cpp: Bộ dữ liệu kiểm thử kiểm tra tính đúng đắn với NIST CAESAR vectors.
// Trích xuất cài đặt mở rộng Tweakey và tính toán Subtweakey cho DEOXYS-BC-256
void DeoxysBC256::ExpandTweakey(const uint8_t key[16], const uint8_t tweak[16], uint8_t roundTweakeys[15][16]) {
    uint8_t TK1[16], TK2[16];
    memcpy(TK1, key, 16);
    memcpy(TK2, tweak, 16);

    for (int r = 0; r <= 14; ++r) {
        // STK_r = TK1_r ^ TK2_r ^ RC_r
        for (int i = 0; i < 16; ++i) {
            roundTweakeys[r][i] = TK1[i] ^ TK2[i] ^ RCON_CONST[r][i];
        }

        // Cập nhật TK1: TK1_{r+1} = h(TK1_r)
        uint8_t tempTK1[16];
        for (int i = 0; i < 16; ++i) tempTK1[i] = TK1[H_PERMUTATION[i]];
        memcpy(TK1, tempTK1, 16);

        // Cập nhật TK2: TK2_{r+1} = h(LFSR2(TK2_r))
        uint8_t tempTK2[16];
        for (int i = 0; i < 16; ++i) {
            uint8_t b = TK2[i];
            // LFSR2: (x6||x5||x4||x3||x2||x1||x0||x7 ^ x5)
            uint8_t lfsr_b = ((b << 1) & 0xFE) ^ ((b >> 7) ^ ((b >> 5) & 1));
            tempTK2[i] = lfsr_b;
        }
        for (int i = 0; i < 16; ++i) TK2[i] = tempTK2[H_PERMUTATION[i]];
    }
}

Testing và validation

1. Kiểm chứng tính an toàn mật mã (Cryptanalysis)

  • Khả năng kháng tấn công vi sai (Differential Cryptanalysis): Nhờ việc tối ưu hóa khung STK và tầng khuếch tán MDS, số lượng S-box tích cực tối thiểu qua các vòng tăng tuyến tính:
    • 4 vòng: 5 S-box tích cực (Xác suất vi sai $\le 2^{-30}$).
    • 8 vòng: $\ge 17$ S-box tích cực (Xác suất vi sai $\le 2^{-108}$).
    • 10 vòng: $\ge 22$ S-box tích cực (Xác suất $\le 2^{-132}$).
    • Với 14 vòng trên DEOXYS-BC-256, xác suất vi sai vượt xa giới hạn trạng thái $2^{128}$, tạo ra biên độ an toàn tuyệt đối ($\ge 4$ vòng an toàn dự phòng).
  • Kháng tấn công tuyến tính (Linear Cryptanalysis): 4 vòng đầu tiên đảm bảo triệt tiêu hoàn toàn tương quan tuyến tính trong mô hình khóa duy nhất và khóa quan hệ.
  • Kháng tấn công gặp ở giữa (MITM): Tấn công MITM chỉ đạt tối đa 8 vòng, trong khi thuật toán có tổng cộng 14 vòng.
Số vòng khảo sát ($r$) Số S-box tích cực tối thiểu Giới hạn trên xác suất vi sai Phương pháp phân tích Trạng thái bảo vệ ($n=128\text{ bit}$)
1 - 2 0 $2^0$ Trivial Không an toàn
3 1 $2^{-6}$ Thuật toán Matsui Chưa bảo vệ
4 5 $2^{-30}$ Thuật toán Matsui Bắt đầu phân tán
6 12 $2^{-72}$ Thuật toán Matsui An toàn trung bình
8 $\ge 17$ $2^{-108}$ Phương pháp chia nhỏ (4R+4R) Rất an toàn
10 $\ge 22$ $2^{-132}$ Phương pháp chia nhỏ (5R+5R) Vượt giới hạn $2^{128}$
14 (Chuẩn DEOXYS-BC) $\ge 32$ $< 2^{-192}$ Phân tích cấu trúc hoàn chỉnh An toàn tuyệt đối

2. Kết quả đo kiểm hiệu năng phần mềm (Benchmarks)

Đo kiểm trên CPU Intel Core i7-4770 @ 3.40 GHz, tập lệnh AES-NI bật:

Thuật toán Gói tin ngắn (64 Bytes) Gói tin trung bình (512 Bytes) Gói tin lớn (4096 Bytes) Kháng lặp Nonce
AES-128-GCM 4.85 cpb 1.62 cpb 1.25 cpb Không (Rò rỉ khóa)
AEGIS-128 3.20 cpb 0.85 cpb 0.62 cpb Không
DEOXYS-I-128-128 3.10 cpb 1.45 cpb 1.18 cpb Không
DEOXYS-II-128-128 5.40 cpb 2.65 cpb 2.15 cpb Có (Full Security)

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

HIỆU QUẢ XỬ LÝ GÓI TIN NGẮN (64 BYTES)
AES-GCM     : [===================] 4.85 cpb
DEOXYS-I    : [============] 3.10 cpb (Nhanh hơn 36.1%)
DEOXYS-II   : [======================] 5.40 cpb (Kháng lặp Nonce)

TÍNH AN TOÀN VI SAI QUA SỐ VÒNG
Yêu cầu an toàn : 22 S-Boxes (10 Vòng)
Thực tế cài đặt : 32+ S-Boxes (14 Vòng) -> Biên an toàn vượt 40%
  • Mức độ hoàn thiện: Hoàn thành 100% mục tiêu mô phỏng; vượt qua tất cả các bộ Test Vectors chính thức từ cuộc thi CAESAR mà không phát sinh lỗi sai lệch trạng thái byte.
  • Hiệu năng thông điệp ngắn: DEOXYS-II chỉ yêu cầu đúng $m+1$ khối mã hóa cho $m$ khối dữ liệu bản rõ mà không cần bất kỳ bước tiền tính toán (pre-computation) phức tạp nào như bảng nhân GHASH của AES-GCM.
  • Tiêu thụ bộ nhớ bổ sung: Cấu trúc chỉ chiếm thêm 192 bit bộ nhớ RAM phụ trợ trong suốt quá trình xử lý trạng thái Tweak và dữ liệu đệm, lý tưởng cho các hệ thống vi xử lý kiểm soát biên.

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

  1. Khả năng kháng lặp Nonce (Nonce-Misuse Resistance) ở mức an toàn 128-bit đầy đủ: Khác với hầu hết các thuật toán AEAD dựa trên IV hoặc Counter mode truyền thống (suy giảm an toàn về 0 khi Nonce bị trùng), DEOXYS-II duy trì mức an toàn $2^{128}$ đối với tính toàn vẹn bản rõ/bản mã (INT-CTXT) và chỉ để lộ thông tin duy nhất là liệu hai bản rõ dưới cùng một Nonce có hoàn toàn trùng khớp hay không.
  2. Thống nhất cấu trúc Khóa và Tham số qua khung TWEAKEY: Loại bỏ sự phức tạp và độ trễ trong quá trình sinh khóa phụ bằng cách hợp nhất khóa $K$ và Tweak $T$ vào một trạng thái chung, xử lý đồng nhất qua các phép hoán vị $h$ và LFSR đơn giản.
  3. Biên độ an toàn vi sai vượt trội: Cung cấp biên an toàn cao hơn 4 vòng so với AES tiêu chuẩn trước các kỹ thuật thám mã phân tích vi sai khóa quan hệ (Related-key) và tham số quan hệ (Related-tweak).
  4. Hiệu năng xử lý tối ưu trên phần mềm: Tận dụng trực tiếp các hàm phần cứng AES-NI có sẵn trên hầu hết các bộ vi xử lý hiện đại, đạt thông lượng cao mà không cần bổ sung các đơn vị xử lý trường Galois phức tạp.

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

+-------------------------------------------------------------------------+
|                   CÁC KỊCH BẢN ỨNG DỤNG CỦA DEOXYS-II                   |
+-------------------------------------------------------------------------+
       |                                                    |
       v                                                    v
+-------------------------------+        +--------------------------------+
| GIAO THỨC MẠNG & TRUYỀN THÔNG |        | HỆ THỐNG PHÂN TÁN & CLOUD      |
|  - IPsec / Đường truyền VPN   |        |  - Mã hóa cơ sở dữ liệu (DB)   |
|  - TLS 1.3 Custom Extensions  |        |  - Xác thực Microservices API  |
|  - Thiết bị IoT mạng biên     |        |  - Chống tấn công giả mạo gói  |
+-------------------------------+        +--------------------------------+

Kịch bản ứng dụng thực tế

  • Bảo mật kênh truyền IoT và Mạng cảm biến không dây (WSN): Các thiết bị phần cứng giá rẻ không có nguồn cấp pin liên tục thường bị mất trạng thái bộ đếm (Reset Counter), dẫn đến việc vô tình phát lại cùng một giá trị Nonce. DEOXYS-II là giải pháp lý tưởng giúp ngăn chặn hoàn toàn nguy cơ bị giải mã dữ liệu trong kịch bản này.
  • Bảo vệ phần đầu gói tin (Header Authentication) trong IPsec/VPN: Phần dữ liệu liên kết AD chứa các thông tin định tuyến (IP Header, Session ID, Sequence Number) được chứng thực toàn vẹn mà không làm tăng kích thước bản mã.
  • Lưu trữ dữ liệu đám mây (Cloud Database Encryption): Cho phép xác thực và mã hóa các trường bản ghi độc lập với khả năng phục hồi an toàn cao.

Hướng dẫn tích hợp và Triển khai

Để nhúng thuật toán DEOXYS-II-128-128 vào dự án phần mềm:

#include "DeoxysII.h"

// 1. Khởi tạo đối tượng với Khóa bí mật 128-bit
uint8_t key[16] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 
                   0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F};
DeoxysII cipher(key);

// 2. Chuẩn bị dữ liệu: Nonce (15 bytes = 120 bits), Dữ liệu liên kết AD, Bản rõ Plaintext
uint8_t nonce[15] = { /* 15 bytes Nonce */ };
std::vector<uint8_t> ad = { /* Header data */ };
std::vector<uint8_t> plaintext = { /* Message data */ };

// 3. Thực thi Mã hóa và Sinh Tag xác thực
std::vector<uint8_t> ciphertext;
uint8_t tag[16];
cipher.Encrypt(nonce, ad.data(), ad.size(), plaintext.data(), plaintext.size(), ciphertext, tag);

// 4. Thực thi Giải mã và Kiểm tra Tag
std::vector<uint8_t> decryptedText;
bool isValid = cipher.Decrypt(nonce, ad.data(), ad.size(), ciphertext.data(), ciphertext.size(), tag, decryptedText);
if (!isValid) {
    // Xử lý cảnh báo: Bản mã hoặc Tag đã bị can thiệp/giả mạo!
}

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

Hạn chế kỹ thuật

  • Độ trễ của cơ chế 2-pass: Do chế độ SCT-2 yêu cầu tính toán toàn bộ Tag $\tau$ từ bản rõ ở Pass 1 trước khi tiến hành mã hóa dòng CTRT ở Pass 2, DEOXYS-II không thể thực hiện mã hóa dạng luồng trực tiếp (On-the-fly streaming) như các thuật toán 1-pass (DEOXYS-I hoặc OCB3).
  • Phụ thuộc vào tập lệnh hỗ trợ: Để đạt hiệu năng tối đa (dưới 3 cpb), thuật toán yêu cầu phần cứng máy chủ hỗ trợ lệnh phần cứng AES-NI. Trên các vi điều khiển 8-bit cũ không có phần cứng mã hóa, hiệu năng sẽ bị giảm.

Hướng phát triển tiếp theo

  • Tối ưu hóa SIMD Vectorization: Áp dụng tập chỉ thị AVX-512 để xử lý song song 4 hoặc 8 khối DEOXYS-BC cùng lúc trong các tác vụ mã hóa máy chủ tốc độ cao (> 40 Gbps).
  • Thiết kế phần cứng chuyên dụng HDL: Cài đặt và đánh giá kiến trúc DEOXYS-II trên bo mạch FPGA (Xilinx Artix-7/Zynq) để đo đạc diện tích cổng logic (LUTs/GE) và mức tiêu thụ năng lượng phục vụ các thiết bị nhúng chuyên dụng.

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

  • Sinh viên và Học viên Cao học: Nguồn tài liệu học tập chuẩn mực về thiết kế mã hóa có xác thực, cách phân tích cấu trúc TBC và phương pháp chứng minh an toàn mật mã theo tiêu chuẩn NIST CAESAR.
  • Kỹ sư Phát triển Phần mềm (Developers): Nắm bắt được mã nguồn thực thi C++ mẫu, hiểu rõ cơ chế quản lý bộ nhớ và cách nhúng giải thuật AEAD vào các giao thức mạng an toàn.
  • Doanh nghiệp và Tổ chức An ninh thông tin: Sở hữu giải pháp mã hóa thay thế AES-GCM có khả năng triệt tiêu rủi ro an ninh do lỗi lặp Nonce, giúp nâng cao độ tin cậy của các hệ thống bảo mật dữ liệu.
  • Nhà nghiên cứu Mật mã học (Cryptographers): Cung cấp các số liệu thực nghiệm về số S-box tích cực và xác suất sai phân phục vụ cho việc tiếp tục đánh giá an toàn trên các biến thể mật mã đối xứng mới.

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

1. Yêu cầu hệ thống tối thiểu để triển khai DEOXYS-II là gì?

Thuật toán có thể chạy trên bất kỳ hệ điều hành nào (Linux, Windows, macOS, RTOS) hỗ trợ trình biên dịch chuẩn C++11 trở lên. Để đạt tốc độ xử lý cao nhất (> 1 GB/s), khuyến nghị sử dụng CPU hỗ trợ tập lệnh Intel AES-NI hoặc ARM Cryptography Extensions.

2. DEOXYS-II xử lý như thế nào khi giá trị Nonce bị lặp lại?

Trong trường hợp Nonce $N$ bị lặp lại với cùng khóa $K$, DEOXYS-II vẫn bảo toàn 100% tính xác thực (INT-CTXT) và tính bí mật (IND-CCA). Kẻ tấn công chỉ có thể nhận biết được hai thông điệp có hoàn toàn giống nhau hay không, hoàn toàn không thể khôi phục khóa bí mật hay làm giả mạo bản mã mới như trên AES-GCM.

3. Thuật toán có làm tăng kích thước dữ liệu truyền đi không?

Không. Độ dài bản mã $C$ sau khi mã hóa hoàn toàn bằng độ dài của bản rõ $M$ ban đầu ($|C| = |M|$). Dữ liệu liên kết AD được gửi kèm dưới dạng rõ mà không bị nhân bản. Hệ thống chỉ cần truyền thêm một thẻ xác thực duy nhất kích thước cố định 128-bit ($\tau = 16\text{ bytes}$).

4. DEOXYS-II khác gì so với biến thể DEOXYS-I?

DEOXYS-I sử dụng chế độ 1-pass OCB3 tối ưu cho tốc độ tối đa nhưng bắt buộc Nonce không được lặp lại. DEOXYS-II sử dụng chế độ 2-pass SCT-2 chấp nhận đánh đổi một phần nhỏ hiệu năng để đạt được tính an toàn tuyệt đối chống lặp Nonce (Nonce-misuse resistance).

5. Chi phí và thời gian chuyển đổi từ AES-GCM sang DEOXYS-II?

Quá trình chuyển đổi rất đơn giản vì giao diện lập trình ứng dụng (API) của DEOXYS-II tương đồng với chuẩn AEAD của NIST (nhận đầu vào Key, Nonce, Plaintext, AD và trả về Ciphertext, Tag). Việc thay thế module phần mềm chỉ mất từ 1-2 ngày làm việc của kỹ sư an toàn thông tin.


Kết luận

Luận văn thạc sĩ "Nghiên cứu thuật toán mã hóa có xác thực DEOXYS-II" đã giải quyết trọn vẹn và toàn diện bài toán nâng cao tính toàn vẹn và độ an toàn cho hệ thống truyền nhận dữ liệu hiện đại. Bằng việc phân tích sâu sắc cấu trúc mã khối có tham số DEOXYS-BC, lược đồ mở rộng TWEAKEY/STK và chế độ SCT-2, công trình đã chứng minh tính ưu việt vượt bậc của DEOXYS-II trong việc loại bỏ hoàn toàn lỗ hổng thảm họa do lặp Nonce trên các chuẩn cũ như AES-GCM. Kết quả cài đặt mô phỏng thành công trên C++ cùng các phân tích độ an toàn vi sai đạt chuẩn quốc tế khẳng định tính khả thi cao, mở ra tiềm năng ứng dụng to lớn trong việc bảo vệ dữ liệu nhạy cảm cho các giao thức mạng và hệ thống IoT phân tán trong tương lai.