Tải bản đầy đủ (.pdf) (81 trang)

hệ thống tăng tốc phần cứng cho giải thuật mã hóa dựa trên tính toán tái cấu hình

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.46 MB, 81 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

ĐẠI HỌC QUỐC GIA TP. HCM

<b>TRƯỜNG ĐẠI HỌC BÁCH KHOA </b>

---

<b>PHẠM LÊ SONG NGÂN </b>

<b>HỆ THỐNG TĂNG TỐC PHẦN CỨNG CHO GIẢI THUẬT MÃ HĨA DỰA TRÊN </b>

<b>TÍNH TỐN TÁI CẤU HÌNH </b>

Chuyên ngành : KHOA HỌC MÁY TÍNH Mã số: 8480101

<b>LUẬN VĂN THẠC SĨ </b>

TP. HỒ CHÍ MINH, tháng 01 năm 2024

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM Cán bộ hướng dẫn khoa học : PGS.TS. PHẠM QUỐC CƯỜNG

(Ghi rõ họ, tên, học hàm, học vị và chữ ký)

Cán bộ chấm nhận xét 1 : TS. PHẠM TRUNG KIÊN (Ghi rõ họ, tên, học hàm, học vị và chữ ký)

Cán bộ chấm nhận xét 2 : PGS.TS. TRẦN NGỌC THỊNH (Ghi rõ họ, tên, học hàm, học vị và chữ ký)

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp. HCM ngày 23 tháng 01 năm 2024.

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)

1. Chủ tịch hội đồng : PGS.TS. Trần Văn Hoài 2. Thư ký hội đồng : TS. Phạm Hoàng Anh 3. Giảng viên phản biện 1: TS. Phạm Trung Kiên 4. Giảng viên phản biện 2: PGS.TS. Trần Ngọc Thịnh 5. Ủy viên hội đồng : TS. Tôn Long Phước

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có).

<b>CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH</b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập - Tự do - Hạnh phúc</b>

<b> </b>

<b>NHIỆM VỤ LUẬN VĂN THẠC SĨ </b>

Họ tên học viên: PHẠM LÊ SONG NGÂN MSHV: 2070420

Ngày, tháng, năm sinh: 19/05/1998 Nơi sinh: TP. Hồ Chí Minh Chuyên ngành: Khoa học máy tính Mã số : 8480101

<b>I. TÊN ĐỀ TÀI : HỆ THỐNG TĂNG TỐC PHẦN CỨNG CHO GIẢI THUẬT MÃ HĨA </b>

DỰA TRÊN TÍNH TỐN TÁI CẤU HÌNH

RECONFIGURABLE COMPUTING)

<b>II. NHIỆM VỤ VÀ NỘI DUNG : </b>

• Tìm hiểu về hệ mật mã đường cong, thuật toán chữ ký số ECDSA trên các ứng dụng hiện nay nói chung và trên FPGA nói riêng.

• Tìm hiểu hoạt động của giải thuật ECDSA.

• Sử dụng bộ cơng cụ Vivado ML và phần cứng FPGA của Xilinx để xây dựng hệ thống tăng tốc phần cứng cho giải thuật ECDSA.

• So sánh kết quả hiện thực và hiệu quả của kiến trúc so với các nghiên cứu liên quan trên phần cứng tái cấu hình liên quan, đặc biệt là FPGA.

<b>III. NGÀY GIAO NHIỆM VỤ : 06/02/2023 </b>

<b>IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 10/12/2023 V. CÁN BỘ HƯỚNG DẪN : PGS.TS. Phạm Quốc Cường </b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

LỜI CẢM ƠN

Sau một thời gian tiến hành triển khai nghiên cứu, tơi cũng đã hồn thànhđề tài luận văn thạc sĩ "Hệ thống tăng tốc phần cứng cho giải thuật mã hóa dựatrên tính tốn tái cấu hình". Luận văn được hồn thành khơng chỉ là cơng sứccủa bản thân tác giả mà cịn có sự giúp đỡ, hỗ trợ tích cực của nhiều cá nhânvà tập thể.

Trước hết, tơi xin bày tỏ lịng biết ơn đến giáo viên hướng dẫn của tôi, thầy- PGS.TS.Phạm Quốc Cường, đã ln tận tình hướng dẫn và cho tơi lời khuntrong suốt q trình nghiên cứu và viết luận văn. Những kiến thức và ý kiếnkhuyến nghị của thầy vô cùng quý giá và quan trọng vào việc hồn thành đề tàinày.

Tơi cũng xin bày tỏ lịng biết ơn đến ba mẹ tôi, đồng nghiệp và bạn bè củatơi vì sự hỗ trợ tinh thần và ý kiến quý báu trong suốt thời gian tôi nghiên cứuvà viết luận văn. Sự động viên và lời khích lệ của họ đã giúp tơi vượt qua nhữngkhó khăn và nỗ lực để đạt được mục tiêu này.

Tôi không thể thể hiện được hết lịng biết ơn đến các thầy cơ giảng dạy tạitrường Đại học Bách Khoa - ĐHQG TP.HCM, những đồng nghiệp tại công tyMarvell Technology và những bạn học trong suốt thời gian học tập, làm việc vàthực hiện luận văn. Sự góp ý và hỗ trợ của họ đã là nguồn động viên quý báutrong suốt quá trình này.

Cuối cùng, tơi xin gửi lời cảm ơn đến tất cả những người đã đóng góp thơngtin, tư liệu, và hỗ trợ khác cho dự án nghiên cứu của tôi.

Lời cảm ơn này không thể nào đủ lớn để thể hiện lịng biết ơn sâu sắc của tơiđến tất cả những người đã đứng đằng sau việc hoàn thành luận văn này.

Xin chân thành cảm ơn.Trân trọng,

Phạm Lê Song Ngân

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

TÓM TẮT LUẬN VĂN THẠC SĨ

Ngày nay, bảo mật thơng tin đóng vai trị vơ cùng quan trọng, và các giảithuật mã hóa đang ngày càng trở thành trụ cột trong việc đảm bảo tính tồnvẹn và an tồn của thơng tin. Trong đó, phải kể đến hệ thống mật mã đườngcong elliptic (elliptic curve cryptogrpahy). Cùng với những yêu cầu khắt khe vềtốc độ mã hóa, độ chính xác cao và khả năng lưu trữ tốt, số lượng đường congelliptic được nghiên cứu và công bố ngày càng nhiều; điều này giúp củng cốđộ tin cậy và tính vẹn tồn của hệ thống mã hóa. Một trong những ứng dụngsử dụng hệ thống mã hóa elliptic nổi tiếng nhất chính là bitcoin và blockchain.Đường cong secp256k1 và giải thuật mã hóa chữ ký số ECDSA là tiền đề và vẫn đang là công cụ phổ biến trong lĩnh vực bitcoin.

Đối với yêu cầu tối ưu hóa hiệu năng hệ thống và khả năng xử lý, đặc biệt làtrên những giải thuật mã hóa/giải mã, ln là chủ đề nghiên cứu và phát triểnbởi sự ra đời của đa dạng các loại phần cứng tái cấu hình như FPGA, hoặc mạchtích hợp chức năng ASIC. Bởi vì tính phổ thơng và dễ dàng lập trình, thay đổivà nâng cấp thiết kế theo nhu cầu mà FPGA ln rất được săn đón cho các dựán cải tiến, tăng tốc hệ thống. Ngôn ngữ sử dụng cũng đa dạng vì có thể kếthợp ngơn ngữ đặc tả phần cứng HDLs hay thập chí là ngơn ngữ cấp cao (HLS).Điều này giúp đa dạng khả năng thiét kế, tiện nghi thời gian và công sức hiệnthực.

Ở đề tài luận văn này, tác giả sử dụng phần cứng Kria KV260 Vision AI vàphần mềm Vivado của nhà phát triển Xilinx để hiện thực bộ mã hóa chữ ký sốECDSA sử dụng đường cong secp256k1 để tối ưu thời gian tích hợp kiến trúcvà xử lý chữ ký số. Đường cong elliptic này đước sử dụn phổ biến và các bướchiện thực giải thuật ECDSA được xuất bản nhiều trong các nghiên cứu và tàiliệu. Mục tiêu của đề tài này là dựa trên giải thuật ECDSA cơ bản để cải tiếncách hiện thực phần cứng xử lý tính tốn, giao tiếp dữ liệu giữa các khối chứcnăng để tăng tốc độ xử lý và tiết kiệm tài nguyên sử dụng cho phần cứng. Kếtquả của đề tài cho thấy khả năng tối ưu hóa khối tính tốn logic đem lại hiệuquả xử lý nhanh hơn so với kiến trúc truyền thống mà vẫn đảm bảo tính chínhxác của giải thuật.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Currently, information security plays an extremely important role, and tography algorithms are increasingly becoming a cornerstone in ensuring theintegrity and safety of information. Among them, the elliptic curve cryptogra-phy system (ECC) must be mentioned. Within strict requirements for process-ing speed, high accuracy, and good storage capabilities, the number of ellipticcurves researches and publishing are counting, which strengthens the reliabilityand integrity of this encryption system. One of the most well-known applicationsusing elliptic curve cryptography is the usage of Bitcoin and Blockchain. Thesecp256k1 curve and the ECDSA digital signature algorithm are the foundationand remain popular tools in the field of crypto-currencies.

