Quy trình thực thi tấn công VMD-GSO-SVM

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 76 - 83)

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

2.4.1. Quy trình thực thi tấn công VMD-GSO-SVM

Các điều kiện cần để người tấn công VMD-GSO-SVM thực thi tấn công khôi phục được khóa đúng của thiết bị cần tấn công bao gồm:

(1) Có được thiết bị mẫu giống với thiết bị cần tấn công, có toàn quyền kiểm soát. Cụ thể là đối với thiết bị mẫu, người tấn công có thể thay đổi được khóa của nó và thu thập được các vết điện năng tiêu thụ khi nó hoạt động với các khóa khác nhau để phục vụ cho quá trình lập mẫu.

(2) Có thiết bị cần tấn công và có khả năng điều khiển được thiết bị này thực thi mã hóa với một tập bản rõ đầu vào được sinh ra ngẫu nhiên, đồng thời đo được các vết điện năng tiêu thụ khi nó thực thi mã hóa.

(3) Các thiết bị mẫu, và thiết bị cần tấn công được được sử dụng trong phần này cài đặt thuật mật mã AES-128 ở chế độ ECB.

Bản rõ Z1 Z2 Zm Lựa chọn POIs cho tập vết Các giá trị trung gian Pha lập mẫu Tập vết tấn công (chưa được gán nhãn) SVM đã được huấn luyện Quyết định khóa đúng Khóa đúng Các giá trị xác suất vết có nhãn cm Pha tấn công S-box Lối ra Sbox Thiết bị mẫu Key Huấn luyện SVM Lựa chọn POIs cho vết Tập vết được gán nhãn theo trọng số Hamming của Zm Đo các vết điện năng tiêu thụ Bản rõ S-box Lối ra Sbox Thiết bị tấn công k s (chưa biết) Đo các vết điện năng tiêu thụ Lựa chọn POIs bởi VMD-GSO- SVM Chỉ số các POIs cho vết điện năng tiêu thụ

Pha lựa chọn POI

Hình 2.13. Phương pháp tấn công mẫu cải tiến VMD-GSO-SVM

Quy trình tấn công VMD-GSO-SVM được thực hiện thông qua 03 pha chính được mô tả bởi Hình 2.13 cụ thể là:

64

Pha 1: là pha lựa chọn POIs từ các vết điện năng tiêu thụ. Các POIs này sẽ được sử dụng cho các pha tiếp theo là pha lập mẫu và pha tấn công.

Pha 2: là pha lập mẫu, được sử dụng để xây dựng mô hình điện năng tiêu thụ của thiết bị từ POIs được lựa chọn ở pha 1.

Pha 3: là pha tấn công để xác định khóa đúng của thiết bị tấn công.

2.4.1.1. Pha lựa chọn POIs dựa trên VMD, GSO và SVM

Các phương pháp lựa chọn POIs cho bài toán tấn công mẫu được đề xuất cho tới nay thường chỉ đánh giá hiệu quả trên các vết điện năng tiêu thụ gốc mà chưa đánh giá ảnh hưởng của nhiễu đến sự lựa chọn này. Trong những điều kiện tấn công trên thực tế, nhiễu là nhân tố luôn tồn tại và do đó nó sẽ ảnh hưởng đến hiệu quả của tấn công. Như đã phân tích phần đầu của chương, kỹ thuật VMD có thể được sử dụng để làm giảm nhiễu cho các vết điện năng tiêu thụ. Do đó, trong phần này, luận án đề xuất phương pháp lựa chọn POIs dựa trên sự kết hợp giữa kỹ thuật VMD, GSO và SVM. Trong đó, VMD sẽ được áp dụng trên các vết điện năng tiêu thụ và kỹ thuật GSO được sử dụng để lựa chọn các POIs tốt nhất từ một VMD mode thông qua việc đánh giá hiệu quả của nó khi được phân lớp bởi bộ phân lớp SVM. Bằng việc áp dụng VMD cho các vết điện năng tiêu thụ, thành phần chứa thông tin có ích cho tấn công phân tích điện năng tiêu thụ được lựa chọn, nhiễu trên các vết điện năng tiêu thụ cũng được loại bỏ. Do đó, phương pháp này sẽ lựa chọn được những điểm POIs tốt nhất, giảm được ảnh hưởng của nhiễu, và các POIs được chọn phù hợp với phương pháp được sử dụng để xây dựng mô hình điện năng tiêu thụ.

Sơ đồ lựa chọn POIs đề xuất được mô tả trên Hình 2.14, bao gồm 03 bước chính: (1) phân tích vết điện năng tiêu thụ thành các VMD mode, (2) lựa chọn VMD mode phù hợp để làm đặc trưng của vết, (3) lựa chọn những POIs tốt nhất trên VMD mode đã chọn bởi GSO và SVM. Lựa chọn VMD mode làm đặc trưng Phân tích vết thành các VMD mode Chỉ số các đặc trưng (POIs) lựa chọn Trích chọn POIs tốt nhất (Sử dụng GSO và SVM) Tập vết điện năng tiêu

thụ được gán nhãn

65

Ở bước thứ nhất, kỹ thuật VMD được sử dụng để phân tích vết điện năng tiêu thụ thành các VMD mode. Khi sử dụng VMD, các tham số của nó cần phải được thiết lập trước theo Thuật toán 2.2. Trong bước thứ hai của quá trình lựa chọn POIs, một VMD mode sẽ được lựa chọn làm đặc trưng cho vết điện năng tiêu thụ. Như đã phân tích, VMD mode có tần số trung tâm liên quan đến tấn số clock hoạt động của phần mạch tấn công sẽ được lựa chọn. Trong điều kiện tấn công thực tế, người tấn công có thể không biết được giá trị tần số hoạt động của phần mạch điện thực thi thuật toán bị tấn công. Do đó, trong phần này, luận án đề xuất phương pháp lựa chọn VMD mode bằng cách thực hiện tấn công CPA trên tất cả các VMD mode được phân tách như đã đề xuất trong mục 2.3.3. VMD mode nào có hệ số tương quan lớn nhất sẽ được lựa chọn. Việc tấn công CPA trên các VMD mode dựa trên quy trình tấn công VMD-CPA.

Sau khi lựa chọn một VMD mode làm đặc trưng cho vết điện năng tiêu thụ, số các điểm trên VMD mode bằng với số điểm trên vết điện năng tiêu thụ. Do đó, cần phải lựa chọn những điểm liên quan đến hoạt động của thiết bị đối với giá trị trung gian lập mẫu làm POIs và loại bỏ các điểm khác. Trong phần này, luận án đề xuất sử dụng phương pháp lựa chọn POIs dựa trên phương pháp trực giao hóa Gram-Schmidt. Phương pháp này thuộc dạng phương pháp lọc, không phụ thuộc vào việc sử dụng các bộ phân lớp phía sau và có hiệu quả trong việc xếp hạng các POIs trên vết điện năng tiêu thụ dựa trên tiêu chí được tính toán trực tiếp từ các dữ liệu trên vết. Hơn thế nữa, phương pháp này cho phép xác định được các POIs và không cần phải tính trọng số cho tất cả các điểm trên VMD mode. GSO sử dụng để xếp hạng các POIs dựa trên sự tương quan giữa các POIs này với giá trị đầu ra của một mô hình dự đoán, hay nói cách khác là tương quan giữa tập dữ liệu là POIs và các nhãn đã được gán trước của nó. Gọi 𝒙 là véc-tơ hàng chứa R POIs, được gán nhãn tương ứng là 𝑦𝑖. Nếu tập các POIs có 𝑁 véc-tơ tương ứng 𝑁 giá trị nhãn của nó thì kết quả ta có ma trận các POIs có 𝑁 hàng và 𝑅 cột. Nhiệm vụ của chúng ta là lựa chọn 𝐷 (𝐷 < 𝑅) POIs tốt nhất trong tập 𝑅 POIs. Để xác định mối quan hệ giữa các POIs và nhãn đầu ra, tương quan giữa mỗi POIs với nhãn của nó được xác định bởi (2.21) [73].

cos(𝛼𝑘) = 〈𝒙 𝑘. 𝒚〉

‖𝒙𝑘. 𝒚‖ (2.21)

Trong công thức này, 𝒙𝑘 là véc-tơ cột chứa 𝑁 giá trị của POI thứ 𝑘 trong 𝑅 điểm POIs của dữ liệu, với 𝒚 là véc-tơ nhãn đầu ra tương ứng. Nếu các vector 𝒙𝑘 và 𝒚 vuông góc với nhau, giá trị của (2.21) bằng 0 có nghĩa là giữa chúng không mối tương

66

quan, ngược lại khi góc giữa chúng nhỏ dần, sự tương quan giữa hai vector này tăng dần và giá trị lớn nhất là 1 khi chúng hoàn toàn tương quan.

Quá trình lựa chọn các POIs dựa trên GSO sử dụng biểu thức (2.21) định lượng mức độ quan hệ của các POIs với giá trị lối ra. Điểm POI được lựa chọn đầu tiên có giá trị cosine lớn nhất, tương ứng với POI có tương quan lớn nhất với nhãn đầu ra. Các POI tiếp theo được lựa chọn thông qua quá trình sau được lặp lại cho đến khi đủ số POI cần chọn: (1) Các đặc trưng còn lại và giá trị lối ra được ánh xạ sang không gian nhân của các POIs đã được chọn. (2) đặc trưng có trị cosine lớn nhất với lối ra được đưa vào tập các POIs được chọn [73].

Thuật toán 2.4:Lựa chọn số POIs cho VMD mode

Đầu vào:

Tập dữ liệu chứa các VMD mode tương ứng của các vết điện năng tiêu thụ: 𝑋𝑞 = {𝒙𝑖𝑗, 𝑐𝑖}; 𝑖 = 1: 𝑁𝑝; 𝑗 = 1: 𝑁, 𝑐𝑖 ∈ {𝑇ậ𝑝 𝑛ℎã𝑛 𝑐ủ𝑎 𝑣ế𝑡 đ𝑖ệ𝑛 𝑛ă𝑛𝑔 𝑡𝑖ê𝑢 𝑡ℎụ}; 𝑁𝑝: số vết điện năng tiêu thụ; 𝑁 là độ dài của một vết điện năng tiêu thụ.

Số lần lặp tối đa: 𝑀𝑎𝑥𝑖𝑡𝑒𝑟 ;/ số POIs tối đa được kiểm tra

Đầu ra: Số điểm POIs được chọn: 𝐷

1: Khởi tạo số lần lặp hay số điểm POIs 𝑑=1 và độ chính xác của SVM: 𝑎𝑐𝑐𝑠𝑣𝑚 = 0 2: Khởi tạo mảng chứa độ chính xác khi huấn luyện SVM: 𝑎𝑐𝑐 = [];

3: While (số lần lặp < 𝑀𝑎𝑥𝑖𝑡𝑒𝑟) do

4: Xác định chỉ số các POIs 𝑖𝑛𝑑𝑒𝑥𝑑 được lựa chọn từ tập 𝑋𝑞 bằng cách thực thi thuật toán GSO với tập dữ liệu 𝑋𝑞 với số POIs chọn là 𝑑.

5: Xây dựng bộ dữ liệu để huấn luyện SVM: 𝑋𝑞𝑑 = {𝒙𝑖𝑗, 𝑐𝑖}; 𝑖 = 1: 𝑁𝑝; 𝑗 ∈ 𝑖𝑛𝑑𝑒𝑥𝑑 6: Huấn luyện SVM với tập dữ liệu 𝑋𝑞𝑑 và xác định độ chính xác 𝑎𝑐𝑐𝑠𝑣𝑚

7: Cập nhật mảng 𝑎𝑐𝑐 = [𝑎𝑐𝑐, 𝑎𝑐𝑐𝑠𝑣𝑚] 8: Tăng số lần lặp lên 1: 𝑑 = 𝑑 + 1 9: End While

10: Trả lại giá trị 𝐷 = argmax 𝑑

(𝑎𝑐𝑐)

Trong quá trình sử dụng GSO để lựa chọn các POIs từ các VMD mode, số lượng 𝐷 POIs cần giữ lại phải được xác định. Do 𝐷 điểm POI được lựa chọn từ GSO sẽ được sử dụng trong giai đoạn huấn luyện xây dựng bộ mẫu bởi thuật toán học máy SVM trong quá trình tấn công mẫu nên cách tốt nhất để xác định 𝐷 POI này là dựa

67

trên độ chính xác của việc phân lớp của SVM đối với tập dữ liệu VMD mode. Điều này có nghĩa là chúng ta có thể thay đổi giá trị của 𝐷 cho đến khi việc huấn luyện SVM cho tập 𝐷 POI chọn từ VMD mode có độ chính xác lớn nhất. Quy trình này được thực hiện thông qua Thuật toán 2.4.

2.4.1.2. Pha lập mẫu

Mục tiêu của pha lập mẫu là xây dựng được một mô hình mô tả điện năng tiêu thụ của thiết bị mẫu cho tất cả các trường hợp có thể có của một giá trị trung gian tấn công ví dụ như giá trị tại lối ra Sbox, hay giá trị rò rỉ điện năng tiêu thụ của điểm này. Việc xây dựng mô hình này được thực hiện bằng cách huấn luyện một mô hình học máy. Mô hình này sẽ được sử dụng để phân lớp các vết điện năng tiêu thụ từ thiết bị tấn công qua đó có thể xác định được khóa của thiết bị tấn công. Các bước chính thực hiện ở pha này như sau:

B1: Người tấn công có được thiết bị mẫu giống với thiết bị cần tấn công.

B2: Lựa chọn 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à mô hình rò rỉ điện năng tiêu thụ của thiết ví dụ như trọng số Hamming hay khoảng cách Hamming.

B3: Thu thập tập vết điện năng tiêu thụ của thiết bị mẫu khi nó thực thi với giá trị trung gian tấn công và gán nhãn cho các vết này. Do người tấn công có thiết bị mẫu, biết được khóa của thiết bị và các bản rõ tương ứng với các vết điện năng tiêu thụ nên nhãn của vết thứ 𝑖 có thể được xác định bởi 𝑐𝑚 = 𝐻𝑊(𝑆𝑏𝑜𝑥(𝑝𝑡𝑖⊕ 𝑘𝑠)), với 𝑝𝑡𝑖 là bản rõ của vết thứ 𝑖 và 𝑘𝑠 là khóa của thiết bị mẫu. Lối ra của Sbox là giá trị 8 bit nên 𝑐𝑚 ∈ {0,1, … ,8}.

B4: Xây dựng tập dữ liệu huấn luyện: Trích chọn POIs của các vết có được ở bước B3 bởi phương pháp VMD-GSO-SVM. Kết quả bước này chỉ là tập các vết điện năng tiêu thụ có gán nhãn như bước B3 trong đó chỉ bao gồm các điểm POIs.

B5: Huấn luyện mô hình điện năng tiêu thụ của thiết bị: Sử dụng tập dữ liệu có được ở bước B4 để huấn luyện một thuật toán học máy, trong trường hợp này là SVM. Bộ phân lớp SVM được phát triển để phân lớp cho hai lớp dữ liệu nên để SVM có thể phân lớp được 9 lớp 𝑐𝑚 ∈ {0,1, … ,8}, kỹ thuật SVM đa lớp ở dạng one-vs-all sẽ được sử dụng. Cụ thể, với 9 lớp thì sẽ có 9 bộ phân lớp SVM nhị phân được huấn luyện, mỗi bộ sẽ tương ứng với một lớp. Bộ phân lớp SVM nhị phân thứ nhất giúp phân biệt lớp 𝑐0 với các lớp không phải 𝑐0, tức là xem một vết điện năng tiêu thụ có thuộc lớp

68

𝑐0 hay không. Các bộ phân lớp SVM nhị phân từ thứ 2 đến 9 hoạt động tương tự như bộ phân lớp SVM thứ nhất. Kết quả cuối cùng được xác định bằng cách xác định lớp mà vết điện năng tiêu tụ rơi vào với xác suất cao nhất.

Kết quả bước này là mô hình học máy SVM đa lớp có thể phân lớp và xác định được xác suất của các vết điện năng tiêu thụ theo 𝑐𝑖 là trọng số Hamming của lối ra Sbox.

2.4.1.3. Pha tấn công

Trong pha tấn công, các vết điện năng tiêu thụ chưa được gán nhãn được thu thập từ thiết bị tấn công sẽ được phân lớp bởi mô hình SVM đã được huấn luyện ở pha lập mẫu để quyết định xác suất các vết điện năng tiêu thụ này thuộc về các lớp 𝑐𝑚 ∈ {0,1, … ,8}. Các giá trị xác suất này được kết hợp với các giá trị khóa giả thiết để xác định ước lượng hợp lý cho mỗi ứng viên khóa giả thiết theo công thức (2.22).

log 𝐿𝑘 ≡ 𝑙𝑜𝑔 ∏ 𝑃𝑆𝑉𝑀(𝑋𝑖|𝑐𝑗) = ∑ log 𝑃𝑆𝑉𝑀(𝑋𝑖|𝑐𝑚) 𝑁𝑎 𝑖=1 𝑁𝑎 𝑖=1 (2.22) Với 𝑐𝑚 = 𝐻𝑎𝑚𝑚𝑖𝑛𝑔 𝑤𝑒𝑖𝑔ℎ𝑡(𝑆𝑏𝑜𝑥(𝑝𝑖, 𝑘)) và 𝑝𝑖 là bản rõ tương ứng với vết điện năng tiêu thụ 𝑋𝑖, 𝑁𝑎 là số vết dùng để tấn công. 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 (2.23) được xem là khóa đúng cần tìm.

𝑘𝑠= 𝑎𝑟𝑔𝑚𝑎𝑥 𝑘∈𝕂

log 𝐿𝑘 (2.23)

Chi tiết các bước trong pha tấn công 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ị mẫu.

B2: Xác định điểm tấn công: Đây là điểm thiết bị xử lý giá trị trung gian tấn công như trong pha lập mẫu.

B3: Thu thập 𝑁𝑎 vết điện năng tiêu thụ của thiết bị cần 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.

B4: Sử dụng mô hình SVM đã đượ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ư (2.24), 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 SVM. Trong pha lập mẫu, SVM được huấn luyện để phân lớp cho 9 nhãn của vết điện năng tiêu thụ nên 𝑚 = 0,1, … ,8.

69 𝑫 = ( 𝑆𝑉𝑀(𝑡1)0 𝑆𝑉𝑀(𝑡1)1 𝑆𝑉𝑀(𝑡1)2 ⋯ 𝑆𝑉𝑀(𝑡1)8 𝑆𝑉𝑀(𝑡2)0 𝑆𝑉𝑀(𝑡2)1 𝑆𝑉𝑀(2)2 … 𝑆𝑉𝑀(𝑡2)8 ⋮ ⋮ ⋮ ⋱ ⋮ 𝑆𝑉𝑀(𝑡𝑁𝑎) 0 𝑆𝑉𝑀(𝑡𝑁𝑎) 1 𝑆𝑉𝑀(𝑡𝑁𝑎) 2 ⋯ 𝑆𝑉𝑀(𝑡𝑁𝑎) 8) (2.24)

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ý (2.23). 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 trọng số Hamming lối ra Sbox của tất cả các bản rõ 𝑝𝑡𝑖 với 𝑖 = 1, … , 𝑁𝑎 cho tất cả các khả năng 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 (2.25). Mỗi phẩn tử được ký hiệu là 𝑝𝑖,𝑗, với 𝑖, 𝑗 là chỉ số cột, hàng mô tả 𝐻𝑊 (𝑆(𝑝𝑡𝑖⊕ 𝑘𝑗)) là trọng số Hamming 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))) (2.25)

- 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 (2.24). Kết quả có được ma trận 𝑆 được biểu diễn bởi (2.26), trong đó mỗi phần tử 𝑠𝑖,𝑗 mô tả xác suất một vết điện nă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 76 - 83)