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
[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
Email: [email protected]
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
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:
tan_cong_tiem_loi_tren_aes_128_bang_phuong_phap_tan_cong_loi.pdf

