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

Giáo trình tin học : Tìm hiễu hệ chuẩn mã dữ liệu và cách tạo ra nó phần 5 docx

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 (132.87 KB, 6 trang )

Vietebooks Nguyn Hong Cng
Trang 25
và viết B
*
, E
*
,J
*
theo cách tơng tự. Nếu biết các giá trị E
j
và E
j
*
với j nào đó,
1 j 8, và giá trị XOR ra ( của S
j
) là C
j
' = S
j
(B
j
) S
j
(B
j
*
). Khi đó chắc
chắn rằng:
E
j


J
j
IN
j
(E
j
',C
j
' )
trong đó E
j
' = E
j
E
j
*
.
Giả sử ta xác định tập test
j
nh sau:

Định nghĩa 3.4.
Giả sử E
j
và E
j
*
là các xâu bít độ dài 6 và C
j
' là xâu bít độ dài 4. Ta

định nghĩa:
test
j
(E
j
, E
j
*
, C
j
' ) = {B
j


E
j
: B
j


IN
j
(E
j
',C
j
')}

trong đó E
j

' = E
j
E
j
*


Nghĩa là lấy XOR E
j
với mỗi phần tử của tập IN
j
(E
j
',C
j
').

Kết quả sau đây là một hệ quả trực tiếp rút ra từ suy luận ở trên.

Định lý 3.1
Giả sử E
j
và E
j
*
là hai xâu vào của hộp S
j
còn XOR ra của S
j
là C

j
. Kí
hiệu E
j
' = E
j


E
j
*
. Khi đó các bít khoá J
j
sẽ nằm trong tập test
j
(E
j
, E
j
*
, C
j
').

Nhận thấy rằng có đúng N
j
(E
j
',C
j

' ) xâu bít độ dài 6 trong tập
test
j
(E
j
,E
j
*
,C
j
'); giá trị đúng của J
j
phải là một trong các khả năng này.

Ví dụ 3.2.
Giả sử E
1
= 000001, E
1
*
= 110101 và C
1
' = 1101. Vì N
1
(110100,1101)
= 8 nên có đúng 8 xâu bít trong tập test
1
(000001,110101,1101). Từ hình 3.8
ta thấy rằng:
IN

1
(110100,1101) =
{000110,010000,010110,011100,100010,100100,101000,110010}
Bởi vậy
test
1
(000001,110101,1101) =
{000111,010001,010111,011101,100011,100101,101001,110011}.

Nếu ta có một bộ ba E
1
,E
1
*
,C
1
' thứ hai nh vậy thì có thể thu đợc tập
test
1
thứ hai chứa các giá trị có thể chứa các bít khoá trong J
1
. Giá trị đúng
của J
1
phải nằm trong phần giao của hai tập này. Nếu ta có vài bộ ba nh vậy
thì có thể nhanh chóng xác định đợc các bít khoá trong J
1
. Phơng pháp đơn
giản để làm điều này là tạo một dãy 64 bộ đếm biểu diễn 64 khả năng của 6
bít khoá trong J

1
. Bộ đếm sẽ đếm tăng mỗi khi các bít khoá tơng ứng xuất
Vietebooks Nguyn Hong Cng
Trang 26
hiện trong tập test
1
với một bộ ba cụ thể. Với t bộ ba, ta tin rằng sẽ tìm đợc
bộ đếm duy nhất có giá trị t tơng ứng với giá trị đúng của các bít khoá trong
J
1
.

3.6.1. Tấn công DES 3 vòng
Bây giờ ta xét xem việc ứng dụng các ý tởng của phần trớc trong
phép tấn công bản rõ chọn lọc lên một hệ DES 3 vòng. Ta bắt đầu ằng một
cặp các bản rõ và bản mã tơng ứng L
0
R
0
, L
0
*
R
0
*
,L
3
R
3
, và L

3
*
R
3
*
. Có thể
biểu thị R
3
nh sau:

R
3
= L
2
f (R
2
,K
3
)
= R
1
f (R
2
,K
3
)
= L
0
f (R
0

,K
1
) f (R
2
,K
3
)

Biểu diễn R
3
*
theo cách tơng tự nh vậy
R
3
' = L
0
' f (R
0
,K
1
) f(R
0
*
,K
1
) f (R
2
,K
3
) f (R

2
*
,K
3
)

Bây giờ, giả sử ta đã chọn đợc các bản rõ sao cho R
0
= R
0
*
, nghĩa là để
R
0
' = 00. . .0
Khi đó f (R
0
,K
1
) = f (R
0
*
,K
1
) và nh vậy:

R
3
' = L
0

' f(R
2
,K
3
) f(R
2
*
,K
3
).

Lúc này R
3
' đã biết vì có thể tính đợc nó từ hai bản mã. L
0
' cũng đã biết do
có thể tính đợc nó từ hai bản rõ. Điều này có nghiã là ta có thể tính
f(R
2
,K
3
)f(R
2
*
,K
3
) từ phơng trình:

f(R
2

,K
3
)f(R
2
*
,K
3
) = R
3
' L
0
'

Bây giờ ta có f(R
2
,K
3
) = P(C) và f(R
2
*
,K
3
) = P(C
*
), trong đó C và C
*

hiệu tơng ứng 2 dãy ra của 8 hộp S ( hãy nhớ lại rằng P là một phép hoán vị
cố định công khai ). Bởi vậy:


P(C) P(C
*
) = R
3
' L
0
'

và do đó:
C' = C C
*
= P
-1
(R
3
' L
0
') (3.1)
Đây là XOR ra của 8 hộp S ở vòng thứ 3.

Vietebooks Nguyn Hong Cng
Trang 27
Bây giờ R
2
= L
3
và R
2
*
= L

3
*
cũng đã biết ( chúng là một phần của các
bản mã). Bởi vậy, có thể tính

E = E(L
3
) (3.2)
và E
*
= E(L
3
*
) (3.3)

bằng cách dùng hàm mở rộng E đợc biết công khai. Đây là các mẫu vào các
hột S ở vòng thứ 3. Nh thế ta đã biết E và E
*
và C ' của vòng thứ 3 và có thể
thực hiện ( nh ở phần trớc) để xây dựng các tệp test
1
, . , test
8
chứa các giá
trị có thể của các bít trong J
1
,. . .,J
8
.


Mô tả dạng giả mã của thuật toán này đợc cho ở hình 3.9.

Hình 3.9. Cách tấn công DC lên DES 3 vòng.


Đầu vào L
0
R
0
,L
0
*
R
0
*
, L
3
R
3
và L
3
*
R
3
*
, trong đó R
0
= R
0
*


1. Tính C ' = P
-1
(R
3
' L
0
')
2. Tính E = E(L
3
) và E
*
= E(L
3
*
)
3. For j = 1 to 8 do
Tính test
j
(E
j
, E
j
*
, C
j
')


Trong phơng pháp tấn công này sẽ phải dùng một số bộ ba E, E

*
,C '
nh vậy, Ta phải thiết lập 8 dãy bộ đếm và nhờ vậy xác định đợc 48 bít
trong khoá K
3
( khoá của vòng thứ 3). Sau đó tính 56 bít trong khóa theo
cách tìm kiếm vét cạn trong 2
8
= 256 khả năng cho 8 bít khoá còn lại.

Ta sẽ xem xét một ví dụ để minh hoạ.
Ví dụ 3.3.
Giả sử ta có 3 cặp các bản rõ và các bản mã, trong đó các bản rõ có
các phép XOR xác định, chúng đợc mã hoá bằng cùng một khoá. Để cho
gọn ta sẽ biểu thị dới dạng mã Hexa:

Bản rõ Bản mã
748502CD38451097 03C70306D8AO9F10
3874756438451097 78560A960E6D4CB
486911026ACDFF31 45FA285BE5ADC730
375BD31F6ACDFF31 134F7915AC253457
357418DA013FEC86 D8A31B2F28BBC5CF
12549847013FEC86 0F317AC2B23CB944
Vietebooks Nguyn Hong Cng
Trang 28

Từ cặp đầu tiên, tính các đầu vào của hộp S ( cho vòng 3 ) theo các
phơng trình (3.2) và (3.3). Ta có:

E = 000000000111111000001110100000000110100000001100

E
*
= 101111110000001010101100000001010100000001010010

XOR ra của các hộp S đợc tính theo phơng trình (3.1) là:

C' = 10010110010111010101101101100111

Từ cặp thứ hai, ta tính đợc các đầu vào của các hộp S là:

E = 101000001011111111110100000101010000001011110110
E
*
= 000001011110100110100010101111110101011000000100

và XOR ra của các hộp S là:

C' = 11010101011101011101101100101011

Tiếp theo, lập bảng các giá trị trong 8 dãy bộ đếm cho từng cặp. Minh
hoạ thủ tục này với dãy bộ đếm cho J
1
theo cặp đầu tiên. Trong cặp này ta
có: E' = 101111 và C' = 1001. Khi đó tập:

IN
1
(101111,1001) = {000000,000111,101000,101111}

vì E

1
= 000000 nê ta có:

J
1
test
1
(000000,101111,1001) = {000000,000111,101000,101111}

Bởi vậy ta sẽ tăng các giá trị 0,7,40 và 47 trong dãy bộ đếm cho J
1
.

Bây giờ sẽ trình bày các bảng cuối cùng. Nếu coi một xâu bít độ dài 6
nh biểu diễn nhị phân của một số nguyên nằm giữa 0 và 63 thì 64 giá trị
tơng ứng là 0,1,. . . ,63. Các mảng bộ đếm sẽ nh sau:

J
1

1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0
0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 3
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Vietebooks Nguyễn Hoàng Cương
Trang 29

J
2


0 0 0 1 0 3 0 0 1 0 0 1 0 0 0 0
0 1 0 0 0 2 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0
0 0 1 1 0 0 0 0 1 0 1 0 2 0 0 0

J
3

1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0
0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 3
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

J
4

3 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0
0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 3
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

J
5

0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0
0 0 0 0 2 0 0 0 3 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 2 0 0 0 0 0 0 1 0 0 0 0 2 0

J

6

1 0 0 1 1 0 0 3 0 0 0 0 1 0 0 1
0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0
0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0
1 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0

J
7

0 0 2 1 0 3 0 0 0 1 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1
0 0 2 0 0 0 2 0 0 0 0 1 2 1 1 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1





Vietebooks Nguyn Hong Cng
Trang 30
J
8

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1
0 3 0 0 0 0 1 0 0 0 0 0 0 0 0 1

Trong số 8 mảng bộ đếm ( trong 8 mangt ở trên) có duy nhất một bộ

đếm có giá trị 3, các vị trí của các bộ đếm này sẽ đợc xác định các bít khoá
trong J
1
, ., J
8
. Các vị trí này tơng ứng là 47,5,19,0,24,7,7,49. Đổi các số
nguyên sang dạng nhị phân ta nhận đợc J
1
, . . .,J
8
:

J
1
= 101111
J
2
= 000101
J
3
= 010011
J
4
= 000000
J
5
= 011000
J
6
= 000111

J
7
= 000111
J
8
= 110001

Bây giờ ta có thể xây dựng 48 bít của khoá bằng cách nhìn vào bảng khoá
đối với vòng 3. Khi đó K có dạng:

0001101 0110001 01?01?0 1?00100
0101001 0000??0 111?11? ?100011

ở đây ta đã bỏ qua các bít kiểm tra chặn lẻ và"?" chỉ bít khoá cha biết. Khóa
đầy đủ ( ở dạng hexa gồm cả bít kiểm tra chặn lẻ) là:

1A624C89520DEC46

3.6.2. Tấn công DES 6 vòng
Trong mục này ta sẽ mở rộng các ý tởng ở trên cho phép tấn công
xác suất đối DES 6 vòng. ý tởng ở đây là phải chọn cẩn thận một acặp bản
rõ với một phép XOR chỉ ra trớc rồi xác định các xác suất của một dãy xác
định các XOR qua các vong mã. Bây giờ ta sẽ định nghiã một khái niệm
quan trọng.

Định nghĩa 3.5.
Cho n

1 là một số nguyên. Một đặc trng n vòng là một danh sách
có dạng: L

0
',R
0
',L
1
',R
1
',p
1
. . . L
n
',R
n
',p
n

×