Quy trình tấn công

Một phần của tài liệu Một số phương pháp tấn công phân tích điện năng tiêu thụ hiệu quả sử dụng kỹ thuật xử lý tín hiệu và học máy (Trang 115 - 119)

9. Cấu trúc của Luận án

3.4.2.Quy trình tấn công

Sơ đồ tấn công mẫu sử dụng cho thiết bị có phòng vệ bằng mặt nạ dựa trên phương pháp tấn công mẫu chuẩn, được thực hiện thông qua hai pha chính là pha lập mẫu và pha tấn công như được mô tả trên Hình 3.7.

Trong pha lập mẫu, người tấn công xây dựng mô hình điện năng tiêu thụ của thiết bị mẫu bằng cách huấn luyện mô hình phân lớp CNNd cho các vết điện năng tiêu thụ của thiết bị này. Việc này được thực hiện thông qua các bước như sau:

B1: Lựa chọn điểm tấn công hay giá trị trung gian của thuật toán mật mã để tấn công, ví dụ như lối ra Sbox với giá trị trung gian tấn công là 𝑧𝑖 = 𝑠𝑏𝑜𝑥(𝑝𝑡𝑖⊕ 𝑘), với 𝑘 là khóa của thiết bị mẫu.

B2: Xây dựng bộ dữ liệu huấn luyện: Sử dụng 𝑁𝑝 bản rõ làm đầu vào cho thiết bị mẫu để thực thi thuật toán mật mã. Trong quá trình thiết bị thực thi mã hóa tại điểm tấn công, thu thập các vết điện năng tiêu thụ 𝑥𝑖 ∈ 𝑅𝑇 , 𝑖 = 1, . . , 𝑁𝑝. Các vết này được gán nhãn tương ứng là 𝑧𝑖 = 𝑠𝑏𝑜𝑥(𝑝𝑡𝑖 ⊕ 𝑘); 𝑖 = 1, … , 𝑁𝑝. Với thuật toán AES lối ra 𝑠𝑏𝑜𝑥 có giá trị là 1 byte, nên 𝑧𝑖 ∈ (0,1, … ,255).

B3: Bộ dữ liệu vết điện năng tiêu thụ được gán nhãn ở bước 2 được sử dụng để huấn luyện mô hình phân lớp CNNd để nó có thể tổng quát hóa được sự phụ thuộc của các vết điện năng tiêu thụ và giá trị trung gian giả thiết 𝑧𝑖. Bộ phân lớp CNNd sau khi đã được huấn luyện sẽ được sử dụng để phân lớp cho các vết điện năng tiêu thụ mới trong pha tấn công.

Bản rõ z1 z2 zm Thu thập các vết điện năng tiêu thụ

Tập các vết điện năng tiêu thụ được gán nhãn zi (i=1:m)

Huấn luyện CNNd

Các giá trị trung gian cần phân lớp Pha lập mẫu Tập vết tấn công (chưa gán nhãn) Mô hình CNNd đã huấn luyện Ước lượng hợp lý lớn nhất Khóa đúng Xác suất vết thuộc một lớp Pha tấn công Sbox Lối ra Sbox DUT Khóa

103

Trong pha tấn công, mục tiêu của người tấn công là tìm được khóa bí mật của thiết bị cần tấn công. Một tập 𝑁𝑎 vết điện năng tiêu thụ 𝑥𝑖 ∈ 𝑅𝑇 (chưa biết nhãn) thu thập từ thiết bị cần tấn công được đưa vào bộ phân lớp CNNd đã được huấn luyện ở pha lập mẫu để xác định xác suất các vết có nhãn tương ứng từ 𝑧1, … , 𝑧𝑚. Các giá trị xác suất này được đưa vào bộ ước lượng hợp lý lớn nhất để tìm ra khóa đúng của thiết bị tấn công. Điểm số quyết định có được bởi ước lượng hợp lý lớn nhất cho mỗi ứng viên khóa được xác định bởi (3.15).

log 𝐿𝑘 ≡ 𝑙𝑜𝑔 ∏ 𝑃𝐶𝑁𝑁(𝒙𝑖|𝑧𝑗) = ∑ log 𝑃𝐶𝑁𝑁(𝒙𝑖|𝑧𝑗) 𝑁𝑎 𝑖=1 𝑁𝑎 𝑖=1 (3.15) Với 𝑧𝑗 = 𝑆𝑏𝑜𝑥(𝑝𝑡𝑖, 𝑘) và 𝑝𝑡𝑖 là bản rõ tương ứng với vết điện năng tiêu thụ 𝒙𝑖. Một ứng viên khóa 𝑘𝑐 trong tất cả các khóa giả thiết có ước lượng hợp lý lớn nhất (3.16) được xem là khóa đúng cần tìm.

𝑘𝑐 = 𝑎𝑟𝑔𝑚𝑎𝑥

𝑘∈𝕂 (log 𝐿𝑘) (3.16)

Chi tiết các bước cần thực hiện trong pha tấn công được mô tả như sau:

B1: Người tấn công cần có được thiết bị cần tấn công giống với thiết bị được sử dụng trong pha lập mẫu.

B2: Cần xác định điểm tấn công. Đây là điểm giống với điểm được sử dụng trong pha lập mẫu, ví dụ như lối ra Sbox.

B3: Đo tập 𝑁𝑎 vết điện năng tiêu thụ từ thiết bị tấn công. Các vết này có chứa điện năng tiêu thụ sinh bởi phép toán sử dụng làm điểm tấn công. Ví dụ như chứa điện năng tiêu thụ của thiết bị khi nó thực thi phép toán Sbox.

B4: Sử dụng mô hình CNNd đã được huấn luyện trong pha lập mẫu để xác định xác suất phân lớp các vết điện năng tiêu thụ của thiết bị tấn công thuộc về các nhãn khác nhau. Kết quả bước này, người tấn công có được ma trận như (3.17), trong đó 𝐶𝑁𝑁𝑑(𝑡𝑖)𝑗 là xác suất của vết điện năng tiêu thụ 𝑡𝑖 được phân lớp thuộc lớp 𝑧𝑗 bởi mạng CNNd. Trong pha lập mẫu, CNNd được huấn luyện để phân lớp cho 256 nhãn của vết điện năng tiêu thụ nên 𝑗 = 0,1, … ,255.

𝑫 = ( 𝐶𝑁𝑁𝑑(𝑡1)0 𝐶𝑁𝑁𝑑(𝑡1)1 𝐶𝑁𝑁𝑑(𝑡1)2 ⋯ 𝐶𝑁𝑁𝑑(𝑡1)255 𝐶𝑁𝑁𝑑(𝑡2)0 𝐶𝑁𝑁𝑑(𝑡2)1 𝐶𝑁𝑁𝑑(𝑡2)2 … 𝐶𝑁𝑁𝑑(𝑡2)255 ⋮ ⋮ ⋮ ⋱ ⋮ 𝐶𝑁𝑁𝑑(𝑡𝑁𝑎) 0 𝐶𝑁𝑁𝑑(𝑡𝑁𝑎) 1 𝐶𝑁𝑁𝑑(𝑡𝑁𝑎) 2 ⋯ 𝐶𝑁𝑁𝑑(𝑡𝑁𝑎) 255) (3.17)

104

B5: Khôi phục khóa của thiết bị tấn công bằng cách sử dụng hàm ước lượng hợp lý (3.15). Bước này được thực hiện bởi 3 giai đoạn như sau:

- Giả sử người tấn công muốn tìm byte khóa 𝑘 khi tấn công thuật toán mã hóa. Trước hết người tấn công tính giá trị lối ra Sbox của tất cả các bản rõ 𝑝𝑡𝑖 với 𝑖 = 1, … , 𝑁𝑎 cho tất cả các giá trị có thể có của khóa 𝑘. Trong trường hợp này, do 𝑘 có độ lớn là 1 byte nên tồn tại 256 giá trị của 𝑘 từ 0 đến 255. Kết quả người tấn công có được là ma trận 𝑷 kích thước (𝑁𝑎, 256) được biểu diễn bởi (3.18). Mỗi phẩn tử được ký hiệu là 𝑝𝑖,𝑗, với 𝑖, 𝑗 là chỉ số cột, hàng mô tả 𝑆(𝑝𝑡𝑖 ⊕ 𝑘𝑗) là lối ra Sbox của phép XOR giữa bản rõ của vết 𝑡𝑖 và một khóa 𝑘𝑗 = 𝑗. 𝑷 = ( 𝑆(𝑝𝑡1⊕ 𝑘0) 𝑆(𝑝𝑡1⊕ 𝑘1) 𝑆(𝑝𝑡1⊕ 𝑘2) ⋯ 𝑆(𝑝𝑡1⊕ 𝑘255) 𝑆(𝑝𝑡2⊕ 𝑘0) 𝑆(𝑝𝑡2⊕ 𝑘1) 𝑆(𝑝𝑡2⊕ 𝑘2) … 𝑆(𝑝𝑡2⊕ 𝑘255) ⋮ ⋮ ⋮ ⋱ ⋮ 𝑆(𝑝𝑡𝑁𝑎⊕ 𝑘0) 𝑆(𝑝𝑡𝑁𝑎⊕ 𝑘1) 𝑆(𝑝𝑡𝑁𝑎⊕ 𝑘2) ⋯ 𝑆(𝑝𝑡𝑁𝑎⊕ 𝑘255) ) (3.18)

- Tiếp đến, người tấn công thay thế các phần tử 𝑝𝑖,𝑗 của ma trận 𝑃 bởi giá trị 𝐶𝑁𝑁(𝑡𝑖)𝑝𝑖,𝑗 được mô tả trong ma trận 𝑫 ở biểu thức (3.17). Kết quả người tấn công có được ma trận 𝑆 được biểu diễn bởi (3.19), trong đó mỗi phần tử 𝑠𝑖,𝑗 mô tả xác suất một vết điện năng tiêu thụ 𝑡𝑖, với một byte bản rõ đầu vào 𝑝𝑡𝑖 được mã hóa với khóa 𝑘𝑗 = 𝑗.

𝑺 = ( 𝐶𝑁𝑁𝑑(𝑡1)𝑝1,0 𝐶𝑁𝑁𝑑(𝑡1)𝑝1,1 𝐶𝑁𝑁𝑑(𝑡1)𝑝1,2 ⋯ 𝐶𝑁𝑁𝑑(𝑡1)𝑝1,255 𝐶𝑁𝑁𝑑(𝑡2)𝑝2,0 𝐶𝑁𝑁𝑑(𝑡2)𝑝2,1 𝐶𝑁𝑁𝑑(𝑡2)𝑝2,2 … 𝐶𝑁𝑁𝑑(𝑡2)𝑝2,255 ⋮ ⋮ ⋮ ⋱ ⋮ 𝐶𝑁𝑁𝑑(𝑡𝑁𝑎) 𝑃𝑁𝑎,0 𝐶𝑁𝑁𝑑(𝑡𝑁𝑎) 𝑃𝑁𝑎,1 𝐶𝑁𝑁𝑑(𝑡𝑁𝑎) 𝑃𝑁𝑎,2 ⋯ 𝐶𝑁𝑁𝑑(𝑡𝑁𝑎) 𝑃𝑁𝑎,255) (3.19)

- Cuối cùng, người tấn công lấy tổng logarit các phần tử của từng cột của ma trân S với mục tiêu là điểm số quyết định của mỗi giá trị có thể có của 𝑘. Việc này tương ứng với thực thi biểu thức (3.15). Trong 256 cột của ma trận S, cột nào cho điểm số quyết định lớn nhất tương ứng chỉ số của cột đó là khóa đúng hợp lý nhất của thiết bị tấn công. Biểu thức (3.16) tổng quát hóa việc làm này.

Thực nghiệm tấn công CNN-D

Trong phần này luận án trình bày kết quả thực nghiệm thực thi tấn công mẫu như được mô tả trong phần 3.4 để tìm khóa của thuật toán AES-128 được cài đặt trên thẻ thông minh có sử dụng biện pháp phòng vệ bằng mặt nạ. Để có thể so sánh hiệu quả

105

tấn công so với các phương pháp khác, luận án sử dụng bộ vết điện năng tiêu thụ ASCAD với số lượng vết sử dụng trong các pha lập mẫu và tấn công được mô tả trên Bảng 3.4. Trong đó, số vết được sử dụng trong pha lập mẫu và tấn công lần lượt là 𝑁𝑝 = 50000 và 𝑁𝑎 = 10000. Số vết trong pha lập mẫu được chia thành 2 phần tương ứng là 45000 dùng cho huấn luyện CNNd và 5000 vết để kiểm tra. Các vết trong pha lập mẫu đã được gán nhãn theo giá trị trung gian tại lối ra Sbox của AES-128 là 𝑧𝑖 = 𝑠𝑏𝑜𝑥(𝑝𝑡𝑖⊕ 𝑘), các vết trong pha tấn công chưa biết nhãn.

Bảng 3.4. Dữ liệu sử dụng trong tấn công (adsbygoogle = window.adsbygoogle || []).push({});

Dữ liệu sử dụng trong pha lập mẫu Dữ liệu sử dụng trong pha tấn công

Bản rõ (𝑝𝑡𝑖)

Vết điện năng tiêu thụ(𝑥𝑖∈ ℝ700 – đơn vị 𝑚𝑉)

Nhãn

(𝑧𝑖)

Bản rõ (𝑝𝑡𝑖)

Vết điện năng tiêu thụ (𝑥𝑖∈ ℝ700 – đơn vị 𝑚𝑉) Nhãn (𝑧𝑖) 𝑝𝑡1 6 𝑥1 (20,19, … ,0,9,15) 38 𝑝𝑡1 31 𝑥1 (21,18,13,5, … ,3,12,17) ? 𝑝𝑡2 64 𝑥2 (22,20, … ,1,10,16) 47 𝑝𝑡2 145 𝑥2 (17,14,9, … ,5,12,17) ? ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ? 𝑝𝑡𝑁𝑝 202 𝑥𝑁𝑝 (2, −8, … , −3,5,12) 52 𝑝𝑡𝑁𝑎 198 𝑥𝑁𝑎 (25,25,21, … , −6,3,10) ?

Quá trình thực thi tấn công được thực hiện trên máy tính PC Intel Core i7, 16G RAM. Các chương trình tấn công được viết bằng ngôn ngữ Python. CNNd được cài đặt bằng ngôn ngữ Python sử dụng thư viện Keras. Các tham số huấn luyện CNNd được mô tả trên Bảng 3.5.

Bảng 3.5. Các tham số huấn luyện CNNd

Tham số Giá trị

Hàm lỗi Trung bình bình phương tối thiểu (MSE)

Phương pháp tối ưu Adam [81]

Batch Size 50

Tốc độ học Theo chiến lược One-Cycle Policy [82] [83]

Hàm kích hoạt SeLU [84]

Khởi tạo trọng số He Uniform [85]

106

Kết quả tấn công đề xuất được so sánh với kết quả điển hình được công bố bởi Prouff [32] và Zaid [33] bởi các tham số là: (1) độ chính xác của mô hình phân lớp; (2) khả năng tìm được khóa đúng và (3) hạng của khóa đúng hay còn gọi là lượng thông tin ước đoán (GE) theo số lượng vết điện năng tiêu thụ.

Một phần của tài liệu Một số phương pháp tấn công phân tích điện năng tiêu thụ hiệu quả sử dụng kỹ thuật xử lý tín hiệu và học máy (Trang 115 - 119)