TÓM TẮT KHÓA LUẬNKhóa luận này trình bày quá trình thiết kế và hiện thực bộ đồng xử lý mật mã dựatrên kiến trúc RISC-V với thông lượng cao, nhằm phục vụ cho các ứng dụng mật mãnhẹ.. Kết
Trang 1ĐẠI HOC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TINH
NGUYEN NGOC HUNG - 20521369
KHOA LUAN TOT NGHIEP
LIGHTWEIGHT CRYPTOGRAPHY
DESIGN HIGH-THROUGHPUT RISC-V BASED CRYPTOGRAPHIC CO-PROCESSOR FOR LIGHTWEIGHT
CRYPTOGRAPHY
CU NHAN NGANH KY THUAT MAY TINH
GIANG VIEN HUONG DAN
TS LAM DUC KHAI
TS PHAM HOÀI LUAN
TP HO CHÍ MINH, 2024
Trang 2LỜI CẢM ƠN
Lời đầu tiên em xin gửi lời cảm ơn chân thành đến toàn thé quý thầy côtrường Đại hoc Công Nghệ Thông Tin — Dai học Quốc gia TP.Hồ Chí Minh, đặcbiệt là quý thầy cô khoa Kỹ Thuật Máy Tính đã tạo điều kiện cho em được họctập và thực hành với nhiều kiến thức, kinh nghiệm trong suốt thời gian học tập
Bên cạnh đó, nhóm xin gửi lời cảm ơn sâu sắc tới thầy Phạm Hoài Luân
và thay Lâm Đức Khai đã dẫn dắt và đưa ra các định hướng đúng đắn cho nghiêncứu, cung cấp các trang thiết bị cũng như dành nhiều thời gian để góp ý và chỉnhsửa để nhóm có thê hoàn thành khóa luận một cách tốt đẹp
Trong quá trình thực hiện khóa luận tốt nghiệp này, nhóm em không thể tránh khỏi những khó khăn và cả những sai sót do những giới hạn liên quan đến
chuyên ngành đặc thù Vì vậy, nhóm em mong các quý Thầy/Cô thông cảm vàđóng góp ý kiến đề đề tài khóa luận này được phát triển và hoàn thiện hơn trong
tương lai.
Một lần nữa nhóm em xin chân thành cảm ơn
TP.Hồ Chí Minh, ngày 26 tháng 6 năm 2024
Sinh Viên Thực Hiện
NGUYÊN NGỌC HƯNG
Trang 3MỤC LỤCChương I GIỚI THIỆU 2- 2< E+SEEE+EE+EE+EE+EE+EEEEEEEEEErErkerrerree 2
1.1 Lý do chọn đề tài - 2-5 tk EEEE 2 E2E1211211211211 2112112111121 xe 21.2 Mục tiêu đề tài 2k 2k2 E222 2221211121211 2112111111 eerrree 3c0 n 35 41.4 _ Đối tượng nghiên CỨU - ¿2 <+S<+SE+EE+EE+EEEEEEEEEEEEEEEEEEEEEEEErkrrrrrree 4Chương 2 TONG QUAN ¿5252 2522E2EE2E12112112112112112112112121 21 cxe 5
Chương 3 CƠ SỞ LÝ THUYÉTT 2: 2£ £+SE+EE2EE£EEEEEEEEEEEEEEEEEEerkrrrkrree 7
3.1 _ Giới thiệu kiến trúc tập lệnh RISC-V ¿- 2 ¿+ +£x+£EzEerxrrreerxees 7
3.1.1 _ Tổng quan kiến trúc RISC-V -¿ ¿©-+++c++crxvrreerreerreees 73.1.2 Các tập lệnh của kiến trúc RISC-V ¿- + ccx+E+keEeEerkerkererkerkee 93.1.3 Cac phép tính số nguyên - 2+ <+E+x+EE£EEEEESEkrrkerrerrkrree 103.1.4 _ Các lệnh điều khiến -¿- + + ©5++c++ExvEevrxerxerreerkrree lãi3.1.5 _ Các lệnh trích xuất/ lưu trữ dit liệu -2¿2-ss++++zx+s 123.2 Gai thuật mật mã học nhẹ - - ¿-+ <1 13 3*+222EE++SSeeeeeeeezeseree 13
3.2.1 Khái niệm -22EC2Ek 2 E2 1 21121102111 cEkrree 13 3.2.2 ASCON 22221220 22222212111 eeeree 13 3.2.3 GIFT-COFB 5c22k2 k2 E2221021122110711 221211 cre 14 3.2.4 ISAP Q.1 ey 16 3.2.5 SPARKLE o.ccccscssscsssessssssesssesssecssesssesssessucssscssecssesssecssecssessseeseseseseseeens 16 3.2.6 TINY JAMBU woneecessessscsssesssesssesssesssesssssssessscssecssecssecssecssessseesesesesesesens 16
3.2.8 ROMUIUS occ cccccccccceseseessssseceeeeeeececceseseeesssssseeeeeeeeceeeceeeeeseetaeea 17
3.2.9 Grainl28-AEAD - cc x22 1221221121121 21 1c re 18
Trang 43.3 Bộ Đồng Xử Lý :- St St St EEE11011211111211211211211 111cc 183.4 Giao thức AXI được dùng dé truyền dữ liệu cho bộ đồng xử lý RISC-V 19
3.4.1 Khái niệm - G «kh HH TH TH ng nh HH 19 3.4.2 _ Quy định cv HH HH TH TH ng ngư 203.4.3 Cấu trúc phân kênh của AXI - ¿2 52+2z+£Et£E+EEerkerrxrrkeres 213.4.4 Transaction OC ccccccccccccsssssccccesssceccesssssecccesssseeeccesseeeeeeesseeeeeeeees 23
3.4.5 Tramsaction ghhl <4 kg ngư 243.5 Các phương pháp cải tiễn bộ đồng xử lý dành cho các giải thuật mật mã
học 25
3.5.1 Custom instruction - Các lệnh mở rỘng -«+++s«++ss+++s+ 25
3.5.2 Khối ALU ghép đôi xử lý song song 2 lệnh 32-bits - 26
3.5.3 Khối chức năng tùy chỉnh (ASCON ROUND UNIT) 27Chương 4 THIẾT KE, CẢI TIEN VA HIỆN THỰC BO DONG XỬ LÝ RISC-V
304.1 Chi tiết thiết kế bộ đồng xử lý RISC-V ¿ 2¿©-+++cx+czs+rxesrseees 30
4.1.1 _ Thiết kế tong quát -¿- +¿©c++E++EEt2EEEEtEEtEkerkerreerkrree 304.1.2 Thiết kế bộ đồng xử lý chỉ tiẾt -¿- 2 5¿252+cEc£E+Eerxerrsrrxrres 33
4.1.2.1 Khối Program COunIer - 2 2+++++c++E++E+Ezxzreee 334.1.2.2 _ Khối Instruction Memory 2-2 2 2+ 22+ £+£+E+zzzxeez 354.1.2.3 Khối giải mã lệnh : Controller Unit (Instruction Decode) 354.1.2.4 Register File HH TH TH HH key 364.1.2.5 Branch Control : Khối xử lý điều kiện cho các lệnh rẽ nhánh 384.1.2.6 Khối ALU -+-c+E++ESEEEEEEEEEEEEEErrrrrrrrrrreee 394.1.2.7 Khối Data Memory - 2 2+++++E++E++E2EE+EzErrrrrerreee 41
Trang 54.1.2.8 Khối Load Control và khối Store Control - -=s=szszs+sz 42
4.2 _ Các cải tiến dành cho bộ đồng xử lý RISC-V -¿ -z©5+c5ze- 46
4.2.1 DUAL~-ALU - khối ALU ghép đôi - 2-2 2+sz+c+szxzez 46
4.2.2 Crypto ALU - khối ALU cho các lệnh tùy chỉnh mật mã học 48
4.2.2.1 _ Lệnh tùy chỉnh cho SparkÌe - + +s*+t£svxsereererrrereeres 49 4.2.2.2 _ Lệnh tùy chỉnh cho GIFT-COBB - 5255 sssssseeees 51 4.2.2.3 Lénh tùy chỉnh cho giải thuật ISAP 55c c+ccsccseres 53 4.2.2.4 _ Lệnh tùy chỉnh cho giải thuật Tiny Jambu - 54
4.2.2.5 _ Lệnh tùy chỉnh cho Photon .ccccceessesseeseeeneceeeeeeeeeeseeeeeeeeaees 56 4.2.2.6 _ Lệnh tùy chỉnh cho giải thuật Romulus - - «- «+ 57
4.2.3 Khối chức năng tùy chỉnh - ASCON ROUND -2- 5-52 58 4.3 Hién thực trên phần cứng FPGA wo ecceseescsseessssessessessessesesesessessesessesees 59 4.3.1 Hệ thống tổng quat cecccccecccscssessesssssessessessessessesessesessesssssssssseeseees 59 4.3.2 _ Hiện thực Block Design trên kit Zynq UltraScale+ MPSoC ZCU102 62 4.3.2.1 Bộ đồng xử lý RISC-V được đóng gói thành CGRA IP 62
4.3.2.2 _ Các IP của Xilinx được dùng dé thiết kế Block Design 63
4.3.3 Khối phân tích logic tích hợp (Integrated Logic Analyzer) 65
Chương 5 MÔ PHONG, KIEM CHUNG VA ĐÁNH GIA KET QUẢ 67
5.1 Kich bản kiểm chứng kết quả mã hóa 2-2 2 22+ £+£z+£zzz+se2 67 5.2 Mô phỏng và kiểm chứng kết quả trên phần mềm Vivado - 69
5.3 Kiểm chứng kết quả sau khi hiện thực trên phần cứng FPGA 72
5.4 Đánh giá và so sánh kết quả - 2-2 + + E+EE+EE+EE+EE+EEEEE+EEzErrerrerree 74 Chương 6 KẾT LUẬN VÀ HƯỚNG PHAT TRIỀN -. ¿¿©+¿ 79
Trang 66.1 Kếtluận chư6.2 Hướng phát triển -¿ 2¿-++2++2E+tEEEEEEEEEEEEEESrkrrrkrrrrrrrree
PHU LUC: THÊM LENH TÙY CHỈNH VÀO TRÌNH BIEN DỊCH GCC CUA
Trang 7DANH MỤC HÌNH
Hình 3.1: Các dạng lệnh của kiến trúc RISC-V -¿- + c x+k+xEt+EeEEESEeEkrxsrerxrkrrx 9Hình 3.2: Dạng lệnh I của các phép dịch ĐI( - - «- < + + **+kE+seeEseeeeeeeeesees 10
Hinh 68080 ¡gi i00017 .4 10
Hình 3.4: Dinh dạng lệnh JJAAÌ - - G22 E3 E231 391 1331 13111111 11x vn rưy lãi Hình 3.5: Dinh dạng lệnh JALR - G2 32211121113 1181111111111 ket 11 Hình 3.6: Dinh dạng các lệnh Branch ee esceeseeseeecceseeeeeeseeeseeseeeeeeeeeseeeeeeseeeees 12
Hình 3.7: Dinh dạng lệnh Load/Store - G6 S191 91119 111911 9 1v ng 12 Hình 3.8: Quá trình mã hóa của giải thuật ASCON St ssseireirerres 14Hình 3.9: Mang 2 chiều biểu diễn trạng thái mật mã GIFT64 : 14Hình 3.10: Lớp thay Sub(C@ÏÏS - <5 + 1s 1 E0 9v ng ng 15Hình 3.11: Cau hình Slice của PermBiits -¿- 5 5c ©522+2xz+xerxerxeerxerxee 15
Hình 3.12: Sơ đồ khối hệ thống giao tiếp giữa Main CPU và RISC-V Co-Processor
¬ đ£“ € “6 Số ẽố hố 19
Hình 3.13: Interface giữa BUS 1 (Master) va BUS 0 (Slave) -«++ 21 Hình 3.14: Các kênh ghi va đọc của AXI oo ceceecccsceseesseceseeeseeeeseeeeeeeeaeeeseeenaeeaes 22 Hình 3.15: Transaction đỌC - c2 1 1111162211 11111 931111111921 111g ve 24 Hình 3.16: Transaction øØÏ1 - - ¿óc E3 1E 210118211 83111 911 9111 911 91 1 ng ng 25
Hình 3.17: Khả năng xử lý song song 2 luồng dit liệu của ALU ghép đôi 27
Hình 3.18: Khối tính toán ROUND ASCON 2-52 25222Ecctccverkerrrrrrervee 29Hình 4.1: Tổng quan kiến trúc RISC-V €Ore 2-2 2 22+ ++E++E++E++E+zxzzreee 30Hình 4.2: Mô hình FSM của khối controller - 5: s¿©s+2+2x++s++zx+zx+zzxezsez 32Hình 4.3: Mô tả chi tiết kiến trúc pipeline 5 tang của bộ đồng xử lý RISC-V 33Hình 4.4: Thanh ghi Program COUTIV€T 5 5 119108391 E911 19 11 9x vn ke 34 Hình 4.5: Instruction IDeCO(€T <5 5 E2 11113308911 910 9101 9v vn ng ệc 35
Hinh 4.6: Register File 0n e 37 Hinh 0 g8) (000000 38 Hinh 4.8: ALU 0 .15 39
Hình 4.9: Data Memory - eee 11 E1 93 1 TH TH HH41
Trang 8Hình 4.10: Data Memory chỉ lưu các word 64 DI( - 6-5 ssesersersree 43
Hinh V280 000i 0n e 45
Hình 4.13: Load Store doc 1 byte từ Data MemOrV - 55+ sssseseerserres 46
Hình 4.14: Khối ALU ghép đôi 32 bit 2-2 22£+S£+E£+EE+E£EE+EzEezrerrerreee 46
Hình 4.15: Data Memory ghép đồÔI - - c6 2c S112 E S13 1 91111 11 ngư47
Hình 4.16: Quá trình thiết kế các lệnh tùy chỉnh ssesccsseeeeessseeessseeeesneeeesneeesees 48Hình 4.17: Khối chức năng tùy chỉnh ASCON ROUND 2- 2 2 z+cz+s+ 58Hình 4.18: Hiện thực phần cứng FPGA của thiết kế ¿2 s+25+2sscse2 60Hình 4.19: Quá trình trao đổi dit liệu của bộ đồng xử lý -z s52 61
Hình 4.20: Tổng quan thiết kế Block Design 2-2 25s s2++£++£+zxzzzzzzzez 62
Hình 4.21:Phân cấp thiết kế của CGRA IP - ¿2 5£ ©522£E+£E£+EvExerxerrxervee 63Hình 4.22: AXI SmartConnect trên Block Design - - 5555 <++£+sc£+ee+sx 63 Hình 4.23: Zynq UltraScale+ trên Block DDesIgn -. -««++ss£++sex++eexeeereeess 64
Hình 4.24: System ILA trên Block Design - 5 5+ *++vE+seeeeeseeeresees 64Hình 4.25: Hệ thống truyền tín hiệu cho ILA dé giám sát - 2-22 5¿: 66Hình 5.1: Kịch bản kiểm chứng kết qua mô phỏng và phần cứng thực tế 68Hình 5.2: Các dữ liệu đầu vào cho giải thuật GIFT-COFB -«<+<<<s++ 69Hình 5.3: Hàm main của GIE T-COIFB - óc 1E 91v ng ngư 70
Hình 5.4: Kết quả mã hóa của giải thuật được in ra - 2-2 s+ss+cz+ce+szxzxs 70
Hình 5.5: Script biên dich mã nguồn C cho giải thuật -2- 2 5255225525522 71Hình 5.6: Mô phỏng giải thuật GIFT-COFB và đọc ra kết qua mã hóa 72Hình 5.7: Xử lý dữ liệu đầu vào -¿- 2+ +2+++Ek£EE2EEEEE 2122121211211 re 72Hình 5.8: Truyền dữ liệu cho CGRA IP và các tín hiệu điều khiến 73Hình 5.9: Đợi tín hiệu Finish - << 3332211111113 2311111135111 1 1185111 re 73Hình 5.10: Kết quả được in ra màn hình 2-2 +++++++zx++zx+zzxezxxrseeex 74Hình 5.11: Biéu đồ so sánh hiệu năng của ARM A53 và bộ đồng xử lý RISC-V 74Hình 5.12: Clock summary và Timing Summary của thiết kế - 5: 78
Trang 9DANH MỤC BANG
Bảng 3.1: Tập thanh ghi của kiến trúc RISC-V 2 2 2+z+E++E+EerErErrrrrreee 8Bảng 3.2: Hiệu quả khi thêm lệnh tùy chỉnh .- 55+ + + ++skEsseeeeeessees 26Bảng 4.1: Các tín hiệu của tổng thể thiết kế - 2-22 5225¿2c+++xtzzxecxeerseees 30Bảng 4.2: Các tín hiệu của khối Controller 2- 2: +2©s++x++£x++zx+zzxzzxezzxez 32Bảng 4.3: Các tín hiệu của thanh ghi PC - 2 + 3+ E3 E*vESeeereeeerreerreere 34
Bang 4.4: Các tín hiệu của khối Instruction MemOry - 2-2 2+sz+sz25e2s++‡ 35 Bảng 4.5: Các tín hiệu của khối Instruction Decođer - 2-2 22sz+sz+sz+ss 36
Bảng 4.6: Các tín hiệu của khối Register File 2-52 5++cx+2zx2zxrzrxerrsee 37Bang 4.7: Các phép so sánh của Branch COnIrỌ 5 << 55+ << £+£+seserezees 38Bảng 4.8: Các tín hiệu của khối ALU 2 2£ ©5£+££££E+£E2EEtEE+Eerxerxerrrerxee 39Bang 4.9: Các phép tính cơ bản của khối ALU 2-2 2 252222222222 40Bang 4.10: Các tín hiệu của Data MeImOry - . + eee *S2* 2< £*EskEsereerserreree 42
Bảng 4.11: Các lệnh store và load được hỗ trỢ +5 + 2s +£+£+££££zx+xzzxzxers 42
Bang 4.12: Các tín hiệu của khối Store Control - 2-2 2 2 £+££+££+££+se2 ++š 44Bang 4.13: Tín hiệu khối Load ContrOl -2- 2: 2 5£ £+E£+E£2E£EE£EE+E+zEzEezzeee 45Bang 5.1: Kết quả thơng lượng từng giải thuật - 2-52 2 22S£+££2£22£2£zzzzez 75Bảng 5.2: Hiệu năng giải thuật ASCON khi so với những nghiên cứu khác 76Bảng 5.3: Kết quả hiện thực phần cứng trên ZCU102 ¿ ¿-5¿©cs+25sz255+2 76Bảng P.1: Các cú pháp dé mơ tả dịnh dang lệnh tùy chỉnh 2-2-5: 82Bảng P.2: Các trường MATCH và MASK cho sigmaQ - << s++sesssss 82 Bảng P.3: Các trường MATCH va MASK cho sigmaƠ - << ++<c++scsssss 82
Bảng P.4: Mơ tả lệnh sigmaO trong TISCV-ODC.C 5 5 5+ ** + vserseeerse 83
Bảng P.5: Chèn lệnh tùy chỉnh vào mã nguồn C của thiết kế - 2: 83
Bảng P.6: hai lệnh sigma0 và sigmal đã được biên dịch thành cơng 84Bảng P.7: Các lệnh tùy chỉnh được thêm vào khối Crypto ALU -. 85
Trang 10DANH MỤC TU VIET TAT
RISC-V Reduced Instruction Set Computer Five
ALU Arithmetic Logic Unit
AES Advanced Encryption Standard
SHA Secure Hashing Algorithm
IP Intellectual Property
ARM Advanced RISC Machines
DMA Direct Memory Access
PIO Peripheral Input / Output
AXI Advanced eXtensible Interface
FPGA Field Programmable Gate Array
RTL Register Transfer Level
IOT Internet of Things
LWC Lightweight Cryptography
ISA Instruction Set Architecture
RFID Radio Frequency Identification
CPU Central Processing Unit
SOC System on Chip
NIST National Institute of Standards and Technology SPN Substitution-Permutation Network
PL Programmable Logic
PS Processing System
Trang 11TÓM TẮT KHÓA LUẬN
Khóa luận này trình bày quá trình thiết kế và hiện thực bộ đồng xử lý mật mã dựatrên kiến trúc RISC-V với thông lượng cao, nhằm phục vụ cho các ứng dụng mật mãnhẹ Mục tiêu chính của đề tài là phát triển một bộ đồng xử lý có khả năng thực thihiệu qua các giải thuật mật mã học nhẹ như ASCON, GIFT-COFB, ISAP, SPARKLE
và TINY JAMBU Dé đạt được mục tiêu này, nhiều cải tiến đã được thực hiện, baogồm việc tích hợp các lệnh tùy chỉnh và khối ALU ghép đôi nhằm tăng cường khảnăng xử lý song song và khối tùy chỉnh chức năng cho hàm Round của họ giải thuậtASCON Ngoài ra, giao thức AXI được sử dụng để truyền dữ liệu giữa bộ đồng xử
lý và hệ thống chính Thiết kế đã được mô phỏng và kiểm chứng trên phần cứngFPGA, cho thấy hiệu năng tốt hơn so với các giải pháp hiện có Kết quả thực nghiệm
và đánh giá cho thấy bộ đồng xử lý RISC-V này đáp ứng được các yêu cầu về hiệu
suât và hiệu quả trong các ứng dụng mật mã nhẹ.
Trang 12Chương 1 GIỚI THIEU
1.1 Lý do chọn đề tài
Trong bối cảnh phát triển nhanh chóng của Internet of Things (IoT), các thiết
bị kết nối ngảy càng trở nên phổ biến và đa dạng (bao gồm các cảm biến nhiệt độ, độ
am, các máy nhận dạng khuôn mặt, micro ghi lại giọng nói) Tuy nhiên, một vấn đềnổi cộm là bảo mật của các hệ thống và thiết bị oT thường không đủ mạnh, dễ dàngtrở thành mục tiêu của các cuộc tấn công mạng và đánh cắp dữ liệu Nguyên nhânchủ yếu nằm ở sự hạn chế về tài nguyên phần cứng, tốc độ xử lý tính toán kém vàyêu cầu năng lượng thấp của các thiết bị này Các bộ vi xử lý trong các thiết bị IoTthường không đủ mạnh để triển khai các giải thuật mật mã mạnh mẽ, dẫn đến việc sửdụng các giải pháp bảo mật đơn giản và dé bị tắn công Điều này tạo ra một lỗ hồngbảo mật nghiêm trọng, khiến các thiết bị loT dé bị xâm nhập va dữ liệu nhạy cảm biđánh cắp Vì vậy cần có những giải pháp tối ưu phần cứng cho các hệ thống IoT này,
tăng cường khả năng xử lý của chúng cho các giải thuật mật mã học.
Các giải thuật mật mã học nhẹ (lightweight cryptography) được thiết kế đặcbiệt để hoạt động hiệu quả trên các thiết bị có tài nguyên hạn chế, như các thiết bịIoT Những giải thuật này tiêu tốn ít sức mạnh tính toán và năng lượng hơn so với
các giải thuật mật mã truyền thống, nhưng vẫn đảm bảo mức độ bảo mật đủ dé bảo
vệ dữ liệu nhạy cảm Điều này làm cho chúng trở thành giải pháp lý tưởng cho cácthiết bị IoT, giúp cân bằng giữa hiệu suất, bảo mật và tiêu thụ năng lượng Bằng cách
sử dụng các giải thuật mật mã học nhẹ, chúng ta có thể tăng cường bảo mật cho cácthiết bị loT mà không gây ra gánh nặng quá lớn về tài nguyên phần cứng hoặc nănglượng.
Kiến trúc RISC-V được chọn để thiết kế bộ đồng xử lý tăng tốc các giải thuậtmật mã học nhẹ nhờ vào tính mở, linh hoạt và khả năng tùy chỉnh cao RISC-V làmột kiến trúc mã nguồn mở, cho phép các nhà thiết kế dé dàng mở rộng và tối ưu hóa
cho các ứng dụng cụ thể như mật mã học nhẹ Hơn nữa, RISC-V hỗ trợ một loạt các
tùy chọn phân cứng và phân mêm, giúp tôi ưu hóa hiệu suât và giảm tiêu thụ năng
Trang 13lượng Khả năng tích hợp dé dàng với các khối phần cứng tùy chỉnh giúp tăng cườngbảo mật mà không làm tăng đáng kế chi phí hoặc phức tạp hóa thiết kế.
FPGA (Field-Programmable Gate Array) là một lựa chọn lý tưởng cho việctriển khai và thử nghiệm bộ đồng xử lý RISC-V cho các giải thuật mật mã học nhẹ.FPGA cho phép thiết kế và điều chỉnh phần cứng một cách linh hoạt và nhanh chóng,giúp giảm thời gian phát triển và tối ưu hóa hiệu năng hệ thống Khả năng tái cấu
hình của FPGA cho phép điều chỉnh kiến trúc để đạt được hiệu suất tối ưu cho các
giải thuật mật mã, đồng thời đảm bảo mức tiêu thụ năng lượng thấp Thêm vào đó,
việc sử dụng FPGA giúp giảm chỉ phí và rủi ro so với việc sản xuất ASIC, làm cho
nó trở thành công cụ mạnh mẽ cho nghiên cứu và phát triên đê tài.
1.2 Mục tiêu đề tài
Một trong những mục tiêu chính của đề tài là cải tiến khối Arithmetic LogicUnit (ALU) của bộ xử lý RISC-V đề có thé xử lý song song hai phép tính 32-bit Việcnày nhằm tăng gấp đôi thông lượng xử lý, giúp nâng cao hiệu suất xử lý chung của
bộ vi xử lý, đặc biệt là khi thực hiện các phép toán liên quan đến mật mã học nhẹ.Bằng cách này, bộ xử lý có thê thực hiện nhiều phép tính cùng lúc, giảm thời gian xử
lý và tăng khả năng đáp ứng của hệ thống
Mục tiêu thứ hai là tích hợp vào bộ xử lý một khối ALU chuyên biệt dành cho
các phép tính mật mã Khối ALU này sẽ chỉ thực hiện các phép toán đặc trưng cho
từng giải thuật mật mã học trên bit, như XOR, AND, OR, và các phép toán dịchchuyền bit Điều này cho phép tối ưu hóa hiệu suất của các giải thuật mật mã học nhẹ,khi mà các phép toán này thường chiếm phần lớn thời gian xử lý
Một mục tiêu quan trọng khác là thêm vào bộ xử lý RISC-V một khối xử lychức năng chuyên biệt dé xử ly toàn bộ các phép hoán vi của ho giải thuật ASCON.ASCON là một trong những giải thuật mật mã học nhẹ được thiết kế cho các thiết bị
có tài nguyên hạn chế Khối xử lý này sẽ giúp tối ưu hóa và tăng tốc độ thực hiện cácphép hoán vị quan trọng trong ASCON, từ đó cải thiện hiệu suất tổng thể của các ứngdụng sử dụng giải thuật này.
Trang 14Mục tiêu tiếp theo của dé tai là hiện thực hóa thiết kế trên kit Zynq UltraScale+MPSoC ZCU102 Kit ZCU102 là một nền tảng mạnh mẽ và linh hoạt, cho phép triểnkhai và kiểm chứng các cải tiến của bộ xử lý RISC-V trong môi trường thực tế Việchiện thực trên kit này không chỉ giúp kiểm tra và đánh giá hiệu suất của các cải tiếnmột cách trực quan và chính xác, mà còn chứng minh tính khả thi của thiết kế trong
các ứng dụng thực tiễn.
Cuối củng, đề tài sẽ chứng minh được độ hiệu quả của các cải tiễn bằng cách
so sánh kết quả xử lý trước và sau khi tích hợp các thay đổi Điều này sẽ được thựchiện bang cách do lường các chi số hiệu suất như thời gian xử lý, thông lượng, và tiêuthụ năng lượng, chu kỳ thực Qua đó, đề tài sẽ đưa ra được những bằng chứng cụ thể
về hiệu quả của các cải tiến đối với bộ xử lý RISC-V khi thực hiện các giải thuật mật
mã học nhẹ.
1.3 Giới hạn đề tài
Bộ đồng xử lý sẽ hoạt động ở tốc độ clock có tần số là 250MHz Đề tài sẽ hỗtrợ 5 giải thuật mật mã học nhẹ bao gom: GIFT-COFB, ASCON, ISAP, SPARKLE,Tiny Jambu và 2 giải thuật mật mã học khác là SHA256 va AES Bộ đồng xử lý sẽchỉ hỗ trợ tập lệnh RV32-I và RV64-I là hai tập lệnh liên quan tới số nguyên, đồngnghĩa với việc bộ đồng xử lý sẽ không hỗ trợ tính toán các phép tính dau cham
động, các phép tính nhân, chia và chia lấy dư Đề tài sẽ tập trung vào việc thiết kế
phân cứng cho bộ đông xử lý và áp dụng các cải tiên.
1.4 Đối tượng nghiên cứu
- Thiết kế phần cứng cho các giải thuật mật mã học nhẹ và các thuật toán mật mãkhác.
- Bộ đồng xử lý dựa trên kiến trúc tập lệnh RISC-V (RV32-I và RV64-D.
- Hệ thống sẽ hoạt động trên kit Zynq UltraScale+ MPSoC ZCU102
Trang 15Chuong 2 TONG QUAN
Nam 2020, Stefan Steinegger va Robert Primas đã công bố nghiên cứu [1] vềmột bộ xử ly RISC-V mà trong đó khối ASCON-p (khối nhân tính toán hoán vị vàcũng là khối tính toán chính của gia đình giải thuật ASCON) được gan liền với khốiRegister File Khối ASCON-p này đã giúp tăng tốc độ xử lý cho các giải thuật họASCON lên tới 50 lần so với khi chưa tích hợp khối ASCON-p [1] Cùng với đó việcgan lién khối ASCON-p với tập thanh ghi Register File giúp loại bỏ thời gian truyxuất bộ nhớ, khi giờ đây Register File đã trực tiếp truyền 320-bit trạng thái mật mãcho khối ASCON-p này [1]
Cùng năm 2020, Fabio Campos cùng các cộng sự đã công bố nghiên cứu [4]với mục tiêu so sánh việc triển khai và tối ưu ngôn ngữ Assembly và ngôn ngữ Cđược tối ưu hóa trên thuật toán mật mã học nhẹ trên kiến trúc RISC-V, cùng với đó
là tận dụng khả năng tối ưu trình biên dịch đề cải thiện hiệu suất và tối ưu bộ nhớ
Bài nghiên cứu sử dụng bo mạch cõ sẵn bộ xử lý RISC-V hỗ trợ bộ lệnh RV32IMAC,
tên là HiFivel của SiFive Nghiên cứu chỉ tập trung về mặt triển khai về mặt phầnmềm và thực hiện đo đạc, mô phỏng và không đưa ra các cải tiến cụ thé về mặt phầncứng cụ thê.
Vào năm 2023, Hao Cheng cùng các cộng sự đã công bố một nghiên cứu [5]
về thử nghiệm tốc độ của các giải thuật mật mã học nhẹ từ dự án chuẩn hóa mật mãnhẹ của NIST (NIST-LWC) trên bộ xử lý RISC-V Nghiên cứu đưa ra các thửnghiệm khi áp dụng phần mở rộng “Bit Manipulation Extension” (Zbkb và Zbkx) củakiến trúc RISC-V (một phần tập lệnh mở rộng cho các phép tính mật mã học), thêmcác lệnh mở rộng của các giải thuật Tuy chu kỳ thực thi của các giải thuật đã cónhững cải thiện khi giảm được từ 1.4 đến — 270 lần tổng số chu kỳ so với trước khi
áp dụng các cải tiến Tuy nhiên, nghiên cứu nhấn mạnh việc các giải thuật được tối
ưu theo hướng phần mềm (như các giải thuật Elephant, PHOTON, Romulus) có hiệunăng tốt hơn các giải thuật được tối ưu theo hướng phần cứng (như ASCON,
Trang 16SPARKLE, XOODYAK) [5] Như vậy việc ứng dụng cho các thiết bị có giới hạn vềphần cứng vẫn chưa được đặt làm trọng tâm.
Trang 17Chương 3 CƠ SỞ LÝ THUYET
3.1 Giới thiệu kiến trúc tập lệnh RISC-V
3.1.1 Tổng quan kiến trúc RISC-V
Trong chương này, kiến trúc pipeline 5 tầng của RISC-V và kiến trúc cơ bảnRV32-I và RV64-I sẽ được mô tả Kiến trúc RISC-V là một loại ISA mở, áp dụngcác nguyên lý thiết kế của RISC (tương tự với MIPS) mà bất kỳ cơ sở nghiên cứuhoặc doanh nghiệp nào cũng có thé triển khai, sửa đổi cũng như mở rộng mà không
yêu cầu giấy phép hay yêu cầu phí bản quyền (khác biệt so với MIPS, ARM và x86)
Một nguyên tắc cốt lõi của ISA là tính mô-đun: một ISA cơ bản dùng cho mục đích
chung có thé được bổ sung bằng một tập hợp các phần mở rộng chuyên dụng, chuẩn
hoặc không chuẩn (tức là tùy chỉnh) Những tính năng này kết hợp với một cộngđồng xung quanh sẵn sàng hỗ trợ và sự có sẵn của cơ sở hạ tầng hỗ trợ như chuỗicông cụ biên dich, có da dang nhiều phiên bản RISC-V tôn tại (thường là mã nguồnmở) làm cho kiến trúc tập lệnh RISC-V trở nên ngày càng càng phổ biến trong cácnghiên cứu và doanh nghiệp.
Trong phạm vi của khóa luận này, nhóm sé tập trung vào ISA căn ban 32-bit
có tên RV32GC và ISA căn ban 64-bit có tên RV64GC Trong RV32GC, kiến trúc
sử dụng tập 32 thanh ghi với mỗi thanh ghi có độ rộng là 32 bit Bảng 3.1 sau sẽ
phân loại, mô tả vai trò của từng nhóm thanh ghi
Dé dễ sử dụng, các thanh ghi cũng có tên gọi khác zero (x0) được kết nối cứngvới gia trị 0; ra (x1) tương ứng với địa chi trả về; sp (x2) tới con trỏ ngăn xếp; gp (x3)tới con trỏ toàn cục; tp (x4) tới con trỏ luồng a0-a7 (x10-x17) là các đối số hàm vớia0 và al cũng là giá trị trả về s0-s11 (x8-x9, x18-x27) là các thanh ghi được lưu trữ
Cuối cùng, t0-t6 (x5-x7, x28-x31) là các thanh ghi tạm thời
Trang 18Bảng 3.1: Tập thanh ghi của kiến trúc RISC-VTên thanh ghi Tên ký hiệu Mô tả
X0 Zero Luôn ở giá tri 0
XI Ra Địa chỉ trả về
X2 Sp Con tro stack
X3 Gp Con tro toan cuc
X4 Tp Con trỏ thread
X5 TO Thanh ghi tam / luu dia
chi tra véX6-7 TI-2 Thanh ghi tạm
Xã SO/fp Con tro frame
X9 S1 Thanh ghi lưu trữ
X10-11 A0-1 Tham số / giá trị trả về
X12-17 A2-7 Tham số
X18-27 S32-11 Thanh ghi lưu trữ
X28-31 T3-6 Thanh ghi tam
Đề dé sử dung, các thanh ghi cũng có tên gọi khác Zero (x0) được kết nỗicứng với giá trị 0; ra (x1) tương ứng với địa chỉ trả về; sp (x2) tới con trỏ ngăn xếp;
gp (x3) tới con trỏ toàn cục; tp (x4) tới con trỏ luồng a0-a7 (x10-x17) là các đối sốham với a0 và al cũng là giá trị trả về s0-s1 1 (x8-x9, x18-x27) là các thanh ghi đượclưu trữ Cuối cùng, t0-t6 (x5-x7, x28-x31) là các thanh ghi tạm thời
Các thanh ghi được lưu trữ là s0-s1 1 trong khi các thanh ghi có thé tự do sửa đôi cácđối số là a0-a7 và các thanh ghi tạm thời t0-t6 Loại bỏ các thanh ghi zero, ra, sp, gp
và tp, chúng ta có 27 thanh ghi 32-bit tự do có thể sử dụng
Trang 193.1.2 Các tập lệnh của kiến trúc RISC-V
Tập lệnh căn ban của RISC-V bao gồm bốn định dạng lệnh cốt lõi là R/1/S/U, nhưđược hién thị trong hình 3.1 Tat cả đều có độ dài cố định là 32 bit và phải được căn
chỉnh trên ranh giới bốn byte trong bộ nhớ Một ngoại lệ không căn chỉnh địa chỉhướng dẫn được tạo ra khi một nhánh được thực hiện hoặc một nhảy vô điều kiện nếu
địa chỉ đích không được căn chỉnh bốn byte Không có ngoại lệ không căn chỉnh lấyhướng dẫn được tạo ra cho một nhánh có điều kiện không được thực hiện
funct7 rs2 [tsi funct3 rd opcode Lénh R
imm[11:0] rsl funct3 rd opcode Lệnh I
imm[11:5] rs2 rsl funct3 imm[4:0] opcode Lénh S
imm[12] | imm[10:5] rs2 rsl func3 imm[4:0] imm[11] opcode LénhB
imm[31:12] rd opcode Lénh U
imm[20] imm[10:5] | imm[11] imm[19:12] rd opcode Lénh J
Hình 3.1: Cac dạng lệnh của kiến trúc RISC-VGiá tri immediate sẽ được gan nhãn imm|[x], là vi trí các bit của giá triimmediate được định nghĩa theo lệnh, dấu của giá tri nay sẽ được đặt ở bit cao nhấttức imm[31] Các trường địa chỉ thanh ghi bao gồm rsl, rs2, rd được có định vị trí ở
cả 4 dang lệnh, điều này giúp làm đơn giản hóa quá trình giải mã của lệnh
Ngoài 4 định dạng lệnh trên, ISA còn 2 dạng lệnh là B/J Sự khác biệt duy nhấtcủa lệnh B và S là lệnh B sửa dung bội số của 2 cho offset của các lệnh Branch Thay
vì dịch trái tất cả các bit trong giá trị immediate và được mã hóa trong lệnh nhưthường làm, các bit ở giữa (imm[10:1]) và bit dau được giữ ở vị trí cố định, trong khibit thấp nhất trong định dạng S (inst[7]) mã hóa một bit thứ tự cao trong định dạngB.
Tương tự, sự khác biệt duy nhất giữa các định dạng U va J là giá trị immediate
20 bit được dịch trái 12 bit dé tạo thành giá trị trực tiếp U va dich trái 1 bit để tạo
Trang 20thành giá trị trực tiếp J Vi trí các bit trong các tri immediate của định dạng U va Jđược chọn để tối đa hóa sự chồng chéo với các định dạng khác và với nhau.
| 1mm[{ 11:5] | imm[4:0] rsl | funct3 rd opcode
Hình 3.2: Dạng lệnh I của các phép dich bitNhư được mô tả trong hình 3.2, các phép dịch theo một hăng số được mã hóanhư một dạng đặc biệt của định dạng I-type Toán hạng cần được dịch nằm trong rsl,
và lượng dich được mã hóa trong 5 bit thấp nhất của trường I-immediate Loại dich
sang phải được mã hóa trong một bit cao của I-immediate SLLI là phép dịch trái
logic (số 0 được dịch vào các bit thấp); SRLI là phép dịch phải logic (số 0 được dịchvào các bit cao); và SRAI là phép dịch phải số học (bit dấu ban đầu được sao chép
vào các bit cao bị bỏ trồng)
đặt kết quả vào thanh ghi rd
10
Trang 21Đối với các phép tính giữa register-register, lệnh được giải mã theo định dạng
R Trong đó thanh ghi rs1 và rs2 mang giá trị nguồn cho phép tính, kết quả được lưuvào thanh ghi rd Trường funct7 và funct3 giúp phân biệt giữa lệnh ADD va SUB làhai lệnh cộng trừ có dấu
3.1.4 Các lệnh điều khiến
Tập lệnh RV32I chia các lệnh rẽ nhánh thành hai nhóm chính là lệnh rẽ nhánhkhông có điều kiện và lệnh rẽ nhánh có điều kiện Các lệnh rẽ nhánh không điều kiện
là các lệnh nhảy Ví dụ lệnh JAL (ump and link) sử dụng dạng lệnh J, trong đó dạng
lệnh J (mô tả trong hình 4.4) giải mã trường offset theo bội số của 2 Số offset được
mở rộng dấu và cộng vào thanh ghi PC dé ra địa chi đích của lệnh cần nhảy đến
31 30 21 @029 1211 76 0
imm[20] imm[lO:l] imm[ll] imm[l9:12] rd opcode
Hình 3.4: Định dạng lệnh JAL Lệnh jump and link register (JALR) được mã hóa theo định dang I Dia chỉđích sẽ được tính bằng cách mở rộng dau của trường offset (imm[11:0]), sau đó cộng
VỚI gia tri nam trong thanh ghi rsl dé tính ra địa chỉ của lệnh đích như được mô tatrong hình 3.5.
tương ứng Luu ý, các lệnh (định dạng lệnh được mô tả trong hình 3.6) BGT, BGTU,
BLE và BLEU có thể được tạo ra bằng cách đảo ngược các toán hạng của lệnh tương
ứng BLT, BLTU, BGE và BGEU.
11
Trang 2231 30 2524 20191514 12 11 8 6 0
imm[12] imm[10:5] rs2 | rsỈ funct3 imm[4:1] imm[11] opcode
Hình 3.6: Dinh dang các lệnh Branch3.1.5 Các lệnh trích xuất / lưu trữ dữ liệu
Các lệnh nhảy (branch) so sánh hai thanh ghi Lệnh BEQ và BNE thực hiệnnhảy nếu các thanh ghi rs1 và rs2 bằng nhau hoặc khác nhau tương ứng Lệnh BLT
và BLTU thực hiện nhảy nếu rs1 nhỏ hơn rs2, sử dụng so sánh có dấu và không dấutương ứng Lệnh BGE và BGEU thực hiện nhảy nếu rs1 lớn hơn hoặc bằng rs2, SỬdụng so sánh có dấu và không dấu tương ứng Lưu ý, các lệnh BGT, BGTU, BLE vàBLEU có thể được tạo ra bằng cách đảo ngược các toán hạng của lệnh tương ứngBLT, BLTU, BGE và BGEU.
31 20 19 15 14 1211 76 0
imm[1 1:0] | rs] funct3 | rd opcode LOAD
31 25 24 5(lL0ẾP” ii N I2II 76 0
1imm[ 1 1:0] rs2 rsl funct3 rd opcode STORE
Hình 3.7: Dinh dang lệnh Load/StoreHình 3.7 mô tả các lệnh tải và lưu chuyền giá trị giữa thanh ghi va bộ nhớ Các
lệnh tải được mã hóa theo định dạng I-type và các lệnh lưu được mã hóa theo định
dang S-type Địa chi byte hiệu quả được tinh bằng cách cộng thanh ghi rs1 với offset
12-bit được mở rộng dấu Các lệnh tải sao chép một giá tri từ bộ nhớ vao thanh ghi
rd Các lệnh lưu sao chép giá tri từ thanh ghi rs2 vào bộ nhớ.
Lệnh LW tải một giá trị 32-bit từ bộ nhớ vào rd Lệnh LH tải một giá trị 16-bit từ bộ
nhớ, sau đó mở rộng dấu thành giá tri 32-bit trước khi lưu vào rd Lệnh LHU tai mộtgiá tri 16-bit từ bộ nhớ, nhưng sau đó mở rộng không dấu thành giá tri 32-bit trướckhi lưu vào rd LB va LBU được định nghĩa tương tự cho các giá tri 8-bit.
Các lệnh SW, SH và SB lưu giá tri 32-bit, 16-bit và 8-bit từ các bit thấp của thanh
ghi rs2 vào bộ nhớ Đề đạt hiệu suất tốt nhất, địa chỉ hiệu quả cho tất cả các lệnh tải
và lưu nên được căn chỉnh tự nhiên cho mỗi loại dữ liệu (tức là trên địa chỉ chia hết
12
Trang 23cho 4 byte cho các truy cập 32-bit và chia hết cho 2 byte cho các truy cập 16-bit) ISA
cơ bản hỗ trợ truy cập không căn chỉnh, nhưng chúng có thé chạy rất chậm tùy thuộcvào cai đặt Hơn nữa, tải và lưu căn chỉnh tự nhiên được đảm bảo thực thi nguyên tử,trong khi tải và lưu không căn chỉnh có thể không thực thi nguyên tử và do đó yêucầu đồng bộ hóa bé sung dé dam bảo tính nguyên tử
3.2 Giải thuật mật mã học nhẹ
3.2.1 Khái niệm
Mục tiêu của mã hóa nhẹ (LWC) là cung cấp bảo mật và quyền riêng tư chocác ứng dụng có tài nguyên hạn chế, hệ thống nhúng, Internet vạn vật (IoT) và các hệ
thống vật lý mạng, bao gồm cả hệ thống Nhận dạng Tần số Vô tuyến (RFID), mạng
cảm biến không dây, mạng xe tự động, và chăm sóc sức khỏe Gần đây, NIST đã khởi
xướng quá trình tiêu chuân hóa các thuật toán mã hóa nhẹ.
Vi du, RFID là một trong những công nghệ day triển vọng, có ứng dụng trongquản lý chuỗi cung ứng, hộ chiếu điện tử, thẻ không tiếp xúc, và hệ thống nhận dạng.Trong các hệ thong RFID, có su căng thang giữa bao mật, tính linh hoạt và độ cứng
Chăng hạn, trong một hệ thống RFID thụ động, các thẻ lấy năng lượng từ đầu đọc.Nhiều thuật toán (ví dụ như AES) trong hệ thống như vậy đòi hỏi nhiều tài nguyên
Trong nhiều ứng dụng, một nguyên thủy mã hóa duy nhất không đủ để bảo vệ
toàn bộ hệ thống Do đó, hợp lý khi giả định rằng diện tích chip dành cho mục đích
bao mật nên được sử dụng cho mã hóa, xác thực, tính toán băm, va có thé là tạo bit
ngẫu nhiên giả, những chức năng cơ bản mà một giao thức bảo mật yêu cầu
3.2.2 ASCON
Phép hoán vi Ascon-p thao tác trên một trạng thái 320-bit, được tô chức thành
năm word 64-bit, bằng cách lặp lại áp dụng một hàm vòng (round function) [5]Hàm
vòng này về cơ bản là một Mạng Thay thế-Hoán vị (Substitution-PermutationNetwork - SPN) và bao gồm ba phan: (i) việc thêm một hăng số vòng 8-bit cr vàomột word trạng thai 64-bit, (ii) một lớp thay thế hoạt động trên năm word của trạng
13
Trang 24thái và thực hiện một phiên bản tuyến tính tương đương của hộp S (S-box) trong quátrình ánh xạ y của Keccak, va (iii) một lớp hoán vị bao gồm các hàm tuyến tính tương
tự như các hàm > trong SHA2 và được thực hiện trên từng từ trạng thái một cách độclập Hộp S ánh xạ năm bit đầu vào thành năm bit đầu ra và được áp dụng cho mỗi cộtcủa trạng thái, trong đó năm từ trạng thái được sắp xếp theo chiều dọc
Initialization Associated Data
Hình 3.8: Quá trình mã hóa của giải thuật ASCON Hình 3.8 mô tả các quá trình mã hóa của giải thuật ASCON chia thành 4 giai đoạn chính : Khởi tao (Initialization), Xử ly Dữ liệu Liên quan (Associated Data), Xử
lý Dữ liệu Gốc (Plaintext), và Hoàn tất (Finalization)
mảng 2 chiều, thứ tự bit là từ trên xuống, sau đó từ phải sang trái Cụ thé, mang 2
chiều được mô ta như trong hình 3.9
So ben - bg bg bo
Si ber -°: bg bs Dị
S= —
| Se ben big bg Ùạ
S53 bes - bir Ủy bg
Hình 3.9: Mang 2 chiều biểu diễn trang thái mật mã GIFT64
14
Trang 25Bước SubCells : Lớp thay thé của 16 (hoặc 32) hộp S-box 4-bit giống nhau cóthé được áp dung song song với các hoạt động sau đây, trong đó A, V và ¬ là các phéptoán logic AND, OR và NOT tương ứng như trong hình 3.10:
Hình 3.10: Lớp thay SubCellsBước PermBits: Sự hoán vi bit trong GIFT có tính chất đặc biệt là mỗi bit nằmtrong một slice i sẽ vẫn năm trong slice đó qua quá trình hoán vị này Bây giờ, cáchoán vi khác nhau 16-bit (hoặc 32-bit) được áp dụng cho từng Si độc lập Chúng ánh
xạ một bit nằm ở vị trí j trong slice i đến vị trí Pi(j) trong cùng một slice i Nhóm cungcấp trong Hình 3.11 là cấu hình các giá trị Pi(j) cho GIFT64
7 0 W 3 4 5 6 7 8 9 10 11 12 13 14 #15
Po(j) 0 12 8 4 1 13 9 5 2 14 10 6 3 lỗ 11 7 P,(j) 4 0 12 8 5 1 13 9 6 2 14 10 7 3 lỗ II P2(j) 8 4 0 12 9 5 1 18 10 6 2 14 11 7ï 15 3
15
Trang 26Đề thêm vào hăng số cho vòng, S3 được cập nhật như sau: $3 <93 @ 0x80XY
Trong đó các byte XY = 0UCs€4€ä3caC1€g.
3.2.4 ISAP
Đặc điểm phân biệt chính của gia đình ISAP là các biện pháp chống lại các
cuộc tấn công từ kênh phụ thông qua các biện pháp ở mức chế độ tích hợp sẵn Tuy
nhiên, từ quan điểm của nhân kernel, phiên bản chính Isap-A-128a sử dụng chính xácphép hoán vị Ascon-p giống như các thuật toán AEAD trong gia đình Ascon Isap-A-128a áp dụng phép hoán vi này trong một, sáu hoặc mười hai vòng, tùy thuộc vào(các) hoạt động cụ thể mà phép hoán vị này là một phần của Như đã được giải thíchtrong phan 3.2, Ascon-p hoạt động trên một trạng thái 320-bit và bao gồm (i) việcthêm hằng số vòng, (ii) một lớp thay thé dựa trên hộp S-box 5-bit được cắt thành cácbit, và (iii) một lớp tuyến tính thực hiện các phép XOR và xoay các từ 64-bit
3.2.5 SPARKLE
Phép hoán vi Sparkle bao gồm ba khối xây dựng cơ bản, bao gồm (i) một lớpphi tuyến được tạo thành từ sáu phiên bản song song của hộp ARX Alzette, (ii) mộtlớp lan truyền tuyến tính đơn giản, (iii) việc thêm bước đếm va hằng số vòng vàotrạng thái 384-bit Alzette có thé được coi là một khối mật mã nhỏ 64-bit hoạt động
trên hai từ 32-bit và thực hiện ba phép cộng và bốn phép XOR trong đó một trong
các toán hạng được quay một khoảng cé định, cùng với một phép cộng thông thường
và bốn phép XOR thông thường Trong khi đó, lớp tuyến tính, về bản chất, là mộtvòng Feistel với một hàm Feistel tuyến tính, tiếp theo là một hoán đổi giữa nửa trái
và nửa phải của trạng thái.
3.2.6 TINY JAMBU
Hoan vi (Permutation) dựa trên một bộ dịch chuyên phản hồi phi tuyén
128-bit, trong đó đường phản hồi bao gồm bốn phép XOR từng bit và một phép NAND
từng bit, đây là phép toán phi tuyến duy nhất của TinyJAMBU Người ta có thé dédàng xác định ham cập nhật trạng thái là thao tác quan trong nhất về hiệu suất; nó
16
Trang 27nhận trạng thái 128-bit và số vòng, cùng với một khóa làm đầu vào Tuy nhiên, TinyJambu không bao gồm một lịch trình khóa Hoan vi Pn khác biệt với các hoán vi củacác ứng viên khác như Ascon, Sparkle và Xoodyak bởi kích thước trạng thái cực kỳnhỏ và thực tế là nó có khóa (tức là, Pn là một hoán vị không công khai) Hơn nữa,
số vòng lớn hơn nhiều, điều này được bù đắp bằng một hàm vòng cực kỳ đơn giản(cơ bản chỉ là một dịch chuyền của trạng thái 128-bit cùng với năm thao tác bit)
3.2.7 Photon
Phép hoán vị PHOTON256 hoạt động trên trạng thái nội bộ có kích thước 256 bit,
được tổ chức thành một ma trận (8 x 8) phần tử của các nibble 4-bit Phép hoán vinày giống SPN, bao gồm 12 vòng, mỗi vòng áp dụng 4 hàm vòng: đó là AddConstant,SubCells, ShiftRows, và MixColumnsSerial S-box 4-bit của PRESENT được sử
dụng trong SubCells; trái ngược với hàm vòng MixColumns cua AES,
MixColumnsSerial được tối ưu hóa đặc biệt đề tạo điều kiện thuận lợi cho việc ápdụng nối tiếp các phép toán trong F24
3.2.8 Romulus
Skinny-128-384 là một mã khối có thê điều chỉnh dựa trên SPN sử dụng một S-boxgọn nhẹ, một lớp khuếch tán rất thưa, và một lịch trình khóa rất nhẹ Do biên độ bảomật cao của Skinny, các nhà thiết kế Romulus đã quyết định sử dụng một biến thể
Skinny với số vòng giảm, cụ thé là 40 thay vì 56 Skinny-128-384 hoạt động trên mộttrạng thái nội bộ có kích thước 128 bit, có thé được xem như một ma trận (4 x 4) phần
tử của byte, tương tự như AES Hàm vòng bao gồm năm thao tác theo thứ tự sau:SubCells, AddConstants, AddRoundTweakey, ShiftRows, và MixColumns SubCells
áp dụng một S-box 8-bit, có thé được triển khai hiệu quả trong phan cứng, cho mỗibyte của trạng thái Thao tác AddConstants thực hiện phép XOR một số hăng số phụthuộc vào vòng tới cột đầu tiên của trạng thái AddRoundTweakey trích xuất tám byte
từ trạng thái tweakey và thực hiện phép XOR chúng với trạng thái, trong đó các byteđược hoán vị và cập nhật băng các LFSR đơn giản ShiftRows xoay các byte củatrạng thái theo hàng sang phải lần lượt bởi 0, 1, 2, và 3 vị trí, tương tự như phép biến
17
Trang 28đổi ShiftRows của AES Cuối cùng, MixColumns nhân mỗi cột byte của trạng tháivới một ma trận nhị phân.
3.2.0 Grain128-AEAD
Grain-128a dựa trên (một biến thé của) mã dòng "nguyên ban" Grain, mã này từng làmột ứng viên của cuộc thi eSTREAM và được chọn vào danh mục cuối cùng củaeSTREAM Kernel là một hàm tính toán một từ 32-bit của dòng khóa bằng cách sửdụng một trang thái nội bộ có kích thước 256 bit Trang thái này bao gồm một thanhghi dich phan hồi tuyến tính (LFSR) 128-bit và một thanh ghi dịch phản hồi phi tuyến(NFSR) 128-bit Kernel bao gồm ba hàm con chính: một hàm dé cập nhật LFSR (gọi
là hàm f), một hàm dé cập nhật NFSR (gọi là hàm g), và một hàm dé tính toán từ đầu
ra 32-bit (gọi là hàm h).
3.3 Bộ Đồng Xử Lý
Bộ đồng xử lý là một bộ xử lý máy tính được sử dụng dé bổ sung các chứcnăng của bộ xử lý chính (CPU) Các hoạt động được thực hiện bởi bộ đồng xử lý cóthé là số hoc dấu phây động, đồ họa, xử lý tín hiệu, xử lý chuỗi, mật mã học hoặc
giao tiếp I/O với các thiết bị ngoại vi Bằng cách giảm tải các tác vụ đòi hỏi nhiều xử
lý từ bộ xử lý chính, các bộ đồng xử lý có thể tăng tốc hiệu suất hệ thống Bộ đồng
xử lý cho phép một dong máy tính được tùy chỉnh, do đó khách hàng không cần thêm
hiệu suât sẽ không phải trả tiên cho nó.
Bộ đồng xử lý khác nhau về mức độ tự chủ của chúng Một số (chẳng hạn như
FPU) dựa vào sự điều khién trực tiếp thông qua các lệnh của bộ đồng xử lý, đượcnhúng trong luồng lệnh của CPU Những bộ khác là các bộ xử lý độc lập, có khả nănglàm việc không đồng bộ; chúng vẫn không được tối ưu hóa cho mã mục đích chunghoặc không có khả năng làm điều đó do bộ lệnh hạn chế tập trung vào việc tăng tốccác tác vụ cu thé Thông thường, các bộ này được điều khiển bởi truy cập trực tiếp
bộ nhớ (DMA), với bộ xử lý chủ (CPU) xây dựng một danh sách lệnh.
18
Trang 29Hình 3.12: Sơ đồ khối hệ thống giao tiếp giữa Main CPU và RISC-V Co-Processor
Hình 3.12 mô tả tổng quan bộ đồng xử lý dựa trên RISC-V chuyên dành cho
ứng dung mật mã học, có thé giao tiếp với một bộ xử lý chính khác trên hệ thống
SoC Bộ xử lý trung tâm chính (Main CPU) giao tiếp với bộ đồng xử lý RISC-V thôngqua giao thức AXI (Advanced eXtensible Interface).
3.4 Giao thức AXI được dùng để truyền dữ liệu cho bộ đồng xử lý RISC-V
3.4.1 Khái niệm
AXI (Advanced eXtensible Interface) là một trong các giao thức BUS (BUS protocol) trong họ AMBA (Advanced Microcontroller Bus Architecture) được phat
triển bởi hãng ARM Giao thức AXI được sử dung phổ biến vi day là giao thức mở,
có nhiều đặc điểm hỗ trợ các hệ thống hiệu năng cao (high-performance) và tần sốcao (high-frequency) Những đặc điểm này gồm:
(1) AXI tách riêng pha truyền địa chi (address), thông tin điều khiển (control)
với pha truyền đữ liệu (data)
(2) Hỗ trợ việc trao đôi dữ liệu unaligned và hỗ trợ write strobe
(3) Hỗ trợ các transaction theo cơ chế burst và chỉ cần phát địa chỉ đầu tiên của
burst
19
Trang 30(4) Tach riêng kênh dữ liệu đọc (read) và kênh dữ liệu ghi (write)
(5) Hỗ trợ phát nhiều địa chỉ chồng lấn (multiple outstanding)
(6) Các transaction có thể hoàn thành không theo thứ tự (out-of-order)
(7) Cho phép chèn thêm các tầng thanh ghi giúp timing của BUS nói riêng và
của hệ thống tốt hơn
3.4.2 Quy định
Giao thức AXI (Advanced eXtensible Interface) đóng vai trò quan trọng trong
việc định nghĩa chuẩn giao tiếp giữa các thành phan trong hệ thống SoC (System onChip) Giao thức này quy định các chuẩn giao tiếp giữa một master và interconnect(bus), một slave va interconnect (bus), cũng như giữa một master và một slave khi master kêt nôi trực tiép với slave.
Trong hệ thống SoC, bus là thành phần chính chịu trách nhiệm kết nối cácmaster và slave Nó không chỉ đảm bảo việc truyền tai thông tin điều khiển và dữ liệu
từ master đến slave mà còn cung cấp cơ chế chuyên thông tin phản hồi từ slave trởlại master Điều này cho phép các master thực hiện các hoạt động truy xuất như đọc(read) và ghi (write) một cách hiệu qua và chính xác.
Hình 3.13 miêu tả Interface trong ngữ cảnh này được hiểu là một nhóm các tín
hiệu giao tiếp giữa hai thành phần, giúp điều phối và quản lý luồng đữ liệu giữa chúng.
Interconnect (BUS) là một thiết kế phức tạp thường bao gồm nhiều interface, với mỗiinterface được kết nối với một master, một slave hoặc một interconnect khác Đặcbiệt, trong một interface giữa hai interconnect, một bus sẽ đóng vai trò như mastertrong khi bus còn lại đảm nhận vai trò của slave Điều này có thể được minh họa quahình 3.13 giữa BUS 0 và BUS 1, nơi BUS 0 có thé là master và BUS1 là slave, hoặc
ngược lai, tùy theo cấu hình cụ thé của hệ thống.
20
Trang 31Mast | Master | | = =
BUS 1 (Interconnect)
BUS 0 (Interconnect)
Hình 3.13: Interface giữa BUS | (Master) va BUS 0 (Slave)
Giống như các giao thức bus khác, AXI quy định rõ ràng co chế va cách thức
xử ly cho hai hoạt động cơ bản là đọc (read) và ghi (write) Trong hoạt động doc,
master thực hiện việc lay dữ liệu từ slave Ngược lại, trong hoạt động ghi, master phat
dữ liệu đến slave Việc quy định cụ thể các hoạt động này giúp đảm bảo tính đồng bộ
và hiệu quả trong quá trình truyền tải dữ liệu, đồng thời ngăn ngừa các lỗi có thể xảy
ra do sự không nhất quán trong giao tiếp
Trên cơ sở đó, giao thức AXI không chỉ dam bảo tính tương thích và linh hoạt
trong thiết kế hệ thống SoC mà còn nâng cao hiệu suất và độ tin cậy của các hoạt độngtruy xuất đữ liệu giữa các thành phần trong hệ thống Điều này làm cho AXI trở thành
một lựa chọn phô biến và được sử dụng rộng rãi trong các thiết kế SoC hiện đại
3.4.3 Cấu trúc phân kênh của AXI
Giao thức AXI (Advanced eXtensible Interface) hoạt động dựa trên năm loại
kênh độc lập, mỗi kênh đảm nhận một vai trò và nhiệm vụ riêng biệt Sự "độc lập" ở
đây được hiểu là mỗi kênh có thể hoàn thành nhiệm vụ của mình mà không bị phụ
thuộc vao các kênh khác, mặc dù các kênh nay van có môi liên quan tới nhau trong
21
Trang 32tổng thể hoạt động của hệ thống Cụ thể, năm kênh này bao gồm: kênh địa chỉ đọc
(AR), kênh dữ liệu đọc (R), kênh địa chỉ ghi (AW), kênh dữ liệu ghi (W), và kênh
đáp ứng ghi (B).
Kênh dia chi đọc (AR) chịu trách nhiệm truyền thông tin địa chỉ và các thông
tin điều khiển của một transaction đọc từ master đến slave Tiếp theo đó, kênh dữ liệu
đọc (R) thực hiện việc truyền dữ liệu đọc và thông tin phản hồi của transaction đọc
từ slave trở lại master Tương tự, kênh địa chỉ ghi (AW) truyền tải thông tin địa chi
và thông tin điều khiển của một transaction ghi từ master đến slave, trong khi kênh
dữ liệu ghi (W) đảm nhận việc truyền dir liệu ghi từ master đến slave Cuối cùng,kênh đáp ứng ghi (B) truyền thông tin phản hồi của transaction ghi từ slave trở lại
master.
READ
READ ADDRESS CHANNEL
READ DATA CHANNEL WITH RESPONSE
Master WRITE ADDRESS CHANNEL Slave
WRITE DATA CHANNEL
WRITE
Hình 3.14: Các kênh ghi và đọc của AXI
Hình 3.14 mô tả một transaction trong giao thức AXI, bao gồm bốn thông tin
cơ bản: thông tin địa chi (address), thông tin điều khiển (control), thông tin dữ liệu
(data), và thông tin phản hồi (response) Thông tin địa chỉ xác định đích đến củatransaction, thông tin điều khiển xác định thuộc tính của transaction như loại burst,
độ dài burst, kích thước burst và các thuộc tính khác Thông tin dữ liệu là dữ liệu thực
22
Trang 33tế được truyền trong transaction, trong khi thông tin phản hồi xác định trạng thái của
transaction, liệu nó có bị lỗi hay không.
Một burst là tập hợp các transfer dữ liệu trong một transaction, với mỗi transfer
dữ liệu gọi là một beat Một burst có thể bao gồm một hoặc nhiều beat, và mỗitransaction quản lý một burst có thuộc tính được quy định bởi thông tin điều khiên
Trong cấu trúc giao thức AXI, một transaction đọc được quản lý bởi hai kênh
là kênh AR và kênh R, trong khi một transaction ghi được quản lý bởi ba kênh là kênh AW, kênh W, và kênh B Sự phân chia này cho phép giao thức AXI thực hiệncác hoạt động đọc và ghi một cách hiệu quả và linh hoạt, đảm bảo tính nhất quán và
hiệu suất cao trong việc truyền tải dữ liệu giữa các thành phần trong hệ thống SoC.Điều này làm cho AXI trở thành một lựa chọn phổ biến trong các thiết kế hệ thốngtích hợp hiện đại, nơi yêu câu về tôc độ, hiệu quả và độ tin cậy ngày càng cao.
3.4.4 Transaction đọc
Hình 3.15 mô tả một transaction đọc gồm hai bước xử lý:
e_ Phía Master gửi một thông tin địa chi và thông tin điều khiển dé khởi động
một transaction đọc trên kênh AR.
e Phía slave gửi các dữ liệu kèm thông tin response trên kênh R Số lượng dữ
liệu và thông tin response được quy định bởi thông tin điều khiến phát từ phíamaster trên kênh AR.
23
Trang 34Read address channel
Master Read data channel Slave
<
Hinh 3.15: Transaction doc
3.4.5 Transaction ghi
Hình 3.16 mô tả một transaction ghi gồm 3 bước xử ly:
e Phía master gửi một thông tin địa chỉ và thông tin điều khiển để khởi động một
transaction ghi trên kênh AW
e© Phía master gửi các dữ liệu ghi trên kênh W Số lượng dữ liệu ghi được quy
định bởi thông tin điều khiển phát từ phía master trên kênh AW
e Phía slave gửi thông tin response khi burst ghi đã hoàn thành.
Trang 35Write address channel
3.5 Các phương pháp cải tiến bộ đồng xử ly dành cho các giải thuật mật mã
học
3.5.1 Custom instruction - Các lệnh mở rộng
Cải tiền đầu tiên dành cho bộ xử lý RISC-V là khối ALU chuyên dành cho cácthuật toán mật mã học Hiệu quả mà cải tiến này mang lại như tối ưu hóa hiệu suất
cho ứng dung cụ thé ở đây là các giải thuật mật mã học : một phép tính dai (maj,
sigma của giải thuật SHA256) thay vì phải biên dịch ra thành nhiều lệnh mã máy nhưand, or, not, xor, add, sub, và các lệnh load store dé truy xuất đữ liệu, giờ đây khi
có lệnh tùy chỉnh, phép tính dài đó sẽ chỉ cần biên dịch ra một lệnh duy nhất tươngứng với phép tính đó, từ đó giảm sỐ lượng lệnh được biên dịch ra và thực thi
Tiết kiệm năng lượng tiêu thụ : Bằng cách sử dụng các lệnh tùy chỉnh được tối
ưu hóa, hệ thống có thé thực hiện các tác vụ phức tap hơn (ở đây là các phép tính
25
Trang 36phức tạp của các giải thuật mật mã học) với ít chu kỳ xử lý hơn, do đó tiêu thụ ít năng lượng hơn.
Bảng 3.2: Hiệu quả khi thêm lệnh tùy chỉnh
tùy chỉnh
sll a3, a5, Oxf sigmal a5, a5 63 lệnh
srl a4, a5, Ox11
or a4, a4, a3
sll a3, a5, Oxd
srl a5, a5, 0x13
or a5, a5, a3
bgeu a5, a4, 20f8 bgeu a5, a4, 20f8
Bảng 3.2 so sánh mã nguồn của giải thuật SHA256 sau khi được biên dịchsang dạng assembly, trước và sau khi được thêm vào lệnh sigmal Có thê thấy sốlượng lệnh đã giảm di, từ đó bộ đồng xử lý chỉ cần xử lý một lệnh duy nhất là sigmala5, a5 đề thực thi xong phép toán
3.5.2 Khoi ALU ghép đôi xử lý song song 2 lệnh 32-bits
Thông thường, các bộ xử lý RISC-V 64bit khi xử lý các lệnh tính toán cho word 32-bit (như các lệnh addw, subw, sllw, ) sẽ tuân theo tập lệnh RV32-I, tức là
sẽ bỏ qua bit tràn và kết qua chỉ tính trên 32-bit thấp của ALU Như vậy phan 32-bitcao còn lại sẽ không được sử dụng đến cho việc tính toán Đề tận dụng tối đa phầncứng, nhóm đề xuất giải pháp ALU tính song song 2 phép tính 32-bit
26
Trang 37(INPUT DATA 1 (Plain `
text, Key, associated data, )
RISC-V Co-processor
, ` Decrypted Text)
(INPUT DATA 2 (Plain) ¿
text, Key, associated a Rs1 [31:0] Ầ ị “|
và trả về một lúc 2 luồng dữ liệu đầu ra khác nhau Nhờ đó tăng gấp đôi thông lượng
xử lý của các giải thuật mật mã học ở chế độ 32-bit
3.5.3 Khối chức năng tùy chỉnh (ASCON ROUND UNIT)
Vào tháng 3 năm 2021, Viện Tiêu chuẩn và Kỹ thuật Quốc gia Hoa Kỳ (NIST)
đã công bố danh sách 10 ứng cử viên lọt vào vòng chung kết của quy trình tiêu chuẩnhóa mật mã hạng nhẹ Nhóm nghiên cứu của NIST đã đánh giá các ứng cử viên naydựa trên các tiêu chí được đề ra, cập nhật trạng thái qua các vòng thi, phân tích bảo
mật từ các bên thứ ba, kết quả triển khai và đo đạc hiệu suất, cũng như phản hồi từcác hội thảo và diễn đàn của LWC Quyết định cuối cùng rất khó khăn, vì phần lớncác thuật toán lọt vào vòng chung kết đều có hiệu suất vượt trội so với các tiêu chuẩnhiện tại của NIST trên nhiêu nên tảng khác nhau mà vẫn đảm bảo tính bảo mật.
27
Trang 38ASCON là một trong những ứng cử viên nổi bật, được thiết kế bởi Christoph
Dobraunig, Maria Eichlseder, Florian Mendel và Martin Schlaffer từ Dai học Công
nghệ Graz, Công ty Infineon Technologies và Dai hoc Radboud ASCON sử dụngmột hoán vi hạng nhẹ duy nhất với các chế độ hoạt động dựa trên Sponge va manghoán vị - thay thé (SPN) Thuật toán này có thé được triển khai dé dàng cả trong phầncứng (với chi phí tương đương 2,6 công) và phần mềm Nó sử dụng hộp S-box 5 bit,tương tự như trong lõi hộp S của Keccak, giúp tối ưu hóa cho các ứng dụng hạng nhẹ
và không dễ bị tắn công kênh kề ASCON còn có khả năng đạt được thông lượng cao,
dao động từ 4,9 đến 7,3 Gbps, và lưu trữ trạng thái hiện tại với 320 bit
NIST đã quyết định tiêu chuẩn hóa ASCON cho các ứng dụng mã hóa hạngnhẹ, vì nó đáp ứng được các yêu cầu của hầu hết các trường hợp sử dụng cần đến mật
mã hạng nhẹ Họ ASCON hiện có bảy thành viên, một số hoặc tất cả có thể trở thànhmột phần của tiêu chuân mật mã hạng nhẹ do NIST công bó Các biến thể trong họASCON cung cấp một loạt chức năng, mang đến cho các nhà thiết kế nhiều tùy chọn
cho các nhiệm vụ khác nhau Thông số kỹ thuật của ASCON bao gồm nhiều biến thể
và tiêu chuân cuôi cùng có thê không bao gôm tât cả các biên thê này.
Thông thường những bộ đồng xử lý sẽ được thiết kế để phục vụ tăng tốc độ
xử lý cho một ứng dụng cụ thé Với ứng dụng mật mã học, việc thêm vào các mạch
tổ hợp dé tính toán chỉ có thé thực hiện riêng biệt cho từng giải thuật, như AES vàSHA256 cần những phép tính riêng và cần thực hiện phần cứng cho cả hai giải thuậtnếu bộ đồng xử lý muốn hỗ trợ cả hai giải thuật này Vì vậy kích thước mạch sẽ lớn
và làm chậm bộ xử lý.
Từ những thông tin trên, nhóm quyết định chọn ASCON là giải thuật duy nhất
dé thực hiện phương pháp khối xử lý chức năng tùy chỉnh Trong giải thuật ASCON,hoán vị (một Round) là bước cần duy nhất cần nhiều tác vụ xử lý, tính toán Vì thékhối tổ hợp ASCON Round sẽ được thêm vào bộ xử lý để tính hết một Round trong
vòng một chu kỳ lệnh.
28
Trang 39trong đó khối trạng thái X2 64 bit sẽ thực hiện phép cộng hăng số Cr dé phá vỡ tính
đối xứng của dữ liệu, ngăn chặn các cuộc tấn công dựa trên tính tuần hoàn hoặc dự
đoán trước được Tiếp theo là phép thế được thực hiện thông qua một mạng phi
tuyến tính S-box (bao gồm các phép NOT, XOR và AND) để tạo ra sự trộn lẫn
mạnh mẽ giữa các bit trong trạng thái Tiếp theo là phép trộn tuyến tính (gồm các
phép dich bit và XOR).
29
Trang 40Chương 4 THIẾT KE, CẢI TIEN VÀ HIỆN THỰC BO DONG XỬ LÝ
Instruction Fetch (tìm nạp lệnh), Instruction Decode (giải mã lệnh), Execution (thực
thi), Data Memory (lưu trữ và truy xuất dữ liệu), Writeback (ghi lại kết quả) Điều
này sẽ giúp bộ xử lý chạy với tốc độ clock cao hơn so với không pipeline là 250MHz
Bảng 4.1: Các tín hiệu của tông thể thiết kế
Tên tín hiệu Phân loại | Độ rộng Mô tả
Cfg_addr_in input 15 bit Configuration address input : Gia
trị địa chi cho lệnh nạp vào bộđồng xử lý Được truyền vào bộ
nhớ lệnh (instruction memory).
30