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.
23 trang |
Chia sẻ: honganh20 | Ngày: 02/03/2022 | Lượt xem: 388 | Lượt tải: 0
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:
- tom_tat_luan_an_mot_so_ky_thuat_giau_tin_trong_am_thanh_so.pdf