.11 Quy trình thiết kế FPGA

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 44 - 48)

- Tổng hợp. Giai đoạn này liên quan đến việc chuyển đổi một mô tả HDL thành một

netlist. Theo một cách cơ bản và chính thức, netlist cịn được gọi là sơ đồ mạch số (digital circuit schematic). Tổng hợp được thực hiện bởi một phần mềm đặc biệt được gọi là bộ tổng hợp. Với một mã HDL được viết một cách chính xác và đã được mơ phỏng, việc tổng

31 hợp sẽ khơng có bất kỳ vấn đề gì. Tuy nhiên, tổng hợp có thể tiết lộ một số vấn đề và lỗi tiềm năng mà không thể phát hiện bằng cách sử dụng mơ phỏng hành vi. Do đó, một thiết FPGA nên chú ý đến những cảnh báo được chỉ ra bởi bộ tổng hợp.

- Thực hiện. Một netlist được bộ tổng hợp tạo ra được ánh xạ vào cấu trúc bên trong

của thiết bị cụ thể. Giai đoạn chính của giai đoạn thực hiện là đặt chỗ và định tuyến hoặc bố trí tài ngun của FPGA. Sau đó dữ liệu cấu hình được ghi vào một tập tin đặc biệt bởi một chương trình được gọi là bộ tạo bitstream.

- Phân tích thời gian tĩnh. Trong quá trình phân tích thời gian, phần mềm đặc biệt

kiểm tra xem thiết kế được thực hiện đáp ứng các ràng buộc về thời gian (chẳng hạn như tần số xung đồng hồ) được chỉ định bởi người sử dụng hay không.

Tất cả các bước thiết kế, các công đoạn và các công cụ hỗ trợ đều được cung cấp trong các gói phần mềm thiết kế của các hãng sản xuất FPGA, như gói phần mềm ISE của Xilinx, Quatus của Altera.

1.2.4.2. Dữ liệu thiết kế và bảo mật thiết kế

Như phần ở trên ta thấy, dữ liệu thiết kế hệ thống dựa trên SRAM-based FPGA có thể được lưu trữ ở ba giai đoạn với ba mức dữ liệu khác nhau:

- Dữ liệu thiết kế ở mức HDL. HDL là ngôn ngữ mô tả phần cứng hay là ngôn ngữ

máy tính chun d ng để lập trình cấu trúc, thiết kế và vận hành các mạch điện tử, và phổ biến nhất là các mạch logic kỹ thuật số. HDL được viết dưới dạng văn bản (text) về cấu trúc của hệ thống điện tử và hành vi của chúng theo thời gian. HDL có thể được sử dụng để thể hiện các thiết kế theo cấu trúc, hành vi hoặc kiến trúc mức chuyển dịch thanh ghi RTL (register-transfer-level) cho các chức năng của mạch điện.

Dữ liệu thiết kế ở mức HDL là quá “rõ ràng” đối với bất cứ ai có hiểu biết về ngơn ngữ lập trình phần cứng. Đây là dạng dữ liệu mà kẻ tấn công cần nhất. Rất may là chúng thường chỉ nằm trong tay của nhà thiết kế, ít trao đổi qua mạng. Nó khơng phải là dữ liệu cấu hình nên chúng cũng khơng có mặt trên các thiết bị, cách ly hoàn toàn với người sử dụng. Việc bảo mật chúng như bảo mật các văn bản thông thường và không là mối quan tâm giải quyết của luận án này.

- Dữ liệu thiết kế ở mức netlist. Netlist mô tả các kết nối của một thiết kế điện tử.

Các netlist thường truyền đạt thông tin kết nối và khơng có gì hơn ngồi các đối tượng (instances), các lưới (nets), và có thể một vài thuộc tính (attributes). Đối tượng có thể là bất cứ cái gì từ một transistor MOSFET hoặc một transistor lưỡng cực tới một điện trở, một tụ điện, hoặc chip tích hợp. Lưới là mạng dây dẫn kết nối mọi thứ với nhau trong mạch. Có thể có hoặc khơng có thuộc tính đặc biệt nào liên quan đến lưới trong một thiết kế, t y thuộc vào ngôn ngữ cụ thể mà netlist được ghi với các tính năng của ngơn ngữ đó.

32 Dữ liệu thiết kế ở mức netlist có thể được xem như một “hộp đen” (black box) đối với các hacker thông thường. Nhưng với các hacker có tổ chức với các cơng cụ tinh vi thì chúng có thể phân tích và đảo ngược thiết kế. Các nghiên cứu về bảo mật các dữ liệu ở mức netlist trong các nghiên cứu gần đây được chỉ ra trong [80], [81].

