KỸ THUẬT GIẤU TIN LIÊN TIẾP TRÊN TỪNG ĐIỂM ẢNH

Một phần của tài liệu Nâng cao chất lượng giấu tin cho ảnh mức xám (Trang 25)

3.1/ Giới thiệu

Trong luận văn, tác giả gọi đây là kỹ thuật giấu tin đơn giản. Với kỹ thuật giấu tin này, ta sẽ nhúng liên tiếp từng bit của dữ liệu mật vào từng điểm ảnh tương ứng.

Ý tưởng của thuật toán: sử dụng giá trị LSB của điểm ảnh để so sánh với bit của thông tin mật được giấu vào điểm ảnh đó, từ đó quyết định có thay đổi giá trị của điểm ảnh hay không. Nếu LSB của điểm ảnh P bằng với bit mật được giấu thì giữ nguyên giá trị điểm ảnh đó. Ngược lại, ta sẽ thay đổi giá trị của điểm ảnh P bằng giá trị Next(P) được xác định như sau:

P chẵn : Next(P) = P + 1 P lẻ : Next(P) = P – 1

Khi giải tin, bit thông tin mật chính là LSB của điểm ảnh giấu tin.

3.2/ Lược đồ giấu tin

Đầu vào: điểm ảnh P (0 P  255), bit mật b

Đầu ra: điểm ảnh P’ đã giấu b

*/ Bước 1: Lấy LSB của điểm P: l = P mod 2 */ Bước 2: So sánh l với b:

+/ Nếu l = b: giữ nguyên P tức P’= P

+/ Nếu l ≠ b: thay P bởi P’=Next(P)

3.3/ Lược đồ giải tin

Đầu vào: điểm ảnh P’

Đầu ra: bit mật b

*/ Bước 1: Lấy LSB của điểm P’: l = P’ mod 2 */ Bước 2: Trả về b= l

3.4/ Ví dụ minh họa Cho ảnh xám G gồm 256 mức: Cho ảnh xám G gồm 256 mức: Cho ảnh xám G gồm 256 mức: G = 1 2 3 4 P P 254 0 P P 255 128              Thông tin mật d=b1 b2 b3 b2=0101

a/ Pha giấu tin: giấu d vào ảnh G

*/ Bước 0 (bước chuẩn bị): biểu diễn d thành ma trận D:

D = 1 2 3 4 b b 0 1 b b 0 1             

*/ Bước 1: Lấy L là ma trận gồm các giá trị LSB của G, ta có: L= 0 0 1 0      

*/ Bước 2: So sánh D với L, ta thấy cần phải giữ nguyên P1 và thay đổi các điểm ảnh P2, P3, P4 thành:

+/ P2' = Next(P2)= Next(0)=1 +/ P3' = Next(P3)= Next(255)=254 +/ P4' = Next(P4)= Next(128)=129 Từ đó, ta được ảnh giấu tin:

G’= 254 1 254 129      

b/ Pha giải tin: lấy d từ ảnh G’

*/ Bước 1: Lấy L là ma trận gồm các giá trị LSB của G’, ta có: L= 0 1 0 1       */ Bước 2: Ta có D= L= 0 1 0 1       Tương ứng trả về giá trị d=0101 Tương ứng trả về giá trị d=0101

3.5/ Đánh giá:

- Ưu điểm:

+/ Đây là thuật toán giấu tin đơn giản, dễ hiểu, dễ cài đặt. +/Đối với mỗi ảnh mức xám, ta có thể giấu dữ liệu mật có dung lượng bằng đúng số điểm của ảnh đó (giấu tối đa) .

- Nhược điểm: Dễ bị phát hiện bởi các kỹ thuật thám tin (được trình bày ở chương IV)

IV/ Kỹ thuật giấu tin theo hướng tiếp cận chia khối đơn giản

4.1/ Giấu tin theo hướng tiếp cận chia khối đơn giản cho ảnh nhị phân

4.1.1/ Ý tưởng

Theo thuật toán này, ảnh được chia thành các khối rời nhau có cùng kích cỡ, mục đích là để giấu 1bit dữ liệu mật vào từng khối.

