Tấn công tiêm lỗi trên AES-128 bằng phương pháp tấn công lỗi vi sai

Bạch Hồng Quyết, Phạm Văn Tới  
TẤN CÔNG TIÊM LỖI TRÊN AES-128 BẰNG  
PHƯƠNG PHÁP TẤN CÔNG LỖI VI SAI  
Bạch Hồng Quyết*, Phạm Văn Tới+  
* Phò ng thí nghiệm trọng điểm ATTT  
+ Phòng thí nghiệm trọng điểm ATTT  
Abstract— Thuật toán mã hóa Advanced Encryption toán. Quá trình tiêm lỗi phải được tính toán kỹ lưỡng vì  
phương pháp tiêm lỗi có thể ảnh hưởng đến thiết bị hoặc  
làm hư hỏng thiết bị. Ví dụ nếu tiêm lỗi bằng cách tăng đột  
ngột điện áp quá mức hoặc ép xung quá cao, từ trường và  
điện trường quá mạnh vượt quá giới hạn của các linh kiện  
điện tử bên trong thiết bị sẽ dẫn đến hư hỏng các linh kiện  
đó và làm cho thiết bị ngưng hoạt động. Trong bài báo này  
sẽ giới thiệu phương pháp tấn công lỗi vi sai (DFA) trên  
thuật toán mã hóa AES-128. Mục đích của bài báo là  
nghiên cứu phương pháp tiêm lỗi vào quá trình mã hóa thiết  
bị, từ đó có thể xây dựng thuật toán trích xuất khóa K và  
làm vô hiệu hóa hệ thống an toàn của thiết bị.  
Standard (AES) là chuẩn mã hóa dữ liệu rất phổ biến, được  
sử dụng rộng rãi trên thế giới và được chính phủ Mỹ sử  
dụng để bảo vệ các dữ liệu tuyệt mật. Tuy nhiên, hiện nay  
thuật toán AES đã xuất hiện lỗ hổng dễ bị tấn công và  
những kẻ tấn công bằng nhiều phương pháp khác nhau  
đang tấn công, khai thác lỗ hổng đó. Trong bài báo này sẽ  
giới thiệu phương pháp tấn công lỗi vi sai (DFA) trên thuật  
toán mã hóa AES-128. Mục đích của bài báo là nghiên cứu  
phương pháp tiêm lỗi vào quá trình mã hóa thiết bị, từ đó  
có thể xây dựng thuật toán trích xuất khóa K và làm vô hiệu  
hóa hệ thống an toàn của thiết bị.  
Keywords— Thuật toán mã hóa AES, tấn công kênh kề, II. TỔNG QUAN VỀ THUẬT TOÁN MẬT MÃ AES  
tấn công tiêm lỗi, phân tích lỗi vi sai.  
AES là một thuật toán mã hóa khối thay thế hoán vị.  
Đầu vào của nó và đầu ra bao gồm các chuỗi 128 bit, trong  
khi khóa mật mã của nó là một chuỗi 128, 192 hoặc 256  
I. MỞ ĐẦU  
Thuật toán mã hóa Advanced Encryption Standard  
(AES) là chuẩn mã hóa dữ liệu rất phổ biến, được sử dụng  
rộng rãi trên thế giới và được chính phủ Mỹ sử dụng để bảo  
vệ các dữ liệu tuyệt mật [1, 2].  
bit, tùy thuộc vào mức độ bảo mật cần thiết. Đối với mỗi  
chiều dài khóa, sẽ có 10, 12 hoặc 14 vòng (tương ứng với  
khóa 128, 192 và 256-bit), mỗi vòng chúng được tham số  
hóa bằng khóa vòng (Round key) 128 bit được cung cấp  
bởi lập lịch khóa (Key scheduling) [5, 6]. Tại mỗi thời  
điểm, kết quả tạm thời có thể được biểu diễn dưới dạng ma  
trận 4 x 4 byte, gọi là trạng thái (State). Số vòng lặp ký hiệu  
là 푁푟, phụ thuộc vào hai đại lượng 푁푏 và 푁푘. Vì 푁푏 trong  
AES có giá trị cố định bằng 4 nên 푁푟 chỉ phụ thuộc vào 푁푘.  
Giá trị của 푁푟 tương ứng với ba giá trị của 푁푘 là 푁푟 = 10,  
12, 14. Cụ thể, giá trị 푁푟 được xác định bởi:  
AES được phát triển từ cuối những năm 90s để thay thế  
cho chuẩn mã hóa trước đó là Data Encryption Standard  
(DES) do IBM tạo ra đầu những năm 70s nhằm khắc phục  
những khuyết điểm của thuật toán mã hóa đó. Tuy nhiên,  
hiện nay thuật toán AES đã xuất hiện lỗ hổng dễ bị tấn công  
và những kẻ tấn công bằng nhiều phương pháp khác nhau  
đang tấn công, khai thác lỗ hổng đó. Một trong những  
phương pháp tấn công phổ biến nhất hiện nay là tấn công  
tiêm lỗi – Fault Injection Attack (FIA), một loại tấn công  
kênh bên rất mạnh hiện nay [3]. Các cuộc tấn công FIA là  
mối đe dọa số một cho bất kỳ hệ thống nhúng, chip IC an  
toàn nào trên thế giới. FIA là những cuộc tấn công vật lý  
logic với mục đích bỏ qua các cơ chế khởi động an toàn,  
trích xuất khóa bí mật, phá vỡ bộ đếm chương trình và trích  
xuất chương trình cơ sở hoặc thao túng bất kỳ tài nguyên  
bảo mật nào bên trong IC. Các cuộc tấn công như vậy khó  
thực hiện hơn những cuộc tấn công khác, nhưng đổi lại, nó  
Type AES Key length  
Number of  
푁푘  
rounds (푁푟)  
AES-128  
AES-192  
AES-256  
128  
192  
256  
10  
12  
14  
4
6
8
Bốn byte trên mỗi cột trong mảng trạng thái state tạo  
cho phép bỏ qua các phương pháp bảo vệ hoàn toàn, với thành 1 từ 32 bit, trong đó số thứ tự của hàng r (0 ≤ 푟 ≤  
tác động nghiêm trọng đến các nhà cung cấp và người  
dùng.  
3) cho biết chỉ số của bốn byte trong mỗi từ. Từ định nghĩa  
state ở trên có thể coi state là mảng một chiều chứa các từ  
32 bit:  
Có rất nhiều phương pháp tấn công sử dụng FIA như:  
sự cố nguồn (Glitch power); sự cố xung clock (Glitch  
clock); thay đổi đột ngột nhiệt độ môi trường (Varying the  
environmental temperature); sử dụng ánh sáng hoặc lasers;  
tấn công lỗi vi sai (Different Fault Attack), … [4]. Bản chất  
của các cuộc tấn công FIA nêu trên đều là giống nhau, và  
là tiêm lỗi vào trong thiết bị mã hóa trong quá trình tính  
푆02 푆03  
푆12 푆13  
푆22 푆23  
푆32 푆33  
푆00 푆01  
푆10 푆11  
푆20 푆21  
푆30 푆31  
SOÁ 03 (CS.01) 2020  
TAÏP CHÍ KHOA HOÏC COÂNG NGHEÄ THOÂNG TIN VAØ TRUYEÀN THOÂNG  
79  
TẤN CÔ NG TIÊM LỖI TRÊN AES-128 BẰNG PHƯƠNG PHÁP TẤN CÔ NG LỖI VI SAI  
Thuật toán mã hóa AES tương đối phức tạp, được mô  
tả khái quát thành 3 bước như sau:  
Thuật toán giải mã AES khá giống với thuật toán mã  
hóa AES về mặt cấu trúc nhưng 4 hàm sử dụng là 4 hàm  
ngược của quá trình mã hóa.  
•
•
1 vòng khởi tạo chỉ bao gồm phép Addroundkey;  
푁푟 − 1 vòng lặp gồm 4 phép biến đổi lần lượt là:  
Một điểm khác biệt nữa trong hai cấu trúc giải mã ngược  
và giải mã xuôi đó là: Trong giải mã ngược khóa vòng giải  
mã chính là khóa vòng mã hóa với thứ tự đảo ngược. Còn  
trong giải mã xuôi thì khóa giải mã ngoài việc đảo ngược  
thứ tự khóa vòng mã hóa còn phải thực hiện phép  
InvMixColumns đối với các khóa vòng của vòng lặp giải  
mã [9]. Sơ đồ khối của thuật toán mã hóa và giải mã hóa  
AES – 128 được biểu diễn ở hình 1.  
SubBytes, ShiftRows, MixColumns, AddRoundKey;  
•
1 vòng cuối gồm các phép biến đổi giống vòng lặp  
và không có phép MixColumns.  
Trong giai đoạn khởi tạo AES, chỉ có một bước được thực  
hiện: AddRoundKey. Kế tiếp, thuật toán sẽ chuyển sang  
vòng hoạt động đầu tiên và thực hiện bước đầu tiên:  
SubBytes.  
Trong bước Final Round sẽ không có phép  
MixColumns mà chỉ có các phép: SubBytes, ShiftRows,  
AddRoundKey [7, 8].  
Hình 1. Sơ đồ khối thuật toán mã hóa và giải mã hóa AES – 128  
Key scheduling xây dựng khóa vòng K trong thuật toán nhắn nhân với số vòng cộng với 1, tức là 푁푟 + 1. Khóa  
AES bằng cách sử dụng 2 chức năng: khóa vòng (Key  
Expansion) và lựa chọn phím vòng (Round Key Selection).  
Thuật toán key AES scheduling được mô tả ở thuật toán 1.  
Thuật toán 1. AES key Scheduling  
Input K: secret key,  
vòng là một mảng tuyến tính gồm các từ 4 byte và được ký  
[
]
hiệu là 퐸퐾 4 ∙ (푁푘 + 1) . Khóa vòng được mô tả ở thuật  
toán 2.  
Thuật toán 2: KeyExpansion  
Input: 푁푘, 푁푟;  
Output EK: array containing round key;  
Begin  
L: key length in words,  
푁푟: 푛푢푚푏푒푟 표푓 푟표푢푛푑푠;  
Output W: array containing round keys  
Begin  
퐸퐾 ← 푡푒푚푝;  
for i = 0 to 푁푘 − 1 do  
(
)
for i =l to 4 ∙ 푁푟 + 1 − 1 do  
if 푖 ≡ 0 푚표푑 푙 then  
[ ] ( [  
]
[
]
[
퐸퐾 푖 = 퐾 4 ∙ 푖 , 퐾 4 ∙ 푖 + 1 , 퐾 4 ∙ 푖 +  
]
[
])  
2 , 퐾 4 ∙ 푖 + 3 ;  
[ ]  
[
]
[
푊 푖 = 푊 푖 − 푙 ⨁푆푢푏퐵푦푡푒[푊 푖 −  
푖
i = i ++;  
]
1 ≪< 8]⨁푅푐표푛[ ];  
푙
for 푖 = 푁푘 to 4 ∙ (푁푟 + 1) do  
temp = EK[i − 1];  
elsif 푙 = 8 푎푛푑 푖 ≡ 4 푚표푑 푙 then  
[ ]  
[
]
푊 푖 = 푊[푖 − 푙]⨁푆[푊 푖 − 1 ];  
if 푖 푚표푑 푁푘 = 0 then  
else  
푡푒푚푝 =  
[ ]  
[
]
푊 푖 = 푊[푖 − 푙]⨁푊 푖 − 1 ;  
푆푢푏푊표푟푑(푅표푡푊표푟푑(푡푒푚푝)) ⊕ 푅푐표푛[푖/푁푘];  
elsif ((푁푘 > 6) 푎푛푑 (푖 푚표푑 푁푘 = 4))  
temp = SubWord(temp);  
return W;  
End  
Chức năng khóa vòng: Chức năng này tính toán từ  
khóa AES, khóa vòng có độ dài bằng chiều dài khối tin  
SOÁ 03 (CS.01) 2020  
TAÏP CHÍ KHOA HOÏC COÂNG NGHEÄ THOÂNG TIN VAØ TRUYEÀN THOÂNG  
80  
Bạch Hồng Quyết, Phạm Văn Tới  
퐸퐾[푖] = 퐸퐾[푖 − 푁푘] ⊕ 푡푒푚푝;  
i = i ++;  
DFA là tạo ra các lỗi ví dụ như lỗi điện áp, điều kiện môi  
trường không mong muốn… Các lỗi này được thực hiện  
trong quá trính triển khai mật mã, điều này sẽ giúp tiết lộ  
trạng thái bên trong của chúng.  
Ví dụ thẻ thông minh chứa bộ xử lý nhúng có thể phải  
chịu nhiệt độ quá cao, điện áp hoặc dòng điện cung cấp  
không được hỗ trợ, ép xung quá cao, điện trường hoặc từ  
trường mạnh có thể ảnh hưởng đến hoạt động của bộ xử lý.  
Bộ xử lý có thể bắt đầu xuất ra các kết quả không chính xác  
do lỗi dữ liệu vật lý, điều này có thể giúp kẻ tấn công suy  
ra được các lệnh mà bộ xử lý đang chạy hoặc trạng thái dữ  
liệu bên trong của nó [13].  
DFA được dùng để kiểm tra tính bảo mật của thuật toán  
mã hóa DES. Tuy nhiên, ngày nay thuật toán AES đã được  
thay thế cho DES trong các thuật toán mã hóa. Thật không  
may, các cuộc tấn công DFA hiện có trên các hệ thống mật  
mã đối xứng không hoạt động trên AES. Đây là lý do tại  
sao chúng tôi nghiên cứu, phát triển để tìm cách tấn công  
AES bằng cách sử dụng DFA.  
return EK;  
End  
Trong đó:  
- SubWord() là một hàm áp dụng S-box trong thuật toán  
mã hóa AES ở mỗi byte của 4 byte đầu vào để tạo ra một  
từ đầu ra;  
- RotWord () là một phép quay tuần hoàn sao cho đầu  
vào 4 byte (a, b, c,d) tạo ra đầu ra 4 byte (b, c, d, a);  
푖−1  
푖−1  
[ ]  
{
} { } {  
}
- 푅푐표푛 푖 = (푥 , 00 , 00 , 00 ) với 푥  
hạn của x trong trường 퐹28.  
là giới  
Chức năng lựa chọn khóa vòng: chức năng này trích  
xuất các khóa vòng 128 bit từ Khóa được mở rộng.  
Ví dụ về Key scheduling trong thuật toán mã hóa AES-  
128:  
Trong phần này, chúng tôi sẽ thực hiện một cuộc tấn  
công DFA với quy mô trên 1 bit của kết quả bản mã tạm  
thời trước khi kết thúc vòng cuối. Từ đó có thể truy xuất  
được toàn bộ khóa vòng cuối cùng tức là khóa K trên thuật  
toán mã hóa AES-128.  
Nếu một lỗi gây ra trong một byte của ma trận trạng  
thái, sau đó được đưa vào vòng thứ 8, thì hoạt động của  
MixColumn ở vòng cuối sẽ truyền lỗi này đến toàn bộ cột  
của ma trận trạng thái sau đó. Hoạt động ShiftRow ở đầu  
vòng sau sẽ chuyển các byte lỗi này sang các cột khác nhau  
của ma trận trạng thái. Và sau đó, hoạt động MixColumn  
sẽ lan truyền lỗi đến các byte còn lại.  
Quá trình này được mô tả ở hình 2, trong đó hiển thị sự  
khuếch tán của một lỗi byte gây ra ở đầu vào của vòng thứ  
8. Kết quả của thuật toán XOR vi sai ma trận trạng thái sẽ  
cho ra hai giá trị, một là đúng, hai là sai. Từ đó chúng ta có  
thể xác định được cơ sở cho một phân tích lỗi vi sai.  
III. TẤN CÔNG DFA TRÊN THUẬT TOÁN MÃ  
HÓA AES-128  
Các cuộc tấn công phá khóa mã hóa đã được giới thiệu  
trong [10] dựa trên các lỗi có thể được tạo ra trên các thiết  
bị thẻ thông minh trong quá trình tính toán thuật toán mã  
hóa, từ đó nhiều nghiên cứu đã được tiến hành và được thực  
hiện nghiêm túc hơn. Trong [11] đã thành công trong việc  
phá vỡ mã hóa RSA CRT với một chữ ký bị lỗi trong cùng  
một tin nhắn. Sau đó [12] đã cải tiến thuật toán phá khóa  
bằng cách chỉ tìm một trong các yếu tố của module khóa  
công khai chỉ sử dụng một chữ ký bị lỗi trong một tin nhắn  
đã biết. Các cuộc tấn công này là tiền đề cho cuộc tấn công  
DFA sau này.  
DFA là một loại tấn công kênh bên trong lĩnh vực mật mã,  
cụ thể là phân tích mật mã. Nguyên tắc của cuộc tấn công  
Hình 2. Sơ đồ sự khuếch tán lỗi vi sai trên ma trận trạng thái  
Cũng theo định nghĩa, ta có thể biểu thị 푆푢푏퐵푦푡푒(푆푖)  
Để thuận lợi cho quá trình theo dõi và tính toán, chúng  
tôi sẽ đưa ra một số ký hiệu sau:  
푗
là kết quả của phép biến đổi byte 푆푖 bởi phép  
푗
1. S – bản rõ tương ứng với nó là khóa K trên AES;  
푆ℎ푖푓푡푅표푤푠(푗) tại vị trí thứ j trên bản rõ tạm thời. như vậy  
푖
2. 푆푖 – bản rõ tạm thời lượt thứ i và 푆 – byte thứ j trên  
푗
ta có:  
bản rõ 푆푖;  
푇
= 푆푢푏퐵푦푡푒(푆9)⨁퐾10  
,
푆ℎ푖푓푡푅표푤(푗)  
푆ℎ푖푓푡푅표푤(푗)  
푗
3. 퐾푖 – khóa AES tạm thời lượt thứ i và 퐾 푖 – byte thứ  
푗
{
}
∀푗 ∈ 0, … ,15 (2)  
j trên khóa AES 퐾푖;  
Nếu chúng ta thực hiện cuộc tấn công DFA 푒 trên 1 bit  
푗
thứ j của bản rõ tạm thời 푆9 ngay trước vòng cuối của thuật  
toán, chúng ta sẽ thu được bản mã lỗi F:  
4. T – bản mã chính xác và 푇 – byte thứ j của bản mã  
푗
chính xác T;  
= 푆푢푏퐵푦푡푒(푆9⨁푒 )⨁퐾10  
(3)  
5. F – bản mã lỗi và 퐹 – byte thứ j của bản mã lỗi F.  
푗
퐹
푆ℎ푖푓푡푅표푤(푗)  
푗
푗
푆ℎ푖푓푡푅표푤(푗)  
Theo định nghĩa, ta có:  
Và:  
9
10  
퐹
= 푆푢푏퐵푦푡푒(푆9)⨁퐾10  
,
(
)
푇 = 푆ℎ푖푓푡푅표푤푠(푆푢푏퐵푦푡푒푠 푆 )⨁퐾  
(1)  
푆ℎ푖푓푡푅표푤(푖)  
푖
푆ℎ푖푓푡푅표푤(푖)  
SOÁ 03 (CS.01) 2020  
TAÏP CHÍ KHOA HOÏC COÂNG NGHEÄ THOÂNG TIN VAØ TRUYEÀN THOÂNG  
81  
TẤN CÔ NG TIÊM LỖI TRÊN AES-128 BẰNG PHƯƠNG PHÁP TẤN CÔ NG LỖI VI SAI  
{
} { }  
푖 ∈ 0, … ,15 \ 푗  
(4) IV. ĐÁNH GIÁ THỰC NGHIỆM  
Từ (2) và (4) chúng ta có:  
푆ℎ푖푓푡푅표푤(푖)⨁퐹 = 0, 푖 ∈ 0, … ,15 \ 푗  
Trong phần này, chúng tôi sẽ thực hiện các thí nghiệm  
để đánh giá độ chính xác của thuật toán đối với kiểu tấn  
công phân tích lỗi vi sai trên thuật toán mã hóa AES-128.  
Thực nghiệm được thực hiện trên SoC Kirin 620. Sơ đồ  
{
} { }  
푇
(5)  
( )  
푆ℎ푖푓푡푅표푤 푖  
Từ (2) và (3) ta được:  
푇
( )⨁퐹  
=
( )  
푆ℎ푖푓푡푅표푤 푗  
푆ℎ푖푓푡푅표푤 푗  
푆푢푏퐵푦푡푒(푆9)⨁푆푢푏퐵푦푡푒(푆9⨁푒 )  
(6)  
푗
푗
푗
thực nghiệm được mô tả ở hình 3.  
Từ những công thức trên, chúng ta có thể xây dựng một  
thuật toán đầy đủ để truy xuất ra được khóa K của thuật  
toán mã hóa AES-128.  
Thuật toán 3. Tìm khóa K của thuật toán mã hóa AES-  
128.  
Input 푇, 푆9, 퐹: 푎푟푟푎푦 푐표푛푡푎푖푛푖푛푔 푣푎푙푢푒  
Output 퐾: 푎푟푟푎푦 푐표푛푡푎푖푛푖푛푔 푘푒푦 퐴퐸푆 − 128  
Begin  
For i = 0 to 15 do  
Get 퐷퐹퐴 ← 푒 ;  
푗
Get 푆9 ⨁ 푒 ;  
푗
푖
if 푆9 ⨁ 푒 ≠ 0 then  
푗
푖
Hình 3. Sơ đồ thực nghiệm tấn công phân tích lỗi vi sai  
j = i;  
trên AES-128  
Save 푆9;  
푗
1) Một lệnh được gửi từ máy tính đến thiết bị bị tấn  
công thông qua giao tiếp nối tiếp báo hiệu cho nó chạy  
bước AddRoundKey và SubBytes đối với giá trị bản rõ đã  
biết. Các bước AddRoundKey và SubBytes được chạy 10  
lần cho mỗi giá trị bản rõ riêng lẻ. Điều này cho phép  
oscilloscope có được kết quả trung bình, do đó giúp giảm  
nhiễu nền và tăng độ chính xác cho kết quả.  
2) Oscilloscope được thiết lập để ghi lại từng traces  
bằng cách sử dụng hàm trung bình (Average function) sao  
cho giá trị của 10 traces được tính cho mỗi bước duy nhất  
của AddRoundKey và SubBytes.  
3) Khi 10 dấu vết đã được ghi lại bằng oscilloscope,  
máy tính sẽ truy xuất và lưu kết quả trung bình dưới nhiều  
định dạng khác nhau trong ổ cứng. Quá trình 1 đến 3 được  
lặp lại cho mỗi giá trị văn bản gốc từ 00 đến FF.  
4) Sau khi thu thập dữ liệu giá trị trung bình của 256  
traces của bản rõ, được thực hiện ở các bước  
AddRoundKey và SubBytes trên thiết bị bị tấn công,  
chương trình có thể phân tích, tính toán kết quả bằng  
phương pháp phân tích ngoại tuyến. Các kết quả này có thể  
dự đoán chính xác bằng cách sử dụng Means vi sai.  
Sau đây là kết quả thu được từ thực nghiệm.  
i = i ++;  
Get 푆9;  
Get 퐾10 from equation (1);  
Get K using applying the inverse AES key  
Scheduling 퐾10;  
return K;  
End  
Tấn công DFA hoạt động độc lập trên mỗi bit, vì vậy  
nếu chúng ta thành công trong việc tạo ra chỉ một lỗi trên  
một vài byte của bản rõ tạm thời 푆9, chúng ta sẽ giảm được  
số lượng bản mã bị lỗi cần thiết để có được khóa K của  
thuật toán mã hóa AES-128.  
Thuật toán tấn công DFA này cũng áp dụng được trên  
thuật toán mã hóa AES-192 và AES-256. Trong các trường  
hợp như vậy, mức độ bảo mật của thuật toán AES-192 sẽ  
giảm từ 24 byte xuống 8 byte và AES-256 sẽ giảm từ 32  
byte xuống 16 byte.  
Tấn công DFA này rất mạnh nhưng đòi hỏi phải gây ra  
lỗi chỉ 1 bit đúng thời điểm là vòng cuối cùng của thuật  
toán mã hóa AES. Do đó sẽ khó khăn trong việc thực hiện.  
Hình 4. Phát hiện rò rỉ dữ liệu trên bản rõ  
SOÁ 03 (CS.01) 2020  
TAÏP CHÍ KHOA HOÏC COÂNG NGHEÄ THOÂNG TIN VAØ TRUYEÀN THOÂNG  
82  
Bạch Hồng Quyết, Phạm Văn Tới  
Hình 4 mô tả các traces được phát hiện ở đầu vào các chúng ta cũng có thể tìm thấy rò rỉ ở bản mã như trong hình  
bytes của bản rõ. Điều này chứng tỏ bản rõ đã được tải vào 5. Chỉ khác là các traces được phát hiện ở đầu ra các bytes  
thanh ghi hoặc RAM của máy tính. Tương tự như vậy, của bản mã.  
Hình 5. Phát hiện rò rỉ dữ liệu trên bản mã  
Hình 6 mô tả các Means trace và Variance trace của chính xác vào đúng vị trí, thời điểm và thu được minimum  
từng bước AddRoundKey, SubBytes, ShiftRows, các giá trị bản lỗi cần thiết để truy xuất ra khóa K.  
MixColumns trong quá trình mã hóa. Từ đó có thể tấn công  
Hình 6. Means trace và Variance trace của thuật toán mã hóa AES-128  
Sử dụng thuật toán đã trình bày ở trên, chúng ta thu được thời gian để thực hiện. Nhược điểm của phương pháp này  
khóa K ban đầu.  
là cách thực hiện tấn công. Cuộc tấn công phải đúng thời  
điểm và đúng vị trí, từ đó mới có thể thu được những bản  
lỗi chính xác, phù hợp, làm dữ liệu để phân tích tìm khóa  
K.  
Trong tương lai, chúng tôi sẽ phân tích và áp dụng đề xuất  
của bài báo này để làm cơ sở để tối ưu hóa kỹ thuật tấn  
công kênh kề bằng phương pháp phân tích lỗi vi sai, từ đó  
có thể phát triển một chương trình truy xuất ra khóa K của  
thuật toán mã hóa AES-128 và hơn nữa trên AES-192 và  
AES-256.  
REFERENCE  
[1] J. Bl¨omer, J. G. Merchan, and V. Krummel. Provably Secure  
Masking of AES. In SAC 2004, vol. 3357 of LNCS, pages  
69–83. Springer, 2004.  
[2] Heron S. Advanced encryption standard (AES). Netw Secur.  
2009; 2009(12):8–12. DOI:10.1016/ S1353-4858(10)70006-  
4.  
V. KẾT LUẬN  
Trong bài báo này đã giới thiệu một phương pháp tấn công  
DFA trên thuật toán mã hóa AES-128. Trong bài báo này  
cũng chỉ ra phương pháp để có thể truy xuất được khóa K  
của thuật toán mã hóa AES-128 bằng cách sử dụng các  
thuật toán đã nêu ở trên. Vì cuộc tấn công này rất mạnh, sử  
dụng ít bản lỗi để có thể lấy được khóa K nên tiêu tốn ít  
[3] A. Berzati, C. Canovas, and L. Goubin. (In) security Against  
Fault Injection Attacks for CRT-RSA Implementations. In L.  
SOÁ 03 (CS.01) 2020  
TAÏP CHÍ KHOA HOÏC COÂNG NGHEÄ THOÂNG TIN VAØ TRUYEÀN THOÂNG  
83  
TẤN CÔ NG TIÊM LỖI TRÊN AES-128 BẰNG PHƯƠNG PHÁP TẤN CÔ NG LỖI VI SAI  
Breveglieri, S. Gueron, I. Koren, D. Naccache, and J.-P.  
Seifert, editors, Fault Diagnosis and Tolerance in  
Cryptography – FDTC 2008, pages 101–107. IEEE Computer  
Society, 2008.  
sự năm 2009. Hướng nghiên cứu hiện nay: An ninh mạng,  
bảo mật phần cứng.  
TS. Phạm Văn Tới  
Cơ quan: Phòng thí nghiệm trọng điểm  
ATTT  
[4] V. Lomne, T. Roche, and A. Thillard. On the Need ´ of  
Randomness in Fault Attack Countermeasures – Application  
to AES. In G. Bertoni and B. Gierlichs, editors, Fault  
Diagnosis and Tolerance in Cryptography – FDTC 2012,  
pages 85–94. IEEE Computer Society, 2012.  
[5] S. Chari, C. Jutla, J. Rao, and P. Rohatgi. A Cautionary Note  
Regarding Evaluation of AES Candidates on Smart-Cards. In  
AES 2, March 1999.  
Email:phamvantoi141090@gmail.com  
Quá trình đào tạo: Nhận bằng kỹ sư tại  
trường ĐHQG Kỹ thuật Vô tuyến Ryazan, LB Nga; Nhận  
bằng tiến sỹ tại trường ĐHQG Kỹ thuật Vô tuyến Ryazan,  
LB Nga. Hướng nghiên cứu hiện nay: An ninh mạng, bảo  
mật phần cứng.  
[6] J. Goli´c and C. Tymen. Multiplicative Masking and Power  
Analysis of AES. In CHES 2002, vol. 2523 of LNCS, pages  
198–212. Springer, 2002.  
[7] E. Oswald, S. Mangard, N. Pramstaller, and V. Rijmen. A  
Side-Channel Analysis Resistant Description of the AES S-  
box. In FSE 2005, vol. 3557 of LNCS, pages 413–423.  
Springer, 2005.  
[8] E. Oswald and K. Schramm. An Efficient Masking Scheme  
for AES Software Implementations. In WISA 2005, vol. 3786  
of LNCS, pages 292–305. Springer, 2006.  
[9] V. Rijmen. Efficient Implementation of the Rijndael S-box,  
2000. Available at  
http://www.esat.kuleuwen.ac.be/∼rijmen/rijndael/sbox.pdf.  
[10] D. Boneh, R. A. Demillo and R. J. Lipton, On the Importance  
of Checking Cryptographic Protocols for Faults, Springer,  
Lecture Notes in Computer Science vol. 1233, Advances in  
Cryptology, proceedings of EUROCRYPT’97, pp. 37-51,  
1997.  
[11] D. Boneh, R. A. DeMillo and R. J. Lipton, On the Importance  
of Eliminating Errors in Cryptographic Computations,  
Springer, Journal of Cryptology 14(2), pp. 101-120, 2001.  
[12] M. Joye, A. K. Lenstra and J.-J. Quisquater, Chinese  
Remaindering Based Cryptosystems in the Presence of  
Faults, Springer, Journal of Cryptology 12(4), pp. 241-246,  
1999.  
THE FAULT INJECTION ATTACK ON THE AES-  
128 BY THE METHOD OF DIFERENCE FAULT  
ATTACK  
Abstract: Andvanced Encryption Standard is the  
popular data standardization, used globally and the US  
government uses to secure extreme data. However, the  
algorithm of AES currently provides holes for hackers to  
attack and exploit with different methods. This article will  
introduce the DFA based on the encryption algorithm AES-  
128. Its purpose is to analyze the method of injecting errors  
in the device encryption process in order to build the K  
extraction algorithm and disable device's security system.  
Keywords— AES encryption algorithm, Side-channel  
attack, Fault injection attack, Differential analysis.  
ThS. Bạch Hồng Quyết  
Cơ quan: Phòng thí nghiệm trọng điểm  
ATTT  
Quá trình đào tạo: Nhận bằng kỹ sư tại  
trường Học viện Kỹ thuật Quân sự năm  
2001; nhận bằng thạc sỹ tại trường Học viện Kỹ thuật Quân  
SOÁ 03 (CS.01) 2020  
TAÏP CHÍ KHOA HOÏC COÂNG NGHEÄ THOÂNG TIN VAØ TRUYEÀN THOÂNG  
84  
pdf 6 trang yennguyen 22000 Free
Bạn đang xem tài liệu "Tấn công tiêm lỗi trên AES-128 bằng phương pháp tấn công lỗi vi sai", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdftan_cong_tiem_loi_tren_aes_128_bang_phuong_phap_tan_cong_loi.pdf