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

Nghiên cứu phương pháp tấn công chuẩn mật mã khối (DES) nhờ hệ thống tính toán hiệu năng cao

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.99 MB, 76 trang )

iii

MỤC LỤC

Trang phụ bìa
Lời cam đoan i
Lời cảm ơn ii
Mục lục iii
Danh mục các từ viết tắt tiếng Anh vi
Danh mục các bảng vii
Danh mục các hình vẽ, đồ thị viii
MỞ ĐẦU 1
Chƣơng I. GIỚI THIỆU VỀ CHUẨN MÃ HÓA DỮ LIỆU DES (DATA
ENCRYPTION STANDARD) 3
1.1. Giới thiệu về Thuật toán mã hoá DES 3
1.2. Quy trình mã hóa theo DES 4
1.3. Lập mã và giải mã DES 4
1.3.1. Quy trình lập mã DES 4
1.3.2. Thực hiện mã hóa DES theo sơ đồ 6
1.3.3. Tính các khóa con k
1
, k
2
, , k
16
từ khóa gốc K 7
1.3.4. Tính hàm f(R
i-1
, k
i
) 9


1.3.5. Quy trình giải mã DES 12
1.3.6. Độ an toàn của Chuẩn mã hóa dữ liệu DES 12
1.4. Các chế độ mã hóa của DES 13
1.4.1. Chế độ bản mã cơ bản (EBC) 13
1.4.2. Chế độ liên kết khối mã (CBC) 14
Chƣơng II. CÁC PHƢƠNG PHÁP THÁM MÃ CHUẨN MÃ HÓA DỮ LIỆU DES,
CÁC HỆ THỐNG CHUYÊN DỤNG PHỤC VỤ THÁM MÃ DES 15
2.1. Một số khái niệm cơ bản 15
2.2. Các phƣơng pháp thám mã 16
2.2.1. Thám mã đƣờng tắt 16
2.2.1.1. Thám mã vi sai 16
iv

2.2.1.2. Thám mã tuyến tính 19
2.2.1.3. Thám mã phi tuyến 19
2.2.1.4. Thám mã vi sai tuyến tính 20
2.2.1.5. Một số phƣơng pháp thám mã đƣờng tắt khác 20
2.2.2. Thám mã hộp đen (vét cạn để tìm khóa) 20
2.3. Các hệ thống chuyên dụng phục vụ thám mã 21
2.3.1. Các phần cứng chuyên dụng 21
2.3.2. Các hệ thống tính toán hiệu năng cao 22
Chƣơng III. NGHIÊN CỨU, ĐỀ XUẤT PHƢƠNG PHÁP THÁM MÃ DES 24
3.1. Mô tả bài toán thám mã DES 24
3.1.1. Các giả thiết của bài toán 24
3.1.2. Chi tiết hóa bài toán và các yếu tố đầu vào 24
3.2. Xây dựng thuật toán nhận dạng bản rõ tiếng Anh 25
3.2.1. Vai trò của nhận dạng bản rõ tự động trong thám mã “vét cạn” 26
3.2.2. Một số phƣơng pháp nhận dạng bản rõ tự động 26
3.2.2.1. Nhận dạng dựa vào từ điển 26
3.2.2.2. Nhận dạng dựa trên tập hợp từ, cụm từ giả định 27

3.2.2.3. Nhận dạng dựa vào phƣơng pháp thống kê đặc trƣng ngôn ngữ 27
3.2.3. Xây dựng thuật toán nhận dạng bản rõ dựa vào phƣơng pháp thống kê đặc
trƣng ngôn ngữ 28
3.2.3.1. Một số khái niệm cơ sở về “bản rõ” 28
3.2.3.2. Thuật toán nhận dạng bản rõ 29
3.3. Tìm hiểu thuật toán di truyền (GAs) 36
3.3.1. Giới thiệu 36
3.3.2. Thuật toán di truyền nhị phân 36
3.3.2.1. Thuật toán di truyền nhị phân - sự chọn lọc tự nhiên trên máy tính 36
3.3.2.2. Các thành phần của thuật toán di truyền nhị phân 37
3.4. Đề xuất phƣơng pháp thám mã DES 46
3.4.1. Xây dựng thuật toán di truyền dò tìm khóa 46
3.4.1.1. Xác định hàm phù hợp (hàm chi phí) 47
v

3.4.1.2. Tạo lập họ khóa khởi tạo 48
3.4.1.3. Giải mã bản mã cho trƣớc với các khóa trong họ 49
3.4.1.4. Tính mức độ phù hợp của các khóa 50
3.4.1.5. Chọn lọc 50
3.4.1.6. Ghép cặp 50
3.4.1.7. Kết hợp 51
3.4.1.8. Đột biến 51
3.4.1.9. Thế hệ tiếp theo 52
3.4.1.10. Kiểm tra hội tụ 53
3.4.2. Vai trò của hệ thống tính toán song song 53
3.4.3. Ƣớc lƣợng thời gian, độ phức tạp của tính toán 56
KẾT LUẬN 58
TÀI LIỆU THAM KHẢO 59
PHỤ LỤC 1. Bảng trọng số tần suất bộ đôi chữ cái tiếng Anh 60
PHỤ LỤC 2. Mã nguồn chƣơng trình thám mã DES áp dụng thuật toán di truyền chạy

trên máy tính đơn 61



vi

DANH MỤC CÁC TỪ VIẾT TẮT TIẾNG ANH

Viết tắt
Viết đầy đủ
Nghĩa tiếng Việt
DES
Data Encryption Standard
Chuẩn mã hoá dữ liệu
FEAL
Fast Data Encipherment Algorithm
Thuật toán mã hóa dữ liệu nhanh
AES
Advanced Encryption Standard
Chuẩn mã hoá tiến bộ
IDEA
International Data Encryption
Algorithm
Thuật toán mã hoá dữ liệu quốc tế
3 DES
Triple Data Encryption Standard
Một phiên bản mới của DES
GA
Genetic Algorithm
Thuật toán di truyền

