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ật toán 1.1:
24
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ó
25
đượ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.
26
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ử
27
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