1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo BTL tốt nghiệp thầy chợ Các phương pháp giấu tin trong âm thanh

51 19 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 51
Dung lượng 2,83 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 2

Mụ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 3

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)

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 4

Sơ đồ 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 5

1.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 7

Thay 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 8

1.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 9

Mộ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 11

lượ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 12

cố 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 13

số đủ 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 14

Hì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 15

2.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 17

I =  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 18

Phi_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 19

Kết quả: Tạo ra một file âm thanh mới chứa tin cần giấu

Trang 20

bin =  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 21

II 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 22

1 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 23

Mã 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

Ngày đăng: 19/01/2021, 18:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w