Tải bản đầy đủ (.doc) (33 trang)

Nghiên cứu kỹ thuật phát hiện ảnh giấu tin trên miền biến đổi của ảnh

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 (338.25 KB, 33 trang )

Ket-noi.com kho tài liệu miễn phí

MỤC LỤC

LỜI CẢM ƠN........................................................................................................................1
GIỚI THIỆU.........................................................................................................................2
CHƯƠNG 1. TỔNG QUAN VỀ KỸ THUẬT GIẤU TIN....................................................3
1.1 Định nghĩa kỹ thuật giấu tin...............................................................................................................
1.2 Phân loại kỹ thuật giấu tin..................................................................................................................
..................................................................................................................................................................
1.3 Giấu tin trong Audio..........................................................................................................................
1.4 Giấu tin trong video...........................................................................................................................
1.5 Giấu tin trong ảnh..............................................................................................................................
CHƯƠNG 2. CẤU TRÚC CỦA MỘT SỐ ẢNH ĐẶC TRƯNG..........................................8
2.1 Cấu trúc ảnh BMP..............................................................................................................................
2.2 Cấu trúc ảnh PNG..............................................................................................................................
2.3 Ảnh JPEG...........................................................................................................................................
CHƯƠNG 3. KỸ THUẬT GIẤU TIN TRÊN MIỀN BIẾN ĐỔI DCT...............................12
3.1 Phép biến đổi cosin rời rạc.................................................................................................................
3.2 Kỹ thuật nén ảnh dạng chuẩn jpeg dùng biến đổi cosin rời rạc.........................................................
3.2.1 Mã hoá và giải mã dùng biến đổi DCT.......................................................................................
3.2.2 Lượng tử và giải lượng tử...........................................................................................................
3.2.3 Mã hóa và giải mã jpeg...............................................................................................................
3.3 Một số kỹ thuật giấu tin trên miền biến đổi DCT..............................................................................
3.3.1 Thuật toán JSteg..........................................................................................................................
3.3.2 Thuật toán OutGuess 0.1.............................................................................................................
3.3.3 Thuật tốn F5..............................................................................................................................
CHƯƠNG 4. KỸ THUẬT PHÁT HIỆN ẢNH CĨ GIẤU TIN TRÊN MIỀN BIẾN ĐỔI
DCT......................................................................................................................................25
4.1. Phát hiện tin ẩn giấu (Steganalysis)..................................................................................................
4.2. Kỹ thuật phát hiện thống kê..............................................................................................................


4.3. Kỹ thuật phát hiện F5........................................................................................................................
4.4 Kết quả thực nghiệm..........................................................................................................................
4.4.1 Kỹ thuật phát hiện thống kê........................................................................................................
4.4.2 Kỹ thuật phát hiện F5..................................................................................................................
KẾT KUẬN.........................................................................................................................31
..............................................................................................................................................32
TÀI LIỆU THAM KHẢO....................................................................................................32

LỜI CẢM ƠN

1


Ket-noi.com kho tài liệu miễn phí

Trước tiên, em xin chân thành cảm ơn cô giáo Thạc sỹ Hồ Thị Hương
Thơm đã tận tình hướng dẫn giúp đỡ em trong qúa trình tìm tài liệu, cũng như
trong quá trình nghiên cứu, tìm hiểu và xây dựng, triển khai đề tài.
Em cũng xin cảm ơn các thầy cô trong tổ bộ môn tin học, phòng đào
tạo, và ban giám hiệu Trường Đại học dân lập Hải Phòng đã giảng dạy kiến
thức, tạo điều kiện và giúp đỡ em trong quá trình học tập tại trường.
Cuối cùng em xin cảm ơn sự chăm sóc của người thân, gia đình, sự
động viên, giúp đỡ của bè bạn đã tạo điều kiện giúp em hoàn thành tốt qúa
trình nghiên cứu thực tập và thực hiện đề tài.
Mặc dù đã cố gắng nghiên cứu, tìm hiểu và hoàn thành báo cáo trong
phạm vi và khả năng cho phép song chắc chắn sẽ không tránh khỏi những
thiếu sót. Em rất mong nhận được sự thơng cảm, góp ý và tận tình chỉ bảo của
thầy cơ và các bạn

GIỚI THIỆU

2


Ket-noi.com kho tài liệu miễn phí

Steganography là một lĩnh vực khoa học và nghệ thuật giấu thông tin
trong đa phương tiện. Hệ thống steganography giấu các thông tin mật số vào
trong đối tượng số khác mà khó bị phát hiện bằng kỹ thuật thông thường.
Trước kia con người sử dụng ẩn các hình xăm hoặc mực vơ hình để truyền
thơng điệp mật. Ngày nay nhờ có máy tính và cơng nghệ mạng công việc
truyền thông tin mật trở nên dễ dàng và hiệu quả hơn.
Về cơ bản, quy trình ẩn thông tin trong hệ thống steganography bắt đầu
bằng cách thay đổi các bit dư thừa trong đối tượng mang tin bởi các bit dữ
liệu cần giấu (thay đổi các bit này sẽ không làm ảnh hưởng nhiều đến đối
tượng ban đầu của vật mang tin) ta sẽ được đối tượng mới có chứa thơng tin
ẩn thường gọi là Stego.
Nhưng trong q trình truyền các đối tượng stego trong mơi trường
truyền thơng các bit dư thừa có thể bị mất mát do quá trình nén hoặc bị tác
động của một số phép biến đổi hình học nào đó. Do vậy để tránh mất mát có
thể xẩy ra người ta thường dùng một số phép biển đổi như DCT (Discrete
cosine transform), DWT (Discrete wavelete transform), DFT (Discrete fourier
transform) để biến đổi miền dữ liệu của vật mang tin sang miền tần số sau đó
giấu dữ liệu trên đó và dùng các phép biến đổi IDCT, IDWT, IDFT để chuyển
ngược lại dữ liệu ban đầu.
Trong một số lĩnh vực cần kiểm soát các thông tin trong môi trường
truyền thông công cộng việc phân loại các đối tượng số là vấn đề rất quan
trong. Trong đồ án này giới thiệu một số kỹ thuật phát hiện tin ẩn giấu trong
miền biến đổi của ảnh số có sử dụng các kỹ thuật steganography: Jsteg, F5.
Các kỹ thuật này sẽ được trình bày chi tiết trong chương 3. Trong chương 4
trình bày các kỹ thuật phát hiện phát hiện ảnh có giấu tin sử dụng các kỹ thuật

