Giới thiệu dự án

Sự bùng nổ của cuộc Cách mạng Công nghiệp 4.0 đã thúc đẩy mạng lưới Vạn vật kết nối (Internet of Things - IoT) phát triển với tốc độ chưa từng có. Theo các báo cáo công nghiệp vi điện tử toàn cầu, số lượng thiết bị IoT kết nối dự kiến vượt mốc 30 tỷ thiết bị, thâm nhập sâu rộng vào các lĩnh vực hạ tầng trọng yếu như lưới điện thông minh (Smart Grid), tự động hóa công nghiệp (Industrial Automation), giao thông thông minh và thiết bị y tế đeo tay. Tuy nhiên, sự mở rộng nhanh chóng này kéo theo những lỗ hổng bảo mật nghiêm trọng. Phần lớn các nút cảm biến biên (Edge IoT Nodes) bị giới hạn khắt khe về công suất tiêu thụ và tài nguyên tính toán, khiến việc triển khai các thuật toán mã hóa phức tạp trở thành một thách thức lớn.

+-----------------------------------------------------------------------+
|                           HỆ THỐNG IoT BIÊN                           |
|  +---------------------+      Thu thập     +-----------------------+  |
|  | Cảm biến / Ngoại vi | ----------------> |  Vi điều khiển 32-bit  |  |
|  +---------------------+                   |  (ARM Cortex-M0 Core) |  |
|                                            +-----------+-----------+  |
|                                                        |              |
|                                           Mã hóa phần cứng AES-128    |
|                                           qua Bus APB tốc độ cao      |
|                                                        v              |
|  +---------------------+      Gói tin bảo mật +--------------------+  |
|  | Server / Cloud IoT  | <---------------- |  Bộ truyền thông RF   |  |
|  +---------------------+      (Chống can thiệp) (WiFi / BLE / ZigBee) |
+-----------------------------------------------------------------------+

Vấn đề cốt lõi (Problem Statement) nằm ở sự đánh đổi giữa hiệu năng xử lý, năng lượng tiêu thụ và mức độ an toàn dữ liệu. Việc thực thi các giải thuật mã hóa tiêu chuẩn như Advanced Encryption Standard (AES) hoàn toàn bằng phần mềm (Software-based Cryptography) trên các dòng vi xử lý nhúng chi phí thấp gây chiếm dụng từ 60% đến 80% chu kỳ CPU, làm gia tăng đáng kể độ trễ truyền dữ liệu (latency) và tiêu hao năng lượng pin. Ngược lại, việc sử dụng các vi mạch bảo mật rời gắn ngoài lại làm tăng diện tích bo mạch (PCB Footprint), phát sinh chi phí sản xuất linh kiện (BOM Cost) và tạo ra nút thắt cổ chai về băng thông khi giao tiếp qua các chuẩn bus nối tiếp tốc độ thấp như UART hoặc SPI.

Đồ án tốt nghiệp "Nghiên cứu, thiết kế và mô phỏng vi điều khiển 32-bit tích hợp bộ mã hóa phần cứng" của tác giả Nguyễn Thành Long (Trường Đại học Công nghệ Thông tin, ĐHQG-HCM) tập trung giải quyết bài toán trên bằng cách phát triển một vi điều khiển System-on-Chip (SoC) 32-bit hoàn chỉnh, tích hợp trực tiếp lõi IP mã hóa phần cứng AES-128 vào hệ thống bus ngoại vi trên nền tảng kiến trúc ARM Cortex-M0.

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

  1. Nghiên cứu toàn diện kiến trúc tập lệnh ARMv6-M Thumb, cơ chế quản lý ngắt lồng nhau NVIC (Nested Vectored Interrupt Controller) và giao thức bus AMBA (AHB-Lite, APB).
  2. Thiết kế và đóng gói lõi IP mã hóa phần cứng AES-128 hoạt động ở chế độ Electronic Codebook (ECB) bằng ngôn ngữ mô tả phần cứng Verilog RTL.
  3. Tích hợp lõi ARM Cortex-M0 từ chương trình ARM DesignStart Eval với hệ thống ngoại vi đầy đủ (GPIO, UART, SPI, I2C, Timers, Watchdog) và khối AES IP thông qua cầu nối AHB-to-APB Bridge.
  4. Xây dựng môi trường kiểm chứng và mô phỏng toàn diện chức năng SoC bằng Cadence NC Verilog và các kịch bản kiểm thử C/Assembly biên dịch qua GNU Tools for Arm Embedded Processors (ARM GCC).
  5. Thực hiện tổng hợp phần cứng (Logic Synthesis) và phân tích định thời (Timing Analysis) trên các công cụ EDA tiêu chuẩn (Intel Quartus Prime Lite 23.1, Xilinx Vivado 2023.2), đạt tần số hoạt động tối đa $F_{max} > 50\text{ MHz}$.

