9. Cấu trúc của Luận án
2.3.1. Quy trình thực thi tấn công VMD-CPA
Các điều kiện cần để người tấn công VMD-CPA thực thi tấn công khôi phục được khóa đúng của thiết bị bao gồm:
(1) Có thiết bị cần tấn công. Đây là thiết bị có cài đặt thuật toán mật mã AES-128 ở chế độ sách mã điện tử (ECB).
(2) Có khả năng điều khiển được thiết bị hoạt động mã hóa với một tập bản rõ đầu vào được sinh ra ngẫu nhiên.
(3) Có khả năng đo được các vết điện năng tiêu thụ trong quá trình thiết bị thực thi mã hóa.
Gọi 𝐏𝐓 là tập gồm 𝑀 bản rõ, mỗi bản có 16 byte, sinh ngẫu nhiên, mô tả bởi (2.13) được người tấn công sử dụng để tấn công lên một thiết bị mật mã cài đặt thuật toán AES-128 bằng phương pháp VMD-CPA như mô tả trên Hình 2.2. Thiết bị tấn công sử dụng 16 byte khóa ký hiệu {𝐾1, 𝐾2, … , 𝐾16} để mã hóa. Kết quả của tấn công là các giá trị của 16 byte khóa này.
𝐏𝐓 = [𝑝𝑖,𝑙]; 𝑖 = 1: 𝑀; 𝑙 = 1: 16 (2.13) Các bước thực thi tấn công VMD-CPA dựa trên các bước tấn công CPA truyền thống và được thêm vào một bước tiền xử lý các vết điện năng tiêu thụ bởi kỹ thuật VMD như được mô tả trên Hình 2.4 với hai pha chính là:
Pha 1: Xây dựng điện năng tiêu thụ giả định của thiết bị cần tấn công
49 VMD-CPA Thiết bị cần tấn công Tập bản rõ Khóa thiết bị sử dụng Hình 2.3. Tấn công VMD-CPA Tập bản rõ Thiết bị cần tấn công
Đầu vào tấn công
Bước H1: Chọn byte khóa tấn công
Bước H2: Xây dựng tập giá trị
trung gian giả định
Bước H2: Xây dựng tập điện năng
tiêu thụ giả định Bước A1: Xây dựng tập vết điện năng tiêu thụ thực tế Bước A2: Tiền xử lý các tập vết điện năng tiêu thụ bởi VMD
Bước A3: Quyết định khóa đúng
Khóa thiết bị sử dụng
Pha 1: Xây dựng tập điện
năng tiêu thụ giả định Pha 2: Tấn công tìm khóa
Hình 2.4. Quy trình thực hiện tấn công VMD-CPA
a. Các bước thực hiện trong Pha 1: Bước H1: Chọn byte khóa cần tấn công.
- Giả sử byte khóa thứ nhất, ký hiệu là 𝐾1 được chọn để tấn công. Như vậy các khóa giả thiết của byte khóa này là: 𝐾𝑘1 ∈ {0,1,2, … ,255}.
- Khi tấn công cho byte khóa nào thì người tấn công sử dụng bản rõ tương ứng đề phục vụ tính toán trong các bước tiếp theo. Ví dụ, khi byte khóa thứ nhất được tấn công, tập bản rõ sử dụng là 𝐏𝐓𝟏 = [𝑝𝑖,𝑙]; 𝑣ớ𝑖 𝑖 = 1: 𝑀; 𝑙 = 1. Đây là một véc-tơ cột được viết lại là:
50
𝐏𝐓𝟏 = [𝑝𝑖], 𝑖 = 1: 𝑀 (2.14)
Bước H2: Tính toán tập giá trị trung gian giả định.
- Trong bước này, người tấn công phải lựa chọn một giá trị trung gian của thuật toán cần tấn công. Giá trị này phải là kết quả của một phép toán mà thuật toán thực hiện với các giá trị liên quan đến bản rõ đầu vào và khóa. Đối với thuật toán AES giá trị trung gian tại lối ra của Sbox là 𝑧𝑖,𝑘 thường được sử dụng bởi 𝑧𝑖,𝑘 = 𝑆𝑏𝑜𝑥(𝑝𝑖⊕ 𝐾𝑘1).
- Tính tất cả các giá trị trung gian của thuật toán khi thực hiện với từng khóa giả thiết của byte khóa cần tấn công và tập bản rõ tương ứng.
- Gọi 𝒁𝟏 là tập giá trị trung gian giả định khi tấn công byte khóa thứ nhất, 𝒁𝟏 được xác định như sau:
𝒁𝟏 = [𝑧𝑖,𝑘] = 𝑆𝑏𝑜𝑥(𝑝𝑖⊕ 𝑘𝑗); 𝑖 = 1: 𝑀; 𝑘 = 1: 256 (2.15)
Bước H3: Tính tập điện năng tiêu thụ giả định.
- Sử dụng một mô hình điện năng tiêu thụ (Bảng 1.1) để ánh xạ giá trị trung gian giả định thành điện năng tiêu thụ giả định. Trong phương pháp này, luận án chọn mô hình điện năng tiêu thụ là mô hình trọng số Hamming, ký hiệu là HW.
- Kết quả bước này là ma trận 𝐇𝟏 mô tả điện năng tiêu thụ giả định của thiết bị. Mỗi cột của ma trận 𝐇𝟏 mô tả điện năng tiêu thụ giả định của thiết bị đối với một khóa giả thiết.
𝑯𝟏 = [ℎ𝑖,𝑘] = [𝐻𝑊(𝑧𝑖,𝑘)]; 𝑖 = 1: 𝑀, 𝑘 = 1: 256 (2.16)
b. Các bước thực hiện trong Pha 2:
Bước A1: Xây dựng tập vết điện năng tiêu thụ thực tế.
- Điều khiển thiết bị thực thi thuật toán mật mã với tập bản rõ đầu vào 𝐏𝐓 và khóa bí mật gồm 16 byte được lưu sẵn trong thiết bị. Do tập bản rõ gồm 𝑀 bản rõ, nên thiết bị sẽ thực hiện mã hóa 𝑀 lần. Trong quá trình thiết bị thực thi mã hóa với từng bản rõ, thu và lưu lại các vết điện năng tiêu thụ của thiết bị.
- Kết quả bước này người tấn công có được một ma trận T mô tả điện năng tiêu thụ thực tế của thiết bị gồm 𝑀 hàng, mỗi hàng là giá trị của một vết điện năng tiêu thụ có 𝑁 điểm.
51
𝐓 = [𝑡𝑖,𝑗]; 𝑖 = 1: 𝑀; 𝑗 = 1: 𝑁 (2.17)
Bước A2: Tiền xử lý tập vết điện năng tiêu thụ bởi VMD
- Lựa chọn các tham số : 𝑄, số VMD mode và 𝛼, hằng số phạt cho VMD bởi
Thuật toán 2.2.
- Xác định VMD mode (thứ 𝑞) chứa thông tin điện năng tiêu thụ của phần mạch điện thực thi thuật toán mật mã sử dụng Thuật toán 2.3.
- Sử dụng kỹ thuật VMD để phân tách từng vết điện năng tiêu thụ trong tập 𝐓 được phân tách thành 𝑄 VMD mode với các tham số ở trên. Sắp xếp VMD mode thứ 𝑞 của tất cả các vết theo đúng thứ tự của các vết trong tập T thành ma trận 𝐕𝐪 có kích thước (𝑀 × 𝑁).
𝐕𝐪 = [𝑣𝑖,𝑗]; 𝑖 = 1: 𝑀; 𝑗 = 1: 𝑁 (2.18)
Bước A3: Quyết định khóa đúng
- Nguyên tắc quyết định khóa đúng: so sánh điện năng tiêu thụ của tất cả các khóa giả thiết với tập vết điện năng tiêu thụ thực tế. Tương quan giữa điện năng tiêu thụ giả định của một khóa giả thiết với tập điện năng tiêu thụ thực tế được gọi là một vết tương quan. Khóa giả thiết được quyết định là khóa đúng nếu trên vết tương quan của nó chứa giá trị lớn nhất trong tất cả các vết tương quan của các khóa giả thiết.
- Xác định các vết tương quan của tất cả các khóa giả thiết 𝑟𝑘,𝑗; 𝑣ớ𝑖 𝑘 = 1: 256 𝑣à 𝑗 = 1: 𝑁 bởi biểu thức (2.19) với ℎ𝑖,𝑘 là các phẩn tử trong ma trận 𝐇𝟏 và ℎ̅𝑘 là trung bình của ℎ𝑖,𝑘 theo 𝑖.
𝑟𝑘,𝑗 = ∑𝑀𝑖=1(ℎ𝑖,𝑘 − ℎ̅𝑘). (𝑣𝑖,𝑗 − 𝑣̅𝑗) √∑𝑀𝑖=1(ℎ𝑖,𝑘 − ℎ̅𝑘)2. ∑𝑀𝑖=1(𝑣𝑖,𝑗 − 𝑣̅𝑗)2
; 𝑘 = 1: 256 𝑣à 𝑗 = 1: 𝑁 (2.19)
- Xác định khóa đúng (𝑘𝑐) và thời điểm (𝑡∗) thiết bị thực thi khóa này bởi biểu thức sau:
(𝑘𝑐, 𝑡∗) = 𝑎𝑟𝑔𝑚𝑎𝑥 𝑘,𝑗
(𝑟𝑘,𝑗) (2.20)