trong chương 3.

CHƯƠNG 1. TỔNG QUAN VỀ KỸ THUẬT GIẤU TIN
3


Ket-noi.com kho tài liệu miễn phí

1.1 Định nghĩa kỹ thuật giấu 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 [5].
- Yêu cầu cơ bản của giấu tin là đảm bảo tính chất ẩn của thông tin
được giấu đồng thời không ảnh hưởng đến chất lượng của dữ liệu gốc.
- Sự khác biệt giữa mã hố thơng tin và giấu thơng tin là: mã hố làm
cho các thơng tin hiện rõ là nó có được mã hố hay khơng cịn giấu thơng tin
thì người ta sẽ khó biết được là có thơng tin giấu bên trong.
1.2 Phân loại kỹ thuật giấu tin

Infomation
hiding
Giấu thông tin

Linguistic
Steganography
Giấu tin bằng
ngôn ngữ

Watermarking
Thuỷ vân số


Steganography
Giấu tin mật

Technical
Steganography
Kỹ thuật giấu tin

Robust
Copyright marking
Thuỷ vân bền vững

Imperceptible
Watermarking
Thuỷ vân ẩn

Fragile
Watermarking
Thuỷ vân “dễ vỡ”

Visible
Watermarking
Thuỷ vân hiển

4


Ket-noi.com kho tài liệu miễn phí

Hình 1.1: Các kỹ thuật trong che giấu thông tin
- Kỹ thuật giấu tin nhằm mục đích đảm bảo an tồn và bảo mật thơng

tin ở hai khía cạnh:
+ 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.
- Từ hai khía cạnh khác nhau này dẫn đến hai khuynh hướng kỹ thuật
chủ yếu của giấu tin là:
1.2.1 Giấu tin mật (Steganography): khuyng hướng này tập trung
vào các kỹ thuật giấu tin sao cho thông tin giấu được càng nhiều càng tốt và
quan trọng là người khác khó phát hiện được một đối tượng có bị giấu tin bên
trong hay khơng bằng kỹ thuật thông thường.
1.2.2 Thủy vân số (Watermarking): đánh giấu vào đối tượng nhằm
khẳng định bản quyền sở hữu hay phát hiện xuyên tạc thông tin. Thủy vân số
được phân thành 2 loại thủy vân bền vững và thủy vân dễ vỡ.
- Thuỷ vân bền vững: thường được ứng dụng trong các ứng dụng bảo
vệ bản quyền. Thuỷ vân được nhúng trong sản phẩm như một hình thức dán
tem bản quyền. Trong trường hợp này, thuỷ vân phải tồn tại bền vững cùng
với sản phẩm nhằm chống việc tẩy xoá, làm giả hay biến đổi phá huỷ thuỷ
vân.
+ Thuỷ vân ẩn: cũng giống như giấu tin, bằng mắt thường không thể
nhìn thấy thuỷ vân.
+ Thuỷ vân hiện: là loại thuỷ vân được hiện ngay trên sản phẩm và
người dùng có thể nhìn thấy được.
- Thủy vân dễ vỡ: là kỹ thuật nhúng thuỷ vân vào trong ảnh sao cho khi
phân bố sản phẩm trong mơi trường mở nếu có bất cứ một phép biến đổi nào

5


Ket-noi.com kho tài liệu miễn phí

làm thay đổi đối tượng sản phẩm gốc thì thuỷ vân đã được giấu trong đối

tượng sẽ khơng cịn ngun vẹn như trước khi dấu nữa (dễ vỡ).
1.3 Giấu tin trong Audio
Kỹ thuật giấu thông tin trong audio phụ thuộc vào hệ thống thính giác
của con người (HAS – Human Auditory System). HAS cảm nhận được tín
hiệu ở dải tần rộng và cơng suất thay đổi lớn, nhưng lại kém trong việc phát
hiện sự khác biệt nhỏ giữa dải tần và công suất. Điều này có nghĩa là các âm
thanh to, cao tần có thể che giấu được các âm thanh nhỏ thấp một cách dễ
dàng. Kênh truyền tin cũng là một vấn đề. Kênh truyền hay băng thông chậm
sẽ ảnh hưởng đến chất lượng thông tin sau khi giấu. Giấu thông tin trong
audio yêu cầu rất cao về tính đồng bộ và tính an tồn của thơng tin.
1.4 Giấu tin trong video
Giấu tin trong video cũng được quan tâm và được phát triển mạnh mẽ
cho nhiều ứng dụng như điều khiển truy cập thông tin, nhận thực thông tin và
bảo vệ bản quyền tác giả. Ta có thể lấy một ví dụ là hệ thống chương trình trả
tiền xem theo video clip các thuật toán trước đây thường cho phép giấu ảnh
vào trong video, nhưng gần đây kỹ thuật cho phép giấu cả âm thanh và ảnh
vào trong video.
1.5 Giấu tin trong ảnh
Giấu thông tin trong ảnh hiện nay chiếm tỷ lệ lớn nhất trong các
chương trình ứng dụng, các phần mềm, hệ thống giấu tin trong đa phương tiện
bởi lượng thông tin trao đổi được trao đổi bằng ảnh là rất lớn, hơn nữa giấu
thơng tin trong ảnh cũng đóng vai trị hết sức quan trọng đối với hầu hết các
ứng dụng bảo vệ an tồn thơng tin như: nhận thực thơng tin, xác định xuyên
tạc thông tin, bảo vệ bản quyền tác giả, điều khiển truy cập, giấu thơng tin
mật… Chính vì thế mà vấn đề này đã nhận được sự quan tâm rất lớn của các
nhà cá nhân, tổ chức, trường đại học, và viện nghiên cứu trên thế giới.
6