ECB
Electronic Codebook
Chế độ mã hoá cơ bản
CBC
Cipher Block Chaining
Chế độ mã hoá liên kết khối mã



vii


DANH MỤC CÁC BẢNG

Số hiệu
Tên bảng
Trang
Bảng 2.1
Tổng hợp về khả năng tấn công thám mã vi sai đối với
DES
18
Bảng 3.1
Ví dụ về trình diễn mã hóa nhị phân
39
Bảng 3.2
Ví dụ về tiến trình ghép cặp và giao phối theo hình thức
lai ghép điểm đơn
43
Bảng 3.3
Tính toán mức độ phù hợp của các khoá trong một thế hệ

50


viii

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Số hiệu
Tên hình vẽ, đồ thị
Trang
Hình 1.1
Mô phỏng sự mã hoá (a) và giải mã (b) theo DES
3
Hình 1.2
Sơ đồ quy trình lập mã DES
5
Hình 1.3
Sơ đồ quy trình tính các khóa con k
1
, k
2
, , k
16

7
Hình 1.4
Sơ đồ quy trình tính hàm f (R
i-1
, k
i
)

9
Hình 1.5
Mã hóa và giải mã theo chế độ mã hóa cơ bản (EBC)
13
Hình 1.6
Mã hóa và giải mã theo chế độ liên kết khối mã (CBC)
14
Hình 2.1
So sánh mức an toàn giữa DES và AES dƣới góc độ thám
mã vi sai
19
Hình 3.1
Mô tả giả thiết và bài toán thám mã DES
24
Hình 3.2
So sánh thám mã dựa trên nhận dạng bản rõ thủ công
và nhận dạng bản rõ tự động
25
Hình 3.3
Mô phỏng về xác suất chuyển giữa hai chữ cái liền kề trong
chữ viết tiếng Anh
28
Hình 3.4
Sự tƣơng tự giữa thuật toán di truyền và di truyền sinh
học
36
Hình 3.5
Biểu đồ luồng của thuật toán di truyền nhị phân
37
Hình 3.6

Biểu diễn giao phối với hình thức lai ghép điểm đơn
42
Hình 3.7
Quy trình thám mã dựa trên thuật toán di truyền
46
Hình 3.8
Quy trình tạo lập tập khóa khởi tạo P (N
pop
) gồm 100
khóa
49
Hình 3.9
Mức độ tăng tốc theo lý thuyết của GA với N
pop
= 100
54
Hình 3.10
Mô hình của một GA song song master - slave
54
Hình 3.11
Số lƣợng bộ vi xử lý tối ƣu khi áp dụng mô hình GA
master - slave theo tỷ lệ T
f
/T
c
và N
pop

55


1

MỞ ĐẦU
DES (viết tắt của Data Encryption Standard, hay Chuẩn mã hóa dữ liệu) là một hệ
mật mã khóa đối xứng do Công ty IBM thiết kế dựa trên hệ mật mã do chính họ đã nghiên
cứu trƣớc đó - hệ mật mã Lucifer và đƣợc FIPS (Tiêu chuẩn xử lý thông tin Liên bang
Hoa Kỳ) chọn làm chuẩn chính thức vào năm 1976. Sau đó, Chuẩn này đƣợc sử dụng
rộng rãi trên phạm vi thế giới.
Ngay từ đầu, thuật toán của nó đã gây ra rất nhiều tranh luận liên quan đến các
thành phần thiết kế mật, độ dài khóa tƣơng đối ngắn. Do đó, DES đã đƣợc giới nghiên
cứu xem xét rất kỹ lƣỡng, việc này đã thúc đẩy hiểu biết hiện đại về mật mã khối (block
cipher) và các phƣơng pháp tấn công (hay thám mã) tƣơng ứng. Có thể nói, sự xuất hiện
của DES đã tạo nên một làn sóng, một nguồn cảm hứng nghiên cứu trong giới khoa học
về lĩnh vực mật mã học, đặc biệt là các phƣơng pháp thám mã mã khối. Với DES, giới
khoa học đã có một thuật toán mật mã để nghiên cứu.
Mặc dù trong thời gian qua đã có rất nhiều kết quả nghiên cứu về thám mã DES đã
đƣợc công bố, DES có thể bị phá khoá bởi các hệ thống chuyên dụng trong vòng chƣa đầy
24 giờ, nhƣng việc nghiên cứu thám mã DES vẫn có ý nghĩa để hƣớng tới thám mã các hệ
mật mã khối có độ dài khóa mật lớn hơn, đã và đang dần thay thế DES nhƣ AES, IDEA, 3
DES, RC4, RC5, Phân tích mật mã hay thám mã còn đƣa ra những khuyến cáo, phản
hồi cho các chuyên gia trong thiết kế lại các hệ mật mã để chống lại các dạng tấn công
mới. Đồng thời, nó cũng có ý nghĩa trong hỗ trợ công tác tình báo, phản gián v.v
Với lý do trên, tác giả chọn đề tài: “Nghiên cứu phƣơng pháp thám mã Chuẩn
mật mã DES nhờ hệ thống tính toán hiệu năng cao”. Trong phạm vi nghiên cứu của đề
tài này, bài toán đặt ra là với một bản mã đƣợc mã hoá từ một thông điệp tiếng Anh bởi
Thuật toán mã hoá DES, với giả thiết ngƣời thám mã có thể truy cập đến chức năng mã
hóa/giải mã của DES. Từ giả thiết này, yêu cầu ứng dụng hệ thống tính toán hiệu năng
cao, thuật toán di truyền (Genetic Algorithm) để xây dựng thuật toán dạng thám mã “hộp
đen” để tìm ra khoá mật đã sử dụng để mã hoá thông điệp đó trong thời gian ngắn (dự
kiến khoảng 8 đến 15 phút).