Phạm vi và giới hạn đề tài: Thiết kế tập trung vào việc hiện thực chuẩn mã hóa AES-128 chế độ ECB với giao tiếp ánh xạ bộ nhớ (Memory-Mapped I/O) trên bus APB và phản hồi ngắt chuyên dụng (aes_int). Chế độ CBC/CTR và giao tiếp DMA Controller được quy hoạch kiến trúc nhưng lược bỏ trong phiên bản tổng hợp cuối cùng để tối ưu tài nguyên logic trên FPGA mục tiêu.


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

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

Trong thiết kế hệ thống nhúng bảo mật cho IoT, các kiến trúc sư phần cứng hiện có ba hướng tiếp cận chính: mã hóa phần mềm thuần túy, vi điều khiển kết hợp chip bảo mật ngoại vi, và vi điều khiển tích hợp bộ gia tốc phần cứng on-chip.

Tiêu chí so sánh Mã hóa phần mềm (Software AES) Chip mã hóa rời (UART/SPI Crypto IC) SoC tích hợp phần cứng (Đề tài đề xuất)
Chiếm dụng CPU Cực cao (60% - 85% tải tính toán) Rất thấp (< 5% tải tính toán) Tối thiểu (< 2% tải tính toán)
Băng thông / Độ trễ Chậm (hàng nghìn chu kỳ lệnh) Bị nghẽn bởi tốc độ bus nối tiếp Tốc độ chu kỳ xung nhịp bus on-chip
Bảo mật vật lý Dễ bị tấn công phần mềm / tràn bộ nhớ Dễ bị nghe lén đường bus PCB Bảo mật cao, dữ liệu nằm trọn vẹn trong chip
Diện tích & Chi phí BOM Không tốn diện tích, tối ưu BOM Tốn thêm IC rời, tăng diện tích PCB Tối ưu hóa trên một vi mạch SoC duy nhất
Tính linh hoạt Rất cao (cập nhật firmware) Thấp (cố định phần cứng ngoài) Cao (điều khiển cấu hình linh hoạt qua APB)

Yêu cầu kỹ thuật của hệ thống được phân loại theo mô hình MoSCoW:

  • Must have (Bắt buộc): Lõi ARM Cortex-M0 hoạt động chính xác; bus AHB-Lite và APB truyền nhận đúng chuẩn; khối AES-128 mã hóa chính xác theo tiêu chuẩn NIST FIPS PUB 197; cơ chế kích hoạt ngắt hoàn thành mã hóa aes_int.
  • Should have (Nên có): Bộ điều khiển hệ thống System Controller hỗ trợ tự động reset khi lockup; hỗ trợ Serial Wire Debug (SWD); cơ chế đóng ngắt xung nhịp (Clock Gating) qua tín hiệu APBACTIVEPCLKG để tiết kiệm điện.
  • Could have (Có thể mở rộng): Tích hợp bộ điều khiển DMA trực tiếp cho khối AES; hỗ trợ các chế độ mã hóa khối mở rộng (CBC, CTR).
  • Won't have (Chưa thực hiện): Đơn vị quản lý năng lượng WIC (Wakeup Interrupt Controller) và giao thức gỡ lỗi JTAG đầy đủ (do giới hạn phiên bản ARM DesignStart Eval).

Thiết kế hệ thống

