.3 Kết quả nén bitstream trên máy tính

Một phần của tài liệu Luận án tiến sĩ kỹ thuật điện tử bảo mật bitstream FPGA (Trang 80 - 86)

Dung lượng bitstream gốc (KB) Dung lượng bitstream nén (KB) Tỉ lệ nén (%) 72 44 61.11 278 77 27.70 469 84 17.91 1450 319 22.00 9017 450 4.99

67 Như vậy theo số liệu trong Bảng 3.3, ta có thể thấy rằng tỉ số nén có xu hướng giảm khi mà kích thước của file bitstream đầu vào tăng. Điều này là hồn tồn có lợi bởi lẽ khi đó dung lượng của bộ nhớ lưu trữ sẽ giảm đi đáng kể. Tỉ số nén giảm có thể được giải thích như sau: khi kích thước file bitstream tăng thì số lượng các bit 0 và 1 lặp lại liên tiếp lớn hơn nhiều, đặc biệt là đối với các thiết kế không sử dụng hết tài nguyên của FPGA.

Thuật toán nén RLE là rất dễ thực hiện và khơng địi hỏi nhiều tốc độ tính tốn của CPU. Hơn nữa, nén RLE là thuật tốn nén khơng tổn hao. Nó đảm bảo tính tồn vẹn của dữ liệu sau q trình nén và giải nén. Đây là một trong những yêu cầu của nén bitstream. Vì vậy, đối với các hệ thống nhúng cấu hình lại được từng phần dựa trên FPGA, nén RLE là rất ph hợp để thực hiện và thực hiện một cách dễ dàng.

Về bảo mật, việc thêm thuật toán nén bitstream vào trong hệ thống mang lại nhiều lợi ích thiết thực như: giảm dung lượng bộ nhớ lưu trữ và băng thông truyền tải, giảm được thời gian mã hóa và giải mã, dẫn đến giảm được năng lượng tiêu thụ của hệ thống. Điều này đồng nghĩa với việc, c ng với một chi phí như khi thực hiện bảo mật với bitstream không nén, việc thực hiện bảo mật với bitstream nén có thể đạt được mức độ bảo mật cao hơn bằng cách sử dụng thuật toán mã phức tạp hơn hay độ dài khóa dài hơn. Ví dụ, thay vì sử dụng AES-128, ta sử dụng AES-256.

3.3 Nâng cao hiệu năng của hệ thống

Hệ thống bảo mật với mục đích là bảo vệ tính bí mật, tính tồn vẹn của dữ liệu đồng nghĩa với việc bảo vệ quyền sở hữu tài sản trí tuệ cũng như bảo đảm sự an toàn của hệ thống. Để đáp ứng yêu cầu về bảo mật, các nhà thiết kế cần phải thêm một số chức năng đặc biệt vào hệ thống. Tuy nhiên, việc thực hiện bảo mật này trong đa số trường hợp phải đánh đổi với việc giảm hiệu năng, tăng tài nguyên và tăng chi phí của hệ thống. Trong phần này luận án trình bày một phương pháp nâng cao hiệu năng của hệ thống nhúng cấu hình lại được từng phần dựa trên FPGA. Hệ thống được miêu tả ở đây có khả năng cập nhật từ xa thông qua Internet hoặc từ các thiết bị lưu trữ bên ngoài như một thẻ nhớ Compact Flash (CF).

Như đã trình bày trong mục 3.2, thiết kế các bộ giải mã AES-256 và bộ xác thực SHA- 512 trong phần cứng cấu hình lại được từng phần để sử dụng tối ưu tài nguyên hệ thống trong khi vẫn đáp ứng được yêu cầu về bảo mật và hiệu năng thực hiện. Sự đóng góp chính của mục này là việc áp dụng hệ thống kiến trúc BUS AXI4 tốc độ cao cho phép đọc ghi bitstream giữa các khối và xây dựng bộ AXI Master giúp tăng tốc độ thực hiện các thuật tốn mật mã và cấu hình lại hệ thống.