Tác giả đã nghiên cứu, trình bày Luận văn thành ba chƣơng. Nội dung chính, kết
quả nghiên cứu của các chƣơng nhƣ sau:
Chƣơng I: Giới thiệu về chuẩn mã hoá dữ liệu - DES (Data Encryption Standard).
Chƣơng II: Các phƣơng pháp thám mã Chuẩn mã hoá dữ liệu DES, các hệ thống
chuyên dụng phục vụ thám mã DES.
2

Chƣơng III: Nghiên cứu, đề xuất phƣơng pháp thám mã DES
Do mức độ phức tạp của công việc thám mã là rất lớn nên bài toán đặt ra với giả
thiết ngƣời thám mã biết đƣợc các thông tin về bản mã đƣợc mã hóa bởi DES (chế độ
ECB) từ “bản rõ” tƣơng ứng là một thông điệp tiếng Anh. Từ giả thiết này, xây dựng
thuật toán di truyền để xác định khóa mật k đã sử dụng để mã hóa cũng nhƣ tìm ra “bản
rõ” tƣơng ứng.
Để giải quyết yêu cầu đặt ra và các bài toán nói trên, bài toán đƣợc chia thành các
bài toán con để gải quyết vấn đề:
- Xây dựng thuật toán nhận dạng “bản rõ” và “tiêu chuẩn bản rõ” là cơ sở xác định
hàm “phù hợp”, một thành phần quan trọng của thuật toán di truyền nói chung và của
thuật toán di truyền thám mã nói riêng.
- Tìm hiểu về thuật toán di truyền, xây dựng thuật toán di truyền để thực hiện tìm
kiếm khoá mật với phƣơng pháp “vét cạn có định hƣớng” trong không gian khoá (K
2
) xác
định khoảng 209 tỷ khóa.
Độ phức tạp của phƣơng pháp này chủ yếu phụ thuộc sự phán đoán, nhận dạng
ngôn ngữ của “bản rõ” tƣơng ứng với bản mã và phụ thuộc độ dài của khóa (số lƣợng bit
khóa), hoàn toàn không phụ thuộc vào thuật toán mã hóa khối mã của DES. Vì vậy, để đạt
đƣợc kết quả, mục tiêu nghiên cứu, tác giả đã sử dụng phƣơng pháp thống kê đặc trƣng
ngôn ngữ và áp dụng thuật toán di truyền.
Đề tài tập trung nghiên cứu, xây dựng thuật toán nhận dạng bản rõ và thuật toán di
truyền. Đồng thời, tác giả đã đề xuất ứng dụng mô hình hệ thống tính toán song song, mô

hình GA master - slave giúp rút ngắn thời gian thám mã khoảng 100 lần. Để đạt đƣợc kết
quả thám mã một cách tốt nhất, đòi hỏi phải có đƣợc một hệ thống tính toán song song và
kỹ năng lập trình song song. Tuy nhiên, với điều kiện và khả năng thực tế, tác giả đã xây
dựng dựng chƣơng trình thám mã thử nghiệm bằng ngôn ngữ Visual Basic .NET 2008
chạy trên một máy tính đơn, và giả định thuật toán di truyền hội tụ sau hai triệu thế hệ thì
tổng thời gian thám mã ƣớc lƣợng khoảng 19,4 giờ.


3

Chƣơng I. GIỚI THIỆU VỀ CHUẨN MÃ HÓA DỮ LIỆU - DES (DATA ENCRYPTION
STANDARD) [4]
1.1. GIỚI THIỆU VỀ THUẬT TOÁN MÃ HOÁ DES
DES đƣợc phân biệt giữa hai khái niệm là Chuẩn mã hoá dữ liệu (DES - Data
Encryption Standard) và Thuật toán mã hoá dữ liệu (DEA - Data Encryption Algorithm).
Thuật toán mã hoá là thành phần cơ bản của Chuẩn mã hoá. Việc nghiên cứu, phân tích về
DES chính là nghiên cứu, phân tích về thuật toán của nó.
Trong lĩnh vực mật mã học, có hai loại hệ mật mã thƣờng đƣợc đề cập đến, đó là
mật mã khoá công khai (khoá bất đối xứng) và mật mã khoá bí mật (khoá đối xứng).
Riêng đối với hệ mật mã đối xứng lại chia ra làm hai loại là mã hoá, giải mã theo khối và
mã hoá, giải mã theo dòng. DES (Data Encryption Standard) hay Chuẩn mã hóa dữ liệu
thuộc hệ mật mã khoá đối xứng và thực hiện mã hoá, giải mã theo khối. Độ dài của khối
thông tin mã hoá, giải mã là 64 bit.
Quy trình mã hoá, giải mã khối gồm hai thuật toán là mã hoá (ký hiệu là E) và giải
mã (ký hiệu là D). Cả hai thuật toán đều tác động lên một khối đầu vào 64 bit sử dụng
khoá 56 bit để cho ra khối 64 bit. Đối với bất kỳ khoá nào, giải mã là hàm ngƣợc của mã
hoá, nghĩa là:
- Mã hoá khối: E
k
(M),

- Giải mã khối: M = D
k
(E
k
(M)),
trong đó, M là khối thông tin 64 bit và k là khoá 56 bit.
Thuật toán mã hóa
DES
Khoá K
56 bit
Bản rõ 64 bit
Bản mã 64 bit
Thuật toán giải mã
DES
-1
Khoá K
56 bit
Bản mã 64 bit
Bản rõ 64 bit

a. Quy trình mã hoá
b. Quy trình giải mã
Hình 1.1. Mô phỏng sự mã hoá (a) và giải mã (b) theo DES
4

1.2. QUY TRÌNH MÃ HÓA THEO DES
Quy trình mã hoá của mật mã khối nói chung và mã hoá theo DES nói riêng đƣợc
thực hiện qua năm giai đoạn sau:
Giai đoạn 1:
“bản rõ” chữ


