Sơ đồ giấu tin

Một phần của tài liệu (LUẬN án TIẾN sĩ) một số kỹ thuật giấu tin trong âm thanh số luận án TS máy tính 604801 (Trang 70)

Thuật toán giấu:

Đầu vào: - Tệp âm thanh gốc F, khố mật K, thơng điệp mật M. Đầu ra: - Tệp âm thanh chứa tin mật F’.

Bước 1) Chuyển thông điệp mật M sang khối vuông rồi dùng phép biến đổi Arnold để xáo trộn dữ liệu. Khố K gồm hai số cho biết kích thước khối và số lần

Tệp mang tin Tệp gốc Chuỗi bit mật Khoá Chia thành các khối 5*5 Xáo trộn dữ liệu

thực hiện chuyển đổi. Trong trường hợp chuỗi thông điệp ngắn hơn so với khối vuông, ta sẽ dùng kỹ thuật padding để thêm các ký hiệu trắng vào thơng điệp. Khối thơng điệp này sau đó sẽ được chuyển lại thành M’, là dạng vector.

Bước 2) Chia dữ liệu tệp âm thanh thành các đoạn gồm 25 mẫu, sau đó chuyển các đoạn sang các khối vng Fi có kích thước 5*5.

Bước 3) Thực hiện bước sau cho đến khi toàn bộ thông điệp M’ được giấu vào trong các khối:

Lấy lần lượt 4 bit của M’ giấu vào mỗi khối Fi, sử dụng sơ đồ giấu MCPT trên. Bước 4) Chuyển tất cả các khối Fi sang lại dạng vector và ghi ra tệp F’. Ghi các mẫu còn lại từ F vào F’.

3.3.4. Thuật toán giải tin

Thuật tốn giải tin gồm hai bước, đó là bước tách các bit trong khối và thực hiện khôi phục lại chuỗi bit.

Đầu vào: - Tệp chứa tin mật, khoá K và độ dài chuỗi bit giấu q. Đầu ra: - Chuỗi thông điệp mật.

Bước 1) Chia tệp âm thanh thành các đoạn có kích thước bằng nhau và bằng 25. Mỗi đoạn này sẽ biến đổi thành khối F kích thước 5*5.

Bước 2) Lấy 4 bit trong mỗi khối giấu:

a) Thành lập ma trận A có kích thước 5*5. Giá trị A[i][j] sẽ bit cuối, bit ít quan trọng nhất của F[i][j].

b) Lấy 4 dòng đầu của A, mỗi dòng thực hiện phép exclusive-or tất cả các phần tử trong dịng, ta có r1r2r3r4.

c) Lấy 4 cột đầu tiên của A, mỗi cột thực hiện exclusive-or tất cả các phần tử của mỗi cột để được c1c2c3c4.

d) Thực hiện XOR giữa r1r2r3r4 và c1c2c3c4 để có s1s2s3s4 trong đó s1=r1 XOR c1, s2=r2 XOR c2 và tương tự như vậy.

Bước 3) Dùng khoá K và thực hiện phép biến đổi Arnold, xoá các padding nếu có để lấy lại thơng điệp mật M.

Ví dụ ta có đoạn âm thanh gồm 25 mẫu có giá trị như sau:

{18, 39, 65526, 8, 65526, 20, 27, 40, 50, 18, 37, 42, 4, 78, 65519, 46, 65514, 29, 65508, 31, 65500, 5, 65486, 0, 65482}.

Chúng ta chuyển đoạn sang dạng ma trận F5*5 bằng cách lấy lần lượt 5 phần tử của dãy và gán cho mỗi dòng của F. Sau đó dựa vào F ta có ma trận A.

Hình 3.10. Ma trận F và A tương ứng từ các mẫu dữ liệu

Áp dụng Bước 2 trong thuật tốn giấu trên khối A, ta có r1r2r3r4 như sau:

Hình 3.11. Kết quả XOR 4 cợt đầu tiên của từng hàng

Hình 3.12. Kết quả XOR 4 dịng đầu tiên của từng cợt

Thực hiện Bước 3 trong thuật tốn giấu, ta có c1c2c3c4 như hình 3.12. Thực hiện Bước 4 trong thuật tốn giấu ta có kết quả s1s2s3s4 như sau:

Hình 3.13. Kết quả XOR của chuỗi C và chuỗi R

Nếu ta cần giấu 4 bit 0010, do 4 bit giống hồn tồn với chuỗi S nên ta khơng cần thực hiện điều chỉnh nào trên khối dữ liệu.

18 39 65526 8 65526 20 27 40 50 18 37 42 4 78 65519 46 65514 29 65508 31 65500 5 65486 0 65482 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 r1 r2 r3 r4 1 1 0 0 c1 c2 c3 c4 1 1 1 0 s1 s2 s3 s4 0 0 1 0

