Tải bản đầy đủ (.pdf) (27 trang)

tóm tắt luận án bảo mật bitstream FPGA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.32 MB, 27 trang )







BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI







TRẦN THANH



BẢO MẬT BITSTREAM FPGA




Chuyên nghành: Kỹ thuật Điện tử
Mã số: 62520203



TÓM TẮT LUẬN ÁN TIẾN SĨ KỸ THUẬT ĐIỆN TỬ












HÀ NỘI - 2014






Công trình này được hoàn thành tại:
Trường Đại học Bách Khoa Hà Nội



Tập thể hướng dẫn khoa học: 1. PGS. TS. Phạm Ngọc Nam
2. TS. Nguyễn Văn Cường




Phản biện 1: TS. Hồ Khánh Lâm
Phản biện 2: PGS. TS. Trần Xuân Tú

Phản biện 3: PGS. TS. Đặng Văn Chuyết




Luận án sẽ được bảo vệ trước Hội đồng chấm luận án tiến sĩ cấp trường
họp tại Trường Đại học Bách khoa Hà Nội.
Vào hồi … giờ, ngày … tháng…. năm ……….




Có thể tìm hiểu luận án tại:
1. Thư viện Tạ Quang Bửu, Trường ĐHBK Hà Nội
2. Thư viện Quốc gia Việt Nam

1

Mở đầu
Bảo mật là quá trình đảm bảo tính bí mật, tính toàn vẹn và tính khả dụng tài
nguyên của hệ thống thông tin trong môi trường có nhiều tác nhân để đảm bảo rằng
chỉ những người có quyền hợp pháp mới truy nhập được. Hiện nay, bảo mật là một
ngành khoa học được các công ty, tập đoàn, và các quốc gia đầu tư rất mạnh mẽ, nhất
là sau các sự cố nghe lén ở tầm quốc gia trong những năm vừa qua.
Trong bảo mật hiện đại, ngoài các chính sách, các thuật toán thì các thiết bị điện
tử đóng một vai trò hết sức quan trọng, bởi vì nó là đối tượng để thực hiện các thuật
toán, trao đổi và lưu trữ các thông tin bảo mật. Một trong các thiết bị điện tử đó là các
hệ thống nhúng cấu hình lại được từng phần dựa trên FPGA, đây là nền tảng công
nghệ đang phát triển mạnh mẽ và thay đổi rất nhanh.
Vấn đề bảo mật của các hệ thống dựa trên FPGA có thể chia thành ba dạng

chính sau:
- Hệ thống bảo mật sử dụng FPGA
- Bảo mật dữ liệu trên FPGA
- Bảo mật thiết kế FPGA
Nội dung của luận án này tập trung nghiên cứu ở dạng thứ ba, tức là nghiên cứu
và thực hiện bảo mật thiết kế các lõi sở hữu trí tuệ IP thông qua việc bảo vệ các file
dữ liệu cấu hình (file bitstream) khi truyền thông qua mạng Internet của các hệ thống
nhúng cấu hình lại được từng phần dựa trên FPGA.
Xu hướng phát triển và các ứng dụng rộng rãi của FPGA.
FPGA hiện nay có khả năng tái lập trình lại được từng phần khi vẫn còn đang
hoạt động. Điều này đã làm cho nó trở thành lựa chọn hàng đầu so với các mạch tích
hợp chuyên dụng ASIC, đặc biệt là đối với các thiết kế yêu cầu chi phí thấp, số lượng
có hạn và thời gian phát triển ngắn. Trong bản báo cáo “Thị trường FPGA đến năm
2020 - Ưu tiên tăng trưởng FPGA hơn là ASICs sẽ làm chuyển hướng nhu cầu” của
hãng nghiên cứu thị trường GBI cung cấp một cái nhìn sâu sắc về thị trường FPGA
trên toàn thế giới đến năm 2020. Trong dự báo cho biết, thị trường FPGA được tiêu
thụ mạnh mẽ ở khu vực Châu Á -Thái Bình Dương, đặc biệt là Trung Quốc chiếm
gần 40% lượng tiêu thụ của cả khu vực.
Nguy cơ đe dọa bảo mật và tính cấp thiết bảo mật thiết kế hệ thống dựa
trên FPGA
 Các nguy cơ bảo mật
Có rất nhiều các nguy cơ liên quan đến bảo mật thiết kế, mỗi một mối nguy cơ
có những tác động riêng của nó. Một số liên quan đến lợi ích tài chính của một công
ty, trong khi các mối nguy cơ khác có thể đe dọa đến an toàn cá nhân hoặc thậm chí
là an ninh của một quốc gia. Các mối nguy cơ này dẫn đến các tình huống vi phạm
bản quyền khác nhau:
Kỹ thuật đảo ngược (Reverse engineering); Nhân bản (Cloning); Làm vượt quá
số lượng (Overbuilding); Giả mạo (Tampering).
2


 Các tấn công vào thiết kế FPGA
Tấn công vào thiết kế FPGA là khi kẻ tấn công khai thác lỗ hỗng bảo mật để
truy cập vào hệ thống nhằm trộm cắp thông tin hoặc phá hoại hệ thống. Một số dạng
tấn công vào hệ thống FPGA dựa trên SRAM tiêu biểu như sau:
Giải mã bitstream; Tấn công phát lại; Giả danh; Chèn lỗi.
 Các giải pháp bảo mật bitsream
Các giải pháp bảo mật nhằm hạn chế tấn công khai thác bitstream là mã hóa, xác
thực hoặc bổ sung các tham số đặc biệt trong các giao thức cập hệ thống từ xa qua
mạng Internet.
 Các tồn tại, yếm kém
Lỗ hổng bảo mật của hệ thống hình thành từ nhiều nguyên nhân khác khau. Một
số lỗ hổng do nguyên nhân khách quan nhưng cũng có một số sinh ra do lỗi chủ quan
của con người. Các nguyên nhân đó là:
Tính tự thỏa mãn; Biện pháp an ninh không đầy đủ; Cửa quay lại; Các khiếm
khuyết của thiết kế; Các khiếm khuyết của thiết bị;
Trong các nghiên cứu gần đây, đa số các tác giả tập trung giải quyết một vấn đề
cụ thể như tăng tính bảo mật, tăng tốc độ cấu hình, giảm tài nguyên hệ thống, truyền
thông an toàn. Nhưng đối với hệ thống nhúng cấu hình lại được từng phần dựa trên
FPGA thì chưa có một công trình nào trình bày framework thật đầy đủ.
Hệ thống nhúng cấu hình lại được từng phần dựa trên FPGA đang phát triển và
thay đổi rất nhanh. Tấn công mạng ngày càng phức tạp và đa dạng. Do đó các giải
pháp bảo mật cũ có thể không còn phù hợp và không hiệu quả.
Giải pháp cứng hóa các thuật toán bảo mật trên thiết bị sẽ tiêu tốn tài nguyên hệ
thống và không linh hoạt trong thay thế và nâng cấp.
 Tình hình nghiên cứu bảo mật trên thế giới và mục tiêu nghiên cứu của luận
án.
Nhận thức được rằng, công nghệ FPGA đang ngày càng phát triển và thay đổi
liên tục dẫn đến các chính sách và các biện pháp an ninh sẵn có có thể không còn phù
hợp. Dưới sự hướng dẫn của PGS.TS Phạm Ngọc Nam và TS. Nguyễn Văn Cường,
tác giả chọn vấn đề “bảo mật bitstream trên hệ thống nhúng cấu hình lại được từng