cryp-For optimizing system performance and processing capabilities, especially incryptography algorithms, research and development are ongoing with the emer-gence of various types of re-configurable hardware such as FPGAs or dedicatedASIC integrated circuits. Due to their versatility and ease of programming, mod-ification, and design upgrades according to needs, FPGAs are highly sought af-ter for improvement projects, hardware acceleration. The language used is alsodiverse as it can combine hardware description languages (HDLs) or even high-level languages (HLS). This helps diversify design capabilities, facilitate timeand effort.

In this thesis, the author uses the Kria KV260 Vision AI hardware tem and Xilinx’s Vivado software to implement the ECDSA digital signaturealgorithm using the secp256k1 curve to optimize the integration time of thearchitecture and process digital signatures. This elliptic curve is widely used,and the steps to implement the ECDSA algorithm have been published in manyresearch papers and documents. The goal of this thesis is to base on the basicECDSA algorithm to improve the workflow of ECDSA, study on how data iscommunicated between functional blocks to increase processing speed, and saveresources used for hardware. The results of the thesis show how optimizing thelogic computation block can bring up, which is expected to process faster withhigher efficiency than traditional architectures while still ensuring the accuracyof the algorithm.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

ecosys-LỜI CAM ĐOAN

Tôi, Phạm Lê Song Ngân, Mã học viên: 2070420, cam đoan rằng luận văn thạc sĩnày được viết dưới sự hướng dẫn của PGS.TS.Phạm Quốc Cường và hồn tồnphản ánh cơng trình nghiên cứu và quan điểm cá nhân của tôi. Tất cả thông tinvà nguồn tài liệu từ nguồn khác đều đã được dẫn chính xác và đầy đủ theo quytắc trích dẫn và tham chiếu. Tôi cam đoan rằng tôi đã tuân thủ mọi quy địnhvà hướng dẫn về việc viết luận văn của khoa Khoa học và Kỹ thuật máy tínhtrường Đại học Bách Khoa - Đại học Quốc Gia thành phố Hồ Chí Minh trongviệc thực hiện nghiên cứu và viết luận văn này. Tơi đảm bảo rằng khơng có sựgian lận, vi phạm, hoặc sử dụng thông tin từ nguồn khác mà không được nêurõ trong luận văn.

Tôi hiểu rằng bất kỳ vi phạm nào của tôi đối với các quy tắc và quy định củatrường đại học hoặc tổ chức sẽ bị xem xét một cách nghiêm túc .

Phạm Lê Song Ngân

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

Chương 1. Giới thiệu đề tài 1

1.4 Cấu trúc của luận văn . . . . 3

Chương 2. Cơ sở lý thuyết 52.1 Khái quát về mã hóa và giải thuật mã hóa đường cong EllipticCurve . . . . 5

2.1.1 Giới thiệu về mã hóa . . . . 5

2.1.2 Hệ mật mã đường cong ECC . . . . 6

2.2 Biểu diễn tọa độ trên trường hữu hạn . . . . 10

2.2.1 Tọa độ quan hệ - tọa độ Affine . . . . 10

2.2.2 Tọa độ chiếu - Projective . . . . 11

2.3 Các nghiên cứu liên quan . . . . 13

3.1.1 Giới thiệu về phần cứng FPGA . . . . 23

3.1.2 Kiến trúc của FPGA . . . . 25

3.1.3 Các ứng dụng của FPGA trên thực tế . . . . 26

3.2 Phần cứng FPGA Kria 260 Vision AI kit . . . . 27

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

Chương 4. Phương pháp giải quyết vấn đề 304.1 Các bước của một giải thuật mã hóa trong hệ thống mật mã

đường cong elliptic . . . . 30

4.2 Chọn đường cong Elliptic, trường hữu hạn và điểm cơ bản . . . . 31

5.2 Xây dựng giao thức kết nối với phần cứng FPGA . . . . 48

5.2.1 Giao thức kết nối AXI . . . . 48

5.3 Kiến trúc hệ thống và lượt đồ trạng thái . . . . 51

5.4 Kiểm tra tính chính xác của kết quả . . . . 55

5.5 Hiện thực trên phần cứng Kria KV260 Vision AI . . . . 55

Chương 6. Đánh giá và phân tích kết quả 586.1 Kết quả . . . . 58

6.2 Phân tích và đánh giá . . . . 61

6.3 Tiểu kết . . . . 62

Chương 7. Kết luận 637.1 Kết quả đạt được . . . . 63

7.2 Mở rộng đề tài . . . . 64

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

2.1 Mơ hình mã hóa, giải mã cơ bản . . . . 5

2.2 Đường cong ECC đối xứng qua trục X và cắt đường cong ở nhiềunhất 3 điểm . . . . 7

2.3 Sơ đồ kiến trúc và dữ liệu xác thực ECDSA với khối precompute,nguồn trích dẫn: [16] . . . . 16

2.4 Kiến trúc hệ thống, nguồn trích dẫn: [26] . . . . 18

2.5 Sơ đồ trạng thái hoạt động của PMC, nguồn trích dẫn: [26] . . . . 19

2.6 Kiến trúc phép cộng/trừ song song word-wise, nguồn trích dẫn: [17] 213.1 Bảng so sánh hiệu năng và tính linh hoạt trong các nền tảng mạchtích hợp, nguồn trích dẫn: [21] . . . . 24

3.2 Kiến trúc và thành phần của FPGA, nguồn trích dẫn: [22] . . . . 25

3.3 Các thành phần giao tiếp của phần cứng FPGA Kria KV260Vision AI Developer Kit, theo: [24] . . . . 28

4.1 Bảng quy đổi nhị phân của mã ASCII, nguồn trích dẫn: [32] . . . 35

4.2 Kién trúc phần cứng của khối modular inversion . . . . 42

4.3 Kiến trúc phần cứng các thành phần tính tốn theo thứ tự: phépcộng, phép trừ . . . . 43

4.4 Kiến trúc phần cứng các thành phần tính tốn của phép nhân . . 43

5.1 Kiến trúc thiết kế và hoạt động của giao thức AXI [37] . . . . 50

5.2 Các tín hiệu giao tiếp cơ bản của giao thức AXI [37] . . . . 50

5.3 Kiến trúc bộ giao tiếp AXI sử dụng trong hệ thống . . . . 50

5.4 Giao diện làm việc chính của Vivado ML . . . . 51

5.5 Sơ đồ kết nối và điều khiển khi hiện thực hệ thống . . . . 52

5.6 Các khối module làm việc của hệ thống . . . . 52

5.7 Kết quả chạy mô phỏng tạo chữ ký số với tin nhắn "abc", xuấtra màn hình . . . . 53

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

5.8 Đối với testcase dựa trên thư viện testcase của NIST đề xuất [40] 535.9 Các bước xây dựng chương trình trên Vivado (bên trái) và hiện

thực thiết kế trên phần cứng Kria KV260 (bên phải) . . . . 56

6.1 Thống kê tài nguyên sử dụng sau khi tối ưu hóa chương trình . . 586.2 Báo cáo năng lượng tiêu thụ trên điều kiện năng lượng . . . . 596.3 Báo cáo năng lượng tiêu thụ trên điều kiện nhiệt độ . . . . 596.4 Bảng thống kê số lượng logic, tốc độ xử lý và tần số tối đa của

từng module xử lý . . . . 596.5 Kết quả hiện thực trên Kit phần cứng thực tế . . . . 606.6 Kết quả thực hiện gửi gói tin trên đơn vị latency và throughput . 606.7 Bảng so sánh thông số khi khởi tạo chữ ký số ECDSA trên các

thiết kế . . . . 60

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

2.1 Thời gian phá khóa ứng với chiều dài của khóa ở mã hóa RSA vàECC, nguồn:[11] . . . . 72.2 Số lượng logic trong kiến trúc thiết kế ECDSA (tần số 250MHz) . 162.3 So sánh throughput giữa các máy học blockchains và kiến trúc

song song . . . . 454.5 Thời gian thực hiện phép tính cộng và xử lý modular reduction

song song . . . . 46

5.1 Thanh ghi giao tiếp giữa hệ thống xử lý (programming system PS) và thiết kế FPGA (programming logic - PL) . . . . 57

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

-Giới thiệu đề tài

1.1Đặt vấn đề

