Tải bản đầy đủ (.pdf) (16 trang)

Tiểu luận môn học MẬT MÃ VÀ AN TOÀN DỮ LIỆU TRÌNH BÀY VỀ PHƯƠNG PHÁP THÁM MÃ VI SAI

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.15 MB, 16 trang )

Vũ Đức Mạnh - K19 HTTT - Mã HV: 12025057

1

MỤC LỤC
Nội dung Trang
I. Tổng quan về thám mã vi sai: 2
1. Khái niệm 2
2. Lịch sử 2
3. Quy trình thám mã vi sai 3
II. Chuẩn mã hóa dữ liệu (Data Encryption Standard - DES) 4
1. Đặc điểm, mô hình hoạt động của DES 4
a) Mô hình cơ bản 4
b) Cấu trúc Hàm F 5
c) Xác định khóa chính, khóa vòng (subkey) 5
2. Độ an toàn của DES 6
IV. Cơ sở khoa học của thám mã vi sai đối với DES 6
1. Phân tích các điểm yếu của hàm F (các hộp S) 6
2. Có thể bỏ qua khóa k trong giai đoạn tính đầu vào cho hộp S 7
3. Dựa trên các bước thực hiện dò tìm khóa cơ bản 7
V. Ví dụ về tấn công thám mã vi sai đối với DES một vòng 9
1. Tiền tính toán 9
2. Dò tìm khóa 10
V. Kết luận và hướng phát triển tiếp theo 13
Tài liệu tham khảo 16


Vũ Đức Mạnh - K19 HTTT - Mã HV: 12025057

2


I. Tổng quan về thám mã vi sai
1.Khái niệm
Thám mã vi sai (Differential Cryptanalysis) thường là dạng tấn công dựa trên
bản rõ được lựa chọn. Có nghĩa, người tấn công phải thu được các bản mã đã được mã
hóa từ tập các bản rõ được lựa chọn đó. Từ đó, phân tích sự khác nhau giữa hai bản rõ
ảnh hưởng như thế nào đến sự khác nhau giữa hai bản mã tương ứng. Hay nói cách
khác, phương pháp cơ bản của thám mã vi sai là sử dụng các cặp bản mã, bản rõ có
liên quan dựa vào giá trị khác nhau (difference) là hằng số.
Giá trị khác nhau có thể được định nghĩa thông qua nhiều cách, nhưng phép
toán cộng loại trừ (⊕
⊕ ⊕
⊕ -

-

XOR) thường được sử dụng.
2. Lịch sử
Vào năm 1972, Văn phòng Tiêu chuẩn quốc gia - NSA (nay là Viện Tiêu chuẩn
và Kỹ thuật – Mỹ) đã kêu gọi cá nhân, cộng đồng quốc tế nghiên cứu, đề xuất một
chuẩn mật mã mới. Cho đến vòng duyệt lần thứ hai vào năm 1974, IBM đã công bố
một hệ mật mã dựa trên hệ mật mã do chính họ đã nghiên cứu trước đó - hệ mật mã
Lucifer. Hệ mật mã này được gửi tới NSA để phân tích, đồng thời nó cũng gây sự chú
ý lớn trong cộng động mật mã. Cuối cùng, hệ mật mã này được NSA duyệt và công bố
với hai sự thay đổi: độ dài khóa được làm ngắn, các hộp S (S-boxes) được thay đổi.
Trong nhiều năm sau đó, nhiều người tin rằng NSA đã làm ngắn độ dài khóa để
họ có thể thực hiện tìm kiếm vét cạn không gian khóa. Một số ý kiến khác cho rằng,
NSA đã có chủ tâm thay đổi các hộp S làm chúng “yếu” hơn để họ có thể thực hiện
tấn công thám mã phân lớp. Mặc dù NSA và IBM đã cố gắng chứng minh rằng với độ
dài khóa như họ đưa ra vẫn đảm bảo an toàn, nhưng họ lại không nói nhiều về các hộp
S.