Kiến trúc phần cứng của hệ thống vi điều khiển SoC 32-bit (Expected System) được xây dựng theo mô hình phân tầng bus tiêu chuẩn công nghiệp ARM AMBA:

Stack công nghệ và phiên bản phần mềm/công cụ EDA sử dụng:

  • Ngôn ngữ mô tả phần cứng: Verilog-2001, SystemVerilog.
  • Lõi xử lý: ARM Cortex-M0 DesignStart Eval IP core (ARMv6-M Thumb Instruction Set, 3-stage pipeline).
  • Thư viện hệ thống: ARM Cortex-M System Design Kit (CMSDK).
  • Phần mềm biên dịch nhúng: GNU Tools for Arm Embedded Processors (arm-none-eabi-gcc v10.3 / v12.2).
  • Mô phỏng chức năng RTL: Cadence NC Verilog (Incisive Unified Simulator) / Mentor Graphics ModelSim.
  • Tổng hợp phần cứng & Phân tích định thời: Intel Quartus Prime Lite Edition 23.1 và Xilinx Vivado ML Standard 2023.2.

Không gian địa chỉ của khối AES IP được tích hợp trực tiếp vào vùng nhớ ngoại vi APB Subsystem:

Tên thanh ghi Địa chỉ Offset Độ rộng Chức năng chi tiết
AES_CR 0x00 12-bit Thanh ghi điều khiển: Chế độ mã/giải mã, bật/tắt IP, chọn kiểu dữ liệu (data swapping)
AES_SR 0x04 3-bit Thanh ghi trạng thái: Báo bận (BUSY), hoàn thành tính toán (CCF), cờ lỗi
AES_DINR 0x08 32-bit Thanh ghi ghi dữ liệu ngõ vào (Input Data - 4 lần ghi cho 128-bit block)
AES_DOUTR 0x0C 32-bit Thanh ghi đọc dữ liệu ngõ ra (Output Data - 4 lần đọc cho 128-bit ciphertext)
AES_KEYR0 0x10 32-bit Khóa mã hóa 128-bit [31:0] (Least Significant Word)
AES_KEYR1 0x14 32-bit Khóa mã hóa 128-bit [63:32]
AES_KEYR2 0x18 32-bit Khóa mã hóa 128-bit [95:64]
AES_KEYR3 0x1C 32-bit Khóa mã hóa 128-bit [127:96] (Most Significant Word)

Phương pháp nghiên cứu và phát triển

Dự án áp dụng quy trình thiết kế vi mạch tiêu chuẩn bán dẫn (ASIC/FPGA Design Flow):

  1. Phân tích yêu cầu & Mô hình hóa thuật toán: Nghiên cứu lý thuyết mật mã học AES, xây dựng mô hình tham chiếu (Golden Reference Model) tính toán bảng thế S-box, phép biến đổi ma trận MixColumns trên trường hữu hạn Galois $GF(2^8)$.
  2. Hiện thực RTL (Register-Transfer Level): Thiết kế khối tính toán dữ liệu aes_core (Datapath), máy trạng thái hữu hạn aes_fsm (Control Unit) và mô-đun bọc wrapper chuyển đổi giao thức bus APB sang giao diện nội bộ của AES.
  3. Tích hợp hệ thống SoC: Thay thế vị trí ngoại vi Timer0 trong hệ thống CMSDK APB Subsystem bằng mô-đun aes_ip.v, cấu hình bộ giải mã địa chỉ cmsdk_apb_slave_mux.v và kết nối tín hiệu ngắt aes_int tới đường ngắt tương ứng trên NVIC.
  4. Kiểm thử mô phỏng (Functional Verification): Viết chương trình phần mềm nhúng bằng C, sử dụng GNU ARM Toolchain để biên dịch ra mã máy hex/bin, nhúng vào bộ nhớ mô phỏng và chạy kiểm tra dạng sóng tín hiệu trên Cadence NC Verilog.
  5. Tổng hợp & Đánh giá định thời: Thực thi công đoạn Analysis & Synthesis, Fitting (Place & Route) và TimeQuest Timing Analysis trên Quartus Prime để kiểm tra độ trễ trượt (Setup/Hold slack) và xác định $F_{max}$.