Trong thời đại của sự kết nối liên tục và tốc độ truy xuất, xử lý thông tindiễn ra gần như tức thì và cùng với sự phát triển của dữ liệu lớn (big data),máy học (machine learning) và trí tuệ nhân tạo (artificial intelligent), việc bảomật dữ liệu đã trở thành một trong những ưu tiên hàng đầu của thế giới số hóahiện đại. Mã hóa dữ liệu là chuyên môn thuộc lĩnh vực công nghệ thông tin, bảomật, nhằm tập trung đảm bảo tính riêng tư người dùng và bảo vệ thông tin, dữliệu khỏi sự truy cập trái phép. Các thuật tốn mã hóa thường cung cấp nhữngyếu tố bảo mật then chốt như xác thực, tính tồn vẹn và khơng thu hồi. Xácthực cho phép xác minh nguồn gốc của dữ liệu, tính tồn vẹn chứng minh rằngnội dung của dữ liệu không bị thay đổi kể từ khi nó được gửi đi. Việc khơng thuhồi đảm bảo rằng người dùng không thể hủy việc gửi dữ liệu [1].

Tuy nhiên, việc áp dụng các giải thuật mã hóa có thể đồng nghĩa với sự haotổn về hiệu suất khi xử lý dữ liệu, đặc biệt trên các thiết bị phần cứng có tàinguyên hạn chế. Trong bối cảnh này, nghiên cứu về cách tối ưu hóa tốc độ xửlý thông qua tăng tốc phần cứng bằng giải thuật mã hóa đã trở nên quan trọnghơn bao giờ hết.

Đối với phần cứng, sự kết thúc của định luật Moore sẽ dẫn đến thách thứctrong việc cải tiến kiến trúc phần cứng hiện tại. Các nghiên cứu tập trung xử lýtăng tốc cho phần cứng được quan tâm hơn hết. Hiện tại, nhiều kiến trúc phầncứng phục vụ cho mục đích tăng tốc khả năng xử lý dữ liệu bằng các đơn vị tínhtốn khơng đồng nhất như: Mạch tích hợp dành riêng cho ứng dụng (ASIC), Bộxử lý GPU và mạch FPGA [2]. Trong đó, FPGA là cơng nghệ vi mạch tích hợpcó tính ưu việt và mức độ ứng dụng phổ biến nhất trong vòng vài chục năm trởlại đây. Ngoài khả năng tái cấu trúc vi mạch toàn cục, một số FPGA hiện đại

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

còn hỗ trợ tái cấu trúc từng bộ phận riêng lẻ (partial configuration) trong khivẫn đảm bảo hoạt động bình thường cho các bộ phận khác. Đây là chức năngcho phép ứng dụng có thể tái cấu trúc một phần thiết kế theo yêu cầu mà khôngcần phải ngừng hệ thống để lập trình lại tồn bộ - cũng là lựa chọn đáng đượccân nhắc cho các đề tài tăng tốc phần cứng [3].

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

Tháng 3 năm 2016, Bộ Ngoại Giao Hoa Kỳ, đứng đầu là bộ trưởng JohnKerry, đã dẫn một đoàn đại biểu tới các nước ASEAN trong đó có Việt Nam đểthảo luận về sự phát triển của công nghệ Fintech, trong đó cơng nghệ Blockchainđược quan tâm hàng đầu [4]. Tính đến tháng 03 năm 2022, vốn hoá của Bitcoinhiện đạt 902 tỷ USD [5]. Nền tảng cơ sở của Bitcoin chính là lý thuyết về mậtmã mà cụ thể ở đây là hàm băm và lý thuyết về chữ ký số dựa trên Hệ mật mãđường cong Elliptic (ECC). Bên cạnh việc sử dụng trong tiền số Bitcoin, ECCcòn được ứng dụng rất nhiều trong thực tiễn ngành Công nghệ thông tin. Cáctrang Web bảo mật https (http-secure) thường được dùng trong thanh toán điệntử hay ứng dụng riêng tư như gmail đều sử dụng các giao thức TLS (TransportLayer Security). Ưu điểm của hệ mật mã sử dụng đường cong Elliptic (ECC) làcó độ dài khóa nhỏ (160 bit tương đương với khóa độ dài 1024 Bit trong hệ mậtRSA), do sử dụng độ dài khóa nhỏ nên tài nguyên phục vụ cho ECC thườngnhỏ hơn rất nhiều, bên cạnh đó hiệu năng tính tốn cũng được nâng cao rõ rệt.Hiện nay ECC đang là xu thế để thay thế RSA.

Bên cạnh đó, như đã đề cập ở phần giới thiệu, với việc hiện thực giải thuậtmã hóa này trên hệ thống phần cứng tái cấu hình làm rõ các nhận định về khảnăng bảo mật của giải thuật, tốc độ xử lý và hiệu năng trên phần cứng thơngqua việc xây dựng mơ hình kiến trúc thực thi thuật tốn mã hóa, mơ phỏngchương trình và thực thi trên phần cứng.

1.3Mục đích và phạm vi nghiên cứu

Mục đích, đối tượng và phạm vi nghiên cứu của đề tài luận văn "Hệ thốngtăng tốc phần cứng cho giải thuật mã hóa dựa trên tính tốn tái cấu hình" cóthể được mơ tả như sau:

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<small>1.3.1Mục đích nghiên cứu</small>

Tên đề tài thể hiện khả năng cải thiện hiệu suất và tăng cường khả năng xửlý của hệ thống mã hóa thơng tin thơng qua việc tích hợp các phương pháp tăngtốc phần cứng trên nền tảng FPGA. Trong q trình nghiên cứu, nhiều loại giảithuật mã hóa đường cong được phân tích và đánh giá để có thể tìm kiếm giảipháp hiệu quả để tối ưu hóa q trình mã hóa trên FPGA, và có thể là sự kếthợp giữa phần cứng và phần mềm để đạt được hiệu suất tối đa.

<small>1.3.2Phạm vi nghiên cứu</small>

Phạm vi nghiên cứu đề tài tập trung vào các kiến trúc phần cứng tái cấuhình và có thể cải tiến để phục vụ cho mục đích tăng tốc q trình xử lý giảithuật mã hóa. Ngồi ra, kết quả đạt được dùng để phân tích và so sánh hiệusuất giữa các nghiên cứu liên quan trên cùng giải thuật sử dụng. Các thông sốvề tiêu tốn điện năng, thời gian thực thi, tài nguyên sử dụng đối với hiệu suấtcủa hệ thống cũng được chú trọng và thể hiện trong bảng kết quả.

Ở hướng phát triển và nếu có cơ hội, đề tài có thể được cân nhắc để làm thếnào có thể thiết kế một hệ thống tăng tốc phần cứng linh hoạt để hỗ trợ nhiềuloại giải thuật mã hóa dựa trên tính tốn tái cấu hình, nhằm tối ưu hóa đượchiệu suất cho q trình hiện thực.

1.4Cấu trúc của luận văn

Cấu trúc của báo cáo luận văn được phân bổ như sau:

<small>•</small> Chương 1 - Giới thiệu đề tài: nhằm giới thiệu tổng quan về bài tốn mãhóa đường cong và mục đích hướng đến của đề tài.

<small>•</small> Chương 2 - Cơ sở lý thuyết và các cơng trình nghiên cứu liên quan: trìnhbày những cơ sở lý thuyết liên quan đến đề tài được sử dụng và các nghiêncứu mang tính ứng dụng lẫn phát triển liên quan đến đề tài.

<small>•</small> Chương 3 - Giới thiệu về phần cứng FPGA và sản phẩm Kria KV260 visionAI thực hiện trong luận văn.

<small>•</small> Chương 4 - Phương pháp giải quyết vấn đề: Trình bày các dạng giải thuậtmã hóa đường cong, đặc điểm, thuật tốn và phân tích các bước tính tốncó thể gây hao tổn tài ngun và đề xuất hướng giải quyết.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<small>•</small> Chương 5 - Hiện thực hệ thống trên công cụ Vivado - Giải thích sơ đồ,nguyên lý hoạt động của hệ thống và cách thiết lập, xây dựng một chươngtrình hồn chỉnh

<small>•</small> Chương 6 - Đánh giá và phân tích kết quả: Diễn giải kết quả đánh giá củaphương pháp và so sánh với các nghiên cứu liên quan.

<small>•</small> Chương 7 - Kết luận: Nêu kết luận đúc kết được trong quá trình nghiên cứuvà mở rộng hướng phát triển đề tài.

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

Cơ sở lý thuyết

2.1Khái quát về mã hóa và giải thuật mã hóa đường congElliptic Curve

<small>2.1.1Giới thiệu về mã hóa</small>

Mã hóa là một phương pháp quan trọng trong bảo mật thông tin, giúp biếnđổi dữ liệu từ dạng rõ ràng thành dạng không rõ ràng bằng cách sử dụng cácthuật tốn và khóa. Có nhiều hình thức mã hóa, bao gồm mã hóa đối xứng vàbất đối xứng, với mục tiêu chung là đảm bảo tính bí mật và toàn vẹn của dữliệu [6].

Một hệ thống mã hóa và giải mã bao gồm các thành phần:

<small>Hình 2.1: Mơ hình mã hóa, giải mã cơ bản</small>

Q trình mã hóa được tiến hành bằng cách áp dụng hàm tốn học (E) lênthông tin P, vốn được biểu diễn dưới dạng số, để trở thành thơng tin đã mã hóaC. Quá trình giải mã được tiến hành ngược lại: áp dụng hàm D lên thông tin Cđể được thông tin đã giải mã P.

