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 (DFT)
2.1.1.2 Phép biến đổi wavlet (DWT)
2.1.2 Xáo trộn dữ liệu
Mục đích của việc xáo trộn dữ liệu là gây khó khăn cho người thám tin,
làm cho họ khó khôi phục lại tin mật nếu biết thuật toán 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 Kỹ thuật sinh chuỗi giả ngẫu nhiên
Các phương pháp giấu tin thường dùng kết hợp với các chuỗi ngẫu
nhiên để thực hiện giấu tin. Chẳng hạn như kỹ thuật trải phổ.
2.1.3.1 Bộ sinh đồng dư (congruential generator)
2.1.3.2 Bộ sinh Fibonacci
2.1.3.2 Bộ sinh số Mersenne Twister
2.2 Đánh giá các phương pháp giấu tin trong audio
27 trang |
Chia sẻ: lavie11 | Lượt xem: 747 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Tóm tắt Luận án Bảo mật dữ liệu bằng kỹ thuật giấu tin trong audio, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ình 1.1. Sơ đồ trao đổi thông tin có dùng mã hoá.
Mã hóa hoặc mật mã hóa dữ liệu là cơ chế chuyển đổi dữ liệu từ bản rõ
sang một định dạng khác không thể đọc được gọi là bản mã để có thể ngăn
cản những truy cập bất hợp pháp khi dữ liệu trao đổi thông tin. Có hai loại mã
hóa chính là mã hóa khóa đối xứng và mã hóa khoá công khai.
1.2.1 Mã hóa khóa đối xứng
1.2.2 Mã hóa khoá công khai
1.3. Giấu thông tin
Giấu thông tin là một kỹ thuật nhúng (giấu) một lượng thông tin số nào
đó vào trong một đối tượng dữ liệu số khác. Giấu thông tin nhằm hai mục
đích, một là bảo mật cho dữ liệu được đem giấu, hai là bảo mật cho chính đối
tượng được dùng để giấu tin.
4
1.3.1 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 phần chính sau đây:
+ Thông điệp mật (secret message).
+ Dữ liệu chứa hay môi trường sẽ chứa tin mật (host signal).
+ Khoá viết mật K, tham gia vào quá trình giấu tin để tăng tính bảo mật.
+ Dữ liệu chứa tin mật hay môi trường đã chứa tin mật (stego signal).
Sơ đồ của một hệ giấu tin như sau :
Hình 1.5. Sơ đồ của hệ giấu tin số.
1.3.2 Phân loại giấu tin
Các kỹ thuật giấu thông tin được phân biệt nhau bởi những đặc trưng,
tính chất và ứng dụng. Ví dụ ta có thể phân loại các kỹ thuật giấu tin theo
miền xử lý, kiểu tài liệu và theo khả năng tri giác của con người.
1.3.3 Các tính chất hệ giấu tin.
1.3.3.1 Tính “vô hình” (Tính bí mật)
1.3.3.2 Khả năng chống giả mạo (Tính toàn vẹn)
1.3.3.3 Tính bền vững
1.3.3.4 Dung lượng tin giấu
1.3.3.5 Độ phức tạp tính toán
1.3.4 Tấn công hệ thống giấu tin.
Tấn công một hệ giấu tin là các phương pháp để phát hiện, phá huỷ,
trích rút hay sửa đổi tin mật. Sau đây là một số dạng tấn công.
1.3.4.1 Phân tích file chứa tin
Quá trình
Giấu tin
Quá trình
Giải tin
Khoá K Khoá K
Host Signal
Stego Signal
Network
Secret message
Host Signal
Secret message
5
1.3.4.2 Đối sánh với dữ liệu gốc
1.3.4.3 Định dạng lại
1.3.4.4 Tấn công theo kiểu nén
1.3.5 Các ứng dụng của giấu tin
1.3.5.1 Liên lạc bí mật
1.3.5.2 Bảo vệ bản quyền (copyright protection)
1.3.5.3 Nhận thực hay phát hiện xuyên tạc thông tin (authentication and
tamper detection)
1.3.5.4 Giấu vân tay hay dán nhãn (fingerprinting and labeling)
1.3.5.5 Điều khiển sao chép (copy control)
1.4 Giấu tin trong audio
Giấu tin trên audio tập trung khai thác khả năng cảm nhận của hệ thính
giác người (Human Auditory System).
Hình 1.9. Hệ thống thính giác của con người.
1.4.1 Ngưỡng nghe
Phạm vi nghe của tai người trong khoảng từ 20Hz đến 20 kHz nhưng
nghe rõ nhất đối với âm thanh trong phạm vi từ 1kHz đến 4kHz.
1.4.2 Hiện tượng masking
Hiện tượng che khuất tín hiệu âm thanh (auditory masking) xảy ra khi
một âm thanh này ảnh hưởng đến sự cảm nhận của âm thanh khác. Âm thanh
bị che gọi là maskee, âm thanh che là masker. Hiện tượng masking xảy ra trên
cả miền thời gian lẫn miền tần số.
6
1.5 Biểu diễn âm thanh trên máy tính
1.5.1 Biểu diễn âm thanh số
Để lưu trữ, xử lý âm thanh bằng máy tính, các tín hiệu âm thanh cần
phải được chuyển từ dạng tương tự sang dạng số. Hình 1.17 thể hiện quá trình
lấy mẫu, lượng tử hoá khi chuyển tín hiệu ở dạng tương tự sang dạng số.
Hình 1.17. Lượng tử hoá và biểu diễn dạng số tín hiệu tương tự
1.5.2 Các định dạng âm thanh phổ biến trên các nền tảng máy tính
Các phương pháp giấu tin phụ thuộc vào định dạng âm thanh, kiểu âm
thanh trên các nền tảng khác nhau. Ngoài ra tỉ lệ dữ liệu giấu cũng phụ thuộc vào
file âm thanh ở dạng nén hay ở dạng thô.
1.6 Một số chương trình giấu tin trên audio.
Có nhiều chương trình cho phép giấu tin trong audio như MP3Stego, OpenPuff.
Tổng kết chương 1
Trong chương 1 trình bày tổng quan về an toàn thông tin và các khái
niệm liên quan bài toán giấu tin, phân loại giấu tin và các ứng dụng của giấu
tin. Trong chương này cũng trình bày về đặc tính của hệ thống thính giác của
con người, cách biểu diễn âm thanh trên máy tính, các định dạng âm thanh và
một số phần mềm giấu tin vào dữ liệu audio đã triển khai trong thực tế.
7
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 (DFT)
2.1.1.2 Phép biến đổi wavlet (DWT)
2.1.2 Xáo trộn dữ liệu
Mục đích của việc xáo trộn dữ liệu là gây khó khăn cho người thám tin,
làm cho họ khó khôi phục lại tin mật nếu biết thuật toán 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 Kỹ thuật sinh chuỗi giả ngẫu nhiên
Các phương pháp giấu tin thường dùng kết hợp với các chuỗi ngẫu
nhiên để thực hiện giấu tin. Chẳng hạn như kỹ thuật trải phổ.
2.1.3.1 Bộ sinh đồng dư (congruential generator)
2.1.3.2 Bộ sinh Fibonacci
2.1.3.2 Bộ sinh số Mersenne Twister
2.2 Đánh giá các phương pháp giấu tin trong audio
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 dữ liệu
mật vào và được tính theo thang độ decibel.
(2.5)
2.2.1.2 Độ đo MSE (Mean Squared Error)
MSE dùng để đo độ méo (distortion) của âm thanh. Nó được tính theo
(2.6), trong đó x(n) là âm thanh gốc và y(n) là âm thanh chứa tin giấu.
(2.6)
8
2.2.1.3 Khoảng cách Czenakowski (Czenakowski Distance)
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 cuối cùng của mẫu
dữ liệu bằng các bit cần giấu để giấu tin.
0 1 0 1 1 1 1 0
Sau khi giấu bit 1 sẽ như sau:
0 1 0 1 1 1 1 1
Hình 0.1. Đ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ẻ cũng 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)
Phương pháp mã hoá pha giấu tin thông qua việc thay thế pha của một
segment audio ban đầu bằng một pha tham chiếu thể hiện dữ liệu.
Hình 2.9 Sự dịch chuyển pha của tín hiệ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 nhúng tin vào một tín hiệu âm thanh gốc
bằng cách thêm tiếng vọng vào tín hiệu gốc. Ta có công thức giấu như sau:
(2.9)
2.3.5 Phương pháp trải phổ
2.3.6 Phương pháp điều chỉnh biên độ
Trong phương pháp này, thông tin được nhúng bằng cách thay đổi năng
lượng của 2 hay 3 khối (block).
9
2.3.7 Phương pháp lượng tử hoá (Quantization)
Phương pháp lượng tử hoá sẽ thay thế giá trị một mẫu x thành y để giấu
tin. Công thức điều chỉnh x thành y như sau:
(2.16)
2.3.8 Điều chế tỉ lệ thời gian
Ý tưởng cơ bản của phương pháp này là thay đổi tỉ lệ thời gian giữa hai
cực đang xét để giấu tin.
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 hai của luận án đã trình bày về các kỹ thuật bổ trợ cho giấu tin
trong audio, các kỹ thuật xáo trộn dữ liệu nhằm mục đích thay đổi thứ tự các
bit dữ liệu mật khi giấu vào tín hiệu âm thanh, các kỹ thuật sinh số ngẫu
nhiên, các phương pháp giấu và các tiêu chí đánh giá các thuật toán giấu tin.
Chương 3 MỘT SỐ THUẬT TOÁN GIẤU TIN TRÊN MIỀN THỜI GIAN
3.1 Phương pháp giấu tin kết hợp mã Hamming
Kỹ thuật giấu tin được kết hợp với các kỹ thuật mã hoá Hamming như
là một cải tiến 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 hỗ trợ xác thực
Với mỗi nhóm 4 bit dữ liệu, mã Hamming thêm 3 bit kiểm tra. Thuật
toán (7,4) của Hamming có thể sửa chữa bất cứ một bit lỗi nào, và phát hiện
tất cả lỗi của 1 bit, và các lỗi của 2 bit gây ra [75]. Mã Hamming dùng hai ma
trận G và H để mã hoá và kiểm tra lỗi.
3.1.2 Quá trình giấu tin
Đầu vào: - File âm thanh gốc C
- Chuỗi bit M cần giấu có độ dài L (L là bội số của 8)
Đầu ra: - File âm thanh chứa tin giấu C’.
10
Bước 1) Mã hóa
Bước 2) Giấu tin
- Đọc file chứa C, trích phần header và phần dữ liệu.
- Kiểm tra file chứa có đủ để giấu chuỗi bit M’ không. Nếu không đủ
thì thì dừng và báo không giấu được. Ngược lại sẽ ghi header của
vào C’ sau đó thực hiện giấu từng bit của chuỗi M’ vào phần dữ liệu
của C để ghi ra C’ như sau :
+ Trích tuần tự 3 mẫu dữ liệu của C và tính tổng. Nếu bit đang
xét của M’ là 1 mà tổng lẻ thì không phải phải làm gì, ngược lại điều
chỉnh mẫu số 2 của 3 mẫu đang xét để cho tổng là số lẻ. Nếu bit
đang xét của M’ là 0 mà tổng chẵn thì không phải phải làm gì, ngược
lại điều chỉnh mẫu thứ 3 (hoặc mẫu thứ 1) của 3 mẫu đang xét để
cho tổng là số chẵn.
+ Ghi 3 mẫu đang xét ra file C’.
- Lặp lại hai bước con trên bước trên cho đến khi toàn bộ các bit của
chuỗi M’ đã được giấu.
- Ghi các mẫu còn lại từ C vào C’ và kết thúc.
3.1.3 Quá trình giải tin xác thực tin giấu
Đầu vào: - File âm thanh chứa tin giấu C’, độ dài chuỗi bit cần lấy.
Đầu ra: - Chuỗi bit M cần lấy, hoặc kết luận không lấy tin.
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 đã được biết trước, ta tiến hành
trích chuỗi bit từ dữ liệu 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, tiến hành nhân từng đoạn này với
H để kiểm tra có lỗi hay không. Nếu không có lỗi hoặc lỗi có thể sửa được thì
trích các bit trong mỗi đoạn, ngược lại không thì không lấy tin.
11
Hình 3.3 dưới đây là thử nghiệm giấu 100 byte dữ liệu vào file âm thanh file
WindowsLogOn.wav, hình minh hoạ cho đoạn đầu gồm 10000 mẫu.
Hình 3.3 Dữ liệu âm thanh gốc (trên) và dữ liệu có chứa tin mật (dưới)
3.1 Phương pháp giấu điều chỉnh giá trị nhóm bit
Quá trình giấu tin cũng gồm 2 giai đoạn. Giai đoạn 1 sẽ dùng khoá mật
K để sinh ra chuỗi ngẫu nhiên gồm L số, trong đó L là chiều dài chuỗi bit mật.
Giai đoạn 2 sẽ giấu lần lượt từng bit của chuỗi tin mật vào trong file âm thanh
dựa vào chuỗi ngẫu nhiên đã sinh. Việc giấu tin dựa vào chuỗi ngẫu nhiên
nhằm mục đích tăng cường tính mật cho tin giấu trong dữ liệu audio.
3.2.1 Sinh chuỗi ngẫu nhiên
Khoá K gồm ba số (x, y, N) sẽ được dùng như số mồi và hệ số trong
công thức sinh để sinh chuỗi S, chuỗi ngẫu nhiên gồm L số. Công thức (3.3)
dùng để sinh dãy SRN:
(3.3)
3.2.2 Điều chỉnh độ lệch bit
Nếu đổi bit ở vị trí 3 từ 0 thành 1, ta sẽ đổi các bit ở vị trí 2 và ở vị trí 1
thành 0 và nếu đổi bit ở vị trí 3 từ 1 thành 0 ta sẽ đổi các bit ở vị trí 2 và ở vị
trí 1 thành 1. Tương tự, nếu đổi bit ở vị trí 2 từ 0 thành 1, ta sẽ đổi bit ở vị trí
1 thành 0 và nếu đổi bit ở vị trí 2 từ 1 thành 0 ta sẽ đổi bit ở vị trí 1 thành 1.
3.2.3 Thuật toán giấu tin
Đầu vào: - File âm thanh A, chuỗi M có độ dài L, khoá K gồm ba số (x, y, N).
12
Đầu ra: - File âm thanh A’ có chứa chuỗi bit M.
Bước 1) Chuẩn bị:
Dựa vào khoá (x, y, N) sinh ra mảng S[] cho biết mẫu dữ liệu được chọn để
giấu tin và mảng V[] cho biết vị trí bit sẽ được giấu trong mỗi mẫu.
Bước 2) Giấu tin
- Đọc file dữ liệu âm thanh, dựa vào mảng S[] để chọn mẫu cần giấu.
- Dựa vào mảng V[] để biết vị trị bit giấu.
- 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)
Sau khi giấu xong, ta dùng các ký hiệu đánh dấu kết thúc tin giấu nhằm phục
vụ cho quá trình giải tin.
3.2.3.1 Sinh mảng S[]
(3.4)
3.2.3.2 Sinh mảng V[]
(3.5)
3.2.4 Quá trình giải tin
Đầu vào: File âm thanh A’ chứa tin giấu, khoá K gồm ba số (x, y, N), độ dài L
của chuỗi bit cần lấy.
Đầu ra: Chuỗi bit M được giấu.
Bước 1) Chuẩn bị: Sinh mảng V[] và S[]
Bước 2) Giải tin
Đọc file dữ liệu âm thanh A’, dựa vào mảng S[] để chọn mẫu có chứa bit
thông tin giấu, dựa vào mảng V[] để lấy bit thứ i của mẫu tin giấu.
3.2.5 So sánh với phương pháp LSB nguyên thuỷ
3.2.5.1 Chi phí thời gian giấu tin và giải tin
So với kỹ thuật LSB, phương pháp này cần phải tốn thời gian cho việc sinh
chuỗi giả ngẫu nhiên, chuỗi S[] và chuỗi V[] và phải tốn chi phí thời gian cho
việc điều chỉnh bit để giảm độ chênh lệch giá trị trước và sau khi giấu.
13
3.2.5.2 Tỉ lệ dữ liệu giấu
So với phương pháp LSB nguyên thuỷ này có tỉ lệ dữ liệu giấu chỉ bằng ¼.
3.2.5.3 Độ mật của kỹ thuật
3.3. Phương pháp điều chỉnh 2 mẫu trong một đoạn khối 25 mẫu
3.3.1 Xáo trộn dữ liệu
Để xáo trộn dữ liệu, luận án đề xuất cách sử dụng phép biến đổi Arnold.
3.3.2 Thuật toán giấu 4 bit trong khối 25 mẫu dữ liệu
Đầu vào:
- Khối dữ liệu chứa F có kích thước 5*5, 4 bit mật b1b2b3b4 cần giấu.
Đầu ra: - Khối dữ liệu chứa tin mật F’.
Bước 1) Xây dựng ma trận A từ các LSB của 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 exclusive-or 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 exclusive-or tất cả các
phần tử của mỗi cột để được c1c2c3c4.
Bước 4) Thực hiện exclusive-or kết quả trong bước 2 và bước 3 để có s1s2s3s4
trong đó s1=r1 XOR c1, s2=r2 XOR c2 và tương tự như vậy.
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 không có
sự khác nhau thì không cần phải điều chỉnh trên khối bit A. Ngược lại, cần xét
các trường hợp sau:
• Nếu có khác nhau 1 bit bi tại vị trí i thì A[i][5] được điều chỉnh lật.
• Nếu có 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 khối F’.
14
Ví dụ ta có đoạn audio gồm 25 mẫu có giá trị như hình 3.10 (tương ứng với
ma trận F và ma trận A)
Hình 3.10 Ma trận F và A tương ứng từ các mẫu dữ liệu
Ta tính các vector r, c, s như các hình sau:
Hình 3.11 Kết quả XOR 4 cột đầu tiên của từng hàng
Hình 3.12 Kết quả XOR 4 dòng đầu tiên của từng cột
Hình 3.13. Kết quả XOR của chuỗi C và chuỗi R
Nếu ta cần giấu bốn bit 1100, có 3 bit khác nhau với S ở vị trí 1, 2 và 3, vì thế
ta lật giá trị ô A[1][2] A[3][5]. Kết quả điều chỉnh như trong hình 3.16.
Hình 3.14. Kết quả giấu 4 bit 1100 trong khối F.
3.3.3 Thuật toán giấu tin
Đầu vào: - File âm thanh gốc F, khoá mật K, thông điệp mật M.
Đầu ra: - File âm thanh chứa tin mật F’.
18 39 65526 8 65526
20 27 40 50 18
37 42 4 78 65519
46 65514 29 65508 31
65500 5 65486 0 65482
0 1 0 0 0
0 1 0 0 0
1 0 0 0 1
0 0 1 0 1
0 1 0 0 0
r1 r2 r3 r4
1 1 0 0
c1 c2 c3 c4
1 1 1 0
s1 s2 s3 s4
0 0 1 0
18 38 65526 8 65526
20 27 40 50 19
37 42 4 78 65518
46 65514 29 65508 31
65500 5 65486 0 65482
0
0
0 0 0
0 1 0 0 1
1 0 0 0
0
0 0 1 0 1
0 1 0 0 0
15
Bước 1) Xáo trộn chuỗi M
Bước 2) Chia dữ liệu file âm thanh thành các segment gồm 25 mẫu, sau đó
chuyển sang các khối vuông Fi kích thước 5*5.
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 lần lượt 4 bit của M’ giấu vào mỗi khối Fi, sử dụng sơ
đồ giấu MCPT trên.
Bước 4) Chuyển tất cả các khối Fi sang lại dạng vector và ghi ra file F’. Ghi
các mẫu còn lại từ F vào F’.
3.3.4 Thuật toán giải tin
Thuật toán giải tin gồm hai bước. Đó là tách các bit trong khối rồi thực hiện
việc khôi phục lại chuỗi bit.
3.3.5 Kết quả thử nghiệm và đánh giá
Kết quả thử nghiệm cho thấy file chứa tin và file gốc có cùng ảnh hưởng đến
hệ thống thính giác con người, không thể phân biệt được sự khác nhau.
3.4. Phương pháp điều 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ị
3.4.2 Tính tổng XOR của đoạn
Giá trị này được đặt tên là HD_sum.
Đầu vào: Đoạn S gồm 256 mẫu chứa giá trị nguyên,
Đầu ra: Một số nguyên được gọi là HD_sum của đoạn S.
Bước 1) Từ mảng S ta xác định mảng Q có cùng kích thước với S, 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;
Ở đây XOR là phép toán XOR (exclusive-or).
3.4.3. Thuật toán giấu một byte dữ liệu vào trong khối 256 mẫu.
Đầu vào: - Đoạn dữ liệu chứa 256 mẫu (S[0..255]) và byte cần giấu p.
16
Đầu ra: - Đoạn chứa tin (stego - segment) S[0..255].
Bước 1) Tính HD_sum của đoạn S: h=HD_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ì không cần phải điều chỉnh mẫu nào trong đoạn S.
Nếu giá trị pos > 0 thì cần phải điều chỉnh mẫu tại vị trí pos tham gia
trong quá trình tính HD_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.
Thuật toán giấu tin trong file: Giấu lần lượt từng byte vào các khối.
Thuật toán giải tin
Đầu vào: - File chứa tin mật, khoá (k, d) và q là số byte cần lấy.
Đầu ra: - Thông điệp mật M.
Bước 1) Lấy h= ddq */ đoạn từ file 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] =HD_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 toán đã trình bày ở mục 3.4.1.
3.5. Phương pháp điều chỉnh tiếng vọng
3.5.1 Sơ đồ giấu của Rios Chavez
3.5.2 Đánh giá kỹ thuật đề xuất bởi Rios Chavez
Có thể nhận tin sai và thời gian tính toán lớn, có thể giảm xuống.
3.5.3. Kỹ thuật điều chỉnh tiếng vọng
3.5.3.1. Thêm tiếng vọng dựa vào số ngẫu nhiên
Công thức để thêm tiếng vọng
Để thêm tiếng vọng vào trong đoạn, ta sử dụng công thức (3.11) như sau:
17
(3.11)
3.5.3.2 Thuật toán giấu
Đầu vào: - File audio gốc C, chuỗi bit W có độ dài L, khoá (a, b) và số N
Đầu ra: - File 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 khoá theo công thức (3.9), (3.10).
Bước 2) Chia dữ liệu trên file 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 file S và chép các mẫu còn lại từ C sang S.
3.5.3.3 Thuật toán giải tin
Đầu vào: - File chứa tin S, file gốc C, khoá (a, b) và số 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 khoá theo công thức (3.9), (3.10).
Bước 2) Chia dữ liệu file chứa tin giấu S và file 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 bước 3 tuần tự cho các đoạn dữ liệu Ci ,Si cho đến khi lấy đủ L bit.
3.5.4. Kết quả thử nghiệm và đánh giá
Kết quả đánh giá mức độ nhận biết cho thấy kỹ thuật này không gây ra
bất kỳ hiệu ứng nào khi nghe giữa file trước và sau khi giấu tin.
18
Tổng kết chương 3
Trong chương 3 đã trình bày các thuật toán giấu tin trong file âm thanh.
Đây là các thuật toán giấu trên miền thời gian. Các thuật toán đề xuất cách kết
hợp với mã Hamming nhằm mục đích giảm thiểu nhận tin sai nếu file chứa tin
bị tấn công, cách điều chỉnh bit nếu như giấu ở các bit cao chứ không phải
LSB. Ngoài ra chương này cũng đề xuất cách giấu dựa vào đặc tính của đoạn
dữ liệu, cải tiến cách giấu dùng phương pháp điều chỉnh tiếng vọng.
Chương 4 MỘT SỐ THUẬT TOÁN GIẤU TIN TRÊN MIỀN BIẾN ĐỔI
4.1 Phương pháp điều chỉnh các hệ số trên miền biến đổi FFT
4.1.1 Điều chỉnh giá trị trong miền tần số
Mỗi một đoạn Y có kích thước gồm fw mẫu sẽ được thực hiện phép
biến đổi FFT. Phép biến đổi Fourier đã được trình bày ở chương 2.
)(YFFTFY (4.1)
Sau khi thực hiện phép biến đổi FFT, giá trị FY nhận được là dãy các số phức.
Số phức có thể thể biểu diễn lại trong hệ toạ độ cực bằng công thức
sau: )sin(cos irz (4.2)
Nếu thay đổi r thành r’ thì
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
Đầu vào: Số phức z, bit thông tin mật cần giấu Mj, giá trị d.
Đầu ra: Số phức z’.
Bước 1) Tính biên độ và pha của z: amp = abs(z); phase= angle(z);
Bước 2) Điều chỉnh giá trị r để giấu Mj
Nếu Mj==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 và trả về:
19
r’=complex(amp*cos(phase),amp*sin(phase)); return r’;
4.1.3 Thuật toán giấu
Đầu vào: Vector Y chứa các mẫu, chuỗi bit M có độ dài q, giá trị d, k, fw.
Đầu vào: Vector Y’ chứa tin mật.
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ố. Tính FYk = FFT (Yk).
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 các bit không. Nếu thoả điều kiện giấu thì giấu.
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’.
4.1.4 Thuật toán lấy 1 bit mật từ 1 mẫu.
Đầu vào: Số phức z, số d.
Đầu ra: Số nhị phân Mi.
Bước 1) Tính biên độ (amplitude) của z: amp = abs(z);
Bước 2) Lấy bit Mi dựa vào Ri
Nếu mod(amp,d)>d/2 thì Mi =1 Ngược lại Mi =0
Bước 3) return Mi
Thuật toán giải tin
Đầu vào: Vector Y’ chứa tin mật, độ dài chuỗi bit cần lấy q, số d, k, fw.
Đầu ra: Chuỗi bit mật M.
Bước 1) Chia Y’ thành các đoạn có cùng số mẫu là fw.
Bước 2) Thực hiện FFT trên các đoạn Y để chuyển sang miền tần số:
FYk = FFT (Yk).
Tính biên độ cho đoạn và gán số bit đã nhận được h=0;
20
Bước 3) Đối với mỗi đoạn FYk, kiểm tra đoạn có chứa tin hay không dựa vào
cách tính như trong quá trình giải tin. 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 );
Bước 4) return M.
Kết quả thử nghiệm và đánh giá
Các kết quả thử nghiệm cho thấy quá trình giấu và rút trích thông tin
hoàn toàn chính xác, không phân biệt được khi nghe file âm thanh gốc và file
chứa tin. So với phương pháp giấu trên miền thời gian, phương pháp này có
thể chịu được tấn công thêm nhiễu trắng. Nếu tỉ lệ gây nhiễu lớn hơn 90 thì
không ảnh hưởng đến tin mật trong quá trình giải tin.
4.2 Phương pháp giấu tin trên miền biến đổi wavelet
4.2.1 Thuật toán giấu 1 bit
Đầu vào: - Dãy D gồm fw phần tử D[1..fw], bit cần giấu b, số thực d.
Đầu ra: - Dãy D đã được điều chỉnh để chứa bit mật b.
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.
(4.7)
Bước 2) Tính giá trị lệch giá trị trung bình giữa hai đoạn, theo modulo d:
Bước 3) Điều chỉnh giá trị để giấu bit b:
Nếu b=1 và k> d/2 hoặc b=0 và k<= d/2 thì return;
Ngược lại:
Nếu b=1 thì cộng d/2 cho nữa đoạn trước: D[i]= D[i] + d/2, với i=
1 đến fw/2
Ngược lại thì cộng d/2 cho nữa đoạn sau D[i]= D[i] + d/2, với i=
fw +1 đến fw
21
4.2.2. Thuật toán trích 1 bit
Đầu vào: - Dãy D gồm fw phần tử D[1..fw], số thực d.
Đầu ra: - Bit mật b.
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
theo công thức (4.7)
Bước 2) Tính giá trị lệch giá trị trung bình giữa hai đoạn, theo modulo d:
Bước 3) Trích bit b: Nếu k> d/2 thì b=1 ngược lại b=0
4.2.3 Thuật toán giấu tin
Đầu vào: - Khoá K, file gốc H, chuỗi bit mật M.
Đầu ra: - File chứa tin mật S.
Phương pháp:
Bước 1) Dùng khoá K để sinh ra chuỗi nhị phân ngẫu nhiên R.
Bước 2) Biến đổi chuỗi bit mật M thành M’ dựa vào R, trong đó:
(4.8)
Bước 3) Đọc dữ liệu các mẫu từ file audio H vào mảng y. Thực hiện biến đổi
wavelet cho dãy y.
Bước 4) Chia dãy D thành các đoạn có cùng kích thước fw và điều chỉnh
các đoạn giấu lần lượt từng phần tử vào các đoạn , ta được .
Bước 5) Biến đổi wavelet ngược [A, D’] để có được y’ và ghi y’ ra file S.
4.2.4 Thuật toán trích tin
Đầu vào: - Khoá K, file chứa tin S.
Đầu ra: - Chuỗi bit mật M.
Bước 1) Đọc dữ liệu các mẫu từ file audio S vào mảng y. Thực hiện biến đổi
wavelet cho dãy y.
22
Bước 2) Chia dãy D thành các đoạn có cùng kích thước fw và lấy lần lượt
từng phần tử từ các đoạn theo thuật toán trích bit.
Bước 3) Dùng khoá K để sinh ra chuỗi nhị phân ngẫu nhiên R.
Bước 4) Biến đổi chuỗi M’ thành M dựa vào R theo công thức 4.8 và trả về.
4.2.5 Kết quả thử nghiệm
Trong phần thử nghiệm, chúng tôi chọn các file âm thanh mono 16 bit, giá
trị d là 0.1. Chúng tôi thực hiện tấn công thêm nhiễu và thay đổi số bit biểu
diễn tín hiệu (16 bit xuống 8 bit) để kiểm tra tính bền vững của kỹ thuật đề
xuất. Kết quả thử nghiệm cho thấy tấn công thay đổi số bit biểu diễu mẫu
không ảnh hưởng đến tin giấu trong khi phép thê
Các file đính kèm theo tài liệu này:
- tt_bao_mat_du_lieu_bang_ky_thuat_giau_tin_trong_audio_1287_1920315.pdf