phần dựa trên FPGA” làm đề tài nghiên cứu của mình.
Xuất phát từ việc phân tích về những vấn đề khách quan trong các hệ thống
nhúng dựa trên FPGA và những tồn tại chủ quan trong nghiên cứu ở trên, luận án sẽ
tập trung nghiên cứu và thực hiện bốn nội dung khoa học chính như sau đây:
 Đề xuất một Framework end-to-end cho việc cập nhật an toàn từ xa đối với hệ
thống nhúng cấu hình lại được từng phần.
 Xây dựng bộ giao thức với các tham số đảm bảo an toàn và linh động khi cập
nhật từ xa qua mạng Internet.
 Đề xuất giải pháp sử dụng linh hoạt các thuật toán bảo mật được xây dựng trong
phần cứng và phần mềm, kết hợp với thuật toán nén bitstream để tăng hiệu năng
và tối ưu tài nguyên của các hệ thống nhúng cấu hình lại được từng phần dựa
trên FPGA.
3

 Xây dựng mô hình mẫu trên các FPGA của Xilinx để nghiên cứu, kiểm tra và
đánh giá về tính bảo mật bitstream và hiệu năng của hệ thống nhúng cấu hình lại
được từng phần như các đề xuất và giải pháp đã đưa ra.
 Đối tượng, phạm vi và phương pháp tiếp cận trong nghiên cứu
Đối tượng và phạm vi nghiên cứu là nghiên cứu và thực hiện các giải pháp bảo
mật bitstream trên các hệ thống nhúng cấu hình lại được từng phần dựa vào FPGA
công nghệ SRAM khi cập nhật từ xa qua môi trường mạng công cộng (ví dụ như
mạng Internet).
Phương pháp tiếp cận là xây dựng các khối chức năng bằng phần cứng cấu
hình lại được hoặc bằng phần mềm, tích hợp vào hệ thống của nhà phát, cho phép cập
nhật thay đổi các giải pháp bảo mật bất cứ lúc nào, bất cứ ở đâu.
Tổ chức nội dung của luận án
Nội dung luận án bao gồm bốn chương. Kiến thức nền tảng được trình bày trong
Chương 1. Các nội dung đề xuất và thực hiện được trình bày trong Chương 2 và
Chương 3. Chương 4 trình bày một mô hình mẫu cho việc kiểm tra đánh giá kết quả
của các đề xuất trên. Cuối cùng là kết luận với các đóng góp khoa học của luận án và

hướng phát triển nghiên cứu trong thời gian tới.
Chương 1
Lý thuyết về bảo mật, FPGA và hệ thống nhúng
Giới thiệu: Chương này gồm bốn phần. Phần một trình bày lý thuyết tổng quan về
bảo mật và các thuật toán bảo mật mà luận án chọn để thực hiện trong đề tài nghiên
cứu của mình. Phần hai trình bày về công nghệ FPGA. Phần ba trình bày về hệ thống
nhúng cấu hình lại được từng phần dựa trên FPGA. Cuối cùng là phần kết luận
chương.
1.1 Bảo mật.
1.1.1. Các khái niệm và thuật ngữ
Bảo mật (Security) là quá trình đảm bảo tính bí mật, tính toàn vẹn và tính khả
dụng tài nguyên của hệ thống thông tin, bao gồm phần cứng, phần mềm, dữ liệu và
truyền thông. Tính bí mật, tính toàn vẹn và tính khả dụng của thông tin là ba đối
tượng chính của mô hình bảo mật và được gọi là tam giác CIA (Confidentiality,
Integrity, Availability), xem Hình 1.1.
Trong đó:
 Tính bí mật (Confidentiality) là tính
giới hạn về đối tượng được quyền
truy xuất đến thông tin.
 Tính toàn vẹn (Integrity) là tính tồn
tại nguyên vẹn của thông tin.
 Tính khả dụng (Availability) là tính
sẵn sàng của thông tin cho các nhu
cầu truy xuất hợp lệ.

Hình 1.1 Tam giác các yêu cầu về bảo mật CIA

4

Ngoài ra, tính toàn vẹn thông tin trong mật mã hóa hiện đại được mở rộng với

tính xác thực và tính chịu trách nhiệm:
 Tính xác thực (Authenticity) là sự đảm bảo rằng các dữ liệu, giao dịch, thông
tin liên lạc, tài liệu (điện tử hoặc vật lý) là chính gốc.
 Tính chịu trách nhiệm (Accountability) hay tính không thể chối bỏ.
Mật mã (Cryptography) là kỹ thuật và nghệ thuật che giấu thông tin để giải
quyết bài toán an toàn truyền thông khi có sự hiện diện của một bên thứ ba. Trong
mật mã hiện đại, một hệ mật mã thường bao gồm năm thành phần
, , , ,m c k E D
. Và quá
trình mật mã thông tin bao gồm hai bước: Mã hóa và giải mã, xem Hình 1.2.

Hình 1.2 Hai bước của quá trình mật mã hóa

Trong đó:
 Mã hóa mật E (Encryption) là quá trình biến đổi thông tin gốc (plaintext) m
(viết tắt của message) cùng với một khóa k (key) thành dữ liệu mã hóa c
(ciphertext).
()
k
c E m
(1.1)
 Giải mã mật D (Decryption) là quá trình ngược lại, nó chuyển đổi dữ liệu mã
hóa c cùng với một khóa k thành thông tin gốc m.
()
k
m D c
(1.2)
1.1.2. Các tiêu chí đặc trưng của một hệ thống mã mật
Một hệ thống mã mật bất kỳ được đặc trưng bởi ba tiêu chí sau đây:
1. Phương pháp mã; 2. Số khóa sử dụng; 3. Cách xử lý thông tin gốc

1.1.3. Các thuật toán mã mật
1.1.3.1. Phân loại thuật toán mã mật
Có một số cách phân loại thuật toán mã mật khác nhau như phân loại theo
phương pháp mã hay phân loại theo số khóa sử dụng. Tương ứng với nội dung của
luận án này, các thuật toán mã hóa sẽ được phân loại dựa trên số lượng các khóa
được sử dụng để mã hóa và giải mã dữ liệu:
Mã hóa khóa bí mật; Mã hóa khóa công khai và Hàm băm bảo mật
1.1.3.2. Độ an toàn của các thuật toán mã mật
Độ an toàn của thuật toán mã mật được xem xét trên hai khía cạnh: Độ phức tạp
của thuật toán và Độ dài của khóa mã.
5

Để thấy được giá trị của độ dài khóa mã trong việc ngăn ngừa các tấn công dò
khóa, từ đó bảo vệ được thông tin bảo mật, chúng ta xem xét số liệu trong hai bảng
Bảng 1.1 sau đây.
Bảng 1.1 Chiều dài khóa tối thiểu cho thuật toán mã mật
Kẻ tấn công
Ngân sách
Công cụ
Thời gian và chi phí trên
mỗi khóa phục hồi được
Độ dài khóa cần
thiết sau năm 1995
40 bit
56 bit
Hacker
thường
Nhỏ
Máy tính
1 tuần

Không khả thi
45 bit
400$
FPGA
5 giờ
(0,08$)
38 years
(5.000$)
50 bit
Công ty nhỏ
10.000$
FPGA
12 phút
(0,08$)
18 tháng
(5.000$)
55 bit
Công ty vừa
300.000$
FPGA
24 giây
(0,08$)
19 ngày
(5.000$)
60 bit
ASIC
0,18 giây
(0,001$)
3 giờ
(38$)

