Trong phần này ta sẽ mở rộng xấp xỉ tuyến tính của hàm vòng thành xấp xỉ tuyến tính cho chính hệ mã DES.
+ Đối với DES 3 vòng.
Trƣớc hết bằng cách áp phƣơng trình (2.5) vào vòng đầu tiên, chúng ta sẽ nhận đƣợc phƣơng trình sau đây đúng với xác suất 12/64:
X2[7, 18, 24, 29] PH[7, 18, 24, 29] PL[15] = K1[22] (2.6) Ta cũng nhận đƣợc kết quả nhƣ vậy khi thực hiện phép giải mã đối với bản mã C thông qua khóa K3, tức là ta có phƣơng trình sau đây đúng với xác suất 12/64:
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 2.6. Sơ đồ xấp xỉ tuyến tính hệ mã DES 3 vòng.
Kết hợp (2.6), (2.7) ta sẽ nhận đƣợc một biểu diễn xấp xỉ tuyến tính cho hệ mã DES 3 vòng nhƣ sau :
PH[7,18,24,29] CH[7,18,24,29] PL[15] CL[15] = K1[22] K3[22] (2.8) Xác suất để có phƣơng trình (2.8) có thể đƣợc tính nhƣ sau, với giả thiết P là bản rõ ngẫu nhiên còn C là bản mã tƣơng ứng với một khóa K cố định.
Trƣớc hết ta có thấy (2.6) có thể đƣợc phát biểu tƣơng đƣơng với :
X2[7,18,24,29] PH[7,18,24,29] PL[15] K1[22] = 0, p=12/64 và X2[7,18,24,29] PH[7,18,24,29] PL[15] K1[22] = 1, p=1-12/64 Tƣơng tự với (2.7) ta có :
X2[7,18,24,29] CH[7,18,24,29] CL[15] K3[22] = 0, p=12/64 và X2[7,18,24,29] CH[7,18,24,29] CL[15] K3[22] = 1, p=1-12/64.
Vậy xác suất để có (2.8) có dạng xác suất để có tập hợp dạng (0 0) (1 1). Do đó xác suất này đúng bằng : F1 K1[22] X1[15] [7, 18, 24, 29] PH PL P = 64 bit F2 [7, 18, 24, 29] F3 [7, 18, 24, 29] K2[22] X2[15] X3[15] K3[22] CH CL C = 64 bit
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
(12/64) x (12/64) + (1-12/64) x (1-12/64) = 0,70 (2.9) Từ chỗ phƣơng trình (2.5) là xấp xỉ tuyến tính tốt nhất của hàm vòng F, nên (2.8) là biểu diễn tuyến tính tốt nhất đối với DES 3 vòng.
Áp dụng thuật toán 1 vào phƣơng trình (2.8) ta có thể tìm đƣợc bít khóa K1[22] K3[22].
+ Đối với DES 5 vòng.
Đối với hệ mã DES 5 vòng, trƣớc hết ta áp dụng phƣơng trình (2.5) vào các vòng thứ hai và thứ tƣ, còn các vòng thứ nhất và thứ năm sẽ sử dụng biểu diễn tuyến tính sau :
B: X[27, 28, 30, 31] F(X,K)[15]=K[42,43,45,46], p = 22/64 (2.10) xuất phát từ hệ thức NS1(27, 4) = 22.
Cách áp dụng các biểu thức tuyến tính A hay B trên đây cũng giống nhƣ trong trƣờng hợp DES 3 vòng. Tức là đối với các vòng thứ nhất và thứ hai ta coi X là bản rõ P, còn đối với vòng thứ năm và thứ tƣ ta coi X là bản mã C và thực hiện phép giải mã ngƣợc trở lại tới vòng thứ ba nhờ sử dụng các khóa K5 và K4. Khi đó phối hợp các kết quả lại ta sẽ thu đƣợc biểu diễn xấp xỉ tuyến tính tốt nhất cho hệ DES 5 vòng nhƣ sau :
PH[15] PL[7,18,24,27,28,29,30,31] CL[7,18,24,27,28,29,30,31] =
K1[42,43,45,46] K2[22] K4[22] K5[42,43,45,46] (2.11) Để tính xác suất cho phƣơng trình (2.11) ta sẽ sử dụng bổ đề sau đây:
Bổ đề 2.9
Giả sử Xi (1 i n) là các biến ngẫu nhiên độc lập, nhận giá trị 0 với xác suất p hoặc nhận giá trị 1 với xác suất (1-p). Khi đó xác suất để cho X1 X2 ... Xn = 0 sẽ bằng n i i n p 1 1 ). 2 1 ( 2 2 1
Bổ đề trên có thể đƣợc chứng minh bằng quy nạp và đƣợc gọi là bổ đề Piling-up. Áp dụng bổ đề ta thấy phƣơng trình (2.11) đúng với xác suất :
½ + 23(-10/64)2(-20/64)2 = 0,519
Bằng cách thức đã liệt kê ra các biểu diễn xấp xỉ tuyến tính tốt nhất đối với hệ DES tới 20 vòng. Ví dụ biểu diễn tuyến tính tốt nhất cho DES 8 vòng có dạng sau :
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
PH[7,18,24] P1[12,16] CH[15] CL[7,18,24,29,27,28,30,31] =
K1[19,23] K3[22] K4[44] K5[22] K7[22] K8[42,43,45,46] (2.13) đúng với xác suất p = ½ - 1,22 x 2-11
.
Biểu diễn tuyến tính tốt nhất cho DES 16 vòng có dạng :
PH[7,18,24] PL[12,16] CH[15] CL[7,18,24,29,27,28,30,31] = K1[19,23] K3[22] K4[44] K5[22] K7[22] K8[44] K9[22] K11[22] K12[44] K13[22] K15[22] K16[42,43,45,46] (2.14)
đúng với xác suất ½ - 1,49 x 2-24
.
Hình 2.7. Sơ đồ xấp xỉ tuyến tính hệ mã DES 5 vòng.
F1 K1[42,43,45,46] X1[27,28,30,31] [15] PH PL P = 64 bit F2 [7, 18, 24, 29] K2[22] X2[15] CH CL C = 64 bit F3 [7, 18, 24, 29] K3[22] X3[15] F4 [7, 18, 24, 29] K4[22] X4[15] F5 [15] X5[27,28,30,31] K5[42,43,45,46] p = 22/64 p = 12/64 p = 12/64 p = 22/64
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/