Ở pha giấu tin: ta sẽ tính tổng giá trị các điểm ảnh của từng khối, sau đó lấy tổng này chia cho 2 và lấy dư. Tiếp theo ta so sánh số dư với bit dữ liệu cần giấu. Nếu số dư bằng với bit cần giấu thì ta giữ nguyên khối đó. Trái lại, ta lật một điểm ảnh bất kỳ trong khối để được khối ảnh mới đã giấu tin.

Ở pha giải tin: bit thông tin mật được giấu chính là phần dư sau khi lấy tổng giá trị các điểm trong khối ảnh chia cho 2.

4.1.2/ Lược đồ giấu tin

Đầu vào: Khối ảnh F=(F1, F2, .., Fn), trong đó Fi= 0 hoặc 1 Bit mật b

Đầu ra: Khối ảnh Fđã giấu b

*/ Bước 1: Tính m=SUM(F) mod 2 */ Bước 2: So sánh m với b

+/ Nếu m = b, giữ nguyên F tức F’=F

+/ Nếu mb, Chọn bất kỳ một điểm ảnh Fi  F để lật

4.1.3/ Lược đồ giải tin

Đầu vào: Khối ảnh F’=  ' ' ' 

1 2 n

F , F ,..., F , trong đó Fi' = 0 hoặc 1 Đầu ra: Bit mật b

*/ Bước 1: Tính m=SUM(F’) mod 2 */ Bước 2: Trả về b= m

4.1.4/ Ví dụ minh họa

Khối ảnh F=(F1, F2, F3, F4, F5)=(1, 0, 1, 0, 0) Bit mật b=1

a/ Pha giấu b vào F

*/ Bước 1: Tính m=SUM(F) mod 2= 2 mod 2=0 */ Bước 2: So sánh m với b ta có m ≠ b nên:

+/ Chọn điểm ảnh F2 để lật thành F2'= F2  1=1 +/ Ta được khối ảnh mới F’=(1, 1, 1, 0, 0) chứa b b/ Pha giải tin: lấy b từ khối F’

*/ Bước 1: Tính m=SUM(F’) mod 2= 3 mod 2=1 */ Bước 2: Trả về b= m=1

4.2/ Giấu tin theo hướng tiếp cận chia khối đơn giản cho ảnh mức xám

4.2.1/ Ý tưởng

Tương tự như kỹ thuật giấu tin theo hướng tiếp cận chia khối đơn giản cho ảnh nhị phân, chỉ khác: thay vì thực hiện trực tiếp với giá trị của các điểm ảnh trong khối, ta sử dụng LSB của từng điểm ảnh.

4.2.2/ Lược đồ giấu tin

Đầu vào: Khối ảnh F=(F1, F2, .., Fn), trong đó Fi{0,1,2,…255} Bit mật b

Đầu ra: Khối ảnh Fđã giấu b

*/ Bước 1: Tính P =(P1, P2, .., Pn), trong đó Pi= Fi mod 2 */ Bước 2: Tính m=SUM(P) mod 2

*/ Bước 3: So sánh m với b

+/ Nếu m = b, giữ nguyên F tức F’=F

+/ Nếu mb, Chọn bất kỳ một điểm ảnh Fi  F để lật thành Fi'= Next (Fi), trong đó Next (Fi) được xác định như sau:

Fi chẵn : Next(Fi) = Fi + 1 Fi lẻ : Next(Fi) = Fi – 1 Ta được khối ảnh mới F’ chứa b 4.2.3/ Lược đồ giải tin

Đầu vào: Khối F’=  ' ' ' 

1 2 n

F , F ,..., F , trong đó Fi'{0, 1, 2,..,255} Đầu ra: Bit mật b

*/ Bước 1: Tính P =(P1, P2, .., Pn), trong đó Pi= Fi'mod 2 */ Bước 2: Tính m=SUM(P) mod 2

*/ Bước 3: Trả về b= m 4.2.4/ Ví dụ minh họa

Khối ảnh F=(F1, F2, F3, F4, F5)=(255, 254, 253, 127, 125) Bit mật b=1

a/ Pha giấu b vào F

*/ Bước 1: Tính P =(P1, P2, .., P5)= (1, 0, 1, 1, 1) */ Bước 2: Tính m=SUM(P) mod 2= 4 mod2 =0 */ Bước 3: So sánh m với b ta có m ≠ b nên:

+/ Chọn điểm ảnh F2 để lật thành:

' 2

F = Next(F2)= Next(254)= 255