Công ty lớn
10.000.000$
FPGA
7 giây
(0,08$)
13 giờ
(5.000$)
70 bit
ASIC
0,005 giây
(0,001$)
6 phút
(38$)
Tổ chức
thông minh
300.000.000$
ASIC
0,0002
giây
(0,001$)
12 giây
(38$)
75 bit
Số liệu trong Bảng 1.1 được tính toán dựa trên kỹ thuật và công nghệ của những
năm 1995. Qua đấy ta thấy, việc tìm khóa với độ dài khóa từ 56 bit trở lên là khó
khăn đối với các kẻ tấn công đơn lẻ, nhưng đối với các công ty và đặc biệt là các tổ
chức có sự đầu tư lớn về tài chính và công cụ phân tích khóa mã tinh vi thì hoàn toàn
có thể và dễ dàng.
1.1.3.3. Thuật toán mã hóa khóa bí mật AES
Thuật toán mã hóa tiên tiến AES là một thuật toán mã khóa bí mật được Viện

tiêu chuẩn và công nghệ quốc gia Hoa kỳ NIST chọn làm tiêu chuẩn liên bang, có
hiệu lực từ ngày 26 tháng 5 năm 2002.
 Độ phức tạp của AES:
Về các nguyên lý thiết kế mật mã khối, người ta đã ghi nhận 2 nguyên tắc cơ sở
sau để có độ bảo mật cao, đó là việc tạo ra tính hỗn loạn và tính khuếch tán.
 Độ an toàn của AES:
Theo số liệu trong Bảng 1.2 ta thấy, thiết kế AES với các chiều dài khóa là 128,
192 hoặc 256 bit mang đến cho thuật toán này một độ an toàn rất cao đối với các tấn
công và khả năng tính toán của máy tính hiện nay.
1.1.3.4. Thuật toán mã hóa khóa công khai RSA
Thuật toán mã hóa RSA là một thuật toán điển hình về mã hóa khóa công khai.
RSA được xây dựng bởi các tác giả Ron Rivest, Adi Shamir và Len Adleman tại học
viện MIT vào năm 1977. Cũng như các thuật toán mã hóa công khai khác, nguyên lý
của RSA dựa chủ yếu trên lý thuyết số chứ không dựa trên các thao tác xử lý bit.
6

 Độ phức tạp của thuật toán RSA:
Có hai vấn đề về độ phức tạp tính toán trong thuật toán RSA. Đó là Phép tính
mã hóa mật và giải mã, và Phép tính sinh khóa.
 Độ an toàn của thuật toán RSA:
Độ an toàn của thuật toán RSA dựa trên độ khó của bài toán phân tích một số
thành nhân tử. Theo lý thuyết, hệ thống RSA có thể bị tấn công bằng những phương
thức sau đây:
Vét cạn khóa (thử tuần tự); Phương pháp toán học; Đo thời gian
Bảng 1.2 Thử nghiệm độ bảo mật của RSA
Số bit của N
Số thao tác
Thời gian
100
9,6 x 10

8
16 phút
200
3,3 x 10
12
38 ngày
300
1,3 x 10
15
41 năm
400
1,7 x 10
17
5.313 năm
500
1,1 x 10
19
3,3 x 10
5
năm
1024
1,3 x 10
26
4,2 x 10
12
năm

2048
1,5 x 10
35

4,9 x 10
21
năm
1.1.3.5. Hàm băm bảo mật SHA
Hàm băm là một thuật toán không sử dụng khóa. Kết quả của hàm băm là một
giá trị băm dài cố định được tính toán dựa trên bản rõ. Từ một giá trị băm quá khó để
phục hồi được bản rõ. Vì vậy hàm băm đôi khi còn được gọi là hàm rút gọn bản tin
(message digest) hay hàm một chiều (one-way function). Các thuật toán băm thường
được sử dụng để xác thực rằng các bản tin không bị thay đổi bởi một hành động chủ
quan hoặc khách quan trên đường truyền từ nơi gửi đến nơi nhận.
1.2. FPGA
1.2.1. Giới thiệu
FPGA là thiết bị bán dẫn được sản xuất trước (pre-fabricated) có thể được lập
trình bên ngoài nhà máy để tạo ra gần như bất kỳ loại mạch hay hệ thống kỹ thuật số
nào.
1.2.2. Các lĩnh vực ứng dụng của FPGA
Do tính chất có thể lập trình và lập trình lại được từng phần nên FPGA là rất lý
tưởng cho việc phát triển nhiều thị trường ứng dụng khác nhau:
Quốc phòng và hàng không vũ trụ; Tiền thiết kế mẫu ASICs; Điện tử ô tô; Phát
thanh; Điện tử tiêu dùng; Trung tâm dữ liệu; Tính toán hiệu năng cao và lưu trữ dữ
liệu; Công nghiệp; Y tế; Bảo mật; Xử lý hình ảnh và video; Truyền thông không dây.
1.2.3. Công nghệ lập trình FPGA
Mỗi một FPGA dựa trên một công nghệ lập trình cơ bản để điều khiển các
chuyển mạch đại diện cho khả năng lập trình của chúng. Có một số công nghệ lập
trình và sự khác biệt của chúng ảnh hưởng đáng kể đến kiến trúc logic của FPGA.
Chúng ta xem xét ba công nghệ lập trình cơ bản sau:
7

1.2.3.1. Công nghệ lập trình dựa trên SRAM
Công nghệ lập trình SRAM-based đã trở thành phương pháp tiếp cận chủ đạo

cho FPGA thương mại hiện nay vì hai lợi thế chính của nó:
- Khả năng tái lập trình và sử dụng các công nghệ xử lý CMOS chuẩn
- Chất lượng và số lượng lập trình lại là gần như vô hạn.
Tuy nhiên đối với các FPGA công nghệ lập trình SRAM-based có một số nhược
điểm sau:
Kích thước lớn; Sự bay hơi; Các vấn đề về bảo mật
1.2.3.2. Công nghệ lập trình dựa trên flash
Một thay thế để giải quyết một số nhược điểm của công nghệ lập trình dựa trên
SRAM là công nghệ lập trình dựa vào các tế bào bộ nhớ flash. Những tế bào này
không bay hơi. Chúng không bị mất thông tin khi thiết bị bị mất nguồn.
1.2.3.3. Công nghệ lập trình dựa trên antifuse
Ưu điểm chính của công nghệ lập trình dựa trên cầu chì nghịch (antifuse) là sự
tiêu tốn tài nguyên của nó nhỏ. Với liên kết kim loại-kim loại, không có vùng silicon
để thực hiện các kết nối nên giảm được chi phí tài nguyên lập trình. Sự không bay hơi
cũng làm cho các thiết bị dựa trên công nghệ lập trình cầu chì nghịch hoạt động ngay
lập tức mỗi khi mở nguồn. Cuối cùng, việc nạp dữ liệu cấu hình cho FPGA chỉ được
thực hiện một lần, điều này có thể được thực hiện trong một môi trường an toàn giúp
cải thiện sự bảo mật của các thiết kế trên FPGA.
1.3. Hệ thống nhúng
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 toán chuyên 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 hoá cao.
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. 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; Thiết bị chế tạo; 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
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, 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.
8