Ket-noi.com kho tài liệu miễn phí


Thơng tin sẽ được giấu cùng với dữ liệu ảnh nhưng chất lượng ảnh ít
thay đổi và chẳng ai biết được đằng sau ảnh đó mang những thơng tin có ý
nghĩa. Ngày nay, khi ảnh số đã được sử dụng rất phổ biến, thì giấu thông tin
trong ảnh đã đem lại rất nhiều những ứng dụng quan trọng trên nhiều lĩnh vực
trong đời sống xã hội.
Ví dụ như đối với các nước phát triển, chữ kí tay đã được số hố và lưu
trữ sử dụng như là hồ sơ cá nhân của các dịch vụ ngân hàng và tài chính, nó
được dùng để nhận thực trong các thẻ tín dụng của người tiêu dùng. Phần
mềm WinWord của MicroSoft cũng cho phép người dùng lưu trữ chữ kí trong
ảnh nhị phân rồi gắn vào vị trí nào đó trong file văn bản để đảm bảo tính an
tồn của thơng tin. Tài liệu sau đó được truyền trực tiếp qua máy fax hoặc lưu
truyền trên mạng. Theo đó, việc nhận thực chữ kí, xác thực thơng tin đã trở
thành một vấn đề cực kì quan trọng khi mà việc ăn cắp thông tin hay xuyên
tạc thông tin bởi các tin tặc đang trở thành một vấn nạn đối với bất kì quốc gia
nào, tổ chức nào. Thêm vào đó, lại có rất nhiều loại thơng tin quan trọng cần
được bảo mật như những thông tin về an ninh, thông tin về bảo hiểm hay các
thông tin về tài chính, các thơng tin này được số hố và lưu trữ trong hệ thống
máy tính hay trên mạng. Chúng rất dễ bị lấy cắp và bị thay đổi bởi các phần
mềm chuyên dụng. Việc nhận thực cũng như phát hiện thông tin xuyên tạc đã
trở nên vô cùng quan trọng, cấp thiết.
Và một đặc điểm của giấu thông tin trong ảnh đó là thơng tin được giấu
trong ảnh một cách vơ hình, nó như là một cách mà truyền thông tin mật cho
nhau mà người khác không thể biết được bởi sau khi giấu thơng tin thì chất
lượng ảnh gần như không thay đổi đặc biệt đối với ảnh mầu hay ảnh xám.

7


Ket-noi.com kho tài liệu miễn phí


CHƯƠNG 2. CẤU TRÚC CỦA MỘT SỐ ẢNH ĐẶC TRƯNG
2.1 Cấu trúc ảnh BMP
Một file *.BMP được chia làm 3 phần chính: BitmapHeader, Palette
màu và BitmapData.
+ BitmapHeader:
Byte thứ

Ý nghĩa

Giá trị

1-2

Nhận dạng file

‘BM’ hay 19778

3-6

Kích thước file

Kiểu long trong Turbo C

7-10

Dự trữ

Thường mang giá trị 0


11-14

Byte bắt đầu vùng dữ liệu

Offset của byte bắt đầu vùng
dữ liệu

15-18

Số byte cho vùng info

4 byte

19-22

Chiều rộng của ảnh BMP

Tính bằng pixel

23-26

Chiều cao của ảnh BMP

Tính bằng pixel

27-28

Số Planes màu

Cố định là 1


29-30

Số bit cho một pixel

Có thể là 1, 4, 8, 16, 24 tuỳ
theo loại ảnh

31-34

Kiểu nén dữ liệu

0: khơng nén
1: Nén runlength 8bit/pixel
2: Nén runlength 4bit/pixel

35-38

Kích thước ảnh

Tính bằng byte

39-42

Độ phân giải ngang

Tính bằng pixel/metter
8



Ket-noi.com kho tài liệu miễn phí

43-46

Độ phân giải dọc

47-50

Số màu sử dụng trong ảnh

51-54

Số màu được sử dụng để

Tính bằng pixel/metter

hiển thị ảnh
+ Palette màu:
Kích thước của vùng Palette màu bằng 4*số màu của ảnh. Vì Palette
màu của màn hình có cấu tạo theo thứ tự Red-Green-Blue, nên khi đọc palette
màu của ảnh BMP vào ta phải chuyển đổi lại cho phù hợp. Số màu của ảnh
được biết dựa trên số bit cho 1 pixel cụ thể là: 8 bit/pixel: ảnh 256 màu,
4bit/pixel: ảnh 16 màu, 24bit/pixel ảnh 24 bit màu.
+ BitmapData :
Phần này kề tiếp ngay sau Palette màu của BMP. Đây là phần chứa các
giá trị màu của các điểm ảnh trong BMP. Các điểm ảnh được lưu theo thứ tự
từ trái qua phải trên một dòng và các dòng lại được lưu theo thứ tự dưới lên
trên. Mỗi Byte trong vùng BitmapData biểu diễn 1 hoặc nhiều điểm ảnh tùy
theo số bits cho một pixel.
2.2 Cấu trúc ảnh PNG