“bản rõ” số
(Dạng nhị phân)
Giai đoạn 2:
“bản rõ” số

Các đoạn 64 bit
Rõ số

Giai đoạn 3:
64 bit Rõ số

64 bit Mã số

Giai đoạn 4:
Các đoạn 64 bit Mã số

Bản Mã số
(Dạng nhị phân)
Giai đoạn 5:
Bản Mã số

Bản Mã chữ

1.3. LẬP MÃ VÀ GIẢI MÃ DES
1.3.1. Quy trình lập mã DES
Thuật toán DES tập trung thực hiện Giai đoạn 3 của quy trình mã hóa. Đó là
chuyển đổi “bản rõ” số với 64 bit thành bản Mã số với 64 bit.

5



























Hình 1.2. Sơ đồ quy trình lập mã DES
“bản rõ”: 64
bit
L

0

R
0

IP

f
k
1

R
1
= L
0
 f (R
0
, k
1
)

L
1
= R
0


k
2


R
2
= L
1
 f (R
1
, k
2
)

L
1
= R
0


f
R
15
= L
14
 f (R
14
, k
15
)

L
15
= R

14


f
k
16

L
16
= R
15


R
16
= L
15
 f (R
15
, k
16
)

IP

Bản mã: 64 bit

6

1.3.2. Thực hiện mã hóa DES theo sơ đồ

* “bản rõ” là xâu X, bản mã là xâu Y, khóa là xâu k, đều có độ dài 64 bit
* Thuật toán mã hóa DES thực hiện qua 3 bƣớc chính sau:
Bƣớc 1: “bản rõ” x đƣợc hoán vị theo hoán vị IP, thành IP (x).
IP (x) = L
0
R
0
, trong đó L
0
là 32 bit đầu (left), R
0
là 32 bit cuối (right). (IP (x) tách
thành L
0
R
0
).
Bƣớc 2: Thực hiện 16 vòng mã hóa với những phép toán giống nhau.
Dữ liệu đƣợc kết hợp với khóa thông qua hàm f:
L
i
= R
i-1
, R
i
= L
i-1
 f (R
i-1
, k

i
), trong đó:
là phép toán
ho
ặc loại trừ của hai dãy bit (cộng theo modulo 2).
k
1
, k
2
, , k
16
là các khóa con (48 bit) đƣợc tính từ khóa gốc K.
Bƣớc 3: Thực hiện phép hoán vị ngƣợc IP
-1
cho xâu R
16
L
16
, thu đƣợc bản mã y.
Y = IP
-1
(R
16
L
16
). (Lƣu ý thứ tự bit R
16
và L
16
).

* Hoán vị ban đầu IP
+ bit 1 của IP(x) là bit 58 của x
58
50
42
34
26
18
10
2
+ bit 2 của IP(x) là bit 50 của x
60
52
44
36
28
20
12
4

62
54
46
38
30
22
14
6

64

56
48
40
32
24
16
8

57
49
41
33
25
17
9
1

59
51
43
35
27
19
11
3

61
53
45
37

29
21
13
5

63
55
47
39
31
23
15
7

7

* Hoán vị cuối cùng IP
-1


40
8
48
16
56
24
64
32

39

7
47
15
55
23
63
31

38
6
46
14
54
22
62
30

37
5
45
13
53
21
61
29

36
4
44
12

52
20
60
28

35
3
43
11
51
19
59
27

34
2
42
10
50
18
58
26

33
1
41
9
49
17
57

25
1.3.3. Tính các khóa con k
1
, k
2
, , k
16
từ khóa gốc K
Sơ đồ
K
PC-1
C
0
D
0
LS
1
LS
1
C
1
D
1
LS
2
LS
2
C
2
D

12
LS
16
LS
16
C
16
D
16
PC-2 K
1
PC-2 K
2
PC-2 K
16

Hình 1.3. Sơ đồ quy trình tính các khóa con k
1
, k
2
, , k
16


8

* Tính khóa k
i
(48 bit):
- Khóa K là xâu 64 bit, trong đó 56 bit là khóa và 8 bit để kiểm tra chẵn lẻ nhằm

phát hiện sai, các bit này không tham gia vào quá trình tính toán.
Các bit kiểm tra tính chẵn lẻ nằm ở vị trị 8, 16, 24, 32, 40, 48, 56, 64, sao cho mỗi
byte chứa một số lẻ các bit 1. Bởi vậy mỗi sai sót đơn lẻ đƣợc xác định trong mỗi nhóm 8
bit.
- Tính khóa k
i
nhƣ sau:
+ Với khóa K có độ dài 64 bit, ta loại bỏ các bit kiểm tra tính chẵn lẻ, hoán vị 56
bit còn lại theo phép hoán vị PC-1:
PC-1(K) = C
0
D
0
Trong đó C
0
là 28 bit đầu, D0 là 28 bit cuối cùng của PC-1(K)
+ Với i = 1, 2, , 16, ta tính C
i
= LS
i
(C
i-1
), D
i
= LS
i
(D
i-1
)
Trong đó, LSi là phép chuyển dịch vòng trái:

→ Dịch 1 vị trí nếu i = 1, 2, 9, 16. Dịch 2 vị trí với những giá trị i khác.
+ Với i = 1, 2, , 16, khóa k
i
đƣợc tính theo phép hoán vị PC-2 từ C
i
D
i
:
k
i
= PC-2(C
i
D
i
) (48 bit)
* Phép hoán vị PC-1

* Phép hoán vị PC-2
57
49
41
33
25
17
9

14
17
11
24

1
5
1
58
50
42
34
26
18

3
28
15
6
21
10
10
2
59
51
43
35
27

23
19
12
4
26
8

19
11
3
60
52
44
36

16
7
27
20
13
2
63
55
47
39
31
23
15

