Thuật toán giấu một byte dữ liệu vào trong khối 256 mẫu

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 80 - 84)

Chương 3 MỘT SỐ THUẬT TOÁN GIẤU TIN TRÊN MIỀN THỜI GIAN

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

3.4.3. Thuật toán giấu một byte dữ liệu vào trong khối 256 mẫu

Dưới đây là thuật toán giấu một byte dữ liệu vào trong đoạn gồm 256 mẫu nhưng chỉ thay đổi 1 bit của một mẫu trong đoạn dữ liệu chứa.

Đầu vào: - Đoạn dữ liệu chứa gồm 256 mẫu (S[0..255]) và byte cần giấu p. Đầu ra: - Đoạn chứa tin S[0..255].

Bước 1) Tính XOR_sum của đoạn S: h=XOR_sum(S);

Bước 2) Tìm vị trí của mẫu cần thay đổi để giấu tin: pos= XOR (h, p); Bước 3) Lật một bit của mẫu tại vị trí pos để giấu byte p:

Nếu giá pos = 0 thì thỏa điều kiện giấu, khơng cần điều chỉnh.

Nếu giá trị pos > 0 thì điều chỉnh mẫu tại vị trí pos, có tham gia trong q trình tính XOR_sum hoặc khơng: Q[pos] = 1 - Q[pos];

Bước 4) Điều chỉnh giá trị mẫu tại ví trí pos để giấu tin nếu pos>0

Nếu Q[pos] = 0 thì S[pos] = S[pos] +1, ngược lại S[pos] = S[pos] - 1.

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 125 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

Tệp mang tin Chia thành các đoạn gồm 256 mẫu Giấu tin Tệp gốc Xáo trộn dùng phương pháp hoán vị Dữ liệu mật Khố

Ví dụ ta cần giấu ký tự ‘z’ vào trong dãy 256 mẫu có giá trị như hình 3.24. Ta có XOR_sum của đoạn là 11 và ký tự ‘z’ có mã ASCII là 122. Ta thực hiện phép toán XOR giữa 11 và 122 ta được 113. Kết quả này khác 0 nên ta điều chỉnh giá trị mẫu tại vị trí 113 (lật bit cuối). Giá trị cũ tại vị trí S[113] là 124 sẽ điều chỉnh thành 125. Tất cả các giá trị khác của dãy khơng thay đổi. Kết quả như hình 3.26.

3.4.4. Thuật tốn giấu tin

Hình 3.27 mơ tả các bước thuật tốn giấu tin sử dụng XOR_sum của khối.

Hình 3.27. Sơ đồ giấu tin dùng XOR_sum của khới

Chi tiết thuật toán giấu như sau:

Đầu vào: - Tệp âm thanh F, khố (k, d), và thơng điệp mật cần giấu M. Đầu ra: - Tệp âm thanh F’ chứa tin mật.

Bước 1) Chia thơng điệp mật M thành các đoạn có cùng độ dài d. Dựa vào giá trị k, và phương pháp hốn vị, xáo trộn M và ta có được M’.

Bước 2) Chia tệp F thành các đoạn Si có độ dài bằng nhau và bằng 256. Bước 3) Lấy lần lượt từng byte của M’ giấu vào trong đoạn Si theo thuật toán ở mục 3.4.3 cho đến khi tồn bộ thơng điệp được giấu.

Bước 4) Ghi các đoạn Si ra tệp F’.

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

Thuật toán giải tin tương tự như thuật toán giấu nhưng thực hiện theo chiều ngược lại. Trong quá trình giải tin, ta cần tệp chứa dữ liệu mật, cặp số (k, d) là khoá và q là dài chuỗi tin mật. Thuật toán giải tin sẽ lần lượt tách từng byte dữ liệu trong

mỗi đoạn 256 mẫu, thực hiện khôi phục lại q byte tin mật ban đầu dựa vào khoá (k, d). Chi tiết thuật toán như sau:

Đầu vào: - Tệp chứa tin mật, khoá (k, d) và q là số byte thông điệp mật cần lấy. Đầu ra: - Thông điệp mật M.

Bước 1) Lấy h=q/d*d đoạn từ tệp chứa tin mật, mỗi đoạn chứa 256 mẫu. Bước 2) Lặp thao tác dưới đây h lần để lấy h byte từ các đoạn, mỗi byte trong mỗi đoạn, byte thứ i được gán cho M’[i].

