Tóm tắt Luận án Một số kỹ thuật giấu tin trong âm thanh số

Thuật toán giấu chuỗi bit W vào tệp C, kết quả ghi ra tệp S.

Bước 1) Sinh ra chuỗi R dựa vào khoá theo công thức (3.9), (3.10).

Bước 2) Chia dữ liệu trên tệp C thành các đoạn 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.

pdf23 trang | Chia sẻ: honganh20 | Ngày: 02/03/2022 | Lượt xem: 284 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Tóm tắt Luận án Một số kỹ thuật giấu tin trong âm thanh số, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
g tin. Hiện nay giấu tin nói chung và giấu tin trong âm thanh vẫn còn nhiều vấn đề mở cần nghiên cứu. 2. Mục tiêu của luận án Trong luận án này chúng tôi đặt ra mục tiêu chính sau đây: • Nghiên cứu và đề xuất một số thuật toán giấu tin trong âm thanh thực hiện trên miền thời gian, có thể áp dụng để giấu tin mật. • Nghiên cứu và đề xuất một số thuật toán giấu tin trong âm thanh trên miền tần số, bền vững trước một số tấn công cơ bản. 3. Đóng góp của luận án • Đề xuất sử dụng mã hỗ trợ xác thực trong quá trình giấu tin. Mục đích của việc mã hoá là tránh trường hợp nhận tin sai nếu tệp chứa tin giấu bị tấn công làm thay đổi nội dung tin giấu. Kết quả được đăng tải trong Tạp chí Khoa học Tự nhiên và Công nghệ, Tạp chí Khoa học Đại học quốc gia Hà Nội năm 2009. 2 • Đề xuất cách chọn mẫu dữ liệu và bit điều chỉnh để giấu tin dựa vào chuỗi ngẫu nhiên được sinh ra từ khoá. Trong kỹ thuật này cũng đề xuất cách điều chỉnh các bit để sự sai khác giữa các mẫu trên tệp gốc và tệp mang tin giấu là ít nhất. Kết quả được đăng tải trong Tạp chí Khoa học Tự nhiên và Công nghệ, Tạp chí Khoa học Đại học quốc gia Hà Nội năm 2013. • Áp dụng và cải tiến các phương pháp giấu tin cho dữ liệu âm thanh. Kết quả được đăng tải trong kỷ yếu Hội nghị IEEE SoCPaR năm 2013 và Hội nghị IEEE ATC năm 2014 tại Hà Nội. • Cải tiến kỹ thuật giấu tin sử dụng tiếng vọng của một tác giả trước đó. Kết quả nghiên cứu được trình bày và đăng tải trong Kỷ yếu Hội nghị Quốc tế ICIEIS năm 2013 tại Malaysia. • Đề xuất kỹ thuật giấu tin bằng cách điều chỉnh các hệ số trên miền tần số của tín hiệu âm thanh. Kết quả nghiên cứu được trình bày tại Hội nghị Quốc tế IEEE DICTAP năm 2014 tại Thái Lan. • Đề xuất kỹ thuật giấu tin bằng cách điều chỉnh các hệ số của thành phần chi tiết của phép biến đổi wavelet. Kết quả đăng trên tạp chí Khoa học Công nghệ, Đại học Đà Nẵng. Nội dung của luận án dựa trên các bài báo đã công bố. 4. Bố cục của luận án Bố cục của luận án bao gồm phần mở đầu, bốn chương nội dung và phần kết luận. Chương 1 trình bày tổng quan về giấu thông tin. Chương 2 trình bày về các phương pháp giấu tin trong âm thanh. Nội dung chính của luận án được trình bày trong hai chương cuối. Chương 3 trình bày về các phương pháp giấu tin trên miền thời gian và chương 4 trình bày về các phương pháp giấu trên miền tần số. 3 Chương 1 GIẤU THÔNG TIN VÀ GIẤU TIN TRONG ÂM THANH 1.1. Giấu thông tin 1.1.1. Lịch sử giấu thông tin Từ giấu thông tin (steganography) bắt nguồn từ Hi Lạp và được sử dụng cho tới ngày nay, có nghĩa là tài liệu được phủ (covered writing). Công nghệ thông tin đã tạo ra những môi trường giấu tin mới, ta có thể giấu tin trong các tệp văn bản, hình ảnh, âm thanh, video Ý tưởng về che giấu thông tin đã có từ rất lâu nhưng chủ yếu dùng trong lĩnh vực an ninh và quân sự. Ngày nay, giấu tin còn được dùng để bảo vệ bản quyền các tài liệu số, kiểm soát sao chép. 1.1.2. Các thành phần của hệ giấu tin Một hệ giấu tin gồm có các thành như hình 1.1. Hình 1.1. Sơ đồ của hệ giấu tin 1.1.3. Các yêu cầu của hệ giấu tin 1.1.4. Phân loại giấu tin Ta có thể phân loại các kỹ thuật giấu tin theo kiểu tài liệu dùng làm dữ liệu chứa, theo miền xử lý hay theo mục đích giấu tin. 1.1.5. Tấn công hệ thống giấu tin Tấn công một hệ giấu tin bao gồm các phương pháp để phát hiện, phá huỷ, trích rút hay sửa đổi tin giấu trong dữ liệu mang tin. Khoá Dữ liệu chủ Quá trình Giấu tin Quá trình Giải tin Khoá Dữ liệu chủ Dữ liệu mang tin Môi trường mạng Thông điệp mật Thông điệp mật 4 1.1.6. Các ứng dụng của giấu tin 1.1.1.1. Liên lạc bí mật 1.1.1.2. Bảo vệ bản quyền (copyright protection) 1.1.1.3. Nhận thực hay phát hiện xuyên tạc thông tin 1.1.1.4. Ghi dấu vân tay (fingerprinting) 1.1.1.5. Gán nhãn (labeling) 1.1.1.6. Điều khiển sao chép (copy control) 1.2. Giấu tin trong âm thanh số Giấu tin trong âm thanh dựa vào ngưỡng nghe của con người và hiện tượng che khuất (masking) âm thanh để giấu tin. 1.2.1. Ngưỡng nghe Phạm vi nghe của người trong khoảng từ 20Hz đến 20 kHz. 1.2.2. Hiện tượng che khuất Hiện tượng che khuất tín hiệu âm thanh xảy ra khi một âm thanh này ảnh hưởng đến sự cảm nhận âm thanh khác. 1.2.3. Âm thanh và các đặc tính của âm thanh Ba đặc trưng sinh lý của âm thanh là âm lượng, độ cao và âm sắc. Đơn vị đo âm thanh là decibel (dB). 1.2.4. Biểu diễn âm thanh số Số byte dùng để lưu 1 giây âm thanh nb thức (1.2): 𝑆ố 𝑏𝑦𝑡𝑒 ≈ (𝑡ầ𝑛 𝑠ố 𝑙ấ𝑦 𝑚ẫ𝑢 ∗ 𝑠ố 𝑘ê𝑛ℎ ∗ 𝑠ố 𝑏𝑖𝑡 𝑏𝑖ể𝑢 𝑑𝑖ễ𝑛 1 𝑚ẫ𝑢)/8 (1.2) 1.2.5. Các định dạng âm thanh phổ biến 1.2.6. Một số chương trình giấu tin trên âm thanh Tổng kết chương 1 Chương 1 trình bày các khái niệm liên quan đến giấu tin, phân loại và các ứng dụng. Ngoài ra, hiện tượng che khuất tín hiệu, cách lấy mẫu và biểu diễn âm thanh số, định dạng tệp âm thanh và một số phần mềm giấu trên âm thanh hiện có cũng được trình bày. 5 Chương 2 CÁC PHƯƠNG PHÁP GIẤU TIN TRONG ÂM THANH 2.1. Các kỹ thuật bổ trợ cho giấu tin 2.1.1. Các phép biến đổi từ miền thời gian sang miền tần số 2.1.1.1. Phép biến đổi Fourier rời rạc 2.1.1.2. Phép biến đổi wavelet (DWT) 2.1.2. Xáo trộn dữ liệu mật Giả sử có chuỗi M gồm n phần tử, là thông điệp mật cần giấu. Thay vì giấu tuần tự từng phần tử, ta thực hiện xáo trộn chuỗi M, nhằm gây khó cho người thám tin khi tấn công rút trích tin. 2.1.2.1. Xáo trộn dữ liệu theo chuỗi hoán vị 2.1.2.2. Xáo trộn dữ liệu bằng phép biến đổi Arnold 2.1.3. Sinh chuỗi giả ngẫu nhiên Các chuỗi ngẫu nhiên có thể dùng để xác định ví trí mẫu được chọn để giấu hoặc vị trí bit giấu. 2.1.3.1. Bộ sinh đồng dư (congruential generator) 2.1.3.2. Bộ sinh Fibonacci 2.2. Đánh giá các phương pháp giấu tin trong âm thanh 2.2.1. Đánh giá bằng các độ đo 2.2.1.1. Độ đo SNR Giá trị của SNR chỉ số lượng thay đổi trên dữ liệu chứa do chèn âm dữ liệu mật vào, tính theo thang độ decibel. 𝑆𝑅𝑁 = 10 𝑙𝑜𝑔10 ∑ 𝑥(𝑖)2𝑁𝑖=0 ∑ [𝑥(𝑖)−𝑦(𝑖)]2𝑁𝑖=0 (2.5) 2.2.1.2. Độ đo NCC (Normalized Cross Correlation) NCC dùng để đo độ tương quan giữa giữa âm thanh gốc và âm thanh chứa tin, hoặc chuỗi bit được giấu và chuỗi bit nhận được. 6 𝑁𝐶𝐶 = 1 𝑛 ∗ ∑ [𝑥(𝑖)∗ 𝑦(𝑖)] [𝑥(𝑖)]2 𝑛 𝑖=1 (2.6) 2.2.2. Đánh giá bằng các phần mềm phát hiện tin 2.2.3. Đánh giá bằng bảng đánh giá ODG (Object Difference Grade) 2.3. Một số phương pháp giấu tin trong âm thanh 2.3.1. Phương pháp điều chỉnh bit ít quan trọng nhất (LSB coding) Ý tưởng chính của kỹ thuật này là thay thế các bit ít quan trọng của mẫu dữ liệu gốc bằng các bit của tin giấu. Hình 2.4. Điều chỉnh bit thấp nhất của mẫu để giấu bit 1 2.3.2. Phương pháp chẵn lẻ (parity coding) Phương pháp chẵn lẻ tương tự như phương pháp mã hoá LSB nhưng thay vì dùng một mẫu dữ liệu sẽ một nhóm các mẫu. 2.3.3. Phương pháp mã hoá pha (phase coding) Hình 2.6. Sự dịch chuyển pha của tín hiệu Phương pháp mã hoá pha giấu tin bằng cách thay thế pha của đoạn âm thanh ban đầu bằng một pha tham chiếu thể hiện dữ liệu. 2.3.4. Phương pháp mã hoá tiếng vọng (echo coding) Phương pháp mã hoá tiếng vọng giấu tin vào âm thanh bằng cách điều chỉnh độ trễ thêm tiếng vọng vào tín hiệu gốc. 0 1 0 1 1 1 1 0 Giá trị mẫu sau khi điều chỉnh để giấu bit 1: 0 1 0 1 1 1 1 1 Giá trị mẫu dữ liệu gốc 7 𝑋(𝑛) = 𝑆(𝑛) + 𝛼. 𝑆(𝑛 − 𝑑) (2.8) Trong đó S(n) là tín hiệu gốc, X(n) là tín hiệu được thêm tiếng vọng, α là hệ số tỉ lệ, d là độ trễ. 2.3.5. Phương pháp trải phổ 2.3.6. Phương pháp điều chỉnh biên độ 2.3.7. Phương pháp lượng tử hoá (quantization) 2.3.8. Phương pháp điều chế tỉ lệ thời gian 2.3.9. Phương pháp giấu dựa vào Patchwork 2.3.10. Phương pháp dựa vào các đặc trưng nổi bật Tổng kết chương 2 Chương 2 của luận án đã trình bày về các kỹ thuật bổ trợ cho giấu tin trong âm thanh, các kỹ thuật xáo trộn dữ liệu, sinh số ngẫu nhiên và các tiêu chí đánh giá các thuật toán giấu. Nội dung chính của chương là trình bày về các phương pháp giấu tin trong tệp âm thanh. Chương 3 MỘT SỐ THUẬT TOÁN GIẤU TIN TRÊN MIỀN THỜI GIAN 3.1. Thuật toán giấu tin kết hợp mã sửa lỗi Hamming Kỹ thuật giấu kết hợp với kỹ thuật mã hoá Hamming nhằm giúp cho người nhận tin hạn chế khả năng nhận tin sai. 3.1.1. Mã Hamming Mã Hamming sử dụng ma trận sinh G và ma trận kiểm tra H. Với mỗi nhóm 4 bit dữ liệu, mã Hamming (7, 4) thêm 3 bit kiểm tra. Mã Hamming (7, 4) có thể phát hiện và sửa lỗi 1 bit, phát hiện lỗi 2 bit trong chuỗi 7 bit nhận được. 8 Hình 2.1. Ma trận sinh và ma trận kiểm tra của mã Hamming (7, 4) 3.1.2. Quá trình giấu tin Bước 1) Chuỗi bit M được chia thành các đoạn dài 4 bit và mã hóa thành từ mã có độ dài 7 bit. Độ dài chuỗi M’ sẽ bằng (L/4)*7. Bước 2) Giấu tin: Đọc tệp âm thanh gốc và giấu lần lượt từng bit của chuỗi M’, theo qui tắc chẵn lẻ của nhóm gồm 3 mẫu. Nếu tổng 3 bit cuối của nhóm khác tính chẵn lẻ với bit giấu thì cần điều chỉnh 1 mẫu. 3.1.3. Quá trình giải tin và xác thực tin giấu Bước 1) Trích thông tin: Dựa vào khóa k, kỹ thuật giấu và số bit đã giấu, ta trích chuỗi bit từ tệp C’’, kết quả ta thu được M’. Bước 2) Xác thực: Chia M’ thành các đoạn có độ dài 7, nhân với ma trận H. Nếu kết quả nhân các đoạn bằng 0, ta trích các bit dữ liệu của M’ để nhận M. Trường hợp kết quả khác 0 thì kết luận là có tấn công. 3.1.4. Kết quả thử nghiệm và đánh giá Kết quả thử nghiệm cho thấy chất lượng tệp mang tin tốt, không phân biệt được khi nghe tệp âm thanh gốc và tệp mang tin Bảng 3.1. Giá trị SNR khi thực hiện giấu kết hợp mã Hamming Tên file chứa Dạng tệp âm thanh Tệp tin được giấu và giá trị SNR tương ứng dohoa.cpp (430 byte) DuyTanlogo.b mp (1694 byte) map.gif (14845 byte) jarre-in.wav Độc tấu 77.56 71.57 62.16 gazebo-in.wav Hòa tấu 78.04 72.19 62.77 brahms-in.wav Hòa tấu 76.33 70.47 60.70 speech-in.wav Bài nói 70.99 64.98 55.50 9 Hình 3.3. Dữ liệu âm thanh gốc và dữ liệu có chứa tin mật Khi có tấn công, giá trị một số mẫu dữ liệu âm thanh sẽ thay đổi. Bảng 3.2 thể hiện kết quả khi thay đổi ngẫu nhiên một số mẫu trên tệp mang tin và khả năng phát hiện thay đổi của kỹ thuật đề xuất. Bảng 3.2. Phát hiện thay đổi tin mật trên tệp mang tin Số mẫu điều chỉnh Phát hiện thay đổi Số bit sai phát hiện khi giải tin Số bit có thể sửa 5 Có 1 1 10 Có 3 2 40 Có 24 20 100 Có 38 14 500 Có 172 75 3.2. Thuật toán giấu điều chỉnh giá trị nhóm bit 3.2.1. Sinh chuỗi xác định mẫu dữ liệu và vị trí trên mẫu Dùng khoá K sinh chuỗi SR, tính chuỗi S và V, trong đó S[i] cho biết mẫu được chọn và V[i] cho biết vị trí bit trên mẫu để giấu. 3.2.2. Điều chỉnh độ lệch bit PROC DIEUCHINH(i,k) SET(i,k); if(i>1) SET(1,1-k); if(i>2) SET(2,1-k); END PROC 3.2.3. Thuật toán giấu tin theo phương pháp điều chỉnh giá trị nhóm bit Đầu vào: -Tệp âm thanh A, chuỗi bit M, khoá K gồm ba số (x, y, N). Đầu ra: - Tệp âm thanh A’ có chứa chuỗi bit mật M. 10 Bước 1) Sinh chuỗi SR, từ đó tính mảng S[] và mảng V[]. Bước 2) Giấu lần lượt từng bit Mi theo nguyên tắc nếu bit thứ Vi của mẫu chọn thứ i khác với Mi thì thực hiện DIEUCHINH(Vi, Mi). Bước 3) Ghi các mẫu đã điều chỉnh ra tệp âm thanh A’. 3.2.4. Quá trình giải tin theo phương pháp điều chỉnh giá trị nhóm bit Đầu vào: - Tệp A’ chứa tin giấu, khoá K(x, y, N), độ dài L. Đầu ra: - Chuỗi bit M được giấu. Bước 1) Chuẩn bị: dựa vào khoá sinh ra mảng S[] và mảng V[]. Bước 2) Giải tin: đọc tệp âm thanh A’, dựa vào mảng S[] và mảng V[], thực hiện lấy L bit từ các mẫu trên tệp A’. 3.2.5. Đánh giá phương pháp giấu tin 3.2.5.1. Chi phí thời gian giấu tin và giải tin 3.2.5.2. Tỉ lệ dữ liệu giấu 3.2.5.3. Độ mật của kỹ thuật Việc điều chỉnh các bit để giấu không tạo thành qui luật. Bảng 3.3. Giá trị SNR khi giấu theo phương pháp điều chỉnh nhóm bit Tên file chứa Giá trị SNR dohoa.cpp (430 byte) DuyTanlogo.bmp (1694 byte) map.gif (14845 byte) jarre-in.wav 71.52 65.46 56.14 gazebo-in.wav 72.03 66.23 56.77 brahms-in.wav 70.37 64.54 54.69 speech-in.wav 64.80 58.91 49.49 3.3. Thuật toán điều chỉnh 2 mẫu trong đoạn chứa 25 mẫu 3.3.1. Xáo trộn dữ liệu Chuỗi mật cần giấu được xáo trộn bằng biến đổi Arnold. 3.3.2. Thuật toán giấu 4 bit trong khối 25 mẫu dữ liệu Thuật toán thực hiện giấu 4 bit mật vào khối F, kết quả là F’. 11 Bước 1) Xây dựng ma trận A từ khối F, A[i][j] = LSB(F[i][j]) Bước 2) Lấy 4 dòng đầu của A, mỗi dòng thực hiện phép XOR tất cả các phần tử trong dòng, ta có r1r2r3r4. Bước 3) Lấy 4 cột đầu tiên của A, mỗi cột thực hiện XOR tất cả các phần tử của mỗi cột để được c1c2c3c4. Bước 4) Thực hiện XOR kết quả trong bước 2 và bước 3 để có s1s2s3s4. Bước 5) So sánh kết quả của Bước 4) với 4 bit cần giấu b1b2b3b4. Nếu giống nhau thỏa điều kiện giấu, ngược lại, cần xét các trường hợp sau: • Nếu khác nhau 1 bit bi tại vị trí i thì A[i][5] được điều chỉnh lật. • Nếu khác nhau trên 2 bit bi và bj tại vị trí i và j thì A[i][j] được lật. • Nếu có khác nhau trên 3 bit bi, bj và bk tại 3 vị trí i, j, k thì A[i][j] được lật và A[k][5] được lật. • Nếu có khác nhau trên cả 4 bit bi, bj, bk và bm tại 4 vị trí i, j, k, m thì thực hiện lật A[i][j] và A[k][m]. Bước 6) Đặt các bit LSB của khối F[i][j] giống A[i][j] ta được F’. 3.3.3. Thuật toán giấu tin Bước 1) Xáo trộn chuỗi thông điệp mật M ta được M’. Bước 2) Chia và chuyển dữ liệu âm thanh thành các khối Fi. 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 4 bit của M’ giấu vào mỗi khối Fi, theo thuật toán mục 3.3.2. Bước 4) Chuyển các khối Fi sang lại dạng vector và ghi ra tệp F’. 3.3.4. Thuật toán giải tin Bước 1) Chia tệp âm thanh thành các khối F kích thước 5*5. Bước 2) Lấy 4 bit trong mỗi khối giấu theo cách tính s1s2s3s4 và lấy đủ số bit được giấu ra. Bước 3) Thực hiện phép biến đổi ngược để lấy lại thông điệp mật M. 12 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 3.3.5. Kết quả thử nghiệm và đánh giá Hình 3.19 là biểu diễn đoạn gồm 50 mẫu của tệp âm thanh gốc và tệp mang tin sau khi giấu 1 byte dữ liệu. Kết quả thử nghiệm cũng cho thấy kỹ thuật đề xuất đáp ứng tiêu chí SNR khi giấu tin. Hình 3.19. Tín hiệu âm thanh trước và sau khi giấu tin Bảng 3.4. Giá trị SNR khi giấu tin theo kỹ thuật MCPT Tên file 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 3.4. Thuật toán chỉnh 1 bit để giấu 8 bit dữ liệu 3.4.1. Xáo trộn dữ liệu bằng phương pháp hoán vị Hình 3.5. Chuỗi tin gốc và chuỗi sau khi hoán vị 3.4.2. Tính tổng XOR của đoạn Thuật toán tính tổng XOR của đoạn S gồm 256 mẫu. 13 Bước 1) Từ mảng S ta xác định mảng Q, trong đó Q[i] = S[i]%2. 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; 3.4.3. Thuật toán giấu một byte vào trong khối S gồm 256 mẫu 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 để giấu tin: pos= XOR (h, p); Bước 3) Nếu giá trị pos > 0 thì Q[pos] = 1 - Q[pos]; Nếu Q[pos] = 0 thì S[pos] += 1, ngược lại S[pos] = S[pos] - 1. 3.4.4. Thuật toán giấu tin Đầu vào: - Tệp âm thanh F, khoá (k, d), và thông điệp 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, 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 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 toà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 Bước 1) Lấy h=   ddq */ đoạn (256 mẫu) từ tệp chứa tin mật. Bước 2) Lặp 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], với M’[i] =XOR_sum(Si). Bước 3: Đối với mỗi đoạn gồm d byte của M’, dùng phép biến đổi khôi phục lại chuỗi tin M như thuật toán đã trình bày ở mục 3.4.1. 3.4.6. Kết quả thử nghiệm và đánh giá 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. 14 Bảng 3.5. Giá trị SNR khi giấu theo thuật toán điều chỉnh một bit Tên file 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 3.5. Phương pháp điều chỉnh tiếng vọng Kỹ thuật này cải tiến kỹ thuật được đề xuất bởi J. A. R. Chavez và các đồng sự. 3.5.1. Sơ đồ giấu của Rios Chavez 3.5.2. Kỹ thuật điều chỉnh tiếng vọng Bằng cách dựa vào các giá trị được sinh từ khoá 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. 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 ta cần sinh chuỗi R ngẫu nhiên, trong đó Ri chỉ nhận giá trị 0 hoặc 1. 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. Để thêm tiếng vọng vào trong đoạn, ta sử dụng công thức (3.11). Si′(n) = [ 1.1 ∗ Si(n) nếu Si(n) = Si(n − d) 0.99 ∗ Si(n) + 0.1 ∗ Si(n − d) nếu Si(n) Si(n − d) (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 = 15 3.5.2.2. Thuật toán giấu Thuật toán giấu chuỗi bit W vào tệp C, kết quả ghi ra tệp S. Bước 1) Sinh ra chuỗi R dựa vào khoá theo công thức (3.9), (3.10). Bước 2) Chia dữ liệu trên tệp C thành các đoạn 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 và chép các mẫu còn lại từ C ra tệp S. 3.5.2.3. Thuật toán giải tin Thuật toán trích chuỗi bit từ tệp gốc C và tệp mang tin S. Bước 1) Sinh ra chuỗi R dựa vào khoá 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 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 cho các đoạn dữ liệu Ci, Si cho đến khi lấy đủ L bit. 3.5.3. Kết quả thử nghiệm và đánh giá Hình 3.31. Phổ biên độ một đoạn của âm thanh trước và sau khi giấu 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 16 lấy từ tệp dohoa.cpp. 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 đoạn được chọn là 1000 và giá trị d1 được chọn bằng 441. Bảng 3.6. Giá trị SNR khi thêm tiếng vọng để giấu tin Tên file 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 speech-in.wav 29.12 23.75 Không giấu được Tổng kết chương 3 Chương 3 trình bày năm thuật toán giấu tin trong âm thanh được thực hiện trên miền thời gian. Chương 4 MỘT SỐ THUẬT TOÁN GIẤU TIN TRÊN MIỀN BIẾN ĐỔI 4.1 Thuật toán điều chỉnh các hệ số trên miền biến đổi Fourier 4.1.1. Điều chỉnh giá trị trong miền tần số Trong kỹ thuật này, mỗi đoạn dữ liệu âm thanh Y sẽ được chuyển sang miền tần số dùng phép biến đổi Fourier. FFT(Y)FY  (4.1) Hình 4.1. Biểu diễn số phức trong hệ toạ độ cực Số phức z = x + i ∗ y có thể biểu diễn lại trong hệ toạ độ cực bằng công thức sau : 17 )sin(cos  irz  (4.2) Trị tuyệt đối (magnitude) của số phức được xác định như sau : 22)( yxzabsr  (4.3) Một số mẫu trong dãy FY sẽ được lựa chọn và điều chỉnh để giấu tin. Nếu ta thay đổi độ lớn (magnitude) r của một số phức z thành r’ thì giá trị x, y cũng thay đổi theo. Giá trị x’ và y’ được xác định theo công thức (4.5) và giá trị mới của z được xác định theo công thức (4.6).   sin'' cos'' ry rx   (4.5)  sin'*cos'' rirz  (4.6) 4.1.2. Thuật toán điều chỉnh mẫu để giấu một bit Thuật toán điều chỉnh số phức z để giấu bit mật b, dựa vào số d. Phương pháp: Dieuchinh(z, b, d) Bước 1) Tính biên độ (amplitude) và pha của z: amp = abs(z); phase= angle(z); Bước 2) Điều chỉnh giá trị số phức z để giấu bit b: Nếu b=1 { nếu mod (amp, d) < d/2 thì amp = amp + d/2; } Ngược lại nếu mod (amp, d)> =d/2 thì amp = amp + d/2; Bước 3) Tạo số phức mới z’ và trả về: return (r’=complex(amp*cos(phase),amp*sin(phase))); 4.1.3. Thuật toán giấu Đầu vào: - Vector Y, chuỗi bit M có độ dài q, giá trị d, k, fw. Đầu ra: - Vector Y’ mang tin. Bước 1) Chia Y thành các đoạn có kích thước bằng nhau, chứa fw (frame width) mẫu trên mỗi đoạn. Thực hiện phép biến đổi FFT trên mỗi đoạn để chuyển từ miền thời gian sang miền tần số. FYk = FFT (Yk). 18 Bước 3) Đối với mỗi đoạn FYk, tính biên độ và kiểm tra xem đoạn có thoả điều kiện để giấu không. Điều kiện đoạn được chọn để giấu tin là trong đoạn có số mẫu có biên độ là đỉnh (peak) lớn hơn hoặc bằng 8 và biên độ phải lớn hơn giá trị k (ngưỡng chọn). Nếu thoã mãn điều kiện giấu thì giấu lần lượt 8 bit tin mật vào trong đoạn 8 phần tử đầu tiên là đỉnh của đoạn, dùng kỹ thuật điều chỉnh ở mục 4.1.2 Bước 4) Thực hiện IFFT trên mỗi đoạn FY để chuyển FY từ miền tần số về lại miền thời gian lưu vào Y’ Bước 5) Trả về Y’. Bảng 4.1. Giá trị các mẫu trước và sau khi giấu các bit Giá trị trước khi điều chỉnh Bit giấu Giá trị sau khi điều chỉnh 7.774503 0 7.874503 11.513642 1 11.513642 6.869382 0 6.869382 7.337803 1 7.337803 6.913936 0 7.013936 6.913936 1 6.913936 7.337803 0 7.437803 6.869382 1 6.969382 4.1.4. Thuật toán lấy 1 bit mật từ 1 mẫu Thuật toán sẽ trích số nhị phân Mi từ số phức z. Phương thức: Getbit (z) Bước 1) Tính biên độ (amplitude) của z: amp = abs(z); Bước 2) Lấy bit Mi : nếu mod(amp,d)>d/2 thì Mi =1, ngược lại Mi =0 Bước 3) return Mi 4.1.5. Thuật toán giải tin Đầu vào: - Vector Y’ mang tin, độ dài chuỗi bit q, số d, k, fw. Đầu ra: - Chuỗi bit mật M. 19 Bước 1) Chia Y’ thành các đoạn có cùng số kích thước fw. Bước 2) Thực hiện FFT trên các đoạn Y’i để chuyển sang miền tần số: FY’i = FFT (Y’i). Tính biên độ cho đoạn và gán số bit đã nhận được h=0; Bước 3) Đối với mỗi đoạn FY’i, kiểm tra đoạn có chứa tin hay không dựa vào việc đếm số đỉnh lớn hơn ngưỡng chọn k. Nếu đoạn có chứa tin thì chọn 8 đỉnh đầu tiên trong đoạn để rút trích tin. M[h] = Getbit( FYk(i), d ); h=h+1; Nếu h>1 thì sang Bước 4; Xét các đoạn FY’i kế tiếp. Bước 4) return M. 4.1.6. Kết quả thử nghiệm và đánh giá Thực nghiệm thực hiện thêm nhiễu trắng vào dữ liệu mang tin. Nếu tỉ lệ gây nhiễu lớn hơn 90 thì không ảnh hưởng đến tin giấu. Bảng 4.2. Tỉ lệ bit sai khi tấn công thêm nhiễu trắng Tỉ lệ gây nhiễu Số bit nhận sai Tỉ lệ nhận sai 35 310 0.302734375 40 189 0.184570313 50 46 0.044921875 70 40 0.039062500 80 1 0.000976563 >=90 0 0 Hình 4.5. Ảnh thu được khi giải tin tương ứng với các tỉ lệ gây nhiễu hệ số nhiễu 35 hệ số nhiễu 40 hệ số nhiễu 50 hệ số nhiễu 70 hệ số nhiễu >=90 hệ số nhiễu 80 20 Bảng 4.3. Giá trị SNR khi điều chỉnh biên độ để giấu tin Tên file chứa Giá trị SNR dohoa.cpp (430 byte) DuyTanlogo.bmp (190 byte) map.gif (14845 byte) S.wav 80.41 76.73 Không giấu được speech-in.wav 76.35 72.27 Không giấu được 4.2 Thuật toán điều chỉnh hệ số biến đổi wavelet Phép biến đổi wavelet phân tích tín hiệu thành hai thành phần là A (Approximation) và D (Detail), trong đó thành phần D không quan trọng. Thay đổi trên D ít ảnh hưởng đến tín hiệu âm thanh gốc. 4.2.1. Thuật toán giấu 1 bit Thuật toán giấu bit b vào dãy D gồm fw phần tử, dựa vào số thực d. Bước 1) Tính giá trị trung bình của nửa đoạn trước và nửa đoạn sau của D. h2 = (∑ D[i] fw fw 2 +1 )/( fw 2 ) , h1 = (∑ D[i])/(fw/2) fw 2 1 (4.7) Bước 2) Tính giá trị lệch giá trị trung bình giữa hai đoạn, theo modulo d: k = abs(h1 − h2) mod d Bước 3) Điều chỉnh giá trị để giấu bit b : Nếu b=1 và k> d/2

Các file đính kèm theo tài liệu này:

  • pdftom_tat_luan_an_mot_so_ky_thuat_giau_tin_trong_am_thanh_so.pdf
Tài liệu liên quan