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: Bộ tăng tốc đa chế độ hiệu suất cao cho mật mã hậu lượng tử CRYSTALS-Kyber

70 0 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 đề Bộ tăng tốc đa chế độ hiệu suất cao cho mật mã hậu lượng tử CRYSTALS-Kyber
Tác giả Nguyễn Đinh Nhật
Người hướng dẫn TS. Phạm Hoài Luân, TS. Lâm Đức Khải
Trường học Trường Đại học Công nghệ Thông tin, Đại học Quốc gia Thành phố 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ố Thành phố Hồ Chí Minh
Định dạng
Số trang 70
Dung lượng 79,99 MB

Nội dung

TOM TAT KHÓA LUẬNCRYSTALS-Kyber, gọi tắt là Kyber, là một thuật toán mã hóa dữ liệu mớiđây đã được NIST chuẩn hóa đề bảo vệ dữ liệu trước sự phát triển nhanh chóng củamáy tính lượng tử,

Trang 1

ĐẠI HOC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TINH

NGUYEN ĐÌNH NHAT - 20521707

KHÓA LUẬN TÓT NGHIỆP

BO TANG TÓC DA CHE ĐỘ HIỆU SUAT CAO CHO

MAT MA HAU LUONG TU CRYSTALS-KYBER

HIGH-PERFORMANCE MULTIMODE ACCELERATOR FOR

POST-QUANTUM CRYPTOGRAPHY CRYSTALS-KYBER

CU NHAN KY THUAT MAY TINH

GIANG VIEN HUONG DAN

TS PHAM HOAI LUAN

TS LAM ĐỨC KHAI

TP HO CHÍ MINH, 2024

Trang 2

LỜI CẢM ƠN

Đầu tiên, em xin gửi lời tri ân sâu sắc và chân thành nhất đến quý thầy côtai Trường Đại học Công nghệ Thông tin — Dai học Quốc gia Thanh phố Hồ Chí

Minh Chính những kiến thức bổ ích và những bai học quý báu mà thầy cô đã

truyền đạt trong suốt quá trình học tập đã giúp em có nền tảng vững chắc để hoàn thành đề tài khóa luận tốt nghiệp này Đặc biệt, em xin bày tỏ lòng biết ơn

chân thành đến các thầy cô trong Khoa Kỹ thuật Máy tính đã tận tâm giảng dạy

và tạo mọi điều kiện thuận lợi cho em

Em cũng xin gửi lời cảm ơn sâu sắc đến cha mẹ, bạn bè và những ngườithân yêu đã luôn ủng hộ và tạo điều kiện tốt nhất dé em có thé tập trung học tập

và nghiên cứu.

Em xin chân thành cảm ơn sự giúp đỡ tận tình của thầy TS Phạm Hoài

Luân — giảng viên Khoa Kỹ thuật Máy tính và thầy TS Lâm Đức Khải — giảng

viên Khoa Kỹ Thuật Máy Tính kiêm Trưởng Phòng Đào Tạo Trường Đại học

Công nghệ Thông tin — Dai học Quốc gia Thành phố Hồ Chí Minh, những ngườithầy đã hướng dẫn em với sự nhiệt huyết và trách nhiệm cao trong suốt quátrình thực hiện đề tài Chính sự hướng dẫn tận tình và những góp ý quý báu củacác thầy đã giúp em hoàn thành luận văn này một cách tốt nhất

Cuối cùng, em xin bày tỏ lòng biết ơn sâu sắc đến tất cả quý thầy côtrong Khoa Kỹ thuật Máy tính, chúc thầy cô luôn mạnh khỏe, hạnh phúc và tiếptục gặt hái nhiều thành công trong sự nghiệp giáo dục Những thành quả hômnay của em đều nhờ sự chỉ dạy tận tâm của quý thay cô

Một lần nữa, em xin chân thành cảm ơn!

TP Ho Chí Minh, ngày 01 tháng 08 năm 2024

Sinh viên thực hiện

Nguyễn Đình Nhất

Trang 3

MỤC LỤC

Chương 1 MỞ ĐẦU 2 E2E2EE2EEE1EE121121121121121121121111211 1.11 xe 4

1.1 Lý do chọn đề tài -:- St St EEEE1211211211211211211 211211211 cree 41.2 Mục đích và mục tiêu của đỀ tài -c-c St keEEEkSEEEEkekerkrkerrxerrre 5

1.2.1 Mục đích SG 11H SH 5 1.2.2 Mục tiêu - G Q Q90 HT ng xxx ven 6

1.3.1 Đối tượng nghiên cứu ¿+¿©2+22++2E+tEEEtEEterkeerxerrkerree 6

1.3.2 Pham vi nghiÊn CỨU - d5 + 3E khớp 7

14 Ý nghĩa khoa học và thực tiỄn - ¿2-5 2 5 5£ +E+EEE£E+EEEzEeErkrrrrsreee 7

1.4.1 Ý nghĩa khoa học - 22Et+EE+EE+EE+EE2EEEEEEEEEEEEErkrrrerkeee 71.4.2 Ý nghĩa thực tiễn .2c ke E1 11c crre, 8Chương2 TONG QUAN -:-5E- 2 E2 EEEE2E1211211211211211211 1121.11.11 te 9

2.1 Tổng quan về mã hÓa -©+- 2 + E+SE+EE+EE£EEEEEEEEEEEEEEEEEEEEEEEEErrkrkrree 92.2 Tổng quan về mật mã hậu lượng tử - 2-2 s2 2+++££+E++x++£zzzzzzzzxez 102.3 Tổng quan về thuật toán mật mã hậu lượng tử CRYSTALS-Kyber 10Chương 3 CƠ SỞ LÝ THUYÊT - 2: 2 2+ St+EE£EE2EE2EE+EEEEEEEEEerrrrrerreee 12

3.1 Các tham số CRYSTALS-Kyber 2- 22: 5+2++2x++zxezrxrsrxrrrxee 123.2 Lý thuyết về Kyber -¿-©2+©+++x2EkC2EE2E1E21122112711271.211.211 21c 13

3.2.1 Kyber.CPAPKE - Án nn TT HH HH HH net 15 3.2.2 Kyber.CCAKEM -.SQ TH nH TH HH HH rệt 21

Chương 4 THIET KE PHAN CỨNG -¿ 2 +++£2£++£E£+E+£Exerxezrxrrxee 25

4.1 Kiến trúc tổng quan của phần cứng CRYSTALS-Kyber - 254.2 Thiết kế Hash-Core dựa trên SHA3 ¿-2- 5t +x+EeEE+E+EEEE+EeErxerererxee 26

Trang 4

4.3 _ Thiết kế phan cứng lấy mẫu đồng nhất - 2-2 2+2+z+s+zsezs++z 30

4.4 _ Thiết kế phần cứng lấy mẫu phân phối nhị thức trung tâm 31

4.5 _ Thiết kế phan cứng Unified NTT/INTT cccccccsscssseseessessessesesseeseeseesesees 34

4.5.1 Kiến trúc phần cứng Fully-Pipelined Butterfly Unit (FPBU) 394.5.2 Kiến trúc phần cứng Barret-Reduce -¿ s¿©csz2:xccs+2 414.6 _ Thiết kế phan cứng Pointwise Multiply Accumulate 2-5: 424.7 Thiết kế phần cứng Unified Add/Sub mod q, .: -:-2z5z 444.8 _ Thiết kế phần cứng các Compress, Decompress, Encode và Decode 45Chương 5 ĐÁNH GIÁ KET QUẢ - 2-52 2+S£+E++EE+E2EE+EzErErrerreee 49

5.1 _ Đánh giá trên phần mềm Vivado 2020.2.2 -2¿©¿c++csz2s++zx+cse2 49

5.3 So sánh CKA trên FPGA với các CPU mạnh nhất 2-5-5 ssc+ 54

5.4 So sánh với các nghiên cứu khác dựa trên FPGA «++-«<+++ 56

5.4.1 Phan cứng Unified NTT/INTT 2-2 22s ++c+£+rzrszes 565.4.2 Phần cứng CRYSTALS-Kyber Accelerator -: :-s+ 57Chương 6 KẾT LUẬN VÀ HƯỚNG PHAT TRIÊỀN . ¿¿s+¿ 59