- Dữ liệu thiết kế ở mức bitstream. Đây là mức dữ liệu thiết kế cuối c ng của hệ

thống và cũng có thể gọi là dữ liệu cấu hình. Như được mơ tả trong Hình 1.11, bitstream là sản phẩm đầu ra của các bước thực thi thiết kế của các bộ phần mềm thiết kế phần cứng như ISE của Xilinx, Quartus của Altera. Bitstream là dữ liệu cấu hình để tải vào FPGA. FPGA sau khi được tải bitstream sẽ trở thành thiết bị có các chức năng như được mô tả trong thiết kế ban đầu. Định dạng chi tiết của bitstream cho một chip FPGA cụ thể thường được xem là sở hữu độc quyền của nhà sản xuất FPGA.

Dữ liệu thiết kế ở mức bitstream ln ln có mặt trên các SRAM-based FPGA, có nghĩa là nó ln có mặt trong thiết bị của người sử dụng. Vì vậy, bitstream xem như ln luôn đối mặt với môi trường độc hại, nơi kẻ tấn cơng có thể thâm nhập và khai thác bất cứ lúc nào. Hơn nữa, xuất phát từ ưu điểm của các SRAM-based FPGA là chúng có thể cấu hình lại được và cấu hình lại được từng phần động, nên các thiết bị dựa trên các FPGA này thường được hỗ trợ việc cập nhật từ xa qua mạng Internet. Đây cũng là môi trường không an toàn với rất nhiều rủi ro bảo mật. Để phịng chống và bảo vệ quyền sở hữu trí tuệ, ngành công nghiệp đã phát triển một số kỹ thuật khác nhau để bảo vệ dữ liệu thiết kế từ các file bitstream như: Flash on-chip, mã hóa và xác thực bitstream, quản lý bản quyền số FPGA, v.v.

Hầu hết công việc liên quan đến bảo mật bitstream tập trung vào việc ngăn chặn hành vi trộm cắp trước khi bitstream được tải lên thiết bị. Đã có nhiều nghiên cứu với các hướng tiếp cận khác nhau đã trình bày trong thời gian qua, chẳng hạn như mã hóa và xác thực bitstream [11], [13], [24], [29], [37], [38], d ng thủy vân số (digital watermarking) để quản lý bản quyền [43], [44]. Một số FPGA có thể được cập nhật từ xa, và các nhà khoa học đã phát minh ra các cơ chế cập nhật an toàn như sử dụng các giao thức an toàn [23], [41] hoặc các cơ chế giám sát [22], [40], [42] với các tham số cộng thêm để ngăn chặn trộm cắp trên đường truyền hoặc ngăn ngừa kẻ tấn công tải lên một thiết kế độc hại gây ra hành động ngoài ý muốn.

1.3. Hệ thống nhúng 1.3.1. Giới thiệu 1.3.1. Giới thiệu

Hệ thống nhúng là một hệ thống xử lý được nhúng vào trong một mơi trường hay một hệ thống lớn hơn. Đó là các hệ thống tích hợp cả phần cứng và phần mềm phục vụ các bài

33 tốn chun dụng trong nhiều lĩnh vực cơng nghiệp, tự động hoá điều khiển, quan trắc và truyền tin. Đặc điểm của các hệ thống nhúng là hoạt động ổn định và có tính năng tự động hố cao. Các hệ thống nhúng có những tính chất chung sau [82]:

- Đáng tin cậy (dependable): Nhiều hệ thống nhúng sử dụng trong các mơi trường địi

hỏi phải có độ an tồn cao nên chúng phải thật đáng tin cậy. Ví dụ, các hệ thống nhúng ứng dụng trong lò phản ứng hạt nhân là các hệ thống nhúng đáng tin cậy. Tính đáng tin cậy cũng quan trọng đối với các hệ thống khác như ô tô, tàu hỏa, máy bay. Và chúng bao gồm những khía cạnh sau:

1) Độ tin cậy: xác suất mà một hệ thống sẽ không gặp sự cố.

2) Khả năng bảo trì: xác suất mà một hệ thống đang bị sự cố có thể sửa được trong một khoảng thời gian nhất định.

3) Độ sẵn có: xác suất mà hệ thống ở tình trạng sẵn sàng phục vụ. Cả độ tin cậy và khả năng bảo trì đều phải cao để có độ sẵn có cao.

4) An tồn: một hệ thống bị sự cố sẽ khơng gây thiệt hại.