Yêu cầu của mã hóa /giải mã bao gồm: Tính bảo mật (confidentiality), Tínhtồn vẹn (integrity), Tính xác thực(authentication), không thể chối bỏ (non-repudiation) [7].

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

Các loại mã hóa chính hiện nay: mã hóa đối xứng, mã hóa bất đối xứng. Mãhóa đối xứng: là loại mã hoá mà khoá mã hoá và khoá giải mã là một (sử dụngcùng một khoá mật mã). Đây là loại mã hố thơng dụng nhất hiện nay dùng đểtrao đổi dữ liệu. Nhược điểm của phương pháp này là làm thế nào để thống nhấtđược khoá mật mã giữa bên gửi và bên nhận. Nếu truyền khoá mật mà khôngdùng bất cứ phương pháp bảo vệ nào thì bên thứ ba cũng có khả năng lấy đượckhố mật mã này một cách dễ dàng. Thuật toán mã hố đối xứng thường gặpnhất hiện nay đó là DES và AES,. . . [8]

Mã hóa bất đối xứng: là mã hóa mà trong đó khố mã hố và khố giải mãkhác nhau. Mọi người đều có thể biết được khố mã hố và có thể dùng để mãhố thơng tin. Tuy nhiên, chỉ có người nhận mới nắm giữ khố giải mã, vì vậychỉ người nhận mới giải mã được thông tin, dữ liệu. Nhược điểm lớn nhất củaphương pháp này đó là tốc độ mã hóa và giải mã diễn ra rất chậm so với phươngpháp mã hoá đối xứng. Nếu dùng mã hoá bất đối xứng để truyền – nhận dữ liệuthì sẽ tốn khá nhiều chi phí. Thuật tốn phổ biến là RSA, ECC[8].

<small>2.1.2Hệ mật mã đường cong ECC</small>

Mật mã đường cong Elliptic (Elliptic Curve Cryptography - ECC) là một hệthống mã hóa khóa cơng cộng bất đối xứng bên cạnh hệ thống RSA. ECC đượcgiới thiệu lần đầu vào năm 1991 bởi các cơng trình nghiên cứu độc lập của NealsKoblitz và Victor Miller [9]. Độ an tồn của ECC dựa vào bài tốn logarit rờirạc trên nhóm các điểm của đường cong elliptic (ECDLP). Những ưu điểm màECC mang lại bao gồm: yêu cầu bộ nhớ thấp, khả năng xử lý thấp, độ an tồncao và thích hợp với các ứng dụng smart card, PDA, cellular phone, v.v [10].

Mật mã ECC cung cấp tính an tồn tương đương với các hệ mật khóa cơngkhai truyền thống, trong khi độ dài khóa nhỏ hơn nhiều lần. Người ta đã ướclượng rằng cỡ khoá 3248 bit của hệ mật RSA cho cùng một độ an toàn như 256bit của hệ mật ECC, kết quả so sánh được thống kê ở bảng 2.1. Điều đó cónghĩa là việc cài đặt ECC sử dụng tài nguyên hệ thống ít hơn, năng lượng tiêuthụ nhỏ hơn.... Với ưu thế về độ dài khóa nhỏ, ECC đang được ứng dụng rộngrãi trong nhiều lĩnh vực. Đường cong elliptic là tập hợp các điểm thỏa mãn mộtphương trình tốn học cụ thể. Phương trình cho một đường cong elliptic:

<small>y</small><sup>2</sup><small>= x</small><sup>3</sup><small>+ ax + b</small> (2.1)

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

Tính chất của ECC là đối xứng qua trục x. Bất kỳ điểm nào trên đường congđều được phản ánh qua trục x và vẫn giữ nguyên đường cong. Một đặc tính nữacủa đường cong này là bất kỳ đường không thẳng đứng nào cũng sẽ cắt đườngcong ở nhiều nhất là ba điểm như hình: 2.2

<small>Hình 2.2: Đường cong ECC đối xứng qua trục X và cắt đường cong ở nhiều nhất 3 điểm</small>

<small>Bảng 2.1: Thời gian phá khóa ứng với chiều dài của khóa ở mã hóa RSA và ECC, nguồn:[11]</small>

<small>Thời gian phá khóa (năm)khóa RSA (bit)khóa ECC (bit)</small>

Khởi đầu nền móng của đường cong Elliptic là công thức Weierstrasse. ĐặtK là một trường hữu hạn hoặc vô hạn. Một đường cong được định nghĩa bằng

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

công thức Weierstrasse như sau:

<small>y</small><sup>2</sup><small>+ a1xy + a3y = x</small><sup>3</sup><small>+ a2x</small><sup>2</sup><small>+ a4x + a6</small> (2.2)trong đó, <small>a1, a2, a3, a4, a6∈ K</small>

Đường cong elliptic trên trường K được ký hiệu E(K). Số lượng các điểmnguyên trên E được thể hiện dưới dạng #E(K). Đối với từng trường khác nhau,cơng thức 2.2 có thể được biến đổi thành các dạng khác nhau. Và một đườngcong elliptic là tập hợp các điểm thỏa công thức trên.

<small>2.1.2.1Đường cong elliptic trên trường nguyên tố hữu hạn</small>

Đường cong elliptic được xây dựng trên các trường hữu hạn E(<small>F</small><sub>q</sub>) được biểudiễn dưới dạng:

<small>y</small><sup>2</sup><small>= x</small><sup>3</sup><small>+ ax + b</small> (2.3)Với P là điểm thuộc đường cong trên, được biểu diễn P(x,y) và <small>∀</small> P <small>∈</small> E. Nếu P= (x,y) <small>∈</small> E thì (x,y) + (x,-y) = <small>∞</small>. (x, -y) kí hiệu là -P, gọi là điểm âm của P.

Các phép toán được sử dụng trên trường này:

<small>2.1.2.1.1Phép cộng</small> Phép cộng điểm điểm được định nghĩa trên tập đường congE(R) của các điểm có tọa độ (x,y). Theo quy ước, điểm tại vô cực O là điểmcộng với bất kỳ điểm nào cũng sẽ thành chính điểm đó.

<small>∀P = (x, y) ∈ E(R), P + O = O + P = P ;</small> (2.4)

<small>∀P (x, y) ∈ E(R) : ±y =</small><sup>p</sup><small>x3+ a</small><sub>4</sub><small>x + a</small><sub>6</sub> (2.5)Với 1 giá trị x, ta sẽ có 2 giá trị tọa độ y. Với điểm (-x, y), là điểm đối củađiểm P, kí hiệu <small>−P ∈ E(R)</small>. Và:

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

Trong đó, <small>P, Q, R ∈ E(R)</small> và:

<small>y</small><sub>3</sub> <small>= θ(x</small><sub>1</sub><small>+ x</small><sub>3</sub><small>− y</small><sub>1</sub><small>)</small> (2.9)Nếu <small>P ̸= Q</small>,

<small>2.1.2.1.2Phép nhân</small> Phép nhân được định nghĩa như một dãy các phép cộng:

<small>Q = mP = P + P + ... + P</small> (2.12)

<small>2.1.2.2Đường cong elliptic trên trường nhị phân E(F</small><sub>2</sub><small>m)</small>

Đường cong elliptic trong trường nhị phân được biểu diễn dưới dạng:

<small>y</small><sup>2</sup><small>+ xy = x</small><sup>3</sup><small>+ ax</small><sup>2</sup><small>+ b</small> (2.13)Với P là điểm thuộc đường cong trên, được biểu diễn P(x,y) và <small>∀</small>P <small>∈</small>E(<small>F</small><sub>2</sub><small>m</small>).Nếu P = (x,y) <small>∈</small> E(<small>F</small><sub>2</sub><small>m</small>) thì (x,y) + (x,x+y) = <small>∞</small>. Điểm (x, x+y) kí hiệu là -P,gọi là điểm âm của P.

Các phép toán được sử dụng trên trường này:

<small>2.1.2.2.1Phép cộng</small> Giả sử: P = (<small>x</small><sub>1</sub><small>, y</small><sub>1</sub>) <small>∈</small> E(<small>F</small><sub>2</sub><small>m</small>); Q = (<small>x</small><sub>2</sub><small>, y</small><sub>2</sub>) <small>∈</small> E(<small>F</small><sub>2</sub><small>m</small>) vàP<small≯=±</small>Q thì P + Q = (<small>x</small><sub>3</sub><small>, y</small><sub>3</sub>) với:

<small>x</small><sub>3</sub><small>= λ2 + λ + x</small><sub>1</sub><small>+ x</small><sub>2</sub><small>+ a</small> (2.14)

<small>y</small><sub>3</sub> <small>= λ(x</small><sub>1</sub><small>+ x</small><sub>3</sub><small>) + x</small><sub>3</sub><small>+ y</small><sub>1</sub> (2.15)

<small>λ =</small> <sup>y</sup><sup>1</sup><sup>+ y</sup><sup>2</sup>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<small>2.1.2.2.2Phép nhân</small> Giả sử: <small>P = (x1, y1) ∈ E(F</small><sub>2</sub><small>m)</small>, và<small>P ̸= ¬P</small>, thì<small>2P = (x3, y3)</small>,với:

2.2Biểu diễn tọa độ trên trường hữu hạn

Có ba dạng tọa độ cơ bản thường được sử dụng. Đó là tọa độ quan hệ (AffineCoordinate), tọa độ chiếu (Projective Coordinate) [13].

<small>2.2.1Tọa độ quan hệ - tọa độ Affine</small>

Một điểm hữu hạn P trên (E) được xác định bởi hai phần tử x, y trong GF(p)thỏa mã phương trình đường cong:

<small>(E) : Y</small><sup>2</sup><small>= X</small><sup>3</sup><small>+ aX + b; a, b ∈ F</small><sub>q</sub><small>; 4a</small><sup>3</sup><small>+ 27b</small><sup>2</sup><small≯= 0(mod p)</small> (2.20)Chúng được gọi là tọa độ quan hệ của điểm P. Điểm ở vơ cực <small>∞</small> khơng cótọa độ Affine. Để phục vụ cho mục đích tính tốn, người ta thường biểu diễn <small>∞</small>

bởi một cặp các hệ số (x,y) không nằm trên (E).QUY LUẬT:

Gọi E là đường cong elliptic được định nghĩa trên trường hữu hạn P bởiphương trình <small>(E) : Y</small><sup>2</sup> <small>= X</small><sup>3</sup> <small>+ aX + b; a, b ∈ Fq; 4a</small><sup>3</sup> <small>+ 27b</small><sup>2</sup> <small≯= 0( mod p)</small>. Gọi

<small>P</small><sub>1</sub> <small>= (x</small><sub>1</sub><small>, y</small><sub>1</sub><small>)</small>và<small>P</small><sub>2</sub> <small>= (x</small><sub>2</sub><small>, y</small><sub>2</sub><small>)</small>là các điểm trên E với<small>P</small><sub>1</sub><small>, P</small><sub>2</sub> <small≯= ∞</small>.<small>P</small><sub>3</sub><small>(x</small><sub>3</sub><small>, y</small><sub>3</sub><small>) = P</small><sub>1</sub><small>+P</small><sub>2</sub>

được định nghĩa như sau:

1. Nếu <small>x1̸= x2</small>, thì, với m được tính như 2.10

4. Nếu <small>P</small><sub>1</sub> <small>= P</small><sub>2</sub> và <small>y</small><sub>1</sub> <small>= 0</small> thì <small>P</small><sub>1</sub><small>+ P</small><sub>2</sub> <small>= ∞</small>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<small>2.2.2Tọa độ chiếu - Projective</small>

Để tránh các phép chia trong trường hữu hạn, người ta thường biểu diễn điểmtheo đọa độ chiếu (tọa độ ở dạng phân số). Có hai loại hệ tọa độ chiếu cơ bảnlà tọa độ chiếu chuẩn và tọa độ chiếu Jacobian.

Trong hệ tọa độ chiếu chuẩn, một điểm được biểu diễn dưới dạng (X, Y, Z)với <small>Z ̸= 0</small>, tương đương với tọa độ Affine là (X/Z, Y/Z).

Phương trình đường cong elliptic tọa độ chiếu chuẩn có dạng: <small>Y</small><sup>2</sup><small>Z = X</small><sup>3</sup><small>+aXZ</small><sup>2</sup><small>+ bZ</small><sup>3</sup>

Trong tọa độ chiếu Jacobian, một điểm (X, Y, Z) sẽ tương đương với điểm(X/<small>Z</small><sup>2</sup>, Y/<small>Z</small><sup>3</sup>) trong hệ tọa độ Affine.

Phương trình đường cong elliptic có dạng: <small>Y</small><sup>2</sup><small>= X</small><sup>3</sup><small>+ aXZ</small><sup>4</sup><small>+ bZ</small><sup>6</sup>

Trong tính tốn giải thuật đường cong, ta thường biến đổi một điểm có tọađộ chiếu Jacobian sang tọa độ Affine bằng cơng thức sau:

Thì:

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<small>x</small><sub>3</sub> <small>= −e</small><sup>3</sup><small>− 2ae + f</small><sup>2</sup><small>y</small><sub>3</sub> <small>= ce</small><sup>3</sup><small>+ f (ae</small><sup>2</sup><small>− x</small><sub>3</sub><small>)z</small><sub>3</sub> <small>= z</small><sub>1</sub><small>∗ z</small><sub>2</sub><small>∗ e</small>

Ta định nghĩa 2P =<small>(x</small><sub>3</sub><small>, y</small><sub>3</sub><small>, z</small><sub>3</sub><small>)</small>với P<small>(x</small><sub>1</sub><small>, y</small><sub>1</sub><small>, z</small><sub>1</sub><small>)</small>thuộc đường cong E với <small>P ̸= ∞</small>

như sau:

Đặt: <small>w</small><sub>1</sub><small>= 4x</small><sub>1</sub><small>y</small><sub>1</sub><sup>2</sup><small>,w</small><sub>2</sub><small>= 3x</small><sup>2</sup><sub>1</sub><small>+ A ∗ z</small><sub>1</sub><sup>4</sup>

<small>x</small><sub>3</sub> <small>= −2w</small><sub>1</sub><small>+ w</small><sup>2</sup><sub>2</sub><small>y</small><sub>3</sub><small>= −8y</small><sub>1</sub><sup>4</sup><small>+ w</small><sub>3</sub><small>(w</small><sub>1</sub><small>− x</small><sub>3</sub><small>)z</small><sub>3</sub><small>= 2y</small><sub>1</sub><small>z</small><sub>1</sub>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

2.3Các nghiên cứu liên quan

Với những lý thuyết đề cập ở trên, kết hợp hiện thực mã hố ECC trên phầncứng FPGA có cơ hội tăng tốc độ xử lý của thuật toán, phục vụ cho mục tiêubảo mật dữ liệu một cách nhanh chóng. Trên thực tế, có nhiều nghiên cứu liênquan đến ứng dụng này đã được công bố. Các tác giả đã hiện thực trên nhiềunền tảng phần cứng tái cấu hình khác nhau để so sánh hiệu quả mã hóa. Trongphần này, tác giả đề cập đến các nghiên cứu liên quan, minh chứng cho tính khảthi và là cơ sở để đánh giá sản phẩm thực hiện ở giai đoạn luận văn.

Những tiêu chí đánh giá khả năng xử lý khi hiện thực các ứng dụng mã hóathể hiện qua các thông số: số lượng logic thiết kế, tần số (frequency), sản phẩm(FPGA), throughput, lệnh/s (operations per seconds).

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

toán riêng và đơn giản — một cách tiếp cận mới về việc kết hợp trường hữu hạnphép nhân với các phép toán trường hữu hạn cơ bản khác, góp phần đạt đượchiệu suất tổng thể rất cao. Cụ thể, tác giả sử dụng giải thuật nhân Karatsuba,một trong những điều rất nổi tiếng các thuật toán nhân giúp cải thiện hiệu quảtốc độ của phép nhân cổ điển được công bố năm 1962. Gọi x và y là hai số cóL-bit và gọi <small>k = l/2</small> . Thuật toán Karatsuba được đưa ra như sau:

<small>xy = (x</small><sup>2</sup><sub>H</sub><sup>k</sup><small>+ x</small><sub>L</sub><small>)(y</small><sub>H</sub><sup>2</sup><sup>k</sup><small>+ y</small><sub>L</sub><small>)</small> (2.25)Tác giả sử dụng phương pháp tối ưu hóa bằng cách hiện thực kiến trúc từlớp cơ bản lên tổng quát (bottom-up). Ở cấp thấp nhất là các lớp số học, nórất quan trọng đối với số học trường hữu hạn được tối ưu hóa cho độ trễ thấp.Do đó, tác giả khám phá một tập hợp lớn các triển khai có thể, lựa chọn cẩnthận những kiến trúc hứa hẹn nhất để đánh giá trong giai đoạn đầu. Vì phépnhân trường hữu hạn cho đến nay là phép nhân hoạt động tốn nhiều thời giannhất, nên tác giả thử nghiệm tổng hợp của ba kiến trúc khác nhau (multiplythen reduce; interleave và Karatsuba). Và hướng tiếp cận thứ hai là từ tổng quátđến chi tiết (Top-down). Ở hướng này, tác giả tập trung vào các phép tính điểm(cộng, nhân đơi) và sử dụng khối tính tốn để đẩy nhanh q trình tính tốn.Sau đó đến giai đoạn tính nghịch đảo và cuối cùng là phép nhân để so sánh chữký số. Với hướng tiếp cận này, tác giả đã giảm thiểu dc 57% ô nhớ so với phươngpháp trên. Cùng với việc sử dụng mạch ASIC, tác giả có thể thực nghiệm trênnhiều điều kiện khác nhau, kết quả cho ra khác nhau trên những công nghệ nano(45nm cho kết quả tần số tốt hơn và độ trễ thấp hơn so với 65nm). [15] cũng đềcập rằng tác giả cũng đã thử trên nền tảng Xilinx và Intel (FPGA), tuy nhiênkết quả không quả quan như trên phần cứng ASIC. (về độ trễ cao hơn, số lượnglogic nhiều hơn ASIC, và tần số thấp hơn).