OL KGt lua nh 596.2 Hướng phát triển -¿-2¿++2E++2E+tEEEEEEEEEEEEEEEEkrrrkrrrkerrree 60

Trang 5

DANH MỤC HÌNH

Hình 2.1: Mô hình mã hóa đối xứng - 2-2 2 + £+E£+EE+E++E++EE£EE2E£EzEzEerreee 9Hình 2.2: Mô hình mã hóa bất đối xứng - 2-2 2 + £+++E+E+E+EzEzEzrerree 9Hình 3.1: Khái quát độ khó của bài toán giải quyết van đề LWE trên Lattice-based

¬ gỔẦ , 14Hình 3.2: Khái quát cơ chế giao tiếp với Kyber 2-2-2 2+c£+£z+£z+zzzzzeee 14

Hình 3.3: Kyber.CPAPKE.KeyGenQ: key generation [ Ï] -««<<s«><<s++ 15 Hình 3.4: Kyber.CPAPKE.Enc(pk, m, r): encryption [ Ï ] .-« -««<ss«+<ss++ 16 Hình 3.5: Kyber.CPAPKE.Dec(sk, c): decryption [ Ï] - «-+-««<<<ec<sseessees 17

Hình 3.6: Thuật toán Parse [1] << 6+ 1333211111111 1£82 1182115811118 1 1211k cez 17 Hinh 3.7: Dinh nghia Bn 0777 18 Hình 3.8: Thuật toán CBD [ [] - c2 S2 22 21151121151 kg HH re 18 Hình 3.9: Thuật toán Decodee [1] - -¿- c 6 2221132211133 E335 xxe+ 18 Hình 3.10: Kyber.CCAKEM.KeyGen\(() - - Sc s11 nề 21

Hình 3.11: Kyber.CCAKEM.ENnc(pRk) ccccccccccsescccseessesssessesseeseeeseeseeeseeseesseeneeesseneees 22

Hình 3.12: Kyber.CCAKEM.Dec(c, SK) ceccececceseesceseeseesceseeeeeeeneeeeeneeeeeeneeneeaeeaees 23

Hình 4.1: Kiến trúc tong quan của phan cứng CRYSTALS-Kyber 25Hình 4.2: (a) Kiến trúc phần cứng Hash-Core với (b) phần cứng Keccak 26Hình 4.3: Kiến trúc phần cứng lấy mẫu đồng nhất 2-2 2 2+z+sz+sz 2š 31Hình 4.4: (a) Phần cứng lấy mẫu phân phối nhị thức trung tâm với (b) phần cứng

0:00699 11 33

Hình 4.5: Hai đơn vi Butterfly NTT/INTT: (a) Cooley- Tuckey (CT) Butterfly, (b)

Gentleman-Sande (GS) Butterfly . c2 113111 9 1 vn ng rệt 35

Hình 4.6: Thuật toán NTT độ phức tạp thấp - 2 s¿+£2++x£+x++£xerxzzxserxee 36

Hình 4.8: (a) Kiến trúc tong quan của phan cứng Unified NTT/INTT trong Kyber

với (b) bảy NTT-Core và một NTT-Core cho xử lý hậu kỳ - -«++ 38

Hình 4.9: Kiến trúc phần cứng Fully-Pipelined Butterfly Unit - 39Hình 4.10: Kiến trúc phần cứng (a) cộng mod q và (b) trừ mod q - 40

Trang 6

Hình 4.11: Thuật toán Modified Barrett Reduce [6T] - -<- 5555 ++5<<<<<++<+<+ 41

Hình 4.12: Kiến trúc phần cứng Modified Barrett Reduce : s¿+¿ 42Hình 4.13: Kiến trúc phần cứng (a) Pointwise Multiply Accumulate, (b) Pointwise

Multiply Fully-Pipelined KẾ 43

Hình 4.14: Kiến trúc phan cứng (a) Unified Add/Sub mod q, (b) Unified Add/Sub

0058000 44

Hình 4.15: Kiến trúc phần cứng (a) Compressdu, (b) Divider - 46

Hình 4.16: Kiến trúc phần cứng (a) Decompressdu, (b) Multiplier by Q 46Hình 4.17: Kiến trúc phần cứng Encode1 -. -¿: + ©z++++cx++zx+zxtzrxerrsez 47Hình 4.18: Kiến trúc phần cứng Decode1 -¿-2-+¿+s2+++++£+£++£x++xzzzs+rsez 47

Hình 5.1: Mô hình kiểm tra trên phần mềm Vivado 2020.2.2 cccscsssecsesssessesseesseeses 49

Hình 5.2: Kết quả so sánh 2 file ciphertext của phần mém và phan cứng mô phỏng

trên Vivado 2020.2.2 ta0 Ta - c 00101122211 1111112301 11111001111 11g 11 ng vế 50

Hình 5.3: Kết quả so sánh 2 file message của phần mềm và phần cứng mô phỏng

trên Vivado 2020.2.2 {ẠO Ta - - -.-c 1 001111221111 111261 111111001111 11g 1v ng vn gưy 50

Hình 5.4: Mô hình SoC dé triển khai và đánh giá hệ thống .2- 5: 5¿ 52Hình 5.5: Sơ đồ khối khi triển khai IP Kyber trên FPGA .: -¿-¿5+¿ 53Hình 5.6: Phân tích định lượng về thời gian thực thi CKA và tích năng lượng với độtrễ trên các tần số khác nhau và kích thước đầu vào khác nhau 5: 54

Hình 5.7: So sánh thời gian thực thi và tích năng lượng với độ trễ giữa CKA va

Trang 7

DANH MỤC BANG

Bảng 3.1: Tập tham số của Kyberr - :- 2 + E+SE+EE+EE£EE+EE2EEEEEEEEEEEEEErErrrerreree 12Bang 4.1: Các chế độ của phần cứng Hash-COre 2-2 2 2 2+££+£z+£z+£z22z+‡ 28Bảng 5.1: So sánh kiến trúc phần cứng Unified NTT/INTT được đề xuất với các

nghiên cứu tiên tiến khác trên Artix-7 FPGA 2-2 2 2+ +2 E++EE+E+EzEzEzrxee 56Bảng 5.2: So sánh với các nghiên cứu tiên tiến dựa trên kết quả sau triển khai

CRYSTALS-Kyber Accelerator với Artix 7 FPGA - cv sssereeres 57

Trang 8

DANH MỤC TU VIET TAT

Viết tắt Tiếng Anh Tiếng Việt

Al Artificial Intelligence Tri tuệ nhân tao

Application Specific Mach tich hop danh riéng ASIC ,

Integrated Circuit cho ứng dung

ADP Area-Delay Product Hiệu qua ela Diện Tích

và Độ Trê

CPU Central Processing Unit Bộ xử lý trung tâm

Digital Signature A2 ~Lự, A

DSA Algorithm Thuật toán chữ ký sô

ECC Elliptic-Curve Mật mã đường cong

Cryptography Elliptic

Field-Programmable Gate | Lap Trinh Trường Mang

FPGA R

Array Công loT Internet of Things Internet vạn vật

Inverse Number Theoretic Biến đôi lý thuyết số

INTT : ;

Transform nghich dao

LWE Learning-With-Errors Học với lỗi

NIST National Institute of Viện Tiêu Chuân và Công

Standards and Technology |_ nghệ Quoc Gia Hoa Ky

NTT died’ i Biến đổi ly thuyết số

Transform

PQC Post-Quantum Computer Mật mã hậu lượng tử

PWM Pointwise Multyply Nhân theo điểm

Hiệu quả giữa Năng PDP Power-Delay Product Lượng Tiêu Thụ và Độ

Tré

RSA Rivest-Shamir-Adleman

SoC System on Chip Hệ thống trên chip

Trang 9

TOM TAT KHÓA LUẬN

CRYSTALS-Kyber, gọi tắt là Kyber, là một thuật toán mã hóa dữ liệu mớiđây đã được NIST chuẩn hóa đề bảo vệ dữ liệu trước sự phát triển nhanh chóng củamáy tính lượng tử, đe doa đáng ké đến các hệ thống mật mã truyền thống như RSA

và ECC Do đó, nhiều nghiên cứu về phần cứng đã được thực hiện dé tối ưu hóahiệu suất và hiệu quả năng lượng của Kyber cho các hệ thống hiện đại như Internetvạn vật (IoT) Tuy nhiên, hầu hết phần cứng hiện tại của Kyber vẫn gặp khó khăn

trong việc đạt được tôc độ cao với hiệu suât phân cứng cao.

Vì vậy, nghiên cứu này đề xuất một thiết kế phần cứng cho bộ tăng tốcCRYSTALS-Kyber (CKA) đa chế độ hiệu suất cao nhằm hỗ trợ tất cả các hoạtđộng chế độ, bao gồm tạo khóa, mã hóa và giải mã, với tốc độ cao và tiêu thụ điệnnăng thấp Ba ý tưởng sáng tạo được đề xuất cho CKA đề đạt được những mục tiêunay là: chia sẻ tài nguyên module dé tái sử dung hầu hết các module chính trong bachế độ hoạt động: triển khai mô-đun Unified NTT/INTT được tối ưu hóa tốc độ vàdiện tích do đây là tính toán phức tạp và tốn thời gian nhất; và loại bỏ MontgomeryReduce chỉ sử dụng phương pháp rút gọn tối ưu Barrett Reduce và PipelinedPointwise Multiply Accumulate dé tăng tốc hoạt động nhân phức tap

Đáng chú ý, module Unified NTT/INTT của nghiên cứu cũng tốt hơn từ 1.64đến 8.3 lần so với các nghiên cứu NTT/INTT trước đây về Area-Delay Product(ADP) CKA đã được triển khai thành công trên Zynq UltraScale+MPSoC ZCU102FPGA, trong đó Power-Delay Product (PDP) của CKA ít nhất tốt hơn 12.3 lần sovới CPU mạnh mẽ So với các kiến trúc Kyber trước đây ở ba chế độ hoạt động,CKA nhanh hơn ít nhất 1.38 lần và tốt hơn ít nhất 1.9 lần về ADP

Trang 10

CRYSTALS-Kyber, briefly called Kyber, is an asymmetric encryption algorithm standardized by NIST to maintain data security in the face of the rapid

development of quantum computers, which significantly threaten traditional

cryptographic systems such as RSA and ECC Accordingly, multiple hardware studies have been conducted for Kyber to optimize performance and energy

efficiency for modern systems such as the Internet of Things However, most

existing Kyber hardware still faces challenges in achieving high speed with high hardware efficiency.

Therefore, this research proposes a hardware design for a high-performance,

multimode CRYSTALS-Kyber accelerator (CKA) to support all operating modes,

including key generation, encryption, and decryption, with high speed and low power Three innovative ideas are proposed for CKA to achieve these goals: resource-sharing modules to reuse almost all main modules in three operating

modes, implement a Unified NTT/INTT module to optimize the speed and area of

the most complex and time-intensive module, and pipelined pointwise

multiply-accumulate and eliminate the Montgomery Reduce method, and use only the modified Barrett Reduce optimal reduction method to accelerate the complex

multiplication operation.

Notably, compared to NTT/NTT works, our Unified NTT/INTT is also 8.3 times better in area-delay product The CKA is successfully implemented on the Zynq UltraScale+ MPSoC ZCU102 FPGA, where the power-delay product of CKA

1.64-is at least 12.3 times better than powerful CPUs Compared to previous Kyber architectures in three operating modes, the CKA is at least 1.38 times and 1.9 times

better in execution time and area-delay product, respectively.

Trang 12

Chương 1 MỞ ĐẦU

1.1 Lý do chọn đề tài

Hiện nay, sự phát triển mạnh mẽ trong các lĩnh vực như chăm sóc sức khỏe,

trò chơi điện tử, viễn thông, trí tuệ nhân tao (Artificial Intelligence — AI) và Internet

vạn vật (Internet of Things — IoT), thì các mối đe dọa trên về bảo mật cũng đang

gia tăng Sự phát triển nhanh chóng của máy tính lượng tử, với khả năng vượt qua

siêu máy tính hiện đại, đang trở thành mối đe dọa về vấn đề bảo mật Các thuật toán

bao mật hiện tại như Rivest-Shamir-Adleman (RSA) hay Elliptic-Curve

Cryptography (ECC) có thé dé dàng bị tan công bởi các thuật toán trên máy tínhlượng tử như thuật toán Shor Dé chống lại điều này, Viện Tiêu chuẩn và Công

nghệ Quốc gia (National Institute of Standards and Technology — NIST) của Hoa

Ky đã khởi xướng chương trình chuẩn hóa các thuật toán mật mã hậu lượng tử

(Post-Quantum Computer — PQC) vào năm 2016.

Trải qua nhiều vòng đánh giá nghiêm ngặt, nhiều thuật toán không vượt qua,nhưng cũng có nhiều thuật toán cho thay khả năng bảo mật mạnh mẽ va đủ sứcchống lại các cuộc tấn công của máy tính lượng tử trong tương lai Các thuật toánnày chủ yếu dựa trên: Lattice-based (dựa trên lưới), Code-based (dựa trên mã),Multivariate Quadratic Equations (dựa trên phương trình bậc hai đa biến), Hash-

based (dựa trên ham băm), Supersingular Elliptic Curve Isogeny (dựa trên isogeny

của đường cong elliptic siêu đặc) và Symmetric-key (khóa đối xứng) Trong đó, cácthuật toán Lattice-based đang cho thấy tiềm năng to lớn của mình với nhiều thuậttoán mã hóa hậu lượng tử đã triển khai Lattice-based Các thuật toán Lattice-based,

bao gồm CRYSTALS-Kyber (Kyber), CRYSTALS-Dilithium, Falcon, Saber va

NewHope, đã nổi lên như những ứng cử viên day triển vọng cho chuẩn hóa Vượtqua tất cả, CRYSTALS-Kyber hay gọi tắt là Kyber đang là thuật toán cho thấy khảnăng bảo mật vượt trội và được đánh giá TẤt cao trong giới học thuật và doanh

nghiệp Kyber là thuật toán mã hóa bất đối xứng đã được NIST công bố là đã được

Trang 13

chuân hóa và có thê giúp máy tính cô điên chông lại các cuộc tân công bởi máy tính lượng tử trong tương lai.

Bat chấp những hứa hẹn về các thuật toán Lattice-based như Kyber lại gặpphải những thách thức do tính phức tạp vốn có của phép nhân đa thức, có độ phứctạp O(n”) đối với n hệ số (n = 256 đối với Kyber) Bên cạnh phép nhân đa thức thìKyber còn dựa vào một số phép tính và thuật toán cũng khá phức tạp và chiếmlượng lớn thời gian tính toán và xử lý như hàm băm (hash) theo chuẩn FIPS-202.Hiện nay, đã có nhiều nghiên cứu triển khai Kyber trên nhiều nền tảng và nhiềucách thức khác nhau như đồng phần cứng-phần mềm, RISC-V, ASIC, FPGA, Các nghiên cứu triển khai Kyber trên phần cứng như FPGA hay ASIC cho thấy cáccải thiện rõ rệt về thời gian thực thi cũng như tài nguyên sử dụng Những nghiêncứu dù đã đạt được những thành tựu to lớn nhưng vẫn còn hạn chế khi đa số cácphần cứng này chỉ hoạt động như Server (máy chủ: tạo khóa và giải mã) hoặc Client(máy khách: mã hóa) Dù có một số ít đã triển khai thành công phần cứng Kyber cóthé hoạt động linh hoạt như Server hoặc Client trên cùng phan cứng duy nhất nhưng

vẫn chưa đạt được hiệu quả cao giữa diện tích và thời gian thực thi (Area-Delay

Product — ADP) Đồng thời việc triển khai trên FPGA cũng cho thấy sự linh độngkhi có các chỉnh sửa cho thiết kế FPGA cho thấy nó là một nền tảng tốt dé pháttriển các thuật toán phức tạp xuống phần cứng thuần cho các nghiên cứu và đánh

Trang 14

phần cứng Verilog và đồng thời sử dụng các ngôn ngữ lập trình để thiết kế phầnmềm hỗ trợ truyền nhận dữ liệu cho phần cứng trong hệ thống SoC Giải quyết vấn

đề phát triển một phần cứng duy nhất có cả khả năng chuyền đổi linh hoạt giữaServer và Client Sau đó sẽ tổng hợp kết quả và đánh giá cũng như so sánh với cácnghiên cứu khác Cuối cùng sẽ bàn luận về các hướng nghiên cứu có khả năng đểphát triển của đề tài

1.2.2 Mục tiêu

Nghiên cứu, phân tích và tìm hiểu lý thuyết về thuật toán CRYSTALS-Kyber,

cũng như triển khai thuật toán này trên phần cứng

Hoàn thiện việc thiệt kê phân cứng và xác minh chức năng của nó thông qua

mô phỏng sử dụng phần mềm Vivado

Triển khai phần cứng trên ZCU102 FPGA, dé chạy phục vụ cho việc xác minhphần cứng thực hiện đúng chức năng trong thực tế

Mục tiêu chính của đề tài bao gồm:

1) Thiết kế phần cứng sao cho có thé thực hiện 3 chế độ chính: Tạo khóa (Key

Generation — Key.), Mã hóa (Encryption — Enc.) và Giải mã (Decryption —

Dec.), hay nói cách khác là có thé hoạt động như một Client hoặc Server

2) Triển khai thành công trên SoC dé xác minh độ chính xác của phần cứng.

3) Đảm bảo phan cứng đạt được hiệu suất cao với ADP tổng thấp hơn 0.8