Cho đến năm 1990 những đồn đại, nghi nghờ về những hộp S “yếu” mới được
làm rõ. Trong năm đó, Eli Biham và Adi Shamir công bố bài báo về kỹ thuật thám mã
mới: “Thám mã vi sai”. Từ đó, NSA đã thay đổi các hộp S để tăng cường sức mạnh để
DES chống lại kiểu tấn công mới này.

Vũ Đức Mạnh - K19 HTTT - Mã HV: 12025057

3

3. Quy trình thám mã vi sai
Khi có được khác nhau của các cặp bản rõ cần thiết, người tấn công thực hiện
tính toán giá trị khác nhau giữa các cặp bản mã tương ứng nhằm khám phá ra được
các mẫu thống kê quy luật trong sự phân bổ của chúng. Cặp kết quả giá trị khác nhau
(vào - ra) được gọi là vi sai (differential).
Các mẫu thống kê có được từ sự phân tích là phụ thuộc vào đặc tính tự nhiên
của các hộp S. Người tấn công phân tích các vi sai (X, Y) của mỗi hộp S, trong
đó:
X = X
1

⊕⊕
⊕ X
2
Y = Y
1

⊕⊕
⊕ Y
2
= S(X

1
) ⊕
⊕⊕
⊕ S(X
2
) = S(X
1
) ⊕
⊕⊕
⊕ S(X
1

⊕⊕
⊕ X)
(⊕
⊕⊕
⊕ là phép cộng loại trừ XOR)
Dạng phục hồi khóa cơ bản nhất thông qua thám mã vi sai đó là, một người tấn
công nhằm đạt được các bản mã từ một số lượng lớn các cặp bản rõ. Khi đó, giả sử vi
sai được duy trì tối thiểu r-1 vòng, trong đó r là tổng số lượng vòng. Người tấn công
sẽ suy dẫn khóa vòng (khóa phụ - subkey) nào là khóa có thể với giả định sự khác
nhau (difference) giữa các khối trước vòng cuối cùng (vòng r) là cố định.
Nếu khóa vòng ngắn, nó có thể được phục hồi bởi thực hiện giải mã vét cạn các
cặp bản mã một vòng với từng khóa có thể. Khi một khóa được xem như là khóa
“tiềm năng” cần được chú ý hơn so với bất kỳ khóa nào khác, nó được giả định là
khóa đúng để thực hiện các công việc tiếp theo.
Nếu quá trình phục hồi khóa chỉ xác định được một số bít khóa, số bít còn lại
không nhiều nhưng vượt quá khả năng của phương pháp thám mã vi sai hoặc khả
năng của người thám mã, thì những bít còn lại của khóa sẽ được xác định bằng cách
vét cạn trong không gian đã được giới hạn.

Đối với bất kỳ hệ mã hóa nào, để việc thám mã thành công thì giá trị khác nhau đầu
vào cần phải được lựa chọn cẩn thận. Đồng thời, việc phân tích bên trong của thuật
toán là rất quan trọng và phải được thực hiện đồng thời. Phương pháp chuẩn chính là
theo dõi một “đường dẫn” vi sai với xác suất xuất hiện cao thông qua các giai đoạn
của việc mã hóa, được gọi là đặc tính vi sai.

Vũ Đức Mạnh - K19 HTTT - Mã HV: 12025057

4

II. Chuẩn mã hóa dữ liệu (Data Encryption Standard – DES)
1. Đặc điểm, mô hình hoạt động của DES
a) Mô hình cơ bản
DES là hệ mật mã khối 64 bit, với 64 bit vào bản rõ và tạo ra 64 bit bản mã
thông qua một chuỗi phép hoán vị và hàm Feistel (hàm F):
64 bit đầu vào trước hết được hoán vị IP và chia thành 2 nửa 32 bit. Trong mỗi vòng
của DES, một nửa được giữ nguyên trong khi nửa còn lại được chạy qua hàm F. Đầu
ra của hàm F tiếp tục được XOR với nửa còn lại.
Hai nửa được hoán vị cho nhau, và bắt đầu lặp lại vòng tiếp theo.

