Thuật toán giấu tin:

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

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

b) Thuật toán giấu tin:

Input:

• Một file ánh Bitmap den trắng F • Một file thông tin cần giấu p

Output:

• Một file ảnh đã giấu tin F ’

• M ộ t k ho á đổ giải tin K

Cách thức thực hiện: Tiên xử li:

• Chuyển file thông tin cần giấu p sang dạng nhị phân.

• Đọc header của ảnh để lấy thông tin ảnh, đọc bảng màu. Sau đó đọc tìm tỉ khối dữ liệu ảnh vào một mảim lìai chiều dể sử dụng cho việc giấu

till.

M ọ t s ú k ỹ l l n a i t c à i t i n i r o i H Ị ( ì n h I Ỉ H M A P

Quá trình tliực hiện lỊÌáiỉ tin:

• Cilia phán thông tin ảnh (ma t r ậ n hai c h i ề u điếm ảnh) thành các khôi

n h ỏ c ó kích thước m X II. Giá sử ảnh gốc ban đầ u có kích thước là M X N, khi đó tổng s ố các khỏi nhỏ sẽ là ( M X N ) / (m X n) khói. Vì ảnh sử d ụ n g là ảnh đen trắng nê n mỗi khối là m ộ t m a trận hai chiều chứa các

giá trị 0 và 1 như hình vẽ: 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1 1 1 1 0 1 0 0 0 1 0 0 . 1 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 ! 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 0 I 1 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 ỉ 0 1 1 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1

ỉỉuih 43: Một ví dụ vè dữ liệu ảỉìh được cỉùa ÚKUìh các khđ kích ứiưức 4 x4

Sau khi phân thành các khối nhỏ ta chọn các khói đổ giấu tin, ta có thổ chọn ngẫu nhiên các khối nhưng để cho đơn giản ta coi như các khối được chọn tuần tự từ khối đầu tiên cho đến khi hết thông tin cần giấu.

• Mỗi khối nhỏ này sẽ được dùng đổ giấu một bít thôn? tin theo quy tắc sau: sau khi giấu thì tổng số bít 1 trong khối và bít thôna; tin cần giấu sẽ có cùng tính chẵn lẻ. Nghĩa là. nếu iiiấu bít 1 vào một khối thì khối đó phải thoá mãn tính chất tổng số bít 1 tron tỉ khối là số lẻ. Ngưực lại nếu

M u i ,\<> k ỹ l l n i á i CÙI t u i í r o i i i Ị ( i n h B Í I M A I J

cần giấu bít 0 vào m ộ t khối thì khối đó phái ihoá m ã n tính chất tổI1U số bít 1 Irong khối là chán.

Như vậy, mồi lán ui ấu 1 hít ta cỏ hai trưòììg hợp xảy ra sau dây:

- Khối đã thoả mãn tính chất đe íỊÍau một bít thông tin: chẳng hạn như

khi c an g i ấu bit I thì l ổ n g s ố bit 1 dã là le rỏi, h o ặc khi cần s i ấ u bít 0

vào khôi thì khối đ ó đ ã c ó t ổ n " số bít o ỉ la chẩn. T r on " nh ững trườngo o o hợp n hư thế, ta k h ô n g c ầ n thay dổi và x em n hư m ột bít t hông tin dã

được giấu.

- Tron é trường hợp ngược lại, tính chất cua khôi không thoả mãn ycu cầu đê giấu tin nghĩa là khi cần giấu bít 1 thì tổng số bít 1 trong khối là chẵn hoặc khi cần giấu bít 0 thì lổng số bít 1 trong khối lại dang là lò. Trong những trường hợp như thế thì ta càn phải thay đổi khối đó sao cho thoả mãn điều kiện bằng cách dáo trị ngẫu nhiên một bít (từ 0 sang

1, hoặc từ 1 sang 0).

Giả sir ta phải giấu bit 1 vào khối B sau:

1 0 1 1

0 1 0 0

0 0 l 0

1 1 1 0

Khối B kích thước 4 x 4

Ta đếm số bít 1 trong khối: trong trường hợp ở trên khối B có 8 bít 1, rhư vậy khối B không thoả mãn yêu cầu đổ giấu bít 1, để giấu bít 1 vào khối rày ta cần phải thay đổi khối bằng cách chọn một bít bất kì và đổi từ 0 sang 1 hoặc từ 1 sang 0. Giả sử ta đổi như hình võ sau:

M i'll Si k v t h u ậ t c ù i t i n Iron í; chill l i f ! M A I ’ h ~

b it h i t h a y d ổ i [ ừ 1 —^ 0

Còn nếu, cũng với khôi này mà ta phủi eiấu bít 0 thì ta không phai làm gì hét, vì ban đẩu khối này đã thoá mãn tính chất để giấu bít 0.

• Mỏi lần giấu một bít ta lại lây một khỏi đê giấu theo quy lắc trên cho đến hết lượng thông tin cần giấu. Sau khi giấu xong ta được một ma trận hai chiều dữ liệu ảnh mới. Bước tiếp theo, ta xây dựng ảnh mới bằng cách: chép header ảnh gốc đã dọc ra lúc đầu vào file ảnh mới, chép bảng màu đã đọc vào file ảnh mới, cuối cùng chép nốt dữ liệu ảnh mới sau khi đã giấu tin vào ảnh ta sẽ thu được ảnh mới sau khi giấu tin. Trong thuật toán giấu tin này khoá đơn giản chỉ là kích thước của khối, nếu biết kích thước của khối thì dễ dàng giải mã tin theo quy tắc sau:

c) Quá ỉ rình giải tin:

Khi nhận được ảnh đã giấu tin, quá trình giải mã tin sẽ được thực hiộn theo các bước sau đây:

• Đọc header của ảnh và bảng màu của ảnh đê biết các thông tin ảnh. • Lấy phẩn dữ liệu ảnh vào mảng hai chiều.

Các bưức này giống như quá trình giấu tin. Sau khi đã có đưực giữ liệu ảnh ta lại chia ảnh thành các khối có kích thước giống kích thước khối khi như giấu, dây chính là khoá để giải mã. Chọn ra các khối đã giấu và giải tin theo quy tắc: đếm số bít 1 trong khối, nếu tổng số bít 1 là lẻ thì thu được bít 1, ngược lại thu đưực hít 0. Và cứ tiếp tục cho đến khi hết các khối đã giấu.

Nquxcn T h ị T lninh Bình - L u ậ n văn tốt niịìúệp C a o liọc

] 0 1 1

0 0 0 0

0 0 1 0

M ộ t M) k ỹ t h u ậ t ( III t i l l t r o l l y ( i n h l ì í l M A I ’ f ’ '

Như vậy, sau hết các khối dã eiáu, ta thu được một cluiỏi hít dã dem uiấu. Birức tiếp theo ta chuyên từ 1'ilc nhị phân saim file văn bủn.

(Iì Phân lích thuật toán

Đây là thuật toán rất đơn iiian thực hiện một cách thức giấu tin trong anh. sau khi nghiên cứu thuật toán này chúng ta có the đưa ra một số bình luận và đánh giá sau đây:

• Việc chọn kích thước khỏi dế mấu tin tuỳ thuộc vào kích thưức ánh và lượng thône tin cẩn giấu sao cho giấu giàn trải trên toàn ánh. Ví dụ nếu ta có một ảnh kích thước 512 X 512 pixel và có một lượng thông tin cần giấu là 100 kí tự. Như vậy, file nhị phân thông cần giấu sẽ là 100 X 8 = 800 bít 0/1 vì mỏi một kí tự mã ASCII biểu diễn bởi 1 bytc. Ta có thể thày để giấu được hết thông tin thì cẩn ít nhất 800 khối vậy thì ta nên chia khối như thể nào đổ đủ khối giấu và giàn trải rộng trên ảnh. Lấy (512 x 5 1 2 ) / 800 = 327 dư 544. Với kết quả này, kích thước khối tối da là 327 vậy thì ta có thể chọn các kích thước phù hợp với con số này

(phù hợp theo nghĩa đủ lớn và khỏnu vượt quá 3 2 7 ) chẳng hạn như 20 X

15, 1 6 X 16

• Sở dĩ ta nên chọn khối có kích thước lớn vì nlur vậy nếu như trong trường các khối bị thay đổi thì khoảng cách bít bị biến đổi sẽ xa nhau (thưa) làm cho ảnh sau khi giấu khó bị nhận biết hơn.

• Một nhận xét quan trọng nữa thông qua thuật toán này là ta phải hiếu được bản chất của giấu tin được thực hiện trong kỹ thuật này. Bản chất ở đày cách thức giấu chảng qua là mọí sự quy ước nào dó, níu thoả mãn thì giấu bít 1. neược lại thì giấu bít 0. Điều này khác hản với giấu cái bút bi trong cái bàn vì thực tẽ’ là ta cỏ cái bút bi thật sự và phái giấu nó

M ộ t .'(> k ỹ tliu ậ t CÙI tin i r o i ìi Ị l i n h I i í I M A I ’ í ’ - '

đâu dó trong cái bàn còn xét troim ky thuật giấu tin thì bản chất là ta klìôiiu có bút bi nào hết mà chí là thỏim tin vé hút bi.o cr

• Độ an toàn cùa thuật toán này khònti cao, vì ta chỉ cần biết kích thướcJ cr cứa các khối giấu tin là ta có thể giái mã dirực nhanh chóng.

• Thuật toán ở trên hoàn toàn có thể áp dụnu được đối với ảnh màu hoặc anh đa cáp xám. Các loại ảnh này có giá trị của mỏi điểm ảnh dưực biêu diễn bằng nhiều bít. Vạy làm thế nào đổ có dược một ma trận điếm ảnh 0,1 đê thực hiện giấu tin như thuật toán ở trên ? Rất dơn giản ta chỉ việc chọn từ mỗi điểm ảnh đúng một bít và lưu vào ma trận hai chiều các bit 0,1. Việc chọn này thực hiện theo quv tắc chọn bít ít quan trọng nhất

LSB - Least Significant Bit.

• Đối với ánh màu và ảnh đa cấp xám ta không cần quan tâm nhiều đến việc chọn điểm cần giấu vì ta đã dùng những bít ít quan trọng nhất để giấu rồi. Do vậy, tại mỗi bước giấu ta cỏ thổ chọn một bít bất kì để thay dổi.

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

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

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

(111 trang)