+/ Ta được F’=(255, 255, 253, 127, 125) chứa b

b/ Pha giải tin: lấy b từ khối F’

*/ Bước 1: Tính P =(P1, P2, .., P5)= (1, 1, 1, 1, 1) */ Bước 2: Tính m=SUM(F’) mod 2= 5 mod 2=1 */ Bước 3: Trả về b= m=1

4.3/ Đánh giá

- Ưu điểm:

+/ Đây là thuật toán giấu tin theo hướng tiếp cận chia khối đơn giản nhất, dễ hiểu, dễ cài đặt.

+/ Có thể chống được sự phát hiện của một số kỹ thuật thám tin (được trình bày ở chương IV)

- Nhược điểm: Tỷ lệ giấu tin thấp hơn rất nhiều so với tỷ lệ giấu tin lý tưởng MSDR ( được trình bầy ở phần III chương I), cụ thể như sau:

+/ Xét 1 khối gồm 7 điểm ảnh, bằng cách lật không quá 1 điểm ảnh và mỗi điểm ảnh chỉ có 1 cách để lật (hay q-1=1 ), ta có thể giấu tối đa

MSDR1=log (1 C .1)2  17 3

  bit dữ liệu, nghĩa là với 1 ảnh có dung lượng 70kB ta có thể giấu được tối đa 30kB dữ liệu mật. Trong thuật toán này: với 1 khối 7 điểm ảnh, lật 1 điểm ảnh ta chỉ giấu được 1 bit, nghĩa là với 1 ảnh có dung lượng 70kB ta chỉ có thể giấu được 10kB dữ liệu mật.

V/ Kỹ thuật giấu tin theo CPT [13]

5.1/ Tổng quan

Thuật toán CPT (Chen- Pan- Tseng ) là thuật toán giấu tin trong khối bit do Yu-Yuan Chen, Hsiang-Kuang Pan, Yu-Chee Tseng đề xuất. Thuật toán CPT (2000) hiện nay đang được sử dụng rộng rãi trong các ứng dụng giấu tin trong ảnh 8 bit, 24 bit. CPT (2000) được thiết kế để giấu được dãy r bit vào ma trận F cỡ m×n

với r= log (m n 1)2    ( hay 2r-1≤ m×n≤ 2r+1) bằng cách thay đổi nhiều nhất 2 bit trong khối F.

Định lý: Cho 2 ma trận nhị phân F, K cỡ m×n và ma trận trọng số W thỏa: W={Wij , 1  i  m, 1  j  n, 1  Wij 2r – 1}, với r=log (m n 1)2   . Cho một chùm bit b=b1 b2 ….b r , chúng ta có thể lật không quá 2 điểm ảnh của F để nhận:

b= SUM[(F K) W]mod 2r

Trong đó:  là toán tử Xor đối với từng bit,  là phép nhân đối với từng bit. SUM là phép tính tổng.

5.2/ Lược đồ giấu tin:

- Đầu vào: Khối điểm ảnh F cỡ m×n của ảnh gốc G, khóa bí mật K, ma trận trọng số W, chùm r bit bí mật b=b1 b2 ….b r .

Trong đó r=log (m n 1)2    - Đầu ra: Khối điểm ảnh F’ của ảnh G’ đã giấu tin

*/ Bước 1: Tính T=FK

*/ Bước 2: Tính S=( Ʃ1≤i≤mƩ 1≤j≤n(Wij . Tij)) mod 2r */ Bước 3: Tính d= b – S

+/ Nếu d=0 thì coi F là khối đã giấu tin +/ Trái lại d≠0: Chuyển sang bước 4

*/ Bước 4: Tìm các ô Fij sao cho sau khi đảo giá trị bit ở các ô này, S sẽ tăng đúng một lượng d. Khi đó ta được: S’= (S+d) mod 2r = b. Gọi Sd là tập thỏa mãn: Sd ={ Fij | (Tij =0, Wij =d mod 2r ) hoặc (T ij =1, Wij =2r- d mod 2r )}. Dễ thấy, Sd là tập các ô Fij cần đảo sao cho S’=b. Khi đó xảy ra 2 trường hợp sau:

+/Nếu Sd ≠ , đảo một ô Fij  Sd. Thuật toán dừng +/Trái lại, chuyển sang bước 5