1.4. Kết luận chương
Thực tế cho thấy, các FPGA với các bộ vi xử lý nhúng và khả năng tái lập trình
lại được sẽ cho phép xây dựng các hệ thống có hiệu suất cao. Chúng trở thành nền
tảng phần cứng quan trọng, đáp ứng các mục tiêu về độ tin cậy và hiệu xuất mà một
hệ thống nhúng yêu cầu.
Hệ thống nhúng dựa trên SRAM-based FPGA tạo thành nền tảng công nghệ
quan trọng cho thời kì hậu PC. Từ đó việc xử lý thông tin ngày càng chuyển dịch ra
xa các hệ thống toàn PC và tiến về các hệ thống nhúng.
Tuy nhiên, cùng với việc tăng lên của các hệ thống nhúng dựa trên FPGA, nhu
cầu về bảo mật cũng tăng lên. Trong đó, bảo mật thiết kế phần cứng đặc biệt quan
trọng, bởi vì nó là nền tảng mà các ứng dụng thực thi trên đó, và nó cũng là tài sản trí
tuệ của các nhà thiết kế phát triển.
Qua phần lý thuyết tổng quan về bảo mật, FPGA và hệ thống nhúng, chúng ta
nhận thức được rằng: trong thời đại công nghiệp số hiện nay, thực hiện bảo mật là hết
sức quan trọng để bảo vệ hệ thống và bảo vệ tài sản trí tuệ của người chủ sở hữu.
Chương 2
Framework và giao thức cập nhật an toàn từ xa
Giới thiệu: Chương này trình bày framework và giao thức mà tác giả đề xuất để
đảm bảo tính an toàn và tính linh hoạt khi cập nhật bitstream từ xa của các hệ thống
nhúng cấu hình lại được từng phần dựa trên FPGA. Trong framework này tác giả
xem xét giải quyết các vấn đề khác nhau về bảo mật bao gồm việc trao đổi, quản lý,
mã hóa, xác thực và nén bitstream.

2.1 Xây dựng và mô tả cấu trúc của Framework
Để xây dựng framework và giao thức cho hệ thống nhúng cấu hình lại được từng
phần, chúng ta tìm hiểu chức năng, nhiệm vụ và mối quan hệ của các chủ thể khác
nhau trong quá trình trao đổi, cập nhật và bảo vệ quyền sở hữu trí tuệ các lõi IP sau
đây.
Nhà tích hợp hệ thống (SysInt - System Integrator): Đây là nhà thiết kế hệ
thống dựa trên FPGA và cung cấp nó cho người dùng.
Nhà cung cấp lõi IP (IPVend - IP Vendor): Đây là các công ty chuyên cung
cấp các lõi IP có thể tái sử dụng cùng với các tài liệu liên quan.
Cơ quan đáng tin cậy hay trung tâm xác thực (TAut-Trusted Authority) là cơ
quan được các bên tin tưởng ủy quyền cung cấp và xác thực khóa hoặc giấy chứng
nhận bản quyền.
Người sử dụng hay người dùng (User): là khách hàng cuối cùng sử dụng hệ
thống.
Kẻ tấn công (Attacker): là đối tượng tìm cách thâm nhập, trộm cắp hoặc phá
hoại các lõi IP hoặc hệ thống.
Cấu trúc của framework mà luận án đề xuất được xây dựng như trong hình 2.1.
9


Hình 2.1 Cấu trúc của Framework bảo mật

2.1.1. Các thành phần phía nhà cung cấp dịch vụ
- Cơ sở dữ liệu hồ sơ người sử dụng (User Profile Database) lưu trữ thông tin về
tất cả người dùng đã đăng ký bao gồm cả số định danh của FPGA, phiên bản của
bitstream, kích thước phân vùng cấu hình lại và thuật toán mã hóa.
- Lưu trữ (Repository): Kho lưu trữ bitstream và các thành phần chức năng được
sử dụng để cấu hình lại phần cứng cấu hình lại được thời gian chạy có thể được
cài đặt và thực hiện trên vi xử lý nhúng của hệ thống người dùng.
- Trình quản lý cập nhật của máy chủ (SuM - Server Update Manager): là

trình quản lý cập nhật, thuật toán mã hóa và phần mềm.
- Các bộ mã hóa, xác thực và nén: chịu trách nhiệm mã hóa, xác thực và nén
bitstream.
2.1.2. Các thành phần phía
người dùng
Trình quản lý cập nhật của máy
trạm (CuM - Client Update Manager):
chịu trách nhiệm quản lý việc tải xuống và
cấu hình lại hệ thống. Nó chịu trách
nhiệm giao tiếp với các nhà cung cấp dịch
vụ và duy trì các thông tin về hồ sơ cá
nhân của hệ thống người dùng cuối.
2.2 Giao thức cập nhập
Giao thức cập nhật xác định một
cuộc tương tác trao đổi giữa một trình
quản lý cập nhật máy chủ SuM của bên
cung cấp dịch vụ, là thực thể phụ trách
việc phân phối bitstreams mới tới các hệ
thống nhúng dựa trên FPGA, và một trình

Hình 2.2
Lưu đồ giao thức cập nhật an toàn
10

quản lý cập nhật máy khách CuM của phía người sử dụng.
Hình 2.2 mô tả thông tin liên lạc giữa SuM và CuM. Mỗi phiên giao dịch bắt
đầu với một bản tin "GetUpdate" ban đầu từ SuM và một bản tin phản hồi
"ResUpdate" từ CuM. Trong các bản tin "GetUpdate" và "ResUpdate", hai bên trao
đổi các tham số cần thiết cho một phiên cập nhật an toàn, ví dụ như số chỉ dùng một
lần "Nonces", số định danh FPGA F, phiên bản bitstream V, số giấy phép bản quyền

N
PiLS
, v.v. Sau đó, các tham số này được chuyển đổi một cách gián tiếp vào trong các
mã xác thực bản tin MAC thông qua việc thực hiện hàm băm SHA. Điều này đảm
bảo rằng việc xác thực sự tươi mới của dữ liệu nhận được tiếp theo trong phiên giao
dịch chỉ đơn giản là dùng mỗi giá trị MAC mà không cần phải lặp lại các tham số và
dữ liệu cũ của đã trao đổi trước đó.
2.2.1. Giao thức cập nhật từ xa an toàn
Giao thức cập nhật từ xa an toàn bao gồm hai thuật toán tương ứng với hai phía
của một hệ thống: Thuật toán 1 cho phía FPGA (tức là phía người sử dụng) và thuật
toán 2 cho phía nhà cung cấp dịch vụ. Đầu tiên, chúng ta tập trung thảo luận về các
thuật toán 1 ở phía FPGA, đây là thuật toán chạy trên thiết bị với nhiều hạn chế về tài
nguyên phần cứng.
Các tham số trong giao thức được lưu trữ trong cơ sở dữ liệu hồ sơ người dùng
của nhà cung cấp dịch vụ và bên phía người sử dụng. Các tham số đó là:
SK
S
: Khóa bảo mật được chia sẻ bởi SuM
F: Số định danh của FPGA
P
i
: Số định danh của phân vùng cấu hình lại được trong FPGA
V
Pi
: Số phiên bản của bitstream hiện đang hoạt động
L
max
: Độ dài tối đa của bitstream từng phần của phân vùng P
i


A
E
: Thuật toán mã hóa được sử dụng
A
C
: Thuật toán nén được sử dụng
V
PiNVM
: Số phiên bản bitsream lưu trữ trong bộ nhớ không bay hơi
N
CuM
: Giá trị bộ đếm lưu trong bộ nhớ không bay hơi của CuM
L
PiU
: Độ dài bitstream từng phần được tải lên
N
PiLS
: Số bản quyền của bitstream từng phần
V
PiU
: Số phiên bản của bitstream được tải lên
N
SuM
: Số Nonce được tạo bởi SuM
F
e
, P
e,
V
e

