Tích hợp mã nguồn Kyber vào cây nguồn Linux Kernel
Bước đầu tiên là lấy về mã nguồn Linux Kernel chính thức và các patch cần thiết từ repository của NIST hoặc nhóm phát triển kernel crypto. Chúng ta cần một bản kernel stable gần nhất để đảm bảo tính tương thích.
Tại sao: Kernel cần một cơ sở vững chắc trước khi chèn thêm mã nguồn mã hóa hậu lượng tử. Việc clone từ source chính thức giúp tránh các xung đột không đáng có.
Kết quả mong đợi: Thư mục linux được tạo ra với toàn bộ source code kernel và thư mục patches chứa file patch Kyber.
cd /root
git clone https://github.com/torvalds/linux.git
cd linux
git checkout v6.10
git apply --recount ../patches/kyber-integration.patch
Áp dụng patch vào cây nguồn
Sau khi clone, bạn cần áp dụng file patch đã tải về vào cây source code. Command git apply sẽ chèn các thay đổi từ file patch vào các file nguồn tương ứng.
Tại sao: Patch chứa các file mã nguồn C mới (như kyber.c, kyber.h) và các sửa đổi trong thư mục crypto/ để kernel nhận diện thuật toán Kyber.
Kết quả mong đợi: Không có thông báo lỗi. Git hiển thị thông báo Applying: Add Kyber KEM implementation... và các file mới xuất hiện trong thư mục crypto/.
ls crypto/kyber.c crypto/kyber.h
git status
Cấu hình file Kconfig để bật tùy chọn
Bây giờ chúng ta cần sửa file crypto/Kconfig để thêm tùy chọn cấu hình cho Kyber. Điều này cho phép người dùng chọn bật/tắt module này khi biên dịch.
Tại sao: Kernel sử dụng hệ thống menuconfig dựa trên file Kconfig. Nếu không khai báo CONFIG_CRYPTO_KYBER ở đây, tùy chọn sẽ không xuất hiện trong menu cấu hình và kernel sẽ không biên dịch phần code này.
Kết quả mong đợi: File crypto/Kconfig được cập nhật với block cấu hình mới cho Kyber, cho phép chọn CONFIG_CRYPTO_KYBER.
cd crypto
cat >> Kconfig
Verify kết quả Kconfig
Để kiểm tra xem cấu hình đã được thêm đúng chưa, hãy tìm kiếm ký tự CRYPTO_KYBER trong file vừa sửa.
Tại sao: Xác nhận nhanh nội dung file trước khi chạy menuconfig tránh việc phải chỉnh sửa lại do cú pháp sai.
Kết quả mong đợi: Dòng config CRYPTO_KYBER xuất hiện trong kết quả tìm kiếm.
grep "config CRYPTO_KYBER" crypto/Kconfig
Cấu hình file Makefile để liên kết thư viện
Cuối cùng, cần sửa file crypto/Makefile để đảm bảo trình biên dịch biết cách liên kết các file nguồn của Kyber vào kernel.
Tại sao: Makefile điều khiển quá trình biên dịch. Nếu không khai báo biến obj-$(CONFIG_CRYPTO_KYBER), trình biên dịch sẽ bỏ qua các file .c của Kyber dù Kconfig đã được bật.
Kết quả mong đợi: File crypto/Makefile chứa dòng lệnh liên kết kyber.o khi tùy chọn được bật.
cd crypto
# Append the build rule to the end of the Makefile
cat >> Makefile
Verify kết quả Makefile
Thao tác kiểm tra cuối cùng để đảm bảo quy tắc biên dịch đã được thêm vào file Makefile.
Tại sao: Xác nhận logic liên kết giữa biến cấu hình và file đối tượng (object file) trước khi thực hiện bước biên dịch kernel ở phần tiếp theo.
Kết quả mong đợi: Dòng obj-$(CONFIG_CRYPTO_KYBER) += kyber.o hiện diện trong file.
grep "CRYPTO_KYBER" crypto/Makefile
Điều hướng series:
Mục lục: Series: Triển khai Database Post-Quantum với Kyber trên Linux Kernel
« Phần 2: Hiểu rõ thuật toán Kyber và cơ chế tích hợp vào Linux Kernel
Phần 4: Cấu hình và biên dịch Linux Kernel với hỗ trợ Kyber »