<small>2.3.1.2Công cụ xác thực ECDSA dựa trên FPGA hiệu quả cho việc cấp phép Blockchain</small>

Theo tác giả, [16] khi các doanh nghiệp nắm bắt công nghệ blockchain, nhiềuvấn đề trong thế giới thực các ứng dụng đã được phát triển và triển khaibằng cách sử dụng quyền nền tảng blockchain (quyền truy cập vào mạng đượckiểm soát bằng cách chỉ cho phép các nút có danh tính đã biết). Các nền tảngblockchain như vậy phụ thuộc rất nhiều vào mật mã để cung cấp một lớp tin cậybên trong mạng, do đó việc xác minh chữ ký mật mã thường xuyên trở thành

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

điểm nghẽn. Trong bài này, tác giả đề xuất một số cách tối ưu hóa cho số họcmơ-đun (ví dụ: số nhân tùy chỉnh và rút gọn mơ-đun nhanh) và số học điểm (vídụ: giảm đáng kể số lượng điểm gấp đơi và các phép tốn bổ sung cũng như biểudiễn NAF có chiều rộng tối ưu). Dựa trên các phép tính arithmetic modular vàpoint modular reduction trong thuật toán ECDSA, tác giả đề xuất một cơngcụ xác minh ECDSA có thể được sử dụng bởi bất kỳ ai ứng dụng để xác minhnhanh chữ ký ECDSA. Tần số mục tiêu là 250 MHz, một xác minh có thể mất760 micro-giây, throughput khoảng 1,315 xác minh mỗi giây, nhanh hơn 2.5 lầnso với việc triển khai dựa trên FPGA hiện đại. Tác giả cũng sử dụng những giảithuật quen thuộc liên quan đến ECDSA. Bên cạnh đó, tác giả nhấn mạnh thuậttốn xác minh chữ ký xử lý thông tin được được biết đến rộng rãi nên khơng cóthơng tin bí mật nào bị rị rỉ thông qua các kênh bên trong khi thực hiện xácminh chữ ký. Điều này mở rộng sự lựa chọn của về các thuật tốn để triển khaicác mơ-đun trong cơng cụ nhằm tối thiểu tài nguyên phần cứng đồng thời manglại độ trễ thấp. Tác giả đề xuất các biện pháp tối ưu hóa trong bối cảnh cácchuỗi khối được cấp phép, cụ thể là HL Fabric (mạng Hyperledger (HL) Fabric,một trong các nút là trình xác thực ngang hàng, chịu trách nhiệm xác thực mộtkhối và tất cả các giao dịch của nó trước khi đưa khối đó vào sổ cái. Nhiều cáccơng trình gần đây đã chỉ ra rằng trình xác thực ngang hàng là nút thắt lớnvà ảnh hưởng nghiêm trọng đến thông lượng cao nhất). Tác giả cho rằng mộtsố tham số được cố định trước trong khi các tham số khác có sẵn trước và dođó cả hai tham số này có thể được xử lý trước để tăng tốc hoạt động xác minhECDSA. Cụ thể hơn, chính là điểm cơ bản G và khóa chung K, được biết trướckhi ECDSA bắt đầu. Vì vậy, như ngay khi có tọa độ khóa cơng khai, hệ thốngcó thể bắt đầu xử lý chúng. Với mục tiêu này, kiến trúc có thể tận dụng điểmcố định Thuật toán nhân (FPM) để thực hiện điểm số học thay vì thuật tốnnhân điểm đồng thời.

Thuật tốn bắt đầu bằng cách tính tốn trước các lũy thừa 2 điểm khác nhauphép nhân cho một điểm P được biết trước (ví dụ: khi w = 4 thì các phép tínhtrước sẽ là P, 16P, 256P, v.v.). Khi điểm tạo được cố định, chúng tơi tính tốntrước các giá trị này ngoại tuyến và lưu trữ các giá trị trong BRAM trên FPGA.Đối với cơng chúng tọa độ chính, tác giả thiết kế một khối tính tốn trước riêngbiệt, bên ngồi của công cụ xác minh ECDSA, chạy điểm vô hướng nhị phânthuật tốn nhân với nhân đơi điểm, chỉ để tính toán trước các giá trị được đề

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

cập trước đó.

Khối tính tốn trước (pre-compute) tính tốn các giá trị điểm cần thiết chokhóa cơng khai và lưu trữ chúng trong BRAM. Việc tính tốn bên trong xácminh ECDSA thực tế giảm xuống dịng 4-8. Do đó, việc xác minh ECDSA chỉbao gồm việc cộng điểm các phép tốn với các phép tốn kép điểm được chuyểnsang tính toán trước. Hệ thống sử dụng cửa sổ NAF đế cố định (với cơ sở w =4) để giảm số lượng các hoạt động cộng điểm. Chú thích rằng: thuật toán nhânđiểm cố định được thực hiện hai lần; một lần cho điểm tạo G truy cập điểm tínhtốn ngoại tuyến các giá trị ở dòng 1 và lần thứ hai để truy cập khóa chung Kgiá trị điểm được tính tốn trước ở dịng 1.

<small>Hình 2.3: Sơ đồ kiến trúc và dữ liệu xác thực ECDSA với khối precompute, nguồn trích dẫn: [16]</small>

Kết quả hiện thực của hệ thống này rất ấn tượng khi việc sử dụng tài nguyênphần cứng và độ trễ của công cụ xác minh ECDSA với khối tính tốn trước(precompute) có độ trễ 120,000 cycle clocks. Ngoài ra, hệ thống trên thực tế chỉyêu cầu 92,000 cycles để thực hiện xác minh chữ ký duy nhất. Với phương phápnày, kiến trúc đạt được thông lượng 2,717 xác minh chữ ký mỗi giây. Tác giảthực hiện đánh giá công cụ xác minh ECDSA thưc tế trên HL Fabric trong bốicảnh Blockchain đang hoạt động.

<small>Bảng 2.2: Số lượng logic trong kiến trúc thiết kế ECDSA (tần số 250MHz)</small>

<small>Pre-compute14,0881,41712915120,000ECDSA eng21,7595,6251371592,0002,717</small>

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<small>-Bảng 2.3: So sánh throughput giữa các máy học blockchains và kiến trúc HL Fabric</small>

<small>Số lượng máy họcGeneric ECDSAHL Fabric ECDSA ([16])</small>

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<small>Hình 2.4: Kiến trúc hệ thống, nguồn trích dẫn: [26]</small>

Module PM được chia thành ba phần: VAU - đơn vị độ dài mã, FAUC - bộđiều khiển đơn vị số học, bộ điều khiển - PMC. VVAU là đơn vị tính tốn,module hoạt động tầng dưới cùng của hệ thống, ứng với tầng cuối cùng của kiếntrúc [14]. Module này cũng thực hiện các phép tính cộng, trừ, nhân. Điểm khácbiệt so với kiến trúc trên là có thêm phép bình phương. Hoạt động ở module nàyứng với độ dài khóa của các điểm ECPM. FAUC được sử dụng để gửi tín hiệuđiều khiển, yêu cầu các module của của bộ VAU. FAUC ứng với tầng modularalgorithms của kiến trúc EdDSA/ECDSA. Nhưng cách thức xây dựng chươngtrình có điểm khác ở điểm: FAUC có thêm module chuyển đổi lại tọa độ. Và bộphận cuối cùng là PMC - đóng vai trị như một ECC unit, điều khiển tồn bộq trình. PMC ở bài báo này khơng sử dụng thuật tốn EDSA mà sử dụngphương pháp ECPM.

Vai trị chính của module PMC là tích hợp các hoạt động của các modulecộng và nhân đơi điểm theo lịch trình để hoạt động thơng qua các hoạt độngnhân điểm. Về quy trình ECPM, các chức năng cụ thể của module điều khiểnPM được liệt kê như hình 2.5:

1. Các tọa độ affine của điểm cơ sở P được chuyển đổi thành các tọa độ ánhxạ tiêu chuẩn và quá trình gán khởi tạo dữ liệu của module này đã hồn tất.

2. Khóa bí mật k được quét từng bit để xác định giá trị của từng bit và quá

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

trình point addition, point doubling thực thi tùy thuộc vào kết quả quét.3. Theo phương pháp Montgomery, các module cộng và nhân đôi điểm là đượcgọi để thực hiện thao tác lặp.

4. Sau khi hoàn thành thao tác nhân điểm trong tọa độ xạ ảnh, phép chuyểnđổi lại tọa độ được yêu cầu để chuyển đổi kết quả thành tọa độ affine. (Phépchuyển đổi chuyển đổi các ánh xạ tiêu chuẩn của phép cộng/trừ/nhân thành giátrị tọa độ affine ở các phép nhân điểm. Nghĩa là, các tọa độ phải được chuyểnđổi từ các xạ ảnh tiêu chuẩn sang các affine, nghĩa là từ (X, Z) sang (x, y))