41
52
31
37
47
55
7
62

54
46
38
30
22

30
40
51
45
33
48
14
6
61
53
45
37
29

44
49
39
56
34
53
21
13
5
28

20
12
4

46
42
50
36
29
32

9

1.3.4. Tính hàm f(R
i-1
, k
i
)
R
i-1
E(R
i-1
)
E
+
B
1
B
2
B

3
B
4
B
5
B
6
B
7
B
8

k
1
S
1
S
2
S
3
S
4
S
5
S
6
S
7
S
8


C
1
C
2
C
3
C
4
C
5
C
6
C
7
C
8

P
f (R
i-1
, k
i
)
32 bit
48 bit
48 bit

Hình 1.4. Sơ đồ quy trình tính hàm f (R
i-1

, k
i
)
Để cho đơn giản, ta không ghi chỉ số i-1, i, và mô tả cách tính f(R, k):
a) Mở rộng xâu R (32 bit) thành xâu 48 bit, theo hàm mở rộng E
E: R (32 bit) → E(R) (48 bit)
E(R) gồm 32 bit cũ của R và 16 bit của R xuất hiện lần thứ 2.
b) Tính E(R)  k, trong đó E(R) (48 bit) và k (48 bit)
Kết quả gồm 8 xâu B
j
có 6 bit (8 * 6 = 48):
B = B
1
B
2
B
3
B
4
B
5
B
6
B
7
B
8
10

c) Tính C

j
= S
j
(B
j
), j = 1, , 8. Dùng 8 bảng S
1
, S
2
, , S
8
.
S
j
là bảng cố định với r * c số nguyên từ 0 > 15, (0 ≤ r ≤ 3), (0 ≤ c ≤ 15).
S
j
thể hiện việc thay thế mỗi B
j
thành C
j
(C
j
là xâu 4 bit) theo quy tắc sau:
* Giả sử B
j
= b
1
b
2

b
3
b
4
b
5
b
6
(6 bit)
+ b
1
b
6
xác

định biểu diễn nhị phân của hàng r trong S
j
(0 ≤ r ≤ 3)


+ b
2
b
3
b
4
b
5
xác định


biểu diễn nhị phân của cột c trong S
j
(0 ≤ c ≤ 15)
Xâu C
j
(4 bit) đƣợc định nghĩa là biểu diễn nhị phân của phần tử S
j
(r, c)
d) Thực hiện 8 lần c), ta nhận đƣợc xâu C = C
1
C
2
C
8
(32 bit).
Sau hoán vị P, cho kết quả P(C), đó chính là f(R, k).
* Phép hoán vị mở rộng E

* Phép hoán vị P

32
1
2
3
4
5












4
5
6
7
8
9











8
9
10
11
12
13


16
7
20
21
29
12
28
17


12
13
14
15
16
17

1
15
23
26
5
18
31
10


16
17

18
19
20
21

2
8
24
14
32
27
3
9


20
21
22
23
24
25

19
13
30
6
22
11
4
25



24
25
26
27
28
29











28
29
30
31
32
1











* Các bảng S
1
, S
2
, , S
8
:
S
1
1
6
0
1
2
3
4
5
6
7
8
9
10
11
12
13

14
15
0
0
14
4
13
1
2
15
11
8
3
10
6
12
5
9
0
7
0
1
0
15
7
4
14
2
13
1

10
6
12
11
9
5
3
8
1
0
4
1
14
8
13
6
2
11
15
12
9
7
3
10
5
0
1
1
15
12

8
2
4
9
1
7
5
11
3
14
10
0
6
13
S
2
7
12
0
1
2
3
4
5
6
7
8
9
10
11

12
13
14
15
0
0
15
1
8
14
6
11
3
4
9
7
2
13
12
0
5
10
0
1
3
13
4
7
15
2

8
14
12
0
1
10
6
9
11
5
1
0
0
14
7
11
10
4
13
1
5
8
12
6
9
3
2
15
1
1

13
8
10
1
3
15
4
2
11
6
7
12
0
5
14
9
11

S
3
1
6
0
1
2
3
4
5
6
7

8
9
10
11
12
13
14
15
0
0
10
0
9
14
6
3
15
5
1
13
12
7
11
4
2
8
0
1
13
7

0
9
3
4
6
10
2
8
5
14
12
11
15
1
1
0
13
6
4
9
8
15
3
0
11
1
2
12
5
10

14
7
1
1
1
10
13
0
6
9
8
7
4
15
14
3
11
5
2
12
S
4
1
6
0
1
2
3
4
5

6
7
8
9
10
11
12
13
14
15
0
0
7
13
14
3
0
6
9
10
1
2
8
5
11
12
4
15
0
1

13
8
11
5
6
15
0
3
4
7
2
12
1
10
14
9
1
0
10
6
9
0
12
11
7
13
15
1
3
14

5
2
8
4
1
1
3
15
0
6
10
1
13
8
9
4
5
11
12
7
2
14
S
5
1
6
0
1
2
3

4
5
6
7
8
9
10
11
12
13
14
15
0
0
2
12
4
1
7
10
11
6
8
5
3
15
13
0
14
9

0
1
14
11
2
12
4
7
13
1
5
0
15
10
3
9
8
6
1
0
4
2
1
11
10
13
7
8
15
9

12
5
6
3
0
14
1
1
11
8
12
7
1
14
2
13
6
15
0
9
10
4
5
3
S
6
1
6
0
1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
0
12
1
10
15
9
2
6
8
0
13
3
4
14
7

5
11
0
1
10
15
4
2
7
12
9
5
6
1
13
14
0
11
3
8
1
0
9
14
15
5
2
8
12
3

7
0
4
10
1
13
11
6
1
1
4
3
2
12
9
5
15
10
11
14
1
7
6
0
8
13
S
7
1
6

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
0
4
11
2
14
15
0
8
13
3
12
9
7