68

3.3.1. Xây dựng hệ thống

Để nâng cao hiệu năng của hệ thống, luận án này thiết kế và bố trí các khối chức năng như miêu tả trong Hình 3.4 dưới đây. Trong đó các khối mã hóa và xác thực được thực hiện trong khu vực cấu hình lại được từng phần và giao tiếp với DDRAM thông qua hai FIFO được quản lý bởi khối AXI Master.

Hình 3.4 Sơ đồ khối của hệ thống

3.3.1.1. Mơ tả hoạt động của hệ thống

 Khi nhận được bản tin thơng báo cập nhập từ phía máy chủ, Microblaze sẽ thực hiện các công việc cần thiết cho quá trình thiết lập giao thức truyền nhận và cập nhật an toàn bitstream.

 Nhờ khối DMA, luồng dữ liệu sẽ đi trực tiếp từ khối Ethernet đến DDRAM thông qua hệ thống bus AXI4 tốc độ cao, điều này có ý nghĩa rất lớn trong việc tăng tốc độ hoạt động của hệ thống do giảm được thời gian nhận bistream đồng thời giải phóng cho vi xử lý Microblaze có thể thực hiện các chức năng khác. Lúc này MicroBlaze đóng vai trị của bộ điều khiển và thiết lập các tham số cần thiết trong quá trình truyền nhận dữ liệu.

 Khi quá trình nhận bitstream kết thúc, MicroBlaze thiết lập các tham số cần thiết cho các khối SHA-512 và AES-256 bắt đầu hoạt động. Các dữ liệu vào các khối này được lấy từ DDRAM, thực hiện giải mã và xác thực rồi lưu lại vào trong DDRAM dưới sự điều khiển của AXI Master.

 MicroBlaze sẽ so sánh mã xác thực được thực hiện bởi SHA-512 và mã xác thực nhận được từ máy chủ. Nếu kết quả là như nhau, MicroBlaze sẽ ghi tín hiệu chipSelect cho phép ICAP hoạt động, và quá trình cấu hình lại sẽ bắt đầu.

69

3.3.1.2. Xây dựng các khối chức năng

Bộ xử lý lõi mềm MicroBlaze điều khiển và kiểm soát các khối trong hệ thống và

giao tiếp với máy chủ cập nhật thông qua cổng giao tiếp Ethernet.

MicroBlaze [100] là một bộ vi xử lý lõi mềm 32bit loại RISC (Reduced Instructions Set Computer - Máy tính với tập lệnh đơn giản hóa). Kiến trúc bộ vi xử lý bao gồm 32

thanh ghi 32-bit. Vì nó là một bộ xử lý lõi mềm nên các đơn vị chức năng tích hợp vào kiến trúc bộ vi xử lý có thể được t y chỉnh để ph hợp với mục tiêu ứng dụng. Luận án này thiết lập MicroBlaze vào hệ thống bằng cách sử dụng công cụ phát triển nhúng của Xilinx EDK (Embedded Development Kit) phiên bản 14.1.

Khối Ethernet nhận và lưu dữ liệu từ máy chủ cập nhật vào DDRAM.

Thành phần chính của khối trao đổi dữ liệu là một lõi IP AXI Ethernet [101], được hỗ trợ bởi Xilinx. Lõi này hoạt động ở ba chế độ 10/100/1000 Mb/s, và cung cấp một giao diện điều khiển các thanh ghi nội bộ bằng cách sử dụng một giao diện AXI4-Lite 32bit. Giao diện AXI4-Lite này hỗ trợ đọc và ghi dữ liệu nhịp đơn.

Khối AXI-DMA điều khiển truy nhập bộ nhớ DDRAM một cách trực tiếp.

AXI-DMA [8] là một lõi IP mềm của Xilinx được tích hợp trong các bộ phát triển

