1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật máy tính: Thiết kế và hiện thực bộ đồng xử lý RISC-V tốc độ cao hỗ trợ các thuật toán mật mã hóa

98 3 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết Kế Và Hiện Thực Bộ Đồng Xử Lý RISC-V Tốc Độ Cao Hỗ Trợ Các Thuật Toán Mật Mã Hóa
Tác giả Lê Đức Hồng Ân, Hồ Viết Anh
Người hướng dẫn TS. Phạm Hoài Luân, TS. Lâm Đức Khải
Trường học Đại Học Quốc Gia TP. Hồ Chí Minh
Chuyên ngành Kỹ Thuật Máy Tính
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2024
Thành phố Hồ Chí Minh
Định dạng
Số trang 98
Dung lượng 95,16 MB

Nội dung

Các giảithuật này đều hoạt động chính xác và đạt được hiệu suất cao với tan số 210MHz, chứng minh khả năng tích hợp và ứng dụng của RISC-V trong các hệ thống bảo mật hiện đại... Quá trìn

Trang 1

ĐẠI HOC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TINH

LE DUC HONG AN - 20521048

HO VIET ANH - 20521063

KHOA LUAN TOT NGHIEP

THIET KE VA HIEN THUC BO DONG XU LY RISC-V TOC DO CAO HO TRO CAC THUAT TOAN MA HOA

DESIGN AND IMPLEMENTATION OF A HIGH-SPEED RISC-V

COPROCESSOR SUPPORTING CRYPTOGRAPHIC

ALGORITHMS

CU NHAN NGANH KY THUAT MAY TINH

GIANG VIEN HUONG DAN

TS PHAM HOAI LUAN

TS LAM DUC KHAI

TP HO CHÍ MINH, 2024

Trang 2

LỜI CẢM ƠN

Sau quá trình học tập và rèn luyện tại khoa Kỹ Thuật Máy Tính trường Đại

học Công nghệ Thông tin - ĐHQG TP.HCM, chúng em đã được trang bị các kiếnthức cơ bản và các kỹ năng dé có thé thực hiện Khóa Luận Tốt Nghiệp của mình

Đầu tiên, chúng em muốn gửi lời cảm ơn tới Nhà trường vì sự đầu tư và tận

tâm trong việc xây dựng một môi trường học tập chất lượng cao dé hỗ trợ chúng em

về mọi mặt trong suốt quá trình học tập

Chúng em cũng xin bày tỏ lòng biết ơn đến thầy Phạm Hoài Luân và thầy Lâm

Đức Khai vì đã tận tâm và kiên nhẫn hướng dẫn chúng em trong quá trình thực hiện

Khóa luận Những lời giải thích, sự chỉ bảo và những gợi ý quý báu từ Thay đã giúpchúng em vượt qua những khó khăn, hiểu sâu hơn về đề tài và hoàn thiện đồ án mộtcách tốt nhất

Cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, tất cả thầy cô trongkhoa, bạn bè, là những người đã luôn đồng hành, sẵn sàng chia sẻ và giúp đỡ chúng

em trong suốt quá trình học tập và trong cuộc sóng

Vì đây là lần đầu thực hiện Khóa luận, nên những sai sót của chúng em là điềukhó tránh khỏi, chúng em kính mong nhận được sự chỉ dẫn và góp ý của quý thầy

cô dé chúng em có thé phát triển và hoàn thiện đồ án hơn trong tương lai

Chúng em xin chân thành cảm ơn!

Hồ Chí Minh, 2024

Sinh viên thực hiện

Lê Đức Hồng Ân Hồ Viết Anh

Trang 3

MỤC LỤCChương 1 TONG QUAN DE TÀI - 2-52 52St+EE£EE2EE2EE2EEEEEEEErrkrrerrree 15Chương 2 CO SỞ LÝ THUYÊT - 2-2 £+S++E£+E++EE+EE+EEEEEErEerrerrerreee 17

2.1 Kiến trúc RISC-V: -:-2+¿+22+222x2221222112211211127112111221112111.211 1x 17

2.1.1 Lịch sử phát triỂn: -¿- ¿2£ +£+x+2Ex+2EktEEEtEEEEEEEEEEEerkrerkesrkesree 17

VN) S6 Ai 00 0n 6 135 18

2.1.3 RV32I và RVOA4I Instruction S€(: - - -c c1 13+ v3 se 23

2.2 Các thuật toán mã ha: - - c G0122 21011111119311 1111110 111111882 111 11882111 re 28

2.2.1 Tổng quan về Hash: 2- 22 5¿2++2E+2EEtEEEtEEEEEEEEEEEEEEerrkrerkrsree 282.2.2 Tổng quan về mật mã hóa SHA-256: 2-2: ¿2 +++£+++£+z+z 292.2.3 Tổng quan về mật mã hóa SHA -5 12: 2 ++++:x++zx++zs+2 312.2.4 Tổng quan về thuật toán SMB: ccccccsesesessessessessessessessessessessessesessessens 332.2.5 Tổng quan về thuật toán BLAKE2: 2-2 252 £+£2£+EzEzez 362.2.6 Tổng quan về thuật toán mã hóa luỗng: - 2-2 s2 2+££+£z+£z+£z 382.2.7 Tổng quan về thuật toán mật mã luồng Salsa20: -2- 2-2-2 392.2.8 Tổng quan về thuật toán mật mã luồng ChaCha20: - 5- 412.2.9 Tổng quan về thuật toán AES? ccccccccccessessessessessessssessessesssssesseseseeasees 44

2.2.10 Tổng quan về thuật toán mã hóa SM4: .: 2- 2: 5252222 46

2.3 Bộ xử lý mã hóa dựa trên kiến trúc RISC-V 64 Dit: - c©ccxscxseerxez 48

2.3.1 Tổng quan về kiến trúc kết hợp ARM và RISC-V 64 bit: 48

2.3.2 Các công cụ hỗ tTỢ: ¿- ¿2:22 2x+2x+Ex‡EEEEEEEEEEEEEEEEEEEEEEkerrrrrrrrrrrei 50

2.3.2.1 RISC-V GNU Toolcha1n: cc ccssscs**sskseesesereeeeees 50

PC i2 291 51

Trang 4

Chương 3 _ PHƯƠNG PHAP THỰC HIỆN - 2-2 2 52+ z+£x+£Ezzzserxez 54

3.1 Thiết kế IP RISC-V hỗ trợ các thuật toán mật mã hóa: - 2s z=s 54

3.1.1 Chi tiết thiết kế Buffer hỗ trợ lưu trữ dữ liệu tạm cho các thuật toán mật

mã hÓa: E0 1101111122 SĐT vế 56

3.1.2 Chi tiết thiết kế bộ mô-đun tính thuật toán mật mã hóa “256,

SHA-512, SM3”” - St tt 211 215115111111211111111111111111111111111111111111111 1.11 ce 58

3.1.3 Chi tiết thiết kế bộ mô-đun tính thuật toán mật mã hóa “ChaCha20,

BLAKE2S, Salsa207” 2-5 5c221 2k2 2E122112112711211211711211 1111.111111 re 66

3.1.1 Thiết kế mô-đun tính toán cho thuật toán AES: - 713.1.2 Thiết kế mô-đun tinh toán cho thuật toán SM4: 2-52 753.2 Tùy biến lệnh trong RISC-V: -¿-¿- +2+¿2+2EEtEEEtEEEeEEeerkeerkrsrkrrrree 76

3.2.1 Tổng quan về tùy biến lệnh trong kiến trúc RISC-V: .- 763.2.2 Chi tiết tùy biến nhóm lệnh cho các thuật toán mật mã hóa: 78Chuong 4 KIEM TRA VÀ ĐÁNH GIA KET QUA HIỆN THỰC 81

4.1 Kịch bản kiỂm trat ccccecsccccseccssssescssesecsesseccscscecsvsucsesucacsesucarsveusarsncasstsecacaveecars 814.2 Chi tiết kết quả kiểm tra hiện thựC: 2- 2 + 5+2c++2x+2zxvzzxezrxerseees 824.3 Đánh giá kết quả hiện thực: -+- + + x+Ex+EE+EE+EEEEEEEEeErExrrkrrerreee 90Chương 5 KẾT LUẬN VÀ HƯỚNG PHAT TRIÉN 2-2-2525: 95

5.1 KẾt luận: oecccccccscsssessesssessessvsssecsecsusssessessusssscssssusssecsessusssessussusssecsusssessessueaseeses 955.2 Hướng phat triỂn: - 2-2 E+SE+SESE£EEEEEEEEEEEEE1EE121121122121111 111.1 xe 96

Trang 5

DANH MỤC HÌNH

Hình 2.1: Minh họa về thuật toán băm [3] 2- 2 + + E+EeEE+EeEEeEE+Eerkerxreerxez 29 Hình 2.2: Sơ đồ thuật toán băm SHA-256 -:- 2-22 ©5222+2E2+E++£xvzx+zrxerxez 31 Hình 2.3: Sơ đồ thuật toán băm SHA -5 12 - 2-22 2£ +2E£+EE+EE£+EEeEEerxerrserxee 33

Hình 2.4: Hàm nén của thuật toán SÌM3 - c5 5 221 1E*** 22 EkkSssseeeerse 35 Hình 2.5: Hàm nén của thuật toán BLAKEs - << 55522222 ‡++sseeeeeeezes 37

Hình 2.6: Mô tả về mật mã luỖng - 2-2 2 2 £+EE+EE+EE2EE+E2EE+EEzErrerrerreee 39

Hình 2.7: Ham Quarter Round của thuật toán Salsa20 - +55 ++c<<<+++sss 40

Hình 2.8: Ham Quarter Round của thuật toán ChaCha20 55555555 +++++ 43

i06.) 0010.0002.111 46