: Giá trị được mong đợi của F, P
i
,V
Pi

N
max
: Giới hạn trên của N
NVM

PB: Bitstream từng phần ở dạng nén
M
x
: Các giá trị MACs
2.2.2.1. Thuật toán 1 - Thuật toán bên phía người dùng FPGA

1. Start:
2. Receive(C, F
e
, P
i
, V
Pie
, L
PiU
, N
max
, N
SuM
, M

0
)
3. if L
PiU


L
max
then goto 34
4. if C ≠ “GetUpdate” then goto Start:
5. V
PiNVM
:= V
Pi

6. ReadNVM(N
CuM
)
11

7. M’
0
= MAC(C, F
e
, P
i
, V
Pie
, L
PiU

, N
max
, N
SuM
)
8. S := (M
0
= M’
0
)  (V
Pie
= V
Pi
)  (F
e
= F)  (N
CuM
< N
max
)
9. if S then
10. N
CuM
:= N
CuM
+ 1
11. WriteNVM(N
CuM
)
12. else goto Start:

13. end if
14. M
K
:= MAC(F, P
i
, V
Pi
, SK
S
)
15. M
LS
:= MAC(F, P
i
, V
Pi
,

N
PiLS
)
16. M
1
:= MAC(“ResUpdate”, F, P
i
, V
Pi
, L
max
, N

CuM
, A
E
, A
C
, M
K
, M
LS
, M
0
)
17. Send(“ResUpdate”, F, P
i
, V
Pi
, L
max
, N
CuM
, A
E
, A
C
, M
K
, M
LS
, M
1

)
18. Receive(C, M
2
)
19. if M
2
≠ MAC(C, M
1
) then goto Start:
20. if C = “Update” then
21. Receive(PB, M
3
)
22. If M
3
≠ MAC(PB, M
2
) then goto Start:
23. Receive(“UpFinish”, V
PiU
, M
4
)
24. if M
4
≠ MAC(“UpFinish”, V
PiU
, M
3
) then goto Start:

25. Decrypt()
26. Decompress()
27. ReconfCtr()
28. V
PiNVM
:= V
Pi

29. M
5
= MAC(“UpConfirm”, V
PiNVM
, M
4
)
30. Send(“UpConfirm”, V
PiNVM
, M
5
)
31. end if
32. if C= “Abort” then goto Start:
33. UpUserprofile(F, P
i
, V
Pi
, L
max
, N
CuM

, A
E
, A
C
)
34. Warn(“Resize your partial reconfigurable partition”)

Trong đó:
- GetUpdate, Update, UpFinish, Abort là các bản tin được gửi từ máy chủ cập nhật.
- ResUpdate, UpConfirm là các bản tin được gửi từ FPGA đến máy chủ cập nhật.
- Decrypt(), Decompress(), ReconfCtr() là các hàm giải mã, giải nén và cấu hình lại.
- UpUserprofile là chỉ thị lệnh cập nhật hồ sơ người dùng.
2.2.2. Phân tích bảo mật
2.2.3.1. Tính bí mật và tính xác thực
Trong giao thức đã đề xuất, ở phía FPGA, bộ giải mã và bộ xác thực luôn luôn
được thực hiện và có thể thực hiện trong phần cứng hoặc phần mềm nhúng. Do vậy,
bitstream một phần được chuyển giao thông qua Internet luôn được mã hóa để chống
lại các cuộc tấn công nhân bản hoặc kỹ thuật đảo ngược. Các bước trong quá trình
trao đổi này luôn được xác thực để đảm bảo tính tươi mới, tính toàn vẹn và tính chính
gốc của bitstream, nhằm ngăn chặn các cuộc tấn công phát lại.
2.2.3.2. Giá trị của các tham số
N
SuM
là số ngẫu nhiên đủ lớn để việc tái hiện lại nó thông thực tế là không thể.
Việc sử dụng một từ 64-bit cho N
SuM
sẽ đảm bảo rằng một kẻ tấn công với năng lực
thực hiện 10
3
truy vấn mỗi giây phải mất vài thập kỷ để tìm ra một giá trị trùng lặp.

12

Giao thức đề xuất sử dụng khóa SK
S
dài 256-bit cho thuật toán mã hóa AES.
Thuật toán AES cho đến nay vẫn được coi là an toàn, có nghĩa là trong hiện tại dữ
liệu được mã hóa với thuật toán AES đã không bị phá vỡ. Chiều dài khóa 256-bit của
thuật toán AES là đủ để bảo vệ thông tin thuộc loại bí mật.
Các giá trị MAC M
0
, M
1
, M
2
, M
3
,v.v. được tạo ra bởi hàm băm SHA-512 có
chiều dài 512-bit. Các giá trị MAC này cung cấp một mức an toàn cao đối với các
cuộc tấn công dò tuần tự.
Các tham số khác như P
i
, V
i
, L
Max
, v.v. là các tham số phục vụ cho việc cấu hình
lại từng phần. Kích thước của chúng phụ thuộc vào các ứng dụng và định nghĩa của
người dùng.
2.3 Giao thức trao đổi khóa
2.3.1. Giao thức trao đổi khóa qua trung tâm xác thực

Đây là mức độ an toàn rất cao trong trao đổi khóa. Khóa của các bên luôn luôn
được chứng thực bởi trung tâm xác thực trước khi thực hiện giao dịch dữ liệu. Chi
tiết được mô tả trong Hình 2.3 và các bước tiến hành như sau:

Hình 2.2 Giao thức trao đổi khóa được xác thực bởi TAut
Tại mỗi phiên giao dịch, cả hai khóa PK
V
và SK
S
luôn được trao đổi và xác thực
qua TAut. Riêng khóa riêng SK
V
là không trao đổi. Khóa công khai PK
V
không cần
phải giữ bí mật nên khi trao đổi qua mạng không cần thiết phải được mã hóa. Chỉ
khóa bí mật SK
S
cần phải được bảo mật và nó đã được mã hóa bởi khóa PK
V
trước khi
gửi qua Internet. Giao thức trao đổi khóa an toàn được mô tả chi tiết hơn trong các
thuật toán sau.
2.3.1.1. Thuật toán 3 - Thuật toán bên phía nhà thiết kế hệ thống

S1. Generate(N
SuM
)
S2. M
0

= HMAC(“ReqIP”, S
ID
, V
ID
, N
SuM
)
S3. Send(“ReqIP”, S
ID
, V
ID
, N
SuM
, M
0
)
S4. Receive(“ReqSK
S
”, PK
V
, M
1
)
S5. M
1
’ = HMAC(“ReqSK
S
”, PK
V
, M

0
)
S6. If M
1
’ ≠ M
1
then goto S1
S7. M
2
= HMAC(“VerifyPK
V
”, S
ID
, V
ID
, TA
ID
, PK
V
, M
1
)
S8. Send(“VerifyPK
V
”, S
ID
, V
ID
, TA
ID

, PK
V
, M
1
, M
2
)
S9. Receive(“ConfirmPK
V
”, M
3
)
S10. M
3
’ = HMAC(“ConfirmPK
V
”, M
2
)
S11. If (“ConfirmPK
V
” ≠ PK
V
_OK) or M
3
’ ≠ M
3
then goto S1
13


S12. M
4
= HMAC(EncryptedSK
S
, M
1
)
S13. Send(EncryptedSK
S
, M
4
)
S14. Receive(EncryptedIP, M
7
)