1.3 Đối tượng và phạm vi nghiên cứu

1.3.1 Đối tượng nghiên cứu

Khóa luận nghiên cứu và hiện thực một thiết kế phần cứng cho thuật toán mật

mã hậu lượng tử CRYSTALS-Kyber bằng việc sử dụng ngôn ngữ mô tả phần cứngVerilog và đánh giá, so sánh với các nghiên cứu khác trên nền tảng FPGA Khóaluận cũng sẽ hiện thực một hệ thống SoC dé xác minh độ chính xác của phần cứng

trong hệ thống thực tế.

Trang 15

1.3.2 Pham vi nghiên cứu

Phạm vi của khóa luận là thuật toán mật mã hậu lượng tử CRYSTALS-Kyber

với tham số k là 3 (k có thé là 1, 3 và 5 tương ứng với Kyber-512, Kyber-768 vàKyber-1024) nói cách khác phạm vi của đề tài là thực hiện thuật toán CRYSTALS-Kyber-512 Ứng với các giá trị k khác nhau thì Kyber sẽ có mức độ bảo mật sẽ khácnhau với Kyber-1024 là phiên bản được cho là có khả năng bảo mật cao nhất Con

số 512, 768, 1024 không phải là độ dài của khóa hay bất kỳ đầu ra nào của thuật