M’[i] =XOR_sum(Si).

Bước 3) Đối với mỗi đoạn gồm d byte của chuỗi M’, dùng phép biến đổi khôi phục lại chuỗi tin M như thuật tốn đã trình bày ở mục 3.4.1.

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

Dưới đây là các hình minh hoạ khi thử nghiệm giấu 2048 byte vào trong tệp âm thanh có độ dài 32 giây. Hình 3.28 là sóng, phổ của dữ liệu gốc và sóng, phổ của dữ liệu sau khi giấu tin. Phương pháp giấu này không cho thấy sự khác biệt giữa tệp âm thanh gốc và tệp mang tin khi đánh giá bằng cảm nhận chủ quan (nghe bằng tai).

Hình 3.28. Sóng, phổ của âm thanh trước (trái) và sau khi giấu (phải)

Bảng 3.5 thể hiện độ đo SNR khi sử dụng kỹ thuật giấu để giấu các tệp dữ liệu vào các tệp âm thanh khác nhau. Do tệp map.gif có kích thước lớn nên không giấu được vào các tệp âm thanh. Đối với tệp giấu được (tệp dohoa.cpp và DuyTanlogo.bmp) thì giá trị SNR của phương pháp giấu này cao hơn.

Bảng 3.5. Bảng giá trị SNR khi giấu tin theo thuật toán điều chỉnh một bit Tên tệp chứa Giá trị SNR dohoa.cpp (430 byte) DuyTanlogo.bmp (1694 byte) map.gif (14845 byte)

jarre-in.wav 85.99 80.05 Không giấu được

gazebo-in.wav 86.58 80.64 Không giấu được

brahms-in.wav 84.61 78.62 Không giấu được

speech-in.wav 79.32 32.62 Khơng giấu được

Phép tốn XOR có một số tính chất sau: 1. AB= B A

2. AA= 0 3. A0= A 4. AB A=B

Trong sơ đồ giấu, một byte dữ liệu mật sẽ được giấu trong đoạn 256 mẫu. Để giấu byte p vào trong đoạn 256 mẫu, ta cần đảm bảo XOR_sum của đoạn đó bằng giá trị của p. Nếu như XOR_sum của đoạn khác p ta sẽ điều chỉnh giá trị tại vị trí pos bằng cách lật bit cuối của mẫu. Ở đây giá trị pos = h XOR p.

Nếu như mẫu tại vị trí pos trước đây có tham gia và q trình tính XOR_sum của khối thì mẫu này sẽ được loại ra, h nếu như trước đây mẫu này khơng tham gia vào q trình tính XOR_sum thì nó sẽ được sử dụng để tính XOR_sum của khối.

Về tỉ lệ dữ liệu, phương pháp LSB điều chỉnh 8 bit trên 8 mẫu dữ liệu âm thanh để giấu 8 bit. Nếu như có 256 mẫu thì có thể giấu được 8 byte dữ liệu mật. Phương pháp đề xuất trong mục 3.3 sẽ điều chỉnh tối đa 4 mẫu trong 50 mẫu để giấu 1 byte dữ liệu. So với phương pháp LSB và phương pháp trong mục 3.3 thì tỉ lệ dữ liệu của kỹ thuật này thấp hơn nhưng tỉ lệ thay đổi trên dữ liệu gốc sẽ thấp hơn nếu so sánh theo tiêu chí giấu cùng giấu 1 byte dữ liệu.

Kỹ thuật này cơ bản dựa trên việc điều chỉnh các bit LSB nên chỉ phù hợp với các ứng dụng giấu tin mật mà không dùng cho ứng dụng đánh dấu bản quyền, do tính khơng bền vững trước các tấn cơng.

Do tỉ lệ điều chỉnh bit thấp nên có thể vận dụng giấu vào các bit ở mức cao hơn nhằm mục đích tăng tính bền vững, hoặc có thể kết hợp giấu trên nhiều mức bit khác nhau để tăng tỉ lệ giấu.

Tính an tồn của lược đồ giấu phụ thuộc vào khóa, là giá trị d và k. Tính mật của kỹ thuật có thể tăng nếu như giá trị d được chọn là số đủ lớn. Khi đó số hốn vị sẽ lớn và khả năng dị để khơi phục tin giấu của người thám tin sẽ thấp hơn do phải thử nhiều trường hợp hơn.

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 80 - 84)

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

(120 trang)