Tải bản đầy đủ (.doc) (21 trang)

thực hành tấn công tuyến tính des với 4 vòng

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 (293.92 KB, 21 trang )

Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

MỤC LỤC
MỤC LỤC.............................................................................................................i
CHƯƠNG I: MÃ HÓA DES.................................................................................1
1.1. Định nghĩa..................................................................................................1
1.2. Mô hình mã Feistel.....................................................................................2
1.3. Thuật toán sinh khóa con............................................................................4
1.4. Hàm Feistel (F)...........................................................................................6
CHƯƠNG II. PHƯƠNG PHÁP THÁM MÃ TUYẾN TÍNH VỚI DES..............8
2.1. Giới thiệu....................................................................................................8
2.2. Nguyên lý cơ bản của tấn công tuyến tính.................................................8
2.2.1. Thuật toán 1:........................................................................................8
2.2.2. Thuật toán 2:......................................................................................10
2.3. Xấp xí tuyến tính các S-box.....................................................................10
2.4. Xấp xỉ tuyến tính của hệ mã DES.............................................................11
2.5. Tỉ lệ thành công với tấn công bản rõ đã biết của hệ mã DES...................12
CHƯƠNG III: THỰC HÀNH TẤN CÔNG TUYẾN TÍNH DES VỚI 4 VÒNG
.............................................................................................................................14
3.1. Phương pháp áp dụng...............................................................................14
3.2. Chương trình thám mã tuyến tính với DES 4 vòng..................................18
3.3. Kết quả thực nghiệm................................................................................18

Nhóm 4

Page i


Học viện Kỹ thuật Mật mã



Môn: Cơ sở lí thuyết Mật mã

DANH MỤC HÌNH ẢNH, BẢNG BIỂU

Hình 1: Sơ đồ tính toán của hệ mã Feistel.............................................................3
Hình 2: Quá trình sinh khóa con............................................................................5
Hình 3: Hàm Feistel trong DES.............................................................................7
Hình 4: Sơ đồ minh họa quá trình áp dụng..........................................................15
Bảng 1: Tỷ lệ thành công của thuật toán 1..........................................................12
Bảng 2: Tỷ lệ thành công của thuật toán 2..........................................................13
Bảng 3: Tỉ lệ thành công của thuật toán..............................................................16
Bảng 4: Tỉ lệ thành công của thuật toán với (3.5) và (3.6)..................................16
Bảng 5: Tỉ lệ thành công của thuật toán với (3.9) và (3.10)................................17
Bảng 6: Tỉ lệ thành công của thuật toán với (3.13) và (3.14)..............................17
Bảng 7: Kết quả thực nghiệm và tỉ lệ thành công thám DES 4 vòng (tìm đủ 56
bit khóa)...............................................................................................................19

Nhóm 4

Page ii


Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

CHƯƠNG I: MÃ HÓA DES
1.1. Định nghĩa
DES là thuật toán mã hóa khối, nó xử lý từng khối thông tin của bản rõ có

độ dài xác định và biến đổi theo những quá trình phức tạp để trở thành khối
thông tin của bản mã có độ dài không thay đổi, độ dài mỗi khối là 64 bit. Hơn
nữa, DES là một giải thuật đối xứng nên nó dùng cùng một mã khóa cho cả 2
quá trình: mã hóa và giải mã. Khóa dùng trong DES có độ dài toàn bộ là 64 bit.
Tuy nhiên chỉ có 56 bit thực sự được sử dụng; 8 bit còn lại chỉ dùng cho việc
kiểm tra. Vì thế, độ dài thực tế của khóa chỉ là 56 bit.
DES có thiết kế liên quan tới 2 khái niệm: mã hóa tổng (product cipher)
và mã Feistel (Feistel cipher). Một mã hóa tổng bao gồm hai hay nhiều mã hóa
đơn giản (như phép thay thế hoặc hoán vị), trong đó mã hóa tổng an toàn hơn rất
nhiều so với các mã hóa thành phần. Mã Feistel là một mã khối lặp, cũng là sự
kết hợp của các phép thay thế và hoán vị. Trong hệ mã Feistel, bản rõ sẽ được
biến đổi qua một số vòng để cho ra bản mã cuối cùng.

Nhóm 4

Page 1


Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