toán Nhưng có thé đoán được đó là kích thước của tổng số lượng các hệ số nhiễu

trong thuật toán Với k = 2 thuật toán sẽ có 2 vector đa thức nhiễu e với 2 phần tửvới mỗi phan tử là 1 đa thức gồm 256 hệ sé Suy ra, với k = 2 thì sẽ có 512 hệ số

nhiễu khi thực hiện thuật toán.

Nhưng với kiến thực, khả năng và cũng như thời gian hạn chế thì khóa luậnchỉ dừng lại ở việc hiện thực một thiết kế phần cứng cho Kyber-512 Khóa luận tậptrung chủ yếu vào việc phải hiện thực và triển khai được phần cứng Kyber-512 nhưtên đề tài là “Bộ tăng tốc đa chế độ hiệu suất cao cho mật mã hậu lượng tửCRYSTALS-Kyber” Khóa luận cũng sẽ hiện thực một hệ thống SoC đề thực hiện

việc xác minh độ chính xác của phân cứng khi đưa vào hệ thông thực tê.

1.4 Y nghĩa khoa học và thực tiễn

1.4.1 Y nghĩa khoa học

Mật mã hậu lượng tử thực sự đang mở ra một cánh cửa mới về viễn cảnh bảomật Việc triển khai các thuật toán mật mã hậu lượng tử lên phần cứng thuần hayđồng phần cứng-phần mềm cũng như các nền tảng khác như RISC-V, ASIC,

CGRA, không chỉ là một sự cần thiết, mà còn là một bước đột phá quan trọng

trong việc bảo vệ thông tin Việc này không chỉ đảm bảo an toàn cho dữ liệu cá

nhân mà còn mở ra cơ hội cho sự phát triển bền vững của các lĩnh vực như tàichính, y tế, loT và trí tuệ nhân tạo Trên hết, nó tạo ra nền tảng cho sự tin cậy và anninh trong thế giới số ngày nay và trong tương lai

Trang 16

1.4.2 Y nghĩa thực tiễn

Việc triển khai thuật toán mật mã hậu lượng tử CRYSTALS-Kyber lên phầncứng thuần hoặc đồng phần cứng/phần mềm cũng như các nền tảng khác như RISC-

V, ASIC, CGRA, có ý nghĩa rất lớn trong các hệ thống mật mã và hệ thống IoT

Nó không chỉ mang tính ứng dụng thực tế mà còn đóng góp quan trọng vào việcđánh giá và phát triển bảo mật trong lĩnh vực này, đặc biệt trong việc truyền thông

dữ liệu và quản lý các thiết bị kết nồi

Trang 17

Chuong 2 TONG QUAN

2.1 Tổng quan về mã hóa

Mã hóa là phương pháp biến đổi dit liệu sao cho chỉ có các bên được phép mới

có thê truy cập được nội dung thông qua việc giải mã dữ liệu đã được mã hóa Quá

trình này chuyển đổi dữ liệu gốc thành dữ liệu mã hóa bằng khóa mật mã Chỉ

những người có đúng khóa mật mã mới có khả năng giải mã và đọc được dữ liệu đã

được mã hóa Có hai loại mã hóa chính: mã hóa đối xứng và mã hóa bat đối xứng

Hình 2.1 trình bày mô hình mã hóa đối xứng sử dụng duy nhất một khóa màtất cả các bên đều dùng chung đòi hỏi người gửi và người nhận phải chia sẻ khóamột cách an toàn và bí mật trước khi trao đôi thông tin

Secret Key

N v y N

= Encryption Fy Decryption =

Plain Text Cipher Text Plain Text

Hình 2.1: Mô hình mã hóa đối xứng

Hình 2.2 trình bày mô hình mã hóa bất đối xứng sử dụng hai khóa khác nhau:

một khóa để mã hóa và một khóa để giải mã Khóa dùng để mã hóa là khóa công

khai, trong khi khóa dùng dé giải mã là khóa bí mật

2

Public Key Secret Key

N v M N

= Encryption Fy Decryption =

Plain Text Cipher Text Plain Text

Hình 2.2: Mô hình mã hóa bat đối xứng

Trang 18

2.2 Téng quan về mật mã hậu lượng tử

Ké từ khi NIST khởi động chương trình chuẩn hóa các thuật toán với mục đíchtìm kiếm các thuật toán mật mã có khả năng bảo vệ máy tính cô điển hiện này khỏi

các cuộc tấn công mạng của máy tính lượng tử trong tương lại Mật mã hậu lượng

tử hay Post-Quantum Computer là trở thành một dé tài đang rất sôi nổi trong giới

nghiên cứu cũng như ngoài doanh nghiệp Máy tính lượng tử được cho rằng sẽ phá

vỡ các hệ thống bảo mật truyền thống như RSA, ECC hay DSA trong thời gian

ngắn, gây đe dọa lớn tới bảo mật dữ liệu.

Với nhiều vòng đánh giá và thử nghiệm dựa trên các lý thuyết của NIST nhiềuthuật toán đã đáp ứng được các nhu cầu như khả năng chống lại các cuộc tấn côngcủa máy tính lượng tử, độ an toàn cao cũng như khả năng triển khai thuật toán với

các công nghệ hiện có.