PNG (từ viết tắt trong tiếng Anh của Portable Network Graphics) là
một dạng hình ảnh sử dụng phương pháp nén dữ liệu mới - không làm mất đi
dữ liệu gốc. PNG được tạo ra nhằm cải thiện và thay thế định dạng ảnh GIF
với một định dạng hình ảnh khơng địi hỏi phải có giấy phép sáng chế khi sử
dụng. PNG được hỗ trợ bởi thư viện tham chiếu libpng, một thư viện nền
tảng độc lập bao gồm các hàm của C để quản lý các hình ảnh PNG.
- Cấu trúc của một ảnh PNG:
+ Phần đầu của tập tin:

9


Ket-noi.com kho tài liệu miễn phí

Một tập tin PNG bao gồm 8-byte (kí hiệu 89 50 4E 47 0D 0A 1A 0A)
được viết trong hệ thống có cơ số 16, chứa các chữ "PNG" và 2 dấu xuống
dòng, ở giữa là sắp xếp theo số lượng của các thành phần, mỗi thành phần đều
chứa thơng tin về hình ảnh. Cấu trúc dựa trên các thành phần được thiết kế
cho phép định dạng PNG có thể tương thích với các phiên bản cũ khi sử dụng.
+ Các thành phần của tập tin:
PNG là cấu trúc như một chuỗi các thành phần, mỗi thành phần chứa
kích thước, kiểu, dữ liệu, và mã sửa lỗi CRC ngay trong nó.
Chuỗi được gán tên bằng 4 chữ cái phân biệt chữ hoa chữ thường. Sự
phân biệt này giúp bộ giải mã phát hiện bản chất của chuỗi khi nó khơng nhận
dạng được.
Với chữ cái đầu, viết hoa thể hiện chuỗi này là thiết yếu. Chuỗi thiết
yếu chứa thông tin cần thiết để đọc được tệp và nếu bộ giải mã không nhận
dạng được chuỗi thiết yếu, việc đọc tệp phải được hủy.
2.3 Ảnh JPEG
JPEG viết tắt của Joint Photographic Experts Group [5], một nhóm các

nhà nghiên cứu đã phát minh ra định dạng này để hiển thị các hình ảnh đầy đủ
màu hơn (full-colour) cho định dạng di động mà kích thước file lại nhỏ hơn.
Giống như ảnh GIF, JPEG cũng được sử dụng rất nhiều trên Web. Lợi ích
chính của chúng hơn GIF là chúng có thể hiển thị các hình ảnh với màu chính
xác true-colour (chúng có thể lên đến 16 triệu màu), điều đó cho phép chúng
được sử dụng tốt nhất cho các hình ảnh chụp và hình ảnh minh họa có số
lượng màu lớn.
Các ảnh JPEG không thể làm trong suốt hoặc chuyển động - trong
trường hợp này bạn sẽ sử dụng định dạng GIF (hoặc định dạng PNG để tạo
trong suốt).

10


Ket-noi.com kho tài liệu miễn phí

Tạo ảnh JPEG Fast-Loading: Giống như với các ảnh GIF, để tạo hình
JPEG nhỏ đến mức có thể (tính theo bytes) để website tải nhanh hơn. Điều
chỉnh chính để thay đổi kích thước file JPEG được gọi là quality, và thường
có giá trị từ 0 tới 100%, khi 0% thì chất lượng là thấp nhất (nhưng kích thước
file là nhỏ nhất), và 100% thì chất lượng cao nhất (nhưng kích thước file là
lớn nhất). 0% chất lượng JPEG sẽ nhìn rất mờ khi so sánh với ảnh gốc.
Cịn 100% chất lượng JPEG thường khơng phân biệt được so với ảnh gốc.

11


Ket-noi.com kho tài liệu miễn phí

CHƯƠNG 3. KỸ THUẬT GIẤU TIN TRÊN MIỀN BIẾN ĐỔI

DCT
Có thể chia các kỹ thuật thuỷ vân theo hai hướng tiếp cận chính:
Hướng thứ nhất dựa trên miền không gian ảnh tức là tiến hành khảo sát
tín hiệu và hệ thống rời rạc một cách trực tiếp trên miền giá trị rời rạc của các
điểm ảnh gọi là trên miền biến số độc lập tự nhiên. Sau đó, tìm cách nhúng
các thơng tin bản quyền vào ảnh bằng cách thay đổi các giá trị điểm ảnh sao
cho không ảnh hưởng nhiều đến chất lượng ảnh và đảm bảo sự bền vững của
thông tin nhúng trước những tấn cơng có thể có đối với bức ảnh đã nhúng
thuỷ vân. Điển hình cho cách tiếp cận này là phương pháp tách bit ít quan
trọng nhất (LSB-Least Significant Bit) và phương pháp sử dụng chuỗi số giả
ngẫu nhiên.
Hướng thứ hai là sử dụng các phương pháp khảo sát gián tiếp khác
thông qua các kỹ thuật biến đổi. Các kỹ thuật biến đổi này làm nhiệm vụ
chuyển miền biến số độc lập sang các miền khác và như vậy tín hiệu và hệ
thống rời rạc sẽ được biểu diễn trong các miền mới với các biến số mới. Sau
đó, tìm cách nhúng thuỷ vân vào ảnh bằng cách thay đổi các hệ số biến đổi
trong những miền thích hợp để đảm bảo chất lượng ảnh và sự bền vững của
thuỷ vân sau khi nhúng. Các phép biến đổi được sử dụng phổ biến là DCT,
DFT (Discrete Fourier Transform) và DWT.
Kỹ thuật thuỷ vân sử dụng phép biến đổi DCT thường chia ảnh gốc
thành các khối, thực hiện phép biến đổi DCT với từng khối ảnh gốc để được
miền tần số thấp, miền tần số giữa và miền tần số cao. Đa số kỹ thuật thuỷ
vân ẩn bền vững sẽ chọn miền tần số giữa của mỗi khối để nhúng bit thuỷ vân
theo một hệ số k nào đó gọi là hệ số tương quan giữa chất lượng ảnh sau khi
nhúng thuỷ vân (tính ẩn của thuỷ vân) và độ bền vững của thuỷ vân