*/ Bước 5: Tìm số nguyên k >1 nhỏ nhất thỏa: Sk.d≠  và Sd-k.d ≠ . Khi đó đảo ô Fi j  Sk.d và Fxy  Sd-kd. Thuật toán dừng.

5.3/ Lược đồ giải tin:

- Đầu vào: Khối điểm ảnh F (đã giấu tin ) cỡ m×n, khóa bí mật K, ma trận trọng số W.

- Đầu ra: Chùm r bit bí mật b=b1 b2 ….b r . Trong đó r=log (m n 1)2   

*/ Bước 1: Tính T= F  K

*/ Bước 2: Tính S=( Ʃ1≤i≤mƩ 1≤j≤n(Wij . Tij)) mod 2r

*/ Bước 3: Trả về b= S. Biểu diễn lại b dưới dạng nhị phân.

5.4/ Ví dụ minh họa

Cho khối F gồm 7 điểm ảnh. F được biểu diễn dưới dạng ma trận có kích cỡ 1×7: F=(F1, F2, F3, F4, F5, F6, F7)=(1,0, 1, 1, 1, 0, 0).

Khóa K=(0, 1, 0, 0, 1, 1, 0)

Ma trận trọng số W=(1, 2, 3, 4, 5, 6, 7)

Theo thuật toán CPT bằng việc lật không quá 2 điểm ảnh trong khối 7 điểm ảnh F, ta có thể giấu được r=log (1 7 1)2   = 3 bit dữ liệu. Giả sử, ta cần phải giấu b=001 vào F.

a/ Pha giấu b vào F

*/ Bước 1: Tính T=F  K=(1,1, 1, 1, 0, 1, 0)

*/ Bước 2: Tính S=( Ʃ1≤i≤7 (Wi . Ti)) mod 2r =(1+2+3+4+6) mod 8 = 0

*/ Bước 3: Tính d= b – S mod 2r. Trong đó b=0012= 1 Ta được d=1

*/ Bước 4: Tìm Sd tức S1:

Suy ra chuyển sang bước 5 */ Bước 5: Với k=2, d=1 ta có:

+/ S2.1=S2={F6}

+/ S1-2.1=S-1 =S7={F7, F1} Nên ta chọn F6  S2 và F1 S7 để lật

Ta được khối ảnh giấu tin F’= (0,0, 1, 1, 1, 1, 0).

b/ Pha giải tin: lấy b từ khối F’

*/ Bước 1: Tính T=F’  K= (0, 1, 1, 1, 0, 0, 0)

*/ Bước 2: Tính S=( Ʃ1≤i≤7 (Wi . Ti)) mod 2r =(2+3+4) mod 8 = 1

*/ Bước 3: Trả về b= S = 1 hay b=0012

5.5/ Đánh giá

- Thuật toán CPT (2000) chỉ áp dụng được cho ảnh nhị phân

- So với thuật toán giấu tin theo hướng tiếp cận chia khối đơn giản, tỷ lệ giấu tin của thuật toán CPT đã tăng lên đáng kể. Giả sử ta có khối gồm 5 điểm ảnh, nếu sử dụng thuật toán giấu tin theo hướng tiếp cận chia khối đơn giản thì bằng việc lật 1 điểm ảnh, ta chỉ giấu được 1 bit dữ liệu. Nếu chập 2 khối 5 điểm ảnh này lại thành 1 khối ảnh gồm 10 điểm ảnh, thì với việc lật 2 điểm ảnh ta chỉ giấu được 2 bit dữ liệu. Trong khi đó, với thuật toán CPT, với mỗi khối gồm 10 điểm ảnh, bằng việc lật không quá 2 điểm ảnh ta có thể giấu được số bit dữ liệu mật là

r=log (10 1)2  = 3 bit. Tuy nhiên, thuật toán CPT vẫn chưa đạt được tỷ lệ giấu tin lý tưởng MSDR. Theo MSDR, mỗi khối ảnh nhị phân gồm 10 điểm, bằng việc lật không quá 2 điểm ảnh, ta có thể giấu tối đa số bit dữ liệu mật là MSDR2=log (1 C2  110.1 C 102 .1)

 = 5 bit. Xét một khối ảnh nhị phân tổng quát gồm N >1 điểm, ta có:

MSDR2 = 2 1N 2N 2 (N 1)N log (1 C C ) log 1 N 2                  = 2 (N 1)N log 1 2              Mà: 2 (N 1)(N 1) 2 (N 1)N 2 (N 1)(N 1)