Hình 1: Cấu trúc hoạt động của DES
Vũ Đức Mạnh - K19 HTTT - Mã HV: 12025057

5

b) Cấu trúc Hàm F:
Trong hàm F, 32 bit đầu vào được mở rộng thành 48 bit bởi hàm mở rộng E. 48
bit này sau đó được XOR với một khóa con được dẫn xuất từ khóa chính của DES.
Kết quả 48 bit sau khi XOR với khóa con được chạy qua 8 hộp S (S-Boxes) làm
giảm 48 bit xuống còn 32 bit. Cuối cùng, 32 bit được chuyển qua hàm hoán vị P.

Cấu trúc của hàm F được thể hiện qua hình sau:

Hình 2: Hàm-F của DES
c) Xác định khóa chính, khóa vòng (subkey)
Khóa K là xâu dài 64 bít, trong đó 56 bít là khóa và 8 bit để kiểm tra tính chẵn
lẻ ở các vị trí 8, 16, 24, , 64. Với khóa K 64 bít, việc tính các khóa phụ k
i
(i = 1, 2,
3, ,16) thực hiện như sau:
 Loại bỏ 8 bit kiểm tra tính chẵn, lẻ, hoán vị 56 bít còn lại theo phép hoán vị PC-
1. Kết quả thu được chia thành 2 nửa 28 bít.
Vũ Đức Mạnh - K19 HTTT - Mã HV: 12025057

6

 Thực hiện dịch vòng trái đối với từng nửa 28 bit (dịch vòng trái 1 vị trí nếu i =
1, 2, 9, 16, dịch 2 vị trí đối với những giá trị i khác).
 Các giá trị của hai nửa sau khi thực hiện phép dịch vòng trái độc lập sau đó
được kết hợp lại và tiếp tục tính theo phép hoán vị PC-2 và tạo ra khóa vòng k
i
48 bit.
2. Độ an toàn của DES
Độ an toàn của DES có được duy nhất từ các hộp S, bởi vì, các hộp S là hoàn
toàn phi tuyến. Ngoài ra, toàn bộ các bước khác trong DES là các phép toán tuyến
tính: hoán vị hai nửa, hoán vị các bít, phép mở rộng, và các phép XOR. Và nếu như
các hộp S cũng là tuyến tính thì DES sẽ dễ dàng bị phá vỡ.
Như đã giới thiệu ở trên, thì cơ bản thám mã vi sai dựa vào theo dõi sự thống kê
xác suất xuất hiện vi sai vào – ra của mỗi giai đoạn mã hóa. Và ở đây, chỉ phân tích
thống kê đối với giai đoạn qua các hộp S. Theo như các kết quả nghiên cứu, thực
nghiệm cho thấy thì các hộp S không phải là an toàn toàn tuyệt đối và có những “lỗ

hổng” nhất định. Trong đó, hộp S
1
và hộp S
5
được coi là “yếu” nhất, hộp S
7
được coi
là an toàn nhất.
Độ an toàn của Hộp S-7: với bất kỳ giá trị khác nhau đầu vào 6 bít (


I
) nào
khác không nào cho trước,

sẽ không nhiều hơn 8 trong số 32 cặp đầu vào với 


I
cho
cùng kết quả giá trị khác nhau đầu ra 


O
. Hay nói cách khác, nó cho tỷ lệ xác suất vi
sai ≤ 1/4. Bởi vậy, xác suất cao nhất (cận trên) của toàn bộ cặp bản rõ có cùng giá trị
khác nhau đầu vào cho trước (


I

) sau khi chạy qua n vòng của DES mang lại cùng
một giá trị khác nhau đầu ra - 


