Chương 3 MỘT SỐ THUẬT TOÁN GIẤU TIN TRÊN MIỀN THỜI GIAN
3.5. Thuật toán giấu điều chỉnh tiếng vọng
3.5.2. Kỹ thuật điều chỉnh tiếng vọng
Kỹ thuật đề xuất dưới đây khắc phục một phần nhược điểm của phương pháp ở trên. Bằng cách dựa vào các giá trị được sinh từ khố và điều chỉnh cơng thức thêm tiếng vọng vào dữ liệu gốc, kỹ thuật đề xuất sẽ hạn chế khả năng người thám tin dị tìm được tin giấu và tránh trường hợp rút trích tin khơng đúng.
3.5.2.1. Thêm tiếng vọng dựa vào số ngẫu nhiên
Để giấu chuỗi bit M có độ dài n ta cần sinh chuỗi R ngẫu nhiên có độ dài n, trong đó Ri chỉ nhận giá trị 0 hoặc 1. Mỗi một bit mật Mi sẽ được giấu vào trong một đoạn. Dựa vào giá trị Ri này ta sẽ giữ nguyên đoạn hoặc thêm tiếng vọng vào đoạn. Cụ thể như sau:
(3.8)
Chuỗi R được tính như sau:
(3.9)
Với xi là giá trị được sinh ra theo bộ sinh số đồng dư như sau:
xi = (axi-1 + b) mod N (3.10)
Để thêm tiếng vọng vào trong đoạn, ta sử dụng công thức (3.11) như sau: 𝑆𝑖′(𝑛) = [ 1.1 ∗ 𝑆𝑖(𝑛) 𝑛ế𝑢 𝑆𝑖(𝑛) = 𝑆𝑖(𝑛 − 𝑑)
0.99 ∗ 𝑆𝑖(𝑛) + 0.1 ∗ 𝑆𝑖(𝑛 − 𝑑) 𝑛ế𝑢 𝑆𝑖(𝑛) <> 𝑆𝑖(𝑛 − 𝑑) (3.11)
Công thức điều chỉnh này tránh được trường hợp rút trích tin sai do có xử lý cho đoạn có giá trị trùng nhau.
=1: copy để giấu bit 1, thêm tiếng vọng để giấu bit 0. =0: copy để giấu bit 0, thêm tiếng vọng để giấu bit 1. Nếu Ri
1 : nếu (xi mod 6) >2 0 : nếu (xi mod 6) <=2 Ri =
3.5.2.2. Thuật toán giấu
Đầu vào: - Tệp âm thanh gốc C, chuỗi bit W có độ dài L, khố (a, b) và số N. Đầu ra: - Tệp chứa tin giấu S.
Các bước của thuật toán giấu như sau:
Bước 1) Sinh ra chuỗi R dựa vào khố theo cơng thức (3.9), (3.10).
Bước 2) Chia dữ liệu trên tệp gốc C thành các đoạn (frame) Ci có kích thước bằng nhau. Nếu số frame < độ dài chuỗi bit (L) cần giấu thì dừng.
Bước 3) Gán giá trị các đoạn Si bằng Ci
Dựa vào giá trị của Ri và giá trị bit cần giấu Wi, dùng công thức (3.11) để thêm tiếng vọng vào cho các đoạn Si.
Bước 4) Ghi các đoạn Si ra tệp S và chép các mẫu còn lại từ C sang S.
3.5.2.3. Thuật toán giải tin
Đầu vào: - Tệp chứa tin giấu S, tệp gốc C.
- Khoá (a, b) và số nguyên N, số bit cần lấy L. Đầu ra: - Chuỗi bit W có độ dài L.
Bước 1) Sinh ra chuỗi R dựa vào khố theo cơng thức (3.9), (3.10).
Bước 2) Chia dữ liệu tệp chứa tin giấu S và tệp gốc C thành các đoạn (frame) Si, Ci có kích thước bằng nhau.
Bước 3) So sánh cepstrum của đoạn Ci với Si và dựa vào giá trị của Ri để trích bit 0 hoặc bit 1.
Lặp lại bước 3 tuần tự cho các đoạn dữ liệu Ci, Si cho đến khi lấy đủ L bit. Kích thước mỗi đoạn được sử dụng trong giấu tin và giải tin phải giống nhau. Để đảm bảo kỹ thuật giấu không tạo ra sự khác biệt giữa tệp gốc và tệp mang tin thì thời gian gây hiệu ứng tiếng khơng nên lớn hơn 20 mili giây, từ đó sẽ có cách chọn số mẫu trong mỗi đoạn cho phù hợp.
3.5.3. Kết quả thử nghiệm và đánh giá
Trong thử nghiệm, cặp số (7, 9137) được chọn làm số mồi cho bộ sinh số ngẫu nhiên. Chuỗi dữ liệu giấu có độ dài gồm 3440 bit được lấy từ tệp dohoa.cpp. Chuỗi
số ngẫu nhiên R được sinh dựa vào cơng thức (3.9). Kết quả ta sẽ có chuỗi R có giá trị như sau: R = {1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0 , 1, 1, 0……}.
Hình 3.31. Phổ biên đợ mợt đoạn của âm thanh trước và sau khi giấu
Tệp chứa được lấy mẫu ở tần số 44100, số bit lượng tử là 16, gồm 1422720 mẫu. Kích thước mỗi frame được chọn là 1000 và giá trị d1 được chọn bằng 441 tương ứng dưới mức nhận biết tiếng vọng của hệ thống thính giác của con người. Hình 3.31 là một đoạn được thêm tiếng vọng để giấu tin. Kết quả đánh giá mức độ nhận biết cho thấy kỹ thuật này không gây ra sự khác biệt nào khi nghe tệp âm thanh gốc và tệp âm thanh mang tin.
Bảng 3.5 dưới đây thể hiện độ đo SNR khi thử nghiệm giấu 3 tệp dữ liệu vào trong 2 tệp âm thanh khác nhau. Đối với tệp map.gif khơng thể giấu do kích thước lớn.
Bảng 3.6. Bảng giá trị SNR khi thêm tiếng vọng để giấu tin
Tên tệp chứa Giá trị SNR dohoa.cpp (430 byte) DuyTanlogo.bmp (1694 byte) map.gif (14845 byte)
S.wav 30.54 27.17 Không giấu được
Độ an tồn của lược đồ giấu phụ thuộc vào khóa sinh chuỗi R. Để giấu chuỗi bit W có độ dài L ta cần phải có dãy R có cùng độ dài với W. Thuật tốn để sinh chuỗi R có độ phức tạp O(L). Chuỗi R được sinh dựa vào khố bí mật giúp tăng độ mật cho kỹ thuật. Nếu như người thám tin biết được kỹ thuật giấu dùng phương pháp điều chỉnh tiếng vọng và kích thước của mỗi đoạn để giấu thơng tin nhưng nếu khơng biết chuỗi R thì cũng khó lấy lại được tin giấu. Nếu như biết cả số độ dài chuỗi bit là L thì người thám tin cũng phải dò trong 2L chuỗi nhị phân để xác định được tin giấu.
Tổng kết chương 3
Trong chương 3 đã trình bày năm thuật tốn giấu tin trong tệp âm thanh. Các thuật toán này thực hiện điều chỉnh một bit của mẫu dữ liệu để giấu một hoặc nhiều bit. Thuật toán 1 thực hiện giấu bằng cách kết hợp với mã Hamming nhằm mục đích giảm nhận tin sai nếu tệp mang tin bị tấn cơng. Thuật tốn 2 dùng chuỗi ngẫu nhiên để chọn mẫu và bit của mẫu đó nhúng bit cần giấu vào, cách điều chỉnh bit để giảm sai khác giữa mẫu dữ liệu gốc và mẫu dữ liệu mang tin. Thuật toán 3 và 4 sử dụng hai phương pháp khác nhau để xáo trộn dữ liệu và dùng dãy liên tục các mẫu để giấu tin. Việc giấu 1 bit vào dãy dựa vào đặc tính dữ liệu của dãy đó. Thuật tốn 3 điều chỉnh tối đa 4 bit để giấu 1 byte dữ liệu trong khi thuật toán 4 chỉ điều chỉnh 1 bit giấu 1 byte dữ liệu. Thuật toán thứ 5 dùng phương pháp thêm tiếng vọng để giấu tin.