5
10
6
1
0
1
13
0
11
7
4
9
1
10
14
3
5
12
2
15
8
6
1
0
1
4
11
13
12
3

7
14
10
15
6
8
0
5
9
2
1
1
6
11
13
8
1
4
10
7
9
5
0
15
14
2
3
12
S
8

1
6
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
0
13
2
8
4
6
15
11
1
10
9

3
14
5
0
12
7
0
1
1
15
13
8
10
3
7
4
12
5
6
11
0
14
9
2
1
0
7
11
4
1

9
12
14
2
0
6
10
13
15
3
5
8
1
1
2
1
14
7
4
10
8
13
15
12
9
0
3
5
6
11


12

* Quy định lập bảng S
j
:
- Mỗi hàng của bảng S phải là một hoán vị của 0, 1, , 15.
- Không có bảng S nào là hàm tuyến tính hay Apphin của các đầu vào của nó.
- Thay đổi 1 bit vào ở một bảng S, sẽ gây ra sự thay đổi ít nhất 2 bit ra của nó.
- Nếu 2 xâu vào của một bảng S giống nhau ở 2 bit đầu và 2 bit cuối, thì 2 xâu ra
phải khác nhau.
- Với mỗi bảng S, nếu cố định 1 bit vào xét giá trị của 1 bit ra nào đó, thì số các
xâu vào tạo ra giá trị 0 ở bit ra đó cũng phải xấp xỉ bằng số các xâu vào tạo ra giá trị 1 ở
bit ra đó.
1.3.5. Quy trình giải mã DES
Quy trình giải mã của DES tƣơng tự nhƣ quy trình lập mã, nhƣng sử dụng các khóa
theo thứ tự ngƣợc lại: k
16
, k
15
, , k
1
.
Xuất phát từ bản mã Y (đầu vào), kết quả là “bản rõ” X (đầu ra).
1.3.6. Độ an toàn của Chuẩn mã hóa DES
a) Độ an toàn của Chuẩn mã hóa DES có liên quan đến các bảng S
j
:
Ngoại trừ các bảng S, mọi tính toán trong DES đều tuyến tính, tức là việc tính phép
hoặc loại trừ của hai đầu ra cũng giống nhƣ phép hoặc loại trừ của hai đầu vào, rồi tính

toán đầu ra.
Các bảng S chứa đựng nhiều thành phần phi tuyến của hệ mật, là yếu tố quan trọng
nhất đối với độ an toàn của hệ thống.
Khi mới xây dựng hệ mật DES, thì tiêu chuẩn xây dựng các hộp S không đƣợc biết
đầy đủ. Và có thể các hộp S này có thể chứa các “cửa sập” đƣợc giấu kín. Và đó cũng là
một điểm đảm bảo tính an toàn của hệ mật DES.
b) Hạn chế của DES chính là kích thƣớc không gian khóa:
Số khóa có thể là 2
56
, không gian này là nhỏ để đảm bảo an toàn thực sự. Nhiều
thiết bị chuyên dụng đã đƣợc đề xuất nhằm phục vụ tấn công với một cặp “bản rõ” - bản
mã đã biết. Phép tấn công này chủ yếu thực hiện theo phƣơng pháp “vét cạn”. Tức là với
13

“bản rõ” X và bản mã Y tƣơng ứng (64 bit), mỗi khóa có thể đƣợc kiểm tra cho tới khi
tìm đƣợc một khóa K thỏa mãn e
k
(X) = Y.
1.4. CÁC CHẾ ĐỘ MÃ HÓA DES [15]
Các hệ mật mã khối nói chung và chuẩn mã hóa khối DES có 6 (sáu) chế độ mã
hóa chính, gồm chế độ mã hoá cơ bản (ECB - electronic codebook mode), chế độ liên kết
khối mã (CBC - cipher block chaining mode), chế độ phản hồi mã (CFB - cipher feedback
mode), PCBC (propagating cipher-block chaining), OFB (output feedback), CTR
(counter). Trong đó, chế độ mã hóa cơ bản ECB là đơn giản nhất.
Dƣới đây là sơ đồ mô tả chế độ mã hoá cơ bản và chế độ mã hoá liên kết khối mã.
1.4.1. Chế độ mã cơ bản (ECB - electronic codebook)
Mã hoá
mã khối
Khoá
Bản rõ

Bản mã
Mã hoá
mã khối
Khoá
Bản rõ
Bản mã
Mã hoá
mã khối
Khoá
Bản rõ
Bản mã

a. Mã hoá
Giải mã
mã khối
Khoá
Bản mã
Bản rõ
Giải mã
mã khối
Khoá
Bản mã
Bản rõ
Giải mã
mã khối
Khoá
Bản mã
Bản rõ

b. Giải mã

Hình 1.5. Mã hóa (a) và giải mã (b) theo chế độ mã cơ bản (ECB)
14

1.4.2. Chế độ liên kết khối mã (CBC - cipher block chaining)
Mã hoá
mã khối
Khoá
Bản rõ
Bản mã
Mã hoá
mã khối
Khoá
Bản rõ
Bản mã
Mã hoá
mã khối
Khoá
Bản rõ
Bản mã
Vector khởi tạo
(Initialization Vector – IV)

a. Mã hoá
Giải mã
mã khối
Khoá
Bản mã
Bản rõ
Giải mã
mã khối

Khoá
Bản mã
Bản rõ
Giải mã
mã khối
Khoá
Bản mã
Bản rõ
Vector khởi tạo
(Initialization Vector – IV)