1.2. Mô hình mã Feistel
Mã Feistel là một mã khối lặp. Có 16 chu trình giống nhau trong quá trình
xử lý. Ngoài ra còn có hai lần hoán vị đầu và cuối (Initial and final permutation IP & FP). Hai quá trình này có tính chất đối nhau (Trong quá trình mã hóa thì IP
trước FP, khi giải mã thì ngược lại). Bản rõ P và các bản mã Ci được chia thành
nửa trái và nửa phải:

p = ( L0 , R0 )


Ci = ( Li , Ri )

i = 1, 2,..., n

Quy tắc biến đổi các nửa trái phải này qua các vòng được thực hiện như sau:

 Li = Ri −1

 Ri = Li −1 ⊕ F ( Ri −1 , K i )
Ki là một khóa con cho vòng thứ i. Khóa con này được sinh ra từ khóa K
ban đầu theo một thuật toán sinh khóa con (key schedule):

K → K1 → K 2 → ... → K n
F là một hàm mã hóa dùng chung cho tất cả các vòng. Hàm F đóng vai
trò như là phép thay thế còn việc hoán đổi các nửa trái phải có vai trò hoán vị.
Bản mã C được tính từ kết xuất của vòng cuối cùng:

C = Cn = ( Ln , Rn )

Nhóm 4

Page 2


Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

Hình 1: Sơ đồ tính toán của hệ mã Feistel
Để giải mã quá trình được thực hiện qua các vòng theo thứ tự ngược lại:


C → Ln , Rn
Ri −1 = Li

Li −1 = Ri ⊕ ( Ri −1 , K i )
Và cuối cùng bản rõ là: P = ( L0 , R0 )

Nhóm 4

Page 3


Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

1.3. Thuật toán sinh khóa con
Khóa DES là một khối 64-bit, trong đó các bit ít quan trọng nhất của mỗi
byte được bỏ qua và được sử dụng để kiểm tra chẵn lẻ, đảm bảo rằng khóa
không có lỗi. Hoạt động này được thực hiện bởi permuted choice 1, ký hiệu là
PC: 8 bit còn lại bị loại bỏ, 56 bit thu được được chia làm hai phần bằng nhau,
mỗi phần được xử lý độc lập. Sau mỗi chu trình, mỗi phần được dịch đi 1 hoặc 2
bit (tùy thuộc từng chu trình, nếu đó là chu trình 1,2,9,16 thì đó là dịch 1 bit, còn
lại thì sẽ được dịch 2 bit). Các khóa con 48 bit được tạo thành bởi thuật toán lựa
chọn 2 (Permuted Choice 2, hay PC-2) gồm 24 bit từ mỗi phần. Quá trình dịch
bit (được ký hiệu là "<<<" trong sơ đồ) khiến cho các khóa con sử dụng các bit
khác nhau của khóa chính; mỗi bit được sử dụng trung bình ở 14 trong tổng số
16 khóa con.
Quá trình tạo khóa con khi thực hiện giải mã cũng diễn ra tương tự nhưng
các khóa con được tạo theo thứ tự ngược lại. Ngoài ra sau mỗi chu trình, khóa sẽ

được dịch phải thay vì dịch trái như khi mã hóa.

Nhóm 4

Page 4


Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

Hình 2: Quá trình sinh khóa con

Nhóm 4

Page 5


Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

1.4. Hàm Feistel (F)
Hàm F, như được miêu tả ở Hình 3, hoạt động trên khối 32 bit và bao gồm
bốn giai đoạn:
1. Mở rộng: 32 bit đầu vào được mở rộng thành 48 bit sử dụng thuật toán
hoán vị mở rộng (expansion permutation) với việc nhân đôi một số bit.
Giai đoạn này được ký hiệu là E trong sơ đồ.
2. Trộn khóa: 48 bit thu được sau quá trình mở rộng được XOR với khóa
con. Mười sáu khóa con 48 bit được tạo ra từ khóa chính 56 bit theo

