Tổng quan nghiên cứu

Trong bối cảnh sự phát triển nhanh chóng của máy tính lượng tử, các phương pháp mã hóa truyền thống như RSA và ECDSA đang dần mất đi tính an toàn trước các cuộc tấn công lượng tử. Theo ước tính, việc bảo mật thông tin trong thời kỳ hậu lượng tử hóa trở thành một thách thức cấp thiết đối với ngành an toàn thông tin. Tổ chức National Institute of Standards and Technology (NIST) đã triển khai quy trình chuẩn hóa mã hóa sau lượng tử (Post-Quantum Cryptography - PQC) từ năm 2016 nhằm tìm kiếm các giải pháp mã hóa mới có khả năng chống lại các cuộc tấn công từ máy tính lượng tử. Trong vòng 3 của quy trình này, CRYSTALS-Kyber, một thuật toán mã hóa dựa trên cấu trúc lưới (lattice-based), được đánh giá là ứng viên sáng giá nhất nhờ sự cân bằng giữa hiệu quả tính toán và độ an toàn.

Mã hóa CRYSTALS-Kyber đòi hỏi thực hiện các phép nhân đa thức phức tạp, trong đó Number Theoretic Transform (NTT) và Inverse NTT (INTT) đóng vai trò then chốt để tăng tốc độ xử lý. Mục tiêu nghiên cứu của luận văn là thiết kế phần cứng xử lý NTT và INTT trên nền tảng FPGA Intel Cyclone V, sử dụng ngôn ngữ mô tả phần cứng Verilog, nhằm tối ưu hóa hiệu suất và tài nguyên sử dụng cho mã hóa lượng tử CRYSTALS-Kyber. Phạm vi nghiên cứu tập trung vào thuật toán NTT/INTT với thông số n=128 và n=256, đánh giá hiệu năng thiết kế qua các chỉ số tần số hoạt động, tài nguyên tiêu thụ và độ trễ.

Nghiên cứu có ý nghĩa khoa học trong việc phát triển các giải pháp phần cứng cho mã hóa lượng tử lattice-based, đồng thời đóng góp thực tiễn trong việc chuẩn hóa và ứng dụng mã hóa CRYSTALS-Kyber trên các thiết bị điện tử hiện đại, đảm bảo an toàn thông tin trong kỷ nguyên máy tính lượng tử.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Luận văn dựa trên các lý thuyết và mô hình sau:

  • Mã hóa bất đối xứng và mã hóa lượng tử CRYSTALS-Kyber: CRYSTALS-Kyber là thuật toán mã hóa bất đối xứng dựa trên bài toán Module Learning With Errors (MLWE), sử dụng các phép nhân đa thức trong vành đa thức giới hạn. Thuật toán bao gồm các bước tạo khóa, mã hóa và giải mã, trong đó phép nhân đa thức được tối ưu hóa bằng NTT.

  • Number Theoretic Transform (NTT) và Inverse NTT (INTT): NTT là phép biến đổi số học tương tự Fast Fourier Transform (FFT) nhưng thực hiện trên trường hữu hạn, giúp giảm độ phức tạp tính toán nhân đa thức từ O(n²) xuống O(n log n). Phiên bản tối ưu sử dụng Negative Wrapped Convolution (NWC) và các Butterfly Unit (BU) Cooley-Tukey (CT) cho NTT và Gentleman-Sande (GS) cho INTT, giảm thiểu bước tiền xử lý và hậu xử lý.

  • Phép toán rút gọn modulo Exact-KRED: Đây là phương pháp rút gọn modulo hiệu quả, cải tiến từ KRED và K2-RED, phù hợp với modulus q=3329 của Kyber, giúp giảm độ trễ và tài nguyên phần cứng trong các phép toán modulo sau nhân.

  • Bộ nhớ BRAM M10K trên FPGA Cyclone V: Sử dụng bộ nhớ BRAM M10K ở chế độ Simple Dual Port để lưu trữ hệ số đa thức và twiddle factors, tối ưu hóa truy xuất dữ liệu song song và pipeline.

