Tải bản đầy đủ (.pdf) (27 trang)

Bảo mật dữ liệu bằng kỹ thuật giấu tin trong audio

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.11 MB, 27 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

HUỲNH BÁ DIỆU

BẢO MẬT DỮ LIỆU BẰNG KỸ THUẬT
GIẤU TIN TRONG AUDIO

Chuyên ngành: Hệ thống thông tin
Mã số: 62 48 01 04

TÓM TẮT LUẬN ÁN TIẾN SĨ HỆ THỐNG THÔNG TIN

Hà Nội - 2015


Công trình được hoàn thành tại: Trường Đại học Công nghệ, Đại
học Quốc gia Hà Nội.

Người hướng dẫn khoa học: PGS. TSKH Nguyễn Xuân Huy

Phản biện .............................................................................................
.............................................................................................
Phản biện .............................................................................................
.............................................................................................
Phản biện .............................................................................................
.............................................................................................

Luận án sẽ được bảo vệ trước Hội đồng cấp Đại học Quốc gia chấm
luận án tiến sĩ họp tại .................................................................................
vào hồi



giờ

ngày

tháng

năm 2015

Có thể tìm hiểu luận án tại:
-

Thư viện Quốc gia Việt Nam

-

Trung tâm Thông tin - Thư viện, Đại học Quốc gia Hà Nội


MỞ ĐẦU
1. Tính cấp thiết của luận án

Sự phát triển mạnh mẽ của công nghệ số và nhu cầu trao đổi thông tin
thông qua các hệ thống được kết nối mạng dẫn đến đòi hỏi chúng ta cần phải
có các giải pháp để bảo vệ thông tin, chống các xâm nhập trái phép, lấy cắp,
xuyên tạc thông tin hay bảo vệ bản quyền cho các dữ liệu số. Việc thiết lập
các cơ chế phân quyền truy cập, mã hoá thông tin giúp bảo vệ thông tin tốt
hơn nhưng chúng không thể đảm bảo an toàn tuyệt đối, do đó đòi hỏi chúng ta
cần phải tìm các giải pháp khác nhằm nâng cao tính đa dạng của các loại hình
bảo vệ. Chúng ta có một cách khác để bảo vệ thông tin đó là thực hiện các

giao dịch ngầm bên trong các giao dịch công khai, hay còn gọi giấu tin.
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 audio thực
hiện giấu 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 audio thưc
hiện giấu trên miền tần số, có thể 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 file 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.
 Đề 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á bí mật. 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 file
gốc và file chứa tin giấu là ít nhất. Kết quả được đăng tài trong Tạp chí

1


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 các phương pháp giấu tin trên ảnh để thực hiện giấu tin
trên audio. Kết quả được trình bày và đăng tải trong kỷ yếu Hội nghị
IEEE SoCPaR năm 2013 tại Học viện kỹ thuật quân sự, Hà Nội.
 Đề xuất 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 cải tiến 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 mật trong audio bằng cách điều chỉnh
các hệ số của thành phần chi tiết (detail) của phép biến đổi wavelet. Kết
quả được đã được trình bày tại hội nghị FAIR 2015 tại Hà Nội.
Nội dung của luận án được xây dựng 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, kết luận và bốn chương nội
dung cùng với tài liệu tham khảo.
Chương 1: Trình bày tổng quan về an toàn thông tin và giấu thông tin.
Chương 2: Trình bày về các phương pháp giấu tin trong audio.
Chương 3: Trình bày về các phương pháp giấu tin trên miền thời gian.
Chương 4: Trình bày về các phương pháp giấu trên miền tần số.

2


Chương 1 TỔNG QUAN VỀ BẢO MẬT DỮ LIỆU VÀ GIẤU TIN
1.1. Bảo mật dữ liệu
Bảo mật dữ liệu (data security) có nghĩa là bảo vệ dữ liệu, chẳng hạn
như cơ sở dữ liệu, trước các hành vi phá hoại hay các hành vi không mong
muốn khác từ những người không được quyền.
Đã có nhiều giải pháp khác nhau nhằm bảo mật dữ liệu, được thiết kế
cho các thành phần riêng lẻ hoặc kết hợp giữa các thành phần của hệ thống
thông tin. Các giải pháp đó là mã hoá đĩa (disk encryption), sao lưu (backup),
sử dụng các thiết bị đăng nhập hệ thống, bảo mật đường truyền, che giấu dữ
liệu (data masking, gồm mật mã và giấu thông tin). Trong các giải pháp đó,
giải pháp dùng mật mã và giấu thông tin được ứng dụng rộng rãi nhất.
1.2. Mã hoá dữ liệu


Hì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.
3


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 :
Khoá K

Host Signal


Quá trình
Giấu tin

Khoá K
Quá trình
Giải tin

Stego Signal
Network

Secret message

Host Signal

Secret message

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
4


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

5


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

6


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)
7


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

1

1

Sau khi giấu bit 1 sẽ như sau:
0

1

0

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).
8


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


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.

10


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).
11


Đầ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.
12


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

13


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)
18

39

65526

8


65526

0

1

0

0

0

20

27

40

50

18

0

1

0

0


0

37

42

4

78

65519

1

0

0

0

1

46

65514

29

65508


31

0

0

1

0

1

65500

5

65486

0

65482

0

1

0

0


0

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:
r1

r2

r3

r4

1

1

0

0

Hình 3.11 Kết quả XOR 4 cột đầu tiên của từng hàng
c1

c2

c3

c4


1

1

1

0

Hình 3.12 Kết quả XOR 4 dòng đầu tiên của từng cột
s1