phần mềm nhúng. Nó cung cấp một sự truy nhập băng thơng cao giữa bộ nhớ với các thiết bị ngoại vi sử dụng kiểu Bus AXI4-Stream. AXI-DMA giúp giảm tải các luồng dữ liệu đi qua CPU. Việc thiết lập ban đầu, điều khiển, đọc trạng thái lõi để quản lý được thực hiện dựa vào các thanh ghi qua kiểu bus AXI-Lite ph hợp cho các ứng dụng phát triển dựa trên vi xử lý Microblaze.

Khối SHA-512 thực hiện xác thực các tập tin bitstream từng phần.

Khối SHA-512 được xây dựng theo mơ hình FSMD [102] với 2 khối con là khối SHA_512_Contr đóng vai trị là khối điều khiển và khối SHA_512_Func là khối đường dữ liệu. SHA_512_Contr làm nhiệm vụ xử lý các tín hiệu trạng thái (status signals) nhận được từ khối SHA_512_Func đồng thời điều khiển quá trình giao tiếp với DDRAM qua FIFO.

Khối AES-256 thực hiện giải mã các tập tin bitstream từng phần.

Khối AES-256 cũng được xây dựng theo mơ hình FSMD, nó bao gồm hai khối con là khối AES_256_Contr đóng vai trị làm mạch điều khiển trạng thái và khối AES_256_Func đóng vai trò là khối đường dữ liệu. Khối AES_256_Contr nhận các tín hiệu trạng thái làm đầu vào sau đó quyết định để đưa ra các tín hiệu điều khiển cho khối AES_256_Func chính là khối thực hiện đường dữ liệu, đồng thời nó cũng đóng vai trị điều khiển việc trao đổi dữ liệu với FIFO thông qua các chân đọc và ghi FIFO.

Khối AXI-Master kiểm soát việc truyền nhận dữ liệu giữa DDRAM và các khối

70 Khối AXI-Master được xây dựng với hai bộ đệm FIFO để tăng tốc độ trao đổi dữ liệu giữa DDRAM và các khối khối AES-256, SHA-512, và ICAP. Cách thực hiện của nó như sau:

Khối AXI-Master [103] được thêm vào hệ thống bằng cách sử dụng công cụ của hãng cung cấp FPGA (trong luận án này tác giả sử dụng bộ công cụ ISE của Xilinx). Khối này cung cấp một giao diện hai chiều giữa lõi IP của người d ng và giao diện AXI4 tiêu chuẩn. Nó cũng cung cấp một giao diện truyền dữ liệu giữa các khối chức năng và DDRAM thông qua một FIFO.

Tuy nhiên, rất khó để kiểm sốt q trình đọc và ghi dữ liệu của cả phần cứng và phần mềm trong một FIFO duy nhất. Giải pháp của luận án này sử dụng hai bộ FIFO, trong đó mỗi FIFO đảm nhận một chức năng khác nhau và được điều khiển bởi hai tín hiệu đọc/ghi riêng lẽ: FIFO thứ nhất nhận dữ liệu theo chiều từ DDRAM xuống các mô- đun. Quá trình ghi dữ liệu vào FIFO này được điều khiển bởi tín hiệu ghi từ khối AXI- Master, cịn q trình đọc dữ liệu ra sẽ do tín hiệu read từ mô-đun chức năng điều khiển. FIFO thứ 2 thực hiện ngược lại so với FIFO thứ nhất.

.

Hình 3.5 Kiến trúc AXI-Master với hai bộ FIFO

3.3.2. Thực hiện và đánh giá kết quả

Kết quả thực nghiệm được xây dựng trên FPGA Xilinx Virtex-6. Tài nguyên phần cứng được sử dụng cho mã hóa AES-256 và SHA-512 chỉ chiếm một phần rất nhỏ tài nguyên hệ thống, xem Bảng 3.4.

Với việc sử dụng AXI-Master với hai bộ đệm dữ liệu FIFO, ta thấy phần tài nguyên hệ thống chỉ tăng thêm khoảng 1,19% nhưng hiệu năng thực hiện của AES-256 và SHA-512 được cải thiện khoảng bốn lần nhanh hơn, như được trình bày trong Bảng 3.5.