Phương pháp nghiên cứu

  • Nguồn dữ liệu: Thuật toán NTT/INTT và các tham số twiddle factor được tính toán trước trên phần mềm Microsoft Excel, sử dụng Wolfram để xác định các giá trị primitive root of unity. Dữ liệu được chuẩn bị cho các cấu hình n=128 và n=256.

  • Phương pháp phân tích: Thiết kế phần cứng được mô tả bằng ngôn ngữ Verilog, mô phỏng bằng ModelSim để kiểm tra chức năng từng module nhỏ và toàn bộ hệ thống. Tổng hợp thiết kế trên phần mềm Quartus Prime Standard Edition 21 để đánh giá tốc độ tối đa (fmax), tài nguyên tiêu thụ (ALMs, thanh ghi, DSP, BRAM) và độ trễ.

  • Timeline nghiên cứu: Nghiên cứu bắt đầu từ tháng 01/2021, hoàn thành thiết kế, mô phỏng và tổng hợp trong vòng 12 tháng, kết thúc vào tháng 12/2021.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

  1. Hiệu suất thiết kế phần cứng: Thiết kế phần cứng xử lý NTT và INTT đạt tần số hoạt động tối đa 237 MHz khi tổng hợp trên FPGA Intel Cyclone V, với độ trễ pipeline 13 chu kỳ cho mỗi phép toán butterfly unit. Tốc độ này vượt trội so với nhiều nghiên cứu trước đây, ví dụ nghiên cứu sử dụng Karatsuba đạt 161 MHz.

  2. Tài nguyên tiêu thụ: Thiết kế sử dụng 1322 ALMs, 2929 thanh ghi, 4 khối DSP và 1 khối BRAM M10K, cho thấy mức tiêu thụ tài nguyên hợp lý so với hiệu suất đạt được. So sánh với các nghiên cứu tương tự, thiết kế này có tỉ lệ tài nguyên tiêu thụ trên tốc độ (Area x Speed Ratio) thấp hơn, thể hiện sự tối ưu hóa hiệu quả.

  3. Độ chính xác và tính ổn định: Mô phỏng trên ModelSim cho thấy các module Exact-KRED, butterfly unit và toàn bộ bộ xử lý NTT/INTT hoạt động chính xác, đáp ứng đầy đủ các chế độ CT, GS và bypass. Kết quả tính toán đa thức đúng với các giá trị tham chiếu.

  4. So sánh với các nghiên cứu khác: Thiết kế nhanh hơn gấp 2.4 lần so với một số nghiên cứu sử dụng cấu trúc tương tự trên FPGA Xilinx, đồng thời có tỉ lệ tài nguyên tiêu thụ trên tốc độ tối ưu hơn. Các nghiên cứu ASIC có tốc độ thấp hơn do chưa tối ưu pipeline mạnh.

Thảo luận kết quả

Nguyên nhân chính của hiệu suất cao là do việc áp dụng thuật toán NTT/INTT độ phức tạp thấp, sử dụng Negative Wrapped Convolution (NWC) và tối ưu pipeline trong thiết kế butterfly unit. Việc sử dụng bộ rút gọn modulo Exact-KRED giúp giảm độ trễ và tránh tràn số trong các phép toán modulo, góp phần nâng cao tốc độ xử lý.

So với các nghiên cứu trước, thiết kế này tận dụng hiệu quả bộ nhớ BRAM M10K và các khối DSP trên FPGA Cyclone V, đồng thời cân bằng thanh ghi giữa các mạch tổ hợp để đạt tốc độ mạch tối ưu. Biểu đồ so sánh tỉ lệ tài nguyên tiêu thụ trên tốc độ cho thấy thiết kế có hiệu quả vượt trội, phù hợp cho các ứng dụng mã hóa lượng tử trên phần cứng.

Kết quả này có ý nghĩa quan trọng trong việc chứng minh khả năng ứng dụng thực tế của mã hóa CRYSTALS-Kyber trên các thiết bị điện tử, góp phần nâng cao bảo mật thông tin trong kỷ nguyên máy tính lượng tử.

Đề xuất và khuyến nghị

  1. Tối ưu hóa pipeline sâu hơn: Đề xuất tăng số tầng pipeline trong các module Exact-KRED và butterfly unit để nâng cao tần số hoạt động, hướng tới mục tiêu đạt trên 300 MHz trong vòng 12 tháng tới. Chủ thể thực hiện là nhóm nghiên cứu phần cứng FPGA.

  2. Mở rộng cấu hình BU: Phát triển cấu hình butterfly unit 4x4 hoặc cao hơn để tăng khả năng xử lý song song, giảm số chu kỳ tính toán NTT/INTT, dự kiến hoàn thành trong 18 tháng. Chủ thể thực hiện là nhóm thiết kế mạch số.

  3. Tích hợp với vi xử lý chính: Nghiên cứu tích hợp bộ gia tốc NTT/INTT vào vi xử lý ARM hoặc RISC-V để giảm tải cho CPU chính, nâng cao hiệu quả tổng thể hệ thống, thời gian thực hiện 24 tháng. Chủ thể thực hiện là nhóm phát triển hệ thống nhúng.

  4. Bảo mật chống tấn công kênh bên: Phát triển các kỹ thuật bảo vệ phần cứng chống tấn công kênh bên (side-channel attack) cho bộ xử lý NTT/INTT, đảm bảo an toàn trong môi trường thực tế, dự kiến trong 24 tháng. Chủ thể thực hiện là nhóm nghiên cứu bảo mật phần cứng.

