Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh bùng nổ của Internet of Things (IoT), các thiết bị kết nối như cảm biến môi trường (nhiệt độ, độ ẩm), thiết bị nhận dạng khuôn mặt và microphone thu âm ngày càng được triển khai rộng rãi. Tuy nhiên, các thiết bị này thường có tài nguyên phần cứng hạn chế, năng lực tính toán thấp và hoạt động dưới mức tiêu thụ năng lượng nghiêm ngặt. Những ràng buộc này khiến các bộ vi xử lý thông thường không thể triển khai các thuật toán mật mã truyền thống có độ phức tạp cao, dẫn đến nguy cơ mất an toàn thông tin và dễ bị tấn công mạng.
Để khắc phục vấn đề trên, mật mã học nhẹ (Lightweight Cryptography - LWC) đã được phát triển nhằm tối ưu hóa sự cân bằng giữa hiệu suất xử lý, mức tiêu thụ năng lượng và diện tích tài nguyên phần cứng mà vẫn đảm bảo tính an toàn. Kiến trúc tập lệnh nguồn mở RISC-V mang lại tính linh hoạt cao, cho phép mở rộng tập lệnh và tích hợp các khối phần cứng tùy chỉnh chuyên biệt để tăng tốc thuật toán mật mã học nhẹ mà không làm tăng quá nhiều chi phí diện tích chip.
Khóa luận tốt nghiệp của tác giả Nguyễn Ngọc Hưng tập trung vào việc nghiên cứu, thiết kế và hiện thực một bộ đồng xử lý mật mã (cryptographic co-processor) hiệu năng cao dựa trên kiến trúc RISC-V để tăng tốc các thuật toán mật mã học nhẹ trên nền tảng FPGA.
Các mục tiêu và nhiệm vụ nghiên cứu cụ thể của đề tài bao gồm:
- Cải tiến khối số học và logic (ALU) của bộ xử lý RISC-V để thực thi song song hai phép tính 32-bit (Dual-ALU), tăng gấp đôi thông lượng xử lý các phép toán 32-bit.
- Thiết kế và tích hợp khối ALU chuyên dụng cho mật mã học (Crypto ALU) để thực thi các phép toán xử lý bit đặc thù (XOR, AND, OR, phép dịch bit, sigma, maj) trong một chu kỳ lệnh.
- Thiết kế khối chức năng tùy chỉnh chuyên biệt (ASCON Round Unit) nhằm thực thi trọn vẹn toàn bộ một vòng hoán vị của họ giải thuật ASCON trong một chu kỳ xung nhịp.
- Hiện thực hóa và đóng gói thiết kế thành IP phần cứng (CGRA IP) trên kit FPGA Xilinx Zynq UltraScale+ MPSoC ZCU102, giao tiếp qua bus AXI với bộ xử lý chính (Processing System).
- Xây dựng kịch bản kiểm chứng tính đúng đắn và đo đạc, đánh giá hiệu năng (số chu kỳ, thông lượng, diện tích phần cứng) so với các giải pháp hiện có.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Thiết kế phần cứng kiến trúc bộ đồng xử lý RISC-V (tập lệnh RV32-I và RV64-I) và các khối tăng tốc phần cứng cho các thuật toán mật mã học.
- Phạm vi thuật toán: Hỗ trợ 5 thuật toán mật mã học nhẹ chuẩn hóa bởi NIST bao gồm ASCON, GIFT-COFB, ISAP, SPARKLE, Tiny Jambu, cùng hai thuật toán mật mã kinh điển là AES và SHA-256 (bên cạnh việc tham chiếu các thuật toán Photon, Romulus, Grain-128a).
- Phạm vi phần cứng: Bộ đồng xử lý hoạt động ở tần số xung nhịp 250 MHz, triển khai thực tế trên kit FPGA Zynq UltraScale+ MPSoC ZCU102; không hỗ trợ các tập lệnh nhân/chia phần cứng (RV-M) và số thực dấu chấm động (RV-F/D).
Cơ sở lý thuyết và phương pháp
Khóa luận xây dựng trên các nền tảng lý thuyết và tiêu chuẩn kỹ thuật sau:
- Kiến trúc tập lệnh RISC-V: Sử dụng tập lệnh chuẩn số nguyên RV32-I và RV64-I với 32 thanh ghi đa năng ($x_0 - x_{31}$). Cấu trúc tập lệnh bao gồm các định dạng lệnh cơ bản R, I, S, B, U, J với độ dài cố định 32-bit và cơ chế căn chỉnh bộ nhớ 4 byte.
- Chuẩn mật mã học nhẹ (NIST-LWC):
- ASCON: Cấu trúc mạng Thay thế - Hoán vị (SPN) hoạt động trên trạng thái 320-bit (5 word 64-bit), gồm phép cộng hằng số vòng $C_r$, lớp thay thế S-box 5-bit và lớp khuếch tán tuyến tính.
- GIFT-COFB: Dựa trên mã khối GIFT (GIFT-64/GIFT-128) với các bước SubCells (S-box 4-bit), PermBits (hoán vị vị trí bit trong slice) và AddRoundKey.
- ISAP: Thuật toán có khả năng chống tấn công kênh kề ở mức chế độ, sử dụng hàm hoán vị lõi Ascon-p.
- SPARKLE: Cấu trúc hoán vị dựa trên hộp ARX Alzette 64-bit và mạng Feistel tuyến tính trên trạng thái 384-bit.
- Tiny Jambu: Cấu trúc thanh ghi dịch phản hồi phi tuyến (NLFSR) 128-bit với hàm vòng gồm các phép logic XOR, NAND và dịch bit.
- PHOTON, Romulus, Grain-128a: Các cấu trúc SPN rút gọn vòng và tổ hợp thanh ghi phản hồi LFSR/NFSR.
- Chuẩn giao tiếp AMBA AXI: Sử dụng giao thức AXI (Advanced eXtensible Interface) để kết nối giữa Main CPU (Master) và bộ đồng xử lý RISC-V (Slave) thông qua 5 kênh độc lập: kênh địa chỉ đọc (AR), kênh dữ liệu đọc (R), kênh địa chỉ ghi (AW), kênh dữ liệu ghi (W), và kênh đáp ứng ghi (B).
Phương pháp nghiên cứu được áp dụng:
- Phương pháp thiết kế phần cứng ở mức truyền thanh ghi (RTL): Thiết kế kiến trúc vi xử lý pipeline 5 tầng bằng ngôn ngữ mô tả phần cứng trên môi trường Vivado Design Suite.
- Phương pháp mở rộng tập lệnh (Custom ISA Extension): Định nghĩa các opcode tùy chỉnh, cấu hình lại bảng tra cứu MATCH/MASK trong chuỗi công cụ trình biên dịch GCC của RISC-V (
riscv-opc.c, riscv-opc.h).
- Phương pháp thực nghiệm và kiểm chứng đa tầng: Kiểm chứng tính đúng đắn của giải thuật thông qua mô phỏng phần mềm (C testbench), mô phỏng dạng sóng RTL (Vivado Simulator) và kiểm chứng thời gian thực trên phần cứng FPGA thông qua khối phân tích logic tích hợp (Integrated Logic Analyzer - ILA).
Thiết kế và triển khai
Bộ đồng xử lý được xây dựng theo kiến trúc pipeline 5 tầng chuẩn: Tìm nạp lệnh (Instruction Fetch - IF), Giải mã lệnh (Instruction Decode - ID), Thực thi (Execution - EX), Truy xuất bộ nhớ dữ liệu (Data Memory - MEM) và Ghi kết quả (Writeback - WB).
KIẾN TRÚC VI XỬ LÝ PIPELINE 5 TẦNG
+-------------+ +-------------+ +-------------------+ +-------------+ +-------------+
| IF | --> | ID | --> | EX | --> | MEM | --> | WB |
| (PC, I-Mem)| | (Decoder, | | (ALU, Dual-ALU, | | (Data Mem, | | (Reg File |
| | | Reg File) | | Crypto, ASCON-R) | | Load/Store)| | Writeback) |
+-------------+ +-------------+ +-------------------+ +-------------+ +-------------+
Chi tiết các khối chức năng trong kiến trúc lõi
| Tên khối |
Độ rộng tín hiệu chính |
Chức năng chi tiết |
| Program Counter (PC) |
32-bit (new_pc_i, pc_o) |
Lưu trữ và cập nhật địa chỉ lệnh tiếp theo; phối hợp với khối cộng 4 và xử lý stall khi có xung đột dữ liệu. |
| Instruction Memory |
15-bit addr, 32-bit data |
Bộ nhớ lưu trữ mã máy của chương trình mã hóa, nạp qua giao diện cấu hình cfg_addr_in và cfg_data_in. |
| Instruction Decoder |
32-bit instruction in |
Giải mã các trường opcode, funct3, funct7; sinh các tín hiệu điều khiển: ALU_opcode (7-bit), ASCON_round (2-bit), Regfile_we (2-bit), LSopcode (4-bit). |
| Register File |
32 thanh ghi 64-bit |
Cung cấp 3 cổng đọc (rs1, rs2, rs3) và 1 cổng ghi (rd); hỗ trợ cổng giao tiếp mở rộng 320-bit (Asconp_x0 đến Asconp_x5) để nạp/xuất toàn bộ trạng thái ASCON. |
| Branch Control |
1-bit Zero out, 3-bit Funct3 in |
Xử lý các điều kiện nhảy có dấu và không dấu: BEQ (000), BNE (001), BLT (100), BGE (101), BLTU (110), BGEU (111). |
| Controller Unit (FSM) |
1-bit start/done, 32-bit wb_inst |
Quản lý trạng thái thực thi; phát hiện lệnh ret tại tầng Writeback để kích hoạt state_done = 1 và dừng bộ xử lý. |
| Load/Store Control & Data Memory |
15-bit addr, 64-bit data |
Quản lý việc đọc/ghi bộ nhớ dữ liệu cục bộ; hỗ trợ các chế độ định dạng byte, halfword, word và doubleword (LB, LBU, LH, LHU, LW, LWU, LD, SB, SH, SW, SD). |
Các cải tiến kiến trúc phần cứng
-
Khối ALU ghép đôi (Dual-ALU 32-bit):
Thay vì chỉ sử dụng 32-bit thấp của thanh ghi 64-bit trong chế độ RV32-I và bỏ phí 32-bit cao, Dual-ALU chia tách đường dữ liệu 64-bit thành hai nửa độc lập:
- Nửa thấp: Tính toán giữa
Rs1[31:0] và Rs2[31:0], lưu vào Rd[31:0].
- Nửa cao: Tính toán đồng thời giữa
Rs1[63:32] và Rs2[63:32], lưu vào Rd[63:32].
Cơ chế này cho phép xử lý đồng thời hai luồng dữ liệu (plaintext, key, vector khởi tạo), nâng gấp đôi thông lượng tính toán cho các giải thuật hoạt động trên word 32-bit.
-
Khối Crypto ALU (Tập lệnh tùy chỉnh):
Tích hợp các khối logic chuyên dụng để thực thi các hàm toán học phức tạp của thuật toán mật mã trong một chu kỳ lệnh:
- Các hàm xoay bit và hoán vị của SHA-256: $\Sigma_0, \Sigma_1, \sigma_0, \sigma_1, \text{Maj}, \text{Ch}$.
- Các phép thế và hoán vị bit của GIFT-COFB, ISAP, SPARKLE, Tiny Jambu, PHOTON, Romulus.
Việc gom chuỗi nhiều lệnh cơ bản (AND, OR, XOR, SLL, SRL) thành một lệnh chuyên dụng duy nhất giúp giảm thiểu số lượng lệnh cần tìm nạp và loại bỏ các thao tác trung gian ghi/đọc thanh ghi.
-
Khối chức năng tùy chỉnh ASCON Round Unit:
Khối tổ hợp chuyên biệt tính toán trọn vẹn một vòng hoán vị Ascon-p trên trạng thái 320-bit trong duy nhất 1 chu kỳ xung nhịp. Khối này kết nối trực tiếp với Register File để lấy đồng thời 5 word 64-bit ($x_0, x_1, x_2, x_3, x_4$), thực hiện liên hoàn:
- Phép cộng hằng số vòng $C_r$ vào $x_2$.
- Lớp phi tuyến S-box 5-bit trên từng lát cắt của 5 word trạng thái.
- Lớp khuếch tán tuyến tính với các phép dịch vòng và XOR trên từng word riêng biệt.
Hiện thực hệ thống trên phần cứng FPGA
Hệ thống được đóng gói thành một IP hoàn chỉnh (CGRA IP) và tích hợp vào thiết kế Block Design trong Vivado:
- Xilinx Zynq UltraScale+ MPSoC (ZCU102): Khối Processing System (PS) chứa ARM Cortex-A53 đóng vai trò CPU chủ, điều khiển nạp chương trình, truyền dữ liệu đầu vào và nhận kết quả mã hóa.
- AXI SmartConnect: Đóng vai trò cầu nối trung chuyển dữ liệu giữa bus AXI Master của hệ thống PS và bộ đồng xử lý RISC-V CGRA IP.
- System Integrated Logic Analyzer (ILA): Được cấu hình kết nối trực tiếp vào các đường tín hiệu điều khiển (
state_start, state_done, finish, data_out, pc_o) để giám sát dạng sóng phần cứng thời gian thực tại tần số 250 MHz.
Nội dung chính theo từng chương
Chương 1: Giới thiệu đề tài
Trình bày bối cảnh gia tăng của các thiết bị IoT và nguy cơ an ninh mạng do giới hạn tài nguyên phần cứng. Đưa ra lý do lựa chọn mật mã học nhẹ và kiến trúc tập lệnh mở RISC-V kết hợp nền tảng FPGA. Xác định rõ mục tiêu thiết kế bộ đồng xử lý 250 MHz hỗ trợ các chuẩn mật mã nhẹ (ASCON, GIFT-COFB, ISAP, SPARKLE, Tiny Jambu) và phạm vi nghiên cứu tập trung vào tập lệnh RV32-I/RV64-I.
Chương 2: Cơ sở lý thuyết và các nghiên cứu liên quan
Khảo sát chi tiết kiến trúc RISC-V, cấu trúc 32 thanh ghi, các định dạng lệnh R/I/S/B/U/J, các lệnh số nguyên, lệnh điều khiển rẽ nhánh và trích xuất/lưu trữ dữ liệu. Phân tích nguyên lý toán học của các giải thuật mật mã học nhẹ: cấu trúc SPN của ASCON, cơ chế SubCells/PermBits của GIFT-COFB, cơ chế chống tấn công kênh kề của ISAP, khối ARX Alzette của SPARKLE, và cấu trúc thanh ghi phản hồi phi tuyến của Tiny Jambu. Trình bày chuẩn giao tiếp AXI, kiến trúc 5 kênh độc lập và cơ chế giao tiếp bus SoC. Điểm qua các nghiên cứu đi trước của Stefan Steinegger (2020), Fabio Campos (2020) và Hao Cheng (2023).
Chương 3: Các phương pháp cải tiến bộ đồng xử lý dành cho các giải thuật mật mã học
Trình bày nguyên lý thiết kế ba giải pháp phần cứng nòng cốt:
- Custom Instruction: Phương pháp gộp chuỗi nhiều lệnh logic/truy xuất thành một lệnh chuyên dụng nhằm giảm số chu kỳ thực thi và tiết kiệm năng lượng.
- ALU ghép đôi (Dual-ALU): Giải pháp khai thác toàn bộ độ rộng 64-bit của đường dữ liệu để thực thi đồng thời hai phép tính 32-bit trên hai luồng dữ liệu độc lập.
- Khối chức năng tùy chỉnh ASCON Round Unit: Thiết kế mạch tổ hợp chuyên dụng tính toán toàn bộ một vòng hoán vị 320-bit trong 1 chu kỳ clock.
Chương 4: Thiết kế, cải tiến và hiện thực bộ đồng xử lý RISC-V
Mô tả chi tiết cấu trúc phần cứng của 5 tầng pipeline: PC, Instruction Memory, Instruction Decoder, Register File (hỗ trợ nạp 320-bit trạng thái ASCON), Branch Control, ALU cơ bản, Load/Store Control và Data Memory. Trình bày chi tiết mạch số của khối Dual-ALU, khối Crypto ALU và khối ASCON Round. Trình bày quá trình tích hợp hệ thống trên kit FPGA Zynq UltraScale+ MPSoC ZCU102, đóng gói IP, cấu hình kết nối qua AXI SmartConnect và tích hợp System ILA để kiểm tra tín hiệu.
Chương 5: Mô phỏng, kiểm chứng và đánh giá kết quả
Xây dựng kịch bản kiểm chứng kết quả mã hóa từ mã nguồn C, biên dịch bằng GCC tùy chỉnh, mô phỏng RTL trên Vivado Simulator và kiểm chứng thực tế trên kit ZCU102. Trình bày các bảng số liệu đo đạc về số chu kỳ thực thi, thông lượng mã hóa, tài nguyên phần cứng (LUT, FF, BRAM) và so sánh hiệu năng của bộ đồng xử lý RISC-V so với CPU ARM Cortex-A53 và các nghiên cứu công bố trước đây.
Chương 6: Kết luận và hướng phát triển
Tổng kết các kết quả đạt được về mặt thiết kế kiến trúc, hiện thực phần cứng và mức cải thiện thông lượng mật mã. Chỉ ra các giới hạn hiện tại và định hướng mở rộng nghiên cứu trong tương lai.
Phụ lục: Thêm lệnh tùy chỉnh vào trình biên dịch GCC của RISC-V
Hướng dẫn chi tiết quy trình định nghĩa cú pháp lệnh tùy chỉnh, thiết lập các trường MATCH và MASK cho các lệnh mới (như $\sigma_0, \sigma_1$), cấu hình file mã nguồn riscv-opc.c và riscv-opc.h, biên dịch lại bộ công cụ GCC và chèn lệnh trực tiếp vào chương trình C.
Kết quả và đóng góp
Kết quả thực nghiệm phần cứng
Thiết kế đã được tổng hợp, thực thi và kiểm chứng thành công trên kit phần cứng Xilinx Zynq UltraScale+ MPSoC ZCU102 ở tần số xung nhịp 250 MHz.
| Tiêu chí / Khối chức năng |
Trước khi cải tiến (Phần mềm thuần / RISC-V gốc) |
Sau khi cải tiến (Đồng xử lý RISC-V tùy chỉnh) |
Hiệu quả ghi nhận |
| Phép tính $\sigma_1$ (SHA-256) |
Cần 7-8 lệnh assembly (SLL, SRL, OR...) |
1 lệnh chuyên dụng (sigma1 a5, a5) |
Giảm số lượng lệnh thực thi, tối ưu chu kỳ tính toán |
| Tính toán hoán vị ASCON Round |
Tốn nhiều chu kỳ lệnh lặp qua từng phần tử |
1 chu kỳ clock duy nhất cho 1 vòng 320-bit |
Rút ngắn thời gian xử lý hàm vòng hoán vị |
| Khả năng xử lý dữ liệu 32-bit |
1 luồng dữ liệu 32-bit đơn lẻ (bỏ phí nửa cao) |
2 luồng dữ liệu 32-bit song song (Dual-ALU) |
Tăng gấp đôi thông lượng xử lý ở chế độ 32-bit |
| Tần số hoạt động thiết kế |
Không có cấu trúc pipeline tối ưu |
Đạt 250 MHz trên Zynq UltraScale+ ZCU102 |
Đảm bảo thời gian đáp ứng (Timing closure) |
Đóng góp của đề tài
- Thiết kế hoàn chỉnh kiến trúc bộ đồng xử lý RISC-V pipeline 5 tầng tối ưu riêng cho các tác vụ mật mã học nhẹ.
- Đề xuất và hiện thực thành công cơ chế Dual-ALU, tận dụng đường dữ liệu 64-bit để xử lý song song hai luồng dữ liệu 32-bit mà không làm thay đổi cấu trúc thanh ghi cơ bản.
- Tích hợp thành công khối ASCON Round Unit tính toán trọn vẹn một vòng hoán vị SPN 320-bit trong 1 chu kỳ xung nhịp, kết nối trực tiếp với tập thanh ghi Register File nhằm triệt tiêu độ trễ truy xuất bộ nhớ.
- Xây dựng quy trình khép kín từ sửa đổi trình biên dịch GCC, đóng gói CGRA IP, đến triển khai thực nghiệm trên nền tảng SoC FPGA ZCU102 giao tiếp qua bus AXI.
Hạn chế và hướng nghiên cứu tiếp
Khóa luận chỉ rõ các giới hạn trong phạm vi nghiên cứu:
- Bộ xử lý mới chỉ hỗ trợ tập lệnh số nguyên cơ bản RV32-I và RV64-I; chưa hỗ trợ khối nhân/chia phần cứng (RV-M) hoặc tập lệnh dấu chấm động (RV-F/D).
- Khối chức năng tùy chỉnh trọn vẹn một vòng hoán vị (Round Unit) mới chỉ được thiết kế riêng cho giải thuật ASCON; các giải thuật khác (GIFT-COFB, SPARKLE, Tiny Jambu) mới dừng lại ở mức tối ưu hóa các lệnh tùy chỉnh trong Crypto ALU.
- Chưa tích hợp đầy đủ các tập lệnh mở rộng chuẩn mật mã học vừa được RISC-V International phê duyệt (như chuẩn Zbkb, Zbkx, Zk).
- Thiết kế mới được kiểm chứng trên nền tảng FPGA, chưa được tổng hợp và đánh giá trên quy trình sản xuất vi mạch chuyên dụng ASIC (về diện tích silicon thực tế và công suất tiêu thụ tĩnh/động).
Hướng phát triển tiếp theo:
- Bổ sung và chuẩn hóa toàn diện tập lệnh mở rộng mật mã học của RISC-V (Zk extensions).
- Thiết kế thêm các khối chức năng tùy chỉnh Round Unit chuyên biệt cho các giải thuật nhẹ khác như GIFT-COFB, SPARKLE và Tiny Jambu.
- Mở rộng nghiên cứu cơ chế phòng chống tấn công kênh kề (Side-Channel Attacks) ở mức vật lý và tiến hành tổng hợp vi mạch trên tiến trình ASIC.
Giá trị tham khảo
Khóa luận là tài liệu tham khảo giá trị cho:
- Sinh viên và học viên cao học ngành Kỹ thuật Máy tính, Điện tử - Viễn thông, Thiết kế Vi mạch: Tham khảo kiến trúc vi xử lý pipeline 5 tầng, kỹ thuật thiết kế phần cứng mô tả bằng Verilog/VHDL, và phương pháp mở rộng kiến trúc tập lệnh RISC-V.
- Kỹ sư thiết kế hệ thống nhúng và SoC an toàn: Tham khảo kiến trúc ghép nối bộ đồng xử lý qua giao thức AXI SmartConnect, đóng gói IP phần cứng (CGRA IP) và phương pháp đo kiểm trên FPGA Zynq UltraScale+.
- Nhà nghiên cứu về Mật mã ứng dụng: Cung cấp thông tin chi tiết về các giải thuật chuẩn hóa NIST-LWC (ASCON, GIFT-COFB, ISAP, SPARKLE, Tiny Jambu) và phương pháp tối ưu hóa phần cứng cho các nguyên thủy mã hóa nhẹ.
Câu hỏi thường gặp
1. Bộ đồng xử lý RISC-V trong đề tài hoạt động ở tần số bao nhiêu và có cấu trúc vi kiến trúc như thế nào?
Bộ đồng xử lý hoạt động ở tần số xung nhịp 250 MHz trên kit FPGA Zynq UltraScale+ MPSoC ZCU102. Vi kiến trúc của bộ xử lý được thiết kế theo mô hình pipeline 5 tầng chuẩn bao gồm: Tìm nạp lệnh (Instruction Fetch), Giải mã lệnh (Instruction Decode), Thực thi (Execution), Bộ nhớ dữ liệu (Data Memory) và Ghi lại kết quả (Writeback).
2. Khối ALU ghép đôi (Dual-ALU) hoạt động theo nguyên lý nào để tăng gấp đôi thông lượng?
Thông thường trên bộ xử lý 64-bit, khi thực thi các lệnh 32-bit (RV32-I), phần cứng chỉ tính toán trên 32-bit thấp và bỏ qua 32-bit cao. Khối Dual-ALU tận dụng toàn bộ 64-bit bằng cách chia đôi đường truyền: nửa thấp xử lý toán hạng Rs1[31:0] và Rs2[31:0] lưu vào Rd[31:0], đồng thời nửa cao xử lý Rs1[63:32] và Rs2[63:32] lưu vào Rd[63:32]. Cơ chế này cho phép bộ đồng xử lý xử lý đồng thời hai luồng dữ liệu 32-bit độc lập trong cùng một chu kỳ lệnh.
3. Khối ASCON Round Unit thực hiện những tác vụ gì trong duy nhất một chu kỳ xung nhịp?
Khối ASCON Round Unit nhận đồng thời 320-bit trạng thái (gồm 5 word 64-bit từ $x_0$ đến $x_4$) từ Register File và thực hiện trọn vẹn ba tác vụ liên hoàn của hàm vòng Ascon-p: (1) cộng hằng số vòng 8-bit $C_r$ vào word trạng thái $x_2$, (2) thực hiện lớp thay thế phi tuyến qua các hộp S-box 5-bit trên các cột trạng thái, và (3) thực hiện lớp khuếch tán tuyến tính bằng các phép xoay bit và XOR trên từng word 64-bit.
4. Bộ đồng xử lý giao tiếp với CPU chính (Processing System) thông qua giao thức nào?
Bộ đồng xử lý giao tiếp với CPU chính (lõi ARM Cortex-A53 trên chip Zynq UltraScale+) thông qua giao thức AMBA AXI. Giao thức này sử dụng cấu trúc phân tách 5 kênh độc lập (AR, R, AW, W, B) kết hợp với khối AXI SmartConnect, cho phép Master (CPU chính) nạp mã lệnh, truyền dữ liệu đầu vào và đọc dữ liệu mã hóa đầu ra từ Slave (bộ đồng xử lý RISC-V) một cách đồng bộ và chính xác.
5. Để thêm một lệnh tùy chỉnh (custom instruction) vào hệ thống, tác giả đã can thiệp vào chuỗi công cụ phát triển như thế nào?
Tác giả đã can thiệp trực tiếp vào mã nguồn của bộ biên dịch GNU GCC cho RISC-V. Cụ thể, tác giả định nghĩa cú pháp lệnh, xác định các trường mã hóa bit MATCH và MASK cho từng lệnh mới trong các file cấu hình riscv-opc.c và riscv-opc.h của bộ công cụ riscv-binutils, sau đó biên dịch lại trình biên dịch để mã nguồn C của giải thuật có thể trực tiếp phát sinh mã máy của các lệnh tùy chỉnh.
Kết luận
Khóa luận tốt nghiệp của tác giả Nguyễn Ngọc Hưng đã thiết kế và hiện thực thành công bộ đồng xử lý mật mã hiệu năng cao dựa trên kiến trúc tập lệnh RISC-V, vận hành ở tần số 250 MHz trên nền tảng FPGA Xilinx Zynq UltraScale+ ZCU102. Thông qua ba cải tiến kiến trúc mang tính cốt lõi gồm khối Dual-ALU xử lý song song hai luồng dữ liệu 32-bit, khối Crypto ALU hỗ trợ các tập lệnh tùy chỉnh và khối ASCON Round Unit tính toán trọn vẹn vòng hoán vị 320-bit trong một chu kỳ, thiết kế đã tăng tốc đáng kể các thuật toán mật mã học nhẹ chuẩn NIST-LWC. Đề tài đóng góp một giải pháp phần cứng mở, linh hoạt và hiệu quả cao cho bài toán bảo mật dữ liệu trên các hệ thống nhúng và thiết bị Internet of Things (IoT).