9. Cấu trúc của Luận án
3.3.2. Tối ưu tham số cho mô hình phân lớp CNNd
Trong kiến trúc CNNd, số lượng các tầng của CNN đã được xác định, tuy nhiên giá trị của các tham số của các tầng vẫn chưa được xác định. Bộ tham số của CNN cần xác định {𝛾1, 𝛾2, 𝛾3, 𝛾4, 𝛿1, 𝛿2} nằm trong một dải rộng. Việc lựa chọn một bộ các tham số trên để khi huấn luyện CNNd cho độ chính xác của việc phân lớp cao tương ứng với việc thử tổ hợp tất cả các tham số trên và lựa chọn bộ tham số cho kết quả tốt nhất. Do không gian các tham số lớn nên cần có một thuật toán tối ưu để tìm kiếm. Hiện nay, các thuật toán tối ưu dựa trên trí tuệ bày đàn được sử dụng thành công trong nhiều lĩnh vực trong đó có việc lựa chọn tham số cho các thuật toán học máy [79]. Do đó, luận án đề xuất sử dụng một thuật toán tối ưu dựa trên hành vi săn mồi của bày sói (GWO) để tìm kiếm bộ tham số tối ưu cho mạng CNNd.
GWO mô phỏng theo hành vi tồn tại và săn mồi của bầy sói xám. Hệ thống phân cấp của loài sói xám được chia thành các cấp 𝛼, 𝛽, 𝛿, 𝜔. Con đầu đàn được gọi là Alpha, dẫn đầu đàn, có nhiệm vụ quyết định về việc săn bắt, nơi ở. Cấp thứ hai trong phân cấp của những con sói xám là Beta. Các Beta là những con sói thường trong đàn dưới quyền Alpha nhưng cũng chỉ huy các con sói cấp thấp khác. Bậc thấp nhất trong bầy sói xám là Omega. Đó là những con sói yếu ớt và phải dựa vào các con sói khác trong đàn. Các con sói Delta phụ thuộc vào Alpha và Beta nhưng chúng trội hơn Omega. Chúng làm nhiệm vụ theo dõi ranh giới lãnh thổ và cảnh báo trong trường hợp có nguy hiểm, bảo vệ và đảm bảo an toàn cho bầy, chăm sóc những con sói yếu, bị thương trong đàn. Ngoài hệ thống cấp bậc xã hội của sói, săn mồi theo bầy còn là một hành vi xã hội đáng chú ý của sói. Theo Mirjalili [80] các giai đoạn chính của việc săn bắt con mồi là: khoanh vùng, rượt đuổi và tấn công con mồi khi nó ngừng di chuyển.
Trong giai đoạn khoanh vùng, bày sói cập nhật vị trí của chúng theo vị trí con mồi và việc cập nhật vị trí có thể mô tả bởi biểu thức (3.11).
97 𝐷⃗⃗ = |𝐶 . 𝑋 𝑝(𝑡) − 𝑋 (𝑡)|
𝑋 (𝑡 + 1) = 𝑋 𝑝(𝑡) − 𝐴 . 𝐷⃗⃗ (3.11) Trong đó 𝑡 là vị trí lặp hiện tại, 𝑋 𝑝 là véc-tơ vị trí của con mồi, 𝑋 là vị trí của sói xám. 𝐴 , 𝐶 là các vector hệ số, 𝐴 = 2𝑎 . 𝑟 1− 𝑎 , 𝐶 = 2. 𝑟 2, với 𝑎 giảm tuyến tính trong từ 2 tới 0 trong suốt quá trình lặp, 𝑟 1, 𝑟 2 là các vector ngẫu nhiên trong khoảng [0,1]. Để mô phỏng theo toán học cách săn mồi của sói xám, giả sử rằng Alpha, Beta và Delta có vị trí tốt hơn đối với vị trí của con mồi. Do đó, ba giải pháp đầu tiên thu được cho đến thời điểm này được coi là tốt nhất và yêu cầu các cá thể tìm kiếm khác (kể cả Omegas) cập nhật vị trí của chúng theo vị trí của các cá thể tìm kiếm tốt nhất. Để mô tả hành vi này, Mirjalili [80] đề xuất các biểu thức trong (3.12). 𝐷⃗⃗ 𝛼 = |𝐶 1. 𝑋 𝛼− 𝑋 | ; 𝐷⃗⃗ 𝛽 = |𝐶 2. 𝑋 𝛽 − 𝑋 |; 𝐷⃗⃗ 𝛿 = |𝐶 3. 𝑋 𝛿 − 𝑋 | 𝑋 1 = 𝑋 𝛼− 𝐴 1. 𝐷⃗⃗ 𝛼 𝑋 2 = 𝑋 𝛽 − 𝐴 2. 𝐷⃗⃗ 𝛽 𝑋 3 = 𝑋 𝛿 − 𝐴 3. 𝐷⃗⃗ 𝛿 𝑋 (𝑡 + 1) = 𝑋 1+ 𝑋 2+ 𝑋 3 3 (3.12)
Trong đó, 𝑋 1, 𝑋 2, 𝑋 3 là vị trí của alpha, beta và delta.
Trong quá trình tấn công con mồi, những con sói xám kết thục cuộc săn bằng cách tấn công con mồi khi nó ngừng di chuyển. Để mô phỏng theo toán học cách tiếp cận con mồi chúng ta giảm giá trị của 𝑎 . Độ biến thiên của 𝐴 giảm theo 𝑎 . Hay 𝐴 là một giá trị ngẫu nhiên trong khoảng [−2𝑎, 2𝑎] trong đó 𝑎 được giảm từ 2 đến 0 trong quá trình lặp. Khi các giá trị ngẫu nhiên của 𝐴 nằm trong [−1,1], vị trí tiếp theo của một cá thể tìm kiếm có thể ở bất kỳ vị trí nào giữa vị trí hiện tại và vị trí của con mồi. Khi |𝐴| < 1 các con sói bắt buộc phải tấn công con mồi, nếu không thì bầy sói sẽ tách ra để tìm kiếm để thăm dò rộng hơn.
Quá trình tìm tham số cho CNNd bởi thuật toán GWO được đề xuất dựa trên thuật toán gốc GWO và được thể hiện bởi Thuật toán 3.1.
98
Thuật toán 3.1: Thuật toán tìm tham số cho CNNd
Đầu vào:
- Số lượng tham số cần tìm: 𝑝𝑜𝑝𝑠𝑖𝑧𝑒 - Số lần lặp tối đa: 𝑀𝑎𝑥𝑖𝑡𝑒𝑟
- Tập vết điện năng tiêu thụ được gán nhãn
Đầu ra:
- Bộ tham số tối ưu 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
Bắt đầu thuật toán:
Chia tập vết thành 02 tập: tập huấn luyện 𝑇𝑟, tập kiểm tra 𝑇𝑒; Khởi tạo bày sói: 𝑋𝑖(𝑖 = 1, … , 𝑝𝑜𝑝𝑠𝑖𝑧𝑒);
Khởi tạo các tham số 𝑎, 𝐴 và 𝐶; 𝐟𝐨𝐫 (mỗi lời giải 𝑋𝑖 trong bày sói) do
Thiết lập một mô hình CNN với các tham số là 𝑋𝑖 Huấn luyện CNN với tập 𝑇𝑟
Tính hàm mục tiêu của lời giải 𝑋𝑖: sử dụng công thức (3.14) để tính độ chính xác phân lớp của CNN với tập 𝑇𝑒.
𝐞𝐧𝐝 𝐟𝐨𝐫 11:
12: 13:
Đặt 𝑋𝛼 là lời giải tốt nhất Đặt 𝑋𝛽 là lời giải tốt thứ hai Đặt 𝑋𝛿 là lời giải tốt thứ ba 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: while (số lần lặp < 𝑀𝑎𝑥𝑖𝑡𝑒𝑟) do
for (mỗi lời giải 𝑋𝑖 trong bày sói) do
Cập nhật vị trí của 𝑋𝑖 theo công thức (3.12)
Thiết lập một mô hình CNN với các tham số là 𝑋𝑖 Huấn luyện CNN với tập 𝑇𝑟
Tính hàm mục tiêu của lời giải 𝑋𝑖: sử dụng công thức (3.14) để tính độ chính xác phân lớp của CNN với tập 𝑇𝑒.
end for
Cập nhật 𝑎, 𝐴, 𝐶 Cập nhật 𝑋𝛼, 𝑋𝛽, 𝑋𝛿 Tăng số lần lặp lên 1
End while
Return: 𝑋𝛼 là tham số tốt nhất cho CNNd
99
Biểu diễn lời giải:
Các tham số của CNNd có ảnh hưởng lớn đến độ chính xác phân lớp của nó. Bộ tham số của CNNd cần xác định {𝛾1, 𝛾2, 𝛾3, 𝛾4, 𝛿1, 𝛿2} nằm trong một dải rộng. Do đó, thuật toán GWO được sử dụng để xác định các tham số trên dựa trên hàm mục tiêu là độ chính xác của CNNd. Mỗi lời giải trong không gian tìm kiếm của bày sói chứa 6 giá trị tương ứng với các tham số của CNNd. Thuật toán GWO được áp dụng cho các bài toán mà không gian tìm kiếm là liên tục cho mỗi cá thể. Mặt khác, các tham số của CNN là các giá trị rời rạc, do đó luận án sử dụng một hàm chuyển đổi để chuyển các vector số thực mô tả vị trí của mỗi cá thể trong không gian tìm kiếm thành vector số nguyên bởi công thức (3.13).
𝑦𝑖𝑗 = ⌊𝑏𝑗 ∗𝑥𝑖𝑗 − 𝑙𝑏
𝑢𝑏 − 𝑙𝑏+ 0.5⌋ ; 𝑗 = 1, … , 𝑛
(3.13)
Trong đó 𝑥𝑖𝑗 là số thực mô tả vị trí của 𝑋𝑖, 𝑦𝑖𝑗 là vector số nguyên mô tả vị trị của 𝑋𝑖, 𝑏𝑗 số cột của 𝑋𝑖, 𝑙𝑏 và 𝑢𝑏 là giới hạn dưới và trên của không gian tìm kiếm.
Lựa chọn hàm mục tiêu:
Thuật toán tối ưu tìm tham số được bắt đầu với bước khởi tạo ở đó số lượng cá thể tìm kiếm được khởi tạo bởi một số ngẫu nhiên mô tả vị trí của nó. Số lượng các vị trí tương ứng với số tham số của CNNd cần được tối ưu bởi GWO. Mỗi cá thể tìm kiếm tương ứng với một lời giải chứa các giá trị là các tham số của CNN. Sau quá trình khởi tạo, các thế hệ mới của quần thể tìm kiếm đầu tiên được tạo ra trong quá trình lặp của thuật toán tìm kiếm. Để đánh giá hiệu quả của mỗi lời giải, một hàm mục tiêu cần được định nghĩa cho quá trình tối ưu. Trong phương pháp đề xuất, độ chính xác phân lớp của CNNd trên tập kiểm tra theo công thức (3.14) được sử dụng là hàm mục tiêu. Trong đó |𝑍| là số lớp cần phân loại, 𝑇𝑃𝑖 là tổng số vết thuộc lớp 𝑖 được phân lớp đúng và 𝐹𝑃𝑖 là tổng số vết thuộc lớp 𝑖 được phân lớp sai.
𝑃𝑟𝑒 = ∑ 𝑇𝑃𝑖 |𝑍| 𝑖=1
∑|𝑍|𝑖=1𝑇𝑃𝑖+ 𝐹𝑃𝑖 (3.14)
Kết quả thực hiện: Kết quả thực nghiệm sử dụng GWO để tìm bộ tham số cho CNNd với bộ dữ liệu ASCAD, trong đó có 45000 vết dùng trong pha huấn luyện, 5000 vết cho pha kiểm tra, được cho bởi Bảng 3.2.
100
Bảng 3.2. Tham số của CNNd cho bởi GWO
Tên tham số Giá trị trước GWO Giá trị sau GWO
Số bộ lọc tầng CONV1: 𝛾1 1 − 10 4 Kích thước bộ lọc tầng CONV1: 𝛾2 1 − 10 3 Số bộ lọc tầng CONV2: 𝛾3 1 − 20 8 Kích thước bộ lọc tầng CONV2: 𝛾4 20 − 100 51 Số tầng tầng nơ-ron ẩn: 𝛿1 1 − 3 2 Số nơ-ron / tầng:𝛿2 1 − 50 10 3.3.3.Đánh giá bộ phân lớp CNNd
Bảng 3.3. So sánh kiến trúc và tham số các bộ phân lớp
CNNP[32] CNNz[33] CNNd (đề xuất)
Phương pháp xây
dựng
Dựa trên kiến trúc CNN VGG16 sử dụng trong xử lý ảnh
Dựa trên kỹ thuật trực quan hóa vector
trọng số
Dựa trên đặc điểm dữ liệu đầu vào, áp dụng kỹ thuật tối ưu GWO để tìm tham
số. Số tầng tích chập - 5 tầng: số bộ lọc tương ứng (64,128,256,512,512) , kích thước 11, - Average pooling sau mỗi tầng tích chập - 1 tầng: số bộ lọc 4, kích thước 3. - Average pooling (2,2) sau mỗi tầng tích chập 2 tầng: - Tầng 1: số bộ lọc 4, kích thước 3, sử dụng dialation convolution với 𝑑 = 1, 𝐿1 − 𝑅𝑒𝑔𝑢𝑙𝑎𝑟𝑖𝑧𝑎𝑡𝑖𝑜𝑛 - Tầng 2: số filter 8, kích thước 51. - Average pooling (2,2) sau mỗi tầng tích chập. Mô-đun
HO-SCA Không có Không có Có
Số tầng kết nối đầy đủ 2 tầng: 4096 nơ-ron / tầng 2 tầng: 10 nơ- ron/tầng 2 tầng: 10 nơ-ron/tầng Tầng đầu ra 256 nơ-ron, hàm kích hoạt 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 256 nơ-ron, hàm kích hoạt 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 256 nơ-ron, hàm kích hoạt 𝑠𝑜𝑓𝑡𝑚𝑎𝑥
101
Bảng 3.3 liệt kê kiến trúc và các tham số của một số bộ phân lớp sử dụng để phân lớp cho các vết điện năng tiêu thụ của thiết bị mặt nạ. CNNd có kiến trúc được xây dựng dựa trên đặc điểm dữ liệu đầu vào là các POIs của vết điện năng tiêu thụ và các tham số của nó được tối ưu bởi thuật toán GWO. Do đó, so với CNNP[50] và CNNz[52], CNNd được xây dựng theo nguyên tắc phù hợp hơn, các tham số được tối ưu thông qua thực nghiệm do đó có thể tăng được hiệu quả tấn công đối với bài toán tấn công cụ thể lên thiết bị mặt nạ. Hơn nữa, về mặt kiến trúc, CNNd có kiến trúc nhỏ hơn nhiều với CNNP và ở mức tương đương với CNNz.
Đề xuất phương pháp tấn công cho thiết bị có mặt nạ CNN-D
Thông qua việc xây dựng bộ phân lớp CNNd, luận án đề xuất áp dụng CNNd vào phương pháp tấn công mẫu sử cho thiết bị có phòng vệ bằng phương pháp mặt nạ gọi là CNN-D với các giả định tấn công và quy trình tấn công được mô tả dưới đây.
3.4.1.Các giả định tấn công
Khi thực hiện tấn công trên thiết bị có mặt nạ, một số giả định sau được đặt ra:
Đối với thiết bị cần tấn công:
- Người tấn công có thể điều khiển thiết bị hoạt động với tập bản rõ đầu vào và biết được tập bản mã đầu ra. Đo được các vết điện năng tiêu thụ trong quá trình thiết bị hoạt động.
Đối thiết bị lập mẫu (thiết bị để mô hình điện năng tiêu thụ):
- Là bản sao của thiết bị cần tấn công
- Người tấn công có thể điều khiển thiết bị hoạt động với tập bản rõ đầu vào và biết được tập bản mã đầu ra. Đo được các vết điện năng tiêu thụ trong quá trình thiết bị hoạt động.
- Người tấn công có thể xây dựng bộ mẫu cho các khóa của thiết bị. Điều này có nghĩa người tấn công biết khóa của thiết bị mẫu và có thể thay đổi nó cho quá trình mã hóa.
- Người tấn công không biết chi tiết thuật toán mật mã được cài đặt như thế nào mà chỉ biết được thuật toán được cài đặt và sơ đồ mặt nạ có thể được sử dụng. - Người tấn công không biết được thiết kế và giá trị của bộ phát số ngẫu nhiên trong thiết bị. Điều này có nghĩa là người tấn công không biết được các giá trị mặt nạ được sử dụng trong thiết bị.
102
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.