Các thuật toán chủ yếu dựa vào Lattice-based (dựa trên lưới, Code-based (dựatrên mã), Multivariate Quadratic Equations (dựa trên phương trình bậc hai đa biến),

Hash-based (dựa trên ham băm), Supersingular Elliptic Curve Isogeny (dựa trên

isogeny của đường cong elliptic siêu đặc) và Symmetric-key (khóa đối xứng)

Dù đã có nhiều thuật toán được chuẩn hóa nhưng các thuật toán này lại đanggặp phải nhiều hạn chế như tài nguyên tính toán Mỗi thuật toán mật mã hậu lượng

tử có rất nhiều các thuật toán phức tạp khác nhau được áp dụng vào dé tăng độ baomật song cũng dẫn đến việc tạo ra một lượng lớn các phép tính mà CPU phải xử lýdẫn đến sự thiếu hiệu quả khi triển khai vào các hệ thống thực tế khi tốc độ tínhtoán là quá lâu Do đó, các nghiên cứu về việc tối ưu các thuật toán mật mã hậulượng tử đang rất được sự quan tâm từ giới học thuật và doanh nghiệp

2.3 Tổng quan về thuật toán mật mã hậu lượng tử CRYSTALS-Kyber

Trãi qua nhiều vòng đánh giá thì CRYSTALS-Kyber hay Kyber đang là mộtthuật toán dành được rất nhiều sự quan tâm Kyber là một trong số nhiều thuật toán

mà NIST đã chuẩn hóa với khả năng bảo mật đáng kinh ngạc Kyber có thể được

10

Trang 19

triển khai có các ứng dụng mã hóa, IoT hay chữ ký số Kyber là một cơ chế đóng

gói khóa bảo mật IND-CCA2 (KEM), có tính bảo mật dựa trên độ khó của việc giải

quyết vấn đề Learning-With-Errors (LWE) trên Lattice-based Các thuật toánLattice-based được cho là có khả năng chống lại các tắn công bằng máy tính lượng

tử.

Kyber là một thuật toán thé hiện được sự cân bằng đến kinh ngạc giữa độ antoàn và hiệu suất thông qua việc điều chỉnh các tham số Điều này làm cho Kybertrở thành khả thi hơn khi triển khai vào các hệ thống IoT hay hệ thống bảo mật yêucầu xử lý nhanh chóng

Dù vậy, thời gian xử lý các tính toán cho Kyber vẫn còn đang rất lớn do đó đã

có rất nhiều các nghiên cứu tối ưu Kyber trên nhiều nền tảng khác nhau tử phần

mềm thuần, đồng kiến trúc phần cứng-phần mềm, phần cứng thuần, ASIC, RISC-V,

CGRA, Giải quyết việc tối ưu cho Kyber có thể nói là một bước tiến quan trọngtrong công cuộc phát triên các thuật toán dé chống lại các cuộc tan công của máy

tính lượng tử trong tương lại.

11

Trang 20

Chương 3 CƠ SỞ LÝ THUYET

3.1 Các tham số CRYSTALS-Kyber

Lý thuyết về CRYSTALS-Kyber, do tác giả Roberto Avanzi và các nhóm

nghiên cứu trình bày, có thể được tìm thấy trong tài liệu [1] và trên trang web chínhthức của CRYSTALS-Kyber, nơi cập nhật các phiên bản mới nhất của thuật toán

Thuật toán CRYSTALS-Kyber là thuật toán mật mã hậu lượng tử dựa trên loại mã

hóa bat đối xứng là một trong số nhiều thuật toán đã được chuẩn hóa [2] Thuật toánCRYSTALS-Kyber là một cơ chế đóng gói khóa bảo mật IND-CCA2 (KEM), cótính bảo mật dựa trên mức độ khó giải quyết vấn đề Learning-With-Errors (LWE)trên Lattice-based Kyber có ba bộ tham số khác nhau nhằm vào các mức độ bảomật khác nhau Cụ thể, Kyber-512 hướng đến khả năng bảo mật gần tương đươngAES-128, Kyber-768 hướng đến khả năng bảo mật tương đương AES-192 vàKyber-1024 hướng đến khả năng bao mật tương đương AES-256 Lý thuyết vềthuật toán CRYSTALS-Kyber được trình bày chủ yếu trong tài liệu [1] Việc xâydựng thuật toán CRYSTALS-Kyber tuần theo cách tiếp cận hai giai đoạn: trước tiêngiới thiệu sơ đồ mã hóa khóa công khai bảo mật INDCPA mã hóa các tin nhắn có

độ dài cố định là 32-byte, mà họ gọi là Kyber.CPAPKE Sau đó, sử dụng phép biếnđổi Fujisaki-Okamoto (FO) đã được tinh chỉnh một chút để xây dựng KEM bảo mật

IND-CCA2, gọi nó là Kyber.CCAKEM Bảng 3.1 trình bày tập tham của Kyber ứng

Trang 21

Giá trị được đặt là 256 vì mục tiêu là đóng các khóa với 256-bit entropy (tức là sử dụng kích thước plain-text là 256-bit trong Kyber.CPAPKE.Enc) Giá tri

nhỏ hơn của n sẽ yêu cầu mã hóa nhiều bit khóa vào một hệ số đa thức, điều nàyyêu cầu mức độ nhiễu thấp hơn và do đó giảm bảo mật Giá trị lớn hon của n sẽgiảm khả năng tăng cường bảo mật dễ dàng thông qua tham số k

Chọn q là một số nguyên tố nhỏ thỏa mãn ø | (q — 1) tức là q là một sốnguyên tố nhỏ thỏa việc gq — 1 chia hết cho n; điều này cần thiết dé cho phép nhândựa trên Number-Theoretic Transform nhanh chóng Có hai số nguyên tố nhỏ hơnthỏa mãn tính chất này, đó là 257 và 769 Tuy nhiên, với những số nguyên tổ này,

chúng sẽ không thé đạt được xác suất thất bại không đáng ké yêu cầu cho tính bao

mật CCA, do đó chọn số nguyên tố lớn tiếp theo, tức là q = 3329

Giá trị k được chon để có định kích thước mang tinh thé (lattice) là bội sốcủa n, việc thay đôi k là cơ chế chính trong Kyber dé tăng cường bảo mật (cũngnhư kết quả hiệu quả) ở các mức độ khác nhau

Các tham số còn lại ?Ọ,?†a, đ„ và đ„ được chọn dé cân bằng giữa bảo mật,

kích thước ciphertext và xác suất thất bại Lưu ý rằng cả ba tập tham số đều đạt

2—128

được xác suât thât bại nhỏ hơn với một mức độ an toàn nhât định.

Tham sô 7, và nz xác định mức nhiều của s, e, e,va e; trong thuật toán CRYSTALS-Kyber.

3.2 Lý thuyết về Kyber

Như đã đề cập ở Mục 3.1, thuật toán CRYSTALS-Kyber là dạng mã hóa bấtđối xứng với độ khó dựa trên mức độ khó giải quyết vẫn đề Learning-With-Errors(LWE) trên Lattice-based Độ khó về bài toán này được mô tả khái quát ở Hình 3.1

Bài toán dựa trên việc tạo một ma trận A thông qua việc lấy mẫu đồng nhất trong

trường Z„, các ma trận nhiễu e và ma trận s được lay mẫu thông qua lay mẫu từphân phối nhị thức trong trường Z„ Có thể thấy khi có ma trận 4 và ma trận £ thì

việc tim ma trận s rat dé dàng thông qua nhân ma trận nghịch đảo của A với t: s =

13

Trang 22

AT1ot£ Nhung với LWE thì việc cộng thêm ma trận nhiễu e thì sẽ rất khó dé tìmchính xác được ma trận s khi chỉ biết được ma trận A và ma trận t Ở đây có théhiểu A va t là khóa công khai còn s là khóa bí mật.

TT 6 n ố S6 Šố €

Hình 3.1: Khái quát độ khó của bài toán giải quyết van đề LWE trên Lattice-based

Hình 3.2 trình bày khái quát cơ chế tạo khóa, mã hóa và giải mã với Kyber với

mô hình Client-Server Khi Client gửi yêu cầu thì Server sẽ gửi về một khóa công

khai cho Client mã hóa một đoạn văn ban (msg) còn khóa bí mật thì Server sé gift.

Khi Client gửi về cho Server bản mã (ciphertext) thu được từ việc mã hóa msg thì

Server với khóa bí mật đang giữ sẽ giải mã dé thu vê đoạn văn bản ban đâu.

Server Client

request

At: public key

Hinh 3.2: Khai quat co ché giao tiép voi Kyber

Việc xây dựng thuật toán CRYSTALS-Kyber tuân theo cách tiếp cận hai giai

đoạn: trước tiên giới thiệu sơ đồ mã hóa khóa công khai bảo mật INDCPA mã hóa

các tin nhắn có độ dài cố định là 32-byte, mà họ gọi là Kyber.CPAPKE Sau đó, sử

14

Trang 23

dụng phép biến đổi Fujisaki-Okamoto (FO) đã được tinh chỉnh một chút để xây

dựng KEM bảo mật IND-CCA2, gọi nó là Kyber.CCAKEM.

3.2.1 Kyber.CPAPKE

Kyber.CPAPKE tương tự như lược đồ mã hóa LPR (LPR là tên viết tắt từ tên

của ba nhà nghiên cứu: Vadim Lyubashevsky, Chris Peikert, và Oded Regev) đã

được giới thiệu (cho Ring-LWE) bởi Lyubashevsky, Peikert và Regev trong phầntrình bày tại hội nghị Eurocrypt 2010 Nguồn gốc của sơ đồ này bắt nguồn từ sơ đồ

mã hóa dựa trên LWE đầu tiên do Regev trình bày với sự khác biệt chính là vòngbên dưới không phải là Z, và cả vecto bi mật và lỗi đều có hệ số nhỏ Y tưởng sử

dụng vành đa thức (thay vì Z„) có từ hệ thống mật mã NTRU do Hoffstein, Pipher

và Silverman trong khi tính đối xứng giữa bí mật và lỗi đã được sử dụng trong các

sơ đồ mã hóa rất giống nhau Sự khác biệt chính so với sơ đồ mã hóa LPR là sử

dụng Module-LWE thay vì Ring-LWE.

Algorithm 1 KybBER.CPAPKE.KeyGen(): key generation

Output: Secret key sk € BI?! "/8

Output: Public key pk € B12 *"/8+82

Trang 24

Ngoài ra, áp dung cách tiếp cận của Alkim, Ducas, Pöppelmann và Schwabe

đê tạo ra ma trận công khai A Ngoài ra, rút ngăn các bản mã băng cách làm tròn các

bit thấp như trong các lược đồ dựa trên học vòng, đây là một kỹ thuật phố biến dégiảm kích thước bản mã trong các lược đồ dựa trên LWE Kyber.CPAPKE gồm

“Kyber.CPAPKE.KeyGenQ: key generation”, “Kyber.CPAPKE.Enc(pk, m, r):

encryption” và “Kyber.CPAPKE.Dec(sk, c): decryption” Hình 3.3, Hình 3.4 và Hình 3.5 mô tả các thuật toán tạo khóa, mã hóa và giải mã trong giai đoạn CPAPKE của Kyber.

Algorithm 2 KyBer.CPAPKE.Enc(pk, m,r): encryption

Input: Public key pk € B12*-n/8+32

Input: Message m € 632

Input: Random coins r € 832

Output: Ciphertext ¢ € Ba kn/8+de-n/8

for i from 0 tok — 1 do > Generate matrix A € Ri *È* in NTT domain

for j from 0 tok — 1 do

A’ [i][j] = Parse(XOF(p, i, j))

end for end for

for i from 0 to k— 1 do > Sample r € RE from By,

ri] := CBD„, (PRF(r, N))

