Phát hiện Trojan phần cứng sử dụng kỹ thuật<br />
phân tích đặc tính độ trễ đường truyền tín hiệu<br />
Trần Thái Hà, Hoàng Văn Phúc và Đỗ Thành Quân<br />
Khoa Vô tuyến điện tử, Đại học Kỹ thuật Lê Quý Đôn, số 236 Hoàng Quốc Việt, Hà Nội<br />
Email: hathaitran@lqdtu.edu.vn<br />
<br />
<br />
Abstract— Trojan phần cứng (HT: Hardware Trojan) khi được sử dụng 20 đường truyền với sai số là 0,01 ns, tỉ lệ phát hiện<br />
chèn vào các mạch tích hợp có thể thực hiện nhiều tác vụ nguy Trojan là 80 %. Tuy nhiên, trong báo cáo phân tích chỉ cung<br />
hiểm như từ chối dịch vụ, gây mất hoặc sai lệnh thông tin. Vì cấp các thông tin trễ từ đầu vào đến đầu ra [6]. Do vậy,<br />
vậy, phát hiện HT là một trong những nhiệm vụ quan trọng của phương pháp chưa có tính mềm dẻo, đặc biệt là những thiết kế<br />
bảo mật phần cứng. Bài báo này trình bày một giải pháp phát<br />
có sử dụng đến các giao thức truyền và nhận dữ liệu.<br />
hiện HT sử dụng kỹ thuật phân tích kênh bên dựa trên việc xác<br />
định tần số ứng với trễ đường truyền tín hiệu. Kết quả khảo sát Trong bài báo này, chúng tôi đề xuất áp dụng một giải<br />
chỉ ra rằng giải pháp được đề xuất cho phép phát hiện HT có pháp phát hiện Trojan phần cứng, đó là kỹ thuật phân tích<br />
kích thước bằng 0,2% so với thiết kế chính với độ phân biệt về đặc tính trễ đường truyền tín hiệu. Ở đây, giải pháp sẽ tính<br />
tần số là 0,016 MHz. đến ảnh hưởng do sự sai khác nhau về khoảng cách giữa các<br />
điểm trên đường truyền. Thông thường, tần số của hệ thống<br />
Keywords- Kỹ thuật phân tích kênh bên, Trojan phần cứng, trễ (xung nhịp clk) được lựa chọn sao cho không phát sinh lỗi<br />
đường truyền tín hiệu. trong quá trình làm việc. Tuy nhiên, trong chế độ kiểm tra,<br />
khi điều chỉnh clk theo hướng tăng dần, sẽ thu được giá trị<br />
I. GIỚI THIỆU tới hạn mà ở đó bắt đầu xuất hiện lỗi. Thực hiện so sánh giá<br />
Trojan phần cứng (HT: Hardware Trojan) là một loại phần trị tới hạn này với tham chiếu gốc đã được đo kiểm và lưu<br />
cứng độc hại được nhúng vào các mạch tích hợp bởi một số trong cơ sở dữ liệu, đây sẽ là cơ sở để phát hiện HT trong<br />
cổng logic và hoạt động khi điều kiện kích hoạt được thỏa thiết kế đang sử dụng.<br />
mãn. Khác với gián điệp phần mềm có thể tiến hành gỡ bỏ, Phần còn lại của bài báo được tổ chức như sau: Nguyên lý<br />
làm sạch khi bị phát hiện, thì HT chỉ có thể bị loại bỏ bởi công hoạt động của thiết kế đề xuất được trình bày trong phần II.<br />
nghệ xử lý, sửa chữa hoặc cài đặt lại phần cứng trên thiết bị bị Nội dung phần III sẽ giới thiệu các bước xây dựng cơ sở dữ<br />
nhiễm, tuy nhiên đây là những phương pháp có chi phí rất lớn liệu dùng để phát hiện Trojan phần cứng. Các kết quả khảo sát<br />
[1, 2]. được tổng hợp trong phần IV. Cuối cùng, phần V là kết luận<br />
Trong các phương pháp phát hiện HT, kỹ thuật phân tích về tính khả thi của giải pháp được đề xuất.<br />
kênh bên (SCA: Side Channel Analysis) đã và đang được tập<br />
trung nghiên cứu do có nhiều ưu điểm nổi bật so với các<br />
phương pháp khác. SCA dựa trên phân tích kênh bên và thực II. THIẾT KẾ ĐỀ XUẤT<br />
hiện so sánh tham số trong mô hình có HT với mô hình tham<br />
A. Nguyên lý hoạt động của thiết kế đề xuất<br />
chiếu gốc (không có HT). Các tham số có thể quan sát được<br />
chia thành hai nhóm: năng lượng (dòng điện, điện năng tiêu thụ, Trong giải pháp đề xuất, yêu cầu cơ bản nhất là thao tác<br />
năng lượng phát xạ...) và độ trễ của đường truyền tín hiệu. Ưu trích xuất dữ liệu, theo dõi được quá trình thay đổi mức logic<br />
điểm của SCA dựa trên độ trễ đường truyền tín hiệu là khả năng của các thanh ghi có trong thiết kế. Các bộ phần mềm hỗ trợ<br />
phát hiện được HT ngay cả trong trường hợp mà HT chưa được thiết kế của các hãng nổi tiếng như Xilinx, Altera... đều có các<br />
kích hoạt. HT có kích thước càng lớn thì phương pháp này càng lõi (core) hỗ trợ chức năng này, tuy nhiên quá trình sử dụng<br />
hiệu quả và đơn giản hóa được quá trình kiểm tra [3]. hầu như mới ở dạng giao diện người dùng. Chẳng hạn, lõi ILA<br />
Trong [4], nhóm tác giả xây dựng “vân tay” (Integrated Logic Analyzer: Phân tích logic tích hợp) được<br />
(“fingerprint”) của vi mạch bằng cách tạo vector kiểm tra để nghiên cứu và tích hợp sẵn trong công cụ ChipScope của<br />
đo đạc các trễ đường truyền, với HT có diện tích chiếm 0,36% Xilinx, phù hợp với những thiết kế yêu cầu kiểm tra, đánh giá<br />
tổng diện tích của mạch thì tỉ lệ phát hiện Trojan là 36%. sự thay đổi logic theo từng điểm riêng biệt. Hạn chế của ILA<br />
Nhược điểm của kỹ thuật này là việc đo đạc tất cả các trễ là không thể điều khiển và truy xuất dữ liệu thông qua ngôn<br />
đường truyền đối với mạch có thiết kế phức tạp, nhiều cổng ngữ TCL giống các core khác trong ChipScope như CseJtag,<br />
vào/ra là rất khó khăn và đòi hỏi thời gian xử lý. Một phương CseFpga, CseCore, CseVIO [7]. Chính vì vậy, trong mô hình<br />
án khác được đề xuất là dựa trên báo cáo phân tích trễ đường đề xuất, nhóm tác giả sẽ sử dụng ILA_tiny bằng cách thiết kế<br />
truyền tín hiệu sử dụng các công cụ trong gói phần mềm thiết lại ILA với các tính năng được rút gọn so với nguyên gốc trên<br />
kế chuyên dụng [5], ở đây k đường truyền ngắn nhất sẽ làm công cụ ChipScope của Xilinx. Quá trình truyền nhận dữ liệu<br />
căn cứ so sánh giữa hai mô hình. Kết quả chỉ ra rằng, với việc sử dụng giao thức UART.<br />
<br />
<br />
<br />
<br />
29<br />
Hình 1 thể hiện các thiết bị sử dụng trong mô hình đánh Điều kiện trong phương trình (1) chỉ được kiểm tra khi tín<br />
giá tính khả thi của phương pháp. PC giữ vai trò điều khiển hiệu đầu vào enable từ UART_control đưa đến có mức tích<br />
trung tâm, thay đổi mức và tần số của máy phát sóng chuẩn, cực cao. Tại đầu ra của ILA_tiny, tín hiệu capture_done được<br />
đồng thời nhận các dữ liệu mong muốn được gửi từ bo mạch đưa lên mức cao để UART_control thực hiện truyền dữ liệu<br />
kiểm tra. mong muốn capture_data. Kết thúc quá trình truyền, dựa trên<br />
tín hiệu xóa clear, ILA_tiny được đưa về trạng thái khởi tạo<br />
sẵn sàng cho chu trình tiếp theo.<br />
Máy phát<br />
sóng chuẩn<br />
B. Lưu đồ thuật toán chương trình khảo sát<br />
Board kiểm tra<br />
Lưu đồ thuật toán Chương trình khảo sát được minh họa<br />
trên Hình 3. Các tham số khởi tạo ban đầu bao gồm:<br />
m : tổng số điểm cần kiểm tra, ở đây m = 128 ;<br />
i : số điểm đã được kiểm tra, mặc định i = 0 ;<br />
j : số điểm kiểm tra tức thời, mặc định j = 0 ;<br />
Máy tính/ PC<br />
f 0 : tần số bắt đầu quá trình kiểm tra, chắc chắn chưa xuất<br />
Hình 1. Các thiết bị sử dụng trong mô hình đánh giá.<br />
hiện lỗi;<br />
Hình 2 minh họa sơ đồ liên kết tín hiệu của thiết kế được Df 0 : giá trị bước thay đổi tần số lớn nhất, mặc định<br />
đề xuất, trong đó thiết kế chính (Main design) là bộ mã hóa<br />
Df 0 = 4,096 MHz ;<br />
AES 128 bit. Các tín hiệu yêu cầu cần phải có đối với ILA<br />
bao gồm: Df : bước thay đổi tần số trong quá trình khảo sát<br />
- Conditions: n - 1 bits, điều kiện kiểm tra d f : giá trị bước thay đổi tần số nhỏ nhất, mặc định<br />
( n = 0, 1, ..., 127 ); d f = 0, 016 MHz<br />
- TriggerPorts: n - 1 bits, các điểm tham chiếu;<br />
- DataPorts: m - 1 bits, các điểm lấy dữ liệu cần khảo sát. BEGIN<br />
Dữ liệu mong muốn là giá trị DataPorts tại thời điểm khi điều<br />
kiện sau được thỏa mãn:<br />
TriggerPorts = Condititons (1) m, Δf = Δf0<br />
FPGA<br />
INIT<br />
f=f0 , i = 0<br />
Key_AES<br />
UART_interface<br />
128<br />
<br />
Msg_AES<br />
AES_128<br />
128 UART_RX<br />
(MainDesign)<br />
Cipher_AES<br />
RX_DV<br />
RX_DV<br />
True<br />
RX_Byte rx_in i=m?<br />
128 RX_Byte RX_Serial<br />
<br />
conditions<br />
clk_ext<br />
<br />
<br />
<br />
<br />
128<br />
clk<br />
False<br />
g_CLKS_PER_BIT<br />
<br />
TriggerPort conditions enable<br />
UART_control<br />
TX_Active UART_TX Change Freq.<br />
Capture_done TX_Done<br />
TX_Active<br />
(result: f, Δf )<br />
DataPort TX_Done<br />
TX_Byte tx_out<br />
128 ILA_tiny captureData TX_Byte TX_Serial<br />
TX_DV<br />
128 TX_DV<br />
RF_OUT<br />
clk_ext<br />
clear clk<br />
fout = f<br />
g_CLKS_PER_BIT<br />
<br />
<br />
clk_int clk_int<br />
clk_ext<br />
<br />
<br />
<br />
<br />
clk_int<br />
Check Points<br />
(result: i , j)<br />
Hình 2. Sơ đồ liên kết tín hiệu trong thiết kế đề xuất.<br />
Do sự khác nhau về xung nhịp làm việc giữa<br />
UART_control (tần số cố định clk_int) và ILA_tiny (tần số<br />
thay đổi clk_ext từ máy phát sóng chuẩn, trùng tần số làm việc Save to file<br />
của thiết kế chính), các tín hiệu liên kết giữa hai components<br />
phải được mở rộng xung trước khi truyền sang khối còn lại.<br />
Các byte dữ liệu và điều khiển từ PC truyền nối tiếp qua rx_in,<br />
được xử lý trên UART_RX rồi gửi sang UART_control. Quá END<br />
trình ngược lại, các dữ liệu mong muốn sẽ được phân tách<br />
thành từng byte, từ UART_TX truyền nối tiếp qua tx_out<br />
Hình 3. Lưu đồ thuật toán Chương trình khảo sát.<br />
đến PC.<br />
<br />
<br />
<br />
<br />
30<br />
Chương trình khảo sát được phân chia thành 3 chương Bảng 1. Quá trình biến đổi trong vòng 1.<br />
trình con như sau:<br />
- Change_Freq là chương trình thay đổi tần số, xác định Trạng thái Sử dụng Msg_0 Sử dụng Msg_1<br />
cặp giá trị tần số phát và bước tần thay đổi ( f , Df ). Căn cứ Msg<br />
5a 28 96 57 f8 5f 3c f0<br />
vào j (số điểm kiểm tra tức thời), chương trình con này sẽ lựa a6 ec ca ea a8 e2 a0 61<br />
(Trạng thái 04 2d e3 c8 9d 3b 22 51<br />
chọn bước tần tương ứng với quá trình điều chỉnh thô khởi tạo) 4e 15 45 2c 61 9a 3d 06<br />
(Coarse_step) hoặc điều chỉnh tinh (Fine_step). Giá trị thể 00 44 88 cc 00 44 88 cc<br />
hiện tần số phát được đưa đến chương trình RF_OUT. Key 11 55 99 dd 11 55 99 dd<br />
- RF_OUT là chương trình điều khiển máy phát sóng (Khởi tạo khóa) 22 66 aa ee 22 66 aa ee<br />
chuẩn. Sau khi kết nối với máy phát sóng chuẩn (phụ thuộc 33 77 bb ff 33 77 bb ff<br />
giao thức và gói kết nối được hỗ trợ), giá trị thể hiện tần số và 5a 6c 1e 9b f8 1b b4 3c<br />
S0<br />
mức tín hiệu được gửi từ PC đến máy phát. b7 b9 53 37 b9 b7 39 bc<br />
(Đầu vào của<br />
- Check Points là chương trình phát hiện lỗi. Ở mỗi một 26 4b 49 26 bf 5d 88 bf<br />
Round 1)<br />
tần số, PC sẽ gửi lệnh capture_en, sau đó nhận đủ số bít của 7d 62 fe d3 52 ed 86 f9<br />
dữ liệu mong muốn capture_data. Thao tác này được lặp lại be 50 72 14 41 af 8d eb<br />
20 lần. Thực hiện so sánh lần lượt từng bit (từng điểm) của Đầu ra bước a9 56 ed 9a 56 a9 12 65<br />
capture_data với dữ liệu tham chiếu, nếu có trên 10 lần khác SubBytes f7 b3 3b f7 08 4c c4 08<br />
ff aa bb 66 00 55 44 99<br />
nhau và đang trong quá trình điều chỉnh tinh thì quyết định<br />
be 50 72 14 41 af 8d eb<br />
điểm kiểm tra bị lỗi.<br />
Đầu ra bước 56 ed 9a a9 a9 12 65 56<br />
Sau khi toàn bộ m điểm được kiểm tra, các kết quả đo sẽ ShiftRows 3b f7 f7 b3 c4 08 08 4c<br />
được lưu vào cơ sở dữ liệu để sử dụng cho quá trình phát hiện 66 ff aa bb 99 00 55 44<br />
Trojan phần cứng. c0 84 0c c0 3f 7b f3 3f<br />
Đầu ra bước 39 6c f5 28 c6 93 0a d7<br />
III. XÂY DỰNG CƠ SỞ DỮ LIỆU MixColumns 34 52 f8 16 cb ad 07 e9<br />
78 0f b4 4b 87 f0 4b b4<br />
Thiết kế chính được đánh giá là bộ mã hóa AES 128 bit<br />
c0 84 0c c0 c0 84 0c c0<br />
(AES_128) [8] như trong Hình 4. AES_128 sử dụng Key để Đầu ra bước 39 6c f5 28 39 6c f5 28<br />
thực hiện mã hóa bản rõ Msg, sau 10 vòng (round) sẽ nhận AddRoundkey 34 52 f8 16 34 52 f8 16<br />
được giá trị bản mã Cipher ở đầu ra. Quá trình khảo sát sẽ 78 0f b4 4b 78 0f b4 4b<br />
đánh giá sự sai khác nhau về khoảng cách giữa các điểm trong 00 00 00 00 ff ff ff ff<br />
quá trình truyền lan tín hiệu ở một trong các vòng. Lựa chọn S1<br />
00 00 00 00 ff ff ff ff<br />
vòng để khảo sát hoàn toàn ngẫu nhiễn, trong mô hình đề xuất (Đầu vào của 00 00 00 00 ff ff ff ff<br />
nhóm tác giả thực hiện đánh giá vòng 1. Khi đó tín hiệu đầu Round 2) 00 00 00 00 ff ff ff ff<br />
vào và đầu ra của vòng 1 được khảo sát là S0 và S1.<br />
Để đảm bảo tính đồng nhất quá trình chuyển đổi mức tín state AES_128<br />
+ s0<br />
hiệu, Key sẽ được giữ cố định, Msg được lựa chọn là cặp giá 128<br />
<br />
trị Msg_0 và Msg_1 tương ứng với đầu ra của S1 là toàn bộ key<br />
k0<br />
128<br />
bit 0 hoặc toàn bộ bit 1 (Bảng 1). Msg_0 dùng để thiết lập giá expand_key_128 one_round<br />
trị khởi tạo cho các thanh ghi và tín hiệu có bên trong bộ mã k0 k0b k0b<br />
s1 s1_out<br />
8'h1 a1 k1 s0 r1<br />
hóa AES. Đối với ILA_tiny, đầu vào Conditions có giá trị clk 128<br />
bằng đúng Msg_1. Như vậy, khi thay đổi Msg_0 sang Msg_1<br />
thì điều kiện trong phương trình (1) được thỏa mãn. Sau đó 2<br />
xung nhịp, S2 sẽ chứa toàn bộ bit 1 - đây chính là dữ liệu k8 k8b k8b<br />
s9<br />
8'h1b a9 k9 s8 r9<br />
mong muốn capture_data. Các đầu vào AES được lựa chọn<br />
như sau: Final_round<br />
k9 k9b k9b sout<br />
out<br />
Key = "00112233445566778899aabbccddeeff" 8'h36 a10 s9 r10<br />
128<br />
Msg_0= "5aa6044e28ec2d1596cae34557eac82c"<br />
Msg_1= "f8a89d615fe23b9a3ca0223df0615106"<br />
Tần số giới hạn ứng với từng bit của S1 được lưu lại sau Hình 4. Sơ đồ khối bộ mã hóa AES_128.<br />
mỗi phép đo. Biểu diễn với mô hình trong toán học, kết quả<br />
này được thể hiện dưới dạng một vector hàng, mỗi phần tử là é f0 ù é f 0.0 f 0.1.1 f 0.0.127 ù<br />
tần số tương ứng với mỗi bit của S1. Quá trình khảo sát được ê ú ê f<br />
f f1.1.1 f1.1.127 úú<br />
thực hiện trong N lần. Cuối cùng, bảng số liệu tập hợp các f = ê 1 ú = ê 1.0 (2)<br />
kết quả đo được thể hiện dưới dạng một ma trận f có kích ê ú ê ú<br />
ê ú ê ú<br />
thước N ´128 . ëf N -1 û ë f N -1.0 f N -1.1 f N -1.127<br />
1.1 û<br />
<br />
<br />
<br />
<br />
31<br />
Trong đó: - Thay đổi biểu thức hàm logic của LUT_A sao cho với tổ<br />
f i : vector hàng kích thước 1 ´ 128 , kết quả đo ở lần khảo hợp có thể có của in_1 và in_2 không làm cho HT bị kích hoạt<br />
khi kiểm tra, tín hiệu đầu ra out_A sẽ là tổ hợp logic của<br />
sát thứ i net_1, net_2;<br />
f i. j : phần tử hàng i , cột j thể hiện tần số giới hạn ứng - Lựa chọn ngẫu nhiễu một LUT đã được sử dụng trong<br />
với bit thứ j của S1 trong lần khảo sát thứ i . Round 1 còn dư chân đầu vào, ký hiệu là LUT_B và chân<br />
chưa được sử dụng là in_B (Hình 5);<br />
Từ bảng số liệu, xác định các tham số thống kê của phép<br />
- Kết nối out_A với in_B, thay đổi biểu thức hàm logic<br />
đo. Cặp giá trị ( m j , s j ) cho từng điểm riêng biệt là cơ sở để của LUT_B sao cho không làm thay đổi giá trị của out_B.<br />
phát hiện tính toàn vẹn của thiết kế, ở đây:<br />
- Giá trị kỳ vọng: net_1 LUT_A<br />
in_1<br />
μ = [ m0 m1 127 ]<br />
m12 (3)<br />
net_2 out_A<br />
1 N -1 in_2<br />
mj =<br />
N<br />
åf i =0<br />
i. j (4)<br />
<br />
- Giá trị phương sai:<br />
σ 2 = éës 02 s12 s12<br />
2<br />
ù<br />
127 û (5)<br />
LUT_B<br />
N -1<br />
1<br />
å( f - mj )<br />
2<br />
s 2j = (6) in_B<br />
i. j<br />
N i =0 out_B<br />
Round 1<br />
IV. KẾT QUẢ KHẢO SÁT<br />
Trong kỹ thuật phân tích kênh bên SCA, tham số được<br />
đánh giá ở mô hình có HT sẽ được so sánh với mô hình tham Hình 5. Thực thi HT sử dụng FPGA Editor.<br />
chiếu gốc (không có HT). Như vậy, quá trình thực thi HT vào Ở đây, net_1 và net_2 được chọn là S0[126] và S0[125].<br />
trong thiết kế gốc phải đảm bảo được yêu cầu sự khác biệt là Hàm logic của LUT_A là cổng OR. Theo Bảng 1, với Msg_0<br />
nhỏ nhất có thể. Chip Planner trong bộ phần mềm Quartus II cặp giá trị (net_1; net_2) là (1; 0); tương ứng là (1; 1) trong<br />
hay FPGA Editor có trong ISE/Vivado là hai công cụ cho phép trường hợp Msg_1. Như vậy in_B luôn nhận mức logic 1.<br />
thực thi HT mà không làm thay đổi việc định tuyến. Để thuận Biểu thức hàm logic của LUT_B theo phương trình (7a):<br />
tiện trong việc tra cứu các bước trong quy trình thiết kế FPGA,<br />
nhóm tác giả sẽ giữ nguyên các thuật ngữ tiếng Anh. Dưới đây out _ B = f ( B) (7a)<br />
là 4 bước chính để thực thi HT sử dụng công cụ FPGA Editor: Khi có thêm tín hiệu vào in_B, để không làm thay đổi giá<br />
1) Synthesize, Translate, Map, Place & Route đối với trị của out_B, biểu thức (7a) được điều chỉnh lại:<br />
mạch nguyên gốc. out _ B = f ( B) AND in _ B (7b)<br />
2) Thu nhận file NCD chứa các thông tin định tuyến và<br />
các tài nguyên logic được sử dụng trong thiết kế ở mô hình Quá trình khảo sát sử dụng board kiểm tra là Sakura-G,<br />
tham chiếu gốc. máy phát sóng chuẩn SMBV100A của hãng Rohde&Schwarz<br />
3) Mở và thay đổi file NCD trên công cụ FPGA Editor, [9, 10]. Chương trình kiểm tra được viết bằng ngôn ngữ<br />
thực thi HT bằng các LUT và slice chưa sử dụng của chip Python. Dựa trên các thông tin về tài nguyên logic được sử<br />
FPGA, các thao tác có thể thực hiện thủ công hoặc bằng các dụng trong công cụ FPGA Editor, thiết kế gốc và thiết kế chứa<br />
câu lệnh. HT có kích thước lần lượt là 626 và 627. Như vậy, HT chiếm<br />
4) Tạo file cấu hình cho hai trường hợp có hoặc không có 0,2% kích thước so với mạch gốc. Bảng 2 và 3 là kết quả về<br />
HT bằng FPGA Editor. các tần số giới hạn đối với 4 trong 128 bit của S1 sau 10 lần<br />
Trong trường hợp thực thi HT làm sai lệch thông tin, việc thử. Lưu ý rằng, trong mỗi lần thử, tại mỗi tần số sẽ thực hiện<br />
phát hiện HT sẽ tương đối đơn giản dựa vào việc kiểm tra các 20 phép đo để nhận dữ liệu mong muốn. Thực hiện so sánh lần<br />
bit của S1 không đồng nhất bằng 1. Tuy nhiên, việc phát hiện lượt từng bit (từng điểm) của capture_data với dữ liệu tham<br />
HT sẽ khó khăn hơn rất nhiều với trường hợp các HT có kích chiếu, nếu có trên 10 lần khác nhau và đồng thời đang trong<br />
thước nhỏ, trong quá trình kiểm tra lại không bị kích hoạt. Sử quá trình điều chỉnh tinh thì quyết định đây là tần số giới hạn<br />
dụng FPGA Editor thay đổi thiết kế nguyên gốc sẽ tập trung cần tìm.<br />
vào trường hợp thứ hai. Thực thi HT trong bước thứ 3 được cụ Dựa trên các kết quả tính toán từ công thức (4) và (6),<br />
thể hóa như sau: thực hiện so sánh cặp giá trị ( m j , s j ) của tần số giới hạn với<br />
- Lựa chọn ngẫu nhiên một LUT chưa được sử dụng, ký<br />
hiệu là LUT_A; các giá trị trong cơ sở dữ liệu, khi có bất kỳ sự khác biệt nào<br />
- Lựa chọn ngẫu nhiên các dây tín hiệu liên quan tới thì kết luận rằng trong thiết kế đang kiểm tra đã bị chèn HT.<br />
Round 1, giả sử chọn net_1 và net_2 đưa đến in_1 và in_2 của Các kết quả minh họa trên Hình 6, cho thấy khả năng phát<br />
LUT_A; hiện HT của phương án được đề xuất, tuy nhiên sự khác biệt<br />
về tần số giới hạn là tương đối nhỏ. Do đó, để tăng khả năng<br />
<br />
<br />
<br />
<br />
32<br />
phân biệt thì cần yêu cầu bước thay đổi trong chương trình điều Bảng 3. Tần số giới hạn đối với S1[126] và S1[127] (MHz).<br />
khiển tần số của máy phát sóng chuẩn phải đủ nhỏ. Một tiêu chí S1[126] S1[127]<br />
khác cần quan tâm, đó là chi phí chung khi tích hợp thêm Lần<br />
thử Không có Có Không có Có<br />
ILA_tiny sẽ không cố định, phụ thuộc vào thiết kế chính được<br />
HT HT HT HT<br />
sử dụng. Với AES_128, chi phí chung khoảng 8% là mức tương<br />
1 356,569 357,119 358,808 359,357<br />
đối phù hợp [11]. Tăng khả năng phân biệt và giảm chi phí<br />
2 356,319 357,097 358,619 359,365<br />
chung là những hướng phát triển tiếp theo của nghiên cứu này.<br />
3 357,156 357,100 359,267 359,433<br />
4 356,513 357,150 358.813 359,390<br />
5 356,514 357,482 358.813 359,717<br />
6 356,568 357,409 358.742 359,582<br />
7 357,409 357,381 359.615 359,760<br />
8 357,281 357,378 359.487 359,645<br />
9 357,005 357,474 359.162 359,618<br />
10 356,622 357,059 358.972 359,248<br />
mj 356.795 357.264 359.029 359.511<br />
sj 0.36 0.164 0.319 0.164<br />
a)<br />
V. KẾT LUẬN<br />
Các kết quả khảo sát đã thể hiện tính khả thi của giải pháp<br />
được đề xuất sử dụng kỹ thuật SCA dựa trên xác định tần số<br />
ứng với trễ đường truyền tín hiệu. Tuy nhiên, cần lưu ý một<br />
yêu cầu khi sử dụng kỹ thuật SCA, đó là điều kiện tiến hành<br />
khảo sát phải giữ nguyên hoặc biến đổi vô cùng nhỏ, chẳng<br />
hạn nguồn cung cấp, nhiệt độ thí nghiệm, độ ổn định tần số...<br />
Trong nghiên cứu tiếp theo, chúng tôi sẽ khảo sát các yếu tố<br />
này để đạt hiệu quả cao hơn trong phát hiện Trojan phần cứng.<br />
<br />
b) TÀI LIỆU THAM KHẢO<br />
[1] Swarup Bhunia,Mark M. Tehranipoor, “The Hardware Trojan War:<br />
Hình 6. Hàm phân bố của tần số giới hạn tương ứng Attacks, Myths, and Defenses,” Springer, pp. 15-51, 2018.<br />
với trễ đường truyền tín hiệu. [2] Xuan-Thuy Ngo, Van-Phuc Hoang and Han Le Duc, “Hardware Trojan<br />
threat and its countermeasures,” NAFOSTED Conference on Information<br />
Bảng 2. Tần số giới hạn đối với S1[0] và S1[1] (MHz). and Computer Science, pp. 36-51, 2018.<br />
S1[0] S1[1] [3] Hao Xue, Saiyu Ren, “Hardware Trojan detection by timing<br />
Lần measurement theory and implementation,” Microelectronics Journal,<br />
thử Không có Có Không có Có vol. 77 , pp. 16-25, 2018.<br />
HT HT HT HT [4] Y. Jin and Y. Makris, “Hardware Trojan detection using path delay<br />
1 416,970 417,513 418,438 418,902 fingerprint,” IEEE Int. Workshop Hardware-Oriented Security and<br />
Trust, 2008, pp. 51-57, IEEE, 2008.<br />
2 417,225 417,587 418,311 418,960<br />
[5] A. Amelian and S.E. Borujeni, “A Side-Channel Analysis for Hardware<br />
3 417,102 417,442 418,444 418,991 Trojan detection based on Path Delay Measurement,” Journal of<br />
4 417,098 417,472 418,183 419,115 Circuits, Systems, and Computers Vol. 27, No. 9, (2018).<br />
5 417,095 418,066 418,433 419,329 [6] Xilinx, “Timing Closure User guide,” UG612 (v13.3) October 19, 2011<br />
[7] Xilinx, LogiCORE IP ChipScope Pro Integrated Logic Analyzer (ILA)<br />
6 416,960 417,882 418,492 419,320 (v1.04a), DS299, June 2011.<br />
7 417,630 418,002 419,035 419,376 [8] Trojan Benchmarks, AES-T1500, https://www.trust-hub.org/resource<br />
8 417,789 417,834 419,068 419,110 /benchmarks/AES/AES-T1500.zip.<br />
9 416,971 417,852 418,265 419,081 [9] Sakura-G specification ver 1.0, http://satoh.cs.uec.ac.jp/SAKURA<br />
/hardware/SAKURA-G_Spec_Ver1.0_English.pdf<br />
10 417,500 417,404 419,107 418,760 [10] Rohde&Schwarz, R&S SMBV100A Vector Signal Generator Operating<br />
mj 417,234 417,705 418,577 419,094 Manual, 2017.<br />
[11] L. Jie, J. Lach, “At-speed delay characterization for IC authentication<br />
sj 0,282 0,234 0,334 0,189 and Trojan Horse detection,” IEEE Int. Workshop Hardware-Oriented<br />
Security and Trust, 2008, pp. 8-14, IEEE, 2008.<br />
<br />
<br />
<br />
<br />
33<br />