Ví dụ tấn công vào hoán vị

Một phần của tài liệu Digital library Ha Noi university of science and technology760 (Trang 98)

trận mở rộngMTE x_( 0,y0) như Hình 3.4(b) bên phải. Ma trậnM TE x_( 0,y0) ở bảng bên phải của Hình 3.4(b) và ma trận MTE arb_ ở bảng bên phải của Hình 3.4(a) có các

phần tử khác nhau bắt đầu từ vị trí(x1, y1) = (6 3) , . Nghĩa là điểm ảnh đầu vào tại vị

tr í(x0, y0) = (8 9) , được hoán vị cho điểm ảnh có vị trí (x1, y1) = (6 3) , trong phép

hoán vị, không phụ thuộc vào số vòng hoán vị rpb ằng bao nhiêu. Sau đó, giá trị 6

được lưu vào vị trí (8,9) của ma trậnROW và giá tr ị 3 được lưu vào vị trí (8,9) của

ma trậnCOL. Quá trình cứ thế được thực hiện toàn bộ các vị trí tọa độ, ta sẽ thu được hai ma trậnROW vàCOLhoàn chỉnh thể hiện luật hoán vị.

Kết quả của tấn công hoán vị cho ảnh bản trơn kích thước5 5× dùng khóa được mô

tả như trên trong Hình 3.5. Luật hoán vị được trình bày trong Hình 3.5(a) và 3.5(b)

tương ứng với các ma trậnROWvàCOL. Chỉ số hàng và cột trong bảng tra cứu biểu

diễn vị trí( x0, y0)của các phần tử trong ME và hàng đích x1 và cột đích y1 là giá

tr ị của các phần tử trong bảng tra cứu. Ví dụ, một phần tử củaME arb_ tại vị trí (1 2),

được hoán vị đến vị trí(8 9), ; 8 và 9 là giá trị của phần tử tại(1 2), trong bảng tra cứu

hàng và cột tương ứng. Bằng cách áp dụng các bước như trên, với bất kì số vòng hoán

vị hay bất kì kiểu hệ hỗn loạn nào và không có khóa mật tốt thì đều có thể khôi phục.

Việc tấn công quá trình hoán vị thà nh công sẽ hỗ trợ cho việc tấn côn g quá trình khuếch tán dưới đây.

(a)Bảng tra cứu hàngROW (b) Bảng tra cứu cộtCOL Hình 3.5: Kết quả cuối cùng của luật hoán vị.

3.4.1.2 Tấn công vào khuếch tán

Sau quá tr ình hoán vị, mảng 1D các giá trị của ma trận được tạo ra bằng cách quét các

hàng từ trên xuố ng dưới trong ma trận M PE thu được mảng một chiềuAE để thực

hiện khuếch tán. Quan sát việc khuếch tán trong biểu thức (3.4) cho thấy, giá trị của

từ mã hiện tại phụ thuộc trực tiếp giá trị của nó, ac i( ), và phụ thuộc vào các giá trị

của các phần tử thích hợp trong dãy số ngẫu nhiênrand2vàrand3. Một phần tử được

chọn trong dãyrand3để khuếch tán chỉ phụ thuộc vào vị trí của từ mã hiện tại, , và i

một phần tử được chọn để khuếch tán chỉ phụ thuộc vào giá trị của từ mã đứng trước

đó, cipher d i_ ( − 1), thông quarand 1. Đây chính là hiệu ứng thác lũ hay hiệu ứng

tuyết lở của quá trình khuếch tán. Việc tấn công thành công trong quá trình hoán vị

giúp xác định vị trí bắt đầu bị ảnh hưởng bởi khuếch tán trong ma trận mật mã MTE

và giá trị tại vị trí được sử dụng để phân tích một cách tường minh. Trong tấn công

khuếch tán, quá trình mật mã được thực hiện nhiều lần, ở mỗi lần có sự thay đổi giá

tr ị đầu vào và quan sát giá trị trả về.

Trong tấn công khuếch tán, khôi phục của các phần tử của dãy số ngẫu nhiên

rcv rd_ 2 tương đương vớirand2phải được thực hiện nhằm xác định cho tất cả các giá

tr ị có thể có của các từ mãcipher d i_ ( − 1). Lý do là vì các từ mã và các dãy số ngẫu

nhiên được biểu diễn bằng 6 bit, giá trị của các từ nằm trong khoảng từ 0 đến 63. Nói cách khác, dãy thu đượcrcv rd_ 2sẽ có 64 phần tử, giá trị của rcv rd_ 2( )i sẽ được dùng

để tính một từ mã với giá trị tạii − 1. Giá trị ban đầurcv rd_ 2_initial (tương đương với

cipher d_ (0)) đ ược tính cho từ mã đầu tiên. Thêm vào đó, một phần tử được chọn từ

rand3 để khuếch tán phụ thuộc vào vị trí của từ mã hiện tại. Hay nói cách khác, tấn

công khôi phụcrand3phải được thực hiện ở mọi vị trí của các từ mã bằng cách dùng

mọi giá trị có thể có của các từ dữ liệu của bản rõ. Vị tr í trongi rand3thuộc khoảng

từ 1 đến4N2và giá tr ị của nó là 6 bit thuộc khoảng từ 0 đến 63. Như vậy, một ma

Vị trí bit: x x x x x ? 0 0 0 0 0 1 x x x x x ? ?=1 ?=0 x x x x x 1 x x x x x 0 Vị trí bit : x x x x x ? 0 0 0 0 0 0 x x x x x x So sánh Mật mã với Mật mã với

Giá trị của bit trong

Hình 3.6: Ví dụ tìm giá trị bit b0.

quả của tấn công để khôi phụcrand3.

Quan sát kĩ hơn biểu thức (3.4). Có một phépXOR( ) giữa⊕ ac i( )vàrand 2(temp2),

giá trị của các bit tại những vị trí khác nhau trongrand2(temp2)có thể được phát hiện

dễ dàng bằng cách quan sát giá trị trả về củacipher d i_ ( )nhận được trong trường hợp

ac i( ) = 0vàac i( ) = 06 . Các giá trị bit tại những vị trí khác nhau củarand 2(temp2)

có th ể được tạo ra bằ ng các biện pháp k iểm tra giá trị cho mỗi vị trí bit. Một số giá trị

củaac i( )được chọn dùng để xác định giá trị bit trongrand2(temp2). Cụ thể, chọn giá

tr ị choac i( ) =1, 2, 4, 8 và 16 (tương ứng với các mẫu bit 000001, 000010, 000100,

001000, và 010000) để tìm ra giá trị bit tại vị trí b0, b1, b2,b3, vàb4 tương ứng của

rand2(temp2). Chú ý rằng cipher d i_ ( ) = ( rand 2(temp2)+rand 3( ))i mod 64khi giá

tr ịac i( ) = 0 . Để tìm ra giá trị vị trí bitb0củarand2(temp2),ac i( ) = 1 dùng để thực

hiện mật mã. Nếu giá trị củacipher d i_ ( )tăng lên 1 so với trường hợp khiac i( ) = 0, thì bit b0 của rand 2(temp2)có giá trị là 0. Tuy nhiên, nếu giá trị của cipher d i_ ( )

giảm đi 1 so với trường hợp khi ac i( ) = 0, thì bit b0 của rand2(temp2)có giá trị

là 1. Ví dụ minh họa trong Hình 3.6 để tìm ra giá trị của bit b0 của rand2(temp2).

Tương tự, các bit ở vị trí khác trongrand2(temp2)được tìm với các giá trị ac i( )khác

nhau như đưa ra trong Bảng 3.1. Chúng ta hãy xem xét giá trịb5trongrand2(temp2)

như là một ngoại lệ do giá trị của nó gây ra sự thay đổi lớn trong kết quả ở đầu ra. Phép toán mod64 trong biểu thức khuếch tán (3.4) dẫn đến có hai cách thực hiện

để tìm ra giá trị của b5 trongrand2(temp2). Hình 3.7 minh họa việc tìm giá trị của

b5 trong rand2(temp2), cipher d i_ ( ) = rand 2(temp2) + rand 3( )i có giá trị bằng

52 hoặc 116 khi ac i( ) = 0. Nếu b5 = 0 hoặc b5 = 1 thì cipher d i_ ( ) = 20 khi

ac i( ) = 32. Điều này luôn đúng cho mọi giá trị củarand 2(temp2)vàrand 3( )i với

Bảng 3.1: Phát hiện giá trị bit trong .b

Giá trị củaac i( )được dùng Lượng thay đổi trong Giá trị bitbi

để phát hiện giá trị cipher d i_ ( )được so sánh trongrand 2(temp2)

của bit trongrand2(temp2) vớicipher d i_ ( )khiac i( ) = 0

+1 b0= 0 ac(i)=1 -1 b0= 1 +2 b1= 0 ac(i)=2 -2 b 1= 1 +4 b2= 0 ac(i)=4 -4 b2= 1 +8 b3= 0 ac(i)=8 -8 b3= 1 +16 b4= 0 ac(i)=16 -16 b4= 1 ac(i)=0 Các trường hợp

có thể Cipher_d(i)= rand2 (temp2)+rand3(i)= 116

ac(i)=32

Các giá trị có thể của

b5trong rand2 (temp2) b5=0 b5=1

(rand2 (temp2)+rand3(i)+32)mod 64 =(52+32) mod 64 =20

(rand2 (temp2)+rand3(i)+ 32)mod 64 =(116+32) mod 64 =20

(rand2 (temp2)+rand3(i)-32)mod 64 =(52-32) mod 64 =20

(rand2 (temp2)+rand3(i)-32)mod 64 =(116-32) mod 64 =20

Cipher_d(i)=rand2 (temp2)+rand3(i)=52

Hình 3.7: Ví dụ tìm giá trị bit b5của rand2(temp2).

các kết quả khuếch tán đúng với giá trị của cipher d i_ ( )và tương ứng hai giá trị của

rcv rd_ 3( )i phải được đưa vào trong tính toán của tấn công khuếch tán. Nói cách khác,

hai c ặp giá trị có th ể có là (rcv rd_ 2a, rcv rd_ 3a) và ( rcv rd_ 2b, rcv rd_ 3b) ra cùn g cho

giá trị của cipher d i_ ( ). Vì vậy, trong ví dụ tấn công khuếch tán với ảnh k ích thước

5 5× , ta thu được hai tập khóa khuếch tán; hai dãy số ngẫu nhiên được thực hiện, mỗi

dãy có 65 phần tử bao gồm cả phần tử đầu tiên của khuếch tán (cho ac(1) = 1), hai dãy (rcv rd_ 3a vàrcv rd_ 3b) được biểu diễn dưới dạng ma trận4N2× 64. Chú ý rằng,

giá trị của các phần tử trong rcv rd_ 3a và rcv rd_ 3b được suy luận ra từ ràng buộc

tương ứng với cặp rcv rd_ 2a và rcv rd_ 2b để xác định cho một giá trị nhất định của

cipher d i_ ( ) vàac i( ). Nói cách khác,rcv rd_ 3a vàrcv rd_ 3b phụ thuộc gián tiếp vào

cipher d i_ ( − 1). Trong bản mật mã sử dụng các khóa mã được khôi phụcrcv rd_ 3a

và rcv rd_ 3b, phần tử rcv rd_ 3a( )i, j hoặc rcv rd_ 3b( )i, j , i ∈ [1 4 , N2]vàj ∈ [1 64],

được dùng để tính toán từ mãcipher d i_ ( ) với giá trị c ủacipher d i_ ( − 1) = j. Kết

phương trình (3.7). Vớircv rd_ 2 vàrcv rd_ 3 là một cặp khóa được khôi phục nào đó .

cipher d_ (0) =rcv rd_ 2_initial

cipher d i_ ( ) = ([ ( )ac i ⊕ rcv rd_ 2(cipher d_ (i − 1))] + rcv rd_ 3(i, ciphe r d_ (i − 1))) mod64,

...for i= 1 4... N 2

(3.7)

Ví dụ ảnh RGB5 5× với g iá trị của các điểm ảnh ở các lớp R, G, B như Hình 3.8(a)

và ma trận mở rộng tương ứng để th ực hiện mật mã bao gồm bốn ma trận con I, II, III,

IV như Hình 3.8(b). Các điểm ảnh trong I, II, III là 6 bit thấp của các điểm ảnh trong

lớp R, G, B tương ứng. Mỗi điểm ảnh trong ma trận con IV được hình thành bởi kết

hợp hai bit trọng số cao nhất của điểm ảnh của các kênh R, G và B. Ma trận mở rộng

10 10× như Hình 3.8(a). Dãy số ngẫu nhiên gốc được biểu diễn trong Hình 3.8(c). Dãy

số ngẫu nhiên được khôi phụcrcv rd_ 2a vàrcv rd_ 2bvà được mô tả trong Hình 3.8(d)

và 3.8(e), với giá trị ban đầu của rcv rd_ 2 để giải mã từ mã đầu tiên cipher d(1)_ . Hàng đầu tiên của rcv rd_ 2a và rcv rd_ 2b là giá trị của cipher d i_ ( − 1) và hàng thứ

hai là giá trị củarcv rd_ 2tương ứngcipherd(i − 1). Mảng các giá trị ngẫu nhiên được

khôi phục rcv rd_ 3a vàrcv rd_ 3bkhông được đưa ra ở đây vì chúng quá dài để miêu

tả bằng hình vẽ. Chú ý rằng dãy số ngẫu nhiên gốcrand2hoàn toàn khác với các dãy được khôi phục. Ảnh bản mã hóa như trong Hình 3.8(f) được mã theo biểu thức (3.4)

và k hóa mật gốc như Hình 3.8(c). Hình 3.8(g) mô tả ảnh bản mã hóa được mật mã

bởi bảng tra cứu trong Hình 3.5 và dùng cặp dãy số ngẫu nhiênrcv rd_ 2a vàrcv rd_ 3a với phương trình khuếch tán như phương trình (3.7). Hai ảnh bản mã hóa Hình 3.8(f)

và 3.8(g) thu đ ược là giống nhau.

Điều này có nghĩa là các khóa mật được khôi phục có thể được dùng tương đương như khóa mật gốc. Nói cách khác, giải thuật mật mã này không thể chống lại được kiểu tấn công lựa chọn văn bản trơn.

3.4.2 Tấn công lựa chọn văn bản mã hóa

Việc thực hiện tấn công lựa chọn văn bản mã hóa mong muốn khôi phục lại các khóa mật dùng trong khuếch tán và luật hoán vị. Chi tiết các bước thực hiện tấn công và

các ví dụ được trình bày dưới đây.

3.4.2.1 Tấn công quá trình hoán vị ngược

Nhìn chung, chiến lược để tấn công luật hoán vị ngược được mô tả như trong Hình 3.9.

Kĩ thuật để tìm ra luật n ghịch đảo hoán vị là có chút khác so với kỹ thuật thực hiện

trong tấn công lựa chọn văn bản trơn như được trình bày ở trên.

(a)Các kênh RGB của ảnh bản trơn (b)Ma trận mở rộng để mật mã

(c)Dãy số ngẫu nhiên gốc rand2 (d) Dãy số ngẫu nhiên thứ nhất được khôi phụcrcv_rd2a

(e)Dãy số ngẫu nhiên thứ hai được

khôi phụcrcv_rd2b

(f)Các kênh RGB của ảnh bản mã hóa

được mật mã dùng khóa gốc (g)được mật mã dùng khóa khôi phụcCác kênh RGB của ảnh bản mã hóa

Hình 3.8: Tấn công lựa chọn văn bản trơn trên ảnh5 5× .

đó, tấn công hoán vị ngược trong lựa chọn văn bản mã hóa phải được bắt đầu từ phần

tử cuối cùng ngược trở lại phần tử đầu tiên của ma trận mở rộng. Tuy nhiên, ở phía

giải m ật, quá trình hoán vị ngược được đặt sau khuếch tán ngược như được thấy ở

Hình 3 .1. Vì vậy, quá trình hoán vị ngược sẽ tách rời bất kì cặp từ lân cận trong ma trận mở rộng ra.

Hình 3.9 minh họa các bước tấn công quá tr ìn h hoán vị. Hầu hết các bước thực hiện

cũng giống như tấn công lựa chọn văn bản trơn ở phần trước. Ở đây chọn một ảnh bản

mã hóa bất kì Carb có ma trận mở rộng tương ứng là MD arb_ và được dùng để khôi phục lại ảnh bản trơn Parb. Ma trận mở rộng MPD arb_ được tạo ra từ việc bóc tách

Giải mật mã hóa Ảnh bản mã ngẫu nhiên Carb Tạo ra ma trận m rộngở Parb Giải mật mã hóa

Ảnh bản mã dùngc cho tấn công xáo trộn C(x0,y0) Tạo ra ma trận m rộngở P(x0,y0 ) Comparison (x1,y1), MPD_arb MPD_(x0,y0) (x2,y2).... (xn,yn)

S ửa đổi giá tr ị tại (x0,y0)

Hình 3.9: Thủ tục khôi phục lại luật hoán vị trong tấn công bản mã hóa cho điểm ảnh tại vị

trí (x0, y0).

Ma trậnMPD arb_ này sẽ được dùng trong suốt tấn công hoán vị để tìm ra sự thay đổi

giá trị các phần tử của ma trận mở rộng mẫuM PD x_( 0,y0)thông qua ph ép so sánh. Kết

quả là vị trí đích(x1, y1)của quá trình khuếch tán ngược được xác nhận bằng cách

tìm ra sai khác giữa các giá trị của phần tử trongMPD x_( 0,y0) vàMPD arb_ .

Từ cấu trúc hệ mật mã cho thấy, khu ếch tán ngược được thực hiện trước quá trình

hoán vị ngược. Vì vậy, tấn công hoán vị ngược được bắt đầu từ vị trí(x0, y0) = ( N, N) trong ma trận mở rộng MD x_( 0,y0) của ảnh bản mã hóa C(x0,y0). Ma trận mở rộng MD x_( 0,y0) giống vớiMD arb_ trừ phần tử ở vị trí ( x0, y0)được cố tình thay đổi. Sau

khi giải mã, chỉ có một phần tử tại vị trí(x1, y1)trong ma trậnMD x_( 0,y0) mà bắt đầu

từ vị trí này xuất hiện sự khác nhau về giá trị so vớ i ma trậnMPD arb_ . Nghĩa là phần

tử ở vị trí(x0, y0)đã được chuyển tới vị trí (x1, y1). Tương tự, quá trình được tiếp tục

bằng cách gán các giá trị lân cận cho vị trí(x0, y0) = ( N, N − 1) trong ma trận mở rộng mẫu MD x_( 0,y0). Quá trình khuếch tán làm cho hai giá trị cuối cùng trong ma trậnAD x_( 0,y0)ở vị trí (N, N − 1) và(N, N )cùng thay đổi so với các giá trị ở vị trí

ấy trong ma trậnAD arb_ . Sau khi th ực hiện hoán vị ngược, hai phần tử này tách nhau

ra trong ma trậnMPD x_( 0,y0). Vị trí của hai điểm b ị tách ra đó có thể được thấy thông

qua phép so sánh các phần tử trong các ma trậnMPD x_( 0,y0) vàMPD arb_ . Vị trí đích

(x1, y1)của (x0, y0) = ( N, N − 1) được tìm ra. Quá trình được tiếp tục thực hiện

ngược trở lên cho đến(x0, y0) = (1 1) , để hoàn thành việc tấn công hoán vị ngược.

Các bước để khôi phục luật hoán vị đ ược thực hiện như sau:

• Bước 1: Chọn ma trận mở rộngMD arb_ bất kì.

• Bước 3: Giải mãCarb thu được bản rõ Parb ở đầu ra của bộ giải mã.

• Bước 4: Giãn bản rõParb và thu được ma trậnMPD arb_ .

• Bước 5: Chọn vị trí(x0, y0)để tấn công quá trình hoán vị.

• Bước 6: GánMD x_( 0,y0)=MD arb_ và chỉ khác nhau giá trị tại vị trí (x0, y0).

• Bước 7: CoMD x_( 0,y0) lại thành bản mã hóaC(x0,y0)để giải mã.

• Bước 8: Sau khi giải mãC(x0,y0) thu được bản rõ P(x0,y0) ở đầu ra của bộ giải mã.

• Bước 9: Tạo ra ma trận mở rộngMPD x_( 0,y0) bằng cách giãn bản rõ P(x0,y0). • Bước 10: So sánh hai ma trậnMPD arb_ vàMPD x_( 0,y0)để tìm ra vị trí ( x1, y1),

tại đó bắt đầu có sự khác nhau về giá trị.

• Bước 11: Tiếp tục tìm các vị trí(x1, y1)để điền đầy đủ vào bảng tra cứu.

• Bước 12: Lưu lại giá trịx1vào vị trí (x0, y0)của ma trậnROW và lưu lại giá trị y1vào vị trí (x0, y0)của ma trậnCOL.

• Bước 13: Lặp lại bước 5 đến bước 12 để quét hết các vị trí hiện tại và tìm ra các

vị trí đích.

Ví dụ sau đây sẽ chứng minh sự thành công của phương pháp tấn công hoán vị ngược.

Một phần của tài liệu Digital library Ha Noi university of science and technology760 (Trang 98)

Tải bản đầy đủ (PDF)

(154 trang)