Nếu ta cần giấu 4 bit 0110, do có 1 bit khác nhau với S ở vị trí 2, vì thế ta lật giá trị ơ A[2][5], từ đó dẫn đến điều chỉnh F[2][5]. Kết quả như trong hình 3.14.

Hình 3.14. Kết quả giấu 4 bit 0110 trong khối F

Nếu ta cần giấu 4 bit 0111 vào trong khối F, do có 2 bit khác nhau với S ở vị trí 2 và 4, vì thế ta lật giá trị ơ A [2][4]. Kết quả điều chỉnh và giá trị các mẫu dữ liệu âm thanh được thể hiện trong hình 3.15.

Hình 3.15. Kết quả giấu 4 bit 0111 trong khới F

Nếu ta cần giấu 4 bit 1100, có 3 bit khác nhau với S ở vị trí 1, 2 và 3, vì thế ta lật giá trị ơ A[1][2] A[3][5]. Kết quả điều chỉnh và giá trị các mẫu dữ liệu âm thanh được thể hiện trong hình 3.16.

Hình 3.16. Kết quả giấu 4 bit 1100 trong khối F

18 39 65526 8 65526 20 27 40 50 19 37 42 4 78 65519 46 65514 29 65508 31 65500 5 65486 0 65482 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 18 38 65526 8 65526 20 27 40 50 19 37 42 4 78 65518 46 65514 29 65508 31 65500 5 65486 0 65482 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 18 39 65526 8 65526 20 27 40 51 19 37 42 4 78 65519 46 65514 29 65508 31 65500 5 65486 0 65482 0 1 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0

Nếu ta cần giấu 4 bit 1101, có 4 bit khác nhau với S ở vị trí 1, 2, 3 và 4, vì thế ta lật giá trị ô A[1][2] và A[3][4]. Kết quả điều chỉnh và giá trị các mẫu dữ liệu âm thanh được thể hiện như hình 3.17.

Hình 3.17. Kết quả giấu 4 bit 1101 trong khối F

3.3.5. Kết quả thử nghiệm và đánh giá

Dưới đây là một kết quả thực nghiệm. Thông tin mật được giấu là dữ liệu ảnh logo đại học Duy Tân, có kích thước 64*64. Tệp âm thanh chứa được lấy mẫu ở tần số 44.1 Hz, dài 58 giây. Khố K gồm thơng tin về số lần dịch chuyển là 4 và kích thước khối là 64. Từ dữ liệu ảnh chuyển đổi này sẽ chuyển thành chuỗi bit để giấu.

Hình 3.18. Ảnh gớc và ảnh sau khi chuyển đổi để giấu tin

Hình 3.19 là biểu diễn một đoạn gồm 50 mẫu của tệp âm thanh gốc và 50 mẫu của tệp âm thanh mang tin sau khi giấu 1 byte dữ liệu. Khi đánh giá theo thang đo ODG giữa hai tệp cho thấy không thể phân biệt được sự khác nhau giữa hai tệp.

18 38 65526 8 65526 20 27 40 50 19 37 42 4 79 65519 46 65514 29 65508 31 65500 5 65486 0 65482 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0

Bảng 3.4. Bảng giá trị SNR khi giấu tin vào trong các tệp theo kỹ thuật MCPT Tên tệp chứa Giá trị SNR dohoa.cpp (430 byte) DuyTanlogo.bmp (1694 byte) map.gif (14845 byte) jarre-in.wav 82.57 76.04 66.63 gazebo-in.wav 82.57 76.65 67.21 brahms-in.wav 80.51 74.66 65.19 speech-in.wav 75.37 69.42 59.95

Kết quả thử nghiệm giấu nhiều tệp khác nhau trên nhiều tệp âm thanh khác nhau cũng cho thấy kỹ thuật đề xuất đáp ứng được tiêu chí hệ số SNR khi giấu tin.

So với mơ hình CPT áp dụng trên ảnh, kỹ thuật điều chỉnh không sử dụng các phép nhân ma trận con trong quá trình giấu và giải tin nên thời gian thực hiện khi giấu và giải tin nhanh hơn. Tuy nhiên hạn chế của của kỹ thuật là độ mật khơng cao. Trong mơ hình CPT, hai ma trận K và W được dùng làm khoá. Số cách chọn ma trận K là 2m*n và số cách chọn W là (2r -1)m*n. Người thám tin sẽ rất khó dị ra tin mật vì số cách chọn K và W là quá lớn. Để giấu log(mn+1) bit trong khối m*n, mơ hình CPT có độ phức tạp là O(m*n*n). Kỹ thuật đề xuất chọn mỗi đoạn có kích thước 25 để giấu 4 bit, mục đích là để thuận lợi cho việc giấu từng byte dữ liệu. Để khắc phục tính dễ lộ tin giấu của kỹ thuật, thuật toán đề xuất sử dụng phép biến đổi Arnold để xáo trộn dữ liệu. Chi phí cho mỗi lần thực hiện biến đổi khối là O(N2), trong đó N là kích thước của khối. Đối với mỗi khối ta thực hiện k lần biến đổi để xáo trộn dữ liệu. Nếu chuỗi tin mật có độ dài q thì số khối cần xáo trộn là ⌈𝑞⁄𝑁2⌉.