Đối tượng nên tham khảo luận văn

  1. Nhà nghiên cứu mã hóa lượng tử: Có thể sử dụng kết quả để phát triển các giải pháp phần cứng tối ưu cho thuật toán lattice-based, nâng cao hiệu quả và bảo mật.

  2. Kỹ sư thiết kế FPGA và ASIC: Tham khảo kiến trúc và phương pháp tối ưu pipeline, rút gọn modulo Exact-KRED để áp dụng trong các thiết kế phần cứng mã hóa.

  3. Chuyên gia an toàn thông tin: Hiểu rõ về các thuật toán mã hóa hậu lượng tử và khả năng triển khai trên phần cứng, phục vụ cho việc đánh giá và lựa chọn giải pháp bảo mật.

  4. Nhà phát triển hệ thống nhúng và vi xử lý: Áp dụng bộ gia tốc NTT/INTT vào các hệ thống nhúng, nâng cao hiệu năng xử lý mã hóa trong các thiết bị IoT, thiết bị di động.

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

  1. Tại sao CRYSTALS-Kyber được chọn làm đối tượng nghiên cứu?
    CRYSTALS-Kyber là một trong những ứng viên sáng giá nhất trong chuẩn hóa mã hóa hậu lượng tử của NIST, có tính bảo mật cao và hiệu quả tính toán tốt nhờ sử dụng thuật toán lattice-based và NTT.

  2. Phần cứng xử lý NTT/INTT có ưu điểm gì so với phần mềm?
    Phần cứng cho phép tăng tốc đáng kể tốc độ xử lý, giảm độ trễ và tải cho vi xử lý chính, đồng thời tiết kiệm năng lượng và tài nguyên hệ thống.

  3. Thiết kế sử dụng FPGA nào và tại sao?
    Sử dụng FPGA Intel Cyclone V do có tài nguyên phù hợp, hỗ trợ tốt cho pipeline và bộ nhớ BRAM M10K, thuận tiện cho việc phát triển và đánh giá thiết kế phần cứng.

  4. Exact-KRED khác gì so với các phương pháp rút gọn modulo khác?
    Exact-KRED là phiên bản cải tiến giúp xử lý modulo hiệu quả hơn, giảm độ trễ và tránh tràn số, phù hợp với modulus đặc biệt của Kyber (q=3329).

  5. Thiết kế có thể áp dụng cho các thuật toán mã hóa khác không?
    Có thể áp dụng cho các thuật toán lattice-based khác sử dụng NTT/INTT, hoặc các ứng dụng cần nhân đa thức nhanh trên phần cứng.

Kết luận

  • Thiết kế phần cứng xử lý NTT và INTT cho mã hóa lượng tử CRYSTALS-Kyber trên FPGA Intel Cyclone V đạt tần số hoạt động 237 MHz, sử dụng tài nguyên hợp lý với 1322 ALMs và 4 DSP.

  • Áp dụng thuật toán NTT/INTT độ phức tạp thấp cùng bộ rút gọn modulo Exact-KRED giúp tối ưu hiệu suất và độ trễ.

  • Kết quả mô phỏng và tổng hợp chứng minh tính chính xác, ổn định và hiệu quả vượt trội so với các nghiên cứu trước.

  • Đề xuất các hướng phát triển tiếp theo bao gồm tối ưu pipeline, mở rộng cấu hình butterfly unit, tích hợp với vi xử lý và bảo mật phần cứng.

  • Khuyến khích các nhà nghiên cứu, kỹ sư và chuyên gia an toàn thông tin tham khảo để phát triển các giải pháp mã hóa lượng tử trên phần cứng trong tương lai.

Hành động tiếp theo: Triển khai các đề xuất tối ưu hóa thiết kế, mở rộng ứng dụng trên các nền tảng phần cứng khác và nghiên cứu bảo mật phần cứng để chuẩn bị cho việc ứng dụng thực tế trong kỷ nguyên máy tính lượng tử.