Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh Các phương pháp giấu tin trong âm thanh
Trang 1-🙞🙞🙞🙞🙞 -AN TOÀN PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN: TS ĐỖ XUÂN CHỢ
SINH VIÊN THỰC HIỆN ĐÀO TUẤN ANH B16DCAT002
LÊ NGỌC KHOA B16DCAT086
ĐẶNG ANH PHONG B16DCAT122
TẠ TẤT THÀNH B16DCAT149 NGUYỄN NGỌC PHI YẾN B16DCAT178
Hà Nội, tháng 11/2020 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN I
Trang 2Mục lục
Mục lục 2
I Giấu tin trong âm thanh sử dụng phương pháp mã hóa pha (Lê Ngọc Khoa, Đặng Anh Phong) 3 1 Phương pháp mã hóa pha thông thường 3
1.1 Các bước cụ thể của phương pháp giấu tin sử dụng mã hóa pha 5
1.2 Giải mã 8
2 Phương pháp mã hóa pha trên tần số cường độ cao[1, 2, 3] 9
2.1 Các bước giấu tin sử dụng phương pháp mã hóa pha trên các tần số năng lượng cao: 11
2.2 Trích xuất thông tin được giấu 15
3 Đánh giá về phương pháp mã hóa pha 15
4 Demo kỹ thuật giấu tin sử dụng phương pháp mã hóa pha 16
II Giấu tin trong âm thanh sử dụng phương pháp tự đánh dấu (Đào Tuấn Anh) 21
1 Kỹ thuật điều chỉnh tỉ lệ thời gian 22
2 Kỹ thuật dựa vào các đặc trưng quan trọng nhất 26
III Giấu tin trong âm thanh sử dụng Echo (Tạ Tất Thành, Nguyễn Ngọc Phi Yến) 32
1 Giấu tin trong âm thanh sử dụng phương pháp Echo 32
1.1 Khái niệm 32
1.2 Quy trình giấu tin 34
1.3 Quy trình tách tin 38
1.4 Đánh giá phương pháp giấu tin trong âm thanh sử dụng Echo 41
1.5 Ứng dụng của giấu tin trong âm thanh sử dụng Echo 42
2 Các kiểu giấu tin trong âm thanh sử dụng tiếng vọng 43
2.1 Giấu Echo lưỡng cực (Bipolar Echo Hiding - BEH) 43
2.2 Giấu Echo trước sau (Backward-Forward Echo Hiding - BFEH) 43
2.3 Giấu Echo lưỡng cực trước sau (Bipolar Backward Forward Echo Hiding - BBFEH) 44
2.4 Giấu Echo lan truyền theo thời gian (Time-spread Echo Hiding-TSEH) 44
3.Demo kỹ thuật giấu tin bằng phương pháp Echo 45
3.1 Các hàm chính trong Demo: 45
3.2 Demo giấu tin 46
3.3 Demo tách tin 49
TÀI LIỆU THAM KHẢO 51
Trang 3I Giấu tin trong âm thanh sử dụng phương pháp mã hóa pha
(Lê Ngọc Khoa, Đặng Anh Phong)
1 Phương pháp mã hóa pha thông thường
Mã hóa pha là một phương pháp dựa vào đặc tính tai người không phân biệt được sự khác nhau về pha của hai tín hiệu âm thanh Việc giấu tin được thực hiện thông qua việc thay thế pha của một đoạn(segment) âm thanh ban đầu bằng một pha tham chiếu
(referency phase) thể hiện dữ liệu Pha của các đoạn tiếp theo sẽ được điều chỉnh sao cho
độ chênh lệch pha giữa các đoạn là không đổi
Giả sử ta có hai chuỗi x(t) và y(t) như sau:
x(t)= A cos (2 πft+φ)
y(t)=A sin(2 πft+φ)= A cos (2 πft+φ− π2)
Trong đó A là biên độ, f là tần số và là pha Thuật ngữ pha được hiểu theo nghĩa đó là tham chiếu đến một tín hiệu khác Ví dụ nếu them chiếu đến tín hiệu thì tín hiệu x(t) có pha là và tín hiệu y(t) có pha là -π2 [1]
Hình 1 Sự dịch chuyển pha của tín hiệu
Trang 4Sơ đồ thuật toán:
Với dãy N số phức: x0,x1,…, x(N-1) sẽ được biến đổi thành chuỗi X0, X1,…,X(N-1) theo công thức sau:
X k=∑
n=0
N −1
x n e −2πi N knk=0, …… , N−1
Những phương trình này có thể được mô tả như sau: Các số phức Xk đại duện cho biên
độ và pha ở các bước sóng khác nhau của tín hiệu vào xn Phép biến đổi DFT tính các giátrị Xk từ các giá trị xn Khi viết dưới dạng tọa độ, ta thu được biên độ Ak/N và pha k từ modules và argument của Xk
Chia dữ liệu âm
thanh thành N
đoạn bằng nhau
Áp dụng công thức DFT cho từng đoạn Lưu độ lệch pha giữahai pha bất kì
Nhúng dữ liệu: bit 1 hoặc 0 đại diện cho
lớn để tái tạo lai tín
hiệu sử dụng biến đổi
DFT nghịch đảo
Tín hiệu sau khi
được giấu tin
Trang 51.1 Các bước cụ thể của phương pháp giấu tin sử dụng mã hóa pha
Bước 1: Chia âm chuỗi âm thanh s[i] với 0<= i <= N, thành N đoạn bằng nhau có độ dài
L (0<=i <= N)
Âm thanh gốc
S
Trang 7Thay thế các phần tử của chuỗi pha đầu tiên φ0 bằng φ data [ j] với j∈ {1,…, m} như sau:
Đây là 3 phần tử đầu tiên của φ ′ sau bước này:
(Lưu ý cách mã hóa d đã ảnh hưởng đến các khối tiếp theo)
Bước 6: Sử dụng ma trận pha sau khi pha được dịch chuyển và ma trận độ lớn tín hiệu
gốc để xây dựng lại âm thanh bằng cách sử dụng biến đổi nghịch DFT [3]
S0
Trang 81.2 Giải mã
Đối với quá trình giải mã, việc đồng bộ hóa trình tự được thực hiện trước khi giải mã Chiều dài của phân đoạn, các điểm DFT và khoảng dữ liệu phải được biết ở người nhận Giá trị pha của phân đoạn đầu tiên được phát hiện là 0 hoặc 1, đại diện cho chuỗi nhị phân được mã hóa
Vì φ′0 (ωk) được sửa đổi, pha của các phân đoạn sau được sửa đổi tương ứng Tuy nhiên,
độ lệch pha tương đối của mỗi bên khung được giữ nguyên Đó là sự khác biệt tương đối này trong giai đoạn mà tai nhạy cảm nhất
Đánh giá
Sự thay đổi pha là một biến dạng do sự phá vỡ mối quan hệ của các pha giữa mỗi thành phần tần số Giảm thiểu sự thay đổi pha hạn chế tốc độ dữ liệu của mã hóa pha Một nguyên nhân của sự thay đổi pha là sự thay thế của pha φ′0 (ωk) với mã nhị phân Độ lớn của bộ điều chỉnh pha cần phải gần với giá trị ban đầu để giảm thiểu sự biến dạng Sự khác biệt giữa các trạng thái bộ điều chỉnh pha nên được tối đa hóa để giảm thiểu tính nhạy cảm của mã hóa tiếng ồn Trong biểu diễn pha đã sửa đổi của chúng tôi, một bit 0 là
Trang 9Một nguồn thay đổi khác là tốc độ thay đổi của bộ điều chỉnh pha Nếu thay đổi được áp dụng cho mọi khối của DFT nó có khả năng phá vỡ mối quan hệ giai đoạn của các thành phần tần số lân cận, dẫn đến một nhịp mẫu Bằng cách thay đổi giai đoạn chậm hơn và chuyển đổi giữa các giai đoạn thay đổi, độ méo âm thanh được giảm đáng kể Trong dướiđây, một so với chuyển tiếp mượt mà được minh họa Trong Hình A, các cạnh của quá trình chuyển pha sắc nét, gây ra biến dạng đáng chú ý Trong Hình B, sự biến đổi pha diễn ra một cách liên tục giúp giảm những biến dạng chú ý Lưu ý rằng trong mỗi trườnghợp, các điểm dữ liệu xuất hiện ở cùng một nơi Biến thể mượt mà này có nhược điểm của việc giảm băng thông, vì không gian phải được để lại giữa mỗi điểm dữ liệu để cho phép chuyển đổi.
Kết quả: Trong các thử nghiệm của chúng tôi, kênh mã hóa pha công suất thường thay
đổi từ 8 bps đến 32 bps, tùy thuộc vào ngữ cảnh âm thanh Dung lượng kênh ~ 8 bps có thể đạt được bằng cách phân bổ tần số 128 khe cắm mỗi bit trong điều kiện nền nhỏ tiếng
ồn Có thể đạt được công suất từ 16 bps đến 32 bps bằng cách phân bổ 32 đến 64 khe tần
số cho mỗi khe khi có một nền ồn ào [4]
2 Phương pháp mã hóa pha trên tần số cường độ cao[1, 2, 3]
Với sự ra đời của Internet of Things (IoT), bảo mật đặt ra một mối quan tâm quan trọng lớn đối với việc triển khai thực tế của nó Điều cấp thiết là các thách thức bảo mật duy nhất của IoT phải được giải quyết để phát huy hết tiềm năng của các hệ thống IoT Một sơ đồ giấu tin trong âm thanh giúp chống ồn, trên miền tần số cao có khả năng đảm bảo giao tiếp trong mạng IoT
Sơ đồ giấu tin:
Trang 10
Trong các tín hiệu âm thanh được lấy mẫu ở 16 kHz và lượng tử hóa ở 16 bit, các tần
số trong phạm vi từ 50 Hz đến 7 kHz sau đó đủ điều kiện để nhúng dữ liệu Âm thanh được chia thành M khung có độ dài bằng nhau Đối với tần số lấy mẫu là 16 kHz, ví dụ như khung 4 ms tạo ra 64 mẫu Độ phân giải của mỗi thành phần tần số bằng 16000/64 = 250Hz
Do đó, thành phần tần số đầu tiên có thể được sử dụng để ẩn dữ liệu sẽ là 250 Hz thay
vì 50 Hz (tần số bắt đầu của giọng nói dải rộng) Nếu chúng ta xem xét đặc tính đối xứng Fourier của phổ, số tần số chuẩn hóa hoặc số vị trí ẩn dữ liệu trong mỗi khung sẽ từ FHDmin = 1 đến FHDmax = 28 trong dải tần [0,25 7] kHz Trong mỗi vị trí thành phần tần số năng lượng đã chọn, ít nhất một bit từ payload được nhúng
Lý do đằng sau việc sử dụng phổ của tín hiệu để nhúng dữ liệu là việc khai thác thuộc tính tín hiệu theo đó các giá trị nhiễu nhỏ hơn 13 dB so với phổ tín hiệu gốc (tần số giấu tin) là không nghe được đối với tất cả các tần số Điều này sẽ tác động tích cực đến chất lượng âm thanh sau khi giấu tin Một số khái niệm được sử dụng trong phương pháp giấu tin này[3]:
1 Bước FFT: Tín hiệu bao phủ được chia thành M khung có độ dài bằng nhau là (4, 8,
12, 16 hoặc 20) mili giây (ms) Đối với tần số lấy mẫu là 16 kHz, thời gian khung hình 4 ms tạo ra 64 mẫu Tăng kích thước khung hình sẽ làm giảm bước tần số và dẫn đến các ngăn tần số ít năng lượng hơn Vì quá trình nhúng dữ liệu chỉ diễn ra khi năng
Chia thành M khung 4ms, mỗi khung chứa N mẫu Sc(m,n)
Biến đổi FFT với mỗi mẫu Sc(m,k)=FFT(Sc(m,n))
Trang 11lượng thùng cho phép, nên việc lựa chọn thời lượng khung hình ngắn hơn được cho là
sẽ thuận lợi
2 Giới hạn dải giấu tin: Thay đổi vị trí dải ẩn tối thiểu và lớn nhất (FHDmin,
FHDmax) ảnh hưởng đến khả năng giấu tin của thuật toán Phổ cường độ, trong giọngnói, cho thấy các thành phần năng lượng cao ở tần số thấp Do đó, giảm FHDmax hoặc tăng FHDmin có tác động đến khả năng ẩn và chất lượng mật mã
3 Threshold: Chỉ ưu tiên các thành phần tần số cường độ năng lượng cao để ẩn dữ liệu
yêu cầu giá trị ngưỡng nâng cao Giá trị ngưỡng được chọn để thiết lập sự cân bằng giữa khả năng ẩn và chất lượng giọng nói Giá trị ngưỡng cao được kỳ vọng sẽ làm giảm khả năng ẩn của khung nhưng cũng để cải thiện chất lượng lời nói ẩn và ngược lại
4 Mức biến dạng năng lượng được kiểm soát: Mức độ biến dạng năng lượng (∆)
được đặt để áp đặt chất lượng tốt của giọng nói giấu tin Giá trị ∆ trong phương trình (2) để mô hình hóa giới hạn trên của vùng nhúng Trong mô hình này, giá trị ρ ít nhất
là 13 dB Tỷ lệ tín hiệu trên nhiễu (SNR) giữa vật chứa và lời nói giấu tin được tính như sau:
SNR = 10* log10¿S c (m,k)∨¿ 2
∆ (m,k)2 ¿
Hay SNR = 10 * log10(ρ2)=26 dB
Tại phạm vi giá trị ρ đã chọn, tần số giấu tin được bao gồm một cách ngầm định
và tạo ra nhiễu nhúng dữ liệu không nghe được Ngoài ra, giá trị ρ có thể được tăng thêm để cải thiện giá trị SNR Mặt khác, giá trị ∆ có tác động kép lên tín hiệu giấu tin: (1) bảo toàn tính chất thống kê của tín hiệu đã sửa đổi bằng cách định hình nhiễu được tạo ra bởi dữ liệu ẩn thành phổ giống giọng nói và (2) dữ liệu được nhúng bên dưới nó sẽ bảo toàn chất lượng âm thanh sau khi được giấu tin
5 CLSB: giá trị CLSB được chọn để xác định giới hạn dưới của vùng nhúng Nó có thể
được đặt ở lớp LSB đầu tiên để có khả năng ẩn tối đa Nếu bổ sung tiếng ồn được xemxét, CLSB phải được tăng lên
2.1 Các bước giấu tin sử dụng phương pháp mã hóa pha trên các tần số năng lượng cao:
Bước 1: Tín hiệu vào được chia thành M khung 4 ms, mỗi khung chứa N mẫu,
Sc(m,n) với 1 ≤ m ≤ M và 1 ≤ n ≤ N
Bước 2: Sử sụng phép biến đổi nhanh Fourier (FFT), Sc(m,k) =FFT(Sc(m,n))
Nhận thức thính giác của con người có những đặc thù nhất định phải được khai thác để ẩn
dữ liệu một cách hiệu quả Ví dụ, khả năng phân giải âm sắc của chúng ta giảm khi tần số
âm tăng lên Do đó, nó hiệu quả hơn trong việc ẩn dữ liệu ở vùng tần số cao hơn so với vùng tần số thấp
Dải tần được xác định bởi FHDmin ≤ k ≤ FHDmax, trong đó FHDmin và FHDmax là vị trí dải tần nhỏ nhất và lớn nhất, thuật toán này sử dụng thành phần tần số cường độ cao để
Trang 12cố gắng giảm thiểu sự biến dạng nhúng Giá trị ngưỡng được đặt cho mục đích đó nhằm ngăn tần số được chọn chỉ để ẩn dữ liệu nếu cường độ của nó cao hơn hoặc bằng giá trị ngưỡng.
Bước 3: Dữ liệu được nhúng dọc theo lớp LSB đã chọn (CLSB) đến ∆ (m, k) dB
Trong đó CLSB là giới hạn dưới của lớp LSB để ẩn trong một khung tần số Giá trị ∆ được đặt giúp cho chất lượng ấm thanh tốt hơn
Hình 5 Quá trình nhúng dữ liệu trong một khung tần số đã chọn
Giá trị của ∆ (m, k) dB được đặt thành (|Sc (m, k) |) dB - 13dB Khi làm như vậy, tiếng
ồn sẽ thấp hơn 13dB của phổ tín hiệu ban đầu cho tất cả các tần số Thậm chí khung tần
Khu vực tần số được chọn
Ngưỡng Phổ cường độ tín hiệu
Dữ liệu nhúng
Trang 13số đủ tiêu chuẩn để ẩn dữ liệu được chọn trong phổ cường độ, thì chúng ta sẽ hưởng lợi
từ việc ánh xạ nó thành phổ pha vì:
1) Khi chúng tôi thay đổi một phần các dải tần số đã chọn, chỉ một số bit trong mỗi thành phần tần số đã chọn được sửa đổi, điều này sẽ tạo ra sự chuyển đổi trơn tru trong khi vẫn duy trì tính liên tục của pha
2) Khi mã hóa pha có thể được sử dụng, nó cho tỷ lệ tín hiệu trên nhiễu tốt hơn
3) Cơ hội để tăng khả năng ẩn nấp rất đáng để khám phá
Để nhúng vào phổ pha, chúng ta ánh xạ khung tần số được lựa chọn chính xác từ phổ cường độ vào phổ pha ϕ(m, k) và dữ liệu được nhúng dọc theo lớp từ CLSB đến ∆ (m, k)
dB Thuật toán mô tả:
for m = 1 to M do
for n = 1 to N/2 do
|ϕs(m, n)| |ϕc(m, n)|
end for
for k = FHDmin to FHDmax do
if 10 ∗ log10(|Sc(m, k)|) ≥ thresholddB then
Khi a n={0, 1} và δ(m, k) = ( d i2i +d i−12i−1 +…+d0 2 0) Giá trị pha giấu tin có thể được tính
đơn giản theo công thức sau:
| ϕs (m, k) | = (a n2n +a n−12n−1 + d i2i +d i−12i−1 +…+d1 21+d0 20+a1 21+a0 20¿
Bước 4: Pha mới được nhân với độ lớn của nó để tạo ra phổ như sau:
S s (m, k) = | S c (m, k) | e j ϕ a (m, k)
Bước 5: Phép biến đổi iFFT nghịch đảo được áp dụng trên phân đoạn để có được
đoạn âm thanh được giấu tin mới Ss (m, n) [5]
Trang 14Hình 6 Nhúng các vị trí được tìm thấy trong khung tần số với giá trị của ngưỡng, 𝜌 và
IFFT
Dữ liệu được nhúng
∆ ≥ Limit
Dữ liệu nhị phân 0101….
Dữ liệu cần nhúng
Dữ liệu chứa tin
S s ρ
S c
Yes
∆
Khu vực nhúng tin
Dữ liệu khôngthay đổi
Khu vực chênh lệchsau khi tín hiệu gốcđược giảm ρ dB
Trang 152.2 Trích xuất thông tin được giấu
Để trích xuất dữ liệu ẩn khỏi phổ pha, hai bước chính được thực hiện: đầu tiên, chúng tôi xác định vị trí các khung được sử dụng để nhúng dữ liệu từ phần cường độ |Ss (m, k)
|.Để làm như vậy, các tham số ảnh hưởng đến vị trí nhúng trong mỗi thùng được chọn như Threshold, ∆ (m, k), CLSB được tính theo cách tương tự như được thực hiện ở đầu người gửi Thứ hai, chúng tôi ánh xạ các vị trí nhúng được tìm thấy trong cường độ vào phổ pha Các phân đoạn của dữ liệu bí mật được trích xuất và sau đó được tập hợp lại như
sau:
for m = 1 to M do for n = 1 to N/2 do |ϕs(m, n)| |ϕc(m, n)|
end for for k = FHDmin to FHDmax do
if 10 ∗ log10(|Sc(m, k)|) ≥ thresholddB then
if ∆(m, k)dB ≥ CLSBdB then Extract δ(m, k) from |ϕs(m, k)|
end if end if end for end for
3 Đánh giá về phương pháp mã hóa pha
Ma trận pha
∆ ≥ Limit Trich xuất
Dữ liệu nhị phân 0101….
Yes
Hình 7 Sơ đồ giải mã
Trang 16 Mã hóa pha không gây nhiễu như các phương pháp với LSB hoặc các phương pháp khác.
b) Nhược điểm
Lượng thông tin được giấu nhỏ vì phương pháp mã hóa pha chỉ giấu được thông tin trên một đoạn nhỏ của file âm thanh Nếu muốn tăng lượng thông tin được giấuthì có thể kéo dài thêm đoạn của âm thanh gốc, tuy vậy việc đó ít được thực hiện bởi nếu vậy khả năng bị phát hiện tin được giấu trong file âm thanh sẽ lớn hơn
Khả năng ứng dụng bị hạn chế: Ví dụ nếu sử dụng mã hóa pha để giấu tin trong file âm thanh, file đó có thể dễ dàng bị tấn công và phát hiện do thông tin mật chỉ
ở đầu của file âm thanh
Thời gian nạp âm thanh tương đối lâu, trong khi chỉ có khối đầu tiên được nhúng thông tin, dữ liệu giấu không được phân bố đều trên toàn bộ tín hiệu âm thanh, sử dụng tài nguyên không hiệu quả
4 Demo kỹ thuật giấu tin sử dụng phương pháp mã hóa pha
Demo sử dụng phương pháp mã hóa pha thường, sử dụng phép biến đổi nhanh FFT, Với đầu vào là một file wav, một file text chứa thông tin cần giấu Đầu ra là một file wav chứa tin được giấu
Cấu trúc thư mục:
File data_embedding.m: chạy chương trình nhúng dữ liệu
File data_extracting.m: Chạy chương trình trích xuất thông tin
File phase_enc: Code xử lý mã hóa
File phase_dec: Code xử lý giải mã
File text.txt: Chứa thông điệp cần giấu
Thư mục audio_in có chứa một file âm thanh demo wav
Code xử lý mã hóa pha
Trang 17I = length (plain);
m = length (data); % Độ dài chuỗi bit cần giấu
N = floor (I/L); % Số khung (for 8 bit)
s = reshape (plain( 1 :N*L, 1 ), L, N); % Chia tín hiệu ra các segment
w = fft (s); % Biến đổi nhanh Fourier với mỗi segment
Phi = angle (w); % Ma trận pha với mỗi segment
A = abs (w); % Ma trận cường độ với mỗi segment
Trang 18Phi_new(L/ 2 -m+ 1 :L/ 2 , 1 ) = PhiData; % Hermitian symmetry
Phi_new(L/ 2 + 1 + 1 :L/ 2 + 1 +m, 1 ) = -flip(PhiData); % Hermitian symmetry
close all ; clear all ; clc;
[FileName,PathName] = uigetfile( '*.wav' , 'Select audio file.' );
out = phase_enc(audio.data, text);
audiowrite([audio.name, '_stego.wav' ], out, audio.fs);
disp([ 'Stego signal is saved in ' , PathName, audio.name, '_stego.wav' ]);
Khi chạy chương trình:
Trang 19Kết quả: Tạo ra một file âm thanh mới chứa tin cần giấu
Trang 20bin = reshape (data( 1 :m), 8 , m/ 8 )';
out = char ( bin2dec (bin))'; % chuyển dữ liệu từ dạng bit về chuỗi
end
Code lấy tin được giấu
close all ; clear all ; clc;
[FileName,PathName] = uigetfile( '*.wav' , 'Select audio file.' );
audio.data = audioread([PathName FileName]);
Khi chạy chương trình lấy thông tin: Ta sử dụng đầu vào là file âm thanh chứa tin, đầu ra
là đoạn dữ liệu được trích xuất hiển thị trên màn hình console
Trang 21II Giấu tin trong âm thanh sử dụng phương pháp tự đánh dấu
(Đào Tuấn Anh)
Giấu tin trong âm thanh sử dụng phương pháp tự đánh dấu là phương pháp giấu tin
mà thông tin được giấu vào thông điệp gốc bằng cách tự đặt các dấu hiệu dùng để xác minh vào trong tín hiệu âm thanh
Nó có thể được thực hiện bằng cách nhúng một tín hiệu đặc biệt vào trong âm thanh hoặc thay đổi hình dạng của tín hiệu trên miền thời gian hay miền tần số Phương pháp giấu tin tự đánh dấu bao gồm 2 kỹ thuật chính, đó là:
- Điều chỉnh tỉ lệ thời gian
- Dựa vào đặc trưng quan trọng nhất
Trang 221 Kỹ thuật điều chỉnh tỉ lệ thời gian
Ý tưởng thực hiện: Kéo dài hoặc rút ngắn tỉ lệ thời gian của âm thanh, thay đổi tỉ lệ thời gian giữa 2 cực đại và cực tiểu
Trong kỹ thuật này, khoảng cách giữa 2 cực được chia làm N phân đoạn có biên độ bằng nhau Tiếp đó, người giấu tin sẽ thay đổi độ dốc của tín hiệu tuỳ thuộc vào bit muốn nhúng Ví dụ: dốc thoải để giấu bit 1, dốc đứng để giấu bit 0.
Quy trình giấu tin:
Tệp âm thanh gốc C
Chuỗi bit M cần dấu có độ dài L Tệp âm thanh chứa tin giấu C’
Bước 1: Mã hoá Hamming
Chuỗi bit cần dấu M được chia làm các đoạn nhỏ Mi 4 bit Mỗi đoạn mã Mi 4 bit
sẽ được mã hoá bằng cách sử dụng mã Hamming (7, 4)
Trang 23Mã Hamming là một mã trong họ các mã sửa lỗi ECC (Error Correction Code) Nguyên lý của mã Hamming bắt nguồn từ việc khai triển và mở rộng quan điểm chẵn lẻ Với mỗi nhóm 4 bit dữ liệu, mã Hamming sẽ thêm 3 bit kiểm tra, kết quả
sẽ thu được đoạn mã 7 bit.
Mã Hamming sử dụng hai ma trận, gọi là ma trận sinh G và ma trận kiểm tra H Đối với mã Hamming (7,4) ma trận G và H sẽ như sau:
[6]
Chuỗi bit thông tin u sẽ được mã hóa bằng cách nhân với ma trận sinh G, kết quả được thu được là một từ mã r Từ mã r được tính theo công thức :
r = G ∗ u Nếu nhân r với H sẽ được 0 Đây là công thức để kiểm tra lỗi :
mã Hamming chỉ phát hiện được lỗi chứ không sửa được
Vận dụng tính chất có thể phát hiện được 2 lỗi trên 7 bit nhận được của mã Hamming, thuật toán đang xét kết hợp phương pháp giấu với phương pháp mã hóa chuỗi bit sử dụng mã Hamming Việc dùng mã Hamming nhằm mục đích kiểm soát quá trình tin giấu gửi đi (trong đối tượng chứa) có bị thay đổi hay không.
Trang 24Đối với thuật toán giấu tin đang xét, chuỗi bit u chính là đoạn mã Mi 4 bit, sử dụng phép nhân ma trận G kích thước 4x7 với ma trận Mi kích thước 1x4, kết quả thu được sẽ là ma trận Mi’ có kích thước 1x7.
Ghép các chuỗi bit Mi’ vào với nhau, ta sẽ thu được chuỗi bit M’
Vì vậy, độ dài của chuỗi bit M’ sẽ bằng (L/4) x 7 với L là độ dài của M [7]
Bước 2: Giấu tin
2.1 Kiểm tra xem tín hiệu gốc C có đủ dung lượng cần thiết để dấu thông điệp M hay không Nếu không, bỏ qua việc giấu tin Nếu có, thực hiện bước 2.2.
2.2 Trích tuần tự 3 bit của C và tính tổng của chúng với bit đang xét của chuỗi bit
M’
Trường hợp 1: Nếu bit đang xét của M’ là 1 mà tổng 4 bit là lẻ thì thỏa mãn điều
kiện giấu, không cần điều chỉnh Nếu tổng chẵn thì điều chỉnh mẫu số 2 của 3 mẫu đang xét để cho tổng là số lẻ.
Ví dụ: Trích tuần tự 3 bit của C ta được 3 bit 0 1 1
Nếu bit đang xét của M’ là 1 thì thoả mãn điều kiện giấu do tổng các bit là lẻ Nếu bit đang xét của M’ là 0 thì cần điều chỉnh mẫu số 2 trong 3 mẫu vừa trích được từ C ở trên, ta được 3 bit mới là 0 0 1.
Trường hợp 2: Nếu bit đang xét của M’ là 0 mà tổng 4 bit là chẵn thì đã thỏa mãn
điều kiện giấu, không cần điều chỉnh, ngược lại điều chỉnh mẫu thứ 1 hoặc mẫu thứ 3 trong 3 mẫu đang xét để cho tổng là số chẵn.
Ví dụ: Trích tuần tự 3 bit của C ta được 3 bit 0 1 1
Nếu bit đang xét của M’ là 0 thì thoả mãn điều kiện giấu do tổng các bit là chẵn Nếu bit đang xét của M’ là 1 thì cần điều chỉnh mẫu số 1 hoặc 3 trong 3 mẫu vừa trích được từ C ở trên, ta được 3 bit mới là 1 0 1 hoặc 0 1 0.
Ghi 3 bit đang xét ra tệp C’ Lặp lại quá trình kiểm tra trên cho đến khi toàn bộ các bit của chuỗi M’ đã được giấu Cuối cùng là công đoạn ghi các mẫu còn lại từ C vào C’ và kết thúc [8]
Quá trình giải tin và xác thực tin giấu:
Tệp âm thanh chứa tin giấu C’ Chuỗi bit M cần lấy hoặc kết luận
Trang 25Độ dài chuỗi bit cần lấy
không lấy tin do tin đã bị sửa đổi
Các bước thực hiện
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 xuất chuỗi bit từ dữ liệu C’, kết quả ta thu được chuỗi bit giấu M’.
Bước 2: Xác thực tin giấu
Chia M’ thành các đoạn nhỏ Mi’ có độ dài 7 bit, tiến hành nhân từng đoạn này với
ma trận H như hình dưới
Trường hợp 1: Nếu như toàn bộ kết quả nhân các đoạn Mi’ với H đều cho kết quả
0 thì kết luận là không có tấn công trên C’ và thực hiện trích các bit dữ liệu của M’
để nhận lại tin giấu M.
Trường hợp 2: Nếu như trong quá trình nhân các đoạn của M’ với H có đoạn cho
kết quả khác 0 thì kết luận là có tấn công hoặc do nhiễu và ghi nhận cách sửa lỗi Trong trường hợp này cũng rút trích dữ liệu từ M’ sau khi đã thực hiện sửa lỗi và tạo lại tin giấu M Nếu như trong mỗi đoạn 7 bit có 2 bit lỗi thì hệ thống sẽ không
tự sửa lỗi được Trường hợp này, bên nhận sẽ yêu cầu bên gửi gửi lại hoặc không
sử dụng thông tin rút trích trong dữ liệu mang tin ra.
Đánh giá phương pháp
Do phương pháp này chỉ thay đổi tỉ lệ Các kết quả thử nghiệm cho thấy hầu