+-----------------------------------------------------------------------------------+
|                        MA TRẬN QUẢN TRỊ RỦI RO THIẾT KẾ                           |
+------------------------------------+-----------+----------------------------------+
| Nguy cơ rủi ro                     | Mức độ    | Chiến lược giảm thiểu            |
+------------------------------------+-----------+----------------------------------+
| Vi phạm định thời (Timing Setup)   | Cao       | Chèn thanh ghi chốt (Pipelining) |
| tại khối nhân MixColumns           |           | phân tách tầng logic phức tạp    |
+------------------------------------+-----------+----------------------------------+
| Trạng thái bất định Metastability  | Trung     | Đồng bộ tín hiệu ngắt và I/O qua |
| giữa miền Clock APB và AHB         | bình      | mạch Flip-Flop kép (2-stage FF)  |
+------------------------------------+-----------+----------------------------------+
| Xung đột bus khi nhiều Master/     | Trung     | Triển khai AHB Slave Mux với cơ  |
| Slave truy cập cùng lúc            | bình      | chế phản hồi Zero Wait-State     |
+------------------------------------+-----------+----------------------------------+

Implementation và kết quả

Quá trình phát triển phần cứng và phần mềm

Khối AES IP gồm hai thành phần cốt lõi: Khối tính toán (aes_core) và Khối ghép nối bus (wrapper). Khối Datapath của aes_core đảm nhận toàn bộ 10 vòng lặp (Rounds) của quá trình mã hóa AES-128:

  • KeyExpansion: Sinh 11 khóa con (Round Keys) 128-bit từ khóa gốc thông qua hàm Rcon và bảng tra thế SubBytes.
  • SubBytes / InvSubBytes: Thay thế phi tuyến từng byte qua bảng S-box.
  • ShiftRows / InvShiftRows: Dịch chuyển các byte trong hàng ma trận trạng thái $4 \times 4$.
  • MixColumns / InvMixColumns: Nhân ma trận trạng thái với đa thức cố định modulo $x^4 + 1$ trên trường $GF(2^8)$.
  • AddRoundKey: Phép cộng XOR bit ma trận trạng thái với khóa con của từng vòng.

Đoạn mã C giao tiếp tầng thấp (Low-level Hardware Driver) cấu hình và kích hoạt khối AES IP trên bus APB:

#include <stdint.h>

#define AES_BASE_ADDR    (0x40000000UL) // Địa chỉ cơ sở của AES IP trên bus APB
#define AES_CR           (*(volatile uint32_t *)(AES_BASE_ADDR + 0x00))
#define AES_SR           (*(volatile uint32_t *)(AES_BASE_ADDR + 0x04))
#define AES_DINR         (*(volatile uint32_t *)(AES_BASE_ADDR + 0x08))
#define AES_DOUTR        (*(volatile uint32_t *)(AES_BASE_ADDR + 0x0C))
#define AES_KEYR0        (*(volatile uint32_t *)(AES_BASE_ADDR + 0x10))
#define AES_KEYR1        (*(volatile uint32_t *)(AES_BASE_ADDR + 0x14))
#define AES_KEYR2        (*(volatile uint32_t *)(AES_BASE_ADDR + 0x18))
#define AES_KEYR3        (*(volatile uint32_t *)(AES_BASE_ADDR + 0x1C))

#define AES_CR_EN        (1 << 0)
#define AES_CR_MODE_ENCR (0 << 1)
#define AES_SR_CCF       (1 << 0)

void aes_128_encrypt_block(const uint32_t key[4], const uint32_t input[4], uint32_t output[4]) {
    // 1. Cài đặt khóa mã hóa 128-bit
    AES_KEYR0 = key[0];
    AES_KEYR1 = key[1];
    AES_KEYR2 = key[2];
    AES_KEYR3 = key[3];

    // 2. Cấu hình chế độ mã hóa ECB và kích hoạt bộ xử lý
    AES_CR = AES_CR_MODE_ENCR | AES_CR_EN;

    // 3. Ghi 128-bit bản rõ vào khối dữ liệu vào
    for (int i = 0; i < 4; i++) {
        AES_DINR = input[i];
    }

    // 4. Chờ cờ hoàn thành tính toán (CCF) hoặc đợi ngắt NVIC
    while (!(AES_SR & AES_SR_CCF));

    // 5. Đọc 128-bit bản mã từ thanh ghi ngõ ra
    for (int i = 0; i < 4; i++) {
        output[i] = AES_DOUTR;
    }
}

