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).
⃗
=| . ()− ()|
(3.11)
( +1)= ()− .⃗
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)=
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ởiThuật toán 3.1.
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: Bắt đầu thuật toán:
2: Chia tập vết thành 02 tập: tập huấn luyện , tập kiểm tra ;
3: Khởi tạo bày sói: ( = 1, … ,);
4: Khởi tạo các tham số , và ;
5: (mỗi lời giảitrong bày sói) do
6: Thiết lập một mô hình CNN với các tham số là
7: Huấn luyện CNN với tập
8: Tính hàm mục tiêu của lời giải : sử dụng công thức (3.14)
9: xác phân lớp của CNN với tập .
10:
11: Đặtlà lời giải tốt nhất
12: Đặtlà lời giải tốt thứ hai
13: Đặtlà lời giải tốt thứ ba
14: while (số lần lặp <) do
15: for (mỗi lời giải trong bày sói) do
16: Cập nhật vị trí củatheo công thức (3.12)
17: Thiết lập một mô hình CNN với các tham số là
18: Huấn luyện CNN với tập
19: Tính hàm mục tiêu của lời giải : sử dụng công thức
20: chính xác phân lớp của CNN với tập .
21: end for 22: Cập nhật , , 23: Cập nhật , , 24: Tăng số lần lặp lên 1 25: End while 26:
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).
= ⌊
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.
=
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,
Bảng 3.2. Tham số của CNNd cho bởi GWO Số bộ lọc tầng CONV1: 1 Kích thước bộ lọc tầng CONV1: 2 Số bộ lọc tầng CONV2: 3 Kích thước bộ lọc tầng CONV2: 4 Số tầng tầng nơ-ron ẩn: 1 Số nơ-ron / tầng: 2 3.3.3. Đánh giá bộ phân lớp CNNd Phương pháp xây dựng Số tầng tích chập Mô-đun HO-SCA
Tầng đầu ra
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ị.
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ênHì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õ
Sbox
Tập các vết điện năng tiêu thụ được gán nhãn zi (i=1:m) Lối ra Sbox zm Thu thập các vết điện năng tiêu thụ Pha tấn công Huấn luyện CNNd
Tập vết tấn công (chưa gán
nhãn)
Hình 3.7. Sơ đồ tấn công cho thiết bị mặt nạ CNN-D 102
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( | )
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.
=
(( ) 0
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
= ( ( 2
⋮ (
- 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 = .
=
⋮ (
(
- 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ẻ