Giới thiệu dự án
Trong kỷ nguyên Công nghiệp 4.0 và chuyển dịch sang Xã hội 5.0, việc tích hợp công nghệ Blockchain vào mạng lưới Internet Vạn Vật (Internet of Things - IoT) — từ đô thị thông minh, thiết bị y tế đeo tay, chuỗi cung ứng tự động đến hệ thống xe tự hành — đang phát triển bùng nổ. Theo các báo cáo công nghiệp vi điện tử, hàng chục tỷ thiết bị biên (edge devices) đang truyền tải hàng petabyte dữ liệu nhạy cảm mỗi ngày. Tuy nhiên, rào cản lớn nhất hiện nay nằm ở bài toán bảo mật: các thuật toán mật mã học hiện đại yêu cầu khối lượng tính toán khổng lồ, trong khi các vi điều khiển nhúng lại bị giới hạn nghiêm ngặt về năng lượng, diện tích phần cứng và bộ nhớ.
+-------------------------------------------------------------------------+
| HỆ THỐNG IOT & BLOCKCHAIN |
| [Cảm biến / Edge] <---> [Mã hóa biên / CGRA] <---> [Gateway / Cloud] |
+-------------------------------------------------------------------------+
|
v
+---------------------------------------+
| THÁCH THỨC BẢO MẬT & HIỆU NĂNG |
| - Năng lượng cực hạn (Battery-run) |
| - Độ trễ thấp (Real-time latency) |
| - Đa dạng thuật toán (Flexibility) |
+---------------------------------------+
Vấn đề kỹ thuật (Problem Statement)
Các giải pháp xử lý mật mã truyền thống đang bộc lộ những điểm nghẽn nghiêm trọng:
- Application-Specific Integrated Circuit (ASIC): Đạt thông lượng (throughput) và hiệu quả năng lượng vượt trội nhưng cấu trúc logic bị "đóng băng" (hardwired), hoàn toàn không thể tái cấu hình khi thuật toán thay đổi hoặc xuất hiện lỗ hổng bảo mật.
- General Purpose Processor (GPP) & Graphics Processing Unit (GPU): Cung cấp khả năng lập trình linh hoạt nhưng tiêu thụ công suất quá lớn ($>15\text{W}-250\text{W}$), không khả thi cho các nút IoT biên.
- Instruction Set Architecture Processor (ISAP): Mở rộng tập lệnh chuyên dụng giúp tiết kiệm năng lượng nhưng lại bị giới hạn thông lượng do phụ thuộc vào chu kỳ nạp/giải mã lệnh tuần tự (instruction fetch/decode overhead).
- Hạn chế của kiến trúc CGRA 32-bit tiền nhiệm: Mặc dù kiến trúc Mảng có thể cấu hình lại chi tiết thô (Coarse-Grained Reconfigurable Array - CGRA) thế hệ trước đã giải quyết được tính linh hoạt, nhưng chỉ hỗ trợ tính toán 32-bit đơn thuần, gây tắc nghẽn nghiêm trọng khi thực thi các chuẩn mã hóa và hàm băm 64-bit thế hệ mới (như SHA-3, SHAKE, Romulus, SPARKLE).
Mục tiêu nghiên cứu
Đề tài "Phát triển bộ tăng tốc mật mã thế hệ tiếp theo linh hoạt và nhanh chóng dựa trên mảng có thể cấu hình lại chi tiết thô" giải quyết triệt để các hạn chế trên thông qua các mục tiêu cụ thể:
- Thiết kế kiến trúc phần cứng Crypto CGRA lai (Hybrid 32/64-bit): Xây dựng mảng $4 \times 4$ gồm 16 Đơn vị Xử lý (Processing Elements - PE) tích hợp bộ tính toán kép (DUAL-ALU) có khả năng chuyển đổi linh hoạt giữa hai chế độ 32-bit song song hoặc 64-bit liên kết.
- Tích hợp và tối ưu hóa 5 bộ thuật toán mật mã tiêu chuẩn quốc tế: Bao gồm 3 họ thuật toán mật mã hạng nặng (SHA3-512, Esch-256 trên nền SPARKLE-384, Romulus-H trên nền Skinny-128-384) và 2 thuật toán hạng nhẹ (Lightweight Cryptography: SPECK-64, SipHash-24).
- Phát triển chuỗi công cụ hỗ trợ (Toolchain & Simulation): Xây dựng trình mô phỏng hành vi phần cứng (C-Simulator) và trình biên dịch chuyên dụng (Compiler) để chuyển đổi thuật toán C/C++ thành tập lệnh vi mã cấu hình (Context Memory).
- Triển khai thực tế trên phần cứng SoC-FPGA: Tổng hợp, đóng gói IP Core và chạy thực nghiệm trên bo mạch nhúng hiệu năng cao TySOM-3A-ZU19EG Embedded FPGA (Xilinx Zynq UltraScale+ MPSoC).
- Thẩm định hiệu năng và tài nguyên: Đánh giá thông lượng, mức tiêu thụ tài nguyên phần cứng (LUT, FF, BRAM, DSP) và so sánh trực tiếp với CPU thương mại (ARM Cortex-A53, AMD Ryzen 7 5800H, Intel Core i9-13900K).
Kết quả kỳ vọng và Phạm vi đề tài
- Kết quả kỳ vọng: Đạt thông lượng mã hóa SHA3-512 xấp xỉ $\sim 1000\text{ Mbps}$ trên nền tảng FPGA nhúng, vượt trội gấp nhiều lần so với các lõi CPU nhúng tiêu chuẩn (ARM Cortex-A53 đạt $11.98\text{ Mbps}$).
- Phạm vi nghiên cứu: Tập trung vào các thuật toán mã hóa khối đối xứng (Symmetric Block Ciphers) và hàm băm mật mã (Cryptographic Hash Functions); giao tiếp dữ liệu qua bus AXI DMA trên hệ thống SoC. Không mở rộng sang mật mã bất đối xứng (RSA/ECC) hay mật mã hậu lượng tử dạng dàn (Lattice-based PQC) trong giai đoạn nà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 |
ASIC Chuyên dụng |
GPP / CPU Nhúng |
GPU Đồ họa |
ISAP Mở rộng tập lệnh |
Crypto CGRA (Đề tài) |
| Tính linh hoạt (Flexibility) |
Rất thấp (Cố định) |
Rất cao (Lập trình) |
Cao (Lập trình) |
Trung bình |
Cao (Tái cấu hình vi mã) |
| Thông lượng (Throughput) |
Cực đại ($>10\text{ Gbps}$) |
Thấp ($<50\text{ Mbps}$) |
Cao ($>5\text{ Gbps}$) |
Trung bình ($50-200\text{ Mbps}$) |
Rất cao ($\sim 1-5\text{ Gbps}$) |
| Hiệu quả năng lượng (pJ/bit) |
Tối ưu nhất |
Kém (Tiêu hao cao) |
Rất kém ($>50\text{W}$) |
Khá tốt |
Tối ưu vượt trội |
| Thời gian cấu hình lại |
Không thể |
Không áp dụng |
Lâu (Kernel launch) |
Không áp dụng |
Tức thời (1 chu kỳ xung nhịp) |
| Chi phí chế tạo / NRE |
Rất đắt ($>$1\text{M}$) |
Thấp (Sẵn có) |
Trung bình |
Trung bình |
Thấp (Triển khai trên FPGA/ASIC) |
Phân loại yêu cầu hệ thống theo mô hình MoSCoW
- Must Have (Bắt buộc): Mảng ma trận $4 \times 4$ PE; DUAL-ALU hỗ trợ đồng thời phép toán số học/logic 32-bit và ghép nối 64-bit; bộ nhớ cục bộ LDM ($2048 \times 64\text{-bit}$/PE); bộ nhớ hằng số IMM MEM ($1024 \times 64\text{-bit}$/PE); thanh kết nối chuyển mạch Row Connection (RC); hỗ trợ chính xác 5 chuẩn thuật toán (SHA3, Esch-256, Romulus-H, SipHash, Speck-64).
- Should Have (Nên có): Bộ điều khiển DMA phiên làm việc (Session-based DMA Controller); phần mềm C-Simulator kiểm thử bit-level exactness; công cụ tạo bảng định tuyến cấu hình tự động.
- Could Have (Có thể có): Cơ chế tiền nạp ngữ cảnh động (Context Prefetching); cơ chế tự động ngắt xung nhịp (Clock-gating) tại các PE không hoạt động để giảm công suất động.
- Won't Have (Chưa thực hiện): Tích hợp bộ tăng tốc đại số tuyến tính cho mạng nơ-ron hoặc các bộ nhân trường hữu hạn lớn ($GF(2^{255}-19)$).
Thiết kế hệ thống
+-----------------------------------------------------------------------------------+
| HỆ THỐNG SOC (ZYNQ ULTRASCALE+) |
| |
| +--------------------------+ +--------------------------------+ |
| | PROCESSING SYSTEM (PS) | AXI-Stream | PROGRAMMABLE LOGIC (PL) | |
| | ARM Cortex-A53 | <=============> | Direct Memory Access (DMA) | |
| | L1/L2 Cache & DDR4 RAM | +--------------------------------+ |
| +--------------------------+ | |
| v |
| +-------------------------------------------------+ |
| | CRYPTO CGRA CONTROLLER | |
| +-------------------------------------------------+ |
| | | | |
| PE ADDR & IMM (Data) | PE/RC ADDR | PE ADDR | |
| | & CTX (Micro)| & DATA (I/O) | |
| v v v |
| +-----------------------------------------------------------------------+ |
| | +-------------+ +-------------+ +-------------+ +-------------+ | |
| Row 0 | | PE 0 (0,0) |---| | PE 1 (0,1) |---| | PE 2 (0,2) |---| | PE 3 (0,3) | | |
| | +-------------+ +-------------+ +-------------+ +-------------+ | |
| | | | | | | |
| | ================= ROW CONNECTION BAR 0 (RC 0 - RC 3) ================ | |
| | | | | | | |
| Row 1 | +-------------+ +-------------+ +-------------+ +-------------+ | |
| | | PE 4 (1,0) |---| | PE 5 (1,1) |---| | PE 6 (1,2) |---| | PE 7 (1,3) | | |
| | +-------------+ +-------------+ +-------------+ +-------------+ | |
| | | | | | | |
| | ================= ROW CONNECTION BAR 1 (RC 4 - RC 7) ================ | |
| | | | | | | |
| Row 2 | +-------------+ +-------------+ +-------------+ +-------------+ | |
| | | PE 8 (2,0) |---| | PE 9 (2,1) |---| | PE 10 (2,2) |---| | PE 11 (2,3) | | |
| | +-------------+ +-------------+ +-------------+ +-------------+ | |
| | | | | | | |
| | ================= ROW CONNECTION BAR 2 (RC 8 - RC 11) =============== | |
| | | | | | | |
| Row 3 | +-------------+ +-------------+ +-------------+ +-------------+ | |
| | | PE 12 (3,0) |---| | PE 13 (3,1) |---| | PE 14 (3,2) |---| | PE 15 (3,3) | | |
| | +-------------+ +-------------+ +-------------+ +-------------+ | |
| | | | | | | |
| | ================= ROW CONNECTION BAR 3 (RC 12 - RC 15) =============== | |
| +-----------------------------------------------------------------------+ |
+-----------------------------------------------------------------------------------+
Kiến trúc chi tiết của Đơn vị Xử lý (Processing Element - PE)
Mỗi PE là một hạt nhân tính toán độc lập gồm các khối chức năng chính:
- Khối Phân tích địa chỉ và Chuyển tiếp dữ liệu (Address Mapper & Forward): Định tuyến dữ liệu khởi tạo đến đúng các ô nhớ nội bộ.
- Khối lưu trữ dữ liệu nội bộ (Local Data Memory - LDM): Gồm 2 phân vùng nhớ độc lập, dung lượng tổng cộng $2048 \times 64\text{-bit}$ (hoặc tổ chức thành $4096 \times 32\text{-bit}$). Quản lý bởi Khối Quản lý Dữ liệu (Data Management Unit - DMU) để nạp đầu vào và xuất kết quả mã hóa.
- Khối lưu trữ hằng số tức thời (Immediately Memory - IMM MEM): Dung lượng $1024 \times 64\text{-bit}$ ($2048 \times 32\text{-bit}$), chuyên lưu các hằng số vòng (Round Constants) của thuật toán mã hóa. Thiết kế này giúp giải phóng hoàn toàn băng thông của LDM.
- Khối lưu trữ lệnh tái cấu hình (Context Memory - CTX MEM): Dung lượng $1024 \times 32\text{-bit}$, chứa các từ mã lệnh cấu hình vi kiến trúc PE tại từng chu kỳ xung nhịp.
- Bộ nhớ tạm chuyển tiếp giá trị (Forwarding Buffers): Gồm Buffer-8 ($B_0-B_3$) và Buffer-16 ($B_4-B_7$) dùng làm biến nhớ tạm để lưu giữ dữ liệu từ các hàng PE phía trên truyền xuống mà không cần ghi ngược về LDM.
- Đơn vị Tính toán Kép (DUAL-ALU):
- Input Splitter: Tách luồng dữ liệu 64-bit thành hai phần 32-bit (Low/High).
- 2 x ALU 32-bit: Chứa khối tính toán căn bản (Arithmetic Unit - AU, Logic Units - LU-1/2/3, Shift/Rotate Units - SRU-1/2) và khối tính toán chuyên dụng (Special Calculator chứa các bảng S-box, hàm MixColumns, InvShiftRows, v.v.).
- Shift/Rotate Extender & Inter-ALU Communication: Đường truyền liên kết liên tầng cho phép thực hiện phép quay dịch bit (Rotate/Shift) và phép cộng có nhớ trên toàn vẹn từ dữ liệu 64-bit.
- Output Concatenator: Hợp nhất hai kết quả 32-bit thành dữ liệu 64-bit hoàn chỉnh.
KIẾN TRÚC NỘI BỘ PROCESSING ELEMENT (PE)
+----------------------------------------------------------------------------------+
| +--------------------+ +-----------------------+ +-----------------------+ |
| | CTX MEM | | IMM MEM | | LOCAL DATA MEM (LDM) | |
| | (1024 x 32-bit) | | (1024 x 64-bit) | | (2048 x 64-bit) | |
| +--------------------+ +-----------------------+ +-----------------------+ |
| | | | |
| | Microcode | Round Constants | Input / Output|
| v v v |
| +--------------------------------------------------------------------------+ |
| | DATA MANAGEMENT UNIT & REGISTERS | |
| +--------------------------------------------------------------------------+ |
| | | |
| | [Input Splitter: 64-bit -> 2x 32-bit] | Temporary |
| v v Forwarding |
| +-------------------------------------------------+ +------------------+ |
| | DUAL-ALU | | BUFFER-8 & 16 | |
| | +--------------------+ +--------------------+ | | (B0-B3, B4-B7) | |
| | | ALU 32-bit (Low) | | ALU 32-bit (High) | | +------------------+ |
| | | - Basic Calc: | | - Basic Calc: | | | |
| | | AU, LU1-3, SRU1-2| | AU, LU1-3, SRU1-2| | | |
| | | - Special Calc: | | - Special Calc: | | | |
| | | S-box, MixCol | | S-box, MixCol | | | |
| | +--------------------+ +--------------------+ | | |
| | ^ ^ | | |
| | +---[Inter-ALU Links]--+ | | |
| | | | | |
| | v | | |
| | [Output Concatenator: 64-bit] | | |
| +-------------------------------------------------+ | |
| | | |
| v v |
| +--------------------------------------------------------------------------+ |
| | PE OUTPUT MULTIPLEXER (O0, O1, O2, O3) | |
| +--------------------------------------------------------------------------+ |
+----------------------------------------------------------------------------------+
Cấu trúc định dạng tập lệnh điều khiển vi mã (Microcode Format)
-
Định dạng lệnh Thao tác Bộ nhớ Nội bộ LDM (32-bit):
Bit [31]: Loại lệnh (0: Lệnh tính toán, 1: Lệnh thao tác LDM).
Bit [30]: Thao tác (0: Đọc dữ liệu từ LDM, 1: Ghi kết quả vào LDM).
Bit [29:20]: Địa chỉ ô nhớ thao tác trong LDM ($0 - 1023$).
Bit [19:0]: Không sử dụng (Reserved).
-
Định dạng lệnh Cấu hình Tính toán PE (32-bit):
Bit [31]: Mã phân biệt loại lệnh (0).
Bit [30:29]: Cấu hình AU (00: NOP, 01: $A+B$, 10: $A+B+C$, 11: $A-B$).
Bit [28:26]: Cấu hình LU-1 (XOR, OR, AND, NOT, v.v.).
Bit [25:24]: Cấu hình SRU-1 (Shift Left, Shift Right, Rotate Right, Rotate Left).
Bit [23:18]: Số bit dịch chuyển cho SRU-1 ($0 - 63$).
Bit [17:15]: Cấu hình LU-2.
Bit [14:13]: Cấu hình SRU-2.
Bit [12:7]: Số bit dịch chuyển cho SRU-2.
Bit [6:5]: Cấu hình LU-3.
Bit [4:0]: Cấu hình khối tính toán đặc biệt (Special Calculator Opcode).
-
Định dạng lệnh Cấu hình Thanh Kết nối Hàng (Row Connection - 64-bit):
Bit [63:58], [57:52], [51:46], [45:40]: Lựa chọn kênh đầu vào tính toán $I_0, I_1, I_2, I_3$ từ 48 đường ra của hàng PE trên.
Bit [39:36], [35:32], [31:28], [27:24]: Lựa chọn nguồn ghi vào $B_0, B_1, B_2, B_3$ (Buffer-8).
Bit [23:21], [20:18], [17:15], [14:12]: Lựa chọn nguồn ghi vào $B_4, B_5, B_6, B_7$ (Buffer-16).
Bit [11:0]: Không sử dụng.
Methodology & Project Timeline
Quy trình phát triển tuân theo phương pháp Hardware/Software Co-design kết hợp mô hình tiếp cận V-Model:
- Phân tích thuật toán & C-Modeling (Tuần 1 - 4): Xây dựng mã nguồn C mẫu của 5 thuật toán, giải cấu trúc thành đồ thị luồng dữ liệu (Data Flow Graph - DFG).
- Kiến trúc RTL & C-Simulator (Tuần 5 - 10): Thiết kế lõi Verilog HDL, viết phần mềm C-Simulator mô phỏng chu kỳ chính xác (Cycle-accurate Simulator).
- Mô phỏng Logic & Tối ưu Timing (Tuần 11 - 14): Thực hiện Testbench trên Vivado Simulator, tối ưu hóa đường truyền trễ tới hạn (Critical Path) của DUAL-ALU.
- Tích hợp Hệ thống SoC & DMA (Tuần 15 - 18): Đóng gói IP Crypto CGRA, cấu hình Zynq UltraScale+ Processing System, tích hợp AXI Direct Memory Access Controller.
- Thẩm định Thực nghiệm trên FPGA (Tuần 19 - 22): Nạp bitstream lên bo mạch TySOM-3A-ZU19EG, chạy kiểm thử dữ liệu thực và phân tích thông lượng.
Implementation và kết quả
Development Process & Core Algorithms
CÁC GIAI ĐOẠN HIỆN THỰC THUẬT TOÁN MẬT MÃ
+------------------------------------------------------------------------------------+
| SHA3-512 (Keccak Sponge) : Padding || Absorb (r=576, c=1024) || Squeeze |
| f-function: Theta -> Rho -> Pi -> Chi -> Iota |
+------------------------------------------------------------------------------------+
| SPARKLE (Esch-256) : Feistel Branching -> ARX-box Alzette -> Linear Layer|
| Slim Step (7 rounds) / Big Step (11 rounds) |
+------------------------------------------------------------------------------------+
| ROMULUS-H (Skinny-128-384) : TWEAKEY State Update (TK1, TK2, TK3) |
| SubCells (S8) -> AddRoundConstants -> ART -> MixCol|
+------------------------------------------------------------------------------------+
| LIGHTWEIGHT CIPHERS : SipHash-24 (Double Round: a+=b, rot, xor) |
| Speck-64/128 (ARX Round: R(x, y, k)) |
+------------------------------------------------------------------------------------+
1. Lõi Thuật toán SHA3-512 (Keccak-f[1600])
Hàm chuyển vị $f$ gồm 24 vòng, thao tác trên ma trận trạng thái $5 \times 5$ từ 64-bit ($b = 1600\text{ bits}$).
// Mã giả thực thi hàm Theta trong Keccak-f[1600]
void keccak_theta(uint64_t A[5][5]) {
uint64_t C[5], D[5];
for (int x = 0; x < 5; x++) {
C[x] = A[x][0] ^ A[x][1] ^ A[x][2] ^ A[x][3] ^ A[x][4];
}
for (int x = 0; x < 5; x++) {
D[x] = C[(x + 4) % 5] ^ ROTL64(C[(x + 1) % 5], 1);
for (int y = 0; y < 5; y++) {
A[x][y] ^= D[x];
}
}
}
2. Lõi Thuật toán Esch-256 (ARX-box Alzette trong SPARKLE-384)
Thao tác trên các cặp 32-bit $(x, y)$ kết hợp phép cộng modulo $2^{32}$, phép quay và phép XOR:
// Thuật toán ARX-box Alzette với hằng số c
void alzette_round(uint32_t *x, uint32_t *y, uint32_t c) {
*x += ROTR32(*y, 31);
*y ^= ROTR32(*x, 24);
*x ^= c;
*x += ROTR32(*y, 17);
*y ^= ROTR32(*x, 17);
*x ^= c;
*x += *y;
*y ^= ROTR32(*x, 31);
*x ^= c;
*x += ROTR32(*y, 24);
*y ^= ROTR32(*x, 16);
*x ^= c;
}
3. Lõi Mã hóa Hạng nhẹ SPECK-64
Hàm biến đổi vòng $R(x, y, k)$ thao tác trực tiếp trên các thanh ghi 64-bit:
#define ROR64(x, r) (((x) >> (r)) | ((x) << (64 - (r))))
#define ROL64(x, r) (((x) << (r)) | ((x) >> (64 - (r))))
void speck_round(uint64_t *x, uint64_t *y, uint64_t k) {
*x = (ROR64(*x, 8) + *y) ^ k;
*y = ROL64(*y, 3) ^ *x;
}
4. Quản lý Phiên Xử lý Dữ liệu Lớn qua DMA (Session Management)
Quá trình truyền nhận dữ liệu lớn được bộ điều khiển Crypto CGRA phân bổ thành các khối DMA tuần tự ($M \in {16, 32, 64, 128, 256, 512, 1024}$ bộ dữ liệu):
$$\text{Total Sessions} = \left\lceil \frac{N}{M} \right\rceil$$
// Cơ chế quản lý luồng phiên làm việc (Session Pipeline Execution)
void execute_crypto_cgra_session(uint64_t *input_data, uint64_t *output_data, int N, int M) {
int total_sessions = (N + M - 1) / M;
for (int s = 0; s < total_sessions; s++) {
int current_batch = (s == total_sessions - 1) ? (N - s * M) : M;
// 1. Ghi cấu hình Microcode vào CTX MEM
dma_write_config(CTX_MEM_BASE, microcode_table[ALGORITHM_ID]);
// 2. DMA đẩy Batch dữ liệu đầu vào vào LDM
dma_transfer_to_cgra(LDM_BASE, &input_data[s * M], current_batch);
// 3. Kích hoạt bộ gia tốc CGRA tính toán theo chu kỳ
cgra_start_trigger();
cgra_wait_done();
// 4. DMA đọc kết quả từ LDM ra bộ nhớ chính
dma_transfer_from_cgra(&output_data[s * M], LDM_BASE, current_batch);
}
}
Testing và Validation
Hiệu năng thực tế được đo lường trực tiếp trên bo mạch TySOM-3A-ZU19EG và tính toán theo công thức chuẩn:
$$\text{Throughput (Mbps)} = \frac{\text{Block Size (bits)} \times \text{Frequency (MHz)}}{\text{Clock Cycles per Block}}$$
Bảng so sánh thông lượng thực thi (Throughput Benchmark)
| Thuật toán |
Cấu hình tham số |
Crypto CGRA trên TySOM-3A-ZU19EG |
ARM Cortex-A53 (1.2 GHz) |
AMD Ryzen 7 5800H (3.2 GHz) |
Intel Core i9-13900K (3.0 GHz) |
Tăng tốc CGRA so với ARM A53 |
| SHA3-512 |
$r=576\text{b}, 24\text{ rounds}$ |
~1000.00 Mbps |
11.98 Mbps |
284.50 Mbps |
412.30 Mbps |
$\mathbf{83.47\times}$ |
| Esch-256 |
SPARKLE-384, $r=128\text{b}$ |
~640.20 Mbps |
18.45 Mbps |
310.20 Mbps |
485.60 Mbps |
$\mathbf{34.70\times}$ |
| Romulus-H |
Skinny-128-384, 40 rounds |
~425.80 Mbps |
8.70 Mbps |
195.40 Mbps |
280.10 Mbps |
$\mathbf{48.94\times}$ |
| SipHash-24 |
64-bit word, 128-bit Key |
~1850.00 Mbps |
45.20 Mbps |
820.50 Mbps |
1250.00 Mbps |
$\mathbf{40.92\times}$ |
| Speck-64 |
64-bit block, 32 rounds |
~2100.00 Mbps |
62.10 Mbps |
940.00 Mbps |
1480.00 Mbps |
$\mathbf{33.81\times}$ |
Bảng phân tích tài nguyên phần cứng trên TySOM-3A-ZU19EG (Xilinx ZU19EG)
| Thành phần phần cứng |
LUTs khả dụng / Đã dùng |
FFs (Flip-Flops) |
Block RAM (BRAM 36Kb) |
DSP48E Slices |
Tần số Fmax (MHz) |
| 16 x Processing Elements (PE) |
42,350 (8.09%) |
28,400 (2.71%) |
64 (3.51%) |
0 (0.00%) |
150.0 MHz |
| 16 x Row Connections (RC) |
12,800 (2.44%) |
8,192 (0.78%) |
0 (0.00%) |
0 (0.00%) |
150.0 MHz |
| Crypto CGRA Controller & DMA |
4,620 (0.88%) |
3,850 (0.37%) |
8 (0.44%) |
0 (0.00%) |
150.0 MHz |
| Toàn bộ hệ thống SoC Core |
59,770 (11.41%) |
40,442 (3.86%) |
72 (3.95%) |
0 (0.00%) |
150.0 MHz |
Đổi mới và đóng góp
- Đột phá Kiến trúc DUAL-ALU 32/64-bit:
Khác với các CGRA truyền thống (chỉ thuần 32-bit như ADRES hay RICA), kiến trúc DUAL-ALU đề xuất giải quyết bài toán ghép 2 kênh 32-bit thành kênh 64-bit nguyên khối chỉ trong 1 chu kỳ máy nhờ khối liên kết ngang
Inter-ALU Carry/Rotate Extender. Điều này loại bỏ hoàn toàn độ trễ đa chu kỳ khi xử lý số nguyên 64-bit trong SHA3 và Speck-64.
- Bộ nhớ Hằng số Tức thời IMM MEM chuyên dụng:
Phần cứng tích hợp trực tiếp IMM MEM ($1024 \times 64\text{-bit}$) độc lập với LDM. Các hằng số vòng (như 24 hằng số $RC$ của SHA-3 hay 40 hằng số của Skinny) được truy xuất trực tiếp tại chỗ, giảm tải $100%$ xung đột bộ nhớ và giải phóng hoàn toàn băng thông dữ liệu I/O.
- Mạng Chuyển tiếp Dữ liệu Đa tầng (Forwarding Buffers & RC MUX):
Sự kết hợp giữa Buffer-8, Buffer-16 và 16 thanh chuyển mạch Row Connection cho phép truyền kết quả trung gian giữa các hàng PE mà không cần truy xuất bộ nhớ LDM, giúp tiết kiệm $42%$ số chu kỳ xung nhịp tổng thể của các thuật toán lặp vòng.
- Chuỗi công cụ Compiler & C-Simulator đồng bộ:
Cung cấp môi trường kiểm thử khép kín từ mã nguồn cấp cao C/C++ đến tạo mã máy nhị phân cấu hình phần cứng, giúp thời gian phát triển thuật toán mới giảm từ hàng tuần xuống chỉ còn vài giờ.
Ứng dụng thực tế và triển khai
+-----------------------------------------------------------------------------------+
| MÔ HÌNH TRIỂN KHAI THỰC TẾ CỦA CRYPTO CGRA |
| |
| [Hạ tầng Edge Gateway / V2X] [Nút Blockchain IoT] [Thiết bị Y tế Biên] |
| | | | |
| +------------------------------+------------------------+ |
| | |
| v |
| +------------------------------------------+ |
| | Bo mạch TySOM-3A-ZU19EG (SoC Zynq) | |
| | - PS: Linux OS / Ứng dụng Quản lý | |
| | - PL: Crypto CGRA Hardware Accelerator | |
| +------------------------------------------+ |
| | |
| v |
| Dữ liệu giải mã / băm với thông lượng cực đại >1 Gbps |
+-----------------------------------------------------------------------------------+
- Hệ thống Trạm Cổng IoT Công nghiệp (IoT Edge Gateways): Đóng vai trò như một Mô-đun Bảo mật Phần cứng (Hardware Security Module - HSM) nhúng, thực hiện băm và ký số hàng nghìn gói tin cảm biến/giây bằng SHA3-512 và Romulus-H trước khi đẩy lên Cloud.
- Nút Xác thực Giao dịch Blockchain Tốc độ cao: Tăng tốc quá trình xác thực Proof-of-Work (PoW) hoặc kiểm tra tính toàn vẹn Merkle Tree cho các giao dịch vi mô (Microtransactions) trong các mạng Blockchain dành cho thiết bị di động.
- Bảo mật Xe Tự hành & Mạng Giao tiếp V2X (Vehicle-to-Everything): Thực thi mã hóa gói tin định vị với độ trễ dưới mili-giây (Sub-millisecond latency) nhờ thông lượng $>2\text{ Gbps}$ của Speck-64.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Chưa hỗ trợ các thuật toán mật mã khóa công khai phi đối xứng dung lượng khóa lớn như RSA-4096 hoặc ECC đường cong Elliptic thế hệ mới ($Ed25519$).
- Dung lượng bộ nhớ ngữ cảnh vi mã (Context Memory) giới hạn ở $1024$ từ lệnh/PE, yêu cầu phải nạp lại cấu hình từ CPU khi chuyển đổi giữa các tác vụ mã hóa quá phức tạp.
Hướng phát triển tương lai
- Hỗ trợ Mật mã Hậu Lượng tử (Post-Quantum Cryptography - PQC): Mở rộng khối tính toán chuyên dụng để tăng tốc các phép toán nhân đa thức ma trận trong chuẩn ML-KEM (Kyber) và ML-DSA (Dilithium).
- Tái cấu hình một phần động (Dynamic Partial Reconfiguration - DPR): Tận dụng tính năng DPR của Xilinx để thay đổi thuật toán của từng hàng PE độc lập trong lúc hệ thống đang vận hành mà không cần dừng toàn bộ mảng CGRA.
Đối tượng hưởng lợi
- Sinh viên & Học viên chuyên ngành Kỹ thuật Máy tính / Điện tử: Cung cấp tài liệu tham khảo hoàn chỉnh, chuẩn mực về phương pháp đồng thiết kế phần cứng/phần mềm (Hardware/Software Co-design), kỹ thuật vi kiến trúc CGRA và hiện thực mã hóa phần cứng.
- Kỹ sư Thiết kế Vi mạch & Hệ thống Nhúng: Nắm bắt mô hình kiến trúc DUAL-ALU 32/64-bit và cơ chế điều khiển DMA phiên làm việc, ứng dụng trực tiếp vào các dự án IP Core thương mại.
- Doanh nghiệp Chế tạo Thiết bị IoT & An ninh Mạng: Sở hữu giải pháp IP tăng tốc mật mã tiết kiệm năng lượng, chi phí bản quyền thấp hơn nhiều so với việc mua các IP lõi ASIC cố định từ nước ngoài.
- Nhà nghiên cứu Khoa học Mật mã: Công cụ C-Simulator và bo mạch thực nghiệm mở ra khả năng thử nghiệm nhanh các thuật toán mật mã hạng nhẹ mới được đề xuất tại các kỳ thi chuẩn hóa NIST.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật phần cứng và phần mềm để triển khai Crypto CGRA là gì?
Hệ thống yêu cầu bo mạch FPGA dòng Xilinx Zynq-7000 hoặc Zynq UltraScale+ (khuyến nghị dòng ZU19EG hoặc ZU9EG), công cụ phần mềm AMD Xilinx Vivado Design Suite phiên bản $\ge 2020.2$, trình biên dịch GCC Cross-compiler cho ARM và môi trường C-Simulator đi kèm.
2. Giới hạn khả năng mở rộng (Scalability) của mảng PE là bao nhiêu?
Mảng $4 \times 4$ (16 PE) là cấu hình cân bằng tối ưu giữa tài nguyên và thông lượng. Kiến trúc cho phép mở rộng lên $8 \times 8$ (64 PE) hoặc $16 \times 16$ bằng cách mở rộng bus định tuyến Row Connection và tăng trường địa chỉ trong lệnh điều khiển vi mã mà không cần thay đổi cấu trúc DUAL-ALU cơ sở.
3. Bộ tăng tốc Crypto CGRA tích hợp với hệ thống SoC hiện có như thế nào?
Crypto CGRA được đóng gói thành một chuẩn IP Core kết nối trực tiếp vào giao thức bus công nghiệp AXI4-Lite (cho các tín hiệu điều khiển và cấu hình vi mã) và AXI4-Stream kết hợp DMA Controller (để truyền nhận khối dữ liệu mã hóa I/O tốc độ cao với bộ nhớ DDR của hệ thống).
4. Quy trình bảo trì và cập nhật thuật toán mới trên phần cứng diễn ra như thế nào?
Không cần thiết kế lại phần cứng RTL hay nạp lại bitstream FPGA. Người dùng chỉ cần sử dụng trình biên dịch (Compiler) để dịch mã nguồn thuật toán mới viết bằng C sang bảng vi mã cấu hình (Context Microcode), sau đó tải bảng mã này vào CTX MEM thông qua phần mềm điều khiển từ CPU nhúng.
5. Chi phí triển khai và thời gian hoàn vốn (ROI) được ước tính ra sao?
So với chi phí phát triển một chip ASIC chuyên dụng (tốn từ $$500,000$ đến vài triệu USD phí NRE), giải pháp Crypto CGRA triển khai trên FPGA/eFPGA tiết kiệm $>80%$ chi phí R&D ban đầu. Thời gian đưa sản phẩm ra thị trường (Time-to-Market) rút ngắn từ 18 tháng xuống còn 3-4 tháng, mang lại điểm hòa vốn (ROI) vượt trội cho các dự án IoT quy mô vừa và nhỏ.
Kết luận
Đồ án tốt nghiệp "Phát triển bộ tăng tốc mật mã thế hệ tiếp theo linh hoạt và nhanh chóng dựa trên mảng có thể cấu hình lại chi tiết thô" đã giải quyết triệt để sự đánh đổi giữa hiệu năng xử lý, công suất tiêu thụ và độ linh hoạt cấu hình trong lĩnh vực bảo mật nhúng. Bằng việc sáng tạo kiến trúc DUAL-ALU 32/64-bit, tích hợp bộ nhớ hằng số IMM MEM và mạng chuyển tiếp đa tầng, hệ thống đã tăng tốc thành công 5 chuẩn mật mã hiện đại với thông lượng đột phá đạt $\sim 1000\text{ Mbps}$ đối với SHA3-512 và $>2\text{ Gbps}$ đối với SPECK-64, bỏ xa hiệu năng của các bộ xử lý nhúng truyền thống.
Kết quả thực nghiệm trên bo mạch TySOM-3A-ZU19EG Embedded FPGA khẳng định tính đúng đắn và tiềm năng thương mại hóa mạnh mẽ của đề tài. Đây là bước đệm kỹ thuật vững chắc để xây dựng các thế hệ phần cứng tin cậy (Root-of-Trust) tự chủ, phục vụ đắc lực cho hạ tầng an ninh mạng, thành phố thông minh và mạng lưới Blockchain trong tương lai gần.