Tại tầng chuyển đổi giao thức RTL, mô-đun cmsdk_apb_slave_mux.v được cấu hình để ánh xạ bus APB tới aes_ip.v:

// Trích xuất cấu hình kết nối AES IP trong APB Subsystem
aes_ip u_aes_ip (
    .PCLK        (PCLK),
    .PRESETn     (PRESETn),
    .PSEL        (ext0_psel),       // Kênh PSEL0 thay thế cho Timer0
    .PENABLE     (PENABLE),
    .PWRITE      (PWRITE),
    .PADDR       (PADDR[3:0]),
    .PWDATA      (PWDATA[31:0]),
    .PRDATA      (ext0_prdata[31:0]),
    .PREADY      (ext0_pready),
    .PSLVERR     (ext0_pslverr),
    .aes_int     (aes_interrupt)    // Tín hiệu ngắt nối tới NVIC
);

Kiểm thử và đánh giá chức năng

Hệ thống được kiểm chứng qua bộ kịch bản mô phỏng đa tầng (Multi-layered Simulation Suite) ở chế độ dòng lệnh (Batch Mode) và kiểm tra dạng sóng tín hiệu:

  • Kiểm thử hệ thống cơ sở: Chạy các bài test hello.c, dhrystone (đo hiệu năng vi xử lý), timer_tests, timer_driver_tests, default_slaves_tests, apb_mux_tests, watchdog_demo, sleep_demo, self_reset_demo, dualtimer_demo.
  • Kiểm thử chuyên sâu khối mã hóa: Bài kiểm thử aes_ip_test thực thi nạp chuỗi khóa thử nghiệm chuẩn của NIST, nạp dữ liệu Plaintext mẫu, đối chiếu dạng sóng aes_int được kích hoạt ở mức cao sau khi hoàn tất chu trình tính toán. Kết quả Ciphertext được so sánh bit-level với mô hình phần mềm đối chứng trực tuyến, đạt độ chính xác tuyệt đối 100%.
======================================================================
CADENCE NC-VERILOG SIMULATION LOG REPORT - AES_IP TESTBENCH
======================================================================
[INFO] Reset System De-asserted at time: 105 ns
[INFO] Writing Key: 0x2b7e1516 0x28aed2a6 0xabf71588 0x09cf4f3c
[INFO] Writing Plaintext: 0x6bc1bee2 0x2e409f96 0xe93d7e11 0x7393172a
[INFO] Starting Hardware AES-128 Encryption Engine...
[STATUS] Processing Round 1 to 10...
[INTERRUPT] 'aes_int' Signal Asserted at time: 385 ns
[INFO] Reading Ciphertext: 0x3ad77bb4 0x0d7a3660 0xa89ecaf3 0x2466ef97
[VERIFICATION] NIST Test Vector Matching: SUCCESS (0 Errors)
======================================================================

Kết quả tổng hợp phần cứng

Quá trình tổng hợp logic trên công cụ Intel Quartus Prime Lite Edition 23.1 với họ vi mạch FPGA mục tiêu thu được các chỉ số kỹ thuật cụ thể:

Thông số phần cứng Hệ thống mẫu (FPGA System) Hệ thống mục tiêu (Expected System + AES) Riêng khối AES IP
Logic Elements / ALMs ~14,200 LEs ~18,950 LEs 4,750 LEs
Tổng số thanh ghi (Registers) 4,812 Regs 6,340 Regs 1,528 Regs
Bộ nhớ nội (Memory Bits / MLAB) 131,072 bits 131,072 bits 0 bits (Dùng thuần Logic/LUT)
Khối xử lý DSP (DSP Blocks) 0 Blocks 0 Blocks 0 Blocks
Tần số hoạt động tối đa ($F_{max}$) 54.12 MHz 52.36 MHz 89.45 MHz
Setup Slack / Hold Slack +1.24 ns / +0.18 ns +0.85 ns / +0.12 ns +4.32 ns / +0.25 ns