2.3.1.2. Thuật toán 4 – Thuật toán bên phía nhà cung cấp IP

V1. Receive(“ReqIP”, S
ID
, V
ID
, N
SuM
, M
0
)
V2. M
0
’ = HMAC(“ReqIP”, S

ID
, V
ID
, N
SuM
)
V3. If M
0
’ ≠ M
0
then goto V1
V4. M
1
= HMAC(“ReqSK
S
”, PK
V
, M
0
)
V5. Send(“ReqSK
S
”, PK
V
, M
1
)
V6. Receive(EncryptedSK
S
, M

4
)
V7. M
4
’ = HMAC(EncryptedSK
S
, M
1
)
V8. If M
4
’ ≠ M
4
then goto V1
V9. M
5
= HMAC(“VerifySK
S
”, EncryptedSK
S
, M
4
)
V10. Send(“VerifySK
S
”, EncryptedSK
S
, S
ID
, V

ID
, PK
V
, M
4
, M
5
)
V11. Receive(“ConfirmSK
S
”, M
6
)
V12. M
6
’ = HMAC(“ConfirmSK
S
”, M
5
)
V13. If (“ConfirmSK
S
” ≠ SK
S
_OK) or M
6
’ ≠ M
6
then goto V1
V14. M

7
= HMAC(EncryptedIP, M
6
)
V15. Send(EncryptedIP, M
7
)

2.3.1.3. Thuật toán 5 – Thuật toán bên phía trung tâm xác thực

T1. Receive(“VerifyPK
V
”, S
ID
, V
ID
, TA
ID
, PK
V
, M
1
, M
2
)
T2. M
2
’ = HMAC(“VerifyPK
V
”, S

ID
, V
ID
, TA
ID
, PK
V
, M
1
)
T3. If M
2
’ ≠ M
2
then goto T1
T4. M
3
= HMAC(“ConfirmPK
V
”, M
2
)
T5. Send(“ConfirmPK
V
”, M
3
)
T6. Receive(“VerifySK
S
”, EncryptSK

S
, S
ID
, V
ID
, PK
V
, M
4
, M
5
)
T7. M
5
’ = HMAC(“VerifySK
S
”, EncryptedSK
S
, M
4
)
T8. If M
5
’ ≠ M
5
then goto T1
T9. M
6
= HMAC(“ConfirmSK
S

”, M
5
)
T10. Send(“ConfirmSK
S
”, M
6
)

2.3.2. Giao thức trao đổi khóa qua không qua trung tâm xác thực

Hình 2.3 Giao thức trao đổi khóa không qua trung tâm xác thực
14

Khi các bên có thể tin tưởng lẫn nhau, trao đổi khóa có thể không cần phải qua
trung tâm xác thực. Tuy nhiên, để phòng ngừa rủi ro, khóa đối xứng theo phiên (sau
đây gọi là khóa phiên) được đề xuất sử dụng. Khóa phiên là một khóa đối xứng có thể
được sử dụng cho từng trao đổi khác nhau giữa các đối tác. Khóa được tạo ra cho mỗi
phiên giao dịch để loại bỏ các yêu cầu về bảo trì và lưu trữ. Mỗi một khoá được sử
dụng một lần với một bản tin duy nhất.
Các thuật toán của việc trao đổi khóa an toàn giữa SysInt và IPVend, Hình 2.4a,
hoặc giữa SysInt và User, Hình 2.4b, được mô tả như dưới đây. trong đó, khóa phiên
SSK
S
được tạo ra bởi SysInt. SysInt sử dụng PK
V
để mã hóa khóa phiên này và gửi
cho IPVend.
2.3.2.1. Thuật toán 6: Thuật toán bên phía nhà tích hợp hệ thống


S1. Generate(N
SuM
, SSK
S
)
S2. M
0
= HMAC(“ReqIP”, S
ID
, V
ID
, N
SuM
)
S3. Send(“ReqIP”, S
ID
, V
ID
, N
SuM
, M
0
)
S4. Receive(“ReqSSK
S
”, PK
V
, M
1
)

S5. M
1
’ = HMAC(“ReqSSK
S
”, PK
V
, M
0
)
S6. If M
1
’ ≠ M
1
then goto S1
S7. M
2
= HMAC(EncryptedSSK
S
, M
1
)
S8. Send(EncryptedSSK
S
, M
2
)
S9. Receive(EncryptedIP, M
3
)


2.3.2.2. Thuật toán 7: Thuật toán bên phía nhà cung cấp IP

V1. Receive(“ReqIP”, S
ID
, V
ID
, N
SuM
, M
0
)
V2. M
0
’ = HMAC(“ReqIP”, S
ID
, V
ID
, N
SuM
)
V3. If M
0
’ ≠ M
0
then goto V1
V4. M
1
= HMAC(“ReqSSK
S
”, PK

V
, M
0
)
V5. Send(“ReqSSK
S
”, PK
V
, M
1
)
V6. Receive(EncryptedSSK
S
, M
2
)
V7. M
2
’ = HMAC(EncryptedSSK
S
, M
1
)
V8. If M
2
’ ≠ M
2
then goto V1
V9. M
3

= HMAC(EncryptedIP, M
2
)
V10. Send(EncryptedIP, M
3
)

2.3.3. Phân tích bảo mật
Độ an toàn và tính bảo mật của các tham số N
SuM
, độ dài khóa và các thuật toán
mã hóa tương tự như đã phân tích ở phần trên 2.2.3. Phân này phân tích tiếp một số
bổ sung trong giao thức trao đổi khóa an toàn.
Khóa của các thiết bị cụ thể có thể được tạo ra và quản lý theo nhiều cách khác
nhau. Ví dụ, SK
S
có thể được tạo ra và xác thực bởi TAut, và được lưu trữ trong cơ sở
dữ liệu của máy chủ cập nhật. Hoặc khóa phiên SSK
S
có thể được tính toán từ số định
danh F và số chỉ sử dụng một lần N
SuM
:
15

( , )
M
S K SuM
SSK E F N
(2.1)

Trong đó khóa K
M
chỉ được biết đến bởi máy chủ cập nhật. Hoặc theo một cách
khác, số định danh F có thể được sử dụng như một khóa công khai để các máy chủ
cập nhật trao đổi an toàn khóa bí mật SK
S
, SSK
S
với các thiết bị đầu cuối.
Thuật bất đối xứng RSA được sử dụng để bảo vệ khóa đối xứng khi trao đổi qua
mạng. Việc tìm khóa riêng từ khóa công khai đã biết là rất khó khăn. Hơn nữa, khóa
riêng không được trao đổi qua mạng, do đó nguy cơ bị rò rỉ khóa này là ít có thể xảy.
Có nghĩa là việc bảo vệ khóa đối xứng khi trao đổi qua mạng bằng thuật toán khóa
công khai sẽ là cách thực hiện rất an toàn.
2.4 Đánh giá và so sánh với các nghiên cứu liên quan
Các nghiên cứu trước đây vẫn chưa xem xét một cách đầy đủ các khía cạnh của
một giải pháp tổng thể cho bài toán bảo mật bitstream trong các hệ thống nhúng cấu
hình lại được từng phần dựa trên FPGA khi cập nhật từ xa qua mạng công cộng với
nhiều rủi ro trên đường truyền dẫn. Đó là lý do mà tác giả đã đề xuất framework và
xây dựng giao thức cập nhật an toàn như đã trình bày ở trên. Kết quả cụ thể được chỉ
ra trong Bảng 2.1 sau.
Bảng 2.1 So sánh các thực hiện trên bitstream và hệ thống
Các nghiên cứu