một chu trình tạo khóa con (key schedule) miêu tả ở phần sau.
3. Thay thế: 48 bit sau khi trộn được chia làm 8 khối con 6 bit và được xử
lý qua hộp thay thế S-box. Đầu ra của mỗi khối 6 bit là một khối 4 bit
theo một chuyển đổi phi tuyến được thực hiện bằng một bảng tra. Khối
S-box đảm bảo phần quan trọng cho độ an toàn của DES. Nếu không
có S-box thì quá trình sẽ là tuyến tính và việc thám mã sẽ rất đơn giản.
4. Hoán vị: Cuối cùng, 32 bit thu được sau S-box sẽ được sắp xếp lại theo
một thứ tự cho trước (còn gọi là P-box).

Nhóm 4

Page 6


Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

Hình 3: Hàm Feistel trong DES

Nhóm 4

Page 7


Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

CHƯƠNG II. PHƯƠNG PHÁP THÁM MÃ

TUYẾN TÍNH VỚI DES
2.1. Giới thiệu
Cùng với nhiều phương pháp thám mã khác, phương pháp thám mã tuyến
tính là một trong những cách tấn công nổi tiếng nhất đối với mã hóa khối.
Phương pháp này được đề xuất bởi Mitsuru Matsui trong cuốn “Advances in
Cryptology” năm 1993, khi đó ông đã chứng minh có thể phá mã DES với 2 47
bản rõ, nhanh hơn phương pháp vét cạn.
Một năm sau, ông cải tiến kỹ thuật của mình và chứng minh rằng chỉ cần
243 bản rõ là đủ. Hơn nữa, ông thực hiện và phá mã DES trong 50 ngày với sự
trợ giúp của 12 máy tính. Cho đến ngày nay, phương pháp thám mã tuyến tính
vẫn là công cụ mạnh nhất để tấn công DES.
2.2. Nguyên lý cơ bản của tấn công tuyến tính
Ý tưởng cơ bản của phương pháp thám mã tuyến tính đối với DES là tìm
các biểu diễn tuyến tính “hiệu quả có dạng sau”

P [ i1 , i2 ,..., ia ] ⊕ C [ j1 , j2 ,..., jb ] = K [ k1 , k 2 ,..., kc ]

(2.1)

Trong đó i1 , i2 ,..., ia , j1 , j2 ,..., jb và k1 , k2 ,..., kc biểu thị những bit cố
định, P là bản rõ được lấy ngẫu nhiên, C là bản mã tương ứng với 1 khóa K cố
định cho trước nào đó, phương trình (2.1) đúng với xác suất p≠1/2. Giá trị:

ε = p−

1
2

thể hiện độ hiệu quả của phương trình (2.1)
Nếu ta có thể thành công trong việc tìm một biểu diễn tuyến tính hiệu quả,

thì khi đó có thể sử dụng nó để tìm ra bit dạng khóa quan trọng K [ k1 , k2 ,..., kc ]
theo thuật toán sau dựa trên phương pháp hợp lý cực đại:
2.2.1. Thuật toán 1:
Bước 1: Cho T là số các bản rõ sao cho vế trái phương trình (2.1) bằng
0. Ký hiệu N là số bản rõ được sử dụng trong tấn công.
Nhóm 4

Page 8


Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

Bước 2: Nếu T > N/2 thì
Lấy K [ k1 , k2 ,..., kc ] = 0 (khi p > 1/2) hoặc bằng 1 (khi p < 1/2)
Ngược lại:
Lấy K [ k1 , k2 ,..., kc ] = 1 (khi p > 1/2) hoặc bằng 0 (khi p < 1/2)
Khả năng thành công của thuật toán sẽ tăng lên khi N hoặc biên độ

p−

1
1
tăng lên. Chúng ta gọi biểu diễn tuyến tính có biên độ p −
cực đại
2
2

là biểu diễn tốt nhất.

Chúng ta có thể sử dụng thuật toán trên để tấn công hệ DES như sau. Để
tấn công DES n vòng, chúng ta sử dụng các biểu diễn tuyến tính tốt nhất đối với
(n-1) vòng. Bản mã sau vòng thứ (n-1) có thể được thiết lập từ bản mã tại vòng
thứ n, bằng cách thực hiện phép giải mã với khóa con Kn của vòng thứ n. Như
vậy, ta chấp nhận một số hạng có hàm vòng F trong biểu diễn tuyến tính đang sử
dụng để tấn công DES n vòng. Kết quả là ta sẽ nhận được một dạng biểu diễn
sau đúng với xác xuất tốt nhất của (n-1) vòng của DES.

