ĐẠI HỌC QUỐC GIA TP. HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA -------------------- NGUYỄN TUẤN HÙNG THIẾT KẾ PHẦN CỨNG XỬ LÝ NTT VÀ INTT CHO MÃ HOÁ LƯỢNG TỬ CRYSTALS-KYBER Chuyên ngành : Kỹ Thuật Điện Tử Mã số : 8520203 LUẬN VĂN THẠC SĨ TP. HỒ CHÍ MINH, tháng 01 năm 2022 CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM Cán bộ hướng dẫn khoa học :TS. Trần Hoàng Linh.
Cán bộ chấm nhận xét 1 : TS. Cán bộ chấm nhận xét 2 : TS. Huỳnh Phú Minh Cường. Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp.
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: 1. Nguyễn Lý Thiên Trường. Huỳnh Phú Minh Cường. – Ủy viên Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có).
CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA ĐIỆN – ĐIỆN TỬ ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT TRƯỜNG ĐẠI HỌC BÁCH KHOA NAM Độc lập - Tự do - Hạnh phúc NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Nguyễn Tuấn Hùng. MSHV: 2070027 Ngày, tháng, năm sinh: 11/06/1997 .HCM Chuyên ngành: Kỹ Thuật Điện Tử. TÊN ĐỀ TÀI: THIẾT KẾ PHẦN CỨNG XỬ LÝ NTT VÀ INTT CHO MÃ HÓA LƯỢNG TỬ CRYSTALS-KYBER II. NHIỆM VỤ VÀ NỘI DUNG: Xây dựng phần cứng xử lý NTT và INTT trên nền tảng FPGA, bằng ngôn ngữ mô tả phần cứng Verilog, cho mã hóa lượng tử CRYSTALS-Kyber.
Qua đó, đánh giá và bàn luận các kết quả cũng như bàn luận về các hướng nghiên cứu chuyên sâu để ứng dụng mã hóa lượng tử trên phần cứng. NGÀY GIAO NHIỆM VỤ : 04/01/2021 IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 24/12/2021 V. CÁN BỘ HƯỚNG DẪN : TS.
Trần Hoàng Linh Tp. CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN ĐÀO TẠO TRƯỞNG KHOA ĐIỆN – ĐIỆN TỬ Lời cảm ơn GVHD: TS. Trần Hoàng Linh LỜI CẢM ƠN Học viên xin gửi lời cảm ơn sâu sắc đến quý thầy cô, cha mẹ và bạn bè đã giúp đỡ và ủng hộ trong suốt quá trình hoàn thành luận văn. Sự giúp đỡ đó có ý nghĩa tinh thần rất lớn đối với học viên.
Xin được gửi lời cảm ơn chân thành đến thầy TS. Trần Hoàng Linh. Người hết lòng giúp đỡ, dạy bảo, và tạo điều kiện thuận lợi cho học viên trong suốt quá trình thực hiện luận văn tốt nghiệp. Cảm ơn thầy đã định hướng, góp ý và giúp em có thể hoàn thành luận văn một cách tốt nhất.
Xin cảm ơn các quý thầy cô trong Khoa Điện – Điện tử, trường Đại học Bách Khoa Thành phố Hồ chí Minh. Kết quả em đạt được ngày hôm nay đều nhờ sự chỉ dạy của các thầy cô. Hồ Chí Minh, ngày 05 tháng 12 năm 2021. Học viên Nguyễn Tuấn Hùng i Luận văn thạc sĩ GVHD: TS.
Trần Hoàng Linh TÓM TẮT LUẬN VĂN Tại phiên thứ 3 của quá trình tiêu chuẩn hóa mật mã lượng tử, NIST đã công bố CRYSTALS-Kyber là một trong những ứng viên sáng giá nhất. Là một dạng mã hóa dựa trên Lattice, CRYSTALS-Kyber đặt nặng yêu cầu xử lý vào NTT và INTT để nhân đa thức. Luận văn này trình bày một thiết kế phần cứng xử lý NTT và INTT cho mã hoá lượng tử CRYSTALS- Kyber. Trong đó tập trung vào việc thiết kế và tối ưu hóa kiến trúc bộ tăng tốc NTT với các thông số phù hợp cho CRYSTALS-Kyber.
Nghiên cứu bao gồm việc sửa đổi các mô-đun tính toán và các Butterfly Unit nhằm giảm độ phức tạp tính toán. Kết quả là thiết kế đạt được 237 MHz fmax khi tổng hợp trên Intel FPGA Cyclone V với Quartus. Việc cân bằng thanh ghi giữa các mạch tổ hợp cho phép thiết kế pipeline đạt được tốc độ mạch tối ưu. ii Luận văn thạc sĩ GVHD: TS.
Trần Hoàng Linh ABSTRACT NIST post-quantum cryptography standardization round 3 announced CRYSTALS- Kyber as one of the finalists. As a lattice-based cryptography scheme, CRYSTALS-Kyber relies heavily on polynomial multiplication efficiency. This paper presents a high-speed and pipelined hardware number theoretic transform (NTT) and INTT accelerator for CRYSTALS-Kyber. Our work centers around designing and optimizing the NTT accelerator architecture with suitable parameter for hardware implementations of CRYSTALS-Kyber.
The work includes modifying the modular arithmetic modules and butterfly units with an efficient low complexity algorithm. As a result, our design achieved 237 MHz fmax synthesized on Intel FPGA Cyclone V with Quartus. Resources utilization through combinational logic path rebalances allowed us to efficiently pipeline between hardware modules. iii Luận văn thạc sĩ GVHD: TS.
Trần Hoàng Linh LỜI CAM ĐOAN Học viên cam đoan rằng, ngoài trừ các kết quả tham khảo từ các công trình khác như đã ghi rõ và trích dẫn trong luận văn này, các công việc nghiên cứu và trình bày trong luận văn này là do chính học viên thực hiện Học viên Nguyễn Tuấn Hùng iv Luận văn thạc sĩ GVHD: TS. Trần Hoàng Linh MỤC LỤC 1.1 Lý do chọn đề tài .3 Đối tượng và phạm vi nghiên cứu .1 Đối tượng nghiên cứu .2 Phạm vi nghiên cứu .4 Ý nghĩa khoa học và thực tiễn của đề tài nghiên cứu .1 Ý nghĩa khoa học .2 Ý nghĩa thực tiễn .1 Tình hình nghiên cứu trong và ngoài nước.1 Tình hình nghiên cứu ngoài nước .2 Tình hình nghiên cứu trong nước .2 Nhiệm vụ đề tài. NHỮNG NGHIÊN CỨU LÝ THUYẾT .1 Lý thuyết về mã hóa và mã hóa bất đối xứng .2 Lý thuyết về CRYSTALS-Kyber .3 Lý thuyết về Number Theoretic Transform (NTT) .1 NTT/INTT cổ điển.2 Phiên bản NTT/INTT tối ưu được sử dụng .4 Lý thuyết về phép toán rút gọn modulo Exact-KRED .5 Về bộ nhớ BRAM M10K trên FPGA Cyclone V.6 Xử lý tính toán lý thuyết trên phần mềm máy tính. TRÌNH BÀY, ĐÁNH GIÁ VÀ BÀN LUẬN KẾT QUẢ .1 Thiết kế phần cứng xử lý NTT và INTT cho CRYSTALS-Kyber.
20 v Luận văn thạc sĩ GVHD: TS. Trần Hoàng Linh 4.1 Thiết kế butterfly unit xử lý CT/GS .1 Thiết kế bộ xử lý rút gọn modulo Exact-KRED .2 Bộ rút gọn modulo chia nửa .3 Thiết kế butterfly unit xử lý CT/GS .4 Thiết kế phần cứng xử lý NTT và INTT cho CRYSTALS-Kyber .2 Kết quả tổng hợp và mô phỏng.1 Kết quả mô phỏng ModelSim .2 Kết quả tổng hợp Quartus .3 Đánh giá, bàn luận và so sánh kết quả. KẾT LUẬN VÀ KIẾN NGHỊ NHỮNG NGHIÊN CỨU TIẾP THEO .1 Các hướng tối ưu thiết kế phần cứng xử lý NTT và INTT .2 Thiết kế phần cứng xử lý CRYSTALS-Kyber và mã hóa Lattice Based. 40 DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC.
42 DANH MỤC TÀI LIỆU THAM KHẢO .4 Các phần tối ưu cần lưu ý ở phần mềm Quartus .5 Sơ đồ thiết kế chính theo Quartus.6 Phần truy xuất RAM, ROM đầy đủ .7 Các thuật ngữ được sử dụng. 58 vi Luận văn thạc sĩ GVHD: TS. Trần Hoàng Linh DANH SÁCH HÌNH MINH HỌA Hình 1 Minh họa mã hóa bất đối xứng. 6 Hình 2 Minh họa gốc toán học phức tạp của phép toán lưới mà Kyber dựa trên.
7 Hình 3 Quy trình tạo khóa, mã hóa và giải mã của dạng mã hóa lưới. 7 Hình 4 Ring-learning with errors (RLWE). 8 Hình 5 Module-learning with errors (MLWE). 8 Hình 6 Ba giải thuật tao mã, mã hóa và giải mã của Kyber [2].
8 Hình 7 NTT trong giải thuật tạo mã của Kyber [2]. 9 Hình 8 NTT trong giải thuật mã hóa của Kyber [2]. 9 Hình 9 NTT trong giải thuật giải mã của Kyber. 10 Hình 10 Mô hình của các Butterfly Unit (BU).
(1) Cooley - Tukey Butterfly. (2) Gentleman - Sande Butterfly. 12 Hình 11 NWC NTT và INT với xử lý trước và xử lý sau. 13 Hình 12 Sơ đồ khối của bộ rút gọn Modulo Exact-KRED.
21 Hình 13 Phần cứng butterfly unit xử lý CT/GS. 22 Hình 14 Bộ Butterfly Unit kết hợp CT/GS cho thuật toán độ phức tạp thấp. 23 Hình 15 Phần cứng xử lý NTT và INTT cho CRYSTALS-Kyber. 24 Hình 16 Sơ đồ khối bộ xử lý NTT/INTT.
26 Hình 17 Bộ SIPO Writeback vào nối tiếp ra song song với các ô nhớ 12-bit. 27 Hình 18 Thứ tự địa chỉ truy xuất và thứ tự dữ liệu sắp xếp tại RAM cho NTT (n=128, 40 cycles đầu tiên). 28 Hình 19 Thứ tự địa chỉ truy xuất tại ROM cho NTT (n=128, 40 cycles đầu tiên). 29 Hình 20 Thứ tự địa chỉ truy xuất và thứ tự dữ liệu sắp xếp tại RAM cho INTT (n=128, 40 cycles đầu tiên).
30 Hình 21 Thứ tự địa chỉ truy xuất tại ROM cho INTT (n=128, 40 cycles đầu tiên). 31 Hình 22 Mô phỏng trên dạng sóng kết quả của thiết kế Exact-KRED. 33 Hình 23 Mô phỏng trên dạng sóng kết quả của thiết kế BU. 34 vii Luận văn thạc sĩ GVHD: TS.
Trần Hoàng Linh Hình 24 Mô phỏng dạng sóng kết quả của phần cứng xử lý NTT và INTT. 34 Hình 25 Kết quả tổng hợp tài nguyên trên Quartus. 35 Hình 26 Kết quả tốc độ mạch trường hợp Slow 1100 mV 85C. 36 Hình 27 Kết quả tốc độ mạch trường hợp Fast 1100 mV 0C.
36 Hình 28 Kết quả tốc độ mạch trung bình. 36 Hình 29 So sánh tỷ lệ tỉ lệ tài nguyên tiêu thụ trên tốc độ. 38 Hình 30 Chế độ tối ưu khi tổng hợp trên Quartus. 46 Hình 31 Sơ đồ Netlist Viewer của thiết kế tổng trên Quartus.
46 viii Luận văn thạc sĩ GVHD: TS. Trần Hoàng Linh DANH SÁCH BẢNG SỐ LIỆU Bảng 1 Thông số của từng phiên bản Kyber. 10 Bảng 2 Tìm giá trị 𝛾2𝑛 = 𝜔𝑛,. 19 Bảng 3 Thực hiện tính 𝛾2𝑛 ở các giá trị mũ khác nhau (bảng tới mức mũ 24).
19 Bảng 4 Bảng chân phần cứng butterfly unit xử lý CT/GS. 22 Bảng 5 Bảng chân phần cứng xử lý NTT và INTT cho CRYSTALS-Kyber. 24 Bảng 6 Thiết kế đề xuất so với các nghiên cứu NTT tương tự trước đây (n = 256). 37 Bảng 7 Phần thứ tự truy xuất và thứ tự hệ số phương trình gốc trong bộ nhớ RAM cho NTT 47 Bảng 8 Phần thứ tự truy xuất và thứ tự hệ số phương trình gốc trong bộ nhớ RAM cho INTT.
50 Bảng 9 Thứ tự truy xuất hệ số Twiddle Factor từ ROM cho cấu hình 2 x 2 BU cho NTT. 52 Bảng 10 Bảng giá trị Twiddle Factor 𝛾. 55 Bảng 11 Bảng thuật ngữ. 58 ix Luận văn thạc sĩ GVHD: TS.
Trần Hoàng Linh 1.1 Lý do chọn đề tài Tổ chức National Institute of Standards and Technology (NIST) đã tổ chức thực hiện quy trình chuẩn hoá mã hoá sau lượng tử (Post-Quantumn Cryptography hay PQC) hay mã hoá lượng tử từ 2016 [1]. Đây là dạng mã hóa mới nhằm thay thế các dạng mã hóa bất đối xứng hiện tại.