N:=N+1 end for

for i from 0 to k —1 do > Sample e; € RE from By,

v= NTT (t7 of) + ea + Decompress, (Decode; (77), 1) put r+eo+ Decompress, (7m, 1)

c¡ := Encodeg, (Compress, (u, d.,))

ca := Encodeg, (Compress, (0, đ,))

return e = (e||ca) > c := (Compress, (u, đ„), Compress, (0, đ„))

Hình 3.4: Kyber.CPAPKE.Enc(pk, m, r): encryption [1]

Trong Hình 3.3 và Hình 3.4 sử dụng thuật toán Parse dé tạo các ma trận A và

AT Thuật toán Parse là lay mẫu đồng đều trong R, (Rejection-Uniform sampling inR,) Thuật toán CRYSTALS-Kyber sử dụng một phương pháp xác định dé lấy mau

các phần tử trong Rg gan với phân phối ngẫu nhiên đồng đều (uniformly random

16

Trang 25

distribution) Để thực hiện việc lấy mẫu này, người phát triển thuật toánCRYSTALS-Kyber sử dụng một ham Parse: B*— Rg, với dau vao 1a mét luồngbyte B = bạ, bị, bz, luồng byte này không có giới hạn nhất định bởi vì trong quátrình lấy mẫu sẽ có các phần tử bị bỏ qua do không đáp ứng đủ điều kiện Do đó,trong quá trình lấy mau thì luồng byte này nếu thiếu sẽ được bổ sung dự vào mộthàm khác Ham Parse này tính toán biểu diễn NTT(a) = â = âo +â¡X + +ân_-+X”~1 € R, của a € Rạ Thuật toán Parse được mô tả ở Hình 3.6 với các mô tảchỉ tiết.

Algorithm 3 KyBER.CPAPKE.Dec(sk,c): decryption

Input: Secret key sk € 8!2#'”⁄8

Input: Ciphertext ¢ € 8® /8tdurn/8

return âo + â¡X + - +â„_¡X~!

Hình 3.6: Thuật toán Parse [1]

Thuật toán CBD (Centered Binomial Distribution) sử dụng ở thuật toán tạo

khóa và mã hóa trong Hình 3.3 và Hình 3.4 là lay mẫu từ phân phối nhị thức

17

Trang 26

(binomial distribution) Nhiễu trong Kyber được lấy mẫu từ phân phối nhị thứctrung tâm của Bị với n = 2 hoặc n = 3 Độ dài của luồng byte B,, phụ thuộc vào giátrị 7 định nghĩa B„ như Hình 3.7 Thuật toán CBD được mô tả chi tiết trong Hình

return fo + ƒ\X + foX? + - + ƒfassX?55

Hình 3.9: Thuật toán Decoder [1]

18

Trang 27

Trong thuật toán Decoder ở Hình 3.9, đưa ra một mô tả mã giả cua hàm

Decoder, giải mã một mảng gồm 32¢ byte thành một đa thức f = fo + X + : +fssX?°5 (n = 256 trong mô tả này) với mỗi hệ số f; trong {0, ,2@- 1} Định

nghĩa ham Encode, là hàm nghịch đảo của Decoder Khi áp dung Encoder cho một

vector của các đa thức, chúng ta mã hóa từng đa thức riêng lẻ và nối các mảng byte

dau ra.

Ngoài việc sử dụng lại các hàm và các thuật toán đã đề cập ở trên thì ở thuậttoán Kyber.CPAPKE.KeyGen(): key generation còn sử dụng một số hàm khác như

G, XOF và PRF Ba hàm được xây dựng lần lượt từ các hàm SHAKE-128,

SHA3-512, SHAKE-256 theo tiêu chuẩn FIPS-202 [3] [4] [5] Cùng với đó thuật toán còn

sử dụng ham NTT đây là hàm khá phức tạp và quan trọng của Kyber Hai thuật toán ở Hình 3.4 và Hình 3.5 mô tả quá trình mã hóa và giải mã một message ở bước

Kyber.CPAPKE Ở 2 thuật toán này có sử dụng 2 hàm là Compress và Decompress.Trong đó, hàm Compress(x, d) sẽ lay một phan tử x € Zq và xuất ra một số nguyên

