3.4 Đề xuất 3: Phân tích hệ mật mã hỗn loạn có cấu trúc SPN với một vòng lặp
3.4.2.2 Tấn công khuếch tán ngược
Rõ ràng rằng tấn công khuếch tán ngược có thể được thực hiện trước nếu luật hoán vị
được biết. Tương tự như quá trình khuếch tán của phía bên mật mã, trong biểu thức
giải mã (3.6) cho thấy một từ mã được giải mã với sự phụ thuộc củ a giá trị hiện tại của
từ mã và giá trị của từ mã ngay trước nó. Vì vậy, để tấn công khuếch tán ngược trong
phương pháp tấn công lựa chọn văn bản mã hóa cũng tương tự như tấn công trong phương pháp lựa chọn văn bản trơn. Đó là, b ản mã hóa mẫu được chọn cho giải mã
và đầu ra tương ứng được tập hợp lại để tìm ra các khóa mật của quá trình khuếch tán.
Mục tiêu của tấn công n ày là để khôi phục các khóa mật dùng trong khuếch tán ngược
rcv rd_ 2 vàrcv rd_ 3 tương đương với dãy số ngẫu nhiên ban đầu rand2vàrand 3.
Trên thực tế, giá trị của rand3( )i và rand2(temp2) trong b iểu thức (3.6) không
thể nhận được trực tiếp từ giá trị củaac i ( )vàcipher d i_ ( ). Vì vậy, phương pháp thử
được áp dụng để tìm ra giá trị có thể của rcv rd_ 2 và rcv r d_ 3. Rõ ràng các phần tử của rand2 được dùng để giải mã cipher d i_ ( ) phụ thuộc vào cipher d i_ ( − 1) thông qua rand1. Trong tấn công khuếch tán ngược, sự phụ thuộc này được viết dưới dạng rcv rd_ 2(cipher d_ (i − 1)). Vì vậy, để tìm rcv rd_ 2(cipher d_ (i − 1)) và
rcv rd_ 3( )i tương đương cặp rand 2(temp2) và rand3( )i trong giải mã ngược cho
từ mã c iph er d i_ ( ) với giá trị nào đó của cip he r d i_ ( − 1), 64 mẫu ma trận mở rộng được chọn với cá c giá trị cipher d i_ ( ) khác nhau có giá trị nằm trong khoảng
giá trị khác nhau của cipher d i_ ( ) và các giá trị tương ứng của ac i( ) được dùng
để tính toán ra rcv rd_ 2(cipher d_ (i − 1)) và rcv rd_ 3( )i. Điều này được thực hiện dựa trên các chuỗi cipher d i_ ( ) và ac i( ). Xem kỹ biểu thức (3.6) thấy rằng trường
hợp th ứ hai tính toán cho ac i( ) luôn được áp dụng khi ciphe r d i_ ( ) = 63; đó là
cipherd( )i ≥ rand 3( )i. Điều này dùng để hạn chế các ràng buộc tính toán cho các
giá trị có thể có củarcv rd_ 2(cipher d_ (i − 1))vàrcv rd_ 3( )i. Nói cách khác, với một
giá tr ị n hất định của cip he r rd_ 2,cipher d i_ ( ) = 63 được chọn để tìm các giá trị có
thể có củarcv rd_ 2(cipher d_ (i − 1))vàrcv rd_ 3( )i ;rcv rd_ 2(cipher d_ (i − 1))quét
từ 0 đến 63 và g iá trị thích hợp của rcv rd_ 3( )i thu được theo ràng buộc. Thêm vào
đó, cặp giá trị thích hợp của rcv rd_ 2(cipher d_ (i − 1))và rcv rd_ 3( )i phải đáp ứng
được biểu thức (3.6). Nên mỗi cặp giá trị có thể của rcv r d_ 2(cipher d_ (i − 1)) và
rcv rd_ 3( )i được thử để tính toán ra dãy các giá trị của cipher d i_ ( )vàac i ( ). Giá trị
đúng củarcv rd_ 2(cipher d_ (i − 1))vàrcv rd_ 3( )i tương đương vớirand 2(temp2)và rand3( )i, tạo ra dãy giá trị của cipher d i_ ( )vàac i( )phù hợp với phần được tách ra từ
phần giải mã trên.
Có thể thấy được phép XOR trong biểu thức (3.6) dẫn đến hai cặp giá trị đúng
của rcv rd_ 2(cipher d_ (i − 1)) và rcv rd_ 3( )i tương ứng vớ i mỗi giá trị nào đó của
cipher rd_ 2. Nếu giá trị của cipher d i_ ( − 1) được quét từ 0 đến 63, ta sẽ nhận được
hai tập dãy sốrcv rd_ 2 vàrcv rd_ 3 và được dùng như là các khóa giải mã ( rcv rd_ 2a,
rcv rd_ 3a) và ( rcv rd_ 2b,rcv rd_ 3b). Vì vậy, mỗi rcv rd_ 3có kích thước4N2× 64. Chú
ý rằng không cần quan tâm tớitemp2 trong tấn công khuếch tán ngược; thay vào đó,
giá trị củacipher d i_ ( − 1)và vị trí của các từ mã (chỉ số ) là những thông tin quani trọng trong quá trình phân tích mã. Giải thuật tấn công khuếch tán như sau:
Algorithm 4
ĐẦU VÀO: Ma trậnMDarb với giá trị ngẫu nhiên.
ĐẦU RA: các mảng giá tr ị ngẫu nhiên tương đươngrcv rd_ 2vàrcv rd_ 3.
procedureTẤN CÔNG KHUẾCH TÁN
fori=1 to 4N2do form=0 to 63do Đặtcipher d i_ ( − 1) =m; 5: forn=0 to 63do Đặtcipher d i_ ( ) =nchoM D; Thu gọnMD trở thành ;C Giải mãCđể nhận ;P Tạo raMPD dùng ;P 10: Trích xuấtac i( ); end for; Nhận đượccipher d i_ ( )vàac i( )(*);
Vớicipher d i_ ( ) = 63(ký hiệucipher63), tínhac i( )(ký hiệuac63);
fors=0 to 63do 15: Giả sửrcv rd_ 2(cipher d_ (i − 1)) = s; Tínhrcv rd_ 3( ) =i cipher63 [ 63 − ac ⊕rcv rd_ 2(cipher d_ (i − 1)); forr=0 to 63do
Tínhac i( )vớicipher d i_ ( ) =r,rc v rd_ 2(cipher d_ (i − 1))
vàrcv rd_ 3( )i (**);
20: end for;
So sánh các chuỗicipher d i_ ( )vàac i( )ở (*) vàac i ( )ở (**);
if(Đúng)then
Ghi lạircv rd_ 2(cipher d_ (i − 1))vàrcv rd_ 3( )i;
end if; 25: end for; end for; end for; end procedure
Kết quả thu được là hai cặp dãy số (rcv rd_ 2a,rcv rd_ 3a) và ( rcv rd_ 2b,rcv rd_ 3b). Mỗi dãy rcv rd_ 2 có 65 p hần tử bao gồm cả phần tử ban đầu để giải mã cho từ mã
cipherd(1). Mỗircv rd_ 3 được biểu diễn bằng ma trận kích thước 4N2 × 64, trong
đó rcv rd_ 3( )i, j được dùng để giải mã cipher d i_ ( )vớicipher d i_ ( − 1) = j. Trong
bản sao giải mã, các cặp khóa được tìm thấy này có thể được dùng để giải mã và khôi phục được ảnh bản trơn như khóa giải mã gốc. Trong đó, với phương trình khuếch tán
ngược được viết lại là
cipher d_ (0) =rcv rd_ 2_initial
ac i( ) =
[64 +cipher d_ ( )i − rcv rd_ 3(i, ciphe r d_ (i − 1))] ⊕rcv rd_ 2(cipher d_ (i − 1)),
....for cipher d i < rcv rd_ ( ) _ 3(i, ciphe r d_ (i − 1)),
[cipher d_ ( )i − rcv rd_ 3(i, ciphe r d_ (i − 1))] ⊕rcv rd_ 2(cipher d_ (i − 1)),
....for cipher d i_ ( ) ≥rcv rd_ 3(i, ciphe r d_ (i − 1)).
(3.8)
Hình 3.11 cho thấy kết quả của tấn công lựa chọn văn bản mã hóa, rcv rd_ 2a và
rcv rd_ 2b được khôi phục như trong các Hình 3.11(a) và 3.11(b). Chú ý rằng, các
(a) Khóa khuếch tán được khôi
phụcrcvrd_2a (b)rcvKhóa khuếch tán được khôi phục_rd2b (c)được giải mã sau khi dùng các khóaKênh RGB của ảnh bản trơn khuếch tán được khôi phục
Hình 3.11: Tấn công lựa chọn văn bản mã hóa trên ảnh5 5× .
rcv rd_ 2b. Dãy số rand2gốc như trong Hình 3 .8(c). Do giới hạn về không gian trình
bày nênrcv rd_ 3a vàrcv rd_ 3bkhông được đưa ra ở đây. Ảnh bản mã hóa 5 5 × trong Hình 3.8(f) được giải mã dùngrcv rd_ 2a như trong Hình 3.11(a) và rcv rd_ 3a. Kết quả
nhận được ảnh khôi phục đưa ra trong Hình 3.11(c). Quan sát các ảnh bản trơn được
giải mã trong Hình 3.11(c) là giống hệt với các ảnh gốc trong Hình 3.8(a). Rõ ràng
các khóa khuếch tán ngược được khôi phục trong ví dụ tấn công lựa chọn văn bản
mã hóa trong Hình 3.11(a) và 3. 11(b) không giống với khóa trong tấn công lựa chọn văn bản trơn như trong các Hình 3.8(d), 3.8(e). Nhìn chung, hầu hết các khóa được
khôi phục đều khác với khóa gốc, do vậy chúng được gọi là các khóa tương đương với
khóa gốc. Sau khi kiểm tra kĩ lưỡng, các bảng tra cứu được khôi phục và các cặp khóa
khuếch tán trong bộ mã và giải mã có th ể được dùng tương đương như khóa gốc.
Cần chú ý, việc tấn công hoàn toàn không liên quan đến kích thước ảnh bản trơn,
do vậy với giá trịN lớn vẫn có thể thực hiện được. Tuy nhiên, dung lượng bộ nhớ và
thời gian tấn công sẽ cần lớn khi tăng giá trị .N