O
là (1/4)
n
.

III. Cơ sở khoa học của thám mã vi sai đối với DES
1. Phân tích các điểm yếu của hàm F (các hộp S):
Như đã phân tích về độ an toàn của DES, thám mã vi sai là phương pháp tấn
công chủ yếu vào các hộp S, từ S
1
đến S
8
.
Căn cứ vào sự phân tích đặc điểm, độ an toàn của DES, để phân tích tấn công vi
sai, chúng ta có thể bỏ qua các phép biến đổi tuyến tính gồm các hoán vị P, phép mở
rộng E mà tập trung vào hàm F, các hộp S và các “điểm yếu” của chúng.

Vũ Đức Mạnh - K19 HTTT - Mã HV: 12025057

7

2. Có thể bỏ qua khóa k trong giai đoạn tính đầu vào cho hộp S
Chúng ta có thấy được khóa k không đóng vai trò trong quá trình tính toán vi
sai qua các phương trình sau đây:
(m
1


⊕⊕
⊕ k) ⊕
⊕⊕
⊕ (m
2

⊕⊕
⊕ k) = m
1

⊕⊕
⊕ k ⊕
⊕⊕
⊕ m
2

⊕⊕
⊕ k
= m
1

⊕⊕
⊕ m
2

⊕⊕
⊕ k ⊕
⊕⊕
⊕ k

= m
1

⊕⊕
⊕ m
2
= 


I

3. Dựa trên các bước thực hiện dò tìm khóa cơ bản:
* Thực hiện tiền tính toán: để lập bảng phân bổ xác suất Vi sai đầu vào (


I
- XOR
vào) và Vi sai đầu ra (


O
- XOR ra) cho từng hộp S.
Mỗi hộp S có 6 bit vào, bởi vậy có 2
6
= 64 đầu vào có thể. Mỗi hộp S có 4 bit
ra, bởi vậy có 2
4
= 16 bit ra có thể. Như vậy, chúng ta có thể xây dựng bảng 64 x 16
“bộ” vào/ra. Bình quân, mỗi bộ sẽ được trả kết quả từ 4 cặp vào/ra. Nhưng trên thực
tế, không phải tất cả các bộ đều tồn tại và trong số các bộ tồn tại lại phân bố không

đều.

Bảng 1: Một phần của Bảng phân bố cặp vi sai Vào – Ra
(cặp XOR) của hộp S
1

Định nghĩa 1: Bảng 1 trên đây được gọi là Bảng phân bổ các cặp XOR. Mỗi tiêu đề
dòng trình diễn giá trị khác nhau đầu vào (XOR vào). Mỗi tiêu đề cột trình diễn giá trị
Vũ Đức Mạnh - K19 HTTT - Mã HV: 12025057

8

khác nhau đầu ra (XOR ra). Các phần tử trong bảng thể hiện số lượng “bộ” có thể với
các XOR vào và các XOR ra tương ứng theo dòng và cột.
(Bảng 1 chỉ là một phần của Bảng phân bố vi sai, vì thực tế Bảng phân bố này có 64
đầu vào, tức là có 64 dòng (input XOR), từ 00
x
đến 3F
x
).
Định nghĩa 2: Cho S’
iI
là giá trị khác nhau đầu vào (XOR vào) và S’
iO
là giá trị khác
nhau đầu ra (XOR ra) của một hộp S
i
nào đó. Chúng ta nói S’
iI
có thể tạo ra S’

iO
nếu
tồn tại một cặp đầu vào S
iI
, S
*
iI
để S’
iI
= S
iI

⊕⊕
⊕ S
*
iI
và:
S’
iO
= S
i
(S
iI
) ⊕
⊕⊕
⊕ S
i
(S
*
iI

) = S
iO

⊕⊕
⊕ S
*
iO

Từ đó, chúng ta có thể viết S’
iI
 S’