Hệ thống sau khi tích hợp toàn diện khối AES IP vẫn đáp ứng tốt điều kiện hội tụ định thời (Timing Closure), đạt tần số hoạt động thực tế 52.36 MHz, vượt mức mục tiêu tối thiểu ban đầu (50 MHz).


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

  1. Kiến trúc tích hợp on-chip tốc độ cao: Khắc phục triệt để nhược điểm thắt cổ chai giao tiếp của các công trình trước đây. Cụ thể, nghiên cứu của TS. Huỳnh Hữu Thuận kết nối bộ gia tốc bảo mật qua giao thức UART nối tiếp (tốc độ truyền tối đa chỉ đạt vài trăm Kbps), trong khi giải pháp của đề tài tích hợp trực tiếp qua bus nội vi APB 32-bit, nâng băng thông truyền dữ liệu giữa CPU và bộ mã hóa lên đến hơn 160 MB/s tại tần số 52 MHz.
  2. Cơ chế xử lý hướng sự kiện tối ưu năng lượng: Sử dụng ngắt phần cứng chuyên dụng aes_int kết hợp với tập lệnh tiết kiệm điện WFI (Wait For Interrupt) của ARM Cortex-M0. CPU có thể lập tức chuyển sang trạng thái ngủ sâu (Low-power Sleep Mode) trong thời gian khối phần cứng thực thi phép mã hóa và chỉ thức dậy khi có tín hiệu ngắt báo hoàn tất, giúp tiết kiệm hơn 70% năng lượng tiêu thụ so với cơ chế hỏi vòng liên tục (Polling).
  3. Mô-đun hóa độc lập và khả năng tái sử dụng (IP Reusability): Khối wrapper được thiết kế linh hoạt, bọc độc lập lõi aes_core. Thiết kế này cho phép dễ dàng di chuyển (porting) sang các chuẩn bus công nghiệp khác như AXI4-Lite hoặc Wishbone mà không cần chỉnh sửa khối tính toán mật mã cốt lõi.
+-----------------------------------------------------------------------+
|              SO SÁNH THỜI GIAN THỰC THI MÃ HÓA 1 KHỐI 128-BIT         |
|                                                                       |
| Software AES (Cortex-M0 @ 50MHz)                                      |
| [==================================================] ~1100 Cycles     |
|                                                                       |
| UART-attached Crypto Module                                           |
| [====================================] ~800 Cycles (Bị trễ truyền bus)|
|                                                                       |
| Proposed On-Chip APB AES-128 Engine (Đề tài)                          |
| [==] 14 Cycles (Giảm >98% độ trễ tính toán)                           |
+-----------------------------------------------------------------------+

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

Hệ thống vi điều khiển 32-bit tích hợp mã hóa phần cứng trong đề tài mở ra tiềm năng ứng dụng rộng lớn:

  • Công tơ điện tử thông minh (Smart Electricity Meters): Mã hóa tức thời dữ liệu tiêu thụ điện năng của hộ gia đình trước khi truyền tải về máy chủ trung tâm qua mạng di động NB-IoT hoặc LoRaWAN, ngăn chặn hành vi giả mạo chỉ số điện.
  • Hệ thống điều khiển khóa thông minh & Vé điện tử: Xác thực dữ liệu người dùng thẻ RFID/NFC tốc độ cao, đảm bảo độ trễ xác thực dưới 5ms.
  • Nút cảm biến môi trường công nghiệp (IIoT Nodes): Thu thập dữ liệu áp suất, nhiệt độ trong nhà máy hóa chất và mã hóa bảo mật chống tấn công giả mạo dữ liệu cảm biến (Man-in-the-Middle Attack).
