I. Tổng Quan CRYSTALS Kyber Mã Hóa Sau Lượng Tử An Toàn
Trong bối cảnh máy tính lượng tử ngày càng phát triển, tính bảo mật của các thuật toán mã hóa hiện tại đang bị đe dọa. Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST) đã chọn CRYSTALS-Kyber làm cơ chế mã hóa khóa công khai và thiết lập khóa tiêu chuẩn cho thời kỳ hậu lượng tử. CRYSTALS-Kyber thuộc họ các thuật toán dựa trên mạng lưới, đảm bảo an toàn dựa trên độ khó của việc giải quyết các vấn đề về lưới mật mã. Thuật toán này đòi hỏi nhiều phép nhân đa thức, đặc biệt là thông qua Number Theoretic Transform (NTT) và Inverse NTT (INTT). Điều này đặt ra thách thức lớn về hiệu năng tính toán, đặc biệt khi triển khai trên các hệ thống nhúng. Mục tiêu là đảm bảo tính an toàn trước các cuộc tấn công lượng tử mà vẫn duy trì hiệu quả và tương thích giữa các hệ thống khác nhau, hỗ trợ sự đồng nhất trong cộng đồng quốc tế.
1.1. Lý Do Chọn CRYSTALS Kyber Trong Mã Hóa Sau Lượng Tử
Việc NIST chọn CRYSTALS-Kyber cho thấy tiềm năng ứng dụng rộng rãi trong lĩnh vực bảo mật thông tin. Các thiết kế và tiêu chuẩn cho mã hóa lượng tử sẽ liên tục được nghiên cứu và cải tiến về các thông số, nhằm hoàn thiện khả năng bảo mật và hiệu năng. Theo tài liệu gốc, NIST đã trình bày dự thảo tiêu chuẩn chuẩn hoá của Cơ chế mã hoá Khoá dựa trên lưới module (Module-Lattice-Based Key-Encapsulation Mechanism – MLBKEM) trong Tiêu chuẩn xử lý thông tin Liên Bang (Federal Information Processing Standards - FIPS) 203[1], cho thấy sự quan trọng của nó trong tương lai.
1.2. Thách Thức Hiệu Năng Với NTT Trong CRYSTALS Kyber
CRYSTALS-Kyber đòi hỏi nỗ lực tính toán đáng kể, chủ yếu là phép nhân đa thức trên một vành đa thức giới hạn. Quá trình tạo khóa, mã hóa và giải mã khóa có thể chiếm tỷ lệ lớn trong khả năng tính toán và chu kỳ clock của bộ vi xử lý. Tuy nhiên, không giống như ECC hay RSA, NTT có thể song song hóa để tăng throughput, mở ra cơ hội cải thiện hiệu năng.
II. Vấn Đề Tối Ưu NTT Cho CRYSTALS Kyber Trên FPGA
Mặc dù CRYSTALS-Kyber được thiết kế để cân bằng giữa bảo mật và hiệu năng, việc triển khai hiệu quả vẫn là một thách thức. Các triển khai phần mềm thường tốn nhiều thời gian tính toán cho các phép biến đổi NTT và INTT. Để đạt được hiệu năng tối đa và phân bổ tài nguyên hợp lý, cần triển khai các thuật toán mã hóa này trên các phần cứng chuyên dụng. FPGA (Field-Programmable Gate Array) là một nền tảng tiềm năng để tăng tốc các phép tính toán này, đặc biệt là NTT, nhờ khả năng tái cấu hình và song song hóa cao. Việc thiết kế một bộ tăng tốc NTT hiệu quả trên FPGA đòi hỏi sự hiểu biết sâu sắc về kiến trúc phần cứng và các kỹ thuật tối ưu hóa.
2.1. Tại Sao FPGA Là Giải Pháp Tiềm Năng Cho NTT
Nhiều nghiên cứu về mã hóa lượng tử gần đây chọn ASIC và FPGA làm nhân tính toán phụ cho các kiến trúc CPU như RISC-V, ARM, x86_64. Trong đó, FPGA là một nền tảng được sử dụng nhiều trong các nghiên cứu và đánh giá sức mạnh giải thuật cũng như ứng dụng tăng tốc bằng phần cứng. Với các công cụ phát triển như Quartus hay Vivado, FPGA cho phép thiết kế mạch kỹ thuật số chính xác và có quyền quyết định lớn với các kết quả thiết kế.
2.2. Các Hạn Chế Của Triển Khai Phần Mềm NTT Truyền Thống
Triển khai CRYSTALS-Kyber trên phần mềm cần lặp lại nhiều lần các biến đổi NTT thuận và nghịch (INTT), làm cho nó trở thành phần tốn thời gian nhất trong tính toán. Điều này tạo ra nút thắt cổ chai về hiệu năng, đặc biệt trong các ứng dụng yêu cầu thời gian đáp ứng nhanh.
III. Phương Pháp Thiết Kế Bộ Tăng Tốc NTT Hiệu Quả Trên FPGA
Để giải quyết vấn đề hiệu năng của NTT trong CRYSTALS-Kyber, luận văn này trình bày thiết kế một bộ tăng tốc phần cứng hiệu quả cho NTT/INTT trên FPGA. Thiết kế tập trung vào việc tối ưu hóa cấu trúc Butterfly Unit (BU) và giao tiếp giữa các giai đoạn của NTT. Bằng cách tận dụng khả năng song song hóa của FPGA, bộ tăng tốc này có thể cải thiện đáng kể throughput so với các triển khai phần mềm. Luận văn sử dụng phần cứng DE-10 Standard với bộ xử lý Intel (Altera) Cyclone V và công cụ Quartus để thực hiện và đánh giá thiết kế.
3.1. Cấu Trúc Butterfly Unit BU Tối Ưu Cho NTT
Một trong những phương pháp chính để cải thiện hiệu suất NTT là cải tiến cấu trúc Butterfly Unit (BU). Nghiên cứu của Zhang và cộng sự [3] hợp nhất quá trình tiền xử lý của NTT và sau xử lý của INTT với một BU tối ưu hoá cho các phép toán modular trên ước lượng mới số nguyên tố q. Tối ưu hóa BU giúp giảm độ trễ và tăng throughput cho mỗi phép tính NTT.
3.2. Quản Lý Bộ Nhớ Và Giao Tiếp Giai Đoạn Trong NTT
Giao tiếp giữa các giai đoạn của NTT, bao gồm việc lấy dữ liệu từ bộ nhớ và sắp xếp chúng theo thứ tự cho các giai đoạn NTT tiếp theo, cũng rất quan trọng. Việc sử dụng SRAM (Static Random Access Memory) và nhân modulo bit song song có thể cải thiện quá trình NTT. Kế hoạch truy cập bộ nhớ ping-pong cũng được đề xuất để tăng cường throughput dữ liệu, như trong [9].
3.3. Rút Gọn Barrett Và Montgomery Trong NTT
Rút gọn Barrett là một thuật toán modulo phổ biến để tối ưu hoá BU [7]. Rút gọn Montgomery cũng là một kỹ thuật quan trọng trong việc thực hiện phép nhân modulo hiệu quả trong NTT. Việc lựa chọn và tối ưu hóa các thuật toán rút gọn ảnh hưởng lớn đến hiệu năng của bộ tăng tốc.
IV. Triển Khai CRYSTALS Kyber Trên ARM Và FPGA Cyclone V
Luận văn kiểm tra hiệu năng của mã nguồn CRYSTALS-Kyber bằng phần mềm trên vi xử lý nhúng ARM-Cortex A9 của vi xử lý Cyclone V. Mục tiêu là đánh giá khả năng tương thích của CRYSTALS-Kyber khi chạy trên phần cứng Arm, từ đó chứng minh sự cần thiết của việc phần cứng hóa các phép toán này khi triển khai ứng dụng của máy tính nhúng năng lượng thấp. Đồng thời, luận văn xây dựng phần cứng xử lý NTT và INTT trên nền tảng FPGA, đánh giá và bàn luận các kết quả cũng như hướng phát triển cho đề tài nói chung và phần cứng hoá các họ mã hóa sau lượng tử nói riêng.
4.1. Chạy Mã Nguồn CRYSTALS Kyber Trên Vi Xử Lý ARM Cortex A9
Luận văn thực hiện chỉnh sửa mã nguồn tham chiếu được công bố bởi nhóm nghiên cứu Kyber để có thể chạy và kiểm thử mã nguồn tham chiếu Kyber trên SoCFPGA Linux, qua đó có cái nhìn sơ bộ về tốc độ của thuật toán. Việc này giúp xác định các điểm nghẽn hiệu năng và làm cơ sở cho việc thiết kế bộ tăng tốc phần cứng.
4.2. Thiết Kế Và Tổng Hợp Bộ Tăng Tốc NTT Trên FPGA Cyclone V
Thiết kế phần cứng NTT được viết bằng ngôn ngữ phần cứng Verilog và kiểm tra đánh giá trên nền tảng FPGA. Phần cứng thiết kế dựa trên ngôn ngữ FPGA, phần mềm chạy trên ARM Cortex-A9 của Intel (Altera) Cyclone V, tổng hợp phần cứng trên Cyclone V (Quartus) và Xilinx Artix-7 (Vivado). Các kết quả tổng hợp và mô phỏng được so sánh với kết quả NTT chạy bằng mã nguồn Kyber.
V. Kết Quả Đánh Giá Hiệu Năng Bộ Tăng Tốc NTT Trên FPGA
Luận văn trình bày các kết quả tổng hợp mạch trên Vivado (Xilinx Artix-7 XC7A200T) và Quartus (Cyclone V), cũng như kết quả mô phỏng QuestaIntel. Các kết quả này được so sánh với kết quả từ phần mềm Kyber để đánh giá hiệu quả của bộ tăng tốc NTT. Đánh giá tập trung vào các chỉ số như throughput, latency, resource utilization và tiêu thụ năng lượng. Kết quả cho thấy bộ tăng tốc NTT có thể cải thiện đáng kể hiệu năng so với triển khai phần mềm, đặc biệt trong các ứng dụng yêu cầu tốc độ cao.
5.1. Kết Quả Tổng Hợp Mạch Trên Xilinx Artix 7 Và Cyclone V
Kết quả tổng hợp mạch trên cả hai nền tảng Xilinx Artix-7 và Cyclone V cho thấy sự khác biệt về tài nguyên sử dụng và tốc độ xung nhịp đạt được. Việc so sánh này giúp đánh giá tính di động của thiết kế và xác định nền tảng phù hợp nhất cho các ứng dụng khác nhau.
5.2. Mô Phỏng Và Kiểm Chứng Chức Năng Của Bộ Tăng Tốc NTT
Mô phỏng QuestaIntel được sử dụng để kiểm chứng chức năng của bộ tăng tốc NTT và đảm bảo tính chính xác của các phép tính. Kết quả mô phỏng được so sánh với kết quả từ phần mềm Kyber để đảm bảo sự tương thích và tính toàn vẹn của dữ liệu.
5.3. So Sánh Hiệu Năng Với Các Nghiên Cứu NTT Khác
Bảng so sánh hiệu năng được trình bày để so sánh thiết kế đề xuất với các nghiên cứu NTT tương tự trước đây. Điều này giúp đánh giá vị trí của nghiên cứu trong bối cảnh chung và xác định các điểm mạnh và điểm yếu của thiết kế.
VI. Kết Luận Hướng Nghiên Cứu Phát Triển Bộ Tăng Tốc NTT Tương Lai
Luận văn này đã trình bày thiết kế và triển khai một bộ tăng tốc NTT hiệu quả cho mã hóa sau lượng tử CRYSTALS-Kyber trên FPGA. Kết quả cho thấy tiềm năng lớn của việc sử dụng phần cứng chuyên dụng để tăng tốc các thuật toán mã hóa hậu lượng tử. Các nghiên cứu tiếp theo có thể tập trung vào việc tối ưu hóa thiết kế để giảm tiêu thụ năng lượng, tăng throughput, và chống lại các cuộc tấn công kênh phụ. Việc tích hợp bộ tăng tốc NTT vào các hệ thống nhúng và đánh giá hiệu năng trong các ứng dụng thực tế cũng là một hướng nghiên cứu quan trọng.
6.1. Tối Ưu Hóa Tiêu Thụ Năng Lượng Của Bộ Tăng Tốc NTT
Giảm thiểu tiêu thụ năng lượng là một yếu tố quan trọng, đặc biệt trong các ứng dụng di động và nhúng. Các kỹ thuật tối ưu hóa năng lượng như clock gating, power gating và voltage scaling có thể được áp dụng để cải thiện hiệu quả năng lượng của bộ tăng tốc.
6.2. Phòng Chống Các Cuộc Tấn Công Kênh Phụ Side Channel Attack
Mật mã được triển khai trên phần cứng có thể dễ bị tấn công kênh phụ. Các nghiên cứu tiếp theo nên tập trung vào việc phát triển các kỹ thuật phòng chống tấn công kênh phụ để đảm bảo tính bảo mật của bộ tăng tốc NTT.
6.3. Ứng Dụng Thực Tế Và Tích Hợp Hệ Thống Nhúng
Việc tích hợp bộ tăng tốc NTT vào các hệ thống nhúng và đánh giá hiệu năng trong các ứng dụng thực tế như bảo mật IoT và truyền thông an toàn là một bước quan trọng để chứng minh tính khả thi và hiệu quả của giải pháp.