b. Giải mã
Hình 1.6. Mã hóa (a) và giải mã (b) theo chế độ liên kết khối mã (CBC)
DES có thể áp dụng một trong các chế độ mã hoá nhƣ đã nói trên. Nhƣng để giới
hạn phạm vi nghiên cứu của đề tài, khi thực hiện hiện công việc thám mã đƣơng nhiên
chúng ta giả định bản mã cho trƣớc đƣợc mã hóa bởi chuẩn mã hóa DES, đồng thời cũng
giả định rằng bản mã đƣợc mã hóa theo chế độ mã cơ bản (ECB). Tức là “bản rõ” đƣợc
chia nhỏ thành các khối độc lập, mỗi khối 64 bit. Mỗi khối này đƣợc mã hóa bởi cùng
một khóa k nào đó để tạo ra các khối mã 64 bit độc lập.
Ngày nay, Thuật toán mã hóa dữ liệu (DEA - Data Encryption Algorithm) của
Chuẩn mã hóa dữ liệu DES đã đƣợc công bố chi tiết, cho nên các chƣơng trình mã hóa
DES, các thƣ viện mã nguồn mở vể DES đƣợc công bố rộng rãi. Phụ lục 1 của Luận văn
là một ví dụ về sử dụng Thƣ viện mã nguồn mở Chilkat.Crypt2 về DES để thực hiện mã
hóa, giải mã một thông điệp, với các chế độ mã hóa cơ bản (ECB), chế độ mã hóa liên kết
khối mã (CBC).

15

Chƣơng II. CÁC PHƢƠNG PHÁP THÁM MÃ CHUẨN MÃ HÓA DỮ LIỆU DES,
CÁC HỆ THỐNG CHUYÊN DỤNG PHỤC VỤ THÁM MÃ DES

2.1. MỘT SỐ KHÁI NIỆM CƠ BẢN
Để thuận tiện cho việc nghiên cứu của đề tài, chúng ta tìm hiểu một số khái niệm
về mật mã học, mật mã, mật mã hoá và phân tích mật mã, thám mã,
- Mật mã học là một lĩnh vực liên quan với các kỹ thuật ngôn ngữ và toán học để
đảm bảo an toàn thông tin, cụ thể là trong thông tin liên lạc. Về phƣơng diện lịch sử, mật
mã học gắn liền với quá trình mã hóa.
- Mật mã là thuật toán để mật mã hóa và giải mật mã. Hoạt động chính xác của mật
mã thông thƣờng đƣợc kiểm soát bởi khóa - một đoạn thông tin bí mật nào đó cho phép
tùy biến cách thức tạo ra văn bản mã.
- Mật mã hóa là quá trình chuyển đổi các thông tin thông thƣờng (văn bản thƣờng
hay văn bản “rõ”) thành dạng không đọc trực tiếp đƣợc, là văn bản mã. Giải mật mã là
quá trình ngƣợc lại, phục hồi lại văn bản thƣờng từ văn bản mã.
- Phân tích mật mã hay thám mã là khoa học nghiên cứu cách phá các hệ mật
nhằm phục hồi “bản rõ” ban đầu từ bản mã. Việc tìm hiểu các thông tin về khóa và các
phƣơng pháp biến đổi thông tin cũng là một nhiệm vụ quan trọng của phân tích mật mã.
Công việc phân tích bản tin mã hóa thƣờng để nhận đƣợc bản tin rõ trong điều kiện
không biết trƣớc khóa mã. Trong thực tế, công việc thám mã gặp nhiều khó khăn hơn khi
không biết rõ hệ mật mã nào đƣợc sử dụng. Tuy nhiên, để đơn giản hóa, chúng ta giả sử
ngƣời thám mã đã biết rõ hệ mật mã đƣợc sử dụng khi tiến hành phân tích mã. Hiện nay,
hầu hết các tài liệu đồng nhất giữa các khái niệm “phân tích mật mã”, “thám mã”, hay
“tấn công”
Có thể phân loại thám mã theo nhiều góc độ, nhƣng để đi theo hƣớng nghiên cứu
của đề tài, chúng ta phân loại thám mã thành hai dạng chính là “thám mã đƣờng tắt” và
“thám mã hộp đen”.
- Thám mã đường tắt là phƣơng pháp thám mã dựa trên các phân tích toán học, thống
kê và cấu trúc chi tiết bên trong thuật toán mã hóa hóa/giải mã, để từ đó có các thống kê
về xác suất, các hệ phƣơng trình tuyến tính, của hệ mã hóa giúp rút ngắn thời gian phá
mã so với “thám mã vét cạn”. Các phƣơng pháp thám mã đƣờng tắt đã đƣợc công bố gồm
có thám mã vi sai, thám mã tuyến tính, thám mã phi tuyến, thám mã vi sai tuyến tính v.v
Để thám mã thành công DES, các phƣơng pháp thám mã này thƣờng cần phải sử dụng

một số lƣợng rất lớn các cặp “bản rõ” - bản mã có lựa chọn (thám mã vi sai, thám mã vi
16

sai - tuyến tính cần 2
47
cặp “bản rõ” - mã, thám mã phi tuyến cần khoảng 2
43
cặp “bản rõ”
- mã), đồng thời cần phải phân tích, thống kê chi tiết thuật toán mã hóa. Do đó, phƣơng
pháp thám mã này thƣờng chỉ đƣợc công bố trên lý thuyết mà khó đạt đƣợc trong thực tế.
- Thám mã hộp đen hoàn toàn khác với thám mã đƣờng tắt, phƣơng pháp thám mã
này không phân tích chi tiết thuật toán mã hóa mà xem nó nhƣ là một “hộp đen” để dò tìm
khóa khi biết “bản rõ”, bản mã hoặc chỉ biết bản mã. Phƣơng pháp này có thể áp dụng cho
hệ mật mã khối bất kỳ. Độ phức tạp tính toán của phƣơng pháp này chỉ phụ thuộc vào các
tham số nhƣ độ dài khóa và độ dài khối mã. Thông thƣờng, khi ngƣời ta nói đến các
phƣơng pháp “thám mã vét cạn”, “tấn công vét cạn”, “tấn công bạo lực” (brute-force
attack), hay “tấn công dùng bạo lực” (attacks using force) thì đều có thể đƣợc hiểu nhƣ là
phƣơng pháp thám mã hộp đen.
Ngoài ra, với giả định khi ngƣời thám mã đã biết thuật toán mã hoá (đối với một hệ
mã hoá xác định), chúng ta có thể phân loại thám mã dựa trên các số lƣợng thông tin đƣợc
biết về “bản rõ”, bản mã:
- Thám mã chỉ biết bản mã: ngƣời thám mã chỉ có bản tin mã hóa,
- Thám mã chỉ biết bản tin rõ: ngƣời thám mã có bản tin rõ và bản mã tƣơng ứng,
- Thám mã với “bản rõ” được chọn: do ngƣời thám mã biết thuật toán mã hoá, nên
ngƣời đó có khả năng chọn bản tin rõ và xây dựng bản mã tƣơng ứng,
- Thám mã với bản mã được chọn: do ngƣời thám mã biết thuật toán mã hoá, nên
ngƣời đó có khả năng chọn bản mã và xây dựng lại bản tin rõ tƣơng ứng.
Trong mọi trƣờng hợp thám mã nói trên, mục đích là tìm ra khóa mật đƣợc sử
dụng cho hệ mã hoá.
2.2. CÁC PHƢƠNG PHÁP THÁM MÃ

