Cải tiến thuật toán

Một phần của tài liệu Một số kỹ thuật cài tin trong ảnh BITMAP (Trang 64)

IV .2 Mô hình của quá trình giấu tin và giải mã trong ảnh

e) Cải tiến thuật toán

• Với thuật toán này việc chọn khối khá dơn giản, ta bắt đầu từ khối đầu tiên và những khối liên tiếp phía sau một cách tuần tự. Tuy nhiên, ta có thổ cải tiến thuật toán bàng cách chọn ngẫu nhiên một khối chưa giấu ử mỗi lẩn giấu. Khi đó, ta đã làm tăng (.lược độ an toàn của thuật toán vì khoá hay giờ còn thêm cả chỉ số khối đã giấu tin cho từng bít. Hoặc la có thổ thay đổi kích thước khối ở mỏi lần oi ấu, chẳng han như lần 1 cóJ c ’ o . kích thước khối là 8*8, lần 2 là 8*12 trone trường hợp này thì khoá sẽ là kích thước khối của mỗi lần giấu.

Một cách cải tiến thuật toán khác nữa là ta sẽ tính hệ sô phân bô bit cùa một ma trận điểm ảnh. Hệ số phàn bỏ hít là đại lượng đặc trưng cho

mức đô rời rac của bit 0 và 1 c ủa m a irãn đỏ. V i c e chon bit nào đê đảo íiiú. . . . L .

M ọ i ,\ó kỹ i l i u ậ i c à i tui iroiìiỊ (inh I Ỉ Í I M A I ’ <’ s

trị se l u ỳ vào việc sau hệ so hit cửa ma trận dỏ lớn hay nhỏ. Với cách Iiàv

việc giấu tin dôi với ảnh đen trãng là rất hiệu quá.

ẴV.3. 2. Kỹ thuật thứ 2- Kỹ thuật giáu till của vvu _ LEE

a) Một s ố khái niệm cơ bán

Phép nhãn nil (AND)

Gụi ab là hai bít tuỳ ý, phép toán nhân bít AND, kí hiệu là A trên hai bít ab cho ta eiá trị 1 khi và chi khi a =/ ;= /, trong các trường hợp còn lại, Li.\b=()

* Phép cộng loại trừ (XOR)

Phcp toán cộng loại trừ (còn gọi là phép toán so khác) XOR, kí hiệu là © trên hai bít ab cho ta giá trị 1 nếu a và giá trị 0 nếu a = b.

* Báng £Ìá trị chân lý của hai phép toán trên :

a b aAb a ® b

1 0 0 I

1 1 1 0

0 1 0 1

0 0 0 0

* Phát triển 2 phép toán trên đối với 2 ma trận

Cho A và B là hai ma trận bít cùng cấp. Ta thực hiện các phép toán như sau:

- Nếu A = (a,j), B = (bjj). c =(c,j), D = (djj)

thì A A B = C với c,j = u,j A b,j

và A © B = D \'ới d,j = a,j © b,j

.Ml lí \ ó k ỹ r i l i u i l c ủ i t i n i r o i i i Ị l i n h Ỉ U Ị ' M A P <tf)

Tonu uiá trị các phân tư irong ma trận

Ta ilịnlì imlũa SUM(X) là tổng các 11 iá trị liên ma trận X. Chú V num

MÕU X là một m a trận hít thì S U M ( X ) chính la tổIIII NO hít 1 trong X.

hi Y ĩ ườn ÍỊ cùa tliuật toán Wu_Lcc.

- Sừ dụng ma irận kiioá bí mật K là mọt ma trạn nhị phán cớ kích 111 ước 111 X n (bằng kích thước cua khôi anh giấu tin) nhằm làm tăng độ an toàn của thuật toán. Nếu trước đúv chi biết kích tlurức khối là 111X11 thì dối phương rất đỏ khai thác dược bàn tin mật, nay naoài kích tliước này còn phai biết ui á trị cụ thê của khoá K.

- Sứ dụng phép toán AND giữa nia trận điêm anil và ma trận khoá (FiAK) nhằm qui định thuật toán chi dược phép sửa các bít tronc khối Fi ứng với bít 1 trong khoá K. Như vây, khoá K đươc xcm nhưo o . J ■ một mật nạ, tạo ra khiina, nhìn cho thuật toán, tăng độ an toàn... c? . 7 o

- Sử (lụng phép SUM (tính giá trị các Bit ! trong các ma trận nhị phàn) tie kiêm tra điều kiện an toàn khi tliỏns tin dược dâu. Điều kiện an toàn là 0<SUM(FiAK) < SUM(K) có nghĩa là qui định nếu khối FiA K toàn 0 hoặc giống nlur khoá K thì không dược giấu tin đè tránh bị lộ

- Thông tin được giấu vào mỗi khôi Fi các bit điểm ảnh chỉ là 1 bít. Khi thông tin được giấu, khối bit (F’i) sau khi được giấu luỏn dam báo tính hất biến: SUM(F’iA K) mod 2 = b (b chính là hit dược giấu)

c) Tliuật toán: Input:

- Một ánh gốc nhị phân F.

- Một klioá bí mật K: là một ma trận nhị phán có kích thước m*n.

M o l so Ả V I l i m i t c à i t i n i r o nl i n h B f l ' M A P

- Một file thông tin cần giấu p

Output:

- Một anil đã được mấu thông tjn

Giàu tin:

Đe cho đơn giãn chúng ta coi kích cỡ của anil F là bội cua m*n. Việc nhúng ihông tin íỉiâu vào trone ảnh sẽ được thực hiện băng cách thay đổi một sù hít của ảnh F theo quy tác:

Bước 1: Chia ánh F thành các khỏi nhỏ, mỏi khỏi có kích thước là m*n. Bước 2: Với mỗi khối ảnh nhỏ Fi thu được từ bước Sl, ta kiểm tra điổu kiện an toàn khi giấu tin:

0 < SUM(FiAK) < SUM(K)

Nếu đúng thì chuyển tới bước 3 đế giấu thông tin vào trong khối Fi, còn nếu không thì không giấu dữ liệu vào trong khối Fi, khối Fi sẽ được giữ nguyên.

Bước 3: Gọi bít cẩn giấu vào trong khối Fi là b, thực hiện các bước sau để thay đổi Fi:

if (SUM(FiAK) mod 2 = b) then giữ nguyên Fi

else if (SUM(FiAK)=l) then

chọn ngẫu nhiên một bít (j.k) tlioả mãn đổng thời [FiJjk =0 và ỊK]jk= 1 sau đó chuyển giá trị của hít [Fi] k thành 1; clsc ií'(SUM(FiAK)= SUM(K)-l) then

chọn ngẫu nhiên một bít (j,k) thoả mãn đổng thời [Fi]jk = 1 và [K]jk= 1 sau đó chuvôn iiiá trị của bít [Fi]jk thành 0; else

chọn ngẫu nhiên một bít mà [K]jk= 1 chuyển giá trị của bít [Fi]jkt ừ 0 thành 1 hoặc từ 1 thành 0;

end il’;

M ậ t so k \ rliiiiii (Ù I I m i r o ii iỊ (inh H Í 1 M A I ’ (>x

Việc chon bít nào trong F do đáo cấn tuân thù theo nuuycii tác: Nếu FiAK có nhiều hít 1 (SUM(FiAK)= SUM(K)-1) thì chọn bít 1. ngược lại nêu FiA K có quá ít bít 1 (SUM(FiAK)=l) thì chọn bít 0. Nuuvèii tác này làm giảm khả nánụ bít đảo bị phát hiện.

Giai mã:

Nhờ bất hiến có được khi giấu tin, ta dỗ dàng giải mã dê lây lại thông tin đã

2,1 ũ 11 như sau: Duyệt lần lượt các khối Fi của anh đích F. Nếu Fi thoả điều kiện ()< SUM(FiA K) < SUM(K) thì tính bít b dã được giấu vào trong khơi bàng công thức b = SUM(F’iA K) mod 2.

cì) Minh ỉìoạ thuật toán

F'"> 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 I i 0 1 1 0 1 0

Thông tin giấu B = 0 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 1 E 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 fj.fi 1 ! 0 1 1 0 1 0 F3 F4 K F'3 F’4

H ìn h 4.6: M ô tả quá trình đảo bít đ ể giàu tin của thuật toán trên 4 khôi

Giả sử một ảnh F có kích thước 6x6 và một ma trận khoá K có kích thước 3x 3 như trong hình vẽ. Ta chia ảnh F thành 4 khối nhỏ mỗi khối sẽ có kích thước là 3x3 ta thu được Fl, F2,F3,F4.

- Vì SUM(FIAK) = SUM(K) = 5 nén khống giấu dữ liệu vào trong F1 .

M ộ t M> k x t h u ậ t c ủ i t i n i r o i i Ị Ị í ỉ n l i B f l M A P M

Vì SUM(F2AK) = 3 nên một bít cỏ thể dược giấu vào khối 2. Theo ví du trôn bít đẩu tiên ctirưc ui ấu là bít 0. Nên iheo S3 la sẽ‘— chọn một bít có [F2]ij =0.vu ỊK]ij =1 và đổi giá trị [F2Jij thành 1, ỉ;2 chuyến thành F2 như trên hình vẽ (bít bị đổi được đánh giấu xám).

Với F3, SUM(F3AK) = 3 nhưng bít cán giấu là bít là bít 1 nên theo SI ta giữ nguyên F3 nhưng thực tê F3 van được giấu một hít 1.

- Tương tự đối với F4, SUM(PIAK) = 4, và bít cấn giấu là bit 1 nõn theo S3 ta chọn một bít [F4Jij =1 và [K]ij =1 rồi chuyên [F4]ij =0. Bít thay đổi được đánh giấu xám.

Ví dụ minh hoạ:

H ìn h 4.7 : Ả n h trước và sau k h ỉ giấu 152 bít thông tin

c) Phân tích thuật toán

- Vì khoá K là bí mật nên thông tin đã được nhúng là bí mật. Thuật toán này làm thay đổi nhiều nhất một bít của khối Fi khi giấu một bít thông tin vào trong khói nên với một khối có kích thước m*n đủ lớn thì sự thay đổi của Fi la nhỏ để đảm bảo dược tính an toàn của thuật toán.

■\/' 'I \á k V l l i i i d l ( I I I 11II tro n q lìn h I Ỉ I Í M . M ’ /0

Vì phép toán AND dược sir dụng tic tính FiAK. nên giá trị lớn nhất của SUM(FiAK) không the vượt quá SUM(K) và do tính chất của phép toán AND.

nen co một khối nào thay đổi thì VỊ trí thay đoi chi xay ra ỏ phần tư cỏ giá trị 1

tron ì: kiioá K. Vì thố, nêu một anil F hoàn toàn Iráng nào đó được truvền đi thì

kc thù khi hát được thông tin sẽ dỗ dàng tìm ra đươc vị trí 1 của khoú K. dó la

lí clo mà ta khôn" dùng trưừim hợp SUM(F1A K) =0. Đây là một kẽ hở của

thuật toán đỏi với klioá.

- Với trường hợp SUM(F1 A K) = SUM(K) cũng lương tự nếu F hoàn toàn đen thì vị trí cùa bít thay đổi cũne là vị trí nia hít tirime ímg ở khoá là 1.

Đe tránh những tnrờng hợp trôn thuật toán đã phải đưa ra phụ thuộc: ()<SUM(FIA K) < SUM(K). Nhưng cho dù như thế đi chăng nữa thì vị trí tưưng ứng với hít bị thay đổi cũng tương ứng vói bít ứ vị trí đó trong khoá K có giá trị 1, và bít không bao giờ bị thay đổi tương ứng sẽ là bít 0 ư vị trí đó trong khoá K. Và như thế việc chọn khoá K như thế nào là một công việc hết sức quan trọng.

- Nếu anil F được lựa chọn để giấu thông tin có quá nhiều điểm tráng hoặc quá nhiều điểm đen thì tí lộ bít giấu được sẽ rất thấp.

- Nói chung đối với ánh đen tráng, thuật toán này van chưa đạl được những yêu cầu cần thiết vổ khả năng giấu. Độ an toàn thòng tin đã phần nào dược cài thiện hơn so với kỹ thuật thứ nhất, vì vậy chất lượng ảnh cũng sẽ tốt hơn. Tuy nhiên về vân đề số lượng thòng tin giấu lại giùm đi vì cỏ những khối sẽ khôgn được giấu tin. [9]

/) C iíi lie'll thuật toán

Ta có thê cai tièìi thuật toán này khi áp tlinm đối với ánh màu harm cách khi ma trận bit không thoá mũ đieu kiện an loàn 0 < sum(Fi A K) < sum(K) ta van thực hiện mấu tin theo ý tướim cua thuậl toán, vì dối với ảnh màu ta dã áp

M ọ l .sô k ỹ l l m ậ l c à i I m t r o i i ì Ị ( i n h l i l T M A I ' 7

duns’ kỹ thuật lách các bit LSB, nôn khòim anh hưởng đốn chất iưựng ảnh mà so lirợim thôim tin uiâii sẽ nhiéu hơn.

IV.3.3. Kỹ thuật 3 - Kỹ thuật giấu fin YUAN FAN TSENG

Trong mục này dề cập tới một kỹ thuật dưn giản và dáng tin cậy dế dấu những thông tin quan trọniỉ vào một ảnh đen trắng (ảnh nhị phân) bằng cách sử dụng một khoá bí mật và một ma trận trọng số do Yu-Yuan Chen, Hsiang- Kuang Pan và Yu-Chee Lseng thuộc khoa Công nghệ thông tin và Khoa học máy tính Đại học Quốc gia Đài Loan nghiên cứu. Phương pháp này được chứng minh là có độ an toàn dữ liệu cao, đảm bảo chất lượng ảnh gốc vù có ủ lệ giữa kích thước thông tin dấu được với kích thước ảnh môi trường tương đối lớn so với các phương pháp khác và cho phép đáu được tới [log2(mn+l)] bit dữ liệu vào trong mỗi khối ảnh kích thước m*n mà chỉ cần thay đổi nhiều nhất 2 bit trong khôi ảnh đó.

(i) Một sô khái niệm dùng Iro/IÍỊ thuật toán:

* Klioá bí mật:

Khoú là một ma trận nhị phân có cùng kích thước mxn với kích thước của khối ảnh. Khoá được dùng một cách hí mật giữa người gửi và người nhận. * Ma trận trọng số cấp r:

Ma trận trọng số w cấp r là một ma trận số nguyên có kích thước bàng kích thước của khối ảnh mxn và tlioả các điều kiện sau:

- w có các phần tử nằm trong klioảnu giá trị (0..2r l) với r cho trước

thoả mãn điều kiện T < 111*11.

- Mõi một phán tử có giá trị lừ I..2' ! xuất hiện ít nhất 1 lán.

M i ‘l s< ’ k ỷ l l i H i i l c ù i t i n tn m s > l i n h l i í I M A I ’ 7 -

Ví dụ: Xcìy clựnu một ma trận trọng sỏ kích thước 4 x 4 , ma trận này chứa các giá trị nam trong Irons khoáng 0..15 và mỗi uiá trị từ 1.2.3...7 xuất liiyn ít nhài 1 lán. Một ví dụ ma trận trọng sò W: 1 2 3 4 5 6 7 1 J 2 3 . ... 4 5 4 5 7 1

* Các phép toán trên ma trận dùng trong thuật toán Phép toán XOR hai ma trận A® B Phép toán nhân hai ma trận A A B

Phép toán tính tổng giá trị trong ma trận SUM(X)

b) Ý tưâiiiỊ của thuật toán

Thuật toán sử đụng mội ma trận khoá và mội ma trận trọng số để giấu thònu till. Việc sử dụng thêm ma trận trọng số w vù phép XOR giữa ma trận cliểm ảnh và ma trận klioá sẽ làm cho thuật toán đảm bảo tlirợc tốt an toàn thông tin và cũng ííiấu dược nhiều thông tin hơn trong mỏi khối ánh bàng cách thay dổi nhiều nhất 2 bít mỗi khối ảnh.

c) Tliuụt toán:

I n p u t :

- F : là một ma trận anh gốc dùng đe giấu thông tin. F đưọc chia thành các khối Fi. mỗi ma trận điểm ánh Fi có kích thước là mxn. đè cho đơn gian ta gia sử ràng F là bội của các Fi.

- K : là một ma trận kho á cấp mxn. W: là một ma trận trọng số cấp mxn.

M ộ t sò kV í l n u i r c à i t u : H o/IIỊ l ì n h l i H M . M ’

- I : Sỏ lươnu bít sc 111 nin li troim mỏi một khói anh c ? C7 C7 111X11.

B : Là lượng thông tin cần giấu góm kxr bít, k sẽ là sô khối ánh

g i a u .

O u t p u t :

Ảnh đích F ’ chứa B. F dược tạo lừ các khối đích F ’i. Mỗi F ’i thu dược lừ khối Fi tương ứng sau khi đã giấu r bít thông tin từ 13.

( ĩ i á n tin:

Thuật toán sẽ thực hiện việc giấu tin bàng cách biến đổi mỏi Fi thành F ’i sao cho luôn thoa mãn điều kiện sau:

SUM((F, ® K) 0 W) = b,b2...br(mod 2r). (*)

Trong đó bl,b,...hr là dạng biếu diỗn của một số nhị phân tạo từ dãy /' bít liên tiếp trong B.

Mỗi Fi bị biến đổi nhiều nhất là 2 bít (Vì cần tạo ra điều kiện * có tình huống phải biến đổi các khối ảnh Fi 2 bít ihông tin). Quá trình biến đổi gổm 4 bước sau đày:

B u c k : I : Tính m a trận T=Fj © K Tính ma trận p = T ® w Bước 2 : Tính tổng Sum = SUM(P) Bưóv 3:

Với ma trận T và với mọi w=l,2,...,2r-l ta xác định tập hợp Sw như sau: s w = {(J,k) I (W[j,k]=w A TỊj,k]=0) V (Wfj,k]-2r -w AT[j,k]=l))l Dỗ nhận thây Sw là tập hợp các toạ độ (j,k) của ma trận Fj sao cho khi đảo bit F,[j,kJ thì Slim ở bước 2 tăne thèm w dơn vị. Tlụrc vậy, ta có :

• Trường hợp 1: Nếu Wfj.k] = w và T[j,k]=0

Khi đó đảo bit F,|j.k| sẽ làm cho TỊj,k] = 1, do đó Sum tãng lên w