Hinh 2.10: Giadi thudt SM4 oo eee 48

Hình 2.11: Tổng quan kiến trúc kết hợp ARM và Co-RISC-V - 48

Hình 2.12: Kiến trúc tong quan của giao thức AXI4 -2 ¿-cs¿5cx++cxz5sse2 52 Hình 2.13: Kênh đọc của giao thức A XL4 6 1xx nh rưy 53 Hình 2.14 Kênh ghi của giao thức AXI4 ooo cccccesccescesseeeeseeeeeeceeeeeeesseeeeseeees 53 Hình 3.1: Tổng quan kiến trúc RISC-V woccecccccccecccscesessesessesesssessessessesessesessesseseeaees 54 Hinh 3.2: Co ché hoat động của BufÍ€T - - 5 1S ng 56 Hình 3.3: Tổng quan thiết kế SHA256 2-2 2 2+S£+EE2EE+E2EE2E2E2EzEerreee 59 Hình 3.4: Khối Block Function -¿++++tE+++ttEEEktttEkkrrttrrrrrireeriee 59 Hình 3.5: Khối Hash Function -2- 2: 2£ +2E££SE£EE£EE£EEtEEESEEEEErEEerkerrerrrervee 61 Hình 3.6: Khối Block Function kết hợp SHA256 và SHA512 - 62

Hình 3.7: Khối Hash Function kết hợp SHA256 và SHA512 - 62

Hình 3.8: Tổng quan thiết kế kết hợp SHA256 và SHA512 - 63

Hình 3.9: Khối Block Function kết hợp SHA256, SHA512 và SM3 64

Hình 3.10: Kiến trúc kết hợp Hash Function của SHA256, SHA512 và SM3 65

Hình 3.11: Tổng quan kiến trúc kết hợp SHA256, SHA512, SM3 - 65

Hình 3.12: Kiến trúc kết hợp G Function và QuaterRound 2-2-5 +: 67

Hình 3.13: Khối tính 2 round cho ChaCha và BLAKE2S 2-2 2 2 25+ 68 Hình 3.14: Khối tính Salsa20 QuaterRound - 55 3+ x 3+ seeersrreersee 69

Trang 6

Hình 3.15: Khối tính 2 round cho Salsa - ¿2 +2 SE EEEE+E+E+EeEeEEEErEzErEsrrrersrs 70 Hình 3.16: Khối tính kết hợp BLAKE2S, ChaCha20, Salsa20 - 71

Hình 3.17: Khối ShifÑows - -252c 22 t2 ttttrtrrttrkrrrttrirrrtiirrrrirerieg 72

Hình 3.18: Khối MixColumns 2-2552 E2++ttEEkrEEEkkrttrtrrrrtirrrrirerriee 73

Hình 3.19: Khối AddRoundKeyy - 2 2 2 +2 ++E£+E++E++E++E£EE+EzErrerrerreee 74

Hình 3.20: Mô-đun tính Cipher cho giải thuật AES -.- 5-5525 s++scrseeess 75 Hình 3.21: Mô-đun tinh Cipher cho giải thuật SÌM4 7 ScS+ssrsersereeres 75

Hình 4.1: Kết quả tính toán AES của RISC-V va ARM được in ra Terminal dé so

Hình 4.12: Kết qua của giải thuật SM3 khi xem trong ILA_ Debug - 88

Hình 4.13: Kết quả tính toán SM4 của RISC-V và ARM được in ra Terminal dé so

0:0 ồỒÚẦẢ 88

Trang 7

Hình 4.15: Kết quả tính toán Salsa20 của RISC-V va ARM được in ra Terminal dé

Hình 4.16: Kết quả của giải thuật Salsa20 khi xem trong ILA_Debug 89

Hình 4.17: So sánh hiệu quả năng lượng của nghiên cứu này với các CPUs 93

Trang 8

DANH MUC BANG

Bộ thanh ghi của RISC- V - «ch eg 19

Lệnh định dạng lR -5-ccsecskrtrkrrrrirtrrirtirtiirtiiriiriirriirrirriee 20 Lệnh định dạng Ì -s«-55<Sc+cSEeEEEtEEitErirEirririiiiriiririe 21 Lệnh định dạng S s-5<-5c<ScteerttriEkrErHH 1 1 gi 22 Lệnh định dạng UƯ 5s-ccxc+ketrkittrirtErirEirtiirtiiriiririirrerrree 22

