Tăng cường tính bền vững của thông tin giấu trong ảnh 24 bit màu

Một phần của tài liệu Nghiên cứu nâng cao tính bảo mật trong giấu tin, ứng dụng thuật toán giấu tin CPT trên ảnh 24 bit màu (Trang 42)

3.4.1.Ý tưởng

Phương pháp sử dụng những bit ít ý nghĩa (Least Signification Bit - LSB) để giấu tin trong dữ liệu khá đơn giản về ý tưởng cũng như kỹ thuật cài đặt. Tuy nhiên, do sử dụng các bit thấp nên chỉ cần có tác động nhỏ bởi các thao tác chỉnh sửa dữ liệu đơn giản là đã có thể làm thay đổi dữ liệu giấu trong đó.

Để khắc phục nhược điểm trên, cách giấu thông tin ở các bit cao nhằm tăng tính bền vững của thông tin được giấu trong dữ liệu đã được ứng dụng. Tuy nhiên, việc sử dụng các bit cao để giấu tin có thể dẫn đến phải thay đổi khá nhiều thông tin trong môi trường. Trên cơ sở ý tưởng dùng bit cao để giấu thông tin nhằm nâng cao tính bền vững, tác giả đã sử dụng một kỹ thuật biến đổi các bit thấp nhằm giảm sự tác động tới thông tin trong bản gốc. Ý tưởng chính của kỹ thuật này là khi phải thay đổi một bit cao của byte dữ liệu trong

bản gốc để giấu tin thì hiệu chỉnh các bit thấp sao cho giá trị của byte dữ liệu bị thay đổi ít nhất [4, 7].

3.4.2.Thuật toán

Kí hiệu b là bit thông tin cần giấu và a = [a(7) a(6)... a(1) a(0)] là byte dữ liệu sẽ chứa thông tin giấu. Chọn k tuỳ ý, 0 ≤ k ≤ 7, a(k) là bit được lựa

chọn để giấu thông tin. Đặt

a(k) = b; a(i)= 1b, i = k1, ...,1, 0.

Khi b = 1, a(k) = 0, hoặc b = 0, a(k) = 1 sẽ phải thay đổi a(k) để giấu được b và thay đổi các giá trị từ a(k1) đến a(0) để giảm thiểu sự thay đổi giá trị của a. Riêng các trường hợp b = 0, a(k) = 0 hoặc b = 1, a(k) = 1 thì không cần phải thay đổi a mà vẫn giấu được vì b chính là bit thứ k của a. Nếu chọn k = 0, đây chính là phương pháp LSB quen thuộc. Để khôi phục tin đã giấu, đặt b = a(k), ta có bit b chứa tin giấu vào a theo kỹ thuật nêu trên.

Kí hiệu L(a, k) là giá trị thay đổi ở byte dữ liệu a sau khi giấu thông tin

b vào bit thứ k theo lược đồ nêu trên. Ví dụ, cho a = 175, k = 4 và b = 1. Ta có a(k) = 0. Nếu chỉ đảo bit thứ k của a từ 0 thành 1 thì giá trị của a tăng thành

191, tuy nhiên nếu thay đổi byte a theo thuật toán nêu trên thì giá trị của a chỉ tăng 1 đơn vị, nghĩa là L(175, 4) = 1.

Giấu tin trong một khối nhị phân

Kỹ thuật giấu thông tin trong một khối nhị phân của các tác giả M.Y. WU và J.H. LEE được cải tiến nhằm tăng tính bảo mật và dung lượng tin giấu. Trong phần này sẽ trình bày một cải tiến thuật toán nhằm tăng dung lượng tin giấu và chỉ ra cụ thể cách thức đảo các bit để giấu tin. Do mục đích chính là xây dựng một lược đồ tăng cường tính bền vững của tin giấu trước một số thao tác xử lý ảnh và giảm thiểu sự tác động đối với ảnh gốc nên trong phần này sẽ bỏ qua các biến đổi phức tạp nhằm tăng cường tính bảo mật của tin giấu. Các khoá với phép toán XOR và ma trận trọng số sẽ không được đề cập đến ở đây.

Xét khối nhị phân F có kích thước m×n và số nguyên d trong khoảng 0 ≤

d ≤ m×n. Đặt K* = mn và K = K* +1. Kí hiệu: ( 1)  (mod ) (1) ) , ( 1 1 K j n i j i F S m i n j       

Ví dụ 1. Xét khối nhị phân F có kích thước 35 được cho trong bảng ở hình 1.a) có giá trị S tính theo công thức (1) bằng 5(mod 16).

Bổ đề

Với mọi giá trị nguyên d thuộc khoảng [0, K) cần thay đổi nhiều nhất hai ô trong khối F thành F’ sao cho:

Khối nhị phân F được cho như trong ví dụ trên có S = 5 (mod 16). Xét d = 3. Đảo bit ở ô (1,2) từ 1 thành 0, tính lại theo công thức (1), tổng S bị giảm một lượng F(i, j)*((i1)*n+j) = 1*((11)*5+2) = 2(mod 16), hay S’ = S2

(mod 16) = 3(mod 16). Theo bổ đề, với mọi giá trị d {0, 1,...,15}, ta chỉ cần đảo không quá 2 bit trong F, tổng S tính theo công thức (1) sẽ có giá trị d(mod 16).

Chứng minh bổ đề:

Đặt f(t) = F(i, j) với t = (i – 1)n + j và i = 1, 2,..., m; j = 1, 2, ..., n. Công thức (1) có thể được viết lại thành

S = f(1) +...+ t f(t) +...+ K*f(K*) (mod K) (3) Kí hiệu b = S – d. Trường hợp b = 0 bổ đề hiển nhiên là đúng. Không

mất tính tổng quát, ta có thể giả thiết b > 0. Trong trường hợp b < 0, có thể đặt

b’ = K +b, ta lại có 0 < b’ < K. Áp dụng lược đồ biến đổi khối F để giảm 1 lượng b’, ta có S’ = S – b’.

Cần chứng tỏ rằng chỉ phải thay đổi giá trị f tại nhiều nhất hai vị trí là tổng (3) giảm một lượng b. Xét các trường hợp:

a) f(b) = 1. Đảo bit thứ b, ta có 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 a) b)

Hình 1. Khối nhị phân F trước và sau khi đảo bit.

( 1) (mod ) (mod ) (2) ) , ( ' ' 1 1 K d K j n i j i F S m i n j        

S’ = S – b (mod K) (4) b) f(Kb) = 0. (adsbygoogle = window.adsbygoogle || []).push({});

Đảo bit Kb trong dãy (1) ta có

S’ = S + K– b (mod K) = S – b (mod K) (5) c) f(b) = 0 và f(K–b) = 1.

Đặt tj = jb (mod K), ta có t2K1 = (2K1)b (mod K) = Kb. Không khó để chứng minh rằng trong dãy f(t1) = 0, f(t2), ..., f(tj), f(tj+1), ..., f(t2K1) = 1 có thể chỉ ra chỉ số jo thoả mãn f(tjo) = 0 và f(tjo+1) = 1. Đảo các bit tjo và

tjo+1 ta có tổng:

S’ = S + job  (jo+1)b (mod K) = S  b (mod K) (6) Vì chỉ có thể xảy ra một trong các trường hợp a), b) hoặc c) nên chỉ cần thay đổi nhiều nhất hai bit trong dãy f là ta có S’ = d (mod K). Bổ đề được

chứng minh xong.

Ví dụ 2. Với khối F được cho trong hình 1.a), theo (1) tính được S = 5. Chọn d = 3, suy ra b = 2. Xét theo trường hợp a) có thể đảo bit ở ô (1,2); xét theo trường hợp b) có thể đảo bit ở ô (3,4) và trong các trường hợp còn lại có thể đảo bit ở các cặp ô {(1,5) (2,2)}, {(2,4), (3,1)}, {(3,3), (3,5)}, {(2,1), (2,3)}. Chẳng hạn, sau khi đảo bit tại ô (1,2), khối F’ có giá trị S’ = 3.

Thuật toán giấu giá trị d vào khối ảnh I

Kí hiệu 1 là tập hợp các ô thoả mãn điều kiện của trường hợp a) và b), nghĩa là

1 = {(i,j): F(i,j)=1 và (i-1)n+j=b}  {(i,j): F(i,j)=0 và (i-1)n+j=Kb} (7) và 2 là tập các cặp 2 ô mà nếu đảo bit của chúng tổng S sẽ giảm một lượng b, nghĩa là,

2 = {{(i,j),(p,q)}:F(i,j)=0,F(p,q)=1, in+j=pn+qb} 

{{(i,j), (p,q)}: F(i,j)=1,F(p,q)=1, (i-1)n+j+(p1)n+q = b(mod K)}  {{(i,j),(p,q)}: F(i,j)=0,F(p,q)=0,(i-1)n+j+(p1)n+q+b = 0(mod K)} (8) Trong ví dụ trên,

1 = {(1,2), (3,4)} và

2 = {{(1,5),(2,2)}, {(2,1),(2,3)}, {(2,4),(3,1)}, {(3,3),(3,5)}}.

Xét khối ảnh I có kích thước K* = mn và giá trị nguyên dương d [0, K*] cần giấu vào khối dữ liệu I. Chọn k thuộc khoảng [0,7] và kí hiệu I(i, j).k là giá trị bit thứ k của byte dữ liệu thuộc điểm ảnh (i, j) trong khối I.

Thuật toán:

(S1)Đặt

F(i,j) = I(i,j).k với 1im, 1j n

Xác định các tập 1 và 2 theo công thức (7) và (8). (S2) Kí hiệu

1 = min {L(I(i,j), k): (i,j)  1} W1 = {(i,j)  1: L( I(i,j), k )= 1 } và

2 = min {L(I(i,j), k)+L(I(p,q), k): {(i,j),(p,q)}  2} W2 = {{(i,j),(p,q)}  2: L( I(i,j), k)+L(I(p,q), k) = 2 }.

(S3)Nếu 2 < 1 thì chọn cặp bất kỳ {(io, jo),(po, qo)}  W2 và đặt  = I(io,jo).k,  = I(po,qo).k; I(io,jo).k = 1, I(po,qo).k = 1; I(io,jo).t = , với t = 0, 1, ..., k1; I(po,qo).t = , với t = 0, 1, ..., k1.

Ngược lại, nếu 2 ≥ 1 thì chọn bất kỳ (io,jo) W1 và đặt  = I(io,jo).k

I(io,jo).k = 1,

Ví dụ 3. Xét khối I có 35 điểm ảnh

175 189 172 172 172 172 188 188 175 188 176 172 168 172 188

và giá trị cần giấu d = 3. Khối nhị phân F ứng với lớp bit k = 4 có giá trị như sau:

0 1 0 0 0 0 1 1 0 1 1 0 0 0 1

Theo phân tích ở trên ta có 1 = {(1,2), (3,4)}, 2 = {{(1,5),(2,2)}, {(2,1),(2,3)}, {(2,4),(3,1)}, {(3,3),(3,5)}}. Đảo bit ở bất cứ ô nào thuộc 1

hoặc bất cứ cặp ô nào thuộc 2 ta đều thực hiện được giấu d = 3 vào khối ảnh I. Tuy nhiên, đảo bit ở ô nào của 1 hoặc đảo bit cặp ô nào của 2 có thể gây ra sự thay đổi khác nhau trên khối các điểm ảnh I. Nếu đảo bit ở các ô trong 1 của khối F thì giá trị các điểm ảnh tương ứng trong khối I bị thay đổi là {14, 8}. Tương tự như vậy, nếu đảo bit ở các cặp ô trong 2 của khối nhị phân F thì giá trị các điểm ảnh tương ứng trong khối I bị thay đổi là{17,17, 2, 21}. Ta có 1 = 8, W1={(3,4)} và 2 = 2, W2 = {{(2,4),(3,1)}}. Cặp ô chọn được theo bước (S3) của thuật toán là {(2,4),(3,1)}. Khối ảnh sau khi giấu d = 3 vào bị thay đổi ở hai ô có khung đậm: (adsbygoogle = window.adsbygoogle || []).push({});

175 189 172 172 172 172 188 188 176 188 175 172 168 172 188

Tổng giá trị bị thay đổi là 2 = 2, và mỗi điểm ảnh bị thay đổi một đơn vị.

Thuật toán tách thông tin giấu từ khối ảnh I

Xét khối ảnh I có kích thước K* = mn đã được giấu giá trị b theo

thông tin. Kí hiệu I(i, j).k là giá trị bit thứ k của byte dữ liệu thuộc điểm ảnh (i,

j) trong khối I. Thuật toán:

(S1)Đặt

F(i,j) = I(i,j).k với 1im, 1j n K = K*+1

(S2)Tính

Giá trị d thu được chính là thông tin đã giấu trong khối ảnh I.

Ví dụ 4. Xét khối I có 35 điểm ảnh trong ví dụ 3 sau khi giấu tin vào lớp bit k = 4

175 189 172 172 172 172 188 188 176 188 175 172 168 172 188

Khối nhị phân F ứng với lớp bit k = 4 có giá trị như sau: 0 1 0 0 0

0 1 1 1 1 0 0 0 0 1 0 0 0 0 1 K*= 3 x 5 = 15, K = K*+1 = 16

S = 51(Mod 16) = 3 (Mod 16) Vậy d = 3 là giá trị đã giấu.

( 1) (mod ) (mod ) ) , ( 1 1 K d K j n i j i F S m i n j       

Chương 4

MỘT SỐ KẾT QUẢ ĐẠT ĐƯỢC

4.1. Chương trình thử nghiệm

Trong quá trình lựa chọn ngôn ngữ để viết chương trình thử nghiệm các nghiên cứu, em đã chọn ngôn ngữ C# vì đây là ngôn ngữ khá đơn giản, dễ sử dụng, và phù hợp với bản thân.

Hình 4.1.Màn hình giao diện chính Chương trình thử nghiệm gồm các chức năng:

Quá trình giấu tin mật

- Input:

o Mở file ảnh giấu tin

o Mở file dữ liệu chứa thông tin mật cần giấu

o Tạo khóa K ngẫu nhiên/ có thể lấy trong file đã tạo trước

o Chọn mặt phẳng bít cần giấu o Chọn màu cần giấu - Output: o Ảnh đã chứa tin mật - Các chức năng chính: o Giấu tin

o Ghi khóa mật, mặt phẳng bít đã chọn, mầu đã chọn.

Quá trình tách tin mật (adsbygoogle = window.adsbygoogle || []).push({});

- Input:

o Mở file ảnh giấu tin mật

o Mở file dữ liệu chứa khóa mật, màu, mặt phẳng bít - Output:

o tin mật

- Các chức năng chính:

o Giải tin

4.2. Hệ số đánh giá PSNR

PSNR (peak to noise ratio) thường dùng để đánh giá chất lượng ảnh sau

khi giấu tin. Hệ số PSNR được xác định như sau:

- Xác định hệ số MSE (mean squared error) cho hai ảnh có cùng kích thước mxn I và K: MSE = ∑ ∑ [ ( ) ( )] - Công thức tính hệ số PSNR: PSNR = 10.log10( ) = 20.log10( √ )

Trong đó, MAXI là giá trị lớn nhất mà giá trị của một điểm ảnh trong ảnh có thể nhận. Ví dụ, khi ảnh sử dụng 8 bits để biểu diễn một điểm ảnh thì giá trị MAXI = 255. Cụ thể MAXI = 2n – 1, trong đó n là số bits mỗi điểm ảnh. Giá trị của hệ số PSNR khi so sánh hai ảnh thường nằm trong khoảng từ 30 – 50dB, khi giá trị PSNR càng lớn thì hiệu quả giấu tin càng cao.

Khi hai ảnh không có sự khác biệt, giá trị các điểm ảnh hoàn toàn giống nhau thì giá trị của MSE = 0, do đó, hệ số PSNR không xác định.

Các thử nghiệm nhằm kiểm tra chất lượng ảnh môi trường sau khi giấu tin. Ảnh môi trường được sử dụng để giấu tin là các ảnh định dạng bitmap. Dữ liệu giấu vào được tạo ngẫu nhiên. Để kiểm tra chất lượng ảnh môi trường khi giấu thông tin, việc thử nghiệm được tiến hành với các lớp bit k = 0..7. Sự khác nhau của ảnh môi trường trước và sau khi giấu khó phân biệt được bằng mắt thường đối với các lớp mặt phẳng bít thấp 0 - 4. Để đánh giá chất lượng của ảnh môi trường sau khi nhúng dữ liệu, tác giả sử tính hệ số PSNR với ảnh

sau khi được giấu tin bằng thuật toán CPT cải tiến, và thuật toán CPT cải tiến nhưng có sử dụng kỹ thuật nâng cao tính bền vững.

Bảng kết quả thử nghiệm

Sử dụng ảnh đầu vào: ảnh Lena kích thước 255x255

Thông tin cần giấu: file text với nội dung chứa 1000 ký tự. Độ dài khóa: 25

= 32 bít.

Giấu thông tin vào một mầu, lần lượt thử nghiệm trên các mặt phẳng bít 0..7. Hệ số PSNR (dB) Mặt bít giấu tin 0 1 2 3 4 5 6 7 Giấu bình thường 62.29 56.28 50.27 44.17 38.24 32.98 25.99 19.88 Giấu cải tiến 62.29 58.28 53.66 47.97 42.30 36.90 30.92 26.51

Nhận xét:

Kết quả thử nghiệm cho thấy sự ảnh hưởng đến dữ liệu được giấu trong ảnh môi trường khi sử dụng phương pháp điều chỉnh theo khối được đề xuất thấp hơn so với không điều chỉnh theo khối. Mặt khác, các thử nghiệm cũng chứng tỏ tính hiệu quả của phương pháp được đề nghị về mức độ ảnh hưởng tới ảnh môi trường ngay cả khi dùng các bit cao (thậm chí tới bit thứ 7) để giấu tin. Việc giấu thông tin vào các bit cao của thành phần màu trong điểm ảnh rõ ràng là bền vững trước các phép xử lý ảnh. Bản thân sự giảm thiểu thay đổi dữ liệu ảnh môi trường của phương pháp được đề nghị cũng là yếu tố quan trọng làm tăng sự bền vững của thông tin được giấu vào.

0 10 20 30 40 50 60 70 1 2 3 4 5 6 7 8 H e so PSNR (d B ) Series1 Series2 Mặt phẳng bit

Giấu tin bình thường

KẾT LUẬN

Qua quá trình nghiên cứu luận văn đã đạt được một số kết quả chính sau đây:

- Hiểu được về ảnh số nói chung, hệ thống giấu tin trong ảnh số - Nghiên cứu, tìm hiểu một số kỹ thuật giấu tin trên ảnh nhị phân.

- Nghiên cứu áp dụng kỹ thuật giấu tin trên ảnh 24 bít màu, ảnh đa cấp xám.

- Đề xuất kỹ thuật thay đổi cột bít làm tăng cường tính bền vững của tin giấu, giảm thiểu sự thay đổi của ảnh trước và sau khi giấu tin. Kết quả thử nghiệm cho thấy sự ảnh hưởng đến dữ liệu được giấu trong ảnh môi trường khi sử dụng phương pháp điều chỉnh theo khối được đề xuất thấp hơn rất nhiều so với không điều chỉnh theo khối. Mặt khác, các thử nghiệm cũng chứng tỏ tính hiệu quả của phương được đề nghị về mức độ ảnh hưởng tới ảnh môi trường ngay cả khi dùng các bit cao (thậm chí tới bit thứ 7) để giấu tin.

- Đã xây dựng được chương trình thử nghiệm. Hướng phát triển:

Nghiên cứu các thuật toán giấu tin trên ảnh tăng cường tính bất biến đối với một số phép biến đổi ảnh. (adsbygoogle = window.adsbygoogle || []).push({});

TÀI LIỆU THAM KHẢO

Tiếng Việt

[1] Phan Đình Diệu (2004), Lý thuyết mật mã và an toàn thông tin, NXB Đại học Quốc gia Hà Nội.

[2] Trần Quốc Dũng, Nguyễn Xuân Huy (2003), Giáo trình giấu tin và thủy

vân ảnh, Hà Nội.

[3] Tống Minh Đức, Đào Thanh Tĩnh (2008), Một cải tiến thuật toán giấu tin

trong ảnh nhị phân, Chuyên san các công trình NCKH Công nghệ thông tin

và Truyền thông, Bưu chính viễn thông, Số 20, tr. 43-48.

[4] Tống Minh Đức, Đào Thanh Tĩnh, Nguyễn Đức Tuấn, (2010), Lược đồ tăng cường tính bền vững của thông tin giấu trong ảnh, Tạp chí Khoa học kỹ

thuật, Học viện Kỹ thuật quân sự, Số 8.

[5] Lương Bá Mạnh, Nguyễn Thanh Thủy(1999), Nhập môn xử lý ảnh, NXB Khoa học và Kỹ thuật.

[6] Trịnh Nhật Tiến (2008), Giáo trình an toàn dữ liệu, Hà Nội, tr.110-132. [7] Đào Thanh Tĩnh, Nguyễn Đức Tuấn (2008), Một giải pháp nâng cao tính

bền vững của tin giấu trong dữ liệu âm thanh, Tạp chí Nghiên cứu Khoa học

kỹ thuật và Công nghệ quân sự, No. 24, tr. 44-49.

Tiếng Anh

[8] Anil K. Jain (1986), "Fundamentals of Digital Image Processing",

Prentice Hall, Englewood Cliffs, NJ 07632, pp 47-75.

[9] Fabien A. P. Petitcolas, Ross J. Anderson and Markus G. Kuhn (1999). “Information Hiding – A survey”, Proceedings of the IEEE, Vol. 87, No.7, p. 1062-1078.

[10] Fabien A. P. Petitcolas (1999), “Introduction to Information Hiding in Information techniques for Steganography and Digital Watermarking, S.C.

Katzenbeisser et al., Eds. Northwood, MA: Artec House, p. 1-11

Một phần của tài liệu Nghiên cứu nâng cao tính bảo mật trong giấu tin, ứng dụng thuật toán giấu tin CPT trên ảnh 24 bit màu (Trang 42)