P [ i1 , i2 ,..., ia ] ⊕ C [ j1 , j2 ,..., jb ] ⊕ Fn ( C1 , K n ) [ l1 , l2 ,..., ld ] = K [ k1 , k 2 ,..., k c ] (2.2)
Thực chất biểu thức C [ j1 , j2 ,..., jb ] ⊕ Fn ( C1 , K n ) [ l1 , l2 ,..., ld ] chính là
bản mã tại vòng thứ (n-1);
Như vật trong phương trình (2.2) ta thấy số lượng các bit khóa tham gia
nhiều hơn so với phương trình (2.1). Trong đó việc tìm một số bit khóa trong Kn
chính xác có thể sẽ được thực hiện dễ dàng hơn nhờ nhận xét sau. Nếu khóa Kn
trong (2.2) là không chính xác thì độ hiệu quả của phương trình (2.1) sẽ giảm đi
rõ rệt, tức là nó sẽ làm ảnh hưởng lớn đến xác suất đúng của (2.1). Do vậy, có
thể sử dụng thuật toán hợp lý cực đại sau cùng để cùng một lúc tìm và quyết
định các thành phần khóa tham gia trong (2.2)

Nhóm 4

Page 9


Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

2.2.2. Thuật toán 2:
( i)


Bước 1: Với mỗi ứng cử viên K n

( i = 1, 2,...)

của K: cho Ti là số các

bản rõ sao cho vế trái của phương trình (2.2) là bằng 0. Ký hiệu N là số các bản
rõ được sử dụng trong tấn công.
Bước 2: Cho Tmax là giá trị cực đại và Tmin là giá trị cực tiểu của tất cả
các giá trị của Ti.
Nếu |Tmax – N/2| > |Tmin – N/2|, thì ta chấp nhận khóa ứng cử viên tương
ứng với Tmax và lấy K[k1,k2,…,kc] = 0 (khi p>1/2) hoặc 1 (khi p<1/2).
Nếu |Tmax – N/2| < |Tmin – N/2|, thì ta chấp nhận khóa ứng cử viên tương
ứng với Tmin và lấy K[k1,k2,…,kc] = 1 (khi p>1/2) hoặc 0 (khi p<1/2).
Như vậy, từ nguyên lí cơ bản của thám mã tuyến tính chúng ta có thể nhận
thấy, để thực hành thám mã với một hệ mã cụ thể thì cần phải quan tâm tới các
vấn đề sau:
- Làm thế nào để tìm được các biểu thức tuyến tính “hiệu quả”?
- Tỷ lệ thành công của thuật toán theo N và xác suất P như thế nào?
- Tìm các biểu thức tốt nhà và tính toán các xác suất tốt nhất.
2.3. Xấp xí tuyến tính các S-box
Định nghĩa 1
Cho trước hộp nén Sa(a=1,2,…,8), 1≤ α ≤63 và 1≤β≤15, NSa(α,β) được
định nghĩa là số tất cả các đầu ra của 64 mẫu đầu vào của S a sao cho giá trị
XOR của các bit đầu vào được đánh dấu với α trùng với giá trị XOR của các bit
đầu ra được đánh dấu bởi β. Nghĩa là:
def
 s
  s


NS a = #{x / 0 ≤ x ≤ 64,  ⊕ ( x [ s ] *α [ s ] ) ÷ =  ⊕ ( S 0 ( x ) [ i ] * β [ i ] ) ÷ (2.3)
 i =0
  i =0

Ở đây ký hiệu * biểu thị 1 thao tác bit AND.

Ví dụ 1
NS5(16,15) = 12

(2.4)

Khi NSa(α,β) không phải bằng 32, thì đó là sự tương quan giữa các bit
đầu vào và đầu ra của S a. ví dụ phương trình (2.4) chỉ ra tằng bít đầu vào thứ 4
của S5 trùng với giá trị XOR của tất cả các bit đầu ra với xác suất 12/64=0.19.
Nhóm 4

Page 10


Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

Do đó, sử dụng các hàm mở rộng E và phép hoán vị P trong hàm F, ta sẽ nhận
được phương trình sau đây đúng với xác suất 0.19 cho K cố định và X ngẫu
nhiên đã cho:

X [ 15] ⊕ F ( X , K ) [ 7,18, 24, 29] = K [ 22] ;