Phương pháp điều chỉnh LSB nguyên thuỷ thay đổi 1 bit dữ liệu để giấu 1 bit tin mật, cho phép giấu nhiều tin nhưng dễ gây nhiễu lên dữ liệu chứa. So với kỹ thuật điều chỉnh LSB, kỹ thuật này giảm một nửa số lần điều chỉnh bit để giấu cùng số bit dữ liệu. Phương pháp giấu chẵn lẻ sẽ thay đổi một mẫu trong khối để giấu 1 bit, dựa vào tính chẵn lẻ của khối và bit cần giấu. Để giấu 4 bit, kỹ thuật giấu chẵn lẻ cũng điều chỉnh nhiều nhất 4 bit của 4 mẫu. Như vậy, so với kỹ thuật giấu chẵn lẻ, kỹ thuật

b )

đề xuất điều chỉnh ít mẫu hơn, trong khi đó dung lượng giấu có thể xem tương đương. Để giấu 4 bit dữ liệu ta cần 25 mẫu dữ liệu âm thanh, hay 1 byte dữ liệu cần 50 mẫu. Tính an tồn của lược đồ giấu phụ thuộc vào việc xáo trộn dữ liệu. Thực chất của việc xáo trộn dữ liệu là thay đổi thứ tự nhúng các bit mật vào trong các mẫu dữ liệu. Nếu người thám tin biết phương pháp điều chỉnh để giấu bit nhưng không biết thứ tự lấy các bit thì cũng khơng biết được tin mật. Vì vậy việc chọn khối có kích thước lớn để xáo trộn dữ liệu là cần thiết.

Kỹ thuật này chỉ phù hợp cho giấu tin mật trong âm thanh, không phù hợp cho thuỷ vân do không bền vững với các tấn cơng. Dựa vào đặc tính ít điều chỉnh dữ liệu của kỹ thuật, ta có thể nâng cao tính bền vững bằng cách chọn các bit ở mức cao hơn để giấu tin thay vì sử dụng bit ở vị trí 1 của mẫu dữ liệu.

3.4. Thuật toán điều chỉnh 1 bit trong khối để giấu 8 bit dữ liệu

Phần này của luận án trình bày về một thuật tốn giấu 8 bit dữ liệu trong đoạn chứa 256 mẫu dữ liệu bằng cách thay đổi 1 bit. Ý tưởng thuật toán dựa vào kỹ thuật giấu tin trong ảnh của nhóm tác giả trình bày trong [68], áp dụng trên dữ liệu âm thanh. Thuật toán giấu cũng bao gồm hai bước là hoán vị chuỗi dữ liệu trước khi giấu và giấu lần lượt 8 bit dữ liệu đã được hoán vị vào trong mỗi khối gồm 256 mẫu.

3.4.1. Xáo trộn dữ liệu bằng phương pháp hoán vị

Để xáo trộn dữ liệu, trong thuật toán này luận án đề xuất cách dùng hoán vị. Cho M là chuỗi tin mật cần giấu. Chuỗi M này sẽ được xáo trộn bằng cách hoán vị các phần tử. Thuật toán hoán vị dãy n phần tử đã được trình bày trong chương 2.

Bước hoán vị này cần khoá là bộ (d, k). Chuỗi M sẽ được chia thành các đoạn bằng nhau có độ dài d. Trong trường hợp nếu khơng đủ d thì ta thêm các ký tự đệm, là các ký tự trắng (blank, mã ASCII là 32). Hình 3.20 dưới đây minh hoạ cho chuỗi tin mật là “hello world” và giá trị của d là 8, khi đó ta sẽ dùng 5 ký tự bù.

h e l l o w o r l d

Phần tử thứ 2 trong bộ khoá là giá trị k. Giá trị của k là một số nguyên nằm trong đoạn từ 1 đến d!, ở đây d! là số hoán vị của tập gồm d phần tử. Việc hoán vị được thực hiện trên mỗi đoạn gồm d phần tử riêng lẻ.

Hình 3.21. Chuỗi tin gớc và chuỗi sau khi hoán vị

Ví dụ ta cần xáo trộn chuỗi M là “hello world” dùng phương pháp hoán vị, với khoá là bộ (8,1000). Ta có hốn vị thứ 1000 của các phần tử {1,2,3,4,5,6,7,8} là {1,3,5,4,7,8,2,6}, vì thế giá trị của chuỗi M’ nhận được là “hlolwoe rd l ”. Kết quả minh hoạ như trong hình 3.21.

