.1 Sử dụng phần cứng của AES-256 và SHA-512

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 77 - 80)

Lõi IP

Tài nguyên sử dụng

Registers LUTs Slice

AES-256 3.096 (5,67%) 3.751 (13,74%) 1.293 (18,95%)

SHA-512 2.246 (4,11%) 2.299 (8,42%) 848 (12,48%)

3.2.2. Tối ƣu vùng nhớ lƣu trữ

Từ số liệu cho trong Bảng 2.1 ở Chương 2. Ta thấy kích thước bitstream tăng dần theo các thế hệ FPGA. Kích thước này tiếp tục tăng nhanh trong các FPGA hiện đại và như vậy sẽ cần nhiều bộ nhớ hơn để lưu trữ các bitstream này.

64 Một trong những thách thức của việc sử dụng FPGA lớn là sự cần thiết phải lưu trữ dữ liệu cấu hình một cách đáng tin cậy, đặc biệt là đối với các FPGA sử dụng trong môi trường bức xạ khắc nghiệt. Bộ nhớ không bay hơi được sử dụng để lưu trữ các bitstream khởi tạo phải “cứng” với bức xạ (RAD-HARD). Vì bộ nhớ RAD-HARD thường có mật độ thấp hơn nhiều so với bộ nhớ thông thường, nên c ng với một dung lượng lưu trữ sẽ cần nhiều chip RAD-HARD hơn, dẫn đến tăng không gian của board. Hơn nữa, bộ nhớ RAD- HARD đắt hơn nhiều so với những bộ nhớ thơng thường, kết quả chi phí hệ thống rất tốn kém chỉ để lưu trữ bitstream. Bởi vì các chi phí này, các nhà thiết kế hệ thống ln ưu tiên tìm giải pháp để giảm kích thước của bitstream càng nhiều càng tốt.

Nén bitstream là một công việc quan trọng trong thiết kế hệ thống cấu hình lại vì nó làm giảm kích thước bitstream để giảm yêu cầu về bộ nhớ lưu trữ. Nó cũng cải thiện băng thông truyền tải trên mạng và do đó giảm được thời gian cập nhật hệ thống. Đặc biệt là trong các hệ thống cấu hình lại được từng phần.

Tỉ số nén thường được sử dụng để tính tốn hiệu quả của các kỹ thuật nén và được định nghĩa như sau:

CR CP OP

 (3.1)

Trong đó CR (Compression Ratio) là tỉ số nén, CP (Compressed Program) kích thước

chương trình đã nén, OP (Original Program) kích thước chương trình gốc ban đầu. Như

vậy, thuật tốn nén tốt sẽ có tỉ số nén càng nhỏ.

Đã có một số nghiên cứu điều tra tính hiệu quả của nén bitstream FPGA. Andreas Dandalis và K Prasanna [95] đề xuất thuật toán nén bitstream dựa trên hệ thống nhúng. Họ đã đề xuất một kỹ thuật nén để giảm thiểu bộ nhớ u cầu để chứa thơng tin cấu hình của FPGA và có hiệu năng giải nén cao. Kỹ thuật này dựa trên kỹ thuật nén từ điển và được bắt nguồn từ thuật toán nén LZW. Hạn chế của thuật toán là cần một phần cứng giải nén đắt tiền. Seong và cộng sự [97] đề xuất một kỹ thuật nén sử dụng các mặt nạ bits (bitmask). Kỹ thuật này dung hòa được cả tỉ số nén và hiệu quả khi giải nén. Đây là kỹ thuật cải tiến của kỹ thuật nén từ điển. Kỹ thuật này được thiết kế để giảm kích thước của từ điển.

Ta thấy, tất cả những kỹ thuật nén trên yêu cầu mạch bổ sung để thực hiện việc giải nén. Phần cứng này cần không gian board bổ sung, làm tăng kích thước của thiết kế hệ thống. Căn cứ vào tính chất của bitstream và với framework như đã đề xuất và phân tích ở Chương 2, luận án này đề xuất và xây dựng thuật toán nén RLE (Run-Length Encoding) [98],[99] cho hệ thống của mình. Đây là thuật tốn nén khơng tổn hao rất ph hợp cho ứng dụng nén bitstream.

Kỹ thuật nén RLE sẽ loại bỏ các các ký tự lặp lại liên tiếp. Các ký tự lặp lại này được gọi là “run”, một từ mã hóa điển hình của kỹ thuật nén RLE bao gồm có hai bytes. Byte

65 đầu tiên thể hiện số lượng các ký tự “run” và được gọi là “run count”. Byte thứ hai biểu diễn ký tự được lặp lại, giá trị của ký tự này nằm trong khoảng từ 0 đến 255, và nó được gọi là “run value”.

Ví dụ: Với một chuỗi sau gồm 15 ký tự “AAAAAAAAAAAAAAA” thì cần đến 15 bytes bộ nhớ để lưu trữ. Nhưng khi nén với RLE thì sẽ được “15A” và bộ nhớ yêu cầu chỉ là 2 bytes. Giá trị “15A” được gọi là một gói RLE (RLE packet).

Như vậy, nén RLE là hiệu quả với các tập tin có chứa rất nhiều dữ liệu lặp đi lặp lại như các tin văn bản, các hình ảnh có chứa v ng màu trắng hoặc đen lớn. Bitstream FPGA cũng có thể cho một tỷ lệ nén tốt đặc biệt là các là bitstream của một hệ thống thiết kế không đầy đủ.

3.2.2.1. Xây dựng thuật toán nén RLE trên máy chủ cập nhật

Thuật tốn chương trình nén chạy trên máy tính chạy trên máy chủ cập nhật được thể hiện như lưu đồ sau. Dữ liệu đầu vào là file bitstream và đầu ra là file *.bit đã nén. Như đã được trình trong framework ở Chương 2, tất cả bitstream trong máy chủ cập nhật đều được nén và lưu trữ trong kho dữ liệu của mình. Chương trình nén này được xây dựng bằng phần mềm Visual C++.

66

3.2.2.2. Xây dựng thuật toán giải nén RLE trên hệ thống nhúng

Thuật toán giải nén là thuật toán ngược lại thuật nén như đã mô tả ở trên và được thực hiện thành cơng trên hệ thống nhúng cấu hình lại được từng phần dựa trên FPGA. Luận án này thực hiện đánh giá giải nén các bitstream có kích thước khác nhau, rồi tính thời gian giải nén. Kết quả đạt được như Bảng 3.2 sau:

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 77 - 80)

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

(120 trang)