iO
. Hay nói cách khác, giá trị khác nhau đầu vào
S’
iI
dẫn đến giá trị khác nhau đầu ra S’
iO.

Định nghĩa 3: Cho một hộp S (S
i
), định nghĩa tập đầu vào (IN
i
) S
iI
, S
*
iI
sao cho S’
iI


S’
iO
như sau:
IN
i
(S’
iI
 S’
iO
) = {S
iI
| S
i
(S
iI
) ⊕
⊕⊕
⊕ S
i
(S
*
iI
) = S’
iO
}
và định nghĩa số lượng (N) các đầu vào như trên là:
N (S’
iI
 S’
iO

) = | IN
i
(S’
iI
S’
iO
) |
Xác suất để S’
iI
 S’
iO
, là như sau:
P (S’
iI
 S’
iO
) = ( N (S’
iI
 S’
iO
) ) / 64
* Dò tìm khóa:
Dựa vào sự phân bố vi sai không đều của các hộp S: lựa chọn các cặp vi sai
xuất hiện với xác suất cao (để làm nổi bật vai trò khóa k
i
) để xây dựng các bảng tham
chiếu tiếp theo.
Xác định khóa: Giới hạn, cô lập không gian khóa, xác định các bit khóa, vùng
khóa và xác định khóa duy nhất.
* Ví dụ về tham chiếu Bảng 1: Xét đầu vào XOR S’

1I
= C
x.
Nó có 10 giá trị đầu ra có
thể. Các giá trị XOR đầu ra có thể là 3
x
, 5
x
, 6
x
, 9
x
, A
x
, B
x
, C
x
, D
x
, E
x
, F
x
và các giá trị
XOR đầu ra không thể xảy ra là 0
x
, 1
x
, 2

x
, 4
x
, 7
x
, và 8
x
. Vì vậy, chúng ta có thể viết:
C
x

ե
0
x
, C
x

ե
1
x
, C
x

ե
2
x
, C
x
 3
x

, C
x

ե
4
x
, C
x
 5
x
, . . .
Vũ Đức Mạnh - K19 HTTT - Mã HV: 12025057

9

Hơn nữa, N (C
x
 E
x
) = 14, và P (C
x
 E
x
) = 14 / 64 = 7 / 32.
Để thực hiện đầy đủ các bước trên, chúng ta có thể xây dựng một loạt các bảng
từ Bảng phân bổ các cặp XOR nói trên. Từ đó, chúng ta có thể liệt kê chính xác các
cặp giá trị đầu vào (input XOR) cho trước cũng như các giá trị đầu ra tương ứng. Số
lượng “bộ” ở Bảng 1 được chính là là số lượng các cặp đầu vào cụ thể được thể hiện
trong các bảng được trình bày trong phần tiếp theo.
IV. Ví dụ về tấn công thám mã vi sai đối với DES một vòng