12


Ket-noi.com kho tài liệu miễn phí


3.1 Phép biến đổi cosin rời rạc
Biến đổi cosin rời rạc viết tắt là DCT-Discrete Cosine Transform được
đưa ra bởi Ahmed và các đồng nghiệp của ông vào năm 1974 [5]. Trong
trường hợp khảo sát miền không gian ảnh người ta thường biến đổi miền
không gian rời rạc tín hiệu điểm ảnh sang miền tần số rời rạc bằng các phép
biến đổi như Fourier, Cosin rời rạc hay Wavelet… Trong các phương pháp
biến đổi hay dùng thì các kỹ thuật thủy vân được trình bày trong đồ án này sử
dụng phép biến đổi cosin rời rạc .
Trong đồ án này trình bày một số kỹ thuật giấu tin trên miền biến đổi
DCT. Trong đó kỹ thuật biến đổi DCT được thực hiện như sau: Giả sử ta coi
miền dữ liệu của ảnh JPEG như một ma trận C mxn mỗi phần tử là một pixel
của ảnh, ta chia ảnh thành nhiều khối mỗi khối có kích thước 8x8 pixel, mỗi
khối sử dụng biến đổi DCT để biến đổi khối 8x8 pixel thành 64 hệ số DCT.
Vì ảnh gốc có kích thước rất lớn cho nên trước khi đưa vào biến đổi
DCT, ảnh được phân chia thành các khối vng, mỗi khối này thường có kích
thước 8 x 8 pixel và biểu diễn các mức xám của 64 điểm ảnh, các mức xám
này là các số nguyên dương có giá trị từ 0 đến 255. Việc phân khối này sẽ làm
giảm được một phần thời gian tính tốn các hệ số chung, mặt khác biến đổi
cosin đối với các khối nhỏ sẽ làm tăng độ chính xác khi tính tốn với dấu
phẩy tĩnh, giảm thiểu sai số do làm trịn sinh ra.
Hai cơng thức ở đây minh hoạ cho 2 phép biến đổi DCT thuận nghịch
đối với mỗi khối ảnh có kích thước 8 x 8. Giá trị x(n 1, n2) biểu diễn các mức
xám của ảnh trong miền không gian, X(k1, k2) là các hệ số sau biến đổi DCT
trong miền tần số.
(3.1)
(3.2)
13



Ket-noi.com kho tài liệu miễn phí

Với



Thuật tốn giấu tin trong miền biến đổi DCT sẽ sử dụng phương pháp
nhúng thuỷ vân trong miền tần số của ảnh, giải tần được sử dụng để chứa tín
hiệu thuỷ vân là miền tần số ở giữa của một khối DCT 8x8. Trong đó, các
khối DCT 8x8 là những khối ảnh cùng kích thước đã được chọn ra ngẫu nhiên
từ ảnh ban đầu và được áp dụng phép biến đổi cosin rời rạc DCT để chuyển
sang miền tần số. Mỗi tín hiệu thuỷ vân sẽ được chứa trong một khối.
Input: Watermark: Một chuỗi các bit b. Một ảnh F.
Output: Một ảnh sau khi thuỷ vân, F’. Khoá để giải mã K.
3.2 Kỹ thuật nén ảnh dạng chuẩn jpeg dùng biến đổi cosin rời rạc
3.2.1 Mã hoá và giải mã dùng biến đổi DCT
Nguyên tắc chính của phương pháp mã hố này là biến đổi tập các giá
trị pixel của ảnh trong miền không gian sang một tập các giá trị khác trong
miền tần số sao cho các hệ số trong tập giá trị mới này có tương quan giữa các
điểm ảnh gần nhau nhỏ hơn.

Hình 3.1. Sơ đồ mã hóa và giải mã dùng biến đổi DCT

14


Ket-noi.com kho tài liệu miễn phí

Mỗi khối 64 điểm ảnh sau biến đổi DCT thuận sẽ nhận được 64 hệ số
thực DCT (bảng 1). Mỗi hệ số này có chứa một trong 64 thành phần tần số

không gian hai chiều. Hệ số với tần số bằng không theo cả hai hướng (tương
ứng với k1 và k2 bằng 0) được gọi là hệ số một chiều DC, hệ số này chính là
giá trị trung bình của 64 điểm ảnh trong khối. 63 hệ số còn lại gọi là các hệ số
xoay chiều AC. Hệ số một chiều DC tập trung phần lớn năng lượng của ảnh.

Bảng 3.2. Các bước của quá trình mã hóa biến đổi DCT đối với 1 khối
Chú ý rằng bản thân biến đổi DCT không làm mất thơng tin vì DCT là
một biến đổi tuyến tính chuyển các giá trị của điểm ảnh từ miền không gian
thành các hệ số trong miền tần số. Nếu biến đổi DCT thuận và nghịch được
tính tốn với độ chính xác tuyệt đối và nếu các hệ số DCT không phải qua
bước lượng tử và mã hố thì ảnh thu được sau biến đổi DCT ngược sẽ giống
hệt ảnh gốc.