hóa
Xác
thực
Nén
Giao thức
cập nhật

từ xa
Trao
đổi
khóa
Cấu hình
từng
phần
Hệ thống
nhúng
[23]
x
x

x



[30]
x
x



x

[41]
x
x

x




[90][91]




x


[93][94]



x


x
[95]


x



x
Framework của
chúng tôi
x

x
x
x
x
x
x

2.5 Kết luận chương
Qua chương này, tác giả đã thực hiện hai công việc chính. Đó là:
- Đã đề xuất và trình bày một framework cho việc bảo mật bitstream của các hệ
thống nhúng cấu hình lại được từng phần dựa trên FPGA khi cập nhật từ xa qua
mạng internet. Framework của tác giả là cấu trúc hoàn chỉnh và linh hoạt dành
cho các nhà thiết kế hệ thống cũng như người dùng khi thực hiện các giải pháp
an ninh cho hệ thống của mình.
- Một phần quan trọng trong framework là giao thức truyền thông an toàn và các
cơ chế đảm bảo an toàn cập nhật bitstream. Tác giả đã đề xuất và xây dựng một
bộ giao thức với các tình huống trao đổi và cập nhật bitstream khác nhau. Giao
16

thức này với các tham số đáp ứng cho việc cập nhật an toàn hệ thống nhúng cấu
hình lại được từng phần mà một số nghiên cứu trước đây chưa đề cập đến.
Chương 3
Nâng cao hiệu năng và tính linh hoạt trong bảo mật bitstream của 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 tác giả xem xét đến việc sử dụng tối ưu tài nguyên của hệ
thống bằng cách đề xuất giải pháp xây dựng các bộ giải mã và xác thực trong khu
vực cấu hình lại được từng phần. Các mã hóa này có thể được giải phóng khỏi khu
vực cấu hình lại khi nó không được sử dụng đến và thay thế vào đó bằng một ứng
dụng hữu ích khác. Ngoài ra, để giảm dung lượng bộ nhớ khi lưu trữ bitstream, tác
giả sử dụng giải pháp nén bitstream. Và để cải thiện hiệu năng của hệ thống, tác giả

sử dụng bus tốc độ cao AXI với các bộ FIFO được hỗ trợ trong các FPGA hiện đại.
3.1 Hệ thống cấu hình lại được từng phần
Cấu hình lại được từng phần là khả năng thay đổi một cách linh hoạt các khối
logic phần cứng bằng cách cấu hình lại các phân vùng tương ứng trên thiết bị bằng
các tập tin bitstream từng phần.
Với công nghệ cấu hình lại được từng
phần, phần cứng của FPGA được thiết kế
gần giống như thiết kế phần mềm. Có nghĩa
là, nó có thể được thiết kế thành từng mô-
đun cấu hình lại được RM (Reconfigurable
Module), và sau đó tổng hợp vào hệ thống.
Như được trình bày trong Hình 3.1, hệ
thống cấu hình lại được từng phần dựa trên
FPGA bao gồm phần logic tĩnh và ba phân
vùng cấu hình lại được RP (Reconfigurable
Partition). Ứng với các phân vùng RP#1,
RP#2, RP#3, ta có thể xây dựng thành tập
các mô-đun từng phần RM1, RM1,RM3
tương ứng.
3.1.1. Các ưu điểm của cấu hình lại từng phần
Có rất nhiều lợi ích với cấu hình lại từng phần:
- Tăng hiệu năng của hệ thống
- Khả năng thay đổi phần cứng
- Chia sẻ phần cứng
- Giảm thời gian cấu hình lại
3.2 Tối ưu hóa tài nguyên phần cứng
3.2.1. Tối ưu hóa tài nguyên logic

Hình 3.1 Ví dụ về một hệ thống cấu hình
lại được từng phần


17

Trong thiết kế bảo mật, tác giả xây
dựng các bộ mã hóa, xác thực và nén
bitstream trong phần cứng và cả trong
phần mềm. Đối với phần cứng, tác giả
xây dựng các bộ mã hóa và xác thực
trong phần logic cấu hình lại được. Sơ đồ
của hệ thống như được thể hiện trong
Hình 3.2.
3.2.1.1. Phân tích và đánh giá kết
quả
Sự linh động và tiết kiệm tài nguyên
cho hệ thống có thể được giải thích như
sau:
- Các bộ mã hóa AES và xác thực
SHA có thể được phát triển, nâng
cấp và tái sử dụng một cách linh
động mỗi khi có yêu cầu mà không
cần phải thiết kế lại toàn bộ hệ thống.
- Như số liệu trong Bảng 3.1, ta thấy tài nguyên sử dụng cho AES-256 và SHA-
512 chiếm một phần đáng kể trong FPGA Spartan-6 của Xilinx. Việc giải phóng
các phần tài nguyên này thực sự cần thiết và hữu ích.
Bảng 3.1 Sử dụng phần cứng của AES-256 và SHA-512
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ữ
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 toán hiệu quả của các kỹ thuật nén và
được định nghĩa như sau:

CP
CR
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 toán nén tốt sẽ có tỉ số nén càng nhỏ.
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 toán chương trình nén chạy trên máy tính với 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

Hình 3.2
Sơ đồ khối của hệ thống nhúng cấu

hình lại được dựa trên FPGA
18

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++.
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 đượ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. Kết quả đạt được như Bảng 3.2 sau:
Bảng 3.2 Kết quả giải nén bitstream trên hệ nhúng dựa trên FPGA
Dung lượng
bitstream nén
(KB)
Thời gian giải
nén (s)
Tốc độ giải nén
(KB/s)
44
3.125
14.08
77
8.981
8.57
84
11.232
7.48
319
44.934
7.10
450
119.587

3.76
Bảng 3.2 thể hiện mối quan hệ giữa thời gian giải nén và kích thước của các
bitstream đã nén. Chúng ta có thể thấy rằng với những bitstream có kích thước lớn thì
tốc độ giải nén giảm. Lý do ở đây là vì những file bitstream kích thước lớn thường
đạt được tỉ lệ nén thất. Điều này hoàn toàn phù hợp với lý thuyết về các thuật toán
nén đã nêu ở trên, “tỉ lệ nén tốt thì thời gian giải nén sẽ tăng hay tốc độ giải nén sẽ
chậm”.
3.2.2.3. Đánh giá kết quả
Kết quả khảo sát về sự phụ thuộc của tỉ số nén CR vào dung lượng file bitstream
đầu vào như Bảng 3.3.
Bảng 3.3 Kết quả nén bitstream trên máy tính
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
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. 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.
3.3 Nâng cao hiệu năng của hệ thống
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
19

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 toán mật mã và cấu hính lại hệ thống.
3.3.1. Xây dựng hệ thống
Để nâng cao hiệu năng của hệ thống, tác
giả 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.
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.
Nhờ sử dụng AXI Master với hai bộ đệm
dữ liệu FIFO, hiệu suất 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ư thể hiện trong Bảng 3.5.
Bảng 3.4 Sử dụng phần cứng của AES-256 và SHA-512
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
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
3.4 Đánh giá và so sánh với các nghiên cứu liên quan
Giải pháp của tác giả 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 cải thiện hơn nhiều so với việc sử dụng vi xử lý nhúng. Tuy không

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