<small>Hình 2.5: Sơ đồ trạng thái hoạt động của PMC, nguồn trích dẫn: [26]</small>

Hệ thống tương thích với các hoạt động ECPM của bốn độ dài khóa khácnhau, vì vậy module điều khiển PM phải được đảm bảo hoạt động để đáp ứngvới tín hiệu lựa chọn giá trị độ dài khóa.

Tóm lại, trong bài báo này, phương pháp Montgomery và kỹ thuật sử dụngphép chia tọa độ tiêu chuẩn được áp dụng để thực hiện các phép nhân điểm

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

ECPM trên đường cong ECC để giải quyết thời gian tiêu tốn trong q trìnhmã hóa. Thuật tốn ECC tương thích với bốn độ dài khóa khác nhau và triểnkhai song song một cặp thuật toán ECC trong trường hợp độ dài khóa 233 hoặc286, giúp mở rộng phạm vi ứng dụng và cải thiện hiệu quả của hệ thống.

<small>2.3.2.2Triển khai phần cứng có thể mở rộng và tham số hóa của Thuật tốn chữ ký sốđường cong Elliptic trên trường nguyên tố</small>

Ở bài báo này, tác giả [17] thực hiện sử dụng một phương pháp đồng thiếtkế phần cứng-phần mềm trên khả năng cấu hình lại nền tảng phần cứng (Xilinxxc6vlx240T-1ff1156). Một số các hoạt động liên quan như tạo khóa riêng, trọngsố nhị phân tính tốn và hình thành thông báo SHA được thực hiện trong phầnmềm sử dụng Microblaze (soft core của Xilinx). Phần mềm một phần của FPGAđược sử dụng để truyền tham số tới phần cứng của FPGA nơi tạo chữ ký và việcxác minh được thực hiện. Hiệu suất định thời cho tạo và xác minh chữ ký ở kíchthước trường 192 bit là 0.7 ms và 0.844 ms tương ứng. Tương tự, ECDSA việctriển khai ở kích thước trường 521 bit yêu cầu 9.145 ms cho tạo chữ ký và 11.92ms để xác minh chữ ký. Cái này bài báo trình bày một kiến trúc được tham sốhóa và có thể mở rộng cho ECDSA trên các trường nguyên tố.

Tác giả cũng sử dụng phương pháp chuyển đổi giữa hai ánh xạ tọa độ Affinevà Jacobian để giảm thiểu số lượng phép tính và việc nghịch đảo điểm gây tốnthời gian và tài nguyên. Bên cạnh đó, các giải thuật về phép nhân Montgomeryvà phép cộng song song các word cũng được đề cập. Tác giả cho biết, Phép cộngmô-đun là một trường số nguyên tố quan trọng hơn các hoạt động khác do cóthể ảnh hưởng đến hiệu suất thời gian của ECDSA thực hiện. Trong quá trìnhthực hiện ECDSA hiện nay kiến trúc cách tiếp cận bổ sung word-wise đã đượcthông qua tương tự như thiết kế của các bộ cộng như tác giả mô tả bên dưới:

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

<small>Hình 2.6: Kiến trúc phép cộng/trừ song song word-wise, nguồn trích dẫn: [17]</small>

Ngồi ra, khác với các nghiên cứu khác, bài báo này đề cập đến giải pháphiện thực kiến trúc ECDSA trên nền tảng phần cứng - phần mềmmềm kết hợpMicroblazer. Tất cả các tham số được tạo trong phần mềm phải được chuyểntới logic lập trình phần cứng của FPGA. Vì điều này, mơ-đun giao tiếp đã đượctriển khai và được sử dụng để truyền tham số từ phần mềm sang phần cứng vàsau đó lưu trữ các tham số này vào bộ nhớ thích hợp trong phần cứng. Cơ chếghi/đọc BRAM bắt tay đã được thực hiện.

Các thành phần được hiện thực trên phần mềm bao gồm:

1. Khởi tạo khóa ngẫu nhiên

2. Bộ mã hóa tin nhắn vào SHA-1

3. Bộ tính tốn MSB (bit có quan trọng lớn nhất): giúp phần cứng nhận diệnbit đầu tiên của khóa riêng tư và dữ liệu vào

4. Bộ điều khiển các tham số

Các thành phần hiện thực trên phần cứng bao gồm:

1. Chuyển đổi tọa độ Affine sang Jacobian

2. Montgomery conversion

3. Tích vơ hướng ECC

4. Chuyển đổi tọa độ Jacobian sang Affine

5. Montgomery sang tọa độ thường

Với kiến trúc này, tác giả nhận định kiến trúc có khả năng mở rộng cho kíchthước trường cao hơn. Hơn nữa, kiến trúc mang tính chung chung và khơng có

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

sự giảm thiểu cụ thể các kỹ thuật như được xác định cho số nguyên tố NIST đãđược sử dụng. Kiến trúc đề xuất sử dụng kết hợp thiết kế mã phần mềm-phầncứng. Một số thao tác một lần như tạo khóa, Đệm tin nhắn SHA-1, tính tốn vàkiểm sốt MSB việc tạo tham số được thực hiện trong phần mềm là chính. Cịnhoạt động ECDSA được thực hiện trong phần cứng. Hiệu quả về mặt thời giancủa việc thực hiện được đề xuất là vượt trội hơn hầu hết các triển khai phầncứng và phần mềm trong cùng lĩnh vực.

Mật mã ECC khơng chỉ là nghiên cứu mà nó cịn được ứng dụng rộng rãi,dưới nhiều hình thức thể hiện khác nhau. Việc hiện thực giải thuật và tích hợpvào những ứng dụng cụ thể sẽ giúp giải quyết vấn đề bảo mật cho ứng dụng vàvới giải thuật có tốc độ xử lý nhanh, giúp ứng dụng xử lý nhanh những tác vụkhác và đem lại hiệu quả sử dụng cao và mang tính thực tiễn với người dùng.

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

Giới thiệu phần cứng FPGA và Kria KV260 Vision AI

3.1Phần cứng máy tính và FPGA

Phần cứng máy tính, hay cịn gọi là "hardware", là bộ phận vô cùng quantrọng, là hệ thống cơ bản và không thể thiếu của mọi thiết bị điện tử. Nó baogồm những thành phần vật lý, từ những con chip nhỏ bé đến những bộ nhớkhổng lồ, đều là những phần tử đóng góp vào sức mạnh và hiệu suất của mộtmáy tính. Theo wikipedia, phần đề cập đến các bộ phận vật lý hữu hình củamột hệ thống máy tính; các thành phần điện, điện tử, cơ điện và cơ khí của nónhư là màn hình, chuột, bàn phím, máy in, máy quét, vỏ máy tính, bộ nguồn,bộ vi xử lý CPU, bo mạch chủ, các dây cáp, cũng như tủ hoặc hộp, các thiếtbị ngoại vi của tất cả các loại, và bất kỳ yếu tố vật lý nào khác có liên quan,tạo nên phần cứng hoặc hỗ trợ vật lý ví dụ như loa, ổ đĩa mềm, ổ đĩa cứng,ổ CDROM, ổ DVD, card đồ họa VGA, card wifi, card âm thanh, bộ phận tảnnhiệt,...

<small>3.1.1Giới thiệu về phần cứng FPGA</small>

Một trong những thiết kế phổ biển nhất của bộ tính tốn tái cấu hình nàychính là mạch FPGA. FPGA là viết tắt của thuật ngữ tiếng anh “Field Pro-grammable Gate Array", là một loại vi mạch dùng cấu trúc mảng phần tử logiccho phép người dùng có thể tái cấu hình lại kiến trúc theo ý người dùng để thựcthi một chức năng cụ thể, kèm theo xây dựng các driver tương ứng để phát triểncác phần mềm ứng dụng và giải thuật tối ưu hơn [19]. Tuy nhiên, FPGA cũngsẽ có những lợi thế khi so sánh với ASIC (mạch tích hợp được thiết kế sẵn dànhcho các ứng dụng cụ thể) [20]:

<small>•</small> FPGA có kiến trúc mảng phần tử logic nên có thể thực thi song song so vớivi điều khiển hoặc CPU phải thực thi mã lệnh theo dạng tuần tự. FPGA có

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

thể tăng hiệu suất xử lý của hệ thống, đặc biệt là hệ thống thời gian thực.

<small>•</small> FPGA có thể dễ dàng mở rộng các ngoại vi cũng như giao tiếp với nhiềuthiết bị hơn mà các mạch tích hợp khác khơng thể.

<small>•</small> ASIC sẽ tốn nhiều cơng suất tiêu thụ hơn thực tế yêu cầu để thực thi tácvụ nhỏ, so với FPGA. FPGA đóng vai trị to lớn trong việc giảm giá thànhvà thời gian chế tạo ASIC.

<small>•</small> Số lần nạp lên mạch FPGA gần như khơng giới hạn. Nhưng dữ liệu nạpcho FPGA sẽ bị mất khi mất nguồn. Nếu muốn lưu giữ file nạp thì file nạpdạng binary phải cần được lưu vào bộ nhớ ngồi hoặc ROM.

