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).
�⃗ = |� . � �(�) − �
(�)|
� (� + 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ếmtố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.
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ải �� trong 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) để tính độ chính 9: xác phân lớp của CNN với tập ��.
10: ��� ���
11: Đặt �� là lời giải tốt nhất 12: Đặt ��là lời giải tốt thứ hai 13: Đặt �� là lời giải tốt thứ ba
14: 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
Kết thúc thuật toán 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
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.
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 �������
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ị.
Tập vết tấn công (chưa gán nhã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
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 ��)
∈�
� (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.