15


Ket-noi.com kho tài liệu miễn phí

3.2.2 Lượng tử và giải lượng tử
Sau khi thực hiện biến đối DCT, 64 hệ số sẽ được lượng tử hoá dựa trên
một bảng lượng tử gồm 64 phần tử Q(u,v) với 0≤u, v≤7. Bảng này được định
nghĩa bởi từng ứng dụng cụ thể. Các phần tử trong bảng lượng tử có giá trị từ
1 đến 255 được gọi là các bước nhảy cho các hệ số DCT. Quá trình lượng tử
được coi như là việc chia các hệ số DCT cho bước nhảy lượng tử tương ứng,
kết quả này sau đó sẽ được làm trịn xuống số ngun gần nhất. Cơng thức
(3.3) thể hiện việc lượng tử với F(u,v) là các hệ số DCT, FQ(u,v) là các hệ số
sau lượng tử, các hệ số này sẽ được đưa vào bộ mã hố Entropy.
(3.3)
Mục đích của việc lượng tử hoá là giảm số lượng bit cần để lưu trữ các
hệ số biến đổi bằng việc giảm độ chính xác của các hệ số này cho nên lượng

tử là q trình xử lý có mất thơng tin.
Q trình giải lượng tử ở phía bộ giải mã được thực hiên ngược lại. Các
hệ số sau bộ giải mã entropy sẽ nhân với các bước nhảy trong bảng lượng tử
(bảng lượng tử được đặt trong phần header của ảnh JPEG). Kết quả này sau
đó sẽ được đưa vào biến đổi DCT ngược.
3.2.3 Mã hóa và giải mã jpeg
Mã hoá là bước cuối cùng trong hệ thống nén ảnh dựa trên biến đổi
DCT. Chuẩn nén ảnh JPEG hiện nay dùng phương pháp mã hoá Huffman, đây
là phép mã hoá không làm mất thông tin. Phương pháp này dựa trên mơ hình
thống kê. Dựa vào dữ liệu gốc, người ta tính tần suất xuất hiện các hệ số. Việc
tính tần suất được thực hiện bằng cách duyệt tuần tự từ đầu khối đến cuối
khối, sau đó, những hệ số có tần suất cao được gắn cho một từ mã ngắn, các
hệ số có tần suất thấp được gán một từ mã dài. Với cách thức này chiều dài
trung bình của từ mã đã giảm xuống.
16


Ket-noi.com kho tài liệu miễn phí

Các hệ số thu được sau khi lượng tử hoá sẽ được sắp xếp thành một
chuỗi các ký hiệu theo kiểu “zig-zag” (theo đường zig-zag trong bảng 3.1) để
đặt các hệ số có tần số thấp lên trước các hệ số tần số cao. Các hệ số này sẽ
được mã hoá dựa trên bảng mã Huffman sao cho chiều dài trung bình của từ
mã là nhỏ nhất. Bảng mã này cũng sẽ được đặt trong phần mào đầu của ảnh
để thực hiện giải nén ảnh.
3.3 Một số kỹ thuật giấu tin trên miền biến đổi DCT
3.3.1 Thuật toán JSteg
Thuật toán JSteg được đề xuất bởi Derek Upham vào năm 1997 [3].
Đây là thuật toán được công bố đầu tiên cho hệ thống steganography cho ảnh
JPEG. Thuật toán này thay đổi tuần tự các bit LSB của hệ số DCT với bit của

thông điệp giấu. Thuật tốn này khơng địi hỏi một tính bí mật nào, bất cứ ai
biết được hệ thống steganography này cũng có thể lấy đươc thơng tin ẩn bởi
JSteg.
Thuật tốn JSteg

17


Ket-noi.com kho tài liệu miễn phí

Thuật tốn có thể mơ tả theo hình vẽ sau:

Hình 3.2 : Mơ tả q trình giấu tin trong hệ số DCT của thuật tốn J-steg .
3.3.2 Thuật toán OutGuess 0.1
Thuật toán OutGuess 0.1 là phiên bản đầu tiên được đề xuất bởi Niels
Provos [4] là thuật toán cải tiến từ thuật toán JSteg bằng cách sử dụng bộ khởi
tạo số giả ngẫu nhiên để chọn các hệ số DCT ngẫu nhiên. Hệ số DCT được
chọn ngẫu nhiên sẽ thay thế các bit LSB của hệ số với bit đã được mã hố của
thơng điệp mật cần giấu
Thuật toán OutGuess 0.1

3.3.3 Thuật toán F5
Thuật toán F5 được đề xuất bởi nhà khoa học người Đức Pfitzmann
và Westfeld vào năm 2001[3]. Thuật tốn này nhúng thơng
điệp vào LSB của các hệ số DCT theo bước đi giả ngẫu nhiên
thông qua tất cả các hệ số DCT của ảnh cover trong đó nó bỏ
18


Ket-noi.com kho tài liệu miễn phí


qua các hệ số DC (DCT=64) và các hệ số bằng 0. Nếu LSB của
hệ số DCT không phù hợp với bit thông điệp, giá trị tuyệt đối
của hệ số giảm đi 1. Nếu phép trừ dẫn đến 0 thì bit thơng điệp
phải nhúng vào hệ số tiếp theo, bởi vì ở phía người nhận,
thơng điệp chỉ được lấy ra ở các hệ số DCT khác 0. Đặc biệt
F5 sử dụng ma trận mã hoá (matric encoding) để giảm thiểu
số thay đổi cần thiết khi giấu thơng điệp. Với cách thức này
nó có thể giảm thiểu tối đa được khoảng trên 50% thay đổi
trên ảnh so với Jsteg. Theo miêu tả của thuật toán F5 phiên
bản 11, chương trình u cầu các thơng tin vào gồm có