s2

s3

s4

0

0

1

0

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.

0

0

0

0

0

18

38

65526

8

65526

0

1

0

0

1


20

27

40

50

19

1

0

0

0

0

37

42

4

78

65518


0

0

1

0

1

46

65514

29

65508

31

0

1

0

0

0


65500

5

65486

0

65482

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’.
14


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 F i 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.
15



Đầ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= q / d  * d đ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:

16


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

17


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.
FY  FFT (Y )

(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: z  r(cos   i sin  )

(4.2)

Nếu thay đổi r thành r’ thì
x '  r ' cos 

y '  r ' sin 

(4.5)

z'  r' cos   i * r' sin 

(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ề:
18


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;

19


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

20


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:
Đầu ra:

- Khoá K, file chứa tin S.

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

21


Bước 2) Chia dãy D thành các đoạn
từng phần tử

từ các đoạn

có cùng kích thước fw và lấy lần lượt

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êm nhiễu trắng có ảnh hưởng.
Bảng 4.2 Bảng giá trị SRN khi giấu tin
Tên file

Dạng âm thanh


Kích thước file

Số bit giấu

SRN

S.wav
B.wav
C.wav
E.wav

Bài nói
Đoạn nhạc
Tiếng cười
Thông báo

6.5 Mb
1.14 Mb
104 Kb
2.71 Mb

2000
1400
100
2000

22.23
21.79
25.74

20.50

Bảng 4.3 Bảng giá trị BER
Tên file
S1.wav
B1.wav
C1.wav
E1.wav

Tấn công giảm bit
0
0
0
0

Giá trị BER
Thêm nhiễu dựa vào năng lượng
SRN= 10
SRN=7
0.0005
0.005
0
0.002
0.05
0.15
0
0.002

Do thuật toán giấu trên miền tần số cao nên không bền vững với phép biến đổi
chuyển định dạng mp3.

Tổng kết chương 4
Chương 4 trình hai thuật toán giấu tin trong audio được thực hiện trên
miền tần số. Thuật toán thứ nhất dùng điều chỉnh biên độ các hệ số FFT trên
mỗi đoạn để giấu 8 bit dữ liệu. Thuật toán thứ 2 thực điều chỉnh các hệ số của
phép biến đổi wavelet để giấu tin. So với thuật toán 1, thuật toán 2 có thể bền
vững trước kiểu tấn công giảm số bit biểu diễn mẫu và tin giấu bền vững với
tỉ lệ thêm nhiễu lớn hơn như trong các bảng thử nghiệm đã trình bày.
22


KẾT LUẬN
Giấu thông tin và các ứng dụng của nó là một trong những vấn đề được
nhiều người quan tâm hiện nay. Giấu thông tin được coi là một trong các giải
pháp để bảo mật dữ liệu. Nếu như giấu tin trong ảnh đã có những nghiên cứu
và có các ứng dụng cụ thể thì giấu tin trong audio vẫn còn nhiều hướng mở,
nhất là các nghiên cứu ứng dụng trong các hệ thời gian thực, tích hợp với
phần cứng. Một số phương pháp giấu tin trong ảnh có thể áp dụng sang audio
nhưng cần phải có những điều chỉnh vì hai đối tượng dữ liệu chứa khác nhau
và kỹ thuật giấu trên mỗi kiểu dữ liệu chứa khai thác những điểm khác nhau
của hệ thống tri giác con người. Các nghiên cứu để tăng tính bền vững, sự
đồng bộ của tin giấu trong dữ liệu audio đã có nhưng chưa nhiều.
Trên cơ sở nghiên cứu các kỹ thuật giấu tin trong âm thanh, các kỹ thuật bổ
trợ, luận án đã đề xuất một số cải tiến nhằm tăng cường tính mật, các giải
pháp khác nhau có thể lựa chọn cho bài toán giấu tin trong audio. Cụ thể, luận
án đã đạt được các kết quả chính sau:
- Cải tiến kỹ thuật giấu tin trong audio bằng cách kết hợp với mã phát hiện và
sửa lỗi. Mục đích của việc này là tránh trường hợp nhận thông tin sai nếu file
chứa bị tấn công làm thay đổi nội dung tin giấu.
- Đề xuất cách chọn mẫu dữ liệu để và vi trí bit của mẫu cần điều chỉnh để
giấu tin, dựa vào chuỗi ngẫu nhiên được sinh ra từ khoá bí mật. Trong kỹ

thuật này cũng đề xuất cách điều chỉnh các bit trong mỗi mẫu dữ liệu được
chọn để giấu sao cho sự sai khác giữa các mẫu dữ liệu trên file gốc và các
mẫu trên file chứa tin giấu là ít nhất.
- Đề xuất các cách xáo trộn dữ liệu mật trước khi giấu tin. Mục đích của việc
này là làm cho người thám tin tốn nhiều thời gian để sắp xếp lại các bit mật
lấy được để có chuỗi tin mật nếu như anh ta biết thuật toán giấu.
- Đề xuất các cải tiến cho kỹ thuật giấu dựa vào tiếng vọng, điều chỉnh 1 bit
để giấu 1 byte dữ liệu trong khối 256 mẫu, điều chỉnh 4 bit để giấu 1 byte dữ
liệu trong 2 khối, mỗi khối 25 mẫu.
- Đề xuất hai thuật toán giấu tin mật trên miền tần số bằng cách điều chỉnh các
hệ số của phép biến đổi, một thuật toán được sử dụng phép biến đổi Fourier
và một thuật toán sử dụng phép biến đổi wavelet.
23


×