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

Một phần của tài liệu Bảo mật bitstream FPGA799 (Trang 79)

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à hoàn toà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 toán của

CPU. Hơn nữa, nén RLE là thuật toán nén không tổn hao. Nó đảm bảo tính toàn vẹn của dữ liệu sau quá 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 t uật toán nén bitstream vào trong hệ thống mang lại nhiều lợi h

í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.2 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 toà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 ántrì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.1, 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ầ về bảo mật và hiệu năng thực hiện Sự đóng góp chính u .

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 toán mật mã và cấu h nh lại hệ thống.ì

68

3.2.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.3 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.3Sơ đồ khối của hệ thống

3.2.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.2.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 nstructions I S Cet omputer - 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 Ethernetnhậ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-512thự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-256thự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 soát quá 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 ộ FIFO, trong b

đó 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 quá 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.4Kiến trúc AXI Master với hai bộ FIFO-

3.2.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

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 toá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 hoàn toàn khối dữ liệu đầu vào đó.

3.3 Đá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 toà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 [ ], Yohei Hori và ệ ặ ả ạ ể ệ ạ 19 đồ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 toá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á này đạt đượp 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 toán mã. Vì vự ọ ậ ậy, phương pháp này bị ràng bu c c nh ộ ố đị

thu t toá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 ả ế ằ

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 thông lượng

cao như phương pháp của [ ] (do các tác 19 gi này th c hi n b AES-128 và SHA-256), ả ự ệ ộ như chỉ ra B ng 3.6, ở ả nhưng cũng đạt được k t qu kh quan (do lu n án này s d ng các ế ả ả ậ ử ụ

b AES-256 và SHA-512 ộ có độ dài khóa và độ tính toán ph c tứ ạp hơn 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 xuyên,

thì tính linh động trong th c hiự ện được xem là l a ch n ự ọ ưu tiên hàng đầu. Bảng 3.6 Hiệ năng ủu c a các b mã hóa trong các h ộ ệ thống b o mả ật

H thng FPGA Thu t toán Slice Thông lượng

[30] XC5VLX50T SHA-256 AES-128 AES-GCM 675 (10%) 567 (7%) 1,226 (16%) 1.164 Mbps 701 Mbps 1.067 Mbps H ệthống của

luận án này XC6VLX240T SHA-512 AES-256 1.293 (3,43%) 843(2,25%) 492,9 Mbps 309,9 Mbps

Trong [ ], I. Gonzalez và F.J. Gomez-Arribas trình bày các l a ch n thay th khác 80 ự ọ ế nhau để tăng hiệu su t c a các thu t toán mã kh i trong các h th ng nhúng d a trên b x ấ ủ ậ ố ệ ố ự ộ ử

lý lõi mềm MicroBlaze. Để so sánh, m t s hi n th c các thu t toán mộ ố ệ ự ậ ật mã thông thường nhất đã được tri n khai. Các ki n trúc tùy chể ế ọn được cung c p b i MicroBlaze cùng vấ ở ới nh ng l a chữ ự ọn khác nhau để ế ố k t n i lõi tùy chỉnh tăng ốc đã được xem xét và đánh giá. t Không c n m t n l c thi t k tuy t v i, s c i tiầ ộ ỗ ự ế ế ệ ờ ự ả ến đạt hai lần nhanh hơn so vớ ấ ải t t c các giải pháp ph n m m. Các tác gi ầ ề ảchỉ ra r ng m t s yằ ộ ố ế ố ạu t h n ch c a vi c c i thi n hi u ế ủ ệ ả ệ ệ

suất trong h th ng nhúng d a trên FPGA là: ệ ố ự

- Công ngh c a logic c u hình, ệ ủ ấ

- Tốc độ truy n d u c a các giao di n gi a b vi x lý nhúng và logic c u hình, ề ữliệ ủ ệ ữ ộ ử ấ

- Tốc độ ủ c a b vi x lý nhúng và ộ ử

- Băng thông bộ nh . ớ

K t qu ế ả chứng minh r ng m t trong nh ng nút th t c chai quan tr ng nhằ ộ ữ ắ ổ ọ ất là băng thông và độ ễ ủ tr c a giao di n k t n i b vi x lý nhúng vào logic c u hình l i. N u giao ệ ế ố ộ ử ấ ạ ế

di n t t nhệ ố ất đượ ực l a ch n, các nhà thi t k có th ọ ế ế ể có được m t s c i ti n c a nhiộ ự ả ế ủ ều hơn

r t nhi u so v i các gi i pháp ph n mấ ề ớ ả ầ ềm. Như vậy, trong m t h ộ ệ thống d a trêự n MicroBlaze, s linh hoự ạt được cung c p b i FPGA có th ấ ở ể được s dử ụng để tăng thông lượng cho các ng d ng b o m t. ứ ụ ả ậ

3.4 K t luế ận chƣơng

Hệ thống cấu hình lại được từng phần dựa trên FPGA có thể kết hợp bộ xử lý nhúng v ớicác phần cứng chuyên dụng sẽ như là một nền tảng phần cứng của giải pháp hệ thống

trên chip SoC. Từ nền tảng phần cứng này cùng với các phần mềm nhúng, chúng ta có thể thiết lập nên các hệ thống đáp ứng mọi yêu cầu thiết kế đề ra. Tuy nhiên, các hệ thống dựa trên FPGA thường bị ràng buộc tốc độ và hạn chế về tài nguyên. Vì vậy việc thiết kế thêm

73

các tính năng bảo mật vào các hệ thống này thường phải cân nhắc và xem xét trên nhiều khía cạnh khác nhau.

Trong chương này, với mục tiêu là tăng hiệu năng, tính linh hoạt và tối ưu tài nguyên hệ thống của các hệ thống nhúng cấu hình lại được từng phần khi thực hiện các giải pháp

Một phần của tài liệu Bảo mật bitstream FPGA799 (Trang 79)