Yếu tố chất lượng Q của ảnh stego



Ảnh vào ( dạng TIFF, BMP, JPEG, hoặc GIF)



Tên tệp đầu ra



Tệp chứa thơng điệp bí mật



Mật khẩu người dùng được sử dụng cho bộ tạo giả


ngẫu nhiên PRNG


Chú thích chèn vào phần header của ảnh (thường là

độ dài thông điệp)
Matrix encoding có 3 tham số (c,n,k) với c là số thay đổi
trên một nhóm gồm n hệ số DCT, k là số bit được nhúng.
Trong [8] tác giả sử dụng một matrix encoding đơn giản (1,2 k1,k), sử dụng một hàm băm để đưa ra k bit khi áp dụng cho 2 k
–1 hệ số.
Ví dụ, nếu chúng ta muốn nhúng 2 bit x 1,x2 (k=2) vào
nhóm 3 hệ số (22-1=3) a1, a2, a3 sẽ chỉ thay đổi một vị trí.
Chúng ta có thể bắt gặp 4 trường hợp xẩy ra sau:
19


Ket-noi.com kho tài liệu miễn phí

x1=a1 ⊕ a3,

x2= a2 ⊕ a3 ⇒ khơng thay đổi gì

x1≠ a1 ⊕ a3,

x2= a2 ⊕ a3 ⇒ thay đổi a1

x1=a1 ⊕ a3,

x2≠ a2 ⊕ a3 ⇒ thay đổi a2


x1≠ a1 ⊕ a3,

x2≠ a2 ⊕ a3 ⇒ thay đổi a3

Từ đó ta có thể lấy ra được x1, x2 dựa vào các trường
hợp trên.
Trường hợp tổng quát, chúng ta có một từ mã a với n vị
trí bit có thể thay đổi cho k bit thông điệp mật x. Đặt f là một
hàm băm dùng để lấy ra k bit từ một từ mã. Matrix encoding
có thể giúp chúng ta tìm ra một thay đổi phù hợp a thành a’
đổi với mọi a và x với x=f(a’) sao cho khoảng cách Hamming
d(a,a’) <= dmax
vì matrix encoding gồm ba phần (d max, n,k) cho nên một
từ mã với n vị trí sẽ thay đổi khơng q d max vị trí để nhúng k
bit. F5 thực hiện maxtrix encoding với dmax =1. Đối với (1,n,k)
từ mã có độ dài là n=2k – 1. Khi đó bỏ qua điểm hội tụ (tức hệ
số DCT bằng 0) chúng ta sẽ nhận được mật độ thay đổi là
D(k) =

1
1
= k
n +1 2

Và tỉ lệ nhúng
k
n

1

n

R(k)= = ld (n + 1) =

k
2 −1
k

Sử dụng mật độ thay đổi và tỉ lệ nhúng chúng ta có thể
định nghĩa hiệu suất nhúng W(k). Nó có thể chỉ ra giá trị bit
trung bình chúng ta có thể nhúng trên sự thay đổi đó

20


Ket-noi.com kho tài liệu miễn phí
R(k )
2k
=
.k
W(k)=
D(k ) 2 k − 1

Hiệu suất nhúng của (1,n,k) luôn luôn lớn hơn k. Bảng
2.1 chỉ ra tỉ lệ nhúng giảm trong khi hiệu suất nhúng tăng.
Tuy nhiên chúng ta có thể đạt được hiệu suất cao chỉ với
thông điệp rất nhỏ.

Bảng 3.2. Mối liên hệ giữa mật độ thay đổi và tỉ lệ nhúng
k


n

1
2
3
4
5
6
7

1
3
7
15
31
63
12
7
25
5
51
1

8
9

Mật độ thay
đổi (D(k))


Tỉ lệ nhúng
(R(k))

50.00%
25.00%
12.50%
6.25%
3.12%
1.56%
0.78%

100.00%
66.67%
42.86%
26.67%
16.13%
9.52%
5.51%

Hiệu suất
nhúng
W(k)
2
2.67
3.43
4.27
5.16
6.09
7.06


0.39%

3.14%

8.03

0.20%

1.76%

9.02

Bảng 3.3 đưa ra sự phụ thuộc giữa bit thông điệp x i và vị
trí bit được thay đổi a’j. Chúng ta chia phần phụ thuộc với mã
nhị phân của j tới cột a’ j vậy nên chúng ta có thể tìm ra hàm
băm rất nhanh
Khi đó f(a) = ⊕ in=1 ai .i
Bảng 3.3 Sự phụ thuộc (× ) giữa bit thơng điệp xi và các
bit từ mã a’j
21


Ket-noi.com kho tài liệu miễn phí

f(a’ a’ a’ a’ a’ a’ a’ a’

f(a’ a’ a’ a’
)

1


x1

×

2

)

1

x1

×

x2

2

3

4

5

×
×

×


×

7

×

×

×

x3

6

×

×

×

×

3

×
×

x2

×


Chúng ta có thể tìm ra vi trí bit s = x ⊕ f(a)
Khi

đó

từ



được

thay

đổi

trong

a’

=

s = 0(⇔ x = f(a))
 a nÕu

(a1, a2 ,...,as ,...,an ) ngợc lại

