ĐỒ ÁNBẢOMẬTTHÔNGTIN HỆ MÃ DES
NGÔ THỊ TUYẾT HÀ – T012825
II.3.2. Thám mã hệ DES 6-vòng
Bây giờ ta sẽ mô tả việc mở rộng ý tưởng trên cho việc thám mã trên hệ DES 6-vòng. Ý
tưỏng ở đây là lựa chọn một cách cẩn thận cặp bản rõ với xâu x-or đặc thù và sau đó xác
đònh các xác suất của các dãy đặc thù của các xâu x-or qua các vòng lập mã. Bây giờ ta
cần đònh nghóa một khái niệm quan trọng sau.
Đònh nghóa 3.5: Cho n ≥ 1 là số nguyên. Đặc trưng của vòng thứ n là một danh sách các
dạng
L
0
’, R
0
’, L
1
’, R
1
’, p
1
, , L
n
’, R
n
’, p
n
thỏa mãn các điều kiện sau:
1. L
i
’ = R
i-1
’ với 1 ≤ i ≤ n
2. Cho 1 ≤ i ≤ n và L
i-1
, R
i-1
và L
*
i-1
, R
*
i-1
là đã được chọn sao cho L
i-1
⊕ L
*
i-1
= L’
i-1
và
R
i-1
⊕ R
*
i-1
= R’
i-1
. Giả sử L
i
, R
i
và L
i
*
, R
i
*
là tính được nhờ việc áp dụng một vòng
lập mã DES. Khi đó xác suất để L
i
⊕ L
*
i
= L
i
’ và R
i
⊕ R
*
i
= R
i
’ chính xác bằng p
i.
(Chú ý là, xác suất này được tính trên tất cả các bộ có thể có của J = J
1
J
8
) .
Xác suất đặc trưng được đònh nghóa bằng tích p = p
1
× × p
n
.
Nhận xét: Giả sử ta chọn L
0
, R
0
và L
0
*
, R
0
*
sao cho L
0
⊕ L
0
*
= L
0
’
và R
0
⊕ R
0
*
= R
0
’ và
ta áp dụng n vòng lập mã của DES, nhận được L
1
. , L
n
và R
1
, , R
n
. Khi đó ta không thể
đòi hỏi xác suất để L
i
⊕ L
i
*
= L
i
’ và R
i
⊕ R
i
*
= R
i
’ cho tất cả i ( 1 ≤ i ≤ n) là p
1
× × p
n
.
Bởi vì các bộ -48 trong lòch khóa K
1
, , K
n
không phải là độc lập lẫn nhau. (Nếu n bộ-48
này đïc chọn độc lập một cách ngẫu nhiên, thì điều xác nhận là đúng). Nhưng ta sẽ coi
rằng p
1
× × p
n
chính xác là xác xuất đó.
Ta còn cần xác nhận là, các xác suất p
i
trong đặc trưng là các cặp bản rõ được xác đònh
tùy ý (nhưng cố đònh) được đặc tả bằng xâu x-or, với 48 bit khóa cho một vòng lập mã
DES là có 2
48
khả năng. Dođó việc thám mã sẽ nhằm vào việc xác đònh khóa cố đònh
(nhưng chưa biết). Dođó cần cố chọn các bản mã ngẫu nhiên (nhưng chúng có các xâu x-
or được đặc tả), hy vọng rằng các xác suất để các xâu x-or trong n vòng lập mã trùng hợp
với các xâu x-or, được đặc tả trong đặc trưng, từng đôi một p
1
, , p
n
tương ứng.
Trong ví dụ sau đây, ta sẽ trình bày đặc trưng vòng 1 để làm cơ sở cho việc thám mã DES
ba vòng trong hình sau (như ở trên, ta sẽ sử dụng cách biểu diễn theo hệ thập lục phân).
L’
0
= bất kỳ R’
0
= 00000000
16
L’
1
= 00000000
16
R’
1
= L’
0
p = 1
Ta cũng sẽ mô tả một đặc trưng vòng 1 khác như sau
L’
0
= 00000000
16
R’
0
= 60000000
16
L’
1
= 60000000
16
R’
1
= 00808200
16
p = 14/64
ĐỒ ÁNBẢOMẬTTHÔNGTIN HỆ MÃ DES
NGÔ THỊ TUYẾT HÀ – T012825
Ta hãy xét đặc trưng sau một cách chi tiết hơn. Khi f(R
0
, K
1
) và f(R
0
*
, K
1
) được tính, bước
đầu tiên là mở rộng R
0
và R
0
*
. Xâu x-or kết quả của hai mở rộng là:
001100 0
Tức là xâu x-or nhập cho S
1
là 001100 và các xâu x-or cho bảy S-hộp khác đều là 000000.
Các xâu xuất x-or cho S
2
đến S
8
đều là 0000. Xâu xuất x-or cho S
1
là 1110 với xác suất
14/64 (do N1(001100, 1110) = 14). Nên ta nhận được:
C’ = 11100000000000000000000000000000
với xác suất 14/64. p dụng P, ta nhận được:
P(C) ⊕ P(C
*
) = 00000000100000001000001000000000
trong dạng thập lục phân sẽ là 00808200
16
. Khi xâu này cộng x-or với L
0
’, ta nhận được
R
1
’ với xác suất 14/64. Dođó L
1
’ = R
0
’.
Việc thám mã DES sáu vòng dựa trên đặc trưng ba vòng được cho trong hình sau.
Trong thám mã 6-vòng, ta bắt đầu với L
0
R
0
. L
0
*
R
0
*
, L
6
R
6
và L
6
*
R
6
*
, mà ta phải chọn bản
rõ sao cho L
0
’= 40080000
16
và R
.0
’= 04000000
16
, ta có thể biểu diễn R
0
như sau:
L
0
’
L
1
’
L
2
’
L
3
’
=
=
=
=
40080000
16
04000000
16
00000000
16
04000000
16
R
0
’
R
1
’
R
2
’
R
3
’
=
=
=
=
04000000
16
00000000
16
04000000
16
40080000
16
p = 1/4
p = 1
p = 1/4
R
6
= L
5
⊕ f(R
5
, K
6
)
= R
4
⊕ f(R
5
, K
6
)
= L
3
⊕ f(R
3
, K
4
) ⊕ f(R
5
, K
6
)
R
6
*
cũng có thể biểu diễn tương tự, ta có
R
0
’ = L
3
’ ⊕ f(R
3
, K
4
) ⊕ f(R
3
*
, K
4
) ⊕ f(R
5
, K
6
) ⊕ f(R
5
*
, K
6
) (4)
(Để ý là tương tự như thám mã 3-vòng)
R
6
’ là được biết. Từ đặc trưng ta tính L
3
’ = 04000000
16
và R
3
’ = 40080000
16
với xác suất
1/16. Nếu như vậy, thì xâu nhập x-or cho S-hộp trong vòng 4 có thể tính được nhờ hàm
mở rộng phải là:
001000000000000001010000 0
Các xâu x-or cho S
2
, S
5
, S
6
, S
7
và S
8
tất cả đều bằng 000000, và vì thế xâu xuất x-or là
0000 cho tất cả năm S-hộp đó trong vòng 4. Điều này có nghóa là, ta có thể tính được các
xâu xuất x-or cho năm S-hộp đó trong vòng 6 nhờ phương trình (4). Dođó giả sử ta tính:
C
1
’C
2
’C
3
’C
4
’C
5
’C
6
’C
7
’C
8
’ = P
-1
(R
6
’ ⊕ 04000000)
mỗi C
i
là xâu bit có độ dài 4. Khi đó với xác suất 1/16, thì sẽ dẫn đến là C
2
’, C
5
’, C
6
’, C
7
’
và C
8
’ tương ứng là các xâu x-or xuất của S
2
, S
5
, S
6
, S
7
và S
8
trong vòng 6. Các xâu nhập
cho các S-hộp đó trong vòng 6 có thể tính được là E
2
, E
5
, E
6
, E
7
và E
8
; và E
2
*
, E
5
*
, E
6
*
, E
7
*
và E
8
*
, với
E
1
E
2
E
3
E
4
E
5
E
6
E
7
E
8
= E(R
5
) = E(L
6
)
và
E
1
*
E
2
*
E
3
*
E
4
*
E
5
*
E
6
*
E
7
*
E
8
*
= E(R
5
*
) = E(L
6
*
)
có thể tính được từ các bản rõ như sau:
ĐỒ ÁNBẢOMẬTTHÔNGTIN HỆ MÃ DES
NGÔ THỊ TUYẾT HÀ – T012825
Input: L
0
R
0
, L
0
*
R
0
*
, L
6
R
6
và L
6
*
R
6
*
; với L
0
’ = 40080000
16
và R
0
’ = 04000000
16
.
1. Tính C’ = P
-1
(R
6
’ ⊕ 04000000
16
)
2. Tính E = E(L
6
) và E
*
= E(L
6
*
)
3. for j ∈ {2,5,6,7,8} do
tính test
j
( E
j
, E
j
*, Cj’)
Ta cũng sẽ xác đònh 30 bit khóa trong J
2
, J
5
, J
6
, J
7
và J
8
như trong thám mã 3-vòng.
Bài toán, để xâu xuất x-or giả đònh cho vòng 6 là chính xác chỉ với xác suất 1/16. Còn
15/16 phần còn lại ta sẽ thường nhận được những xâu vô dụng ngẫu nhiên hơn là các bit
khóa.
Đònh nghóa 3.6: Giả sử L
0
⊕ L
0
*
= L
0
’ và R
0
⊕ R
0
*
= R
0
’. Ta nói rằng, cặp bản rõ L
0
R
0
và
L
0
*
R
0
*
là đúng (right) ứng với đặc trưng nếu L
i
⊕ L
i
*
= L
i
’ và R
i
⊕ R
i
*
= R
i
’ cho mọi i, 1 ≤ i
≤ n. Cặp trái với cặp được đònh nghóa gọi là cặp sai (wrong).
Ta mong rằng, khoảng 1/16 số cặp của ta là đúng, còn các cặp còn lại là cặp sai ứng với
đặc trưng vòng ba của ta.
Chiến lược của ta là tính E
j
. E
j
*
và C
j
’như đã mô tả ở trên và sau đó xác đònh test
j
(E
j
, E
j
*
,
C
j
’) với j = 2,5,6,7,8. Nếu ta bắt đầu với một cặp đúng, thì thì các bit khóa chính xác cho
mỗi J
j
sẽ nằm trong tập test
j
. Nếu cặp là sai, thì trò C
j
’ sẽ không đúng, và đó là nguyên do
để giả đònh rằng, mỗi tập test
j
thực chất là ngẫu nhiên.
Ta có thể nhận ra cặp đúng theo phương pháp sau: Nếu ⎮test
j
⎮= 0, với bất kỳ j∈
{2,5,6,7,8}, khi đó ta tất yếu có được cặp đúng. Bây giờ cho một cặp sai, ta có thể hy
vọng rằng, xác suất để ⎪test
j
⎪= 0 cho một j cụ thể là xấp xỉ 1/5. Đó là lý do để giả đònh là,
N
j
(E
j
’, C
j
’) = ⎪test
j
⎪ và như đã nhận xét từ trước, xác suất để N
j
(E
j
’, C
j
’) = 0 là xấp xỉ 1/5.
Xác suất để cả năm test
j
đều dương là vào khoảng 0.8
5
≈ 0.33, quả vậy xác suất để ít nhất
một test
j
bằng 0 là vào khoảng 0.67. Nên ta có khoảng 2/3 số cặp là sai, nhờ vào một
nhận xét đơn giản, được gọi là phép lọc (filtering operation). Tỷ số của các cặp đúng trên
các cặp còn lại sau phép lọc là vào khoảng:
61
311615161
161
=
×+
Ví dụ 3.4: Giả sử ta có cặp bản rõ - bản mã sau:
Bản rõ Bản mã
86FA1C2B1F51D3BE
C6F21C2B1B51D3BE
1E23ED7F2F553971
296DE2B687AC6340
Chú ý là, L
0
’ = 40080000
16
và R
0
’ = 04000000
16
. Xâu nhập và xâu xuất của S-hộp cho
vòng 6 được tính như sau:
ĐỒ ÁNBẢOMẬTTHÔNGTIN HỆ MÃ DES
NGÔ THỊ TUYẾT HÀ – T012825
j E
j
E
j
*
C
j
’
2
5
6
7
8
111100
111101
011010
101111
111110
010010
111100
000101
010110
101100
1101
0001
0010
1100
1101
Khi đó các tập test
j
sẽ là như sau:
j test
j
2 14, 15,26, 30, 32, 33, 48, 52
5
6 7, 24, 36, 41, 54, 59
7
8 34, 35, 48, 49
Ta thấy rằng, hai tập test
5
và test
7
là rỗng , nên cặp này là cặp sai và nó bò loại bỏ bằng
phép lọc.
Bây giờ giả sử ta có cặp sao cho ⎪test
j
⎪> 0 với j = 2,5,6,7,8 là những tập còn lại sau phép
lọc.(Bởi vì ta không biết được là cặp nào đúng, cặp nào sai.) Ta nói rằng, xâu bit J
2
J
5
J
6
J
7
J
8
độ dài 30 là được đề xuất bởi cặp nếu J
j
∈ test
j
với j = 2,5,6,7,8. Số các cặp được đề xuất
là:
∏
∈ 8,7,6,5,2j
j
test
Đó là bình thường với số xâu bit được đề xuất là khá lớn. (Chẳng hạn. lớn hơn
80000)
Giả sử, ta lập bảng cho tất cả các xâu được đề xuất nhận được từ N cặp, mà không bò loại
bởi phép lọc. Với mỗi cặp đúng, thì xâu bit đúng J
2
J
5
J
6
J
7
J
8
sẽ là xâu được đề xuất. Xâu bit
đúng sẽ được tính khoảng 3N/16 lần. Xâu bit sai thường xuất hiện ít hơn, bởi vì chúng
xuất hiện ngẫu nhiên và có khoảng 2
30
khả năng. (Là một số rất lớn.)
Ta nhận được một bảng cực lớn tất cả các xâu được đề xuất, nên ta sử dụng một
thuật toán chỉ đòi hỏi một không gian và thời gian ít nhất. Ta có thể mã hóa bất kỳ một
tập test
j
nào thành một véc tơ T
j
có độ dài 64, với tọa độ thứ i của T
j
được đặt bằng 1 (0≤
i≤63), nếu xâu bit độ dài 6 là biểu diễn của i ở trong tập test
j
; và tọa độ thứ i được đặt
bằng 0 trong trường hợp ngược lại ( điều này giống như mảng các bộ đếm mà ta đã sử
dụng trong thám mã DES ba vòng).
Với mỗi cặp còn lại, ta xây dựng các véc tơ như trên và gọi chúng là T
j
i
,
j=2,5,6,7,8; 1 ≤ i≤ N. Với I ⊆ {1, , N} ta nói rằng I là chấp nhận được (allowable) nếu
với mỗi j ∈ {2,5,6,7,8} có ít nhất một tọa độ bằng ⎪I⎪ trong véc tơ
ĐỒ ÁNBẢOMẬTTHÔNGTIN HỆ MÃ DES
NGÔ THỊ TUYẾT HÀ – T012825
∑
∈Ii
i
j
T
Nếu cặp thứ i là cặp đúng cho mỗi i∈I, thì tập I là chấp nhận được. Dođó ta cho
rằng tập chấp nhận được có kích thước (xấp xỉ) 3N/16, là tập đề xuất và ta hy vọng là chỉ
gồm các bit khóa đúng chứ không có các xâu khác. Điều này làm đơn giản hóa cho việc
xây dựng tất cả các tập chấp nhận được I bằng một thuật toán đệ qui.
II.3. 3 Các thám mã vi sai khác
Phương pháp thám mã vi sai còn có thể áp dụng để thám các hệ DES nhiều vòng
hơn. Với hệ DES 8-vòng đòi hỏi 2
14
bản rõ chọn và các hệ 10-, 12-, 14- và 16-vòng đòi
hỏi có tương ứng 2
24
, 2
31
, 2
39
và 2
47
bản mã chọn. Nên nói chung là khá phức tạp.
Các kỹ thuật thám mã vi sai được Biham và Shamir phát triển. Các phương pháp thám mã
DES khác đã được Matsui sử dụng như là thám mã tuyến tính.
. R’
0
= 60000000
16
L’
1
= 60000000
16
R’
1
= 00808200
16
p = 14/ 64
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES
NGÔ THỊ TUYẾT HÀ – T012825
Ta hãy xét đặc trưng.
Chú ý là, L
0
’ = 40 080000
16
và R
0
’ = 040 00000
16
. Xâu nhập và xâu xuất của S-hộp cho
vòng 6 được tính như sau:
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES
NGÔ