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 ệthống 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 bảo mật như đã đề xuất trong Chương luận án này2, đãđề xuất và thực hiện:
- Sử dụng các thuật toán mã hóa và xác thực trong khu vực cấu hình lại được đảm bảo,
tất cả các file bitstream từng phần luôn luôn được mã hóa và xác thực trước khi trao
đổi qua mạng và cập nhật lại hệ thống. Việc thêm bộ giải mã AES-256 và bộ xác thực
SHA-512 làm cho hệ thống an toàn hơn, tốc độ thực hiện nhanh hơn mà không làm
tăng đáng kể tài nguyên của hệ thống.
- Sử dụng thuật toán nén RLE để nén bitstream. Thuật toán cho một kết quả tốt thể hiện
ở tỉ số nén và giải pháp giải nén thực hiện dễ dàng trên hệ thống nhúng dựa trên FPGA. Kỹ thuật nén này kết hợp với khả năng cấu hình lại được từng phần của FPGA sẽ đem đến một giải pháp hiệu quả trong việc giảm dung lượng bộ nhớ lưu trữ và làm
giảm thời gian cập nhật hệ thống.
- Giải pháp sử dụng lõi AXI Master với hai bộ đệm dữ liệu FIFO đã giải quyết vấn đề -
băng thông giữa bộ vi xử lý nhúng và phần logic cấu hình. Như vậy, trong m t h ộ ệ
thống nhúng d a trên FPGA, v i ự ớ các lõi tăng tốc có s n có th ẵ ể được s dử ụng để tăng thông lượng cho các ng d ng b o m t. ứ ụ ả ậ
74 CHƢƠNG 4
MÔ HÌNH TH NGHI M H Ử Ệ Ệ THỐNG CẤU HÌNH LẠI ĐƢỢC T NG PHỪ ẦN D A TRÊN FPGA Ự
Giới thiệu: Chương này trình bày các bước, các công cụ để xây dựng mô hình mẫu trên thiết bị FPGA ML605 Virtex-6 XC6VLX240T của Xilinx và FPGA Atlys Spartan-6 LX45 của Digilent giúp cho việc kiểm tra và đánh giá về bảo mật hệ thống nhúng cấu hình lại được ừngt ph ần như đã đề xuất ở Chương 2 và 3. Mô hình này cùng với các mã thuật toán (code) được cung cấp đầy đủ trong phần phụ lục sẽ là một cơ sở dữ liệu quan trọng cho các nghiên cứu kế thừa về sau.
4.1 Xây d ng h ự ệ thống
4.1.1. Cài đặ ệ ốt h th ng
Để kiểm tra framework, giao thức và các giải pháp bảo mật đã đề xuất, luận án này đã xây dựng một hệ thống mẫu thử nghiệm trong đó bao gồm một nền tảng nhúng cấu hình lại được dựa trên board phát triển FPGA ML605 Virtex-6 XC6VLX240T của Xilinx và một máy tính xách tay đóng vai trò a nhà cung cấp dịch vụ (Hình 4.củ 1). Board FPGA ML605 Virtex-6 XC6VLX240T [104] và máy tính xách tay được kết nối với nhau thông qua một kết nối Ethernet. Một hệ thống tương tự cũng được thực hiện để so sánh hiệu năng và tài nguyên hệ thống trên board phát triển FPGA Atlys Spartan-6 LX45 [105].
FPGA ML605 Virtex-6 XC6VLX240T FPGA Atlys Spartan-6 LX45