5) Bảo mật: dữ liệu mật khơng bị lộ và liên lạc có chứng thực được đảm bảo.

- Hiệu suất (efficient): Hiệu suất của các hệ thống nhúng được đánh giá theo các đặc

điểm sau:

1) Năng lượng: Nhiều hệ thống nhúng là các hệ thống di động d ng năng lượng pin. Nhưng với các u cầu tính tốn lại tăng với tốc độ cao, đặc biệt đối với các ứng dụng multimedia. Do đó, năng lượng phải được sử dụng một cách có hiệu quả 2) Kích thước mã: Tồn bộ mã chương trình chạy trong một hệ nhúng phải được lưu

trong hệ thống. Thông thường, một hệ thống nhúng khơng có đĩa cứng để lưu chương trình. Do đó kích thước mã nên càng nhỏ càng tốt. Điều này đặc biệt đúng cho SoC. Nếu bộ nhớ lệnh cần được tích hợp vào chip, nó nên được d ng một cách có hiệu quả.

3) Hiệu quả khi chạy: Chỉ nên d ng lượng tài nguyên tối thiểu để thực hiện chức năng được yêu cầu. Cần thỏa mãn ràng buộc về thời gian với lượng tối thiểu tài nguyên phần cứng và năng lượng. Để giảm mức tiêu thụ năng lượng, tần số đồng hồ và điện áp nên nhỏ đến mức có thể. Ngồi ra, hệ thống chỉ nên có những thành phần phần cứng thiết yếu. Có thể bỏ các thành phần khơng cải thiện thời gian chạy. 4) Trọng lượng: Tất cả các hệ thống di động đều yêu cầu phải nhẹ. Nhẹ cũng thường

là một điều quan trọng khi cân nhắc khi thực hiện một hệ thống nào đó.

5) Giá: Đối với các hệ thống nhúng thông dụng, đặc biệt là đồ điện gia dụng, sức cạnh tranh trên thị trường là một vấn đề cực kì quan trọng, do đó cần sử dụng hiệu quả các thành phần phần cứng cũng như chi phí phát triển phần mềm.

Như vậy, hệ thống nhúng thường được thiết kế để thực hiện một chức năng chuyên biệt nào đó. Khác với các máy tính đa chức năng, chẳng hạn như máy tính cá nhân, một hệ thống nhúng chỉ thực hiện một hoặc một vài chức năng nhất định, thường đi kèm với

34 những yêu cầu cụ thể. Vì hệ thống chỉ được xây dựng cho một số nhiệm vụ nhất định nên các nhà thiết kế có thể tối ưu hóa nó nhằm giảm thiểu kích thước và chi phí sản xuất.

1.3.2. Các lĩnh vực ứng dụng của hệ thống nhúng

Hệ thống nhúng rất đa dạng, phong phú về chủng loại. Đó có thể là những thiết bị cầm tay nhỏ gọn như đồng hồ kĩ thuật số, máy nghe nhạc MP3, hoặc là những sản phẩm lớn như đèn giao thơng, bộ kiểm sốt trong nhà máy, hoặc hệ thống kiểm soát các nhà máy năng lượng hạt nhân. Dưới đây là các lĩnh vực quan trọng sử dụng đến các hệ thống nhúng.

Điện tử ô tô; Điện tử hàng không; Đường sắt;Viễn thông;Y tế; Bảo mật; Quân sự; Điện gia dụng; Nhà thông minh; Robot.

1.3.3. Các thách thức và bảo mật trong hệ thống nhúng

Các hệ thống nhúng bao gồm một số lượng lớn các phần mềm. Như đã biết, mục tiêu của thiết kế một hệ thống nhúng là tính hiệu quả cao, do đó thiết kế phần mềm khơng thể được thực hiện độc lập với phần cứng. Vì vậy, phần mềm và phần cứng phải được xem xét trong các bước thiết kế. Việc triển khai phần cứng là rất tốn kém và đòi hỏi thiết kế trong thời gian dài. Hơn nữa, thiết kế phần cứng không thực sự linh hoạt để thay đổi khi cần thiết. Vì vậy, cần phải tìm một thỏa hiệp tốt nhất giữa tính hiệu quả và tính linh hoạt. Điều này là khó khăn, vì phương pháp tiếp cận tích hợp như vậy địi hỏi người thiết kế cần có kiến thức về phần cứng lẫn phần mềm, Hình 1.12. Và khi thiết kế hệ thống bảo mật thì cần hiểu biết sâu sắc về bảo mật nữa.

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 44 - 48)

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

(120 trang)