Trong phần này sẽ trình diễn một ví dụ về tấn công DES giảm xuống 1 vòng.
Chúng ta sẽ nhận thấy sự phức tạp của tập các thủ tục xử lý toàn bộ các tính toán liên
quan. Đồng thời trong ví dụ này cũng giảm hệ DES xuống còn 1 hộp S - hộp S
1
. Đối
với việc dò tìm 42 bít khóa dựa vào 7 hộp S còn lại sẽ được thực hiện với thuật toán
tương tự. Tuy nhiên, độ phức tạp khi dò tìm các bít khóa tương ứng với mỗi hộp S là
khác nhau do đặc điểm “mạnh” hay “yếu” của từng hộp S đó.
Việc đơn giản hóa bài toán như vậy chỉ với mục đích thể hiện ý tưởng, phương
pháp thám mã vi sai đối với DES. Tất nhiên khi tăng số vòng của DES lên n vòng (1 <
n < 16) và cuối cùng đối với DES đầy đủ 16 vòng thì thuật toán thám mã cần phải
được thay đổi nhiều đồng thời độ phức tạp của nó cũng tăng lên theo cấp lũy thừa.
1. Tiền tính toán: (Các giá trị được quy về hệ Thập lục phân (HexaDecimal).
 Trong ví dụ này các ký hiệu được hiểu như sau:
- S
1E
, S
*
1E
: cặp giá trị đầu vào Hộp S
1
(6 bit) trước khi XOR với 6 bit của khóa
k.
- S
1I
, S
*
1I
: cặp giá trị đầu vào Hộp S

1
(6 bit) sau khi XOR với 6 bit của khóa k.
- S
1O
, S
*
1O
: cặp giá trị đầu ra Hộp S
1
(4 bit).
- S
1k
: 6 bít của khóa k sử dụng để XOR với các đầu vào 6 bít S
1E
, S
*
1E
.
 Giả sử chúng ta có cặp vào S
1E
= 08
x
và S
*
1E
= 04
x
với khóa bí mật là S
1k
= 1A

x.

Thực hiện lần vết các giá trị kết quả của hàm F như sau:
S
1I
= S
1E

⊕⊕

S
1k

= 08
x

⊕⊕

1A
x

S
*
1I
= S
*
1E

⊕⊕


S
1k

= 04
x

⊕⊕

1A
x



= 12x
 Sử dụng hộp S
1
, ta có:
S
1O
= S
1
(S
1I
)


= S
1
(12
x

)


= A
x

Bởi vậy, S’
1O
= S
1O
⊕ S*
1O

Bỏ qua khóa S
1k
, tính S’
1E

= S’
Tra Bảng 1 với cặp (XOR v
ào, XOR ra) = (0C
2. Dò tìm khóa:
 Bước 1: T
ừ Bảng 1, xét:
đầu vào là 0C
x
và các giá tr
đầu ra là 0D
x
, ta có:

 Bước 2: Chọn S’
1I


ứng là: (S
1I
, S
*
1I
) ∈
∈∈
∈ {(01
x
, 0D
Tiếp đó, chọn cặp (S
1E
, S
*
1E
S
1I
⊕ S
1E
và lập và l
ập Bảng 3.
- K19 HTTT
= 1E
x

, ta có:


S
*
1O
= S
1
(S
*
1I
)


= S
1
(1E
x
)


= 7
x


= 0D
x
(XOR ra)
= S’
1I
= (S
1E

⊕ S*
1E)
= 0C
x
(XOR vào)
ào, XOR ra) = (0C
x
, 0D
x
)
ng 1, xét:
S’
1E
= S’
1I
= 0C
x
và l
ập Bảng 2 với giá tr
và các giá tr
ị khác nhau đầu ra tương
ứng; chọn giá tr


S’
1O
<=> 0C
x
 0D
x

. Vậy t
a có các c
, 0D
x
), (12
x
, 1E
x
), 36
x
, 3A
x
)}
1E
) = (08
x
, 04
x
), tính các “khóa có thể” t
heo công th
ảng 3.

Các c

để
vi sai

- : 12025057
10
ới giá trị khác nhau

ọn giá trị khác nhau
a có các c
ặp đầu vào tương
heo công th
ức: S
1k
=

p đầu vào có thể
vi sai đ
ầu ra là 0Dx
Vũ Đức Mạnh - K19 HTTT - Mã HV: 12025057

11


Bảng 3: Các khóa có thể đối với cặp vi sai 0Cx



0Dx,
đầu vào (S
1E
, S
*
1E
) = (08
x
, 04
x

)
Từ Bảng 1, xét: S’
1E
= S’
1I
= 0C
x

S’
1I
 S’
1O
<=> 0C
x
 0A
x
 lập Bảng 2, Ta có các cặp đầu vào:
(S
1I
, S*
1I
) ∈ {(22
x
, 2E
x
), (30
x
, 3C
x
), 34

x
, 38
x
)}.
Chọn cặp (S
1E
, S
*
1E
) = (38
x
, 34
x
), tính các “khóa có thể” theo công thức: S
1k
=
S
1I
⊕ S
1E
và lập Bảng 4.

Bảng 4: Các khóa có thể đối với cặp vi sai 0C
x




0A
x

,
đầu vào (S
1E
, S
*
1E
) = (38
x
, 34
x
)
 Bước 3: Từ Bảng 1, xét: S’
1E
= S’
1I
= 10
x
. Chọn giá trị khác nhau đầu vào
(10
x
) và lập Bảng 5.
Cô l
ập vùng khóa


 Bước 4: Tham chi
ếu B
S’
1O
<=> 10

x
 A
x
), Ta có các c
(S
1I
, S*
1I
) ∈ {(01
x
, 11
x
Chọn cặp (S
1E
, S*
1E
) = (3B
S
1I
⊕ S
1E
và lập Bảng 6.
Bảng 6:
Các khóa có th
đ

 Bước 5: Xác đ
ịnh khóa duy nh
- K19 HTTT


ếu Bảng 5, với giá trị
khác nhau đ
ầu ra (A
), Ta có các c
ặp đầu vào:
x
), (21
x
, 31
x
), (2F, 3F)}.
) = (3B
x
, 2B
x
), tính các “khóa có thể” t
heo công th
Các khóa có th
ể đối với cặp vi sai 10x




Ax,
đ
ầu vào (S
1E
, S*
1E
) = (3Bx, 2Bx)

nh khóa duy nhất:
1A
x
.
khóa
Các cặ
p đ
để
vi sai