RV32I Instruction S@( -cccsersrrrrrrrrrrrtrirrrirrrirrriirrrirrrrrirrrrrrree 23

RV64 Instruction SG( -ssccctcrkirtrkitrkirtrrirriiiriiriirirririrrierrree 26 BLAKE2S GF và ChaCha20 QR ccs-Scsiicsriieiiriiiiierrie 66

Sự tương đồng giữa 2 Round ChaCha20 va BLAKE28 67Lợi ích và bắt lợi của Macro Assembly và chỉnh sửa trình biên dịch 77

Bảng tín hiệu Opcode RISC-V c«ccccccesrkekkrekkrerirtrirrriirrrrrrrrreree 78

Các trường tùy biến cho tám thuật toán -.ceerrcceerrrrecerre 79Message kiểm tra với các Độ lớn khối dữ liệu tương ứng 82Tổng hợp tài nguyên sau Implementation -cs css.ee 90Tổng hợp thông số các giải thuật mật mã hóa . - 90

So sánh số lượng Cycle khi xử lí một Block dữ liệu qua các giải thuật 91

So sánh thông lượng với các bài nghiên cứu khác . -‹ - 91

Trang 9

DANH MỤC TU VIET TAT

Tir viet tat Nghia day du

ALU Arithmetic Logic Unit

SHA Secure Hash Algorithm

AES Advanced Encryption Standard

wn Chinese National Standard for Block

Cipher ECC Elliptic Curve Cryptography

Rivest-Shamir-Adleman RSA

(Cryptosystem) BFM Bus Functional Model

HDL Hardware Description Language

RTL Register Transfer Level

FSM Finite State Machine

ISA Instruction Set Architecture

Trang 10

GCC GNU Compiler Collection

LSB Least Significant Bit

MSB Most Significant Bit

FIFO First In, First Out

LUT Look-Up Table

DSP Digital Signal Processing

FFT Fast Fourier Transform

I2C Inter-Integrated Circuit

SPI Serial Peripheral Interface

UART Universal Asynchronous

Receiver-Transmitter GPIO General Purpose Input/Output

PWM Pulse Width Modulation

ADC Analog-to-Digital Converter

DAC Digital-to-Analog Converter

PLL Phase-Locked Loop

RAM Random Access Memory

ROM Read-Only Memory

SRAM Static Random Access Memory

DRAM Dynamic Random Access Memory

DDR Double Data Rate

USB Universal Serial Bus

PCIE Peripheral Component Interconnect

Express

JTAG Joint Test Action Group

SOC System on Chip

Asc Application-Specific Integrated

Circuit

Trang 11

FPGA Field-Programmable Gate Array

HDMI

High-Definition Multimedia

Interface

Trang 12

TOM TAT KHÓA LUẬN

Trong bối cảnh Internet of Things (IoT) ngày càng phát triển và kết nối hàng

tỷ thiết bị, vấn đề bảo mật phần cứng trở nên vô cùng quan trọng Các thiết bị kết

nối đa dạng với tài nguyên giới hạn và các biện pháp bảo mật khác nhau đặt ra

thách thức lớn trong việc đảm bảo tính bảo mật mạnh mẽ cho phần cứng Những

mối đe dọa như truy cập trái phép, vi phạm dữ liệu, gia mao thiết bị, và các cuộc tan

công ác ý đòi hỏi các giải pháp bảo mật toàn diện.

Cùng với đó, sự xuất hiện của kiến trúc tập lệnh RISC-V (ISA) như một sựthay thế cho các kiến trúc sở hữu đã mở ra nhiều cơ hội và thách thức trong việc

bảo mật phan cứng Tinh chất mở của RISC-V khuyến khích sự đổi mới, tùy biến

và minh bạch, nhưng cũng đòi hỏi phải xem xét can thận các biện pháp bảo mật dégiải quyết các lỗ hồng tiềm tàng

Khóa luận này tập trung vào việc thiết kế và hiện thực kiến trúc RISC-V bit trên phan cứng FPGA ZCU102 với tan số hoạt động 210MHz mà không gặp

64-phải vấn đề về vi phạm thời gian Điều này cho thấy hệ thống có khả năng xử lý tốc

độ cao và ôn định Nhóm nghiên cứu đã hiện thực thành công 8 giải thuật mật mã

hóa: SHA2-256, SHA2-512, SM3, ChaCha20, BLAKE2S, Salsa20, SM4, và AES,

tất cả đều chạy đúng chức năng khi triển khai trên FPGA ZCU102

Những thành tựu này không chỉ chứng minh khả năng của kiến trúc RISC-V

trong việc hỗ trợ các giải thuật mật mã phức tạp ma còn mở ra hướng đi mới trong

việc phát triển các hệ thống phần cứng bảo mật cao, đáp ứng nhu cầu ngày càng

tăng về bảo mật trong thé giới IoT

14

Trang 13

Chương 1 TONG QUAN DE TÀI

Trong thoi dai phat trién manh mé cua Internet of Things (IoT), sự pháttriển của kiến trúc vi xử lý mã nguồn mở RISC-V đã trở thành một chủ đề nóngtrong ngành công nghệ thông tin Khởi nguồn từ một dự án nghiên cứu tại Đại

hoc California, Berkeley vào năm 2010, RISC-V nhanh chóng trở thành một lựa

chọn phổ biến với khả năng tùy biến cao và chi phí thấp, phù hợp cho cả nghiên

cứu và phát triên sản phâm.

Các nghiên cứu về mã hóa trên RISC-V đã ghi nhận những tiến bộ quantrọng Một nghiên cứu gần đây đã giới thiệu việc tích hợp các thuật toán mã hóanhư AES và SHA trên nền tảng RISC-V, cho thấy hiệu suất cao và khả năng bảomật mạnh mẽ Nghiên cứu này sử dụng bộ công cụ phần mềm Vivado 2021.2 từXilinx trên nền tảng FPGA ZCU102 dé thuc nghiệm va dat được tan số hoạtđộng lên đến 210MHz mà không gặp phải bat kỳ van đề về việc trễ chu kỳ như ở

nghiên cứu [1] va [2].

Ngoài ra, một số nghiên cứu khác cũng đã khai thác tiềm năng của RISC-V

trong lĩnh vực mã hóa Ví dụ, một bài nghiên cứu đã chỉ ra việc tối ưu hóa thuật

toán Curve25519 trên nền tang Cortex-M4, mang lại hiệu quả tính toán cao hơn

và khả năng chống tan công tốt hơn [1] Một nghiên cứu khác về AES-GCM đãcho thay sự cải thiện đáng ké về hiệu suất và khả năng chống tan công theo thời

gian [1] Bên cạnh đó, việc triển khai thuật toán BLAKE2 và ChaCha20 trên

RISC-V cũng được báo cáo với kết quả đáng khích lệ, đặc biệt trong các ứngdụng yêu cầu độ bảo mật cao và tốc độ xử lý nhanh [2]

Dựa trên những nghiên cứu và kết quả đạt được, nhóm đã thực hiện hiện

thực các giải thuật mã hóa: SHA2-256, SHA2-512, SM3, ChaCha20,

BLAKE2S, Salsa20, SM4 và AES trên phần cứng FPGA ZCU102 Các giảithuật này đều hoạt động chính xác và đạt được hiệu suất cao với tan số 210MHz,

chứng minh khả năng tích hợp và ứng dụng của RISC-V trong các hệ thống bảo

mật hiện đại.

15

Trang 14

Bài viết này bao gồm:

Chương 2 Cơ sở lý thuyết: Phần này mô tả các lý thuyết về kiến trúcRISC-V, các thuật toán mật mã hóa được sử dụng trong bài viết

Chương 3 Phương pháp hiện thực: Phần này mô tả chỉ tiết các ý tưởngthiết kế phần cứng bao gồm: RISC-V, buffer và các thuật toán mật mã hóa

Chương 4 Kiểm tra và đánh giá kết quả hiện thực: Phần này mô tả kịchbản kiểm tra, chi tiết kết quả kiểm tra thiết kế khi chạy thực tế và đánh giá kết

quả.

Chương 5 Kết luận và hướng phát triển: Phần này nêu kết quả đạt được

sau quá trình nghiên cứu và hướng phát triên sau này.

16

Trang 15

Chuong 2 CƠ SỞ LÝ THUYET

Architecture: A Quantitative Approach" của David Patterson va John L.

Hennessy [3] Day là bước dau tiên trong việc ứng dung RISC vào giáo dục và

nghiên cứu, mở đường cho những tiên bộ sau này trong lĩnh vực vi xử lý.

Các bộ vi xử lý ARM, phiên bản đầu tiên của kiến trúc RISC, đã nhanhchóng trở thành tiêu chuẩn trong ngành công nghiệp với sự hỗ trợ của GNU

Compiler Collection (GCC) [4] Tuy nhiên, các tập lệnh RISC vẫn chưa trở

thành lựa chọn phổ biến cho thị trường thương mại vào thời điểm đó

Krista Asanovi¢, một giáo su tại Đại hoc California, Berkeley, đã nhận ra

tiềm năng của một hệ thống máy tính mã nguồn mở Vào năm 2010, ông cùngcác đồng nghiệp đã quyết định thực hiện và công bố một dự án mang tên

"short three-month summer project," mục tiêu là tạo ra một tập lệnh RISC mở,

linh hoạt và có thé tùy biến cho moi ứng dụng từ thiết bị nhúng đến siêu máytính [5] Dự án này nhanh chóng phát triển thành RISC-V, một kiến trúc ISA(Instruction Set Architecture) có thé được áp dụng trong cả lĩnh vực giáo dục

và công nghiệp [5].

17

Trang 16

RISC-V không chỉ là một ISA mã nguồn mở, mà còn là một cộng đồnglớn mạnh với nhiều tổ chức và công ty tham gia đóng góp và phát triển Cácnghiên cứu gần đây đã ứng dụng RISC-V trong nhiều lĩnh vực, từ các hệthống nhúng hiệu năng thấp đến các máy tính hiệu năng cao, nhờ vào tính linhhoạt và khả năng tùy biến của nó [5].

2.1.2 RISC-V Instrucsion Set:

Thiết kế tập lệnh RISC-V32 tuân theo một số nguyên tắc quan trọngnhằm đảm bảo tính đơn giản và hiệu quả trong quá trình xử lý:

e Cấu trúc lệnh đơn giản và dựa trên quy tắc: Tập lệnh có kích

thước cố định là 32 bit, trong đó 7-bit cuối là Opcode Điều này

giúp dễ dàng giải mã và thực hiện các lệnh một cách nhanh chóng

và hiệu quả.

RISC-V tối ưu hóa quá trình xử lý băng cách sử dụng các lệnh nhỏ gọn

và bộ nhớ hiệu quả Các nguyên tặc cụ thê bao gôm:

e Các lệnh và bộ nhớ nhỏ hon để xử lý nhanh hơn: Số lượng lệnh,

thanh ghi và chế độ địa chỉ được giới hạn để giảm thiêu độ phứctạp và tăng tốc độ xử lý

e Tăng tốc độ xử lý cho các trường hợp phô biến: Các toán hang

thường được lấy trực tiếp từ các thanh ghi hoặc là các toán hạngtức thời, giúp tăng tốc độ thực thi các lệnh phổ biến

e Tuân thủ ba định dạng lệnh chung: Các lệnh được chuẩn hóa

thành ba định dạng cơ bản, giúp đơn giản hóa quá trình giải mã và

thực hiện.

Về lưu trữ dữ liệu trong bộ nhớ, RISC-V tuân theo các nguyên tắc sau đểđảm bảo tính nhất quán và hiệu quả:

e Nguyên tắc giới hạn căn chỉnh: Các đối tượng bộ nhớ phải được

đặt tại các địa chỉ là bội số của kích thước của đối tượng, thường

18

Trang 17

là bội số của 4 Điều này đảm bảo rằng dữ liệu được truy cập mộtcách hiệu quả và nhất quán.

e Nguyên tắc Big Endian: Trong hệ thống này, các byte có giá trị

cao hơn được lưu trữ tại các địa chỉ thấp hơn, trong khi các byte

có giá tri thấp hơn được lưu trữ tại các địa chỉ cao hơn Cách sắpxếp này giúp dé dang quan lý và xử lý dữ liệu

Kiến trúc RISC-V dựa trên hệ tư tưởng "thanh ghi tới thanh ghi" và

"load/store" Các lệnh hoạt động chủ yếu trên các thanh ghi, và khi cần truycập bộ nhớ, các lệnh riêng biệt được sử dụng dé tải dữ liệu từ bộ nhớ vào

thanh ghi.

Mỗi thanh ghi trong hệ thống RISC-V lưu trữ một giá trị trong tập tin

thanh ghi số nguyên 32-bit, ngoại trừ các thanh ghi dấu phây động có kíchthước 64-bit Khác với các biến trong ngôn ngữ lập trình cấp cao, các thanhghi trong assembly không có kiểu dữ liệu cỗ định; cách sử dụng thanh ghi sẽxác định kiểu dữ liệu

Bộ xử lý RISC-V bao gồm 32 thanh ghi số nguyên mục đích chung, mỗithanh ghi có kích thước 32 bit, và 32 thanh ghi dấu phẩy động, mỗi thanh ghi

có kích thước 64 bịt Sự phân chia này cho phép bộ xử lý thực hiện các phép tính phức tạp một cách hiệu quả và nhanh chóng.

Bảng 2.1: Bộ thanh ghi của RISC-V [5]

Tên thanh ghi | Chỉ số thanh ghi (Thập phân) Chức năng thanh ghi

Trang 18

X5 — X7 5-7 Thanh ghi tam thoi

X8 8 Thanh ghi lưu trữ / Con

tro khung

x9 9 Thanh ghi lưu trữ

XI0-XII 10-11 Luu tham sé dau vao /

Giá trị trả về

XI12- XI? 12-17 Lưu tham số đầu vào

của hàm

X18 — X27 18-27 Thanh ghi lưu trữ

X28 — X31 20 - 31 Thanh ghi tam thoi

Tiếp theo là cấu trúc của các lệnh assembly khi được dich sang ngôn ngữmáy Mỗi lệnh trong RISC-V có độ dài 32 bịt Mỗi lệnh có thể được xem nhưmột hàm trong ngôn ngữ lập trình Do đó, cần có một tên lệnh, các tham số

dau vào và loại các tham sô đâu vào, trong trường hợp nay là kích thước cua

từng tham sô dau vào (vì không có khái niệm về kiêu dt liệu trong assembly).

RISC-V nhắn mạnh tính đơn giản của tập lệnh, do đó có bốn định dạng

lệnh chính: R-format, I-format, S-format và U-format Mỗi lệnh máy có kích thước 32 bit và được chia thành các nhóm bit khác nhau gọi là các trường,

trong đó moi trường có vai trò riêng trong lệnh Tùy thuộc vào câu trúc của

lệnh, mỗi trường có các thông số kỹ thuật khác nhau Lệnh định dạng R có 6

tham sô sau:

Bảng 2.2: Lệnh định dạng R

Func7 Rs2 Rsl Func3 Rd Opcode

7-bit 5-bit 5-bit 3-bit 5-bit 7-bit

20

Trang 19

Bảng 2.2 mô tả về lệnh định dạng R trong RISC-V32 với 32 bit bao gồm

Func7 (7 bit), Rs2 (5 bit), Rs1 (5 bit), Func3 (3 bit), Rd (5 bit) và Opcode (7

bit).

Opcode: Trường này thông báo cho máy về lệnh cụ thé Tronglệnh định dạng R, chúng đều chia sẻ mã opcode 0110011

Rs (Register Source): Thanh ghi nguồn, chứa toán hạng đầu tiên

Rs1 và toán hang thứ hai Rs2.

Rd (Register Destination): Thanh ghi đích, chứa kết quả của lệnh.

Func3: Vì các lệnh định dạng R chia sẻ cùng một mã opcode

0110011, trường này được sử dụng dé xác định thao tác cụ thécần thực hiện

Mỗi lệnh trong RISC-V được thiết kế dé thực hiện các tác vụ mộtcách hiệu quả, tuân thủ các nguyên tắc thiết kế đơn giản và dễhiểu Các trường trong lệnh giúp xác định các thành phần của

lệnh, bao gồm toán hạng, địa chỉ thanh ghi và các thao tác cần

thực hiện.

Tiếp theo là lệnh định dạng I, được sử dụng cho các phép toán giữa các

thanh ghi và một giá tri tức thời có trong lệnh:

Bang 2.3: Lệnh định dạng I

12-bit | 5-bit 3-bit 5-bit 7-bit

Bang 2.3 mô tả về lệnh định dang I trong RISC-V32 với 32 bit bao gồm

Imm (Immediate, 12 bit), Rs1 (Register Source 1, 5 bit), Func3 (Function 3 bit), Rd (Register Destination, 5 bit), Opcode (Operation Code, 7 bit).

Opcode: Trường này thông báo cho máy về lệnh cụ thể Nó xác

định loại hoạt động mà lệnh sẽ thực hiện.

21

Trang 20

e Rsl (Register Source 1): Thanh ghi nguồn, chứa toán hạng đầu

tiên Rs1.

e Immediate: Trường này chứa giá tri tức thời, được sử dụng dé

tính toán dia chỉ trong các lệnh load và store, hoặc làm giá tri tức

thời cần thiết cho các phép toán

Lệnh định dang I cho phép thực hiện các phép toán giữa các thanh ghi va

các giá tri tức thời Điều này đặc biệt hữu ích trong các lệnh load/store và cácphép toán cần sử dung giá trị tức thời dé tính toán

Lệnh định dạng S được sử dụng cho các lệnh lưu trữ:

Bang 2.4: Lệnh định dạng S

Func7 Rs2 Rs1 | Func3 Imm Opcode

7-bit 5-bit 5-bit | 3-bit 5-bit 7-bit

Bảng 2.4 mô tả về lệnh định dạng S trong RISC-V32 với 32 bit bao gồm

Imm (Immediate, 7 bit và 5 bit), Rs2 (Register Source 2, 5 bit), Rs1 (Register Source 1, 5 bit), Func3 (Function 3 bit), Opcode (Operation Code, 7 bit).

e Opcode, Func3: Mã hoạt động, chi ra loại lệnh lưu trữ, chăng hạn

như sw, sh, sb.

e Immediate: Được sử dụng để xác định địa chỉ sẽ lưu trữ trong bộ

nhớ Dia chỉ được tính như sau: địa chỉ cơ sở được lưu trữ trong

Rs1 + dịch chuyển (Imm*4)

e Rs2: Chứa dữ liệu sẽ được ghi vào bộ nhớ.

Lệnh định dạng U được sử dụng cho các lệnh LUI và AUIPC:

Bảng 2.5: Lệnh định dạng U

Imm Rd Opcode

20-bit 5-bit 7-bit

22

Trang 21

Bảng 2.5 mô tả về lệnh định dạng U trong RISC-V32 với 32 bit bao gồm

Imm (Immediate, 20 bit), Rd (Register Destination, 5 bit), Opcode (Operation

Code, 7 bit):

e Opcode: Chỉ ra lệnh nào sé thực hiện cho máy.

e Rd (Register Destination): Thanh ghi dich được sử dụng dé lưu

trữ kết quả tính toán

e Immediate: Giá trị tức thời cần thiết cho việc tính toán

2.1.3 RV32I và RV64I Instruction Set:

Bảng 2.6: RV32I Instruction Set [5]

Instruction Full Name Processing Action

Arithmetic Logic Operation Instruction for Integers

Trang 22

XORI Exclusive Or Immediate R[rd] = R[rs1] ^ Imm

R[rd] = PC + mm, AUIPC Add Upper Immediate To PC

R[rs2]

R[rd] = R[rs1] >>> SRLI Shift Right Logical Immediate

Imm

24

Trang 23

BGEU PC += (Imm, 1'bO) *

Unsigned

4

If (R[rs1] != R[rs2]) BNE Branch On Not Equal PC += (Imm, I'b0) *

4

If (R[rsl] < R[rs2]) BLT Branch On Less Than PC += (Imm, I'b0) *

4

If (R[rs1] < R[rs2]) Branch On Less Than

BLTU PC += (Imm, 1'b0) *

Unsigned

4

R[rd] = PC + 4; PC JAL Jump And Link

+= (Imm, I'b0) * 4

R[rd] = PC + 4; PC = JALR Jump And Link Register

Trang 24

R[rd] = {56 b0, LBU Load Byte Unsigned M[R[rs1] + Imm *

Bang 2.6 mô ta 37 lệnh trong RV32I bao gồm các lệnh xử lý số nguyên,

dich bit, rẽ nhánh, và doc/ghi bộ nhớ.

RV64I là mở rộng tập lệnh RV32I dé hỗ trợ các phép toán trên số nguyên

64-bit, bao gồm các phép cộng, trừ, dịch bit và tai/luu số nguyên 64-bit Điềunày cho phép xử lý các dữ liệu lớn hơn và phức tạp hơn, đáp ứng nhu cầu của

các ứng dụng hiện đại yêu câu hiệu năng cao Dưới đây là bảng mô tả:

Bảng 2.7: RV64I Instruction Set [5]

Instruction Full Name Processing Action

26

Trang 25

Arithmetic Logic Operation Instruction for 64-bit Integers

R[rs2]

Shift Right Logical R[rd] = R[rsl] >>> SRLIW

Immediate Word Imm

Shift Right Arithmetic R[rd] = R[rs1] >>

Trang 26

Bang 2.7 mô tả các lệnh trong RV64I bao gồm các lệnh xử lý số nguyên,dịch bit, nhánh, doc/ghi bộ nhớ, và các lệnh xử lý số học cho số nguyên 64-bit.

2.2 Các thuật toán mã hóa:

2.2.1 Tổng quan về Hash:

Trước khi tìm hiểu về các thuật toán mã hóa băm, chúng em muốn trìnhbày về lý do tại sao chúng em lại chọn hiện thực cho các thuật toán SHA256,

SHA512, SM3, BLAKES Các thuật toán SHA-256, SHA-512, SM3 và

BLAKE2 được chọn vì chúng đều cung cấp mức độ bảo mật cao và khả năngchống lại các cuộc tan công mật mã SHA-256 và SHA-512, thuộc họ SHA-2,nổi bật với hiệu suất và tính toàn vẹn dữ liệu, thường được ứng dụng trong

blockchain và bảo mật mật khẩu SM3 được tiêu chuẩn hóa tại Trung Quốc, có

hiệu suất tương đương với SHA-256, phù hợp cho các hệ thống bảo mật quốcgia BLAKE2, với tốc độ và hiệu suất cao, là một lựa chọn lý tưởng cho các

ứng dụng yêu cầu xử lý nhanh và hiệu quả năng lượng Sự linh hoạt và khả

năng tương thích của các thuật toán này với nhiều nền tảng phần cứng và phầnmềm khác nhau, cùng với tính tiêu chuẩn hóa quốc tế, làm cho chúng trởthành lựa chọn phù hợp cho nghiên cứu và triển khai thực tế

Sau đây thì chúng ta cần hiểu rõ về khái niệm Hash — nền tảng quan trọngcủa thuật toán băm Hash, hay còn gọi là ham băm, là quá trình chuyên đổiđầu vào là một nội dung có kích thước và độ dài bat kỳ thành một đầu ra có độdài cô định thông qua việc sử dung các thuật toán và công thức toán học phức

tạp.

Hàm băm hoạt động dựa trên nguyên tắc rằng bất kỳ thay đổi nhỏ nàotrong đầu vào sẽ tạo ra một giá trị băm hoàn toàn khác biệt Đây là một tínhchất quan trọng giúp đảm bảo tính toàn vẹn của đữ liệu, vì chỉ cần một thayđổi nhỏ trong thông điệp gốc sẽ dẫn đến một giá trị băm mới, giúp dễ dàngphát hiện các thay đổi không mong muốn

28

Trang 27

Hashing Algorithm

ề cco

&”(#df

=> #.ˆ LE | acca:

Plain Text Hash Function Hashed Text

Hình 2.1: Minh họa về thuật toán băm [6]

Hình 2.1 minh họa quá trình hoạt động của thuật toán băm Đầu tiên, nộidung văn bản gốc (Plain Text) được đưa vào hàm băm (Hash Function) Thuậttoán băm sẽ xử lý và chuyền đổi nội dung này thành một chuỗi ký tự có độ dài

có định gọi là giá trị băm (Hashed Text) Giá trị băm này mang tính chất duynhất và bat ky thay đối nhỏ nào trong văn bản gốc cũng sẽ tạo ra một giá trị

băm hoàn toàn khác.

2.2.2 Tổng quan về mật mã hóa SHA-256:

SHA-256 (Secure Hash Algorithm 256-bit) là một ham bam (hash

function) thuộc ho thuật toán mã hóa hash (cryptographic hash algorithm).

Được thiết kế bởi Cơ quan An ninh Quốc gia Hoa Ky (NSA), SHA-256 làphiên bản của thuật toán SHA-2, với độ dài băm đầu ra là 256 bit Trong

nghiên cứu "SHA-256 and its Applications in Data Security" (SHA-256 va

ứng dụng trong bảo mật dữ liệu), các tác gia đã chỉ ra rang SHA-256 cung cấpmột lớp bảo mật vững chắc, đảm bảo rằng dữ liệu không thể bị thay đổi màkhông bị phát hiện [7] SHA-256 hoạt động băng cách lấy một thông điệp đầuvào và thực hiện một loạt các phép toán học trên nó, bao gồm các phép toán

logic bitwise, phép cộng theo mô-đun, và các hàm logic như XOR va AND.

Quá trình này tiếp tục cho đến khi tạo ra giá trị băm cuối cùng dai 256 bit,đảm bảo rằng bất kỳ sự thay đổi nhỏ nào trong thông điệp đầu vào đều dẫnđến một giá tri băm hoàn toàn khác biệt [8] Thuật toán có các giai đoạn sau :

Tiên xử lý:

29

Trang 28

e Thêm bit'I': Đầu tiên, một bit '1' được thêm vào cuối thông điệp.

e Thêm các bit '0': Sau đó, một chuỗi các bit '0' được thêm vào dé

độ dài của thông điệp trở thành 448 bit mod 512.

e Thêm độ dài thông điệp: Cuối cùng, độ dài của thông điệp gốc

(trước khi thêm các bit) được biểu diễn bằng 64 bit và được thêmvào cuối

Khởi tạo bộ đệm:

e© SHA-256 sử dụng tám từ 32-bit dé khởi tạo bộ đệm Các giá trị

khởi tạo này được xác định trước và là các giá trị băm của các sốnguyên tố đầu tiên

Xử lý khối:

e Thông điệp đã được tiền xử lý được chia thành các khối 512 bit

Mỗi khối được xử lý qua một vòng lặp gồm 64 vòng Trong mỗivòng, một tập hợp các phép toán logic và số học được áp dụng lêncác từ của khối và các từ trong bộ đệm

Hàm nén:

e Trong mỗi vòng, hàm nén lay giá trị hiện tai của bộ đệm va khối

thông điệp, và áp dụng các phép toán logic và số học để cập nhậtgiá trị của bộ đệm Kết quả cuối cùng sau khi tất cả các khối đã

được xử lý là giá trị băm của thông điệp.

Xuất giá trị băm:

e Giá trị băm cuối cùng được kết hợp từ các từ trong bộ đệm và

xuất ra dưới dang một giá tri 256 bit

30

Trang 29

SHA256 Hash Function

Hình 2.2: Sơ đồ thuật toán băm SHA-256

Hình 2.2 mô tả quá trình hoạt động của thuật toán băm SHA-256 qua các

hàm tính toán Sơ đồ bao gồm các bước tính toán và nén trong một vòng lặpcủa thuật toán SHA-256 Dưới đây là mô tả chi tiết các thành phan trong hình

2-2:

e Kt: Hằng số vòng, thay đôi theo từng vòng

e Wt: Khối mở rộng từ khối thông điệp ban dau

e Ch(e, f, g): Hàm chọn, một trong các ham logic chính của

SHA-256.

e 0 và >I: Hàm hoán vj và tính toán logic.

e Tl và T2: Tổng tạm thời được sử dụng dé cập nhật các giá tri

băm trung gian.

e a,b,c, d,e, f, g, h: Các giá trị băm trung gian, được cập nhật sau

mỗi vòng lặp.

2.2.3 Tổng quan về mật mã hóa SHA-512:

SHA-512 là một thuật toán mã hóa băm (hashing algorithm) thuộc họ

SHA-2 (Secure Hash Algorithm 2), được phát triển bởi Cơ quan An ninhQuốc gia Hoa Ky (NSA) SHA-512 tương tự như SHA-256 nhưng có độ dàigiá trị băm lớn hơn, với 512 bit Điều này làm cho SHA-512 cung cấp mức độbảo mật cao hơn và khó bị tấn công hơn so với SHA-256 [9] SHA-512 được

sử dụng rộng rãi trong các ứng dụng yêu câu bảo mật mạnh mẽ hơn như chữ

31

Trang 30

ký số, chứng chỉ số và các giao thức bảo mật khác [9] Thuật toán cũng trải

qua các giai đoạn sau:

Tiền xử lý:

e Thêm bit '1': Một bit '1' được thêm vào cuối thông điệp

e Thêm các bit '0: Chuỗi các bit '0' được thêm vào dé độ dài của

thông điệp trở thành 896 bit mod 1024.

e Thêm độ dài thông điệp: Độ dài của thông điệp sốc (trước khi

thêm các bit) được biểu diễn bằng 128 bit và được thêm vào cuối

Khởi tạo bộ đệm:

e SHA-512 sử dụng tám từ 64-bit để khởi tạo bộ đệm Các giá tri

khởi tạo này được xác định trước và là các giá trị băm của các sốnguyên tổ đầu tiên

Xử lý khối:

e Thông điệp đã được tiền xử lý được chia thành các khối 1024 bit

Mỗi khối được xử lý qua một vòng lặp gồm 80 vòng Trong mỗivòng, một tập hợp các phép toán logic và số học được áp dụng lêncác từ của khối và các từ trong bộ đệm

Hàm nén:

e Trong mỗi vòng, hàm nén lay giá trị hiện tại của bộ đệm va khối

thông điệp, và áp dụng các phép toán logic và số học để cập nhậtgiá trị của bộ đệm Kết quả cuối cùng sau khi tất cả các khối đã

được xử lý là giá trị băm của thông điệp.

Xuất giá trị băm:

e Giá trị băm cuối cùng được kết hợp từ các từ trong bộ đệm và

xuất ra dưới dang một giá tri 512 bit

32

Trang 31

SHA512 Hash Function

Hình 2.3: So đồ thuật toán băm SHA-512

Hình 2.3 mô tả quá trình hoạt động của thuật toán băm SHA-512 qua các

hàm tính toán Sơ đồ bao gồm các bước tính toán và nén trong một vòng lặpcủa thuật toán SHA-512 Dưới đây là mô tả chỉ tiết các thành phần trong hình:

Kt: Hằng số vòng, thay déi theo từng vòng

Wt: Khối mở rộng từ khối thông điệp ban đầu.

Chee, f, g): Ham chọn, một trong các ham logic chính của 512.

SHA->0 và >1: Hàm hoán vị và bổ sung logic

Tl và T2: Tổng tạm thời được sử dụng dé cập nhật các giá trị

băm trung gian.a, b, c, d, e, f, g, h: Các giá tri băm trung gian,

được cập nhật sau mỗi vòng lặp.

2.2.4 Tổng quan về thuật toán SM3:

SM3 là một thuật toán băm mật mã được thiết kế bởi Trung Quốc và

được tiêu chuân hóa bởi Cơ quan Quản lý Tiêu chuân Quôc gia Trung Quôc

(SAC) Thuật toán này được sử dụng rộng rãi trong nhiều ứng dụng bảo mật

33

Trang 32

tại Trung Quốc, tương tự như cách SHA-256 được sử dụng ở nhiều quốc gia

khác SM3 tạo ra giá trị băm có độ dài cố định 256 bit, giúp bảo vệ tính toàn

vẹn va bao mật của đữ liệu [10] Thuật toán SM3 được xử lý qua các quá trình

sau:

Tiền xử ly:

e Thêm bit 'l': Thêm một bit 'I' vào cuối thông điệp gốc.

e Thêm các bit '0: Thêm một chuỗi các bit '0' để độ dài của thông

điệp trở thành 448 bit mod 512.

e Thêm độ dài thông điệp: Độ dài của thông điệp gốc (trước khi

thêm các bit) được biểu diễn bằng 64 bit và được thêm vào cuối

Khởi tạo bộ đệm:

e SM3 sử dụng tám từ 32-bit để khởi tạo bộ đệm Các giá trị khởi

tạo này được xác định trước và là các giá trị băm của các sỐnguyên tô đầu tiên

Xử lý khối:

e Thông điệp đã được tiền xử lý được chia thành các khối 512 bit

Mỗi khối được xử lý qua một vòng lặp gồm 64 vòng Trong mỗivòng, một tập hợp các phép toán logic và số học được áp dụng lêncác từ của khối và các từ trong bộ đệm

Hàm nén:

e Hàm nén của SM3 là trung tâm của thuật toán, với các phép toán

logic và số học quan trọng nhất được áp dụng dé cập nhật giá trị

của bộ đệm.

34

Trang 33

Hinh 2.4: Ham nén cua thuat toan SM3

Hình 2.4 minh hoa quá trình hoạt động của ham nén trong SM3 Dưới

đây là mô tả chi tiết các thành phan trong hình:

e Aj, Bj, Cj, Dj, Ej, Fj, Gj, Hj: Các giá tri băm trung gian, được cập

nhật sau mỗi vòng lặp.

e FF và GG: Các hàm logic chính của SM3, tương tự như các ham

Ch và Maj trong SHA-256.

e_ Wj: Các từ mở rộng từ khối thông điệp ban dau

e T: Hằng số vòng, thay đổi theo từng vòng

Quá trình băm bắt đầu với các giá trị khởi tạo và thông điệp được tiền xử

lý Mỗi khối thông điệp được xử lý qua 64 vòng lặp, trong đó các giá trị trung

gian và các hằng số vòng được sử dụng để tạo ra giá trị băm cuối cùng Kếtquả là một giá trị băm duy nhất, không thé đảo ngược và có độ dài cố định 256bit SM3 cung cấp bảo mật mạnh mẽ và hiệu suất cao, làm cho nó trở thànhlựa chọn lý tưởng cho nhiều ứng dụng yêu cầu bảo mật dữ liệu tại Trung Quốc

[11].

35

Trang 34

2.2.5 Tổng quan về thuật toán BLAKE2S:

BLAKE2s là một thuật toán băm mật mã nhanh va an toàn, được phát

triển bởi Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn vaChristian Winnerlein vào năm 2013 [12] BLAKE2s là một phan cua hoBLAKE2 và được thiết kế để cung cấp tốc độ nhanh hon và hiệu suất tốt hơn

so với các thuật toán băm khác như SHA-2 và MD5, trong khi vẫn duy trì mức

độ an toàn cao.

BLAKE2s được tối ưu hóa cho các nền tảng 32-bit và tạo ra giá trị băm

có độ dài cố định 256 bit Nó sử dụng các phép toán đơn giản và nhanh chóng,giúp giảm tải tính toán và tiết kiệm năng lượng [13] Quá trình xử lý của thuật

toán băm BLAKES sẽ qua quá trình sau:

Khởi tạo bộ đệm:

e Bo đệm khởi tạo của BLAKE2s bao gồm tám từ 32-bit, được thiết

lập với các giá trị cố định Các giá trị này dựa trên các hằng số

được xác định trước.

Xử lý khối:

e Thông điệp được chia thành các khối 512 bit Mỗi khối được xử

lý qua một vòng lặp gồm 10 vòng, trong đó mỗi vòng sử dụng

hàm nén G dé xử lý và cập nhật các giá trị băm trung gian.

Hàm nén G:

e Hàm nén G là trái tim của BLAKE2s, được thiết kế dé thực hiện

các phép toán đơn giản và hiệu quả trên các từ 32-bit Nó bao

gồm các phép cộng, XOR, và dich vòng (rotation)

36

Trang 35

Hình 2.5: Ham nén của thuật toán BLAKEs

Hình 2.5 mô tả quá trình hoạt động của hàm nén G trong BLAKE2s Hàm nén này thực hiện các phép toán trên bon giá tri a, b, c và d:

e Mix(a, b,c, d): Thực hiện các phép toán cộng, XOR và dịch vòng

trên các giá trị a, b, c và d.

© ø(2i) và o(2i+1): Là các hang số được sử dụng trong mỗi vòng dé

hoán vi các giá tri.

e Cộng, XOR, và dịch vòng: Các phép toán cơ bản được thực hiện

trong hàm nén G, bao gồm cộng giá trị a và b, XOR giá trị a với

c, và dịch vòng các giá trỊ này.

Xuất giá trị băm:

e Sau khi tất cả các khối đã được xử lý, giá trị băm cuối cùng được

kết hợp từ các từ trong bộ đệm và xuất ra dưới dạng một giá tri

256 bịt.

37

Trang 36

2.2.6 Tổng quan về thuật toán mã hóa luồng:

Tương tự như trên thì ChaCha20, Salsa20, AES và SM4 được chúng em

chọn để hiện thực vì chúng cung cấp mức độ bảo mật cao và hiệu suất vượttrội trong mã hóa luồng ChaCha20 và Salsa20 thì nỗi bật với tốc độ và khảnăng chống lại các cuộc tan công mật mã, thường được sử dung trong các giaothức bảo mật mạng và di động AES là tiêu chuẩn mã hóa toàn cầu, đảm bảo

an toàn cao với các độ dài khóa 128, 192 và 256 bit, phù hợp cho các hệ thốngbảo mật cao cấp SM4 thì lại cung cấp hiệu suất và độ an toàn tương đươngAES, được tối ưu hóa cho cả phần cứng và phần mềm, phù hợp cho các hệ

thống bảo mật tại Trung Quốc Những thuật toán này đảm bảo tính toàn vẹn

và bảo mật dữ liệu, phù hợp cho nghiên cứu và triển khai thực tế nhờ vào tính

tiêu chuân hóa quôc tê và khả năng tương thích với nhiêu nên tảng.

Tiếp đến là chúng ta hãy đi đến với định nghĩa thuật toán mã hóa luồng(stream cipher) là một phương pháp mã hóa trong đó đữ liệu gốc được mã hóa

từng bit hoặc từng byte một theo một chuỗi khóa (keystream) Khác với thuật

toán mã hóa khối (block cipher), nơi dir liệu được chia thành các khối cố định

để mã hóa, mã hóa luồng xử lý dữ liệu dưới dạng luồng liên tục Điều nàygiúp cho mã hóa luồng linh hoạt và hiệu quả hơn trong một số ứng dụng, đặcbiệt là khi cần mã hóa đữ liệu trong thời gian thực

Nguyên tắc hoạt động

e©_ Mã hóa luồng hoạt động bang cách sử dụng một khóa ban dau và

một số khởi tạo (nonce) để tạo ra một chuỗi khóa dài và giả ngẫunhiên Chuỗi khóa này sau đó được XOR với dữ liệu gốc để tạo ra

dữ liệu mã hóa Quá trình giải mã thực hiện ngược lại, sử dụng

cùng một chuỗi khóa dé XOR với dữ liệu mã hóa, từ đó khôi phụclại dit liệu gốc

38

Trang 37

Stream Cipher

Keystream Random Generator Value

Plaintext " Ciphertext C+ Plaintext

Encryption Decryption

Hình 2.6: Mô tả về mật mã luồng

Hình 2.6 minh họa cách hoạt động của một thuật toán mã hóa luồng.

Chuỗi khóa (keystream) được tạo ra từ khóa ban đầu và số khởi tạo, sau đóđược XOR với dữ liệu gốc (plaintext) dé tạo ra dit liệu mã hóa (ciphertext).Quá trình giải mã sử dụng lại chuỗi khóa này đề khôi phục lại dữ liệu gốc

2.2.7 Tổng quan về thuật toán mật mã luồng Salsa20:

Salsa20 là một thuật toán mã hóa luỗng (stream cipher) được thiết kế bởiDaniel J Bernstein vào năm 2005 Salsa20 được biết đến với tốc độ mã hóa

nhanh và mức độ bảo mật cao Thuật toán này sử dụng các phép toán đơn giản

nhưng hiệu quả, bao gồm cộng, XOR và dịch vòng (rotation) trên các từ

32-bit Salsa20 đã được chấp nhận rộng rãi trong nhiều ứng dụng bảo mật nhờkhả năng chống lại các loại tấn công mật mã phổ biến [14]

Salsa20 sử dụng một khóa bí mật dài 256 bit và một nonce (số ngẫu nhiêndùng một lần) dài 64 bit để tạo ra chuỗi khóa giả ngẫu nhiên Chuỗi khóa nàysau đó được XOR với dữ liệu gốc dé tạo ra dữ liệu mã hóa Salsa20 thực hiệncác phép toán trên một trạng thái gồm 16 từ 32-bit, được tô chức thành một

ma trận 4x4 Quy trình thực hiện mã hóa của Salsa20 được thể hiện ở các

bước sau [15]:

Khởi tạo trạng thái:

39

Trang 38

e Trang thái ban đầu của Salsa20 bao gồm 16 từ 32-bit, được thiết

lập từ khóa bí mật, nonce và một hang số cố định Trạng thái này

sẽ được cập nhật qua các vòng lặp của thuật toán.

Quá trình mã hóa:

e Salsa20 thực hiện 20 vòng (round) của các phép toán cộng, XOR

và dịch vòng trên trạng thái Mỗi vòng bao gồm hai giai đoạn:

Quarter Round và Diagonal Round Các giai đoạn này giúp trộn

lẫn các từ trong trạng thái dé tạo ra chuỗi khóa an toàn

Ham Quarter Round:

e Ham Quarter Round là một phan quan trong cua Salsa20, thuc

hiện các phép toán trên bốn từ trong trang thái dé tao ra các từmới Các phép toán bao gồm:

o Cộng: Cộng hai từ lại với nhau.

o XOR: Thực hiện phép XOR trên hai từ.

o Dịch vòng: Dịch vòng các bit của từ theo một số lượng xác

định.

Hình 2.7: Ham Quarter Round của thuật toán Salsa20

Hình 2.7 minh họa quá trình hoạt động của hàm Quarter Round trong

Salsa20 Hàm này thực hiện các phép toán trên bốn giá trị a, b, c và d:

40

Trang 39

e Cộng: Giá tri a được cộng với b.

e XOR: Giá trị d được XOR với a và dịch xoay phải 7 bịt.

e Dịch vòng: Các giá tri được dich theo các bit khác nhau 9, 13, 18)

dé tạo ra các giá tri mới ai+1, bi+1, ci+1, di+1Xuất dữ liệu mã hóa:

e Khi hoàn thành 20 vòng của các phép toán, trạng thái cuối cùng

được sử dụng để tạo ra khối mã hóa (keystream block) Khối mãhóa này sau đó được XOR với dữ liệu gốc dé tạo ra dữ liệu mã

hóa.

Tóm tại thì Salsa20 cung cấp một giải pháp mã hóa luồng nhanh chóng

và an toàn, làm cho nó trở thành lựa chọn lý tưởng cho nhiều ứng dụng yêucầu mã hóa dữ liệu thời gian thực và bảo mật mạnh mẽ

2.2.8 Tổng quan về thuật toán mật mã luồng ChaCha20:

ChaCha20 là một thuật toán mã hóa dòng (stream cipher) được thiết kếbởi Daniel J Bernstein ChaCha20 là một biến thé cải tiến của thuật toán

Salsa20, nổi tiếng với tính năng bảo mật mạnh mẽ và hiệu suất cao [16].

ChaCha20 được thiết kế để cung cấp khả năng mã hóa nhanh chóng và antoàn, đặc biệt là trên các thiết bị có tài nguyên hạn chế như điện thoại di động

và thiết bị nhúng

ChaCha20 sử dụng một khóa bí mật (secret key) dai 256 bit và một nonce

(số ngẫu nhiên dùng một lần) dài 96 bit dé mã hóa dữ liệu Thuật toán này

thực hiện các phép toán đơn giản như cộng, XOR, và dịch vòng (rotation) trên

các từ 32-bit, giúp tối ưu hóa hiệu suất và giảm thiểu rủi ro bảo mật Quá trình

mã hóa ChaCha20 sẽ trai qua các bước sau:

Khởi tạo trạng thái:

e Trạng thái của ChaCha20 bao gồm 16 từ 32-bit, được khởi tạo từ

khóa bí mật, nonce, và một hằng số cố định Trạng thái này sẽđược cập nhật trong suốt quá trình mã hóa

41

Trang 40

Quá trình mã hóa:

ChaCha20 thực hiện 20 vòng (round) của các phép toán cộng,

XOR, và dịch vòng trên trạng thái Mỗi vòng bao gồm bốn phép

toán Quarter Round, giúp trộn lẫn các từ trong trạng thái để tạo ra

kêt quả mã hóa an toàn.

Hàm Quarter Round:

Hàm Quarter Round là trái tim của ChaCha20, thực hiện các phép

toán trên bốn từ trong trạng thái để tạo ra các từ mới Các phéptoán bao gồm:

Cộng: Cộng hai từ lại với nhau.

XOR: Thực hiện phép XOR trên hai từ.

Dịch vòng: Dịch vòng các bit của từ theo một số lượng xác định.Mặc dù ChaCha20 và Salsa20 đều sử dụng cau trúc ham QuarterRound dé thực hiện các phép toán cộng, XOR và dịch vòng,nhưng có một số khác biệt chính giữa hai thuật toán:

các biến thê khác nhau của chuỗi khóa, ảnh hưởng đến hiệu suất

va bao mật của môi thuật toán.

Cấu trúc vòng lặp:

ChaCha20: ChaCha20 sử dụng 20 vòng (round), trong đó mỗi

vòng bao gồm hai giai đoạn: Column Round và Diagonal Round

Salsa20: Salsa20 cũng sử dụng 20 vòng, nhưng các giai đoạn

trong mỗi vòng khác nhau với cách sắp xếp và ứng dụng các hàm

Quarter Round và Diagonal Round.

Tôc độ và hiệu suât:

42

Ngày đăng: 06/12/2024, 15:33

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN