Kỹ thuật giấu tin THA

Một phần của tài liệu Một số vấn đề về bảo mật thư điện tử (Trang 52)

a) Một số định nghĩa

 Định nghĩa 1: Ký hiệu ⊗ là phép nhân theo phần tử của hai ma trận cùng cấp m×n:

( ⊗ ), = F, × G,, i = 1,2, … , m và j = 1,2, … , n

 Định nghĩa 2: Phép ⨁ hai số nguyên không âm là phép toán xor trên từng cặp bít tương ứng của chúng.

Ví dụ: 5 ⨁ 12 = 0101⨁1100 = 1001=9

 Định nghĩa 3:Với D là ma trận nguyên không âm cấp m×n, ký hiệu s = XSUM(D) hay ∑⨁, , được hiểu là phép ⨁ trên tất cả các phần tử của D.

b) Thuật toán giấu tin trên một khối

Nội dung phần này trình bày các thuật toán giấu tin trên một ma trận nhị phânkhối điểm ảnh F cấp m×n, các thuật toán trong mục này chỉ biến đổi nhiều nhất một phần tử trên F.

c) Thuật toán nhúng một bít

Đối với ảnh nhị phân, lược đồ của Wu-Lee được biết đến như là một lược đồ đơn giản thuộc nhóm kỹ thuật giấu tin theo khối bít. Lược đồ này sử dụng ma trận nhị phân ngẫu nhiên K cấp m×n làm khóa bí mật. Theo đó, thuật toán có thể nhúng một bít b vào F bằng việc biến đổi nhiều nhất một phần tử trên F để nhận được G thỏa mãn điều kiện:

53

SUM(G⨂K)mod 2 = b

Lược đồ này không thể mở rộng để giấu một dãy bít.

Xét một thuật toán khác bằng cách thay XSUM(G⨂K) = b cho điều kiện

SUM(G⨂K)mod 2 = b trong thuật toán Wu-Lee. Thuật toán này có thể mở rộng để giấu một dãy r bít.

 Thuật toán 1

Thuật toán này sẽ biến đổi nhiều nhất một phần tử trên F để nhận được G thỏa mãn điều kiện:

XSUM(G⨂K) = b

Thuật toán được thực hiện như sau: Bước 1:Tính s = XSUM(F⨂K)

Nếu b = s, đặt G = F, kết thúc thuật toán \\Nhúng mà không cần thay đổiảnh

Ngược lại, chuyển đến Bước 2 Bước 2:Tính d = s⨁b

Tìm một phần tử ( , )sao cho , =

Fu,v = 1- Fu,v \\ Đảo phần tửFu,v Đặt G = F

Kết thúc thuật toán

 Nhận xét 1: Trong thuật toán d = 1.Vì vậy, để bước 2 luôn thực hiện được thì ma trận K cần thỏa mãn điều kiện:

{1} ⊂ { , | = 1, … , và = 1, . . . , }

c) Thuật toán nhúng dãy bít

Trong mục này ta sẽ mở rộng Thuật toán 1 để nhúng dãy bít = … vào khối điểm ảnh F bằng cách sử dụng ma trận khóa K gồm các phần tử là các dãy nhị phân r bít. Nói cách khác, các phần tử Ki,j có giá trị từ 0 đến 2r-1.

Tương tự như Thuật toán 1, thuật toán dưới đây sẽ biến đổi nhiều nhất một phần tử của F để được ma trận G thỏa mãn điều kiện:

54  Thuật toán 2:

Bước 1:Tı́nh s = XSUM(F⨂K)

Nếu = , đặt G = F và kết thúc thuật toán Ngược lại, chuyển sang Bước 2

Bước 2:Tı́nh d = s⨁b

Chọn một phần tử (u, v) sao cho K , = d F , = 1 − F ,

Đặt G = F và kết thúc thuật toán

 Nhận xét 2: Trong thuật toán trên, d là một số nguyên từ 1 đến 2r-1. Do đó, để bước 2 luôn thực hiện được thì ma trận khóa K phải thỏa mãn điều kiện:

{1, 2, … , 2 − 1} ⊆ { , | = 1,2, … , và = 1,2, … , }

Từ điều kiện này suy ra: ≤ ⌊log ( × + 1)⌋

d) Ví dụ minh họa

Nhúng hai bít b1b2 vào ma trận F với các tham số cụ thể như sau:

b=b1b2=10 F K 1 0 0 10 01 10 0 1 1 11 01 10 0 1 1 11 11 01 Bước 1: Tính s = ( ⨂ ) = 10⨁01⨁10⨁11⨁01 = 11

Do s ≠ b, chuyển sang Bước 2 Bước 2: Tính = ⨁ = 11⨁10 = 01

Theo thuật toán chọn ( , )| , = , suy ra (u,v) = (1,2) Đảo F1,2: F1,2=1-0 = 1

