9. Cấu trúc của Luận án
1.5.1. Dữ liệu thu thập từ thiết bị thực tế
1.5.1.1. Hệ thống đo vết điện năng tiêu thụ
Dữ liệu thực tế là vết điện năng tiêu thụ thu được trong quá trình thuật toán AES- 128 được thực thi trên vi điều khiển Atmega8515 dưới dạng thẻ thông minh. Để thu thập được các vết, luận án sử dụng sơ đồ đo tổng quát dựa trên Hình 1 . 5 với
các thiết bị thực tế được thể hiện trên Hình 1.9, cụ thể như sau:
Thiết bị cần tấn công: Đây là thiết bị mật mã cần tấn công hoặc đánh giá độ an toàn. Thiết bị mật mã thường cung cấp một giao diện truyền thông với PC. Thiết bị mật mã sử dụng trong luận án là thẻ thông minh Atmega8515, được sử dụng để thực thi thuật toán AES-128 ở chế độ ECB. Các tham số, sơ đồ mạch của thẻ thông minh được cho bởi Bảng 1.2 và Hình 1.10. Truyền thông giữa thẻ thông và thiết bị điều khiển (máy tính) được thực hiện thông qua mô-đun Sakura-G/W [70] thông qua giao tiếp USB.
Bảng 1.2. Các tham số của thẻ thông minh Atmega8515
Tham số Giá trị
Giao thức truyền T =0
Tần số clock 3,5712
PC
-Điều khiển hoạt động của thiết bị tấn công (smartcard)
-Nhận vết điện năng tiêu thụ từ Osciloscope và lưu các vết điện năng tiêu thụ -
-Thực hiện tấn công dựa trên các vết điện năng tiêu thụ
Osciloscope- để đo vết điện năng tiêu thụ
Phần mềm điều khiển
Các file chứa vết điện năng tiêu thụ -Thiết bị tấn công: smartcard ATmega8515 Nguồn cấp Hệ các thiết bị tấn công - Môi trường phần cứng: Sakura G/W -Thiết bị tấn công: smartcard
Hình 1.11. Sơ đồ mạch các điểm đo điện năng tiêu thụ của thẻ thông minh
Máy hiện sóng số (Oscilloscope): được sử dụng để đo các vết điện năng tiêu thụ dưới dạng điện áp (điểm đo J4 trên Hình 1.11) trên điện trở được nối với thiết bị tấn công ở phía chân đất (GND). Luận này sử dụng máy hiện sóng Tektronix DPO3052
có các tham số thỏa mãn yêu cầu để thực hiện tấn công phân tích điện năng tiêu thụ như đã chỉ ra trong [35] và được mô tả trên Bảng 1.3.
Máy tính (PC): Máy tính điều khiển quá trình hoạt động thiết bị cần tấn công, đo và lưu vết điện năng đo được từ máy hiện sóng số. Máy tính có đủ khả năng tính toán, truyền thông với thiết bị mật mã và máy hiện sóng. Do vậy, không có đòi hỏi đặc biệt nào đối với thành phần này.
Bảng 1.3. Các tham số của máy hiện sóng Tektronix DPO3052
Tham số Giá trị
Băng thông 500 Mhz
Số kênh 02
Tần số lấy mẫu tối đa 2,5 Ghz
Số mẫu tối đa/tín hiệu đo 5.000.000
Chế độ Trigger Tự động, hay thủ công
Giao diện kết nối USB 2.0
1.5.1.2. Phần mềm điều khiển và quy trình đo vết điện năng tiêu thụ
Để điều khiển hoạt động của thẻ thông minh và đo các vết điện năng tiêu thụ trong quá trình nó thực thi thuật toán mật mã, luận án đã xây dựng một phần mềm gọi là DPA-M. Kịch bản giao tiếp của DPA-M và thiết bị tấn công cho bởi Hình 1.12 và giao diện phần mềm cho bởi Hình 1.13.
Hình 1.12. Quy trình đo vết điện năng tiêu thụ
Hình 1.13. Giao diện phần mềm DPA-M 1.5.1.3. Định dạng bộ dữ liệu
Bộ dữ liệu thu được ký hiệu là ACT-TRACES bao gồm 50.000 bản rõ và tương ứng là 50.000 vết điện năng tiêu thụ, mỗi vết có độ dài 85.000 mẫu (điểm) đo được trong quá trình thẻ thông minh thực thi AES-128 ở chế độ ECB với khóa bí mật:
“63 28 119 197 168 110 90 241 25 164 7 63 81 253 174 167” được minh họa bởi Hình
X
Hình 1.14. Bộ dữ liệu ACT-TRACES 1.5.2. Dữ liệu từ các nguồn đã công bố
DPA-V4: Bộ dữ liệu vết điện năng tiêu thụ được cung cấp bởi cuộc thi
DPAcontest v4. Các vết được đo khi AES được mặt nạ thực thi trên thẻ thông minh Atmega8515. Tuy nhiên, khi biết giá trị mặt nạ thì đây tương đương với trường hợp AES cài đặt không có chống tấn công DPA. Các vết đo trong quá trình S-hộp thực hiện phép thế: ����(��+ �∗) ⊕ � với � đã biết [71]. Số lượng vết: 100000. Dữ liệu vết được tải tại: http://www.dpacontest.org/v4.
ASCAD: Đây là bộ dữ liệu được công khai tại: https://github.com/ANSSI-
FR/ASCAD. Các trace được đo khi thuật toán AES -128 có cài đặt chống tấn công DPA bằng phương pháp mặt nạ. Bộ dữ liệu này được xây dựng nhằm các nghiên cứu có thể so sánh kết quả được với nhau giống như tập dữ liệu MINST trong xử lý ảnh. Tổng số vết có là 60000, trong đó 50000 vết được dùng trong quá trình xây dựng mẫu hay huấn luyện và 10000 vết được sử dụng để kiểm tra. Mỗi vết có độ dài 700 mẫu tương ứng với AES thực thi phép thế S-hộp thứ 3 của vòng thứ nhất.
Kết luận chương 1
Tấn công phân tích điện năng tiêu thụ dựa trên việc khai thác mối quan hệ giữa tập vết điện năng tiêu thụ của thiết bị với dữ liệu thiết bị xử lý. Dựa trên cơ sở này, Chương 1 đã trình bày quy trình của các tấn công phân tích điện năng tiêu thụ, các giải pháp tấn công khác nhau đối với cả thiết bị không có phòng vệ và có phòng vệ. Ngoài ra, các tham số đánh giá hiệu quả tấn công, sơ đồ đo vết điện năng tiêu thụ và các bộ dữ liệu vết điện năng tiêu thụ cũng được mô tả. Căn cứ vào các giải pháp tấn công cơ bản trong được trình bày trong chương này luận án sẽ đề xuất các giải pháp tấn công hiệu quả và sẽ được trình bày trong các chương 2 và chương 3.
PHƯƠNG PHÁP TẤN CÔNG CHO THIẾT BỊ KHÔNG PHÒNG VỆ
Trong chương này luận án trình bày các đề xuất liên quan đến việc giảm nhiễu và lựa chọn POIs cho các tấn công phân tích điện năng tiêu thụ lên thiết bị không có phòng vệ ở hai dạng là tấn công không bản mẫu và tấn công mẫu. Đối với dạng tấn công không bản mẫu luận án đề xuất phương pháp tấn công VMD-CPA và đối với tấn công mẫu là phương pháp tấn công VMD-GSO-SVM. Hiệu quả của hai phương pháp trên đều nhằm làm giảm số lượng vết điện năng tiêu thụ cần sử dụng để khôi phục khóa đúng của thiết bị. Nội dung của chương này đã được công bố trên các công trình CT01, CT04 và CT02.
Đặt vấn đề
Các phương pháp tấn công phân tích điện năng tiêu thụ đối với thiết bị không có phóng vệ gồm hai dạng chính là tấn công không bản mẫu và tấn công mẫu. Hiệu quả của các tấn công này phụ thuộc nhiều vào hhiễu trên vết điện năng tiêu thụ. Hiện tại các nghiên cứu về giảm nhiễu cho vết điện năng tiêu thụ tập trung vào các phương pháp chính là lấy trung bình các vết [3], sử dụng các bộ lọc [37] [38] [39] [40] hay sử dụng biến đổi Wavelet [41] [42]. Hầu hết các phương pháp này đều dựa trên sự hiểu biết về tín hiệu và nhiễu, cũng như gặp khó khăn trong việc xây dựng các tham số cho bộ lọc hay biến đổi Wavelet. Do đó, trong chương này luận án đề xuất áp dụng kỹ thuật phân tích mode biến phân (VMD) nhằm giảm nhiễu cho các vết điện năng tiêu thụ. Hơn nữa, khi áp dụng VMD cho vết điện năng tiêu thụ, người tấn công có thể lựa chọn được phần điện năng tiêu thụ có ích và loại bỏ các phần điện năng tiêu thụ khác trên vết. Bằng cách áp dụng kỹ thuật VMD để loại nhiễu và lựa chọn phần điện năng tiêu thụ có ích trên vết, chương này đề xuất phương pháp tấn công không bản mẫu gọi là VMD-CPA nhằm giảm số vết điện năng tiêu thụ để khôi phục khóa đúng của tấn công. Mặt khác, để nâng cao hiệu quả của tấn công mẫu thì ngoài việc giảm nhiễu trên vết thì việc lựa chọn POIs trên vết cũng đóng vai trò quan trọng đối với hiệu quả tấn công. Các phương pháp lựa chọn POIs hiện tại như phương pháp lọc
[5] [49] [50] [26] [51], phương pháp giảm chiều dữ liệu [52] [53], phương pháp dựa trên học máy [47] đều chưa đánh giá khả năng thực hiện trên vết điện năng tiêu thụ có nhiễu, chưa có cơ chế xếp hạng độ quan trọng của POIs, chưa xem xét đến sự phù hợp của phương pháp chọn POIs với thuật toán học máy được sử dụng trong tấn công. Nên trong chương này luận án cũng đề xuất phương pháp tấn công mẫu gọi là VMD-
GSO-SVM với kỹ thuật lựa chọn POIs mới có thể giảm nhiễu cho vết và trích chọn được các điểm POIs quan trọng nhất trên vết dựa trên việc kết hợp các kỹ thuật VMD, GSO và SVM.
VMD và ứng dụng
2.2.1. Kỹ thuật phân tích mode biến phân
Kỹ thuật phân tích mode biến phân (VMD) là phương pháp để phân tích thành các tín hiệu con, còn gọi là các mode, được đề xuất bởi Dragomiretskiy and Zosso [46] năm 2014. VMD xác định tần số trung tâm và băng thông của mỗi mode bằng cách tìm kiếm một lời giải tối ưu cho một mô hình biến phân để các mode có thể tách biệt nhau về mặt tần số. VMD thực hiện bằng cách xây dựng bài toán biến phân và giải bài toán biến phân đó.
a. Xây dựng bài toán biến phân
Một tín hiệu �(�) được phân tích thành � mode ��(�) với � = 1,2, … , �, mỗi mode là một tín hiệu có băng thông hạn chế và có một tần số trung tâm. Trước hết,
tín hiệu giải tích của mỗi mode, ((((((((((((((( (�) + ( �) ∗
�
��
(�)) với �(�) là hàm Dirac, được biểu diễn bởi một hàm giá trị phức và không có thành phần tần số âm, được tạo ra bởi biến đổi Hilbert để phổ của chúng là đơn hướng. Kết đến, giải điều chế tín hiệu trên về dạng tín hiệu băng cơ sở tương ứng bằng cách nhân tín hiệu giải tích của các mode với một số mũ, [((((((((((((((( (�) + ( � )
∗ �
��
(�))] ∗ �−�������������� � ��. Cuối cùng, băng thông tín hiệu của mỗi mode được ước lượng bằng cách tính bình phương 2-norm đạo hàm của tín hiệu giải tích đã được giải điều chế. Bài toán biến phân có ràng buộc được xây dựng như sau:
� � � 2 min {∑ ‖[((((((((((((((( (�) + ) ∗ ��(�)] �−�������������� � ��‖ } ��,�� �� �� 2 =1 � Với ràng buộc: ∑���(�) = �(�) (2.1) Trong đó, {��} ≔ {�1, �2, … , ��} là tập hợp tất cả các mode, {{{{{{{{{{{{{{{ �} ≔ { { { { { { { { { { { { { {
{ , , … , } là tần số trung tâm của mỗi mode, ∑ ≔ ∑ là tổng của các
1 2 � � �=1
mode, 2-norm được ký hiệu là ‖�(�)‖� 2 =< �(�), �(�) > =
2
� �
� �
∞
∫−∞ �∗(�)�(�) ��.
Bằng cách sử dụng một hằng số phạt � và các nhân tử Langrangian �(�), bài boán biến phân có ràng buộc (2.1) được chuyển về bài toán không có ràng buộc
(2.2). Trong đó thành phần thứ hai được đưa vào để đảm bảo độ chính xác việc khôi phục tín hiệu trong trường hợp có nhiễu Gauss, và ở trong thành phần thứ ba các nhân tử Lagrangian được đưa vào để thực thi điều kiện của bài toán có ràng buộc.
ℒ{��(�), ��, �(�)} � 2 � 2 � � = � ∑ ‖ [(� (�) + ) ∗ ��(�)] �−����‖ + ‖�(�) − ∑ ��(�)‖ �� �� 2 =1 � �=1 2 � + 〈�(�), �(�) − ∑ ��(�)〉 =1 � (2.2)
Phương pháp ADMM (Alternating Direction Method of Multipliers) được sử dụng để cập nhật các giá trị ��+1, ��+1, à� ��+1 và tìm điểm “yên ngựa”
của � � �
Lagrangian mở rộng trên. Bài toán tìm giá trị của ��+1 có thể được biểu diễn bởi công thức (2.3) như sau:
� � 2 ���+1 = ������ {� ‖[(� (�) + ) ∗ �� (�)] �−����‖ ��∈� �� �� 2 2 �(�) + ‖�(�) − ∑ ��(�) + 2 ‖ } � 2 (2.3)
Trong đó ��tương ứng với ��+1 và ∑ � (�) tương ứng với ∑ ��+1(�).
� � � � �
Công thức (2.3) có thể được chuyển đổi từ miền thời gian sang miền tần số (2.4)
bởi biến đổi Parseval Fourier:
2 ����+1 = ������{� ‖�� [(1 + ���(� + � )) . � � �� (� + � )]‖� ���,��∈� 2 ��(�) + ‖��(�) − ∑ ���(�) + ‖2 } 2 2 � (2.4)
Chúng ta thay thế � của thành phần thứ nhất với − � �để có được công thức
(2.5) như sau:
� �
���+1 = ������{�‖�(� − � )[(1 + ���(�)). �� (�)]‖2 � � � 2 ���,��∈� ��(�) + ‖��(�) − ∑ ���(�) + ‖2 } 2 2 � (2.5) sau :
Công thức (2.5) được chuyển về tích phân trong khoảng tần số không âm như
∞ 2 ���+1 = � ������{∫ 4�(� − � )2�|�� (�)|� ���,��∈� 0 2 ��(�) + 2 |��(�) − ∑ ���(�) + 2 | ��������������� � (2.6)
Tại bước này lời giải cho bài toán tối ưu (2.6) như sau:
��(�) − ∑�≠����(�) + (�(�)/2)
����+1(�) =
1 + 2�(� � − � ) (2.7)
Tương tự vậy, bài toán tìm giá trị cho tần số trung tâm cũng được chuyển về miền tần số bởi công thức (2.8).
∞
���+1 = ������ {∫ (� − � )� 2�|�� (�)|2��}}
�� 0 (2.8)
Giá trị các tần số trung tâm được cập nhật như sau:
∞ 2
∫ �|���(�)| ���������������
���+1 = 0∫∞|�� (� )| ��������������� 2 0 �
Trong đó, ���+1(�) tương ứng với bộ lọc Wiener của dư lượng hiện tại ��(�) − ∑�≠����(�), ��+1 là tần số trung tâm của phổ tần số của mode hiện tại, và phần thực của biến đổi Fourier của {���(�)} là {��(�)}.
Nói tóm lại thuật toán VMD cập nhật tất các VMD mode đồng thời ở trên miền tần số và sau đó chuyển về miền thời gian bằng biến đổi Fourier. Quá trình thực hiện của VMD được mô tả bởi Thuật toán 2.1.
� � � �
Thuật toán 2.1: VMD
Đầu vào: Tín hiệu theo thời gian �(t)
Đầu ra: Các VMD mode
1: Khởi tạo: {��1}, {�1}, � = 0 � � 2: Lặp 3: � � ← + 1 4: ��� � = 1: � �� Cập nhật ��: theo công thức (2.7) Cập nhật ��: theo công thức (2.9) End for 5: Cập nhật �: ���+1(�) ← ���(�) + �[��(�) − ∑����+1(�)] � ‖���+1−���‖2 6: Đến khi: ∑� � �2 < � ‖���‖2 �2
c. Lựa chọn tham số cho VMD
Trước khi thực hiện phân tách tín hiệu thành các VMD mode, các tham số của VMD, đó là: �: số VMD mode, �: hằng số phạt, �: tốc độ cập nhật, �: điều kiện hội tụ cần được xác định. Trong đó � và � có ảnh hưởng lớn đến việc phân tách tín hiệu gốc thành các VMD mode và nó phụ thuộc vào từng dạng tín hiệu được phân tách, do đó luận án đề xuất sử dụng Thuật toán 2.2 để xác định các tham số này. Các tham số còn lại được được lựa chọn là các giá trị được chuẩn hóa bởi [46] trong dải 0: 1� − 6.
Cơ sở của việc lựa chọn tham số � và � để đảm bảo hai yếu tố. Thứ nhất là khả năng bảo tồn tất cả các đặc tính của tín hiệu gốc ở các VMD mode. Mục đích của việc phân tách VMD là tách được các thông tin chứa trong tín hiệu gốc và chúng ta mong muốn rằng các VMD mode có thể chứa tất cả các thông tin của tín hiệu gốc. Tính chất này có thể được xác định thông qua việc xác định độ giống nhau giữa tín hiệu khôi phục từ các VMD mode và tín hiệu hiệu gốc thông qua hệ số số tương quan Pearson. Tín hiệu khôi phục được tính là tổng của tất cả các VMD mode có được sau khi sử dụng VMD để phân tách tín hiệu gốc. Các giá trị của � và � cho hệ số tương quan trên lớn nhất là các giá trị cần lựa chọn. Yếu tố thứ hai là việc phân tách của VMD tránh được sự chồng lẫn về mặt tần số ở các VMD mode. Khi
có đủ số VMD mode được phân tách và do đó các thành phần của tín hiệu có thể bị trộn trong cùng một VMD mode. Khi � lớn, sẽ có nhiều hơn số VMD mode được phân tách và có thể dẫn tới thành phần tín hiệu của một mode có thể nằm trong nhiều VMD mode khác nhau. Do đó, giá trị phù hợp của của số VMD mode cần được lựa chọn sao cho mỗi VMD mode chứa được một dải tần số riêng biệt của tín hiệu gốc. Để xác định được tính chất này có thể thực hiện thao tác đơn giản là so sánh phổ tần số của tín hiệu gốc và phổ tần số của các VMD mode thông qua biểu diễn phổ của chúng nhờ phép biến đổi FFT. Căn cứ vào phân tích này, các bước để thực hiện lựa chọn các tham số � và � của VMD được mô tả bởi Thuật toán 2.2.
Thuật toán 2.2: Lựa chọn tham số cho VMD. Đầu vào: Tập vết điện năng tiêu thụ X
Đầu ra: Tham số � ,
1: Khởi tạo: Dải giá trị cho � �: ���, ����và �: ����, ���, các bước thay đổi