log log 1 log

2 2 4                                        

 2.log (N 1) 12   MSDR22.log (N 1) 22   2. log (N 1) 2  2

Dễ thấy log (N 1)2   = r là số bit giấu được vào khối N điểm ảnh khi thay đổi không quá 2 điểm theo thuật toán CPT. Lại có :

2 2 2

2.log (N 1) 1   2.log (N 1)  1 2. log (N 1)   1 1 2.r

     

     

 2.r - 2≤ MSDR2 ≤ 2.r. Vậy kỹ thuật giấu tin theo thuật toán CPT đạt tỷ lệ giấu tin kém hơn khá nhiều so với tỷ lệ giấu tin lý tưởng (kém hơn xấp xỉ 2 lần ). [2]

(*) Trong chương tiếp theo, tác giả sẽ trình bầy một số sơ đồ giấu tin đạt đến tỷ lệ giấu tin lý tưởng.

CHƯƠNG III

GIẤU TIN BẰNG PHƯƠNG PHÁP MÔ-ĐUN

I/ Tổng quan

- Bằng phương pháp mô-đun [8, 9, 10], chúng ta đã có một cách tiếp cận mới trong việc xây dựng các sơ đồ giấu tin. Phương pháp mô-đun dựa trên các tính chất của mô-đun trên vành Zq với q là một số tự nhiên bất kỳ (q ≥ 2). Việc sử dụng các tính chất của đại số cho phép ta đưa ra các chứng minh chặt chẽ về tính đúng đắn của các thuật toán được đề xuất đồng thời cho phép phát triển các thuật toán giấu tin mới một cách dễ dàng, hiệu quả.

- Nhắc lại một vài tính chất và ký hiệu:

+/ Cho vành Zq [3], trong đó Zq={0,1,…,q-1}. Mỗi mô-đun (phải) M trên vành Zq là một nhóm aben cộng với phần tử trung hòa 0 và được trang bị phép nhân vô hướng “.” nhằm gán mỗi cặp (m,t) thuộc M × Zq với một phần tử m.t thuộc M sao cho các tính chất sau được thỏa mãn:

*/ Tính chất 1: m.0 = 0; m.1=m

*/ Tính chất 2: m+n=n+m ,  m,n  M

*/ Tính chất 3: m.(t+l)=m.t+m.l,  m  M và t,l Zq +/ Định nghĩa r-cơ sở [8]: Cho r là một số tự nhiên, r> 0, M là Zq-mô- đun, U M- {0}, ta gọi U là một r-cơ sở của mô-đun M nếu  x  M-{0}, x có thể được biểu diễn bởi một tổ hợp tuyến tính của nhiều nhất r phần tử thuộc U. Nghĩa là, tồn tại n phần tử t1, t2,…,tn Zq, n≤ r; sao cho: x= u1. t1+ u2. t2+…+ un. tn, trong đó ui  U (i=1,2,..,n)

+/ Ký hiệu sơ đồ giấu tin (n, k, d) nghĩa là sơ đồ cho phép ta giấu d bit dữ liệu vào trong 1 khối F gồm k điểm ảnh bằng việc thay đổi không quá n điểm ảnh trong F.

II/ Sơ đồ giấu tin (1,7,3) [11]

2.1/ Cơ sở lý thuyết

2.1.1/ Mô-đun trên vành Z2 trong giấu tin

Cho mô-đun (phải) M trên vành Z2, ta có M= Zn2 = Z2 × …×Z2 là tích Đề-các n tập hợp Z2. Phép cộng trên Z2 có thể được xem như toán tử XOR trên các bit. Mỗi một phần tử x=(x1, x2, …, xn)  M ( xi  Z2) có thể được biểu diễn như 1 xâu n bit x= x1x2…xn với các toán tử được định nghĩa như sau:

*/ x+y= z1z2…zn, trong đó zi=xi  yi; x, y  M; i=1,..,n */ x.k= z1z2…zn, trong đó zi=xi.k= xi AND k; x  M; k Z2 Xét ảnh nhị phân G, ta đặt tập CG=Z2={0,1} như là một tập hợp

Một phần của tài liệu Nâng cao chất lượng giấu tin cho ảnh mức xám (Trang 25)