71

Bảng 3.4 Sử dụng phần cứng của AES-256 và SHA-512 (Virtex-6)

Lõi IP

Tài nguyên sử dụng

Registers LUTs Slice

AES-256 3.096 (1,02%) 3.751 (2,38%) 1.293 (3,43%)

SHA-512 2.246 (0,74%) 2.299 (1,46%) 843 (2,25%)

AXI-Master 443 (0,15%) 1.387 (0,92%) 455 (1,19%)

Bảng 3.5 Hiệu năng thực hiện của SHA-512 và AES-256 (Virtex-6)

Lõi IP

Thơng lượng*

Khơng có AXI-Master Có AXI-Master

SHA-512 73,8 Mbps 309,9 Mbps

AES-256 126,4 Mbps 492,9 Mbps

*Thông lượng: Thông lượng của các bộ mã hóa/xác thực/nén được tính tốn bằng kích

thước dữ liệu đầu vào chia cho tổng thời gian mà các bộ mã đó thực hiện biến đổi xong hồn tồn khối dữ liệu đầu vào đó.

3.4 Đánh giá và so sánh với các nghiên cứu liên quan

Bảo vệ tính bảo mật và tính tồn vẹn của một bitstream cấu hình là điều cần thiết cho cấu hình lại một phần năng động (DPR) của các FPGA. Điều này là do khi bitstream bị sai lệch hoặc giả mạo có thể gây ra thiệt hại cho FPGA. Trong bài báo [30], Yohei Hori và

đồng sự trình bày một phương pháp bảo vệ bitstream tốc độ cao và sử dụng hiệu quả tài nguyên của hệ thống DPR bằng cách sử dụng mã hóa AES-GCM, đây là một thuật tốn mã hóa được xác thực. Phương pháp này cũng cung cấp một cơ chế phục hồi lỗi và khả năng chống giả mạo chống lại xóa, chèn, và làm rối loạn khối cấu hình. Kết quả thực hiện và đánh giá cho thấy rằng phương pháp này đạt được một hiệu suất cao về tốc độ và tài nguyên phần cứng sử dụng so với các phương pháp sử dụng vi xử lý nhúng hoặc sử dụng đồng thời hai thuật toán mã AES và SHA riêng biệt. Tuy nhiên, nó thiếu thực sự linh hoạt khi thay đổi và lựa chọn các thuật tốn mã. Vì vậy, phương pháp này bị ràng buộc cố định thuật tốn giữa hai phía nhà cung cấp dịch vụ và người dùng cuối.

Giải pháp của luận án này là thực hiện các khối AES và SHA trong vùng logic cấu hình lại được từng phần để tăng tính linh hoạt và khi thay đổi và lựa chọn các thuật toán mã. Vấn đề tài nguyên (slice) hệ thống tuy có nhiều hơn nhưng được giải quyết bằng các giải phóng các bộ mã hóa này khi khơng sử dụng đến. Vấn đề tốc độ thực hiện cũng được

72 cải thiện hơn nhiều so với việc sử dụng vi xử lý nhúng. Tuy không đạt được tốc độ cao như phương pháp của [30] (do các tác giả này thực hiện bộ AES-GCM trong v ng logic tĩnh), nhưng như chỉ ra ở Bảng 3.6, ta thấy kết quả là gần tương đương (do luận án này sử dụng các bộ AES-256 và SHA-512 thay vì AES-128 và SHA-256). Đối với ứng dụng bảo mật trong cập nhật từ xa, thường xảy ra không thường xun, thì tính linh động trong thực hiện được xem là lựa chọn ưu tiên hàng đầu.

Một phần của tài liệu Luận án tiến sĩ kỹ thuật điện tử bảo mật bitstream FPGA (Trang 80 - 86)

Tải bản đầy đủ (PDF)

(120 trang)