(2.5)

Sau đây là bổ đề rút ra từ định nghĩa xấp xỉ tuyến tính của S-box
Bổ đề 1
(1) NSa(α,β): là chẵn.
(2) Nếu α = 1, 32 hay 33, thì NSa(α,β) = 32 cho tất cả các Sa và β.
2.4. Xấp xỉ tuyến tính của hệ mã DES
Trong phần này sẽ mở rộng xấp xỉ tuyến tính của hàm F cho toàn bộ các
thuật toán. Ví dụ đầu tiên là mật mã DES 3 vòng. Bằng cách áp dụng phương trình
(2.5) vào vòng đầu, ta nhận thấy phương trình sau đây đúng với xác suất 12/64:

X 2 [ 7,18, 24, 29] ⊕ PH [ 7,18, 24, 29] ⊕ PL [ 15] = K1 [ 22] ; (2.6)
Đồng thời cũng đúng với vòng cuối cùng:

X 2 [ 7,18, 24, 29] ⊕ C H [ 7,18, 24, 29 ] ⊕ C L [ 15] = K 3 [ 22] ; (2.7)
Do đó ta có được biểu thức tuyến tính gần đúng sau đây với mật mã DES
3 vòng bằng việc loại bỏ những số hạng chung:

PH [ 7,18, 24, 29] ⊕ C H [ 7,18, 24, 29] ⊕ PL [ 15] = K1 [ 22 ] ⊕ K 3 [ 22 ] ; (2.8)
Các xác suất của phương trình (2.8) đúng với bản rõ ngẫu nhiên P đã cho
và tương ứng với bản mã C là (12/64) 2 + (1-12/64)2 = 0.70. Khi đó phương trình
(2.5) là phép xấp xỉ tuyến tính tốt nhất của hàm F, phương trình (2.8) là biểu
thức tốt nhất với mật mã DES 3 vòng. Bây giờ ta có thể tìm ra lời giải cho
phương trình (2.8) để luận ra K1 [ 22] ⊕ K 3 [ 22] bằng cách sử dụng thuật toán 1.
Bổ đề sau đây mô tả tỷ lệ thành công của phương pháp này:
Bổ đề 2
Cho N là số các bản rõ ngẫu nhiên đã cho và P là xác suất của phương
trình (2.4), giả sử |p-1/2| là đủ nhỏ. Do đó tỉ lệ thành công của thuật toán 1 là:

Nhóm 4


Page 11


Học viện Kỹ thuật Mật mã



2 N p −1/ 2

Môn: Cơ sở lí thuyết Mật mã

1 −π / 2
e dx; (2.9)


Bảng sau cho thấy 1 số kết quả của biểu thức (2.9)
N
1/4|p-1/2|-2
1/2|p-1/2|-2
|p-1/2|-2
Tỉ lệ thành công
84.1%
92.1%
97.7%
Bảng 1: Tỷ lệ thành công của thuật toán 1

2|p-1/2|-2
99.8%


Tiếp theo, ta sẽ hiển thị một ví dụ của mật mã DES 5 vòng. Trong trường
hợp này, ta sẽ áp dụng phương trình (2.5) vào vòng thứ 2 và thứ 4, và phương
trình tuyến tính sau đây (được suy luận từ NS 1(27,4)=22) ở vòng đầu và vòng
cuối cùng):

X [ 27, 28,30,31] ⊕ F ( X , K ) [ 15] = K [ 42, 43, 45, 46 ] ; (2.10)
Rất dễ dàng tính toán để có được một biểu thức tuyến tính gần đúng với
mật mã DES 5 vòng:

PH [ 15] ⊕ P1 [ 7,18, 24, 27, 28, 29,30 ] ⊕ C1 [ 7,18, 24, 27, 28, 29,30,31]

= K1 [ 42, 43, 45, 46 ] ⊕ K 2 [ 22] ⊕ K 4 [ 22] ⊕ K [ 42, 43, 45, 46 ] ; ( 2.11)
bổ để tiếp theo đưa ra một phương pháp đơn giản để tính toán xác suất đúng với
phương trình dạng này.
Bổ đề 3 (Piling up)
Giả sử Xi (1≤i≤n) là các biến ngẫu nhiên độc lập có giá trị là 0 với xác
suất pi hoặc bằng 1 với xác suất 1-pi. Khi đó xác suất của X1⊕ X2⊕…⊕Xn=0 là:
n