trong {0, , 2# - 1}, với d < [log,(q)] Hàm Decompress sẽ được định nghĩa như

sau:

x' = Decompress,(Compress, (x, d), đ)

, q

|x“—xmod + q| < By:= [Savill

Hai ham này phải thõa các điều kiện sau:

19

Trang 28

trong các phép tính, có thé được phân tích thành q — 1 = 2 13 Điều nay có nghĩa

là trường cơ sở Z, (các số nguyên modulo q) chứa các gốc nguyên thủy bậc 256nhưng không chứa các gốc nguyên thủy bậc 512 Do đó, đa thức xác định X75° + 1

của R phân tích thành 128 đa thức bậc 2 modulo q Phân tích nay cho phép NTT

của một đa thức f trong R, được biểu diễn dưới dạng một vectơ gồm 128 đa thức,mỗi đa thức có bậc một Khi thực hiện NTT, kết quả thường được sắp xếp theo thứ

tự đảo bit Điều này có nghĩa là thứ tự của đầu ra bị đảo ngược ở mức bit, một kỹthuật phô biến trong các triển khai NTT va FFT dé đạt hiệu qua Nhưng ở đây NTTđược triển khai dựa trên dữ liệu ban đầu không thay đổi vị trí các hệ số của đa thức

Cụ thể về gốc nguyên thủy, gốc nguyên thủy bậc 256 đầu tiên theo modulo q là ø =

17 và {œ,ø3,@°, @2°5} là tất cả các gốc nguyên thủy bậc 256 Do đó đa thứcX56 + 1 có thê được viết dưới dang phù hợp cho NTT là:

X255 +1= TIẾT <> pitt) — TÁC? _ @2P720)31), (3.1)

Ở đây br,(i) với i = 0, ,127 là phép đảo ngược bit của số nguyên 7 bit

không dấu i Thứ tự sau khi sắp xếp lại các hệ số thông qua phép đảo ngược bit là

một yêu tô rât hữu ích cho việc tương thích với các đặc điêm riêng của các lệnh AVX Khi đó NTT của ƒ € Ry nhận được là:

(f mod X2? — G0700 11, woof mod X2 — @2Pr;427)+1) (3.2)

Vectơ đa thức tuyến tính này sau đó được tuần tự hóa thành vectơ trong Z aotheo cách chính tắc Ngoài ra, để không tạo ra các kiểu dữ liệu khác và tạo điều kiệnthuận lợi cho việc triển khai NTT mà không cần sắp xếp lại thứ tự các hệ số, NTTđược định nghĩa: R, — R, là một phép đối xứng ánh xạ ƒ € R, tới đa thức vớivectơ hệ số đã nêu ở trên Do đó,

NTTỢ) = f = fo + AX +++ f2ssX?5Š (3.3)

Với:

lại = 3JS fej 9 POM! BA)

20

Trang 29

lúa: = D720 fjp 02000997 (3.5)

Biểu diễn đại số của Mặc dù chúng ta viết dưới dạng một đa thức trongR,, thực ra nó không có ý nghĩa đại số theo cách đó Cách biểu diễn tự nhiên củaNTT(f) = f là dưới dang 128 đa thức bậc 1 như ở phương trình (3.2) và sử dungcác định nghĩa cho Ê ở phương trình (3.4) và (3.5) thì ta có:

NTTỢ) = Ệ = (Ñ + ñX.ƒ› + feX, fase + Í2ssX)( 6)

Dé tính ƒ g ta có thé sử dụng NTT và NTT~! dé nhân thi với việc có thé tínhtích của hai phần tử ƒ và g trong R, một cách hiệu qua băng cách sử dụng phépbiến đổi NTT và phép biến đổi ngược của nó như sau: NTT~1(NTT(f) s NTT(g))với NTT(f) s NTT(g) = Ệsậ=ñ Khi nhân các kết quả của NTT, ta thực hiện

128 phép nhân của các đa thức bac 1 và sau đó áp dụng phép biến đổi ngược dé có

kêt quả cuôi cùng.

hại + Rạ¡L\+X = (fai + lúa X)ai + Goin X) mod X* — g2°770)11(3,7)

Khi áp dung NTT hoặc NTT? lên các vector hoặc ma trận, chúng ta thực hiệnphép biến đổi trên từng phần tử một cách riêng lẻ Khi nhân các ma trận hoặc

vector, chúng ta thực hiện phép nhân thông thường nhưng sử dụng phép nhân cơ bản đã định nghĩa.

3.2.2 Kyber.CCAKEM

Algorithm 7 KyBER.CCAKEM.KeyGen()

Output: Public key pk € B!2*'^/3132

Output: Secret key sk € B24*7/8+96

Kyber.CCAKEM, cơ chế đóng gói khóa (Key Encapsulation

Mechanism-KEM) bảo mật IND-CCA2 (Indistinguishability under Chosen Ciphertext Attack)

21

Trang 30

từ cơ chế mã hóa khóa công khai bảo mật IND-CPA(Indistinguishability under

Chosen Plaintext Attack).

Hình 3.10 trình bay thuật toán Kyber.CCAKEM.KeyGen0) trong đó thuật toán

Kyber.CPAPKE.KeyGenQ được gọi lại có chức năng tạo khóa sẽ tạo ra một cặp

khóa bao gồm khóa công khai (pk) và khóa bí mật (sk) Quá trình này bat đầu bangviệc tao ra ma trận A trực tiếp trong miền NTT thông qua lấy mẫu thống nhất

(Uniform Sampling-Parse).

Tiép theo, cac vecto s va e duoc tao ra bang cach lay mau theo phan phối nhị

thức Vector s và e sau khi được tạo ra sẽ được đưa vào miền NTT, trong đó vector

s sau khi vào miền NTT sẽ là khóa bí mật (sk) Sau đó, việc tạo ra khóa công khai

(pk) sẽ thông qua việc tính đa thức Ê ghép với chuỗi bit được tạo ngẫu nhiên p với

È=Â-§+ ê, các kí hiệu có mũ trên đầu được hiểu là đang biểu diễn trong miềnNTT, cuối cùng pk sẽ bằng Ê ghép với ø

Algorithm 8 KyBER.CCAKEM.Enc(pk)

Input: Public key pk ¢ B12 *"/8+82

Output: Ciphertext ¢ € Ba! "/Stdv-n/8

Output: Shared key K € B*

Cuối cùng, sau khi sử dụng thuật toán Kyber.CCAKEM.KeyGenQ thì khóacông khai (pk) cuối cùng mà thu được sẽ là khóa công khai (pk) được tao ra từ

22

Trang 31

thuật toán Kyber.CPAPKE.KeyGenQ còn khóa bí mật sẽ được ghép từ khóa bí mật (sk) tạo ra từ thuật toán Kyber.CPAPKE.KeyGenQ ghép với khóa công khai (pk)

cùng với kết quả của H(pk) cuối cùng là z, với z trong thuật toán sẽ được tạo ra

ngau nhiên.

Hình 3.11 trình bày thuật toán Kyber.CCAKEM.Enc(pk), đây là quá trình mã

hóa trong Kyber sử dụng khóa công khai (pk) để tạo ra bản mã (ciphertext) vakhóa chia sẻ (shared key) Đầu vào của quá trình này là khóa công khai (pk), vàđầu ra là bản mã c cùng với khóa chia sẻ K Quá trình bắt đầu bang việc tạo một

chuỗi ngẫu nhiên văn bản ngẫu nhiên mm, sau đó tính giá trị băm của m.

Algorithm 9 KyBER.CCAKEM.Dec(c, sk)

Input: Ciphertext ¢ € Blk n/8+4du-n/8

Input: Secret key sk € B24!"/5+96

Output: Shared key € B*

Tiép theo, két qua cua H(pk) sẽ được đưa vào ham bam G với m dé tạo ra K

và r cho quá trình mã quá thông qua việc gọi là thuật toán

Kyber.CPAPKE.Enc(0k,m,r) với kết quả cuối cùng là bản mã c Cuối cùng, khóachia sẻ K được tính từ kết quả của hàm băm H với đầu vào là c và K thông qua hàm

băm KDF tương ứng với ham băm SHAKE256 Trong quá trình mã hóa với thuật

toán Kyber.CPAPKE.Enc(pk,m,r), ma trận A’ được tạo trong miền NTT bằngcách lây mẫu thống nhất, và các vectơ r, €; Va e› được tạo ra Sau đó, vector r va

