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 143 - 150)

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.

Pha lập mẫu Khóa Các giá trị trung gian cần phân lớp

Bản rõ z1

z2

Tập các vết điện năng tiêu thụ

được gán nhãn zi (i=1:m) zm Huấn luyện CNNd Pha tấn công Thu thập các vết điện năng tiêu thụ Mô hình CNNd đã huấn luyện Ước lượng hợp lý lớn nhất Khóa đúng Lối ra Sbox Sbox DUT Tập vết tấn công (chưa gán nhãn)

Xác suất vết thuộc một lớp

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 ��)

∈�

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

⋮ ⋮ ⋮ ⋱ ⋮

(����(���)

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.

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ả

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

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]

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 143 - 150)

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

(166 trang)
w