1/ 2 + 2n −1 ∏ ( pi − 1/ 2 )

(2.12)

i =1

Điều này cho thấy phương trình (2.11) đúng với xác suất 1/2+2 2(-10/64)2(20/64)2=0.519. Vì vậy, theo bổ đề 2, nếu |0.519-1/2| -2=2800 là những bản rõ đã
cho, có thể dự đoán vế phải của phương trình (2.11) với tỉ lệ thành công 97.7%.
2.5. Tỉ lệ thành công với tấn công bản rõ đã biết của hệ mã DES
Để tấn công bản rõ đã biết với DES n vòng, ta sử dụng biểu biễn tuyến
tính tốt nhất của DES (n-1) vòng. Sử dụng thuật toán 2 để tìm lại các bit khóa


Nhóm 4

Page 12


Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

con của các vòng có liên quan trong biểu thức tuyến tính. Matsui đã đưa ra tỉ lệ
thành công của thuật toán 2 như sau:
N
2|p-1/2|-2
4|p-1/2|-2
8|p-1/2|-2
Tỉ lệ thành công
48.6%
78.5%
96.7%
Bảng 2: Tỷ lệ thành công của thuật toán 2

Nhóm 4

16|p-1/2|-2
99.9%

Page 13



Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

CHƯƠNG III: THỰC HÀNH TẤN CÔNG TUYẾN TÍNH DES
VỚI 4 VÒNG
3.1. Phương pháp áp dụng
Với mỗi biểu thức tuyến tính (1 vòng) tìm được, áp vào vòng thứ 1 và thứ
3 là ta đã thu được 1 biểu thức tuyến tính hiệu quả cho DES 4 vòng. Xác suất
của biểu thức tuyến tính hiệu quả (tính theo bổ đề Pilling-up của Matsui) như
sau:
P=0,5 + 2.(pi – 0,5)2
Như vậy, nếu pi càng cách xa 0,5 (gần 0 hoặc 1) thì xác suất p sẽ tăng lên.
Ta sẽ chọn các biểu thức tuyến tính (1 vòng) sao cho nó có xác suất càng xa 0,5
càng tốt

X [ 15] ⊕ F ( X , K ) [ 7,18, 24, 29] = K [ 22] ; p = 12 / 64.
Biểu thức tuyến tính được rút ra từ hộp S 5: NS5(16,15) = 12; xác suất
p=12/64. Áp dụng biểu thức này cho các vòng 1, 3 ta được biểu thức xấp xỉ
tuyến tính:

PH [ 7,18, 24, 29] ⊕ CL [ 7,18, 24, 29] ⊕ PL [ 15] ⊕ CH [ 15] ⊕ F4 ( CL , K 4 ) [ 15] =

K1 [ 22] ⊕ K3 [ 22] ;

(3.1)

Và cho vòng 2,4 có:

CH [ 7,18, 24, 29] ⊕ PL [ 7,18, 24, 29 ] ⊕ CL [ 15] ⊕ PH [ 15] ⊕ F1 ( CL , K1 ) [ 15] =


K 2 [ 22] ⊕ K 4 [ 22] ;

(3.2)

Sau đây là sơ đồ minh họa quá trình áp dụng:

Nhóm 4

Page 14


Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

P

PH

PL
[22]

(7,18,24,29)
F1

[15]

K1


X1

K2
F2

X2

[22]
(7,18,24,29)
F3

[15]

K3

X3

K4
F4

CH

C

X4

CL

Hình 4: Sơ đồ minh họa quá trình áp dụng


Nhóm 4

Page 15


Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

Xác suất đúng với cả 2 phương trình là p1=0,7. Và theo lí thuyết ta cần có
N1 = 16|0,7-0,7|2 = 400 cặp rõ – mã để cho tỉ lệ thành công là 99,9%
N
Tỉ lệ thành công

50
100
200
48.6%
78.5%
96.7%
Bảng 3: Tỉ lệ thành công của thuật toán

400
99.9%

Và khi áp dụng thuật toán 2, ta sẽ tìm được 11 bit khóa sau: 9, 10, 11, 17,
34, 35, 42, 49, 51, 59, 60 (4 bit 49 trùng nhau) và 2 bit tổng:

K1 [ 22] ⊕ K 3 [ 22] = K [ 55] ⊕ K [ 20 ] ;


(3,3)

K 2 [ 22] ⊕ K 4 [ 22] = K [ 28] ⊕ K [ 4] ;

(3.4)

X [ 31] ⊕ F ( X , K ) [ 1,9,15, 23] = K [ 46] ; p = 14 / 64;
Biểu thức tương ứng với xác suất tốt nhất của hộp S 1, p=16/64. Hoàn toàn
tương tự ta có 2 xấp xỉ tuyến tính sau:

PH [ 1,9,15, 23] ⊕ PL [ 31] ⊕ C L [ 1,9,15, 23] ⊕ C H [ 31] ⊕ F4 ( C L , K 4 ) [ 31] =

K1 [ 46] ⊕ K 3 [ 46] ;

(3.5)

CH [ 1,9,15, 23] ⊕ CL [ 31] ⊕ PL [ 1,9,15, 23] ⊕ PH [ 31] ⊕ F1 ( CL , K1 ) [ 31] =

K 2 [ 46] ⊕ K 4 [ 46] ;

(3.6)

Xác suất đúng của 2 phương trình này là p 2 = 0,658. Cũng tương tự ta tính
được tỉ lệ thành công của 2 biểu thức này theo lý thuyết là:
N
80
159
320
639
Tỉ lệ thành công

48.6%
78.5%
96.7%
99.9%
Bảng 4: Tỉ lệ thành công của thuật toán với (3.5) và (3.6)
Sử dụng thuật toán 2 ta sẽ tìm được 10 bit khóa nữa là: 1, 18, 19, 25, 26,
27, 36, 41, 43, 52 (cặp bit 1 trùng nhau và bit 59 đã tìm được ở bước trước và 2
bit tổng):

K1 [ 46] ⊕ K 3 [ 22] = K [ 51] ⊕ K [ 57 ] ;

(3.7)

K 2 [ 46] ⊕ K 4 [ 46] = K [ 43] ⊕ K [ 11] ;

(3.8)

Nhóm 4

Page 16


Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

X [ 3] ⊕ F ( X , K ) [ 5,11,17, 27 ] = K [ 4] ; p = 16 / 64;
Biểu thức tương ứng với xác suất tốt nhất của hộp S8, p = 16/64 có:

PH [ 3] ⊕ PL [ 5,11,17, 27 ] ⊕ C L [ 3] ⊕ CH [ 5,11,17, 27 ] ⊕ F4 ( C L , K 4 ) [ 3] =


K1 [ 4] ⊕ K 3 [ 4] ;

(3.9)

CH [ 3] ⊕ CL [ 5,11,17, 27 ] ⊕ PL [ 3] ⊕ PH [ 5,11,17, 27 ] ⊕ F1 ( CL , K1 ) [ 3] =

K 2 [ 4] ⊕ K 4 [ 4 ] ;

(3.10)

Xác suất đúng của 2 phương trình này là p3 = 0,625. Tỉ kệ thành công theo
lí thuyết là:
N
128
256
512
1024
Tỉ lệ thành công
48.6%
78.5%
96.7%
99.9%
Bảng 5: Tỉ lệ thành công của thuật toán với (3.9) và (3.10)
Sử dụng thuật toán 2 ta sẽ tìm được 11 bit khóa nữa là: 5, 7, 13, 20, 23,
29, 30, 46, 47, 53, 63 (bit 53 trùng nhau) và 2 bit tổng:

K1 [ 4] ⊕ K 3 [ 4] = K [ 14] ⊕ K [ 53] ;

(3.11)


K 2 [ 4] ⊕ K 4 [ 4] = K [ 6] ⊕ K [ 37 ] ;

(3.12)

X [ 20, 24] ⊕ F ( X , K ) [ 2,8,16, 26 ] = K [ 35,31] ; P4 = 48 / 64;
Biểu thức tương ứng với xác suất tốt nhất của hộp S3, p = 48/64 có:

PH [ 20, 24] ⊕ PL [ 2,8,16, 26 ] ⊕ C L [ 2,8,16, 26 ] ⊕ C H [ 20, 24 ] ⊕