M ộ t so k\ ilu iíii CÒI Im Iroin; (inh H I I M A I’ 7 4

• Trirờim hợp 2: Nếu \V ịj.k j = 2' - \v và Tị j.k ]= l

Khi dó dáo bit FJj,k| sẽ làm T|j.k|=(). do dó Slim sẽ giám di 2' - vv, tức là tang lẽn w theo mod 2r . Từ clnili imhĩa cùa tập S\v ta có: S.s = s,, Bước 4:

Kí hiệu d= (bịb2...br)- SUM(P) (mod 2').

'l a cần thực hiện việc đáo bit trên F, dê dirực F: sao cho tone Sum tínhI • 1 o được ở bước 2 khi thay F, hỏi F‘, sẽ tăng lòn đ.

• Nếu d=0, k h ôn g cun tliav dõi F,

• Nếu d 0 ta tlurc hiện các cõnỵ việc sau:

1. Chọn li bất kỳ thuộc tập ( 1,2...T -1- I sao cho ShJ* 0 \'à S.(|,.|)(J^ 0 2. Chọn phẩn tử (j,k) bất kỳ thuộc Shd vù đáo bit F,[j,k].

3. Chọn phần tử (u,v) bất kỳ thuộc s.(h_j JJ và đảo bit F,[u,vJ.

Rõ ràng là để tãng Sum lên đ, la có thể chọn 2 tập khác trống ShJ và S.(h.|Hj. Thật vậy, hai tập này chứa các vị trí bit trong khối F, mà ta cỏ thể đảo đc tăng Sum lèn hd và -(h-1 )d một cách tương ứng, kết quá cuối cùng là Sum sẽ tăng lên hđ + (-(li-l)d) - d

Tương tự như các tập Su khác ta cũng có thể coi tập s„ là tập chứa

Một phần của tài liệu Một số kỹ thuật cài tin trong ảnh BITMAP (Trang 64)