Chỳng ta cú th tỡm ra mt tham s k tốt nhất cho mọi
thông điệp để nhúng vào mọi vật mang cung cấp đủ khả năng
nhúng thông điệp sao cho thơng điệp vừa đủ trong vật mang.

Ví dụ, nếu chúng ta muốn nhúng một thông điệp 1000 bit vào
một vật mang có khả năng nhúng 50000 bit thì tỉ lệ nhúng
cần thiết là R=1000:50000=2%. Giá trị này nằm giữa R(k=8)
và R(k=9) trong bảng 2.1. Chúng ta chọn k=8 và có thể
nhúng 50000:255=196 từ mã với độ dài n=255, hay matrix
encoding là (1,255,8) có thể nhúng 196.8=1568 bit. Nếu
chúng ta chọn k=9 chúng ta khơng thể nhúng được thơng
điệp.
Thuật tốn F5 bao gồm các bước sau:
1.

Lấy phần thể hiện RGB của ảnh đầu vào (lấy dữ liệu

của ảnh).

22


Ket-noi.com kho tài liệu miễn phí

2.

Biến đổi miền dữ liệu của ảnh sang miền tần số

DCT sau đó lượng tử hoá các hệ số DCT theo Q ta được các hệ
số DCT đã lượng tử.
3.

Tính khả năng có thể nhúng khi không sử dụng


matrix encoding C = hDCT – hDCT /64 –h(0) –h(1)+ 0.49h, trong
đó hDCT là tơng số hệ số DCT, h(0) là số hệ số AC DCT bằng 0,
h(1) là số hệ số AC DCT có trị tuyệt đối bằng 1, hDCT/64 là số
hệ số DC, –h(1)+0.49h(1) = –0.51h là ước lượng mức độ hao
hụt.
4.

Mật khẩu người dùng được sử dụng để tạo ra bộ

khởi tạo giả ngẫu nhiên PRNG cái mà quyết định nhúng các
bít thơng điệp vào các vị trí ngẫu nhiên. PRNG cũng thường
được sử dụng để phát sinh một dịng bít giả ngẫu nhiên bằng
phép XOR với thơng điệp tạo ra nó một dịng bít ngẫu nhiên.
Trong q trình nhúng, hệ số DC và các hệ số =0 thường được
bỏ qua.
5.

Thông điệp được chia thành các đoạn gồm k bít,

mỗi đoạn nhúng vào một nhóm hệ số DCT 2 k–1 theo bước đi
giả ngẫu nhiên. Nếu giá trị băm của nhóm khơng phù hợp với
các bít thơng điệp, thì giá trị tuyệt đối của một trong những
hệ số trong nhóm bị giảm đi 1 cho phù hợp. Nếu hệ số trở
thành 0 (hệ số này được gọi là điểm hội tụ - shrinkage), và khi
đó k bít thơng điệp này sẽ được nhúng trong nhóm hệ số DCT
tiếp theo (lưu ý LSB(d)= d mod 2 với d > 0, và LSB(d)=1–d
mod 2 với d < 0)
6.

Nếu độ dài thông điệp phù hợp với khả năng có thể


giấu trong ảnh thì q trình giấu thành công, ngược lại sẽ
thông báo lỗi và cho biết độ dài lớn nhất của ảnh có thể giấu
23


Ket-noi.com kho tài liệu miễn phí

để điều chỉnh thơng điệp giấu hoặc thay đổi ảnh dùng để giấu
thơng điệp.
Thuật tốn giấu F5

24


Ket-noi.com kho tài liệu miễn phí

CHƯƠNG 4. KỸ THUẬT PHÁT HIỆN ẢNH CÓ GIẤU TIN
TRÊN MIỀN BIẾN ĐỔI DCT
4.1. Phát hiện tin ẩn giấu (Steganalysis)
Steganalysis là kỹ thuật phát hiện sự tồn tại của thông tin ẩn giấu trong
multimedia. Giống như thám mã, mục đích của Steganalysis là phát hiện ra
thơng tin ẩn và phá vỡ tính bí mật của vật mang tin ẩn.
Phân tích tin ẩn giấu thường dựa vào các yếu tố sau:
- Phân tích dựa vào các đối tượng đã mang tin.
- Phân tích bằng so sánh đặc trưng: So sánh vật mang tin chưa được
giấu tin với vật mang tin đã được giấu tin, đưa ra sự khác biệt giữa chúng.
- Phân tích dựa vào thơng điệp cần giấu để dị tìm.
- Phân tích dựa vào các thuật toán giấu tin và các đối tượng giấu đã
biết: Kiểu phân tích này phải quyết định các đặc trưng của đối tượng giấu tin,

chỉ ra công cụ giấu tin (thuật tốn) đã sử dụng.
- Phân tích dựa vào thuật toán giấu tin, đối tượng gốc và đối tượng sau
khi giấu tin.
Các phương pháp phân tích có thể phân thành 3 nhóm ([7]):
- Phân tích trực quan: Thường dựa vào quan sát hoặc dùng biểu đồ
histogram giữa ảnh gốc và ảnh chưa giấu tin để phát hiện ra sự khác biệt giữa
hai ảnh căn cứ đưa ra vấn đề nghi vấn. Với phương pháp phân tích này
thường khó phát hiện với ảnh có độ nhiễu cao và kích cỡ lớn.
- Phân tích theo dạng ảnh: Phương pháp này thường dựa vào các dạng
ảnh bitmap hay là ảnh nén để đoán nhận kỹ thuật giấu hay sử dụng như các
ảnh bitmap thường hay sử dụng giấu trên miền LSB, ảnh nén thường sử dụng
kỹ thuật giấu trên các hệ số biến đổi như DCT, DWT, DFT. Phương pháp này
rất rộng.
25


×