Chương 1: Tổng quan đề tài Chương | sẽ đặt van đề về dé tài, hướng nghiên cứu của dé tài và mục tiêu của đề tài. Chương 2: Cơ sở lý thuyết Chương 2 sẽ trình bày những công cụ phục vụ trong việc thiết kế hệ thống và lý thuyết của các giải thuật được sử dụng trong hệ thống. Chương 3: Thiết kế hệ thống đề xuất Chương 3 sẽ trình bày về tổng quan hệ thống kiểm tra chữ kí số RSA cũng như tổng quan thiết kế Block Design của hệ thống và các IP của Xilinx dùng trong thiết kế trên phần mềm Vivado Design Suit. Chương 4: Hiện thực thiết kế và nạp ứng dụng của thiết kế vào board FPGA Chương 4 trình bày phương pháp đánh giá của thiết kế, kiểm tra kết quả mô phỏng của hệ thống dựa trên công cụ Simulation được tích hợp trong Vivado Design Suit và kết quả tổng hợp, thực thi của thiết kế trên Vivado cũng như trên Board FPGA Virtex-7 VC707.
Bên cạnh đó, kết quả thực hiện cũng được so sánh với các nghiên cứu liên quan. Chương 5: Kết luận và hướng phát triển Chương 5 sẽ tóm tắt toàn bộ công việc và kết quả đạt được. Đồng thời đề ra phương hướng phát triển cho đề tài trong tương lai cũng được trình bày ở chương này.6 Kế hoạch thực hiện Nhóm sẽ tiến hành thực hiện khóa luận này theo bảng kế hoạch thực hiện đã đề ra ở Bảng 1.2: Bảng kế hoạch thực hiện Thời gian Lê Nguyễn Công Toại Nguyễn Hoàn Tâm 14/2 - 27/2 Nghiên cứu cấu trúc của bộ Nghiên cứu cấu trúc của bộ kiểm tra chữ kí số RSA. kiểm tra chữ kí số RSA.
Đọc tài liệu. Đọc tài liệu. Vẽ diagram (SHA. 28/2 — 13/3 Tối ưu và hoàn thiện thuật Tìm hiệu và ứng dụng thuật toán RSA.
14/3 — 1/5 Xây dựng khối kiểm tra chữ | Xây dựng khối kiểm tra chữ kí kí số RSA. Tổng hợp, mô phỏng. Xử lý timing, kiểm tra thiết kế. 25/4 — 22/6 Viết báo cáo khóa luận giữa | Xây dựng hệ thống SoC ki.
MicroBlaze sử dụng giao thức Viết bai báo. AXI4Stream cho thiết kế kiểm tra chữ kí số. Viết chương trình tạo Test case bằng Python. Nạp lên FPGA, kiểm tra.
16/5 — 29/5 Đánh giá lại hệ thống. Đánh giá lại hệ thống. 30/5 — hiện tại Viết báo cáo khóa luận. Chỉnh sửa báo cáo khóa luận.
Kiểm tra, đánh giá hệ thống. Kiểm tra, đánh giá hệ thống. Chương 2: Cơ sở lý thuyết 2.1 Tổng quan Có rất nhiều loại phương pháp mã hóa khác nhau đã ra đời. Mỗi loại có những ưu và nhược điểm riêng.
Ta có thể phân chia các phương pháp mã hóa thành 4 loại chính. Ưu và nhược điểm cung các loại thuật toán mã hóa được đề cập ở Bảng 2.1: Ưu và nhược điểm của các thuật toán mã hóa Thuật toán | Ưu điểm Nhược điểm Loại mã hóa MD5 Dễ so sánh và lưu trữ. Hai chuỗi text có thê ra | Mã hóa một Định dạng 128-bit. cùng Message Digest.
| chiéu Dễ kiểm tra lỗi Ít bảo mật hơn SHA. Tính toán nhanh. SHA-256 Rất khó bị bẻ khóa. Cham hơn so với MDS.
Tính toán nhanh. Định dạng 256-bit. DES Có thê định nghĩa khóa | Dinh dạng 56-bit dễ bị | Mã hóa đối tròn. xứng Tính toán tương đối chậm.
AES Định dạng 128/192/256- Cấu trúc đại số đơn bit. giản, mã hóa cùng một Khó dé bẻ khóa. Phúc tap đề triển khai về mặt hiệu suất và bảo mật. RSA Xác minh don giản Tính toán chậm hon.
Mã hóa bất DSS Tính toán nhanh. Xác minh phức tạp. đối xứng Từ Bảng 2.1, nhóm đề xuất một kiến trúc kiểm tra chữ kí số RSA được dựa trên 2 thuật toán là RSA và SHA-256. Mục đích chính của thuật toán này dùng để xác minh bộ dữ liệu nhận được có chính xác như dữ liệu đã gởi hay không.
Quá trình kiểm tra này sẽ được thực hiện song song và kết quả sẽ được so sánh lại với nhau. Nếu chúng trùng khớp với nhau, quá trình kiểm tra chữ kí số này đã hoàn tắt. Ngược lại, nếu chúng không trùng khớp với nhau, hoặc là dữ liệu đã bị thay đổi, hoặc là chữ kí số đã bị thay đổi, hoặc là cả hai. Chỉ tiết về thuật toán sẽ được đề cập ở mục 2.5 trong khóa luận này.2 Công cụ Vivado Design Suite Vivado Design Suite là t6 hợp các phần mềm của hãng Xilinx.
Phần mềm này được tạo ra bằng việc nâng cấp các thế hệ phần mềm thiết kế cũ ISE Design Suite. Vivado được dùng dé phát triển các ứng dụng trên thế hệ chip va board Xilinx® 7 series, Zynq®-7000 All Programmable, UltraScaleTM Các thé hệ board cũ cua Xilinx như Series 6 sẽ vẫn được hỗ trợ bởi ISE, Plan Ahead. Vivado là phần mềm có rất nhiều chức năng. Nói một cách ngắn gọn, nó hỗ trợ tất cả các khâu của quá trình thiết kế Logic sử dụng FPGA.
Vivado cho phép các thuật toán dựa trên Machine Learning (ML) giúp tăng tốc quá trình đóng thiết kế. Công nghệ này có tính năng tối ưu hóa logic dựa trên ML, ước tính độ trễ và chạy thiết kế thông minh, giúp tự động hóa các chiến lược. Xilinx cũng đang giới thiệu khái niệm về một Abstract Shell, cho phép người dùng xác định nhiều mô-đun trong hệ thống dé được biên dịch tăng dan va song song. Điều này cho phép giảm thời gian biên dịch trung bình xuống 5 lần và lên đến 17 lần so với việc biên dịch toàn hệ thống truyền thống.
Abstract Shell cũng giúp bảo vệ IP của khách hàng bằng cách ân các chỉ tiết thiết kế bên ngoài các mô-đun, rất quan trọng đối với các ứng dụng như FPGA như là một Service. Ngoài ra, Vivado cải tiền thiết kế hợp tác với Vivado IP Integrator, cho phép thiết kế mô-đun bằng cách sử dụng tính năng “hộp chứa thiết kế khối” mới. Khả năng này thúc đầy phương pháp luận thiết kế dựa trên nhóm và cho phép đưa ra chiến lược chia đề trị đề xử lý thiết kế lớn với sự phân bồ ở nhiều nơi.1: Phần mềm Vivado Design Suit 2. Công cu Vitis Unified Software Platform Nền tang phần mềm hợp nhất của Vitis bao gồm: ¢ _ Bộ phát triển cốt lõi toàn diện dé xây dựng liền mạch các ứng dụng được tăng tốc.
¢ _ Tập hợp phong phú các thư viện mã nguồn mở được tăng tốc phan cứng được tối ưu hóa cho các nền tảng phần cứng Xilinx FPGA và Versal ACAP. © Môi trường phát triển miền cụ thé cho phép phát triển trực tiếp trong các frameworks quen thuộc, cấp cao hơn. ¢ Hé sinh thái đang phát triển của các thư viện đối tác được tăng tốc phần cứng và các ứng dụng được tạo sẵn. 10 e Vitis Model Composer, một công cụ thiết kế dựa trên mô hình cho phép khám phá và xác minh thiết kế nhanh chóng trong môi trường MathWorks MATLAB® và Simulink® và tăng tốc đường dẫn đến các thiết bị được sản xuất bởi Xilinx.
Vitis Networking P4 cho phép tạo ra các mạng được định nghĩa mềm. Trinh xây dung dit liệu VitisNetP4 tạo ra các hệ thống có thé được lập trình cho một loạt các chức năng xử lý gói từ phân loại gói đơn giản đến chỉnh sửa gói phức tạp. Việc phát triển Vitis cho phép khả năng di chuyền từ nền tảng này sang nền tảng khác. Phương pháp thiết kế dựa trên nền tảng của Vitis mang lại nhiều lợi thế về năng suât.
© Tai sử dụng nền tảng: Hoan đồi các ứng dụng tăng tốc khác nhau với cùng một nên tảng. ¢ Ứng dung Portable: Các port ứng dụng trên các nền tảng khác nhau. © _ Thời gian mô phỏng: Tăng tốc độ đồng mô phỏng với Kernels. e Thời gian chạy: Thời gian chạy mã nguồn mở xử lý giao tiếp thiết bị chủ thông qua PCIe hoặc được nhúng.
© _ Gỡ lỗi hệ thống: Lưu biên dịch phần cứng day đủ bằng cách đồng bộ mô phỏng toàn bộ hệ thống. 11 Caffe Domain-specific. Y_ XILINX Ÿ_ XUNX MATLAB’ ma Partner development OPyTorch a VITIS ^ VITIS SSIMULINK® Ry Development environments bắc ng ow Environments Video Analytics SDK Blockchain Solution Model Composer Networking Vitis & Image Math & Linear Vitis Compiler & Linker i Vits core Vitis HLS RTL Kernel Wizard l[ Al Engine Compiler NACE MTEL cer development kit Xilinx runtime library (XRT) Vitis target platform Zynq : ‘ UltraScale MPSoC Zynq-7000 Kria SoM Varium Cards Versal Cards Hình 2.2: Các thành phan có trong Vitis Unified Software Platform 2.4 Phần mềm tao Test case @ RSA Signature — Oo x GENERATE RSA DIGITAL SIGNATURE Select INPUT option: Keyboard input Open File 12 Phần mềm tạo Test case được xây dụng dựa trên ngôn ngữ Python (Hình 2.3), sử dụng thư viện PyCryptodome va RSA với mục đích tạo dit liệu đầu vào cho thiết kế. Phần mềm cho phép người dùng nhập trực tiếp tin nhắn (message) hoặc sử dụng file text (.txt), với các trường hợp Test case đúng va Test case sai.
Sau khi chạy phần mềm, các giá trị dữ liệu được lưu dưới dạng file text như Hình 2.4, bao gồm: e BLOCK_MESSAGE.txt : chứa các block của message sau khi padding.txt:: chứa số lượng block của message sau khi padding e PublicKey.txt : chứa public key cua RSA ¢ Signature.txt: chứa chữ kí số.txt : chứa thông điệp sau khi mã hóa.txt /6/2022 15:20 TXTFile 2KB [ui’ Digest-txt TXT File 1KB [Ä Num_Turn.tet TXT File 1KB [DÄ PublicKey.txt TXT File 1KB [aif Signature.tet TXT File 1KB Hình 2.4: Các file sau khi tao ra bằng phần mềm 2.5 Các thuật toán được sử dụng 2.1 Thuật toán Montgomery Modular Multiplication Phép nhân mô-đun Montgomery là một phương pháp phô biến đề tính toán phép nhân mô-đun nhanh chóng. Nó được giới thiệu vào năm 1985 bởi Peter L. Bằng cách chuyển đổi các số thành dang Montgomery của nó, các phép tính hiện đơn giản hon và hiệu qua hơn dé tinh AB mod M. Hiệu quả đến từ việc tránh các hoạt động phân chia tốn kém.
Dé chuyền sang dạng số Montgomery, chúng ta cần một số nguyên dương r > M nguyên tổ với A, tức là ged (M, r) = 1. Thông thường, chúng ta thường chọn r là 13 lũy thừa của 2 và M sẽ là một số lẻ, vì phép chia và các phép toán khác trong thuật toán lúc này sẽ được thay thế bằng phép dịch và các phép toán đơn giản khác. Ta có yêu cầu bài toán như sau: S = A.B mod M Gọi các dang Montgomery của A, B và S lần lượt là A', B' và S', trong đó: A'=ArmodM B'=BrmodM S’ =S.r mod M Giá trị trả về của Mô-đun Montgomery là: Mont (A, B, M) = A.B mod M (kết quả mong muốn) Thuật toán Montgomery modular multiplication được thực hiện như sau: For i= 0 to n-1 Begin If (S +A¡B) % 2 == 0) S=(S+A¡B)/⁄2 Else S =(S+A¡B+M)/2 14 End If(S >M) S=S-M Trong đó A, B, M và S là các số n-bit.