- : 12025057
12
u ra (A
x
), (hay S’
1I

heo công th
ức: S
1k
=

Ax,

Xác định
khóa
duy nhất
p đ
ầu vào có thể
vi sai đ

ầu ra là 0Dx
Vũ Đức Mạnh - K19 HTTT - Mã HV: 12025057

13

Như vậy, từ hộp S
1


thực hiện tiền tính toán dựa trên hộp S
1
và qua 5 bước xử
lý cùng với 2 cặp bản rõ có lựa chọn (08
x
, 04
x
) và (3B
x
, 2B
x
), chúng ta có thể xác định
được giá trị khóa là “1A” (ở dạng thập lục phân) tương đương 6 bít khóa (011010) ở
dạng nhị phân sử dụng cho hộp S
1
.
Để có thể dò tìm được đầy đủ 48 bít khóa (khóa con) cần sử dụng đủ 8 hộp S (từ S
1

đến S
8

) cùng với một loạt các bảng tham chiếu và các dữ liệu tiền tính toán của chúng.
V. Kết luận và hướng phát triển tiếp theo
Khi số vòng lặp của DES (n<=16) tăng lên 3 vòng, 5 vòng, 8 vòng, thì độ
phức tạp của thuật toán thám mã nói chung và thám mã vi sai nói riêng tăng lên gấp
bội (theo cấp lũy thừa). Tương ứng với độ phức tạp tăng lên của thám mã vi sai chính
là số lượng bản rõ lựa chọn để thực hiện dò tìm khóa. Cho dù là số vòng lặp của DES
tăng lên, thậm chí là đủ 16 vòng thì việc dò tìm khóa vẫn chủ yếu tấn công vào các
hộp S. Trong đó, việc dựa trên cơ sở các hộp S “yếu” (chẳng hạn S
1
, S
5
) sẽ giúp dò
tìm khóa nhanh hơn các hộp S khác.
Thông thường, việc dò tìm khóa chính là dò tìm khóa con cuối cùng (k
16
). Sau
khi đã có K
16
, chúng ta dễ dàng suy luận ra các khóa con khác k
15
, k
14
, , k
1
, và khóa
chính K bằng cách tính ngược các phép toán tuyến tính (hoán vị, dịch vòng trái, ).
Như chúng ta đã biết, việc dò tìm khóa căn cứ vào xác suất tồn tại các cặp vi sai
(vào - ra) của từng vòng lặp. Khi số vòng lặp tăng lên thì xác suất tồn tại các cặp vi sai
này cho đến vòng mã hóa cuối cùng là rất nhỏ. Điều này đồng nghĩa với việc chúng ta
cần sử dụng một số lượng cặp bản rõ, bản mã rất lớn.

Thám mã vi sai là phương pháp tấn công đầu tiên đối với DES để có thể tìm
thấy khóa nhanh hơn là tìm kiếm vét cạn không gian khóa. Theo lý thuyết, đây là một
kiểu tấn công có tính khả thi. Nhưng theo Bảng 7 dưới đây, tấn công thám mã vi sai là
dường như khó đạt hiệu quả trên thực tế.
Vũ Đức Mạnh - K19 HTTT - Mã HV: 12025057

14


Bảng 7: Tổng hợp về khả năng tấn công thám mã vi sai đối với DES

Đối với phiên bản DES đầy đủ 16 vòng, chúng ta cần có 2
47
bản mã. Điều này
tương đương với xấp xỉ 280 tỷ tỷ phép mã hóa cần phải thực hiện.
Lý do cần rất nhiều cặp bản rõ/bản mã như vậy là bởi vì DES đã được thiết kế
để chống tấn công thám mã vi sai kể từ khi Biham và Shamir công bố hai bài báo về
thám mã vi sai (năm 1990). Tương tự, thì các hệ mật mã mới, xuất hiện sau DES cũng
đều đã được thiết kế để chống lại dạng tấn công này.
Đối với các hệ mật mã được thiết kế cùng với thời kỳ đầu tiên của DES như là
LOKI, FEAL, FEAL-N/NX, chưa được thiết kế lại là rất dễ bị tấn công thám mã vi
sai.
Cải tiến thành công của DES:
Kể từ khi thám mã vi sai được biết đến rộng rãi, nó trở thành một sự quan tâm
đáng kể của những người thiết kế hệ mật mã. Những hệ mã hóa mới cần đều phải
được chứng minh thuật toán có khả năng chống lại kiểu tấn công này. Và đã có nhiều
hệ mã hóa, trong đó có Chuẩn mã hóa tiến bộ (Advanced Encryption Standard – AES)
Vũ Đức Mạnh - K19 HTTT - Mã HV: 12025057

15


đã chứng minh được khả năng chống lại tấn công vi sai. Chúng ta có thể quan sát và
so sánh mức độ an toàn của DES và AES qua Hình 3, Hình 4 dưới đây:


Hình 3: Bản đồ phân bổ
các cặp XOR của một trong
các hộp S của DES
Hình 4: Bản đồ phân bổ
các cặp XOR của một trong
các hộp S của AES
Hiện nay, đã có một số nghiên cứu mới được công bố về các phương pháp thám
mã nói chung và thám mã vi sai nói riêng ứng dụng thuật toán di truyền (Genetic
Algorithms - GAs). Thuật toán này đã được ứng dụng trong nhiều lĩnh vực. Riêng đối
với lĩnh vực thám mã đã bước đầu cho thấy tính hiệu quả của nó trong dò tìm khóa,
giới hạn không gian khóa. Và trong tương lai không xa, thuật toán di truyền sẽ được
ứng dụng thành công trong thám mã các hệ mật mới, hay các hệ mật đã được chứng
minh là an toàn./.







Vũ Đức Mạnh - K19 HTTT - Mã HV: 12025057

16

TÀI LIỆU THAM KHẢO


 Differential Cryptanalysis Data Encryption Standard – Alan Silvester,
Năm 2004.
 Differential Cryptanalysis of DES-like Cryptosystems – E. Biham và A.
Shamir (Tạp chí Mật mã, Tập 4, số 1, Năm 1990).


×