đạt được tốc độ cao như phương pháp của Hori và đồng sự (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 chúng tôi 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 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 So sánh hiệu năng 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
Hori và đồng sự
XC5VLX50T
AES-128
SHA-256

AES-GCM
675 (10%)
567 (7%)
1,226 (16%)
1.164 Mbps
701 Mbps
1.067 Mbps
Hệ thống của
chúng tôi
XC6VLX240T
AES-256
SHA-512
1.293 (3,43%)
843(2,25%)
492,9 Mbps
309,9 Mbps

3.5 Kết luận chương
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 2, tác giả đã đề 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.
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 như đã đề xuất ở chương 2 và 3. Mô hình này cùng với các các mã
thuật toán được cung cấp đầy đủ sẽ là một cơ sở dữ liệu quan trọng cho các nghiên
cứu kế thừa về sau.
21

4.1 Xây dựng hệ thống
4.1.1. Cài đặt hệ thống
Tác giả đã xây dựng một hệ thống mẫu thử nghiệm 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ò của nhà cung cấp
dịch vụ (Hình 4.1). Board FPGA ML605 Virtex-6 XC6VLX240T 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.


Hình 4.1 Hệ thống mẫu thử nghiệm
Việc tác giả chọn hai dòng FPGA khác nhau giúp cho việc khảo sát và đánh giá
đầy đủ hơn và để giúp cho các nhà thiết kế bảo mật có những lựa chọn phù hợp hơn.

4.2 Kết quả và đánh giá
Để thể hiện tính linh hoạt và tính đa dạng trong thực hiện bảo mật bitstream như
framework đã đề xuất, tác giả xây dựng các khối mã hóa và xác thực theo hai cách
như sau:
- Hoàn toàn bằng phần mềm
- Kết hợp cả phần cứng và phần mềm.
Việc mã hóa và xác thực bitstream là bắt buộc trong framework và giao thức an
toàn cập nhật của tác giả cũng như trong các hệ thống bảo mật hiện đại. Vì vậy, tốc
độ thực hiện của các bộ mã hóa và xác thực có yếu tố quyết định trong toàn bộ quá
trình cập nhật hệ thống. Tùy thuộc vào từng thiết bị, việc lựa chọn thực hiện bằng
phần cứng hay phần mềm sẽ cho một kết quả thích hợp.
4.2.1. Giải pháp bằng phần mềm
Bảng 4.3 tóm tắt kết quả thực hiện bằng phần mềm của các thuật toán được xem
xét trong hai tham số: kích thước bộ nhớ và thông lượng của từng thuật toán.
Bảng 4.1 Kết quả thực hiện bằng phần mềm với FPGA Atlys Spartan-6
Thuật
toán
Số dòng lệnh
trong C
Thông lượng
(Kbps)
Kích thước bộ
nhớ (KB)
AES-256
488
62.5
17
SHA-512
500
135

17
RSA
66
0.29
2
RLE
120
247
5
22

Mặc dù việc thực hiện bằng phần mềm là chậm hơn so với việc thực hiện bằng
phần cứng, nhưng nó không tiêu thụ thêm bất kỳ nguồn tài nguyên phần cứng nào của
FPGA. Trong khi việc thực hiện bằng phần cứng chiếm xấp xỉ 31,5% tài nguyên
Slice của FPGA Spartan-6 LX45, xem Bảng 4.2.
4.2.2. Giải mã và xác thực bằng phần cứng
Kết quả về tài nguyên sử dụng và tốc độ thực hiện được thể hiện tương ứng
trong các Bảng 4.2 và 4.3. Kết quả này cho thấy tài nguyên phần cứng sử dụng cho
bộ giả mã AES-256 và bộ xác thực SHA-512 là tương đối lớn, chiếm lần lượt 18,95%
và 12,48% tài nguyên Slice của FPGA Spartan-6 LX45. Tuy nhiên, thông lượng của
hệ thống là tăng đáng kể so với việc sử dụng bằng phần mềm.
Bảng 4.2 Sử dụng tài nguyên phần cứng của AES-256 và SHA-512 (Atlys Spartan-6)
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%)
Bảng 4.3 Hiệu năng thực hiện trên FPGA Atlys Spartan-6
Thuật toán
Thông lượng
AES-256
13.8 Mbps
SHA-512
30 Mbps
Giải pháp mà tác giả đề xuất là thực hiện các bộ mã hóa và xác thực này trong
khu vực cấu hình lại được từng phần sẽ giải quyết được hai vấn đề:
- Tiết kiệm tài nguyên hệ thống bằng cách giải phóng các bộ mã hóa và xác thực
khi không cần dùng đến.
- Nâng cao hiệu năng và tính an toàn của hệ thống so với việc thực hiện bằng
phần mềm.
Bảng 4.4 Sử dụng tài nguyên phần cứng của AES-256 và SHA-512 (Xilinx 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%)
848 (2,25%)
Bảng 4.5 Hiệu năng thực hiện trên FPGA Xilinx Virtex-6.
Thuật toán
Thông lượng
AES-256
492,9 Mbps
SHA-512
309,9 Mbps
Bảng 4.4 và 4.5 cho ta thấy, các bộ mã hóa và xác thực chiếm một phần rất nhỏ
trong tổng số tài nguyên của FPGA Virtex-6 của Xilinx. Và tốc độ thực hiện cũng
23

nhanh hơn nhiều. Nguyên nhân chính để có được kế quả này là tài nguyên sẵn có và
tốc độ của các FPGA Virtex-6 cao hơn nhiều so với FPGA Spartan-6.
Như vậy, với các hệ thống nhúng cấu hình lại được từng phần dựa trên các
FPGA lớn, việc thêm các tính năng bảo mật là dễ dàng hơn nhiều. Do đó, các hệ
thống nhúng với lượng tài nguyên lớn, tốc độ nhanh cho phép chúng ta cân nhắc thực
hiện các thuật mã an toàn hơn, phức tạp hơn để có mức độ bảo mật cao hơn.
4.2.3. Giải pháp kết hợp phần cứng và phần mềm
Trên nguyên tắc, trong quy trình thực hiện cập nhật hệ thống, ứng dụng nào có
thể là lựa chọn không bắt buộc và không ảnh hưởng nhiều đến tính bảo mật và tốc độ
của hệ thống thì được thực hiện trong phần mềm. Ngược lại sẽ được thực hiện trong
phần cứng.
4.3 Kết luận chương
Luận án xây dựng và triển khai hệ thống thử nghiệm đối với một hệ thống nhúng
cấu hình lại được từng phần dựa trên FPGA. Hệ thống đã thể hiện một mô hình hoàn
chỉnh cho việc bảo mật các bitstream của FPGA.
Mô hình thực hiện trên của tác giả chỉ dừng lại ở việc thực thi các thuật toán cho
việc cấu hình lại từng phần dựa trên FPGA với một bộ vi xử lý nhúng. Việc nghiên

cứu tiếp theo là thực hiện bài toán trên với các nền tảng nhúng đa vi xử lý, đa luồng.
Kết luận và hướng phát triển
Đóng góp khoa học của luận án
Nội dung của luận án là một chủ đề xuyên suốt bắt đầu từ các khảo sát về bảo
mật, tổng quan về lý thuyết, đề xuất giải pháp và cuối cùng là xây dựng và thực hiện
trên mô hình mẫu để đánh giá hệ thống bảo mật bitstream của hệ thống nhúng cấu
hình lại được từng phần dựa trên FPGA. Mô hình nghiên cứu và thực hiện như thể
hiện trong Hình 5.1.

Hình 5.1 Mô hình nghiên cứu và thực hiện của luận án

×