Đặt G = F.

55 G 1 1 0 0 1 1 0 1 1

e)Chứng minh thuật toán nhúng dãy bít

Để khẳng định Thuật toán 2 đúng ta cần chứng minh trong mọi trường hợp kết thúc G luôn thỏa mãn điều kiện: ( ⨂ ) =

Xét hai trường hợp kết thúc của thuật toán:

 Trường hợp 1: Thuật toán kết thúc tại Bước 1, hiển nhiên G thỏa mãn điều kiện (2). Bởi, G chính là F, mà F thỏa mãn điều kiện ( ⨂ ) = .

 Trường hợp 2:Thuật toán kết thúc tại Bước 2 - Tính = ⨁ ,

- Chọn một phần tử (u, v)| , = , - Đảo Fu,v: Fu,v=1-Fu,v

- Đặt G=F

Khi đó, dễ dàng suy ra các phần tử của G được xác định theo công thức sau: , = , , ê ( , ) ≠ ( , ) 1 − , , ê ( , ) = ( , ) (3.1) Gọi       j i j i j i K G K G XSUM s , , , ) ( ' Từ (3.1) suy ra: ] ) 1 [( ' , , ) , ( ) , ( , , uv uv v u j i j i j i K F K F s        (3.2)

Do F là ma trận nhị phân nên Fu,v=0 hoặc 1. Xét hai trường hợp của Fu,v.

o Trường hợpFu,v=0, từ (3.2) suy ra:

] ) 1 [( ' , , , , , uv uv j i j i j i K F F F s      s'sKu,v (3.3)

56 o Trường hợp Fu,v=1, từ (3.2) suy ra:

v u v u v u v u v u j i j i j i K F K K K F s , , , , ) , ( ) , ( , , [(1 ) ] '           uv uv uv j i j i j i K F F K F s , , , , , , [(1 ) ] '       s'sKu,v (3.4)

Từ (3.3) và (3.4) suy ra khi đảo giá trị Fu,v thì s = XSUM(G⨁K) = s ⨁ K ,

Mặt khác, theo thuật toánK , = d ma ̀d = s⨁b nên s = s ⨁ s ⨁b = b

Vậy ( ⨂ ) = .

 Thuật toán 3

Để nâng cao mức độ an toàn của Thuật toán 2, ta có thể sử dụng thêm một số

∈ {0,1,2, … , 2 − 1} làm khóa thứ 2. Khi đó ta nhận được thuật toán 3 có nội dung tương tự như Thuật toán 2 ngoại trừ s được tính theo công thức:

s = XSUM(F⨂K)⨁ w

Ngoài ra, để khôi phục dãy bít b, sử dụng công thức sau:

SUM(G⨂K)⨁ w = b

Ta nhận thấy ma trận G trong Thuật toán 3 được xác định từ F, K, w và b. Vì vậy, ta có thể xem Thuật toán 3 như một phép biến đổi T từ (F,K,w,b) đến G:

G = T(F,K,w,b)

f) Lược đồ giấu tin trên ảnh nhị phân

Giả sử I là ảnh nhị phân dùng để giấu tin và b là dãy bít tin mật cần giấu. Trong thuật toán sử dụng hai khóa K và W, trong đó K là ma trận cấp m×n thỏa mãn hai điều kiện:

(1)∀(i, j) K, ∈ {0,1, … , 2 − 1}

(2){1,2, … , 2 − 1} ⊂ {K, |i = 1, … , mvàj = 1, … , n}

với r ≤ ⌊log (m × n + 1)⌋

và W = {w , w , … . , w }với 0 ≤ w ≤ 2 − 1 và 0 < t ≤ N

57

Bước 1: Chia khối - Chia ảnh I thành N khối Fi cấp m×n, chia b thành N dãy bít bi có độ dài

Bước 2: Giấu tin trên từng khối For i=1 to N do

α = (i − 1) mod t + 1

Gi=T(Fi, K, wα, bi) End for

Thuật toán cho ta ảnh G gồm các khối Gi cấp m×n với i =1,…,N

 Thuật toán khôi phục thông tin

Gọi G là ảnh có chứa dãy bít tin mật, thuật toán khôi phục tin giấu cần biết hai khóa bí mật K và W đã được sử dụng trong thuật toán giấu tin.

Bước 1: Chia ảnh G thành N khối Gi cấp m×n Bước 2: Khôi phục dãy bít

For i = 1 to N do

α = (i − 1) mod t + 1

b = XSUM(G ⨂K)⨁w

End for

Kết quả ta nhận được dãy bít tin mật b gồm N dãy con r bít bi, i=1,2,…,N

Một phần của tài liệu Một số vấn đề về bảo mật thư điện tử (Trang 52)

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

(76 trang)