9. Cấu trúc của Luận án
1.4.1. Phương pháp tấn công không có bản mẫu
1.4.1.1. Quy trình thực hiện tấn công không có bản mẫu
Phương pháp tấn công phân tích điện năng tiêu thụ không bản mẫu được thực hiện với các giả định là: người tấn công có được thiết bị tấn công (DUT), biết được thuật toán DUT sử dụng, có thể điều khiển DUT hoạt động và đo được điện năng tiêu thụ của DUT trong quá trình nó thực thi thuật toán mật mã. Thẻ thông minh là một dạng thiết bị có thể thỏa mãn các điều kiện của dạng tấn công này.
Chúng ta giả sử rằng mạch điện của DUT xử lý một chuỗi liên tiếp các hàm ��
tương ứng với dữ liệu là � ∈ �2�. Trong mỗi lần thiết bị thực thi mã hóa, các hàm được xử lý và người tấn công thu thập các vết điện năng tiêu thụ của DUT. Quá trình xử lý của DUT có thể mô tả bởi các ma trận như biểu thức (1.3). Mỗi véc-tơ cột ��
của � thực thi cùng một hàm, và với các dữ liệu vào khác nhau. Đặt ma trận �
chứa các vết ��(�), = 1, … , � � �, = 1, … , � tương ứng với � lần thực thi. Mỗi lần thực thi, ta có một vết điện năng tiêu thụ, tương ứng với một hàng của �.
(1.3)
Phương pháp tấn công không bản mẫu được Kocher và các đồng nghiệp công bố năm 1999 trong [3] chỉ ra rằng có thể tìm được khóa bí mật khi thuật toán mật mã thực thi bằng cách đo điện năng tiêu thụ khi thiết bị thực thi thuật toán. Quy trình tấn công phân tích điện năng tiêu thụ không có bản mẫu, có thể thực hiện bởi các bước từ 1 đến 5 được mô tả dưới đây [35] và thuật toán khôi phục khóa mô tả
bởi Thuậttoán 1.1:
Thuật toán 1.1: Khôi phục khóa trong tấn công không bản mẫu Đầu vào:
��: tập bản rõ � = 1, … , �
��(�) : tập vết đo trong khi thiết bị mã hóa � = 1, … , � �; = 1, … , � ℒ: mô hình điện năng tiêu thụ của thiết bị
Đầu ra:
��: khóa đúng
1: ��� � = 1: � ��
2: ��� � = 1: � ��
3: ℎ�,�= ℒ(�(��, �)); tính điện năng tiêu thụ giả định dựa trên ℒ
4: ��� ��� 5: ������ 6: ��� � = 1: � �� 7: ��� � = 1: � �� 8: ��(�) = (ℎ [1:�],�, �[1:�](�)) 9: ��� ��� 10: ��� ��� 11: ������ �� = ������ (�������(�(�,�))) ∈� �
Bước 1: Đo và lưu các vết điện năng tiêu thụ khi thiết bị thực thi thuật toán mật mã
� lần. Các vết được lưu lại thành ma trận � ∈ ℝ�×�, trong đó � là chiều dài của vết hay số mẫu của một vết điện năng tiêu thụ mà phép đo thu thập được.
Bước 2: Xác định giá trị trung gian của thuật toán mật mã được sử dụng để tấn công hay còn gọi là điểm tấn công. Do mục tiêu của tấn công là tìm khóa của thiết bị nên giá trị trung gian này phải có sự phụ thuộc vào dữ liệu và khóa.
Bước 3: Tính giá trị trung gian giả thiết với các bản rõ đầu vào và tất cả các khóa giả thiết. Trong bước này, người tấn công tính toán các giá trị ��,� ∈ �2�trong đó
��,� =
�(��, ��), � = 1,2, … , � ; � = 1, … , � cho các giá trị khác nhau của bản rõ
��� và khóa giả thiết ��. Kết quả là người tấn công có được ma trận các giá trị trung gian với tất cả các khóa giả thiết � = [��,�].
Bước 4: Tiếp đến, người tấn công ánh xạ giá trị trung gian giả thiết tới giá trị điện năng tiêu thụ giả định tương ứng. Khi đó, người tấn công sử dụng một mô hình điện năng tiêu thụ của thiết bị ℒ để tính toán cho các giá trị trung gian giả thiết ��,�. Mô hình điện năng tiêu thụ phục thuộc vào từng thiết bị và mô hình càng chính xác khả năng thành công của tấn công càng cao. Kết quả của bước này người tấn công có
được ma trận các điện năng tiêu thụ giả định của thiết bị khi thực thi đối với các giá trị trung gian giả định được ký hiệu là � và � = ℎ�,�= ℒ(��,�).
Bước 5: Là bước cuối cùng, người tấn công sử dụng một bộ quyết định được ký hiệu là � để xác định mối quan hệ giữa điện năng tiêu thụ giả định � của các khóa giả thiết và điện năng tiêu thụ thực tế của thiết bị � qua đó có thể tìm được ứng viên khóa đúng nhất. Bộ quyết định này phải có khả năng đo được sự phụ thuộc giữa hai biến ngẫu nhiên hoặc hai tập dữ liệu. Có một số bộ quyết định đã được sử dụng cho trường hợp này trong đó bộ quyết định sử dụng độ lệch các giá trị trung bình và hệ số tương quan Pearson là hai bộ quyết định quan trọng và thường được sử dụng.
Khi tấn công sử dụng bộ quyết định là độ lệch các giá trị trung bình thì tấn công được gọi là tấn công phân tích điện năng tiêu thụ vi sai (DPA) [3] và với bộ quyết định là hệ số tương quan Pearson thì tấn công được gọi là tấn công phân tích điện năng tiêu thụ tương quan (CPA) [34].
1.4.1.2. Tấn công phân tích điện năng tiêu thụ vi sai
Quy trình thực hiện tấn công DPA tuân theo quy trình tấn công không có bản mẫu với bộ quyết định dựa trên độ lệch các giá trị trung bình. Ý tưởng của phương pháp này là với một khóa giả thiết � ∈ � chia các vết điện năng tiêu thụ thành hai nhóm. Nhóm thứ nhất gồm những vết thu được khi thiết bị thực thi giá trị trung gian tấn công có điện năng tiêu thụ giả định bằng �. Nhóm thứ hai gồm những vết thu được khi thiết bị thực thi giá trị trung gian tấn công có điện năng tiêu thụ giả định
≠
. Sau khi chia nhóm, tính độ lệch giữa các giá trị trung bình giữa hai nhóm trên. Theo cách làm như trên, bộ quyết định � được xác định theo biểu thức (1.4). Kết quả sinh ra từ bộ quyết định là một đường mô tả độ lệch của điện năng tiêu thụ trung bình đối với hai tập vết tương ứng với điện năng tiêu thụ giả định là � và ≠ �. Đường mô tả này còn được gọi là vết vi sai.
Với khóa giả thiết đúng, các giá trị trung gian được sử dụng để tính điện năng tiêu thụ giả định là đúng với những giá trị mà thực tế thiết bị xử lý tại thời điểm tấn công. Giả sử mô hình điện năng tiêu thụ ℒ sử dụng là chính xác, khi � → ∞ , điện năng tiêu thụ trung bình của tập thứ nhất tại vị trí tương ứng với thời điểm thiết bị xử lý giá trị trung gian tấn công sẽ có giá trị là � và tương ứng với tập thứ hai là khác với �. Do đó, tại vị trí này, trên vết vi sai sẽ xuất hiện một gai đủ lớn để có thể quan sát được.
Với các thời điểm khác với thời điểm thiết bị thực thi giá trị trung gian tấn công và với những khóa giả thiết sai, giá trị trung gian được sử dụng để tính điện năng tiêu thụ giả định là không đúng với những gì thực tế thiết bị xử lý. Do đó, các vết được xếp vào tập thứ nhất và tập thứ hai là mô tả điện năng tiêu thụ của thiết bị với các giá trị trung gian hoàn toàn ngẫu nhiên. Khi � → ∞ , giá trị trung bình của hai tập trên là giống nhau và độ lệch giữa chúng sẽ tiến tới 0. Vì vậy, vết vi sai sẽ bằng phẳng.
Như vậy, với DPA, khóa đúng có thể được xác định bằng trực quan khi quan sát thấy tồn tại một gai trên vết vi sai hoặc giá trị � để biểu thức (1.4) có giá trị lớn nhất. Hình 1 . 6 mô tả vết vi sai tương ứng với khóa đúng và khóa sai khi mô hình điện năng tiêu thụ giả định ℒ được lựa chọn là giá trị của một bit có trọng số thấp nhất của giá trị trung gian tấn công. Hai tập vết được phân chia theo giá trị của bit này là 1 hay 0. Khi khóa đúng, trên vết vi sai tồn tại một gai khá lớn và với khóa sai vết vi sai là bằng phẳng.
��(�) = (̅̅�̅̅(̅̅�̅)̅)̅| − (̅̅�̅̅(̅̅�̅)̅)̅|
� �ớ� �=1:� à� ℎ�,�=============== � �ớ� �=1:� �à ℎ�,�≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠ (1.4) 1.4.1.3. Tấn công phân tích điện năng tiêu thụ tương quan
Quy trình thực hiện CPA tuân theo quy trình tấn công không có bản mẫu với bộ quyết định dựa trên tính hệ số tương quan Pearson. Ý tưởng của CPA là, với mỗi khóa giả thiết, tính tương quan giữa điện năng tiêu thụ giả định được tính theo mô hình ℒ đối với giá trị trung gian tấn công và điện năng tiêu thụ thực tế tại tất cả các thời điểm. Giá trị tương quan này thường được xác định bởi biểu thức tương quan Pearson như mô tả ở công thức (1.5).
Kết quả của việc tính tương quan cho một khóa giả thiết là vết tương quan. Khi khóa giả là đúng, việc tính toán điện năng tiêu thụ giả định theo mô hình ℒ phù hợp với điện năng tiêu thụ thực tế của thiết bị tại thời điểm thiết bị xử lý giá trị trung gian liên quan đến khóa. Do đó tại vị trí này vết tương quan sẽ xuất hiện một gai.
Còn với các thời điểm khác cũng như với các khóa giả thiết sai, các giá trị trung gian được sử
dụng để tính điện năng tiêu thụ giả định là ngẫu nhiên và không đúng với giá trị trung gian thực tế thiết bị xử lý nên giá trị tương quan giữa chúng sẽ nhỏ và khá tương đồng. Do đó vết tương quan sẽ khá bằng phẳng trong trường hợp này. Như vậy, việc quyết định khó a đúng của CPA có thể được xác định bằng trực quan khi quan sát thấy tồn tại một gai trên vết tương quan hoặc giá trị của � để biểu thức
(1.5) có giá trị lớn nhất. Hình 1.7 mô tả vết tương quan của khóa đúng và sai khi thực hiện tấn công CPA. Với khóa đúng, gai nhọn xuất hiện trên vết tương quan và với khóa sai, vết tương quan khá bằng phẳng.
���(��(�), ℎ�,�)
��(�) = ; �ớ� � = 1: �; � = 1: �
�( ��(�)(ℎ))))))))))))))) �,�) (1.5)
Hình 1.7. Vết tương quan của khóa đúng và sai 1.4.2. Phương pháp tấn công mẫu
1.4.2.1. Quy trình thực thi tấn công mẫu
Trong phương pháp tấn công không bản mẫu, điện năng tiêu thụ giả định được tính từ một mô hình điện năng tiêu thụ dùng chung. Để nâng cao hiệu quả tấn công, mô hình điện năng tiêu thụ của từng thiết bị có thể được xây dựng khi 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, và có toàn quyền kiểm soát nó. Dựa trên ý tưởng này, phương pháp tấn công mẫu được đề xuất bởi [5] [56] [57] [58]. Quy trình tấn công mẫu được thực hiện thông qua hai pha: pha lập mẫu và pha tấn công như được mô tả trên Hình 1.8.
Mục đích của pha lập mẫu là xây dựng được mô hình điện năng tiêu thụ chính xác của thiết bị để mô tả đặc điểm điện năng tiêu thụ của các giá trị trung gian tấn công. Để thực hiện, người tấn công thu thập ��vết điện năng tiêu thụ trong quá trình thiết bị thực thi thuật toán mật mã với khóa đã biết. Tập các vết này được mô tả bởi ��như
(1.6) với ��là vết điện năng tiêu thụ tương ứng với thiết bị xử lý giá trị trung gian
��= ( ,� �).
��≜ {(�1, �1), … , ( (���, ���)}
Sau đó, người tấn công xây dựng mô hình � mô tả đặc trưng điện năng tiêu thụ của thiết bị đối với từng khóa giả thiết (1.7) dựa trên tập trace lập mẫu ��.
�(�|�) ∶ → � (�)
Do giá trị trung gian tại lối ra Sbox, ví dụ như thuật toán AES, có kích thước là 1 byte, do đó sẽ có 256 giá trị cần được lập mẫu. Để giảm bớt số các giá trị cần phải lập mẫu người tấn công có thể lập mẫu thông qua trọng số Hamming của giá trị lối ra Sbox. Khi đó, có 9 giá trị cần phải lập mẫu do trọng số Hamming của một giá trị có kích cỡ 1 byte có thể nhận các giá trị: {0,1,2,3,4,5,6,7,8}. Ta ký hiệu giá trị này là � và � = ��(�). Khi đó, biểu thức (1.7) được viết lại thành dạng �(�|�) ∶ � → �(�).
Sau bước lập mẫu, người tấn công có mô hình mô tả được điện năng tiêu thụ của thiết bị đối với từng giá trị trung gian ��hoặc đối với từng giá trị trọng số Hamming của ��.
Trong pha tấn công các vết thu thập được sẽ được biểu diễn bởi (1.8) với �� ∈ �
là khóa DUT sử dụng nhưng chưa biết và ��; ( = 1,2, … ,� ��) là các bản rõ đã biết.
��≜ (��, {(�1, �1), … , ( �(���, ��)})
Sau khi đã thu thập được các vết từ DUT, người tấn công thực hiện tính xác suất của một vết từ DUT thuộc một các giá trị trung gian tấn công. Việc tính toán này dựa trên mô hình � đã được xây dựng trong pha lập mẫu. Xác suất này cho bởi biểu thức (1.9). Với mỗi vết có một giá trị xác suất tương ứng cho mỗi giá trị trung gian giả thiết ��, �ớ� � ∈ [1, |�|]. Giá trị thứ � của ��mô tả xác suất mà mô hình gán cho giá trị trung gian giả thiết ��khi có được vết ��.
��= �(��), ∈ ∀� [1, ��]
Các giá trị xác suất đối với các giá trị trung gian giả thiết của tất cả các vết tấn công sẽ được kết hợp lại với nhau để tính điểm số cho mỗi giá trị khóa giả thiết. Việc tính điểm số này dựa trên nguyên tắc ước lượng hợp lý lớn nhất MLP. Công thức (1.10) mô tả cách tính điểm số này. Khóa nào có điểm số lớn nhất là khóa đúng nhất.
�� ���[�] ≜ ∏ ��[��] �ớ� ��= �(��, �) =1 � Pha lập mẫu Thiết bị Bản rõ mẫu Khóa
(đã biết) Các giá trị trung
gian Z1 Z2 Tập vết lập mẫu Xây dựng mô hình điện năng tiêu thụ với các Lối ra Sbox Zm giá trị trung gian Đo các vết điện năng tiêu thụ Pha tấn công
Bản rõ DUT ks (chưa biết)
Lối ra Sbox
Tập vết
tấn công Quyết địnhkhóa đúng
Khóa đúng (ks)
Đo các vết điện năng tiêu thụ
Hình 1.8. Phương pháp tấn công mẫu 1.4.2.2. Tấn công mẫu đơn giản
Tấn công mẫu đơn giản là dạng đầu tiên của phương pháp tấn công mẫu được đề xuất bởi Chari và các cộng sự [5]. Tấn công mẫu đơn giản được thực thi khi người tấn công biết được đặc tính phân bố điện năng tiêu thụ của thiết bị mẫu và DUT. Điều
này có nghĩa là sau khi thu thập được vết điện năng tiêu thụ ở dạng � = (�1, �2, … , ��), người tấn công biết được phân bố xác suất của �. Do biết được phân bố này, nên việc xây dựng mô hình điện năng tiêu thụ của thiết bị đơn giản được biểu diễn bởi các đặc trưng của phân bố xác suất của biến �. Một giả định thường được giả định trong tấn công phân tích điện năng tiêu thụ là điện năng tiêu thụ tuân theo phân bố Gauss chuẩn đa biến [35]. Khi đó, mô hình điện năng tiêu thụ của thiết bị mẫu đối với các giá trị trung gian lập mẫu được mô tả bởi hàm mật độ xác suất (1.11)
với (�(�(�(�(�(�(�(�(�(�(�(�(�(�(� ��, ���) là véc-tơ giá trị trung bình và ma trận hiệp phương sai của các vết điện năng tiêu thụ khi thiết bị xử lý đối với giá trị trung gian ��. Khi đó luật quyết định khóa đúng dựa trên (1.10) được viết lại thành (1.12) với �(�|��) là xác suất thiết bị
S-box S-box
xử lý giá trị trung gian � khi biết vết điện năng tiêu thụ �� của nó và �(�) là xác suất thiết bị xử lý giá trị trung gian �.
1 1 ′ � (�( |���, �� ) = exp (−(� � � � � � � � � � � � � �( � − � �) �−1 ( �(� � � � � � � � � � � � � � − �� )) � � 2 � �� � √(2� )� |�� | � (1.11) �� �� = argmax ∏ �(��|�) ∈� � =1 � �� = arg max {∏ �(�|��). �(�) ; = � ( ,� �); = � 1: �} ∈� � =1 � (1.12)
1.4.2.3. Tấn công mẫu sử dụng học máy
Với tấn công mẫu đơn giản, để xây dựng mô hình điện năng tiêu thụ cho các giá trị trung gian tấn công, người tấn công giả định điện năng tiêu thụ tại điểm tấn công phải tuân theo phân bố Gauss chuẩn đa biến. Tuy nhiên, giả định này không đúng với mọi thiết bị, cho mọi trường hợp nên cần một phương pháp tấn công tổng quát hơn có thể thực hiện trên nhiều thiết bị mà không cần ràng buộc trên. Xuất phát từ nguyên tắc thực hiện tấn công mẫu thấy rằng: Trong pha lập mẫu, mô hình điện