+--------------------------------------------------------------------+
|                LỘ TRÌNH TRIỂN KHAI TỪ FPGA ĐẾN THƯƠNG PHẨM         |
+--------------------------------------------------------------------+
|  Giai đoạn 1 (Hiện tại): Kiểm chứng RTL & Đánh giá trên FPGA       |
|  - Mô phỏng Cadence NC Verilog -> Tổng hợp Quartus/Vivado          |
+---------------------------------+----------------------------------+
                                  |
                                  v
+--------------------------------------------------------------------+
|  Giai đoạn 2 (6-12 tháng): Chế bản mẫu thử nghiệm (MPW Shuttle)   |
|  - Tích hợp DMA Controller -> Triển khai qua công nghệ TSMC 65nm   |
+---------------------------------+----------------------------------+
                                  |
                                  v
+--------------------------------------------------------------------+
|  Giai đoạn 3 (12-24 tháng): Thương mại hóa sản phẩm vi mạch IoT    |
|  - Đóng gói QFN-32 -> Cung cấp SDK & Driver C chuẩn CMSIS          |
+--------------------------------------------------------------------+

Phân tích hiệu quả kinh tế (Cost-Benefit Analysis): Việc tích hợp khối IP bảo mật trực tiếp vào vi điều khiển giúp giảm chi phí sản xuất phần cứng khoảng $0.45 - $0.70 USD trên mỗi thiết bị IoT biên do loại bỏ được IC mật mã chuyên dụng gắn ngoài và đơn giản hóa thiết kế mạch in 2 lớp thay vì 4 lớp.


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

Dù đạt được những kết quả đáng ghi nhận, đề tài vẫn tồn tại một số hạn chế kỹ thuật:

  • Chế độ mã hóa: Mới kiểm chứng thành công chế độ Electronic Codebook (ECB). Các chế độ bảo mật cao hơn như CBC (Cipher Block Chaining) và CTR (Counter Mode) cần tiếp tục hoàn thiện logic phản hồi dữ liệu khối.
  • Truy cập bộ nhớ: Chưa tích hợp trực tiếp với bộ điều khiển truy cập bộ nhớ trực tiếp (DMA Controller). Việc chuyển dữ liệu khối lớn hiện vẫn phải thông qua lệnh ghi CPU tới các thanh ghi AES_DINRAES_DOUTR.

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

  1. Hoàn thiện bộ điều khiển Direct Memory Access (DMA) để giải phóng hoàn toàn CPU khi mã hóa các gói dữ liệu kích thước lớn.
  2. Thiết kế cơ chế phòng chống tấn công kênh kề (Side-Channel Attack / Differential Power Analysis - DPA) bằng cách chèn nhiễu xung nhịp ngẫu nhiên và kỹ thuật che giấu mặt nạ (Masking).
  3. Mở rộng hỗ trợ thuật toán mã hóa khóa công khai (ECC/RSA) và hàm băm an toàn SHA-256 để cung cấp một hệ thống bảo mật phần cứng toàn diện (Hardware Security Module - HSM on-chip).

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

+-----------------------------------------------------------------------+
|                         ĐỐI TƯỢNG HƯỞNG LỢI                           |
+-------------------+---------------------------------------------------+
| Nhóm đối tượng    | Giá trị và lợi ích định lượng mang lại            |
+-------------------+---------------------------------------------------+
| Sinh viên ngành   | Giáo trình trực quan, mã nguồn mở về tích hợp     |
| Kỹ thuật máy tính | SoC với ARM Cortex-M0 và chuẩn bus AMBA           |
+-------------------+---------------------------------------------------+
| Kỹ sư thiết kế    | Bộ IP Core AES-128 chuẩn APB đóng gói sẵn, có thể |
| FPGA / ASIC       | tái sử dụng ngay trong các dự án vi điều khiển    |
+-------------------+---------------------------------------------------+
| Doanh nghiệp IoT  | Giải pháp giảm 30% diện tích PCB và tiết kiệm     |
| & Phần cứng       | chi phí linh kiện BOM trong sản xuất đại trà      |
+-------------------+---------------------------------------------------+
| Nhóm nghiên cứu   | Nền tảng thực nghiệm để nghiên cứu bảo mật phần   |
| Mật mã học        | cứng và kỹ thuật chống tấn công vật lý / DPA      |
+-------------------+---------------------------------------------------+

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

