Vietebooks Nguyễn Hoàng Cương
Trang 43
Vietebooks Nguyễn Hoàng Cương
Trang 44
2
cho trớc, ta xác định y = e
K2
(e
K1
(x)) (dĩ nhiên đây chính là tích của DES với
chính nó. Nếu hàm mã hoá e
K2
giống nh hàm giải mã d
K1
thì K
1
và K
2
đợc
gọi là các khoá đối ngẫu ( đây là trờng hợp không mong muốn đối với phép
mã kép vì bản mã kết quả lại trùng với bản rõ). Một khoá đợc gọi là tự đối
ngẫu nếu nó đối ngẫu với chính nó.
a/ Hãy chứng minh rằng nếu C
0
gồm toàn các số 0 hoặc gồm toàn các
số 1 và D
0
cũng vậy thì K là tự đối ngẫu.
b/ Hãy tự chứng minh rằng các khoá sau ( cho ở dạng hexa) là tự đối
ngẫu:
0101010101010101
2
. . .x
n
bằng khoá K ở chế độ CFB để thu đợc
Vietebooks Nguyn Hong Cng
Trang 46
y
1
y
n-1
( chú ý rằng chỉ có n-1 khối bản mã ). Cuối cùng xác định e
K
(y
n-1
)
làm MAC. Hãy chứng minh rằng MAC này đòng nhất với MAC đợc tạo
trong phần 3.4.1. dùng chế độ CBC.
3.5.Giả sử một dãy các khối bản rõ x
1
. . .x
n
đợc mã hoá bằng DES, tạo ra
các khối bản mã y
1
. . .y
2
. Giả sử rằng một khối bản mã ( chẳng hạn y
i
) bị
b/ Cho T là một tham số thời gian mong muốn. Giả sử ta có một tập
các phần tử Z = {z
1
,. . .,z
m
} Y sao cho với mỗi phần tử y
i
Y nằm trong
một chu trình có độ dài tối đa là T hoặc tồn tại một phần tử z
j
y
i
sao cho
khoảng cách tử y
i
tới z
j
trong G tối đa là T. Hãy chứng tỏ rằng tồn tại một tập
Z nh vậy sao cho: | Z | 2N/T và nh vậy | Z | = 0(N/T).
c/ Với mỗi z
j
Z ta xác định g
-T
(z
j
) là phần tử y
i
sao cho g
T
(y
Trang 47
Hình 3.15. Phép tối u hoá thời gian - bộ nhớ. 1. Y
start
= y
2. Backup = false
3. While g(y) y
start
do
4. if y = z
j
với mỗi j nào đó and not backup then
5. y = g
-T
(z
j
)
6. backup = true
else
7. y = g(y)
8. K = y d/ Hãy mô tả thuật toán giải mã để xây dựng một tập Z mong muốn
trong thời gian 0(NT) không dùng một mảng có kích thớc N.
3.7. Hãy tính các xác suất của đặc trng 3 vòng sau:
' = 00000400
16
R
3
' = 00200008
16
p = ? 3.8. Sau đây là một phép tấn công vi sai đối với DES 4 vòng sử dụng đặc
trng sau ( đây là một trờng hợp đặc biệt của đặc trng đợc trình bày ở
hình 3.10). L
0
' = 20000000
16
R
0
' = 00000000
16
L
1
' = 00000000
16
R
1
' = 20000000
R
0
*
, L
3
R
3
và L
3
*
R
3
*
, trong đó
L
0
' = 10000000
16
và R
0
' = 00000000
16
1. Tính C ' = P
-1
(R
4
')
2. Tính E = E(L
4
682765DDD7009123 81F4B92BD94B6FD8
ABCD098733731FF1 93A4B42F62EA59E4
8BCD098733731FF1 ABA494072BF411E5
13578642AAEDCB FDEB526275FB9D94
33578642AAFFEDCB CC8F72AAE685FDB1
c/ Hãy tính toàn bộ khoá ( 14 bít khoá còn lại cần phải xác định có thể
tìm theo phơng pháp tìm kiếm vét cạn).