Để khôi phục lại chuỗi tin gốc M từ chuỗi xáo trộn M’ ta cần phải dùng khoá là bộ (d, k). Từ khoá (d, k) ta xây dựng cấu hình hốn vị thứ k của bộ d phần tử {1, 2, 3, …d}. Chuỗi nhận được khi giải tin là hoán vị thứ k nên tương ứng với mỗi vị trí, ta khơi phục lại chuỗi ban đầu. Hình 3.22 minh hoạ cho việc khôi phục chuỗi gốc M từ chuỗi hoán vị M’ là “hachilan” và khoá là bộ (8, 5398).

Hình 3.22. Khơi phục lại chuỗi gớc từ chuỗi hoán vị

3.4.2. Tính tổng XOR của đoạn

Dưới đây là thuật tốn tính tổng XOR của đoạn gồm 256 mẫu.

Đầu vào: - Đoạn S gồm 256 mẫu giá trị nguyên, được đánh số từ S[0] đến S[255]. Đầu ra: - Một số nguyên được gọi là XOR_sum của đoạn S.

Bước 1) Từ mảng S ta xác định mảng Q có cùng kích thước với S, trong đó Q[i] = S[i]%2. Hốn vị thứ 5398 2 1 5 8 7 6 3 4 h a c h i l a n 1 2 3 4 5 6 7 8 a h a n c l i h h e l l o w o r l d 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 Hoán vị thứ 1000 Hoán vị thứ 1000 1 3 5 4 7 8 2 6 1 3 5 4 7 8 2 6 h l o l w o e r d l

Bước 2) h=0;

Bước 3) Lặp i từ 0 đến 255: Nếu (Q[i]!=0) thì h = XOR(h,i); Bước 4) Trả về h;

Sau đây là minh hoạ cho cách tính XOR_sum của dãy 256 mẫu. Hình 3.23 là giá trị của đoạn âm thanh gồm 256 mẫu, các mẫu tuần tự theo dòng, từ dòng 1 đến dòng 16. Từ các giá trị của các mẫu trong đoạn âm thanh, ta lập dãy Q cũng gồm 256 phần tử, trong đó Q[i] có giá trị là bit cuối của mẫu thứ i, như hình 3.24.

Hình 3.23. Các giá trị của đoạn âm thanh gồm 256 mẫu

130 130 131 131 132 132 132 131 131 130 129 128 127 126 126 125 125 125 125 125 125 126 126 126 126 126 126 126 126 127 127 128 128 129 130 130 131 131 131 132 132 132 132 132 132 132 133 133 133 133 133 132 132 132 131 130 130 129 128 127 127 126 126 125 125 125 125 125 125 125 125 125 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 125 125 125 124 124 124 124 124 124 124 124 124 124 123 123 123 123 124 124 124 124 125 125 125 125 124 124 122 121 119 118 116 115 114 114 114 115 116 117 119 121 122 124 125 126 127 128 128 128 129 129 129 129 128 128 128 127 127 126 126 126 125 125 125 126 126 126 127 127 128 128 128 128 128 127 127 126 126 125 125 125 125 125 125 125 125 126 126 127 127 128 128 128 128 128 129 129 129 129 129 129 129 129 129 129 129 129 129 129 128 128 128 127 127 127 127 127 127 127 127 127 127 128 128 128 128 128 128 128 127 127 127 126 126 125 125 125 124 124 123 123 123 122 122 122 122 122 122 123 123 123 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 125 125

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

Hình 3.24. Giá trị của dãy Q tương ứng với các mẫu

Từ giá trị của dãy Q, ta tính giá trị XOR_sum của dãy. Hình 3.25 minh hoạ cho giá trị XOR_sum lần lượt qua mỗi bước tính. Kết quả XOR_sum của dãy là 11.

Hình 3.25. Giá trị XOR_sum của dãy Q qua các bước tính

0 0 2 1 0 0 0 6 14 0 4 0 8 0 0 7 23 6 20 7 19 0 0 0 0 0 0 0 0 14 16 0 0 49 0 0 21 48 22 0 0 0 0 0 0 0 56 23 39 22 36 0 0 0 18 0 0 43 0 16 44 0 0 19 83 18 80 19 87 18 84 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 18 72 0 0 0 0 0 0 0 0 0 0 45 75 44 68 0 0 0 0 41 71 40 88 0 0 0 44 89 0 0 33 0 0 0 93 0 35 92 220 0 0 95 0 218 0 0 0 83 217 82 222 0 0 0

Một phần của tài liệu (LUẬN án TIẾN sĩ) một số kỹ thuật giấu tin trong âm thanh số luận án TS máy tính 604801 (Trang 70)

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

(120 trang)