1. Yêu cầu kỹ thuật phần cứng và công cụ để triển khai dự án này là gì?

Hệ thống yêu cầu máy trạm Linux (Ubuntu 20.04/22.04 LTS), bộ công cụ mô phỏng EDA như Cadence NC Verilog hoặc Mentor ModelSim, trình biên dịch chéo arm-none-eabi-gcc cùng công cụ tổng hợp Intel Quartus Prime (bản 20.x trở lên) hoặc Xilinx Vivado (2020.x trở lên). Về phần cứng, thiết kế có thể nạp trực tiếp lên các kit FPGA phổ biến như Cyclone IV EP4CE115, Cyclone V hoặc Artix-7.

2. Giới hạn mở rộng băng thông của bus APB và giải pháp khắc phục?

Bus APB được tối ưu hóa cho các ngoại vi công suất thấp, tốc độ chuyển đổi dữ liệu mỗi lần truyền mất 2 chu kỳ xung nhịp (SETUPENABLE). Để xử lý các luồng dữ liệu bảo mật dung lượng lớn (video stream, file firmware update), khối AES IP có thể được nâng cấp giao diện sang chuẩn AHB-Lite hoặc AXI4-Lite kèm bộ đệm FIFO và kết nối trực tiếp với kênh Master DMA.

3. Làm thế nào để tích hợp lõi IP này vào các hệ thống SoC ARM Cortex-M khác?

Nhờ cấu trúc bọc wrapper chuẩn hóa, nhà phát triển chỉ cần kết nối các tín hiệu bus APB (PCLK, PRESETn, PSEL, PENABLE, PWRITE, PADDR, PWDATA, PRDATA, PREADY) vào bộ giải mã địa chỉ APB Mux của hệ thống đích và định tuyến chân aes_int vào bảng vector ngắt NVIC tương ứng.

4. Chi phí bảo trì và nâng cấp thuật toán mã hóa trong tương lai như thế nào?

Kiến trúc phần cứng được thiết kế theo dạng mô-đun hóa. Khi cần nâng cấp lên AES-192 hoặc AES-256, chỉ cần mở rộng khối mở rộng khóa KeyExpansion và tăng số vòng lặp FSM lên 12 hoặc 14 vòng mà không cần thay đổi kiến trúc thanh ghi ngoại vi và giao diện bus của hệ thống tổng thể.

5. So sánh chi phí sản xuất và thời gian thu hồi vốn (ROI) khi chuyển sang ASIC?

Khi sản xuất vi mạch thương mại ở quy mô từ 100,000 chip trở lên, chi phí bổ sung cho diện tích silicon của khối AES IP (chỉ chiếm ~4,750 LEs, tương đương chưa đến $0.05\text{ mm}^2$ trên tiến trình 65nm) là không đáng kể, trong khi giúp tiết kiệm hoàn toàn chi phí mua chip mã hóa rời ($0.50 - $1.00 USD/thiết bị), mang lại thời gian hoàn vốn đầu tư chỉ sau 6 - 9 tháng sản xuất.


Kết luận

Đồ án tốt nghiệp "Nghiên cứu, thiết kế và mô phỏng vi điều khiển 32-bit tích hợp bộ mã hóa phần cứng" của sinh viên Nguyễn Thành Long đã hiện thực hóa thành công một hệ thống vi mạch hoàn chỉnh, kết hợp hài hòa giữa lõi xử lý tiêu chuẩn công nghiệp ARM Cortex-M0 và khối gia tốc mật mã phần cứng AES-128. Kết quả tổng hợp đạt tần số 52.36 MHz cùng sự chính xác tuyệt đối trong các kịch bản kiểm thử dạng sóng đã chứng minh tính khả thi, độ tin cậy và tiềm năng ứng dụng cao của thiết kế. Đề tài không chỉ đóng góp một giải pháp kỹ thuật thiết thực cho bài toán bảo mật IoT biên mà còn cung cấp tài liệu nghiên cứu và mô hình tham chiếu giá trị cho cộng đồng kỹ thuật thiết kế vi mạch tại Việt Nam.