<small>Hình 3.1: Bảng so sánh hiệu năng và tính linh hoạt trong các nền tảng mạch tích hợp, nguồn tríchdẫn: [21]</small>

Ban đầu, phần cứng tái cấu hình được sử dụng để tái cấu hình một đơn vịchức năng trong bộ xử lý trung tâm. Điều này cho phép mơi trường lập trìnhtruyền thống có thể cải tiến, bổ sung thay đổi theo thời gian. Tại đây, các đơnvị chức năng được cấu hình lại có thể thực thi trên đường dẫn dữ liệu của bộ vixử lý, với các thanh ghi được sử dụng để giữ các toán hạng đầu vào và đầu ra.Sau đó, hệ thống có thể sử dụng cùng lúc như một bộ đồng xử lý (co-processor).Một bộ đồng xử lý có thể thực hiện tính tốn, và thực thi câu lệnh như mộtbộ xử lý trung tâm và không cần sự giám sát liên tục của bộ xử lý trung tâm,kể cả việc cấp quyền truy cập và đọc/ghi dữ liệu từ bộ nhớ. Ngồi ra, hệ thống

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

tái cấu hình cũng có thể được xem như một đơn vị độc lập (standalone unit).Hầu hết các hệ thống thiết kế này có thể được phân loại như đồng xử lý hoặctrở thành bộ xử lý độc lập bởi tính kiến trúc thiết kế có thể tùy chỉnh của nó.FPGA được xem là một sản phẩm có sẵn trên thị trường [21].

<small>3.1.2Kiến trúc của FPGA</small>

Có hai phương pháp lập trình FPGA: lập trình dựa trên SRAM và lập trìnhdựa trên kết nối cầu chì. Lập trình dựa trên SRAM cần sử dụng các bit củaSRAM cho từng phần tử lập trình. Với giá trị bit là 0 thì tắt chuyển mạch, vớigiá trị bit là 1 thì bật chuyển mạch. Đối với phương pháp thứ hai, khi lập trìnhdịng lập trình tạo ra kết nối cầu chì. FPGA dựa trên SRAM do các SRAM củaFPGA có thể được ghi đọc như SRAM bình thường ngay cả khi chúng ở tronghệ thống, nên các FPGA có thể được lập trình lại nhiều lần. Tuy nhiên với việclập trình FPGA loại này thì trễ định tuyến lại lớn. Loại FPGA này thường đượcsử dụng cho lập trình cấu hình các mẫu thử của các thiết kế phần cứng trênASIC. FPGA dựa vào kết nối cầu chì duy trì cố định nội dung lập trình ngay cảkhi mất nguồn, và trễ định tuyến nhỏ. Tuy nhiên chúng yêu cầu một quá trìnhsản xuất phức tạp, và nếu đã lập trình thì khơng thể thay đổi được nữa.

Nhìn chung, kiến trúc tổng quát của FPGA [22] được mơ tả như hình 3.2:

<small>Hình 3.2: Kiến trúc và thành phần của FPGA, nguồn trích dẫn: [22]</small>

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

<small>•</small> Khối logic: thực thi các chức năng logic, cung cấp các tính tốn và phầntử nhớ cơ bản được sử dụng trong hệ thống số. CLB (Configurable LogicBlocks) là phần tử cơ bản cấu thành FPGA, là nguồn tài nguyên logic chínhtạo nên các mạch logic đồng bộ lẫn không đồng bộ. Một CLB cơ bản gồmmột mạch tổ hợp có thể lập trình (cịn gọi là LUT - look up table), mộtFlip-Flop hoặc một chốt (latch).

<small>•</small> Khối kết nối: dùng để liên kết các khối logic và I/O lại với nhau để tạothành một thiết kế hoàn chỉnh.

<small>•</small> Khối I/O: cung cấp giao tiếp giữa các khối logic và kiến trúc định tuyếnđến các thành phần bên ngồi.

Ngồi ra có thể cịn có các mạch điều khiển các tín hiệu xung nhịp số phânphối cho từng khối lô-gic, khối vào ra và các khối mạch lô-gic bổ sung như cácALU, bộ nhớ, bộ ghép kênh (MUX), thanh ghi dịch, mạch giải mã. Các FPGAthường được lập trình sau khi đã hàn gắn trên bảng mạch in, tương tự như cáccấu kiện lơ-gic khả trình phức tạp lớn. Trên thực tế, bộ nhớ truy cập ngẫu nhiêntĩnh (SRAM) của mạch FPGA được lập trình lại mỗi khi bật nguồn, vì FPGAlà dạng chip nhớ tạm thời. Do đó, cấu hình sẽ phải nạp lại mỗi lần khởi động lạichip FPGA. Muốn lưu giữ lại cấu hình đã lập trình cho FPGA thì ta phải mắcthêm một bộ nhớ chỉ đọc khả trình (PROM) hay bộ nhớ chỉ đọc lập trình đượcvà xóa được (EEPROM) ngồi để có thể nạp cấu hình tự động trong quá trìnhhoạt động. Bộ nhớ ngồi này có nhiệm vụ lưu tệp cấu hình ở dạng nhị phân vàmỗi khi thiết bị được bật nguồn tệp cấu hình từ EEPROM sẽ được nạp tự độngvào bộ nhớ SRAM của mạch FPGA, FPGA hoạt động theo cấu hình đã đượcnạp đó. Các giao tiếp cấu hình cơ bản được nạp qua các cổng giao tiếp và cóthể được nạp lại cũng như cấu hình lại vơ số lần thơng qua các cổng đó.

<small>3.1.3Các ứng dụng của FPGA trên thực tế</small>

Ứng dụng của mạch FPGA bao gồm: xử lý tín hiệu số, các hệ thống mật mãhọc, các hệ thống điều khiển trực quan, phân tích nhận dạng ảnh, nhận dạnggiọng nói, mơ hình phần cứng máy tính. Ngày nay FPGA cịn được ứng dụngtrong các kiến trúc xử lý song song, đặc biệt là các ứng dụng về mã hóa và giảimã. Do có hiệu năng cao cùng khả năng tái cấu hình cho nên cơng nghệ FPGAcó thể giải quyết được các cơng thức tính tốn phức tạp mà trước kia chỉ được

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

thực hiện qua các phần mềm trên máy tính. Cùng với đó cơng nghệ FPGA cịnđược ứng dụng cả trong các hệ thống thời gian thực.

3.2Phần cứng FPGA Kria 260 Vision AI kit

Theo [23], Ngày 20/04/2021 Xilinx vừa cho ra mắt Kria K26 Module được thiết kế như một "Vision Accelerator". Trước hết, Xilinx Kria làmột thương hiệu mới giống như Xilinx Alveo. Mục tiêu của Kria là cung cấpSystem-on-Modules(SOM) có thể được tích hợp nhanh chóng vào các thiết kế đểtăng tốc độ suy luận AI (Accelerate Artificial Intelligent Inferencing). System-on-Module cung cấp các thành phần cốt lõi của hệ thống xử lý nhúng — baogồm lõi bộ xử lý, giao diện truyền thông và khối bộ nhớ — trên một bảng mạchin sẵn sàng sản xuất (PCB). Cách tiếp cận module này làm cho SOM trở nênlý tưởng để nhúng vào các hệ thống cuối, từ robot đến camera an ninh. SOMkhác với hệ thống trên chip (SoC). SoC, như tên gọi của nó, là một tập hợp cácthành phần máy tính quan trọng được đặt trên một con chip. Mặc dù SOM cóthể bao gồm SOC nhưng chúng hoạt động trên bo mạch và do đó có khơng gianđể bao gồm các thành phần bổ sung. Trong các dòng Kria mà Xilinx cho ra mắt,dòng sản phẩm Developer Kit dành cho người mới bắt đầu với khả năng tạo racác sản phẩm mẫu một cách nhanh chóng.

System-on-Dưới đây là thơng số kĩ thuật cũng như các thành phần của phần cứng FPGAKria KV260 Vision AIAI:

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

<small>Hình 3.3: Các thành phần giao tiếp của phần cứng FPGA Kria KV260 Vision AI Developer Kit, theo:[24]</small>

Kria KV260 hướng đến các ứng dụng tăng tốc phần cứng, tiêu chí này chophép các nhà phát triển lập trình theo mục đích và khả năng cá nhân. Theo nhàsản xuất, các ứng dụng tăng tốc hệ thống có thể dễ dàng thiết lập và bắt đầuchạy trong vòng chưa đầy 1 giờ, cho phép các nhà phát triển tập trung vào sựkhác biệt và rút ngắn thời gian để triển khai số lượng lớn. Các ứng dụng EdgeVision phổ biến hiện có sẵn và một hệ sinh thái các đối tác của Xilinx đang pháttriển. Trong phạm vi này, phần cứng được xem là phù hợp với mục ích đã đặtra ở tên đề tài: hệ thống tăng tốc phần cứng.

</div>

×