e, sẽ được đưa vào miền NTT dé tính vecto u và ø với w = NTT~1(ẤT : #) +e, và

v = NTT"1(ÊT - ?) + e¿ + Decompress„(Decode;(m), 1) Các vectơ u và v sau

23

Trang 32

đó được nén và mã hóa dé tạo ra c¡ và cz , ở đây c, và cp sau khi ghép lại sẽ thu

được bản mã ciphertext (c) với cy = Encodeg,(C ompress,(u, du)) va Co =

Encodeg,(Compress,(v, dv)).

Hình 3.12 Mô ta chi tiết thuật toán giải mã trong Kyber với thuật toán

Kyber.CCAKEM.Dec(c, sk) Thuật toán Kyber.CCAKEM.DecQ thực hiện quá trình giải mã và chia sẻ khóa dựa trên bản mã (c) và khóa bí mật (sk) Quy trình

giải mã này bao gồm nhiều bước chỉ tiết như sau Với đầu vào là bản mã c và kháo

bí mật (sk), Kyber sẽ trích xuất các thành phan từ khóa bí mật (sk) dé thu được

khóa công khai (pk), h và z Tiếp theo Kyber sẽ thực hiện quá trình giải mã thông

qua thuật toán Kyber.CPAPKE.Dec(s, (u,v)) ở bước này Kyber sử dụng khóa bi

mật (s) đã được lược bỏ thành phần khóa công khai (pk), h và z và bản mã c =(u,v) dé khôi phục thông điệp m’ Sau khi có được thông điệp m’ thì Kyber sẽ thựchiện lại quá trình mã hóa m’ dé thu về bản c' điều này là để xác minh rằng sau khi

mã hóa thì thông điệp m’ thu được là chính xác, quy trình mã hóa đã được trình bày

ở trên.

Quy trình chỉ tiết của quá trình giải mã gồm các bước như sau Đầu tiên,

Kyber sẽ giải nén các thành phan từ ban mã (c) dé thu về vector và ø, đối với u

thi sẽ giải nén và giải mã thành phần c, để thu được u=Decompress, (Decode, (c,), du) Phan còn lại của c là cy sẽ được giải nén và giải

ma để thu được vector v với cách tính như sau v=Decompressạ(Decode„(c;), du) Sau đó, sẽ giải mã khóa bí mật (s) va kết quảđược gán vào vector với § = Decode,,(s) Bước cuối cùng là tính m’ với m' =Encode,(Compress,(v — NTT~1(§T - NTT(u)), 1)), và trả về giá trim’

24

Trang 33

Chương 4 THIẾT KE PHAN CỨNG

4.1 Kiến trúc tổng quan của phần cứng CRYSTALS-Kyber

Decode, Encode, | Pointwise Multiply Accumulate

Decode,2 Encode.

Decode i, Encode

Sampling Unit | |JUt}o -Í_- _- Pointwise

Unified NTT/INTT First Stage

Pointwise Multiply 0 Multiply 1

ee Simple Dual Unified ;

a eee ` Port RAM Add/Sub

Single Port RAM 2 fT ee nHGBEGGGGSGSOSSGEUW !

ram } | Decompressq, có] | Compressqu | h

Single Port RAM 3 1 h

i ' '

XU Leni aa ' ' 1 q

; i ẳ " ' Decompress Compress

-=—==n=—=S———=——~ == E==—=h=r-—=-=—=—=—~- -1-—~- -4- [_]medute for each separate mode

seed pko sko mi pki cto ss cti pki mo verify

Hình 4.1: Kiến trúc tổng quan của phan cứng CRYSTALS-Kyber

Hình 4.1 trình bày kiến trúc tổng quan của phần cứng CRYSTALS-Kyber vớiController sẽ đảm nhận việc điều khiển các đường dữ liệu theo các chế độ mà ngườidùng cấu hình Dé phần cứng Kyber hỗ trợ cả ba chế độ tạo khóa, mã hóa và giải

mã với kích thước nhỏ gọn và hiệu suất cao, có hai ý tưởng chính được đề xuất Đầu

tiên, các khôi chức năng con được sử dung trong cả ba chê độ chia sẻ tai nguyên dé

25

Trang 34

giảm diện tích, chang hạn như Decode, Sampling Unit, Hash-Core, Compress,

Unified NTT/INTT, Memory Bank, Unified Add/Sub mod q, Pointwise Multiply

Accumulate (PWMA) được điều khiển bởi khối dé phù hợp với trình tự tính toáncủa từng chế độ Thứ hai, các khối chức năng con được cân bằng critical path tươngđương với một nửa phép nhân 12 bit có không dấu trong Unified NTT/INTT vàPWM, cho phép các khối sử dụng các phép toán logic, chang hạn như Hash-Core,Sampling Unit và Decode, thực hiện nhiều toán tử trong một chu kỳ để cải thiện

thông lượng.

4.2 Thiết kế Hash-Core dựa trên SHA3

Thuật toán CRYSTALS-Kyber áp dụng một số hàm băm quan trọng trong quátrình tạo khóa, mã hóa và giải mã Hash-Core đóng vai trò chủ chốt trong việc tạo ra

các mẫu phân phối ngẫu nhiên cho các khối chức năng lấy mẫu như Sampling Unit

Điều này khiến Hash-Core có thé trở thành nút cổ chai tính toán tiềm năng trongtoàn bộ thiết kế Các hàm băm được sử dụng bao gồm SHAKEI28, SHAKE256,SHA3-256 và SHA3-512, tat cả đều tuân theo tiêu chuẩn FIPS-202 [3] [4] [5] Dovậy, việc đảm bảo thông lượng của Hash-Core phù hợp với các khối tính toán khác

Hình 4.2: (a) Kiến trúc phần cứng Hash-Core với (b) phần cứng Keccak

Điểm chung của các hàm băm này là đều được triển khai dựa trên thuật toán

Keccak [4], với sự khác biệt nam ở phân rate r và phân hậu tô sau mỗi đâu vào đê

26

Trang 35

phân tách miền Điều này cho phép tái sử dung phan cứng Keccak dé thực hiện cáchàm băm cần thiết trong quá trình thực thi thuật toán CRYSTALS-Kyber Trongthiết kế Hash-Core, phần cứng Keccak được tham khảo từ [4] và tinh chỉnh dé phùhop với yêu cầu của thiết kế Phần cứng Keccak cần 24 chu kỳ clock dé thực hiệnmột lần hoán vị, tương ứng với 24 vòng Phần cứng Keccak được mô tả khái quát

trong Hình 4.2.

Trong thiết kế này, một lõi Keccak được triển khai tuần tự để phục vụ cho cácchức năng SHA-3 khác nhau Lõi Keccak này yêu cầu một lượng tài nguyên phầncứng đáng kể, chiếm tới 54,2% tổng số LUT trong thiết kế Kyber [6] Đây là một

con số khá lớn, và việc tối ưu hóa sử dụng tài nguyên phan cứng cho lõi Keccak là

một thách thức cần được giải quyết

Bằng cách tinh chỉnh và tối ưu hóa lõi Keccak, chúng ta có thể cải thiện hiệu

suất tổng thé của phan cứng CRYSTALS-Kyber Điều này không chỉ giúp giảmthiêu nút cổ chai tính toán mà còn đảm bảo tính hiệu quả và khả năng mở rộng của

hệ thống mã hóa Việc xem xét can thận các yếu tố như phân bồ tài nguyên và thônglượng giữa các khối chức năng là cần thiết dé đạt được hiệu suất tối ưu trong các

từ FIFO sẽ lưu vào Buffer Input dé padding hoặc thêm các bit 0 vào dé đủ 1344 bit

vì phần cứng Keccak nhận chuỗi bit đầu vào tối đa 1344 bit Dữ liệu đi ra từ Buffer

Input sẽ được đưa vào phần cứng Keccak để hoán vị Sau 24 chu kỳ phần cứng

Keccak sẽ đưa 1344-bit đầu ra là kết quả vào Buffer Output dé đưa từng khối 32-bitmột ra ngoài cho các khối khác dùng bởi vì phần cứng tổng Kyber sẽ có đường dữ

27

Ngày đăng: 24/11/2024, 16:00

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN