Mục tiêu của đề tài là 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.
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ HUỲNH BÁ DIỆU MỘT SỐ KỸ THUẬT GIẤU TIN TRONG ÂM THANH SỐ Chuyên ngành: Hệ thống thông tin Mã số: 62480104 TĨM TẮT LUẬN ÁN TIẾN SĨ CƠNG NGHỆ THƠNG TIN Hà Nội – 2017 Cơng trình hồn thành tại: Trường Đại học Cơng nghệ, Đại học Quốc gia Hà Nội Người hướng dẫn khoa học: PGS TSKH Nguyễn Xuân Huy Phản biện: PGS TS Đỗ Năng Toàn Phản biện: PGS TS Bùi Thu Lâm Phản biện: TS Nguyễn Ngọc Cương Luận án bảo vệ trước Hội đồng cấp Đại học Quốc gia chấm luận án tiến sĩ họp Trường Đại học Công nghệ vào hồi giờ 00 ngày 26 tháng 10 năm 2017 Có thể tìm hiểu luận án tại: - Thư viện Quốc gia Việt Nam - Trung tâm Thông tin - Thư viện, Đại học Quốc gia Hà Nợi MỞ ĐẦU Tính cấp thiết luận án Sự phát triển mạnh mẽ công nghệ số nhu cầu trao đổi thông tin thông qua hệ thớng kết nới mạng dẫn đến địi hỏi cần phải có giải pháp để bảo vệ thông tin, chống xâm nhập trái phép, lấy cắp, xuyên tạc thông tin hay bảo vệ quyền cho liệu số Việc thiết lập chế phân quyền truy cập, mã hố thơng tin giúp bảo vệ thông tin tốt chúng đảm bảo an tồn tụt đới, địi hỏi cần phải tìm giải pháp khác nhằm nâng cao tính đa dạng loại hình bảo vệ Chúng ta có mợt cách khác để bảo vệ thơng tin, thực hiện giao dịch ngầm bên giao dịch cơng khai, hay cịn gọi giấu tin Giấu tin lĩnh vực quan tâm nhà khoa học làm lĩnh vực bảo mật thông tin Hiện giấu tin nói chung giấu tin âm nhiều vấn đề mở cần nghiên cứu Mục tiêu luận án Trong luận án chúng tơi đặt mục tiêu sau đây: • Nghiên cứu đề xuất mợt sớ thuật tốn giấu tin âm thực hiện miền thời gian, áp dụng để giấu tin mật • Nghiên cứu đề xuất mợt sớ thuật tốn giấu tin âm miền tần số, bền vững trước một sớ cơng Đóng góp luận án • Đề xuất sử dụng mã hỗ trợ xác thực q trình giấu tin Mục đích việc mã hoá tránh trường hợp nhận tin sai tệp chứa tin giấu bị công làm thay đổi nội dung tin giấu Kết đăng tải Tạp chí Khoa học Tự nhiên Cơng nghệ, Tạp chí Khoa học Đại học q́c gia Hà Nợi năm 2009 • Đề xuất cách chọn mẫu liệu bit điều chỉnh để giấu tin dựa vào chuỗi ngẫu nhiên sinh từ khoá Trong kỹ thuật đề xuất cách điều chỉnh bit để sai khác mẫu tệp gốc tệp mang tin giấu Kết đăng tải Tạp chí Khoa học Tự nhiên Cơng nghệ, Tạp chí Khoa học Đại học q́c gia Hà Nợi năm 2013 • Áp dụng cải tiến phương pháp giấu tin cho liệu âm Kết đăng tải kỷ yếu Hội nghị IEEE SoCPaR năm 2013 Hội nghị IEEE ATC năm 2014 Hà Nợi • Cải tiến kỹ thuật giấu tin sử dụng tiếng vọng một tác giả trước Kết nghiên cứu trình bày đăng tải Kỷ yếu Hội nghị Quốc tế ICIEIS năm 2013 Malaysia • Đề xuất kỹ thuật giấu tin cách điều chỉnh hệ số miền tần sớ tín hiệu âm Kết nghiên cứu trình bày Hợi nghị Q́c tế IEEE DICTAP năm 2014 Thái Lan • Đề xuất kỹ thuật giấu tin cách điều chỉnh hệ số thành phần chi tiết phép biến đổi wavelet Kết đăng tạp chí Khoa học Cơng nghệ, Đại học Đà Nẵng Nội dung luận án dựa báo công bố Bố cục luận án Bố cục luận án bao gồm phần mở đầu, bốn chương nội dung phần kết luận Chương trình bày tổng quan giấu thơng tin Chương trình bày phương pháp giấu tin âm Nợi dung luận án trình bày hai chương ći Chương trình bày phương pháp giấu tin miền thời gian chương trình bày phương pháp giấu miền tần sớ Chương 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 sử dụng ngày nay, có nghĩa tài liệu phủ (covered writing) Công nghệ thông tin tạo mơi trường giấu tin mới, ta giấu tin tệp văn bản, hình ảnh, âm thanh, video… Ý tưởng che giấu thơng tin có từ lâu chủ yếu dùng lĩnh vực an ninh quân Ngày nay, giấu tin dùng để bảo vệ quyền tài liệu sớ, kiểm sốt chép 1.1.2 Các thành phần hệ giấu tin Mợt hệ giấu tin gồm có thành hình 1.1 Khố Dữ liệu chủ Q trình Giấu tin Khố Dữ liệu mang tin Mơi trường mạng Thơng điệp mật Q trình Giải tin Dữ liệu chủ Thông điệp mật Hình 1.1 Sơ đồ hệ giấu tin 1.1.3 Các yêu cầu hệ giấu tin 1.1.4 Phân loại giấu tin Ta phân loại kỹ thuật giấu tin theo kiểu tài liệu dùng làm 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 phương pháp để phát hiện, phá huỷ, trích rút hay sửa đổi tin giấu liệu mang tin 1.1.6 Các ứng dụng giấu tin 1.1.1.1 Liên lạc bí mật 1.1.1.2 Bảo vệ quyền (copyright protection) 1.1.1.3 Nhận thực hay phát 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 chép (copy control) 1.2 Giấu tin âm số Giấu tin âm dựa vào ngưỡng nghe người hiện tượng che khuất (masking) âm để giấu tin 1.2.1 Ngưỡng nghe Phạm vi nghe người 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 xảy một âm ảnh hưởng đến cảm nhận âm khác 1.2.3 Âm đặc tính âm Ba đặc trưng sinh lý âm âm lượng, độ cao âm sắc Đơn vị đo âm decibel (dB) 1.2.4 Biểu diễn âm số Số byte dùng để lưu giây âm nb thức (1.2): 𝑆ố 𝑏𝑦𝑡𝑒 ≈ (𝑡ầ𝑛 𝑠ố 𝑙ấ𝑦 𝑚ẫ𝑢 ∗ 𝑠ố 𝑘ê𝑛ℎ ∗ 𝑠ố 𝑏𝑖𝑡 𝑏𝑖ể𝑢 𝑑𝑖ễ𝑛 𝑚ẫ𝑢)/8 1.2.5 Các định dạng âm phổ biến 1.2.6 Một số chương trình giấu tin âm (1.2) Tổng kết chương Chương trình bày khái niệm liên quan đến giấu tin, phân loại ứng dụng Ngoài ra, hiện tượng che khuất tín hiệu, cách lấy mẫu biểu diễn âm số, định dạng tệp âm một số phần mềm giấu âm hiện có trình bày Chương 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 liệu mật Giả sử có chuỗi M gồm n phần tử, thơng điệp mật cần giấu Thay giấu 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 cơng rút trích tin 2.1.2.1 Xáo trộn liệu theo chuỗi hoán vị 2.1.2.2 Xáo trộn liệu 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 dùng để xác định ví trí mẫu chọn để giấu 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á phương pháp giấu tin âm 2.2.1 Đánh giá độ đo 2.2.1.1 Độ đo SNR Giá trị SNR số lượng thay đổi liệu chứa chèn âm liệu mật vào, tính theo thang đợ decibel ∑𝑁 𝑖=0 𝑥(𝑖) [𝑥(𝑖)−𝑦(𝑖)] 𝑖=0 𝑆𝑅𝑁 = 10 𝑙𝑜𝑔10 ∑𝑁 (2.5) 2.2.1.2 Độ đo NCC (Normalized Cross Correlation) NCC dùng để đo độ tương quan giữa âm gốc âm chứa tin, chuỗi bit giấu chuỗi bit nhận 𝑁𝐶𝐶 = 𝑛 ∗ ∑𝑛𝑖=1 [𝑥(𝑖)∗ 𝑦(𝑖)] (2.6) [𝑥(𝑖)]2 2.2.2 Đánh giá phần mềm phát tin 2.2.3 Đánh giá bảng đánh giá ODG (Object Difference Grade) 2.3 Một số phương pháp giấu tin âm 2.3.1 Phương pháp điều chỉnh bit quan trọng (LSB coding) Ý tưởng kỹ thuật thay bit quan trọng mẫu liệu gốc bit tin giấu Giá trị mẫu liệu gốc 1 1 Giá trị mẫu sau điều chỉnh để giấu bit 1: 1 1 1 Hình 2.4 Điều chỉnh bit thấp mẫu để giấu bit 2.3.2 Phương pháp chẵn lẻ (parity coding) Phương pháp chẵn lẻ tương tự phương pháp mã hoá LSB thay dùng mợt mẫu liệu mợt nhóm mẫu 2.3.3 Phương pháp mã hoá pha (phase coding) Hình 2.6 Sự dịch chuyển pha tín hiệu Phương pháp mã hoá pha giấu tin cách thay pha đoạn âm ban đầu một pha tham chiếu thể hiện 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 cách điều chỉnh độ trễ thêm tiếng vọng vào tín hiệu gớc 𝑋(𝑛) = 𝑆(𝑛) + 𝛼 𝑆(𝑛 − 𝑑) (2.8) Trong S(n) tín hiệu gớc, X(n) tín hiệu thêm tiếng vọng, α hệ số tỉ lệ, d độ 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 trưng bật Tổng kết chương Chương luận án trình bày kỹ thuật bổ trợ cho giấu tin âm thanh, kỹ thuật xáo trộn liệu, sinh sớ ngẫu nhiên tiêu chí đánh giá thuật tốn giấu Nợi dung chương trình bày phương pháp giấu tin tệp âm Chương 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ả nhận tin sai 3.1.1 Mã Hamming Mã Hamming sử dụng ma trận sinh G ma trận kiểm tra H Với nhóm bit liệu, mã Hamming (7, 4) thêm bit kiểm tra Mã Hamming (7, 4) phát hiện sửa lỗi bit, phát hiện lỗi bit chuỗi bit nhận Hình 2.1 Ma trận sinh ma trận kiểm tra mã Hamming (7, 4) 3.1.2 Quá trình giấu tin Bước 1) Chuỗi bit M chia thành đoạn dài bit mã hóa thành từ mã có đợ dài bit Độ dài chuỗi M’ (L/4)*7 Bước 2) Giấu tin: Đọc tệp âm gốc giấu bit chuỗi M’, theo qui tắc chẵn lẻ nhóm gồm mẫu Nếu tổng bit ći nhóm khác tính chẵn lẻ với bit giấu cần điều chỉnh mẫu 3.1.3 Quá trình giải tin 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 sớ bit giấu, ta trích chuỗi bit từ tệp C’’, kết ta thu M’ Bước 2) Xác thực: Chia M’ thành đoạn có đợ dài 7, nhân với ma trận H Nếu kết nhân đoạn 0, ta trích bit liệu M’ để nhận M Trường hợp kết khác kết luận có cơng 3.1.4 Kết thử nghiệm đánh giá Kết thử nghiệm cho thấy chất lượng tệp mang tin tốt, không phân biệt nghe tệp âm gốc tệp mang tin Bảng 3.1 Giá trị SNR thực giấu kết hợp mã Hamming Tên file chứa Dạng tệp Tệp tin giấu giá trị SNR tương ứng âm dohoa.cpp DuyTanlogo.b map.gif (430 byte) mp (1694 byte) (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 Hình 3.3 Dữ liệu âm gốc liệu có chứa tin mật Khi có công, giá trị một số mẫu liệu âm thay đổi Bảng 3.2 thể hiện kết thay đổi ngẫu nhiên một số mẫu tệp mang tin khả phát hiện thay đổi kỹ thuật đề xuất Bảng 3.2 Phát thay đổi tin mật tệp mang tin Số mẫu điều chỉnh Phát thay đổi Số bit sai phát giải tin Số bit sửa Có 1 10 Có 40 Có 24 20 100 Có 38 14 500 Có 172 75 3.2 Thuật tốn giấu điều chỉnh giá trị nhóm bit 3.2.1 Sinh chuỗi xác định mẫu liệu vị trí mẫu Dùng khố K sinh chuỗi SR, tính chuỗi S V, S[i] cho biết mẫu chọn V[i] cho biết vị trí bit 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 A, chuỗi bit M, khoá K gồm ba số (x, y, N) Đầu ra: - Tệp âm A’ có chứa chuỗi bit mật M Bước 1) Sinh chuỗi SR, từ tính mảng S[] mảng V[] Bước 2) Giấu bit Mi theo nguyên tắc bit thứ Vi mẫu chọn thứ i khác với Mi thực hiện DIEUCHINH(Vi, Mi) Bước 3) Ghi mẫu điều chỉnh tệp âm 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 giấu Bước 1) Chuẩn bị: dựa vào khoá sinh mảng S[] mảng V[] Bước 2) Giải tin: đọc tệp âm A’, dựa vào mảng S[] mảng V[], thực hiện lấy L bit từ mẫu 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 giải tin 3.2.5.2 Tỉ lệ liệu giấu 3.2.5.3 Độ mật kỹ thuật Việc điều chỉnh bit để giấu không tạo thành qui luật Bảng 3.3 Giá trị SNR giấu theo phương pháp điều chỉnh nhóm bit Giá trị SNR Tên file chứa 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 mẫu đoạn chứa 25 mẫu 3.3.1 Xáo trộn liệu Chuỗi mật cần giấu xáo trợn biến đổi Arnold 3.3.2 Thuật tốn giấu bit khối 25 mẫu liệu Thuật toán thực hiện giấu bit mật vào khối F, kết F’ 10 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 dòng đầu A, dòng thực hiện phép XOR tất phần tử dịng, ta có r1r2r3r4 Bước 3) Lấy cột A, cột thực hiện XOR tất phần tử cột để c1c2c3c4 Bước 4) Thực hiện XOR kết bước bước để có s1s2s3s4 Bước 5) So sánh kết Bước 4) với bit cần giấu b1b2b3b4 Nếu giống thỏa điều kiện giấu, ngược lại, cần xét trường hợp sau: • Nếu khác bit bi vị trí i A[i][5] điều chỉnh lật • Nếu khác bit bi bj vị trí i j A[i][j] lật • Nếu có khác bit bi, bj bk vị trí i, j, k A[i][j] lật A[k][5] lật • Nếu có khác bit bi, bj, bk bm vị trí i, j, k, m thực hiện lật A[i][j] A[k][m] Bước 6) Đặt bit LSB khối F[i][j] giống A[i][j] ta F’ 3.3.3 Thuật tốn giấu tin Bước 1) Xáo trợn chuỗi thơng điệp mật M ta M’ Bước 2) Chia chuyển liệu âm thành khối Fi Bước 3) Thực hiện bước sau tồn bợ thông điệp M’ giấu vào khối: Lấy bit M’ giấu vào khối Fi, theo thuật tốn mục 3.3.2 Bước 4) Chuyển khới Fi sang lại dạng vector ghi tệp F’ 3.3.4 Thuật toán giải tin Bước 1) Chia tệp âm thành khới F kích thước 5*5 Bước 2) Lấy bit khới giấu theo cách tính s1s2s3s4 lấy đủ số bit giấu 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 11 3.3.5 Kết thử nghiệm đánh giá Hình 3.19 biểu diễn đoạn gồm 50 mẫu tệp âm gốc tệp mang tin sau giấu byte liệu Kết thử nghiệm cho thấy kỹ thuật đề xuất đáp ứng tiêu chí SNR giấu tin Hình 3.19 Tín hiệu âm trước sau giấu tin Bảng 3.4 Giá trị SNR giấu tin theo kỹ thuật MCPT Giá trị SNR Tên file chứa 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 bit để giấu bit liệu 3.4.1 Xáo trộn liệu phương pháp hoán vị h e h l l l o w Hoán vị thứ 1000 o l w o e o r l r d d Hoán vị thứ 1000 Hình 3.5 Chuỗi tin gốc chuỗi sau hoán vị 3.4.2 Tính tổng XOR đoạn Thuật tốn tính tổng XOR đoạn S gồm 256 mẫu 12 l Bước 1) Từ mảng S ta xác định mảng Q, Q[i] = S[i]%2 Bước 2) h=0; Bước 3) Lặp i từ đến 255: Nếu (Q[i]!=0) h = XOR(h,i); Bước 4) Trả h; 3.4.3 Thuật tốn giấu byte vào khối S gờm 256 mẫu Bước 1) Tính XOR_sum đoạn S: h=XOR_sum(S); Bước 2) Tìm vị trí mẫu để giấu tin: pos= XOR (h, p); Bước 3) Nếu giá trị pos > Q[pos] = - Q[pos]; Nếu Q[pos] = S[pos] += 1, ngược lại S[pos] = S[pos] - 3.4.4 Thuật toán giấu tin Đầu vào: - Tệp âm F, khố (k, d), thơng điệp cần giấu M Đầu ra: - Tệp âm F’ chứa tin mật Bước 1) Chia thông điệp mật M thành đoạn có cùng đợ dài d Dựa vào giá trị k, xáo trợn M ta có M’ Bước 2) Chia tệp F thành đoạn Si có đợ dài 256 Bước 3) Lấy byte M’ giấu vào đoạn Si theo thuật tốn mục 3.4.3 tồn bộ thông điệp giấu Bước 4) Ghi đoạn Si tệp F’ 3.4.5 Thuật toán giải tin Bước 1) Lấy h= q / d * d đ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ừ đoạn, byte đoạn, byte thứ i gán cho M’[i], với M’[i] =XOR_sum(Si) Bước 3: Đối với đoạn gồm d byte M’, dùng phép biến đổi khôi phục lại chuỗi tin M thuật tốn trình bày mục 3.4.1 3.4.6 Kết thử nghiệm đánh giá Bảng 3.5 thể hiện độ đo SNR sử dụng kỹ thuật giấu để giấu tệp liệu vào tệp âm khác 13 Bảng 3.5 Giá trị SNR giấu theo thuật toán điều chỉnh bit Giá trị SNR Tên file chứa dohoa.cpp (430 byte) DuyTanlogo.bmp (1694 byte) map.gif (14845 byte) jarre-in.wav 85.99 80.05 Không giấu gazebo-in.wav 86.58 80.64 Không giấu brahms-in.wav 84.61 78.62 Không giấu speech-in.wav 79.32 32.62 Không giấu 3.5 Phương pháp điều chỉnh tiếng vọng Kỹ thuật cải tiến kỹ thuật đề xuất J A R Chavez đồng 3.5.1 Sơ đồ giấu Rios Chavez 3.5.2 Kỹ thuật điều chỉnh tiếng vọng Bằng cách dựa vào giá trị sinh từ khố điều chỉnh cơng thức thêm tiếng vọng vào liệu gốc, kỹ thuật đề xuất hạn chế khả người thám tin dị tìm 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, Ri nhận giá trị Dựa vào giá trị Ri ta giữ nguyên đoạn thêm tiếng vọng vào đoạn Nếu Ri = 1: copy để giấu bit 1, thêm tiếng vọng để giấu bit 0: copy để giấu bit 0, thêm tiếng vọng để giấu bit Để thêm tiếng vọng vào đoạn, ta sử dụng công thức (3.11) Si ′(n) = [ 1.1 ∗ Si (n) Si (n) = Si (n − d) 0.99 ∗ Si (n) + 0.1 ∗ Si (n − d) Si (n) Si (n − d) (3.11) Công thức điều chỉnh tránh trường hợp rút trích tin sai có xử lý cho đoạn có giá trị trùng 14 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 ghi tệp S Bước 1) Sinh chuỗi R dựa vào khoá theo công thức (3.9), (3.10) Bước 2) Chia liệu tệp C thành đoạn Ci có kích thước Nếu số frame < độ dài chuỗi bit (L) cần giấu dừng Bước 3) Gán giá trị đoạn Si Ci Dựa vào giá trị Ri 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 đoạn Si Bước 4) Ghi đoạn Si chép mẫu lại từ C tệp S 3.5.2.3 Thuật tốn giải tin Thuật tốn trích chuỗi bit từ tệp gốc C tệp mang tin S Bước 1) Sinh chuỗi R dựa vào khố theo cơng thức (3.9), (3.10) Bước 2) Chia liệu tệp chứa tin giấu S tệp gốc C thành đoạn Si, Ci có kích thước Bước 3) So sánh cepstrum đoạn Ci với Si dựa vào giá trị Ri để trích bit bit Lặp lại bước cho đoạn liệu Ci, Si lấy đủ L bit 3.5.3 Kết thử nghiệm đánh giá Hình 3.31 Phổ biên độ đoạn âm trước sau giấu Trong thử nghiệm, cặp số (7, 9137) chọn làm số mồi cho bộ sinh số ngẫu nhiên Chuỗi liệu giấu có đợ dài gồm 3440 bit 15 lấy từ tệp dohoa.cpp Tệp chứa lấy mẫu tần số 44100, số bit lượng tử 16, gồm 1422720 mẫu Kích thước đoạn chọn 1000 giá trị d1 chọn 441 Bảng 3.6 Giá trị SNR thêm tiếng vọng để giấu tin Giá trị SNR Tên file chứa dohoa.cpp (430 byte) DuyTanlogo.bmp (1694 byte) map.gif (14845 byte) S.wav 30.54 27.17 Không giấu speech-in.wav 29.12 23.75 Không giấu Tổng kết chương Chương trình bày năm thuật tốn giấu tin âm thực hiện miền thời gian Chương 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 hệ số miền biến đổi Fourier 4.1.1 Điều chỉnh giá trị miền tần số Trong kỹ thuật này, đoạn liệu âm Y chuyển sang miền tần số dùng phép biến đổi Fourier FY FFT(Y) (4.1) Hình 4.1 Biểu diễn số phức hệ toạ độ cực Số phức z = x + i ∗ y biểu diễn lại hệ toạ đợ cực công thức sau : 16 (4.2) z r(cos i sin ) Trị tuyệt đối (magnitude) số phức xác định sau : r abs( z ) x2 y2 (4.3) Một số mẫu dãy FY lựa chọn điều chỉnh để giấu tin Nếu ta thay đổi độ lớn (magnitude) r một số phức z thành r’ giá trị x, y thay đổi theo Giá trị x’ y’ xác định theo r ' cos công thứcx' (4.5) vàgiá trị z xác định theo công thức (4.6) y ' r ' sin (4.5) z' r' cos i * r' sin 4.1.2 (4.6) Thuật toán điều chỉnh mẫu để giấu 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) pha 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 { mod (amp, d) < d/2 amp = amp + d/2; } Ngược lại mod (amp, d)> =d/2 amp = amp + d/2; Bước 3) Tạo số phức z’ 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 đoạn có kích thước nhau, chứa fw (frame width) mẫu đoạn Thực hiện phép biến đổi FFT đoạn để chuyển từ miền thời gian sang miền tần số FYk = FFT (Yk) 17 Bước 3) Đới với đoạn FYk, tính biên đợ kiểm tra xem đoạn có thoả điều kiện để giấu khơng Điều kiện đoạn chọn để giấu tin đoạn có sớ mẫu có biên đợ đỉnh (peak) lớn biên độ phải lớn giá trị k (ngưỡng chọn) Nếu thoã mãn điều kiện giấu giấu bit tin mật vào đoạn phần tử đỉnh đoạn, dùng kỹ thuật điều chỉnh mục 4.1.2 Bước 4) Thực hiện IFFT đoạn FY để chuyển FY từ miền tần số lại miền thời gian lưu vào Y’ Bước 5) Trả Y’ Bảng 4.1 Giá trị mẫu trước sau giấu bit Giá trị trước điều chỉnh 4.1.4 Bit giấu Giá trị sau điều chỉnh 7.774503 7.874503 11.513642 11.513642 6.869382 6.869382 7.337803 7.337803 6.913936 7.013936 6.913936 6.913936 7.337803 7.437803 6.869382 6.969382 Thuật toán lấy bit mật từ mẫu Thuật tốn 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) z: amp = abs(z); Bước 2) Lấy bit Mi : mod(amp,d)>d/2 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 18 Bước 1) Chia Y’ thành đoạn có cùng sớ kích thước fw Bước 2) Thực hiện FFT đoạn Y’i để chuyển sang miền tần sớ: FY’i = FFT (Y’i) Tính biên đợ cho đoạn gán số bit nhận h=0; Bước 3) Đối vớ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 ngưỡng chọn k Nếu đoạn có chứa tin chọn đỉnh đoạn để rút trích tin M[h] = Getbit( FYk(i), d ); h=h+1; Nếu h>1 sang Bước 4; Xét đoạn FY’i Bước 4) return M 4.1.6 Kết thử nghiệm đánh giá Thực nghiệm thực hiện thêm nhiễu trắng vào liệu mang tin Nếu tỉ lệ gây nhiễu lớn 90 khơng ảnh hưởng đến tin giấu Bảng 4.2 Tỉ lệ bit sai 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 0.000976563 >=90 0 hệ số nhiễu 35 hệ số nhiễu 70 hệ số nhiễu 40 hệ số nhiễu 50 hệ số nhiễu 80 hệ số nhiễu >=90 Hình 4.5 Ảnh thu giải tin tương ứng với tỉ lệ gây nhiễu 19 Bảng 4.3 Giá trị SNR điều chỉnh biên độ để giấu tin Giá trị SNR Tên file chứa dohoa.cpp (430 byte) DuyTanlogo.bmp (190 byte) map.gif (14845 byte) S.wav 80.41 76.73 Không giấu speech-in.wav 76.35 72.27 Khơng giấu 4.2 Thuật tố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 A (Approximation) D (Detail), thành phần D khơng quan trọng Thay đổi D ảnh hưởng đến tín hiệu âm gớc 4.2.1 Thuật tốn giấu 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 nửa đoạn trước nửa đoạn sau D h2 = (∑fw fw +1 fw D[i])/( ) fw , h1 = (∑1 D[i])/(fw/2) (4.7) Bước 2) Tính giá trị lệch giá trị trung bình 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 k> d/2 b=0 k