F4 ( CL , K 4 ) [ 20, 24] = K1 [ 31,35] ⊕ K 3 [ 31,35] ;

(3.13)

CH [ 20, 24] ⊕ CL [ 2,8,16, 26] ⊕ PL [ 2,8,16, 26 ] ⊕ PH [ 20, 24 ] ⊕

F1 ( CL , K1 ) [ 20, 24] = K 2 [ 31,35] ⊕ K 4 [ 31,35] ;

(3.14)

Xác suất đúng của 2 phương trình này là p = 1/2 + 49/256. Tỉ lệ thành
công theo lí thuyết là:
N
56
109
218
437
Tỉ lệ thành công
48.6%
78.5%

96.7%
99.9%
Bảng 6: Tỉ lệ thành công của thuật toán với (3.13) và (3.14)
Nhóm 4

Page 17


Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

Khác với 3 biểu thức ở trên sử dụng tuyến tính 2 ta sẽ tìm được 12 bit
khóa cho mỗi biểu thức. Ở đây ta thu thêm được 15 bit khóa: 4, 12, 14, 15, 21,
22, 28, 31, 37, 38, 45, 54, 55, 61, 62 (các bit 61, 28, 38 trùng nhau và các bit 29,
63, 20, 23 đã tìm thấy ở các biểu thức trước) và 2 bit tổng sau:

K1 [ 31, 35] ⊕ K 3 [ 31,35] = K [ 49 ] ⊕ K [ 44] ⊕ K [ 44] ⊕ K [ 3]
= K [ 49] ⊕ K [ 3] ;

(3.15)

K 2 [ 31,35] ⊕ K 4 [ 31,35] = K [ 33] ⊕ K [ 57 ] ⊕ K [ 26] ⊕ K [ 60] (3.16)
Như vậy đến đây ta đã tìm được 47 bit khóa. Xét đến 8 bit tổng tìm được
(các biểu thức (3.3), (3.4), (3.7), (3.8), (3.11), (3.12), (3.15), (3.16)), ta thấy như
sau:


(3.3), (3.4), (3.7), (3.8), (3.11) không cần đến vì các bit nằm trong
tổng đều đã tìm được.




Với (3.12), K[37] đã biết nên suy ra được K[6].



Với (3.15), K[49] đã biết nên suy ra được K[3].



Với (3.16), K[26,60] đã biết nên suy ra được K[33]⊕K[57].

6 bit khóa còn lại sẽ tìm bằng phương pháp vét cạn
3.2. Chương trình thám mã tuyến tính với DES 4 vòng
Chương trình thám mã tuyến tính với DES 4 vòng thực hiện các công việc
như sau:
Tạo N bản rõ ngẫu nhiên và tính toán N bản mã tương ứng.
Với mỗi biểu thức tuyến tính đếm các bit text hiệu quả và thực hiện tìm
khóa theo thuật toán 2.
Cuối cùng tìm 6 bit khóa còn lại bằng phương pháp vét cạn.
3.3. Kết quả thực nghiệm
Mỗi giá trị N được chạy thử nghiệm 40 lần, kết quả cụ thể được trình bày
ở dưới. phần tỷ lệ thành công được tính theo số lần thành công trên tổng số lần
thử nghiệm

Nhóm 4

Page 18



Học viện Kỹ thuật Mật mã

Môn: Cơ sở lí thuyết Mật mã

N
400
512
600
700
800
1000
Thành công
24
32
36
40
40
40
Hỏng
16
8
4
0
0
0
Tỉ lệ thành công
60%
80%
90%

100% 100% 100%
Bảng 7: Kết quả thực nghiệm và tỉ lệ thành công thám DES 4 vòng
(tìm đủ 56 bit khóa)
Thời gian thực hiện toàn bộ chương trình trên 1 máy tính thông thường
không quá 1 phút. Tuy nhiên để tìm thành công toàn bộ 56 bit khóa với DES 4
vòng cần có số lượng cặp rõ-mã tương ứng lớn hơn. Điều này có nghĩa là trong
thực tế thám mã cần phải thu thập được đủ nhiều (lớn hơn 700) các cặp rõ-mã
tương ứng mới có thể thám mã thành công DES 4 vòng.

Nhóm 4

Page 19



×