MỞ ĐẦU 1 Luận văn thạc sĩ GVHD: TS. Trần Hoàng Linh 1.1 Lý do chọn đề tài Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (National Institute of Standards and Technology – 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), chọn CRYSTALS-Kyber là mã hoá cơ sở. Việc triển khai phần cứng hiện tại của mật mã hiện đại sẽ cần xử lý tiêu chuẩn mới này một cách có hiệu quả. Việc chuẩn hoá của NIST được giải thích là để tìm ra một loại mã hoá mới an toàn trước sự phát triển của máy tính lượng tử trong tương lai.
Điều này có nghĩa là các loại mã bất đối xứng hiện đại (ECDSA, RSA, …) hiện đang sử dụng rộng rãi trong việc mã hoá thông tin sẽ không còn an toàn nếu bị tấn công bởi máy tính lượng tử. Vì vậy nhu cầu phát triển chuẩn mã hoá để sử dụng cho thời kỳ hậu lượng tử là cấp thiết để giảm rủi ro và tăng cường bảo mật trong truyền thông thông tin. Mục tiêu của chuẩn hoá bao gồm việc đảm bảo tính an toàn, hiệu quả và tương thích giữa các hệ thống khác nhau. Việc này hỗ trợ sự đồng nhất trong cộng đồng quốc tế, giúp các quốc gia và tổ chức thảo luận và triển khai các giải pháp mã hoá lượng tử một cách có trách nhiệm và chuẩn mực.
Vượt qua nhiều ứng cử viên và nhiều vòng của quy trình chuẩn hoá, CRYSTALS-Kyber là thuật toán duy nhất được lựa chọn cho Mã hoá Khoá Công Khai (Public-key Encryption) và Thiết lập khoá (Key Establishment) cho tiêu chuẩn mã hoá sau lượng tử năm 2022. Kyber đòi hỏi nỗ lực tính toán nghiêm túc, chủ yếu là phép nhân đa thức trên một vành đa thức giới hạn. Mã hoá dựa trên mạng mô-đun (module lattice) mang lại cân bằng tốt giữa hiệu năng và bảo mật. Tuy nhiên quá trình tạo khoá, mã hoá và giải mã khoá có thể chiếm một tỷ lệ lớn trong khả năng tính toán và chu kì clock của bộ vi xử lý.
Nhiều nghiên cứu đã triển khai mã hoá lattice-based bằng phần mềm để chứng minh tính khả thi cho nghiên cứu của họ cũng như một phần thể hiện tốc độ tính toán của giải thuật đề xuất. Tuy nhiên, khi một thuật toán mã hoá đã được chuẩn hoá, để 2 Luận văn thạc sĩ GVHD: TS. Trần Hoàng Linh tối ưu tối đa tốc độ tính toán và phân bổ tài nguyên cho hợp lý thì các thuật toán mã hoá này thường được triển khai trên các phần cứng chuyên biệt đảm nhiệm công việc tính toán. Nhiều nghiên cứu về mã hoá lượng tử gần đây cũng chọn ASIC, FPGA dưới dạng độc lập hoặc làm các nhân tính toán phụ đảm nhận việc tính toán cho các giải thuật đặc biệt cho các kiến trúc CPU như RISC-V, ARM, x86_64,… mà trong đó, FPGA là một nền tảng được sử dụng rất 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.
Intel (Altera) và AMD (Xilinx) là những nhà sản xuất hang đầu trong lĩnh vực FPGA với các công cụ phát triển như Quartus hay Vivado cho phép người thiết có được những thiết kế mạch kỹ thuật số chính xác và có phần lớn quyền quyết định với các kết quả thiết kế của mình. Với những lý do kể trên, đây là tổng quan về các lý do để học viên chọn “Thiết kế bộ tăng tốc NTT cho mã hoá sau lượng tử CRYSTALS-Kyber” làm đề tài nghiên cứu cho luận văn của mình. 3 Luận văn thạc sĩ GVHD: TS. Trần Hoàng Linh 1.2 Mục đích Với việc Kyber được chọn để chuẩn hoá vào năm 2022 cho thấy tiềm năng ứng dụng rộng rãi của Kyber nói chung và mã hoá sau lượng tử nói riêng vào lĩnh vực bảo mật thông tin.
Các thiết kế và tiêu chuẩn cho mã hoá lượng tử sẽ ngày càng được mở rộng nghiên cứu và cải tiến liên tụ về các thông số thiết kế nhằm hoàn thiện về khả năng bảo mật và hiệu năng của mã hoá lượng tử. Vì vậy, mục đích nghiên cứu của đề tài này nhằm kiểm chứng khả năng tương thích của CRYSTALS-Kyber khi chạy trên phần cứng Arm, từ đó cho thấy sự cần thiết của phần cứng hoá những 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. Cuối cùng như xây dựng được phần cứng xử lý NTT và INTT trên nền tảng FPGA, qua đó đá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ã hoá sau lượng tử nói riêng. 4 Luận văn thạc sĩ GVHD: TS.
Trần Hoàng Linh 1.3 Đối tượng và phạm vi nghiên cứu 1.1 Đối tượng nghiên cứu Đối tượng nghiên cứu của đề tài là phần mềm tham chiếu mã hoá lượng tử CRYSTALS-Kyber cùng với phần cứng xử lý NTT và INTT cho Kyber trên nền tảng FPGA. Phần mềm tham chiếu Kyber được viết bằng ngôn ngữ lập trình C, 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. Phiên bản Kyber được chọn cho đánh giá hiệu năng phần mềm là Kyber512.2 Phạm vi nghiên cứu Phạm vi nghiên cứu của luận văn là mã nguồn phần mềm CRYSTALS-Kyber trên vi xử lý ARM Cortex-A9 và thuật toán NTT/INTT trên phần cứng theo thông số của mã hoá lượng tử CRYSTALS-Kyber. Tập trung chủ yếu vào nghiên cứu cách ứng dụng để phần cứng hoá thuật toán NTT/INTT mà mã nguồn phần mềm sử dụng trên phần cứng.
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).3 Ý nghĩa khoa học Đề tài đóng góp ý nghĩa khoa học trong việc nghiên cứu cách ứng dụng của mã hoá lượng tử CRYSTALS-Kyber trong quá trình chuẩn hoá. Ngoài ra, cũng đóng góp phương pháp ứng dụng phần cứng trong việc tăng tốc tính toán cho mật mã lượng tử CRYSTALS-Kyber đã được chọn chuẩn hoá năm 2022.4 Ý nghĩa thực tiễn Đánh giá tính khả thi của phần mềm tham chiếu trên phần cứng ARM tạo tiền đề cho việc ứng dụng của mã hoá lượng tử CRYTALS-Kyber trên thiết bị điện tử sau này. Ứng dụng việc giảm tải các quy trình tính toán phức tạp của phần mềm bằng bộ tăng tốc tính toán phần cứng NTT cho Kyber có thể áp dụng rộng rãi dưới nhiều hình thức như tích hợp phần cứng tính toán chuyên biệt thành một phần của vi xử lý hoặc tách ra đảm nhiệm như một vi xử lý phụ độc lập đảm nhiệm việc tính toán chuyên biệt. 5 Luận văn thạc sĩ GVHD: TS.
Trần Hoàng Linh 2 TỔNG QUAN 6 Luận văn thạc sĩ GVHD: TS. Trần Hoàng Linh 2.1 Tình hình nghiên cứu trong và ngoài nước Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (National Institute of Standards and Technology – 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]. Tiêu chuẩn quy định cơ một cơ chế đóng gói khoá (Key-Encapsulation Mechanism – KEM) sử sụng phương pháp module lưới (Module Lattice) gọi là ML-KEM, dựa trên thông số kỹ thuật của CRYSTALS-Kyber. CRYSTALS-Kyber hay Kyber là một cơ chế đóng gói khoá module dựa trên lưới, yêu cầu việc nhân các đa thức trên một vòng đa thức[2].
Rào cản chính trong hầu hết các triển khai của CRYSTALS-Kyber hiện tại là phương pháp nhân nhanh sử dụng Biến đổi số lý thuyết (Number Theoretic Transform – NTT). Triển khai của 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 (Inverse NTT – INTT) làm cho nó trở thành phần tốn thời gian nhất trong tính toán của Kyber [3]. Không giống như cơ chế mã hoá đường cong Elliptic (Elliptic Curve Cryptography – ECC) hay Rivest-Shamir-Adleman (RSA), các phương pháp tính toán chủ yếu theo tuyến tính, NTT có thể thực hiện song song hoá trong việc tính toán để có thể tăng thông lượng (throughput). Các thiết kế phần cứng hiện tại của Kyber và các giải thuật mã hoá sau tượng tử (Post Quantum Cryptography – PQC) dựa trên lưới tương tự cố gắng cải thiện thuật toán bằng nhiều phương pháp.
Hai 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) và 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. 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 (NEWHOPE prime q). Công trình [4] sử dụng phương pháp tương tự cho NTT và INTT với một thuật toán modular được điều chỉnh cho số nguyên tố Kyber được gọi là Exact KRED và một cấu hình BU 2x2 và độ phức tạp thấp. Ye và cộng sự [5] cải thiện nghiên cứu của Zhang và cộng sự, đã cố định thuật toán giảm 7 Luận văn thạc sĩ GVHD: TS.
Trần Hoàng Linh số dư modulo (modular reduction) vào ước lượng mới số nguyên tố q. Họ cũng giới thiệu một cấu trúc pipeline hoàn chỉnh giữa các giai đoạn của NTT và tính toán với lõi NTT. Cấu trúc BP-NTT[6] sử dụng SRAM (Static Random Access Memory) và nhân modulo bit song song để cải thiện quá trình NTT của họ. Rút gọn Barret là một thuật toán modulo phổ biến để tối ưu hoá BU [7].
Fritzman và cộng sự [8] đã thảo luận về các cuộc tấn công kênh phụ khả năng có thể xảy ra trên phần cứng NTT và đề xuất một thiết kế tiết kiệm năng lượng với một bộ nhớ RAM đơn cổng (single-port RAM). Để tăng cường thông lượng dữ liệu, một kế hoạch truy cập bộ nhớ ping-pong được đề xuất trong [9]. Giải thuật tăng tốc bằng phần cứng có nhiều ứng dụng và áp dụng trên các nền tảng khác nhau như Xilinx FPGA (Xilinx Field Programmable Gate Array) và vi mạch tích hợp ứng dụng - ASIC (Application Specific Integrated Circuit) [10-13]. Paludo và cộng sự [14] đã tích hợp BU vào một hệ thống RISC-V 5 tầng pipeline sẵn sàng hoạt động với linux.
Họ đánh giá hiệu suất trên cả FPGA và 28nm ASIC. CoHA- NTT là kiến trúc nhân đa thức dựa trên NTT đầu tiên với khả năng cấu hình lại trong thời gian chạy và thời gian biên dịch [15]. Geelen và cộng sự [16] giới thiệu một phần mở rộng kiến trúc tập lệnh (Instruction Set Architecture – ISA) mới vào kiến trúc RISC-V của họ để tích hợp NTT. Kuang và cộng sự vector hoá thuật toán NTT để kết hợp nó tốt hơn với kiến trúc RISC-V của họ.