2.2.1. Các phƣơng pháp thám mã đƣờng tắt
2.2.1.1. Thám mã vi sai [5]
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ố.
17

Giá trị khác nhau có thể đƣợc định nghĩa thông qua các nhiều cách, nhƣng phép
toán cộng loại trừ (- XOR) thƣờng đƣợc sử dụng. 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). Đối với
bất kỳ hệ mã hóa nào, để việc thám mã vi sai 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.
Độ 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 bit, phép mở rộng, và các phép XOR. Nếu nhƣ các hộp S cũng là
tuyến tính thì DES sẽ dễ dàng bị phá vỡ. Để 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 tấn công vào
hàm F, các hộp S gồm S
1
, S
2
,


đến S
8
. Theo nhƣ các kết quả nghiên cứu, thực nghiệm 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” hay “điểm yếu”
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. 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 một số bit
khóa nhanh hơn khi sử dụng 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, và đối với DES là 16 vòng lặp 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 rất lớn các cặp bản rõ - bản mã.
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. Tuy nhiên nhìn vào Bảng 2.1 dƣới đây, ta có thể thấy tấn công thám
mã vi sai là dƣờng nhƣ khó đạt hiệu quả trên thực tế.

18


Bảng 2.1. Tổng hợp về khả năng tấn công thám mã vi sai
đối với DES [5]
Số vòng lặp n
Số cặp bản rõ/mã cần thiết
8
2
14

9
2
24

10
2
24

11

2
31

12
2
31

13
2
39

14
2
39

15
2
47

16
2
47

Đố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. Còn đối với các hệ mật mã đƣợc thiết kế
cùng với thời kỳ đầu tiên với DES nhƣ là LOKI, FEAL, FEAL-N/NX, chƣa đƣợc thiết
kế lại thì vẫn có thể bị tấn công thám mã vi sai.
* Cải tiến thành công chống thám mã vi sai 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) đã 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 2.1 dƣới đây:
19



2.1(a) Biều đồ phân bổ
các cặp XOR của một trong
các hộp S của DES
2.1(b) Biểu đồ phân bổ
các cặp XOR của một trong
các hộp S của AES
Hình 2.1. So sánh mức an toàn giữa DES và AES dƣới góc độ thám mã vi sai [5]
2.2.1.2. Thám mã tuyến tính [11]
Nhƣ ta đã biết ở trên, hệ DES đã công khai toàn bộ các phép biến đổi trong nó,
trong đó chỉ có các hộp nén mới là các phép biến đổi phi tuyến. Các bí mật còn lại duy
nhất khi sử dụng DES đó là khóa K đƣợc sử dụng cụ thể. Nếu tất cả các phép biến đổi của
DES đều là tuyến tính, thì với ẩn số là khóa K cho trƣớc cố định, bằng công cụ mô phỏng
trên máy tính và sử dụng các cặp bản rõ - mã tƣơng ứng chúng ta có thể thiết lập đƣợc hệ
thống phƣơng trình tuyến tính để tìm lại đƣợc các bit khóa K trong thời gian đa thức. Tuy
nhiên, các hộp nén (thành phần quan trọng nhất của hệ DES) là các phép biến đổi phi
tuyến đƣợc chọn lựa cẩn thận, nên muốn thám DES thì phải tấn công vào chính thành trì

này. Mục đích của phƣơng pháp thám mã tuyến tính trên DES là tìm một biểu diễn xấp xỉ
tuyến tính cho hệ này để có thể phá chúng nhanh hơn phƣơng pháp tấn công vét cạn. Và
tất nhiên, những nhƣợc điểm của các hộp nén sẽ lại đƣợc tiếp tục khai thác cho mục đích
này.
2.2.1.3. Thám mã phi tuyến [10]
Nhƣ chúng ta đã biết, không có quan hệ tuyến tính nào giữa đầu ra và đầu vào của
các hộp S của DES. Mặt khác bằng cách biểu diễn các hộp S nhƣ là các đa thức Boolean
thì dễ dàng có thể thiết lập các quan hệ đại số nào đó giữa các bit đầu ra và đầu vào của
các hộp S. Chúng ta cũng biết rằng bậc của các đa thức này có bậc nhỏ hơn hay bằng 6.
Do đó một cách tự nhiên bài toán sau đây có thể đƣợc đặt ra: Bậc nhỏ nhất trong các quan
hệ đại số của các hộp S là bao nhiêu và quan hệ đại số nào có bậc nhỏ nhất? Có thể thấy
rằng luôn tồn tại một quan hệ bậc 3 trong tất cả các hộp S. Bởi vậy câu hỏi trên đƣợc viết

×