Từ đó, xây dựng chương trình thử nghiệm cài đặt một số thuật toán thủy trên vân trên ảnh số nhằm ứng dụng xác thực thông tin và bảo vệ bản quyền cho dữ liệu ảnh số.. Thủy vân là kỹ thuật
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHÙNG THỊ LAN
HỆ THỐNG THỦY VÂN SỐ VÀ ỨNG DỤNG
LUẬN VĂN THẠC SĨ
Hà Nội - 2011
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 3MỤC LỤC
LỜI CAM ĐOAN 1
DANH MỤC CÁC CHỮ VIẾT TẮT 4
DANH MỤC CÁC BẢNG, HÌNH VẼ 5
MỞ ĐẦU 6
CHƯƠNG 1 - TỔNG QUAN VỀ KỸ THUẬT GIẤU TIN VÀ THỦY VÂN SỐ 8
1.1 KỸTHUẬTGIẤUTIN 8
1.1.1 Khái niệm giấu tin 8
1.1.2 Phân loại các kỹ thuật giấu tin 8
1.1.3 Giấu tin trong dữ liệu đa phương tiện 11
1.2 TỔNGQUANVỀTHỦYVÂNSỐ 14
1.2.1 Lịch sử phương pháp thủy vân số 14
1.2.2 Hệ thống thủy vân số 14
1.2.3 Các khả năng tấn công trên hệ thống thủy vân 16
1.2.4 Đặc trưng của thủy vân số 16
1.2.5 Các hướng ứng dụng của thủy vân số 17
CHƯƠNG 2 - MỘT SỐ THUẬT TOÁN THỦY VÂN TRÊN ẢNH SỐ 19
2.1.TỔNGQUANVỀẢNHSỐVÀXỬLÝẢNHBITMAP 19
2.1.1 Khái niệm về ảnh số và phân loại 19
2.1.2 Cấu tạo của ảnh bitmap 19
2.1.3 Xử lý ảnh bitmap 20
2.2. CÁCTHUẬTTOÁNTHỦYVÂNTRÊNMIỀNKHÔNGGIAN 21
2.2.1 Ý tưởng 21
2.2.2 Các phép toán sử dụng trong thuật toán 22
2.2.3 Thuật toán 1(SW) 23
2.2.4 Thuật toán 2 (Wu-Lee) 25
2.2.5 Thuật toán 3 (PCT) 27
2.2.6 Thuật toán 4 (LSB) 31
2.3.CÁCTHUẬTTOÁNTHỦYVÂNDỰATRÊNMIỀN DCT 32
Trang 42.3.1 Biến đổi cosin rời rạc DCT 32
2.3.2 Quy trình kỹ thuật thủy vân trên miền DCT 34
2.3.3 Thuật toán DCT 1 36
2.3.4 Thuật toán DCT 2 40
2.3.5 Thuật toán DCT 3 41
2.4.CÁCTHUẬTTOÁNTHỦYVÂNDỰATRÊNMIỀNDWT 43
2.4.1 Biến đổi sóng nhỏ rời rạc DWT 43
2.4.2 Thuật toán DWT1 48
2.4.3 Thuật toán DWT2 50
CHƯƠNG 3 - XÂY DỰNG ỨNG DỤNG 52
3.1.PHÁTBIỂUBÀITOÁN 52
3.2.PHÂNTÍCHBÀITOÁN 52
3.2.1 Đặc tả yêu cầu người sử dụng 52
3.2.2 Mô tả chức năng hệ thống 52
3.3.CHƯƠNGTRÌNHTHỬNGHIỆM 55
3.3.1 Chức năng nhúng thủy vân 55
3.3.2 Chức năng tách thủy vân 57
3.3.3 Kiểm tra tính xác thực thông tin 57
3.3.4 Kiểm tra tính bền vững 58
KẾT LUẬN 61
TÀI LIỆU THAM KHẢO 62
Trang 5DANH MỤC CÁC CHỮ VIẾT TẮT
SW Thuật toán thủy vân đơn giản (Simple Watermarking)
Wu-Lee Thuật toán thủy vân đặt theo tên 2 tác giả M.Y.Wu và
J.H.Lee
PCT Thuật toán thủy vân đặt theo tên 3 tác giả Hsiang-Kuang
Pan, Yu-YuanChen và Yu-chee Tseng LSB Bít quan trọng nhất (Least Significant Bit)
DCT Biến đổi Cosine rời rạc (Discrete Cosine Transform) DWT Biến đổi sóng nhỏ rời rạc (Discrete Wavelet Transform)
Trang 6DANH MỤC CÁC BẢNG, HÌNH VẼ
DANHMỤCCÁCBẢNG
Bảng 2.1 Ví dụ bảng các hệ số DCT 33
Bảng 2.2 Minh họa thuật toán DCT 1 38
Bảng 2.3 Minh họa thuật toán DCT3 42
Bảng 3.1 Bảng tổng hợp kết quả thử nghiệm 60
DANHMỤCCÁCHÌNHVẼ Hình 1.1 Sơ đồ phân loại kỹ thuật giấu tin 9
Hình 1.2 Ví dụ về thủy vân ẩn và thủy vân hiện 10
Hình 1.3 Sơ đồ hệ thống thủy vân số 15
Hình 2.1 Minh họa thuật toán 1(SW): nhúng bit 1 vào khối ảnh B 23
Hình 2.2: Minh họa chọn điểm ảnh giấu tin vào những khối ảnh một màu 24
Hình 2.3 Minh họa thuật toán Wu-Le: nhúng đoạn bit 011 26
Hình 2.4 Minh họa thuật toán 3 (TCP): nhúng đoạn bit “001010000001” 30
Hình 2.5 Minh họa thuật toán 4 (LSB): nhúng bít 1110 31
Hình 2.6 Phân chia 3 miền tần số của phép biến đổi DCT 34
Hình 2.7 Quy trình nhúng và tách thủy vân theo kỹ thủy vân trên miền DCT 35
Hình 2.8 Sự khác nhau giữa sóng(a) và sóng nhỏ(b) 43
Hình 2.9 Sơ đồ phân tách ảnh 2 chiều 45
Hình 2.10 Thể hiện bước phân tách ảnh 2 chiều 45
Hình 2.11 Sơ đồ bước xử lý ghép ảnh 2 chiều 46
Hình 2.12 Lược đồ sau ba mức phân tách theo kiểu hình chóp 47
Hình 2.13 Kết quả phân tách kiểu hình chóp 47
Hình 2.14 Lược đồ qua hai lần phân tách kiểu đóng gói 48
Hình 2.15 Kết quả phân tách kiểu đóng gói 48
Hình 3.1 Sơ đồ chức năng hệ thống 53
Hình 3.2 Giao diện khi mở ảnh gốc 55
Hình 3.3 Giao diện khi tạo thủy vân 56
Hình 3.4 Giao diện khi nhúng thủy vân 56
Hình 3.5 Giao diện khi tách thủy vân 57
Hình 3.6 Kết quả tách thủy vân từ ảnh chứa thủy vân không bị chỉnh sửa 58
Hình 3.7 Kết quả tách thủy vân từ ảnh sau khi tấn công tăng độ sáng 58
Hình 3.8 Chất lươ ̣ng ảnh sau kiểm ứng bằng Photoshop 59
Trang 7MỞ ĐẦU
1 Lý do chọn đề tài
Ngày nay, cùng với sự phát triển của công nghệ thông tin là sự phát triển mạnh
mẽ của các phương tiện dữ liệu số (như các bức ảnh, các audio, video ), việc đánh dấu bản quyền cho các dữ liệu này cũng ngày một cải tiến và nâng cao Tuy nhiên, công nghệ thông tin phát triển giúp cho việc chỉnh sửa, sao chép các dữ liệu số trở lên
dễ dàng điều này kéo theo một thực trạng là số lượng các bản sao chép bất hợp pháp của các dữ liệu số ngày một nhiều Làm thế nào để xác nhận bản quyền tác giả, phát hiện sự xuyên tạc thông tin là một nhu cầu thiết yếu nhằm bảo vệ bản quyền cho các phương tiện dữ liệu số Kỹ thuật thủy vân số (Digital Watermarking) là một trong những giải pháp đưa ra để giải quyết vấn đề này
Bằng cách sử dụng thủy vân, dữ liệu số sẽ bảo vệ khỏi sự sao chép bất hợp pháp Thủy vân là một mẩu tin được ẩn trực tiếp trong dữ liệu số Thủy vân luôn gắn kết với dữ liệu số Bằng trực quan thì khó có thể phát hiện được thủy vân trong dữ liệu chứa nhưng ta có thể tách được chúng bằng các chương trình có cài đặt thuật toán thủy vân Thủy vân tách được từ dữ liệu số chính là bằng chứng kết luận dữ liệu số có bị xuyên tạc thông tin hay vi phạm bản quyền không
Đó là những lí do mà em chọn đề tài “Hệ thống thủy vân số và ứng dụng”
làm nội dung nghiên cứu cho luận văn tốt nghiệp của mình
2 Mục đích của luận văn
Mục đích của luận văn là nghiên cứu hệ thống lý thuyết liên quan đến giấu tin trong đó tập trung vào nhánh thứ hai của giấu tin là thủy vân số Từ đó, xây dựng chương trình thử nghiệm cài đặt một số thuật toán thủy trên vân trên ảnh số nhằm ứng dụng xác thực thông tin và bảo vệ bản quyền cho dữ liệu ảnh số
3 Đối tượng và phạm vi nghiên cứu
Luận văn tập trung nghiên cứu các kỹ thuật thủy vân trên ảnh số Ứng dụng mà luận văn xây dựng là hệ thống nhúng và tách thủy vân nhằm xác thực nội dung thông tin và bảo về bản quyền ảnh số
Trang 8cài đặt thành công thuật toán thủy vân trên miền không gian nhằm ứng dụng xác thực nội dung thông tin và thuật toán thủy vân trên miền DCT nhằm ứng dụng xác định bản quyền tác giả
6 Bố cục của luận văn
Luận văn được chia làm 3 chương
Chương 1 Tổng quan về kỹ thuật giấu tin và thủy vân số
Nội dung chương 1 đưa ra các kiến thức cơ bản về kỹ thuật giấu tin và thủy vân, từ đó chỉ ra thủy vân là một nhánh của giấu tin Tuy nhiên, mục đích của thủy vân khác hoàn toàn so với mục đích của giấu tin mật và mã hóa Điều này được thể hiện cụ thể ở phần phân tích các hướng ứng dụng quan trọng của thủy vân trong đời thường
Có nhiều môi trường đa phương tiện để thực hiện giấu tin và cũng có chừng đó môi trường để thực hiện thủy vân
Chương 2 Một số thuật toán thủy vân trên ảnh số
Chương này trình bày một số thuật toán thủy vân trên các miền: miền không gian, miền tần số dựa vào biến đổi Cosine rời rạc DCT và miền tần số dựa vào biến đổi sóng nhỏ rời rạc DWT
Chương 3 Xây dựng ứng dụng
Phần này sẽ phân tích và thiết kế các modul cho hệ thống, cài đặt thuật toán thủy vân và chạy thử nghiệm chương trình Thuật toán được lựa chọn cài đặt là thuật toán thủy vân CPT trên miền không gian và thuật toán thủy vân dựa vào DCT trên miền tần số
Trang 9CHƯƠNG 1 - TỔNG QUAN VỀ KỸ THUẬT GIẤU TIN VÀ
1.1 Kỹ thuật giấu tin
Loài người đã biết đến nhiều phương pháp bảo vệ thông tin khác nhau, giải
pháp được biết đến sớm nhất đó là các hệ mật mã Với phương pháp này, thông tin ban
đầu được mã hóa, sau đó sẽ được giải mã nhờ khóa của hệ mã Độ an toàn của thông
tin là do độ phức tạp của việc tìm ra khóa giải mã Các hệ mật mã như DES, RSA,
NAPSACK…đã được sử dụng rất hiệu quả và phổ biến cho đến ngày nay Tuy nhiên,
việc truyền các thông tin sau khi mã hóa sẽ khiến đối phương nghi ngờ và tìm mọi
cách để thám mã Hơn nữa, việc mã hóa và giải mã chỉ đảm bảo an toàn cho dữ liệu
trong quá trình truyền thông, sau khi giải mã dữ liệu sẽ không được bảo vệ nữa
Một hướng nghiên cứu mới đã thu hút sự quan tâm của nhiều người trong
những năm gần đây đó là kỹ thuật giấu tin Cho tới nay kỹ thuật giấu tin đã được ứng
dụng mạnh mẽ ở nhiều nước trên thế giới
Vậy giấu tin là gì? 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 một đối tượng dữ liệu số khác Kỹ thuật giấu thông tin nhằm bảo
đảm an toàn và bảo mật thông tin với hai mục đích Một là bảo mật cho dữ liệu được
đem giấu, hai là bảo vệ cho chính đối tượng dùng để giấu dữ liệu vào.Yêu cầu cơ bản
của kỹ thuật giấu tin là không làm ảnh hưởng đến dữ liệu gốc
1.1.2 Phân loại các kỹ thuật giấu tin
Hai mục đích khác nhau của kỹ thuật giấu tin dẫn đến hai hướng kỹ thuật chủ
yếu là giấu tin mật và thủy vân [7]
Giấu tin mật là kỹ thuật giấu một lượng thông tin lớn vào một dữ liệu chứa nào
đó sao cho người khác khó phát hiện được một đối tượng có giấu tin bên trong hay
không nhằm bảo vệ lượng thông tin đem nhúng Đồng thời, các kỹ thuật giấu tin mật
còn quan tâm lượng tin có thể được giấu, lượng thông tin giấu được càng nhiều càng
tốt Tuy nhiên, lượng thông tin giấu càng lớn thì tính ẩn của thông tin giấu càng thấp
Thủy vân là kỹ thuật giấu (nhúng) một lượng thông tin nhỏ vào dữ liệu nguồn
nhằm ứng dụng bảo vệ bản quyền, phát hiện xuyên tạc thông tin cho dữ liệu được
nhúng Tùy theo mục đích của hệ thủy vân mà người ta lại chia thành các hướng nhỏ
như thủy vân dễ vỡ và thủy vân bền vững
Trang 10Hình 1.1 Sơ đồ phân loại kỹ thuật giấu tin
Thủy vân bền vững quan tâm nhiều đến việc nhúng những mẩu tin đòi hỏi độ bền vững cao của thông tin được giấu trước các biến đổi thông thường trên dữ liệu chứa Hướng này được sử dụng để bảo vệ bản quyền tác giả
Thủy vân dễ vỡ yêu cầu thông tin giấu sẽ bị sai lệch nếu có bất kỳ sự thay đổi nào trên dữ liệu chứa Hướng này được sử dụng để phát hiện xuyên tạc thông tin
Ở mỗi loại thủy vân bền vững hoặc thủy vân dễ vỡ lại chia thành hai loại dựa theo đặc tính đó là thủy vân ẩn và thủy vân hiện Thủy vân hiện cho phép nhìn thấy thông tin đem nhúng vào dữ liệu chứa Loại này được sử dụng cho mục đích công bố công khai về quyền sở hữu Ngược lại, thủy vân ẩn không cho phép nhìn thấy nội dung thông tin nhúng và nó được sử dụng với mục đích gài bí mật các thông tin xác nhận quyền sở hữu
Giấu tin (Information hiding)
Thủy vân bền vững (robust copyright marking)
Thủy vân dễ vỡ (Fragile watermarking)
Thủy vân hiện (Visible watermarking)
Trang 11Hình 1.2 Ví dụ về thủy vân ẩn và thủy vân hiện
Phân biệt giấu tin mật và thủy vân
Xét về tính chất, thủy vân giống giấu tin mật ở chỗ cả hai hướng này đều tìm cách nhúng thông tin mật vào một môi trường Nhưng về bản chất thì thủy vân và giấu tin có những nét khác ở một số điểm sau:
Mục tiêu của thủy vân là nhúng thông tin không lớn, thường là biểu tượng, chữ ký hay các đánh dấu khác vào môi trường phủ nhằm phục vụ việc xác nhận bản quyền Ngược lại, giấu tin mật yêu cầu lượng thông tin giấu là lớn
Thủy vân khác với giấu tin mật ở chỗ giấu tin sau đó cần tách lại tin còn thủy vân tìm cách biến tin giấu thành một thuộc tính của vật mang
Chỉ tiêu quan trọng nhất của một thủy vân là tính bền vững, của giấu tin
là dung lượng
Thủy vân có thể vô hình hoặc hữu hình trên vật mang còn giấu tin chỉ được vô hình
Trang 121.1.3 Giấu tin trong dữ liệu đa phương tiện
Kỹ thuật giấu tin đã được nghiên cứu và áp dụng trong nhiều môi trường dữ liệu khác nhau như trong dữ liệu đa phương tiện (văn bản, hình ảnh, âm thanh, phim), trong sản phẩm phần mềm và gần đây là những nghiên cứu trên lĩnh vực cơ sở dữ liệu quan hệ Trong các dữ liệu đó, dữ liệu đa phương tiện là môi trường chiếm tỷ lệ chủ yếu trong các kỹ thuật giấu tin
1.1.3.1 Giấu tin trong ảnh
Hiện nay giấu tin trong ảnh chiếm tỷ lệ lớn nhất trong các chương trình ứng dụng, các phần mềm, các hệ thống giấu tin trong phương tiện do lượng thông tin đượ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ò quan trọng trong hầu hết các ứng dụng bảo vệ an toàn thông tin như: xác thực thông tin, bảo
vệ bản quyền tác giả, điều khiển truy cập, giấu tin bí mật…Do đó vấn đề này đã nhận được sự quan tâm lớn của các cá nhân, tổ chức, trường đại học, và viện nghiên cứu trên thế giới [1]
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à không ai biết được đằng sau đó mang những thông tin có ý nghĩa Ngày nay, khi ảnh số đã được sử dụng phổ biến, giấu thông tin trong ảnh đã đem lại 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ụ đối với các nước phát triển, chữ ký tay đã được số hóa và lưu trữ sử dụng như hồ sơ các nhân của các dịch vụ ngân hàng và tài chính, nó được dùng để xác 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 toà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 xác thực chữ ký, xác thực thông tin đã trở thành một vấn đề quan trọng khi 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 Hơn nữa có 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óa và lưu trữ trong hệ thống máy tính hay trên mạng Chúng dễ bị lấy cắp và bị thay đổi bởi các phần mềm chuyên dụng Việc xác 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 và cấp thiết 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, tương tự cách 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 chất lượng ảnh gần như không thay đổi đặc biệt đối với ảnh mầu hay ảnh đa cấp xám
Các kỹ thuật giấu tin trong ảnh hiện nay đều thuộc vào một trong 3 nhóm:
Giấu tin trong miền quan sát Đây là kỹ thuật giấu tin vào các bit có trọng số
thấp (Least Significant Bit) Phương pháp này được áp dụng trên các ảnh bitmap
Trang 13không nén, các ảnh dùng bảng mầu Ý tưởng chính của phương pháp là lấy từng bit của mẫu tin mật rồi rải nó lên ảnh mang, thay đổi bit có trọng số thấp của ảnh bằng các bit của mẫu tin mật và mắt người không cảm nhận được sự thay đổi đó
Các phương pháp dựa vào kỹ thuật biến đổi ảnh Ví dụ biến đổi từ miền không
gian sang miền tần số nhằm đảm bảo tính bền vững của thông tin được gấu, sử dụng cho kỹ thuật thủy vân bền vững Ý tưởng chính là nhúng thông tin bằng cách điều chế các hệ số của phép biến đổi Cosin rời rạc theo các bit tin cần giấu và sự làm tròn lỗi khi lượng hóa Một số phương pháp khác thuộc nhóm này sử dụng ảnh như mô hình vật lý với các dải phổ thể hiện mức năng lượng Khi đó giấu tin giống như việc điều chế một tín hiệu dải hẹp vào một dải tần rộng (ảnh phủ)
Các phương pháp sử dụng mặt nạ giác quan Nhóm này dựa trên nguyên lý
đánh lừa giác quan của con người bằng cách làm mờ bức ảnh “Mặt nạ” ở đây ám chỉ hiện tượng mắt người không cảm nhận được một tín hiệu nếu nó ở bên cạnh một tín hiệu nhất định nào đó
1.1.3.2 Giấu tin trong audio
Giấu thông tin trong audio mang những đặc điểm riêng khác với giấu thông tin trong các đối tượng đa phương tiện khác Một trong những 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 làm ảnh hưởng nhiều đến chất lượng của dữ liệu gốc Để đảm bảo yêu cầu này, kỹ thuật giấu thông tin trong ảnh phụ thuộc vào hệ thống thị giác của con người, còn kỹ thuật giấu thông tin trong audio lại phụ thuộc vào hệ thống thính giác Và một vấn đề khó khăn ở đây là hệ thống thích giác của con người khá nhạy cảm, nghe được các tín hiệu ở các giải tần rộng và công suất lớn nên những đoạn thông tin nhiễu dễ dàng bị phát hiện làm cho việc giấu tin gặp khó khăn Nhưng hệ thống thính giác lại kém trong việc phát hiện sự khác biệt của các giả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 Các mô hình phân tích tâm lý đã chỉ ra điểm yếu trên và thông tin này sẽ giúp ích cho việc chọn các audio thích hợp cho việc giấu tin Vấn đề khó khăn thứ hai của giấu thông tin trong audio là kênh truyền tin 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 Các phương pháp giấu thông tin trong audio đều lợi dụng điểm yếu trong hệ thống thính giác của con người Các thuật toán giấu tin trong audio được thực hiện trong miền biến đổi tần số, sử dụng kỹ thuật: mã hóa bit thấp, mã hóa tiếng vang, mã hóa pha,
Mã hóa bít thấp: Cũng như các file ảnh, phương pháp chèn vào các bit ít quan
trọng cũng lưu trữ dữ liệu giấu vào trong các bit ít quan trọng của file audio Phương pháp mã hóa LSB là cách đơn giản nhất để nhúng thông tin vào trong dữ liệu audio Phương pháp này sẽ thay thế bít ít quan trọng nhất (thường là bít cuối) của mỗi mẫu dữ liệu bằng bit thông tin giấu
Trang 14Mã hóa pha là kỹ thuật thực hiện giấu tin trong audio thông qua việc thay thế
pha của một segment audio ban đầu bằng một pha tham chiếu (referency phase) thể hiện dữ liệu Pha của các segment tiếp theo sẽ được điều chỉnh sao cho duy trì mối quan hệ giữa các đoạn
Kỹ thuật giấu dựa vào tiếng vang thực hiện giấu tin bằng cách thêm vào tiếng
vang trong tín hiệu gốc Dữ liệu nhúng được giấu bằng cách thay đổi 3 tham số của tiếng vang: biên độ ban đầu, tỉ lệ phân rã và độ trễ Khi thời gian giữa tín hiệu gốc và tiếng vang giảm xuống, hai tín hiệu có thể trộn lẫn và người nghe khó có thể phân biệt giữa hai tín hiệu Số lượng tin giấu có liên quan đến thời gian trễ của tiếng vang và biên độ của nó
1.1.3.3 Giấu tin trong video
Cũng giống như giấu tin trong ảnh hay trong audio, 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ư kiểm soát sao chép thông tin, nhận thực thông tin và bảo vệ bản quyền tác giả Nhiều kỹ thuật giấu tin trong ảnh được áp dụng cho giấu tin trong video nhưng đảm bảo các ràng buộc:
- Do dữ liệu video là rất lớn nên thời gian để giấu tin cũng rất lớn Vì vậy, việc giấu tin phải được thực hiện trong thời gian thực để truyền các tín hiệu video đi
- Do giới hạn của băng thông nên việc giấu tin không được làm thay đổi kích thước của dữ liệu
- Các dữ liệu video thường được lưu ở dạng nén, thông thường dựa vào quá trình xử lý sự thay đổi ảnh từ khung hình này đến khung hình khác Vì vậy, khi giấu tin cần đảm bảo rằng thông tin không quá dễ phát hiện ra bằng mắt thường
1.1.3.4 Giấu tin trong văn bản
Trong trao đổi thông tin qua hệ thống máy tính, văn bản chiếm một tỷ lệ rất lớn
so với các loại phương tiện chứa khác Tuy vậy, giấu tin trong văn bản lại chưa được quan tâm nghiên cứu nhiều Các nghiên cứu về giấu tin trong văn bản được chia theo hai hướng:
Thứ nhất, văn bản được sử dụng để giấu tin là những văn bản được chụp lại và lưu trên máy như một bức ảnh nhị phân Theo hướng này, các kỹ thuật giấu tin được thực hiện như kỹ thuật giấu tin trong ảnh
Thứ hai, phương tiện chứa sử dụng cho quá trình giấu tin được lưu dưới dạng văn bản Theo hướng này, giấu tin được thực hiện bằng cách điều chỉnh khoảng cách giữa các dòng hoặc thay đổi kích thước một số ký tự tại một số vị trí trên văn bản mà không làm ảnh hưởng nhiều đến nội dung văn bản gốc
Trang 151.2 Tổng quan về thủy vân số
1.2.1 Lịch sử phương pháp thủy vân số
Phương pháp thủy vân đầu tiền được thực hiện là thủy vân trên giấy Đó là một thông tin nhỏ được nhúng chìm trong giấy để thể hiện bản gốc hoặc bản chính thức Theo Hartung và Kutter [8], thủy vân trên giấy đã bắt đầu được sử dụng vào năm
1292 ở Fabriano – Italy – nơi được coi là nơi sinh của thủy vân Sau đó, thủy vân đã nhanh chóng lan rộng trên toàn Italy và rồi trên các nước châu Âu và Mỹ Ban đầu, thủy vân giấy được dùng với mục đích xác định nhãn hàng và nhà máy sản xuất Sau này được sử dụng để xác định định dạng, chất lượng và độ dài, ngày tháng của sản phẩm
Đến thế kỷ thứ 18, nó bắt đầu được dùng cho tiền tệ và cho đến nay thủy vân vẫn là một công cụ được dùng rộng rãi với mục đích bảo mật cho tiền tệ, chống làm tiền giả Thuật ngữ “thủy vân” (watermarking) được đưa ra vào cuối thế 18, nó bắt nguồn từ một loại mực vô hình khi viết lên giấy và chỉ hiển thị khi nhúng giấy đó vào nước Năm 1988, Komatsu và Tominaga đã đưa ra thuật ngữ “thủy vân số” (Digital watermarking)
Vậy thủy vân số là gì? Thủy vân số là quá trình sử dụng các thông tin (ảnh, chuỗi bít, chuỗi số) nhúng một cách tinh vi vào dữ liệu số (ảnh số, audio, video hay text) nhằm xác định thông tin bản quyền của tác phẩm số Mục đích của thủy vân số là bảo vệ bản quyền cho phương tiện dữ liệu số mang thông tin thủy vân
1.2.2 Hệ thống thủy vân số
Hệ thống thủy vân số là quá trình sử dụng một thủy vân nhúng vào trong một
dữ liệu số để được một dữ liệu số có chứa thủy vân hay gọi là dữ liệu có bản quyền
Dữ liệu có bản quyền này sẽ được phân phối trên kênh truyền tin Trong quá trình phân phối, dữ liệu bản quyền có thể bị tấn công trái phép hoặc yếu tố gây nhiễu Nếu
dữ liệu số bản quyền bị nghi ngờ sao chép trái phép hoặc chỉnh sửa thông tin thì có thể xác minh nhờ quá trình tách thủy vân đã nhúng Như vậy, hệ thống thủy vân số nói chung bao gồm 2 quá trình là quá trình nhúng thủy vân và quá trình tách thủy vân
Thủy vân mang thông tin bảo mật hoặc bản quyền về dữ liệu chứa
Khóa thủy vân được dùng cho cả phiên nhúng và phát hiện thủy vân Khóa thủy vân là duy nhất với mỗi thủy vân Khóa đó là khóa bí mật, chỉ tác giả mới biết Điều
đó nói lên rằng chỉ tác giả mới phát hiện ra được thủy vân Tùy từng bộ nhúng thủy vân mà có các yêu cầu với khóa thủy vân
Quá trình nhúng thủy vân:
Giai đoạn này gồm thông tin khóa thủy vân, thủy vân, dữ liệu chứa và bộ nhúng thủy vân
Trang 16Dữ liệu chứa bao gồm các đối tượng như văn bản, audio, video, ảnh… dạng số, được dùng làm môi trường để giấu tin
Bộ nhúng thủy vân là chương trình được cài đặt những thuật toán thủy vân và được thực hiện với một khóa bí mật
Thủy vân sẽ được nhúng vào trong dữ liệu chứa nhờ một bộ nhúng thủy vân Kết quả quá trình này là được dữ liệu chứa đã nhúng thủy vân gọi là dữ liệu có bản quyền và được phân phối trên các môi trường khác nhau Trên đường phân phối có nhiễu và sự tấn công từ bên ngoài Do đó yêu cầu các kỹ thuật thủy vân số phải bền vững với cả nhiễu và sự tấn công trên
Quá trình tách thủy vân:
Quá trình tách thủy vân được thực hiện thông qua một bộ tách thủy vân tương ứng với bộ nhúng thủy vân cùng với khóa của quá trình nhúng Kết quả thu được là một thủy vân Thủy vân thu được có thể giống với thủy vân ban đầu hoặc sai khác do nhiễu và sự tấn công trên đường truyền
Hình 1.3 Sơ đồ hệ thống thủy vân số
Kênh truyền tin
Bộ nhúng thủy vân
Bộ tách thủy vân Thủy vân bản quyền Dữ liệu
Khóa thủy vân
Trang 171.2.3 Các khả năng tấn công trên hệ thống thủy vân
Thủy vân bền vững phải vượt qua được các tấn công ngẫu nhiên và cố ý Sau đây là một số khả năng tấn công được biết đến nhiều nhất
Tấn công đơn giản: là dạng tấn công cố gắng làm hỏng thủy vân đã được
nhúng bằng cách thao tác lên toàn bộ dữ liệu đã được nhúng thủy vân mà không có ý định nhận dạng để tách lấy thủy vân
Tấn công phát hiện: là sự tấn công với mục đích loại bỏ đi mối quan hệ và vô
hiệu hóa khả năng khôi phục thủy vân, làm cho bộ phát hiện không thể xác định được thủy vân Điều này được thực hiện chủ yếu bằng cách thay đổi hình dạng hình học như: phóng to thu nhỏ, xoay, cắt xén, xóa hoặc chèn thêm điểm ảnh và các phép biến đổi hình học…
Tấn công nhập nhằng: là sự tấn công với mục đích gây nhầm lẫn bằng cách
tạo ra dữ liệu gốc giả hoặc dữ liệu đã được nhúng thủy vân giả Ví dụ: kẻ tấn công có thể làm giản tính xác thực của thủy vân bằng cách nhúng một hoặc nhiều thủy vân bổ sung sao cho thủy vân mới không thể phân biệt được với thủy vân ban đầu – thủy vân dùng để xác thực
Tấn công loại bỏ: nhằm mục đích phân tích để xác định ra thủy vân hoặc dữ
liệu gốc, tách dữ liệu đã được nhúng thủy vân thành dữ liệu gốc và thủy vân
Cần chú ý rằng sự phân biệt trên nhiều khi không rõ ràng và nhiều khả năng tấn công không thể phân loại được vào một nhóm cụ thể nào cả
1.2.4 Đặc trưng của thủy vân số
Như đã đề cập trước đây, kỹ thuật thủy vân số rất hữu dụng khi ta muốn nhúng siêu dữ liệu vào trong nội dung số Có một số cơ chế như sử dụng phần đầu của file dữ liệu gốc để lưu trữ siêu dữ liệu Tuy nhiên khi muốn chèn các thủy vân hiện vào ảnh và video, hoặc thêm thông tin về audio trong audio thì kỹ thuật thủy vân khá phức tạp vì
nó có các đặc trưng chính sau đây:
Tính không thấy được (ẩn): Khi nội dung số được nhúng thủy vân ta có thể
không nhìn thấy được nội dung đã được nhúng vì gần như việc nhúng thủy vân vào nội dung đa phương tiện sẽ không làm thay đổi nhiều nội dung đa phương tiện đó so với nguyên bản của nó Có nhiều phương pháp khác nhau để đạt được điều đó Chẳng hạn, phương pháp nén mất dữ liệu nhằm làm giảm sự tồn tại của dữ liệu đến mức chỉ còn là dòng tín hiệu nhỏ nhất Các nghiên cứu về thủy vân trước đây thường tập trung thiết
kế dấu thủy vân vô hình và đặt chúng trong vùng tín hiệu không quan trọng về mặt cảm nhận, ví dụ như vùng tần số cao hoặc các bít ít quan trọng Các kỹ thuật nghiên cứu gần đây (chẳng hạn như kỹ thuật trải phổ) lại chèn thủy vân vào vùng quan trọng
về mặt cảm nhận Thực nghiệm cho thấy, các kỹ thuật này không những đảm tính ẩn của thủy vân mà còn nâng cao tính bền vững của thủy vân chống lại các tấn công vào
dữ liệu
Trang 18Tính bền vững: thủy vân tạo ra phải bền vững với bất kỳ thao tác chỉnh sửa
nào lên dữ liệu gốc Thủy vân sẽ không bị thay đổi hay phá hủy trước các hành vi có chủ tâm hoặc các hành vi làm thay đổi hình dạng hình học của dữ liệu gốc Ví dụ: chuyển đổi từ tín hiệu tương tự sang tín hiệu số, từ tín hiệu số sang tín hiệu tương tự, cắt xén, lấy mẫu, quay, co dãn tỷ lệ và nén Tính bền vững của thủy vân bao gồm 2 yêu cầu: thủy vân còn tồn tại trong dữ liệu sau khi biến đổi dữ liệu và có thể tách được thủy vân nhờ bộ tách thủy vân
Để đạt được tính bền vững một giải pháp đưa ra là đặt thủy vân trong vùng tín hiệu quan trọng về mặt cảm nhận Vì khi dữ liệu bị thay đổi, độ trung thực của dữ liệu chỉ được đảm bảo khi vùng tín hiệu quan trọng về mặt cảm nhận còn tồn tại nguyên vẹn trong khi vùng không quan trọng có thể bị thay đổi rất nhiều
Tính dễ hỏng: là đặc tính đối ngược hoàn toàn với tính bền vững Thủy vân sẽ
bị phá hủy bởi bất cứ phương thức chỉnh sửa nào trên dữ liệu, vì vậy bất kỳ thao tác nào tác động vào dữ liệu cũng sẽ bị phát hiện
Tính không tách rời: khi nội dung số đã được nhúng thủy vân thì không thể
tách thủy vân ra khỏi nội dung số để lấy lại nội dung gốc
Tính bảo mật: Kỹ thuật thủy vân giúp ngăn chặn việc sử dụng vi phạm bản
quyền nội dung số Khóa thủy vân đảm bảo chỉ có tác giả mới có quyền chỉnh sửa thủy vân có trong nội dung số
1.2.5 Các hướng ứng dụng của thủy vân
Bảo vệ bản quyền tác giả (copyright protection): Đây là ứng dụng cơ bản
nhất của kỹ thuật thủy vân [2] Trong thực tế, nhiều tác phẩm đã có tác quyền nhưng vẫn bị sử dụng sai mục đích Các thông báo tác quyền này thường được đặt ở một vị trí nào đó trên tác phẩm được phân phối Chẳng hạn, ta thường thấy trên các tài liệu văn bản là “copyright ngày người sở hữu ” hay trên các tác phẩm âm thanh thì được đặt trên băng đĩa vật lý hoặc trên bao bì, Vấn đề bảo vệ bản quyền này không được đảm bảo vì không quá khó để loại bỏ nó ra khỏi một tài liệu khi cần sao chép Ví dụ, một giáo viên sao chép một số trang từ quyển sách mà quên sao chép thông báo tác quyền
ở trang tiêu đề Một ví dụ khác nữa là ảnh của người mẫu Lena- một ảnh thử thông thường nhất trong lĩnh vực xử lý ảnh Ban đầu nó là một ảnh phóng to lồng giữa trang tạp chí của Playboy Khi ảnh được scan và dùng cho mục đích kiểm thử, ảnh đã bị cắt xén chỉ còn khuôn mặt và vai của Lena, dòng chữ Playboy đánh dấu tác quyền cũng bị cắt Ngoài ra, những dòng chữ thông tin về tác quyền này cũng làm giảm bớt vẻ đẹp của bức ảnh
Do các dấu thủy vân có thể vừa không thể nhìn thấy vừa không thể tách rời tác phẩm chứa nó nên sẽ là giải pháp tốt cho việc bảo vệ bản quyền tác giả Dấu thủy vân (một thông tin nào đó mang ý nghĩa quyền sở hữu tác giả) sẽ được nhúng vào trong các sản phẩm, dấu thủy vân đó chỉ người chủ sở hữu hợp pháp các sản phẩm đó có và
Trang 19được dùng làm minh chứng cho bản quyền sản phẩm Giả sử có một dữ liệu dạng đa phương tiện như ảnh, âm thanh, video cần được lưu thông trên mạng Để bảo vệ các sản phẩm chống lại hành vi lấy cắp hoặc làm nhái cần phải có một kỹ thuật để “dán tem bản quyền” vào sản phẩm này Việc dán tem hay chính là việc nhúng thủy vân cần phải đảm bảo không để lại một ảnh hưởng lớn nào đến việc cảm nhận sản phẩm Yêu cầu kỹ thuật đối với ứng dụng này là thủy vân phải tồn tại bền vững cùng với sản phẩm, muốn bỏ thủy vân này mà không được phép của người chủ sở hữu thì chỉ có một cách duy nhất là phá hủy sản phẩm
Xác thực thông tin và phát hiện xuyên tạc thông tin (authentication and tamper detection) : dấu thủy vân không chỉ được dùng để chỉ ra thông tin bản quyền
tác giả mà còn được dùng để xác thực thông tin và phát hiện xuyên tạc thông tin Dấu thủy vân sẽ được nhúng trong một tác phẩm sau đó được lấy ra và so sánh với dấu thủy vân ban đầu Nếu có sự sai lệch chứng tỏ tác phẩm gốc đã bị tấn công và xuyên tạc Các thủy vân nên được ẩn để tránh sự tò mò của đối phương, hơn nữa việc làm giả các thủy vân hợp lệ hay xuyên tạc thông tin nguồn cũng cần xét đến Trong các ứng dụng thực tế, người ta mong muốn tìm được vị trí bị xuyên tạc cũng như phân biệt được các thay đổi (ví dụ như phân biệt một đối tượng đa phương tiện chứa thông tin giấu đã bị thay đổi, xuyên tạc nội dung hay chỉ bị nén mất dữ liệu) Yêu cầu chung đối với ứng dụng này là khả năng giấu thông tin cao và thủy vân không bền vững
Dấu vân tay hay dán nhãn (fingerprinting and labeling): Thủy vân trong những ứng dụng này được sử dụng để nhận diện người gửi hay người nhận một thông tin nào đó Ví dụ các vân khác nhau sẽ được nhúng vào các bản copy khác nhau của thông tin gốc trước khi chuyển cho nhiều người Với những ứng dụng này, yêu cầu là đảm bảo độ an toàn cao cho các thủy vân, tránh khả năng xóa dấu vết trong khi phân phối
Điều khiển truy nhập (copy control): Các thiết bị phát hiện thủy vân (ở đây
sử dụng phương pháp phát hiện thủy vân đã giấu mà không cần thông tin gốc) được gắn sẵn vào trong các hệ thống đọc ghi, tùy thuộc vào việc có thủy vân hay không để điều khiển (cho phép/cấm) truy cập Ví dụ hệ thống quản lý sao chép DVD đã được ứng dụng ở Nhật
Trang 20CHƯƠNG 2 - MỘT SỐ THUẬT TOÁN THỦY VÂN TRÊN ẢNH SỐ
2.1 Tổng quan về ảnh số và xử lý ảnh Bitmap
2.1.1 Khái niệm về ảnh số và phân loại
Một bức ảnh số là một mảnh dữ liệu hai chiều (2D) của nhiều điểm màu (pixel) Thực chất là một tập hợp các điểm màu liên tiếp xếp liền nhau hoặc tập hợp các đường hình học nhằm miêu tả một phong cảnh, sự vật hay một chủ đề Trên máy tính, ảnh được lưu lại trên các file nhị phân theo các định dạng do nhà sản xuất quy định
Có khoảng hơn 50 định dạng ảnh khác nhau được chia làm 2 dạng cơ bản là ảnh bitmap và ảnh véc tơ
Ảnh bitmap: được xây dựng từ rất nhiều các điểm màu pixel, các pixel này
được sắp xếp với nhau theo một trật tự nhất định Các ảnh có độ phân dải cao (ảnh chất lượng cao) bao gồm nhiều pixel và chiếm nhiều không gian bộ nhớ hơn những bức ảnh có độ phân dải thấp Các loại ảnh bitmap phổ biến là PNG, GIF, BMP, JPEC được tạo từ các phần mềm như Adobe Photoshop, Corel Photopaint
Chất lượng ảnh bitmap sẽ thay đổi khi chúng ta phóng to hay thu nhỏ kích thước ảnh Nhìn chung, ảnh bitmap có chất lượng tốt, hình ảnh và màu sắc trung thực nhưng lại tốn không gian lưu trữ, tốc độ hiển thị chậm và tương đối phức tạp trong việc xử lý ảnh
Ảnh vector: được xây dựng từ nhiều chương trình khác nhau Nếu như ảnh
bitmap lưu trữ các điểm ảnh thì ảnh vector lại lưu trữ các lệnh dùng để vẽ hình ảnh đó Các đối tượng cơ bản trong ảnh vector gồm có các đường thẳng, đường cong và một số hình toán học cơ bản (vuông, tròn, elip ) cùng với thuộc tính màu sắc, độ dày đường nét ảnh vector cho chất lượng ảnh cao hơn ảnh bitmap Ảnh vector cho phép biến đổi theo tỷ lệ nên chúng không phụ thuộc vào độ phân giải, việc tăng hay giảm kích thước ảnh không làm ảnh hưởng tới chất lượng ảnh Các file ảnh vector phổ biến là WMF, CDR, CGM
2.1.2 Cấu tạo của ảnh bitmap
Cấu tạo một file ảnh bitmap gồm 3 phần cơ bản: phần đầu (Bitmapheader), bảng màu (palette) và dữ liệu (bitmapdata)
Phần đầu (bitmapheader): chứa thành phần biCount cho biết số bit dành cho
mỗi điểm ảnh và số lượng màu lớn nhất của ảnh Bicount có thể nhận các giá trị sau:
Trang 21+ Bicount =1: ảnh Bitmap là một ảnh đen trắng, mỗi bit biểu diễn một điểm ảnh
Nếu bit mang giá trị 0 thì điểm ảnh là đen, bit mang giá trị 1 thì điểm ảnh là điểm trắng
+ Bicount =4: ảnh Bitmap là ảnh 16 màu, mỗi điểm ảnh được biểu diễn bởi 4 bit + Bicount =8: ảnh Bitmap là ảnh 256 màu, mỗi điểm ảnh được biểu diễn bởi 1
byte
+ Bicount =16: ảnh Bitmap là ảnh Highcolor, mỗi dãy 2 byte liên tiếp trong bitmap
biểu diễn cường độ tương đối của màu đỏ, xanh lá cây, xanh lơ của một điểm ảnh
+ Bicount 24: Bitmap là ảnh Truecolor, mỗi dãy 3 byte liên tiếp trong bitmap biểu
diễn cường độ tương đối của màu đỏ, xanh lá cây, xanh lơ (Red, Green, Blue) của một điểm ảnh
Nếu thông số này bằng 24, tức dùng 3 byte để biểu diễn một điểm ảnh thì file ảnh bitmap khi đó sẽ không có bảng màu Nếu thành phần này có giá trị nhỏ hơn hoặc bằng 8, khi đó file ảnh là ảnh 256 màu hoặc ảnh đa cấp xám, hoặc là đen trắng
Phần bảng màu (Palette): là những ảnh có thành phần biCount nhỏ hơn hoặc
bằng 8 bit màu mới có Palette màu Kích thước bảng màu sẽ là 2biCount
Phần dữ liệu (BitmapData): phần này nằm ngay sau phần Palette màu của ảnh
BMP Đây là phần chứa giá trị màu của điểm ảnh trong BMP Các dòng ảnh được lưu
từ dưới lên trên, các điểm ảnh được lưu trữ từ trái sang phải Các giá trị của mỗi điểm ảnh là một chỉ số trỏ tới phần tử mầu tương ứng của Palette màu
2.1.3 Xử lý ảnh bitmap
Để đọc được dữ liệu ảnh, ta phải đọc header ảnh, sau đó căn cứ vào thành phần biCount để xem ảnh có bảng màu hay không, nếu có thì đọc bảng màu, không thì ta bỏ qua Dữ liệu ảnh được đọc và lưu vào mảng hai chiều có kích thước bằng header.With
Sau khi xử lý xong, ta thực hiện ghi lại ảnh theo qui trình ngược lại gồm các bước: ghi lại header, ghi lại bảng màu nếu có, sau đó ghi dữ liệu ẩn
Trang 22Đối tượng đầu tiên mà kỹ thuật giấu tin nhắm đến là lớp ảnh bitmap (BMP)
Để thực hiện việc giấu tin trong môi trường ảnh, trước hết cần số hóa các bức ảnh theo những chuẩn phổ biến như BMP, JPEG, GIF,…, là loại ảnh phổ biến nhất trên mạng Internet, loại ảnh này cho dung lượng giấu tin cao và các phương pháp giấu tin thuận tiện
Sau khi số hóa, tùy thuộc cấp độ màu khác nhau, có thể phân chia môi trường ảnh thành các loại ảnh đen trắng, ảnh xám hay ảnh màu Ảnh đen trắng là ảnh nhị phân
có 1 bit màu biểu diễn mỗi điểm ảnh Ứng với điểm đen, bit mang giá trị 0 và ứng vơi điểm trắng, bit mang giá trị 1 Giấu thông tin trong ảnh đen trắng thường gây nhiễu, dễ nhận biết được bằng mắt thường, số lượng thông tin giấu cũng bị hạn chế
Ảnh màu trong máy tính là một mảng số thể hiện cường độ sáng tại mỗi điểm ảnh Các điểm ảnh cấu trúc theo dạng ảnh mành, số điểm ảnh thay đổi tùy thuộc độ phân giải của màn hình máy tính
Khi chuyển một ảnh tương tự (analog) sang ảnh số, người ta có thể chọn những cách thể hiện màu khác nhau:
- Ảnh 8 bit màu: Mỗi điểm ảnh có thể nhận 1 trong 28(256 màu), chọn từ bảng màu
- Ảnh 8 bit xám: Mỗi điểm ảnh có thể nhận 1 trong 28(256 mức xám) Mức xám
là kết quả sự mã hóa tương ứng một cường độ sáng của mỗi điểm ảnh với một giá trị
số sau quá trình lượng hóa Các mã hóa kinh điển thường dùng là 16, 32, 64 mức Mã hóa 28=256 (0,1,…, 256) mức là phổ dụng nhất, mỗi điểm ảnh sẽ được mã hóa bằng tổ hợp 8 bit
- Ảnh 24 bit màu: mỗi điểm ảnh có thể nhận 1 trong 224 (trên 16 triệu màu), mỗi màu là sự pha trộn của 3 màu cơ bản RGB (Red – đỏ, Green – màu xanh lá cây, Blue – xanh da trời), nhận giá trị từ 0 đến 255
2.2 Các thuật toán thủy vân trên miền không gian
Các thuật toán thủy vân trong miền không gian tập trung vào việc thay đổi trực tiếp trong miền điểm ảnh Thế mạnh của phương thức thủy vân trong miền điểm ảnh
là đơn giản và có độ phức tạp tính toán thấp Tuy nhiên, kỹ thuật này chỉ đảm bảo thuộc tính ẩn mà không có tính bền vững Vì vậy, các thuật toán này được cài đặt cho ứng dụng xác thực thông tin của ảnh số
2.2.1 Ý tưởng
Ý tưởng cơ bản của thuật toán trong kỹ thuật này là chia một ảnh gốc thành các khối nhỏ, số lượng bit giấu trong mỗi khối tùy thuộc vào từng thuật toán Thuật toán
Trang 23này dùng cho cả ảnh màu, ảnh đa mức xám và ảnh đen trắng nhưng để dễ trình bày thuật toán chúng ta sẽ sử dụng ảnh đen trắng
Ảnh đen trắng (hay còn gọi là ảnh nhị phân) là ảnh chỉ có hai giá trị mức xám là
0 (đen) và 1 (trắng) Để tạo thủy vân cho ảnh đen trắng ta đem nhúng thủy vân vào ảnh nhị phân Thông thường việc nhúng thủy vân vào ảnh đen trắng khó thực hiện hơn ảnh đa cấp xám hay ảnh mầu Lý do là ảnh nhị phân chỉ có hai mức xám duy nhất, vì thế nếu thay đổi một bit của điểm ảnh thì đồng nghĩa với thay đổi toàn bộ điểm ảnh
Có hai cách để nhúng dữ liệu vào ảnh nhị phân là thay đổi giá trị của từng bít riêng lẻ hoặc thay đổi giá trị của một nhóm bít Cách thứ nhất sẽ đảo ngược một điểm đen thành trắng hoặc một điểm trắng thành đen Cách tiếp cận thứ hai sẽ làm thay đổi một số đặc trưng của ảnh như độ dày của cạnh, vị trí tương quan giữa các bit…Cách tiếp cận này tùy thuộc nhiều vào kiểu ảnh (kiểu văn bản, kiểu bản đồ…) Vì số tham số
có thể thay đổi là hữu hạn, đặc biệt là với yêu cầu thủy vân ẩn, tổng số dữ liệu có thể dấu được là hữu hạn
2.2.2 Các phép toán sử dụng trong thuật toán
a/ Phép đảo bit: là một phép biến đổi trên các bit nhị phân Đảo bit b tương
đương với phép biến đổi thay b bởi 1-b, tức là nếu ban đầu b nhận giá trị 0 thì sau khi đảo bit nó sẽ nhận giá trị 1 và ngược lại, nếu ban đầu b có giá trị là 1 thì sau khi đảo nó
sẽ mang giá trị 0
b/ Phép XOR (kí hiệu ): là phép cộng loại trừ các phần tử tương ứng trên
hai ma trân:
C= A B, với Cij =1nếu Aij Bij; Cij=0 nếu Aij = Bij
c/ Phép Sum ma trận A (ký hiệu là Sum[A]) được định nghĩa là tổng tất cả
các phần tử của ma trận A
d/ Phép nhân bit hai ma trận A, B (ký hiệu là A^ B) được định nghĩa:
C=A ^ B, với Cij =1 nếu Aij =Bij=1,
Cij=0 trong các trường hợp còn lại
e/ Phép nhân hai ma trận số nguyên A, B (ký hiệu AB) được định nghĩa:
C= A B, với Cij = Aij * Bij
Trang 242.2.3 Thuật toán 1(SW)
Đây là một thuật toán đơn giản (Simple Watermarking) [13] Cho một file ảnh Bitmap đen trắng F, dữ liệu thủy vân d được biểu diễn dưới dạng nhị phân (dãy bit 0/1) Các bit 1 gọi là điểm đen, bit 0 gọi là điểm trắng
Ý tưởng cơ bản của thuật toán này là chia một ảnh gốc thành các khối nhỏ, trong mỗi khối nhỏ sẽ giấu không quá một bit thông tin
a/ Quá trình nhúng thủy vân
Ví dụ minh họa:
+ Giả sử giấu một bit dữ liệu b=1 vào khối B (Hình 2.1)
+ Ta có Sum(B)=8 Do Sum(B) mod 2 =0 nên khối B không thỏa mãn yêu cầu
để giấu bit 1 Muốn giấu bit 1 vào khối này ta cần phải thay đổi khối bằng cách chọn một bit bất kỳ và đổi từ 0 sang 1 hoặc từ 1 sang 0 Giả sử ta đảo lại bít tại vị trí B[2,2]
Trang 25+ Giả sử vẫn với khối B đã cho như trên nhưng ta phải giấu bit dữ liệu b=0 vào khối đó Ta thấy do Sum(B)=8 nên Sum(B) mod 2=0 Khối B được bảo toàn và bit dữ liệu b=0 xem như được giấu
b/ Quá trình tách thủy vân
Trong thuật toán thủy vân này, khóa đơn giản là kích thước của khối, tức là bộ
số (m, n) Nếu biết kích thước của khối thì dễ dàng trích lại dữ liệu d theo các bước:
Bước 1: Chia ảnh có nhúng thủy B’ thành các khối kích thước m x n, với mỗi
khối Bi’ trong B’ ta tính Sum[Bi’]
Bước 2: Tách thủy theo cách xét
Nếu Sum[Bi’] là chẵn thì bit di=0
Ngược lại, nếu Sum[Bi’] là lẻ thì bit di=1
c/ Nhận xét
Với thuật toán này việc chọn khối là khá đơn giản: ta có thể bắt đầu từ khối đầu tiên và các khối tiếp theo một cách tuần tự Tuy nhiên, ta có thể chọn ngẫu nhiên một khối chưa giấu ở mỗi lần giấu, hoặc chọn các khối theo một thuật toán xác định kèm theo một khóa K Khi đó, ta đã làm tăng được độ an toàn của thuận toán vì khóa bây giờ còn thêm cả chỉ số khối đã giấu tin cho từng bit Hoặc ta có thể thay đổi kích thước khối ở mỗi lần giấu, chẳng hạn như khối thứ nhất có kích thước khối là 8x8, khối thứ hai có kích thước là 8x12 trong trường hợp này thì khóa sẽ gồm cả kích thước khối của mỗi lần giấu
Kỹ thuật trên sẽ gặp phải hiện tượng gây bất thường đối với ảnh sau khi giấu thông tin đặc biệt khi chọn vào những khối ảnh một màu, chẳng hạn một khối toàn đen hoặc toàn trắng Khi đó, nếu cần đảo giá trị một bit thì vị trí bit đảo sẽ khác biệt hoàn toàn với các bit trong khối và dễ bị nhận biết có sự thay đổi Vì vậy để xác định nên thay đổi bít nào trong khối bít ta phải tính hệ số ảnh hưởng của bít đó khi nó bị thay đổi Hệ số này tính bằng cách xét sự thay đổi về tính trơn và tính liên kết với các điểm láng giềng Tính trơn được đo theo sự chuyển đổi mức xám theo chiều ngang và chiều dọc, đường chéo trong cửa sổ 3x3 Tính liên kết được tính bằng số nhóm điểm đen và số nhóm điểm trắng Ví dụ: Nếu đảo một điểm ảnh trong hình a sẽ ít bị chú ý hơn điểm ảnh trong hình b
Hình 2.2: Minh họa chọn điểm ảnh giấu tin vào những khối ảnh một màu
Trang 262.2.4 Thuật toán 2 (Wu-Lee)
Thuật toán này của 2 tác giả M.Y Wu và J.H.Lee [17] đưa ra cải tiến hơn thuật toán 1 bằng việc đưa thêm khóa K sử dụng trong quá trình nhúng và tách thủy vân đồng thời đưa thêm các điều kiện đảo bit trong mỗi khối Với thuật toán này, có thể nhúng một bít vào mỗi khối bằng cách hiệu chỉnh nhiều nhất 1 bít của khối Kỹ thuật này có khả năng làm tăng dữ liệu có thể nhúng
Xét ảnh gốc F, khóa bí mật K và một số dữ liệu được nhúng vào F Khóa bí mật K là một ma trận ảnh có kích thước mxn Để đơn giản ta giả sử kích thước của ảnh gốc F là bội số của mxn Quá trình nhúng thu được ảnh F có một số bit đã bị hiệu chỉnh Thuật toán thực hiện như sau:
a/ Quá trình nhúng tin
Bước 1: Chia F thành các khối, mỗi khối có kích thước mxn
Bước 2: Với mỗi khối Fi thu được ở bước 1 Kiểm tra điều kiện:
0< SUM(Fi^K)< SUM(K)
Nếu điều kiện trên đúng thì tiếp tục thực hiện bước 3 để nhúng một bit vào Fi Ngược lại, dữ liệu sẽ không được nhúng vào Fi và Fi sẽ được giữ nguyên
Bước 3: Giả sử bit được nhúng vào Fi là b Để hiệu chỉnh Fi ta làm như sau:
Trường hợp 1: Nếu (SUM(FiK) mod2 = b) thì không thay đổi Fi và bit b hiển nhiên đã được nhúng vào khối Fi
Trường hợp 2: Nếu (SUM(FiK) mod2 ≠ b) và SUM(FiK)=1 thì chọn ngẫu nhiên một bit của Fi tại vị trí (i,j) mà Fi(j,k)=0 và K(j,k)=1, đảo Fi(j,k) thành 1
Trường hợp 3: Nếu (SUM(FiK) mod2 ≠ b) và SUM(FiK)=SUM(K)-1 thì chọn ngẫu nhiên một bit của Fi tại vị trí (j,k) mà Fi(j,k)=1 và K(j,k)=1, đảo Fi(j,k) thành 0
Trường hợp 4: Nếu (SUM(FiK) mod2 ≠ b) và 1<SUM(FiK)<SUM(K)-1 thì chọn ngẫu nhiên một bit của Fi tại vị trí (j,k) mà K(j,k)=1 và đảo ngược Fi(j,k)
- Trong bước 3 chỉ thực hiện tối đa một phép đảo một bit của Fi để thu được khối Fi’ nhằm đảo bảo tính bất biến
Ví dụ minh họa:
Giả sử ta cần nhúng dãy bit d=011 vào một ảnh F có kích thước 6x6 với một
ma trận khóa K có kích thước 3x3 như trong hình 2.3 Ta có SUM(K)=5
Chia ảnh F thành bốn khối nhỏ mỗi khối sẽ có kích thước là 3x3 ta thu được F1, F2, F3, F4
Trang 27Bít dữ liệu nhúng
0 1 1
Hình 2.3 Minh họa thuật toán Wu-Le: nhúng đoạn bit 011
Áp dụng thuật toán, lần lượt nhúng các bít vào các khối như sau:
- Với F1, Vì SUM(F1^K) = 5 =SUM(K) không thỏa mãn điều kiện nhúng nên không nhúng dữ liệu vào trong F1
- Với F2, SUM(F2^K) =3 thỏa mãn điều kiện nhúng và bít cần nhúng là 0
Vì SUM(F2^K) mod 2=3 mod 2 0 và 1<SUM(F2^K) <SUM(K)-1 nên ta chọn ngẫu nhiên một vị trí để đảo bit trong khối F2 , chẳng hạn vị trí (2,3) thoả mãn
K[2,3]=1 (theo trường hợp 4) Sau khi đảo bit F2[2,3] ta thu được khối F2’ như trên hình vẽ (bit bị đảo được tô xám)
- Với F3, SUM(F3^K)=3 thỏa mãn điều kiện nhúng và bit cần nhúng là 1
Ta có SUM(F3^K) mod 2=3 mod 2=1=b Khối F3’ thu được giữ nguyên khối F3
nhưng với ý nghĩa là khối đã được giấu bit b=1 (theo trường hợp 1)
- Với F4, SUM(F4^K)=4 thỏa mãn điều kiện nhúng và bit cần nhúng là 1
Ta có SUM(F4^K)mod2=4mod2=0 b và SUM(F4^K)=SUM(K)-1 Theo
tử này ta có F4[2,1]=1 và K[2,1]=1 Sau khi đảo bit F4[2,1] ta thu được khối F4’ như trên hình vẽ (bit bị đảo được tô xám)
b/ Quá trình tách tin
Phương pháp giấu tinWu-Lee cho phép giấu nhiều nhất 1 bit dữ liệu trong 1 khối Giả sử có được bất biến 0<SUM(Fi^K) < SUM(K)
Trong thuật toán nhúng tin, tiến hành đảo 1 bit trong mỗi khối Fi sao cho tổng
số bit 1 của Fi^K bằng tổng số bit 1 của K, tức là:
Trang 28- Việc chọn khóa K nhằm làm tăng độ bảo mật của thuật toán Nếu thuật
toán 1 chỉ biết kích thước khối là m x n thì đối phương rất dễ khai thác được thủy
vân
- Phép toán Fi^K quy định thuật toán chỉ được phép sửa các bit trong khối Fi ứng với bit 1 trong khóa K Như vậy, khóa K được xem như một mặt nạ, tạo ra khung nhìn cho thuật toán Dĩ nhiên ta có thể thay phép toán ^ bằng một phép toán khác, chẳng hạn phép
- Điều kiện 0<SUM(Fi^K) < SUM(K) qui định nếu khối Fi^K toàn 0 hoặc giống như khóa K thì không được giấu tin để tránh bị lộ
- Do việc giấu tin vào khối chỉ cần thay đổi tối đa một bit nên việc chọn bit nào trong F để đảo cần tuân thủ theo nguyên tắc: Nếu Fi^K có nhiều bit 1 thì chọn bit 1, ngược lại nếu Fi^K có quá ít bit 1 thì chọn bit 0 Nguyên tắc này làm giảm khả năng bit đảo bị phát hiện
- Vì khóa K là bí mật nên thông tin đã nhúng là bí mật Thuật toán này làm thay đổi nhiều nhất một bit của khối Fi khi giấu một bit thông tin vào bên trong khối nên với một khối có kích thước m x n đủ lớn thì sự thay đổi của Fi là nhỏ
- Ảnh F được lựa chọn để nhúng tin có quá nhiều điểm trắng hay quá nhiều điểm đen đều làm giảm tỷ lệ bít giấu được
- Thuật toán Wu-Lee đơn giản, lượng tin giấu được không thấp nhưng tính bảo mật không cao, không thích hợp với ảnh có mảng đen hoặc trắng rộng
2.2.5 Thuật toán 3 (PCT)
Thuật toán này được đưa ra bởi 3 tác giả Hsiang-Kuang Pan, Yu-Yuan Chen, and Yu-Chee Tseng [14] Thuật toán cho phép nhúng nhiều bit vào 1 khối bằng cách có thể đảo 2 bit trong 1 khối Trong thuật toán có sử dụng khóa K và ma trận trọng số W nhằm bảo đảm an toàn cho thủy vân được nhúng
- Khóa bí mật K: là một ma trận nhị phân có cùng kích thước mxn với kích thước của khối ảnh Khóa được dùng một cách bí mật giữa người gửi và người nhận
- Ma trận trọng số W cấp r: ma trận này có kích thước bằng kích thước của một khối ảnh (mxn) và thỏa mãn các điều kiện sau:
+ W là một ma trận số nguyên có các phần tử nằm trong khoảng (0 2r-1) với
r cho trước thỏa mãn điều kiện 2r<(mxn)
Trang 29+ Mỗi phần tử có giá trị từ (1 2r-1) phải xuất hiện ít nhất 1 lần trong W
Với mỗi n,m,r thỏa mãn 2r-1<=mxn sẽ có:
1
2r 2r 1 ! ( 2r 1 )mn r
mnC
Khả năng chọn W là rất lớn Ví dụ với m=n=4, r=2 có 5.356.925.280 khả năng lựa chọn W Con số này đủ lớn để làm giảm nguy cơ thủy vân bị phát hiện
a/ Quá trình nhúng thủy vân:
- Input:
+ F: là một ma trận ảnh gốc mà ta dùng để nhúng thông tin F được chia thành các khối nhỏ Fi, mỗi ma trận điểm ảnh Fi có kích thước là (mxn), để đơn giản ta giả sử rằng F là bội của các Fi
+ K: là một ma trận khóa ngẫu nhiên có kích thước mxn
+ W: là một ma trận trọng số ngẫu nhiên, cùng kích thước của K
+ r: số lượng bit có thể dấu trong mỗi khối ảnh mxn
+ B: là lượng thông tin cần dấu, B=b1b2…bz (mỗi bi có r bit)
Bước 3: Với ma trận T và với mọi w={1,2,…,2r-1} ta xác định tập hợp Sw sau:
Sw={(x,y)|(W[x,y]=w T[x,y]=0)(W[x,y]=2r-w T[x,y]=1)}
Dễ nhận thấy Sw là tập hợp các tọa độ (x,y) của ma trận Fi[x,y] sao cho khi đảo bit Fi[x,y] thì Sum ở bước 2 tăng lên w Thực vậy, ta có:
+ Trường hợp 1: nếu W[x,y]=w và T[x,y]=0
Khi đó đảo bit Fi[x,y] sẽ làm cho T[x,y]=1, do đó Sum tăng lên w
+ Trường hợp 2: Nếu W[x,y] = 2r-w và T[x,y]=1
Khi đó đảo bit Fi[x,y] sẽ làm T[x,y] =0, do đó Sum sẽ giảm đi 2r-w, tức là tăng lên w theo mod 2r
Quy ước rằng với mọi w’w(mod 2r) trong đó w=1,2,…,2r-1 ta có: Sw’=Sw
Bước 4: Ký hiệu d=(b1b2…br)- SUM(TW) mod 2r
Trang 30Đảo bit trên Fi để được Fi’sao cho tổng Sum tính được ở bước 2 khi thay Fi bởi
Fi’ sẽ tăng lên d
+ Nếu d=0, không cần thay đổi Fi
+ Nếu d0 ta thực hiện các công việc sau:
1 Chọn h bất kỳ thuộc tập {0,1,2,…,2r-1} sao cho Shd và S-(h-1)d
2 Chọn (x,y) bất kỳ thuộc Shd và đảo bit Fi[x,y]
3 Chọn (x,y) bất kỳ thuộc S-(h-1)d và đảo bit Fi[x,y]
Rõ ràng, để tăng Sum lên d, ta có thể chọn 2 tập khác rỗng Shd và S-(h-1)d
Thật vậy, hai tập này chứa các vị trí bit trong khối Fi mà ta có thể đảo để tăng Sum lên hd và –(h-1)d một cách tương ứng, kết quả cuối cùng là sum sẽ tăng lên hd+(-(h-1)d) =d
Tương tự như các tập Sw khác ta cũng có thể coi tập S0 là tập chứa các vị trí mà khi đảo những bit có vị trí này trên Fi thì sẽ tăng Sum lên 0 Kết quả này cũng đạt được nếu ta không đảo bất kỳ bit nào trên Fi Vì vậy ta có thể coi S0 là tập rỗng và khi nói đảo một bit có vị trí thuộc tập S0 có nghĩa là không cần làm gì cả
* Ví dụ minh họa:
Giả sử cần nhúng 12 bit thông tin “001010000001” vào F Tiến hành:
Ta chia F thành 4 khối (F1, F2 , F3 , F4 ) kích thước mỗi khối 4x4
Mỗi khối giấu 3 bit (r=3) tạo ma trận trọng số W thỏa mãn các điều kiện Thực hiện phép cộng loại trừ từng khối với Fi K thu được ảnh T
Với mỗi khối ảnh trên ảnh T thực hiện:
Với F1 : có SUM(T1 W) mod 8= 0, để giấu 3 bit đầu tiên là “001” vào
F1 cần biến đổi F1 sao cho SUM(T1 W) tăng lên 1 Nhận thấy T1[2,4]=0 và W[2,4]=1 nên ta có thể đảo giá trị bit F1[2,4] để được F1’
Với F2 : có SUM(T2 W) mod 8 =2 và 3 bit tiếp theo cần giấu là “010” nên hiển nhiên được F2’ đã giấu bit mà không cần biến đổi
Với F3 : có SUM(T3 W) mod 8 =2, để giấu 3 bit tiếp theo là “000” vào
F3 cần biến đổi F3 sao cho SUM(T3 W) tăng lên 6 bằng cách đảo bit
Với F4 : có SUM(T1 W) mod 8 =4 , để giấu 3 bit cuối là “001” vào F4
cần biến đổi F4 sao cho SUM(T1 W) tăng lên 1 Việc này không thể thực hiện được khi đảo 1 bit trong F4 mà phải đảo 2 bit Chọn S10=S2=(2,2) và
S5=S3={(1,3),(2,1),(3,2),(3,4)} rồi đảo 2 bit S4[2,2] và S4[3,2]
Trang 31Bước 3: sử dụng ma trận khóa và ma trận trọng số để tính giá trị của r bít thủy
vân đƣợc nhúng vào trong mỗi khối ảnh bằng công thức:
Trang 32Bước 4: chuyển đối bit thành ký tự
c/ Nhận xét
- Thuật toán cho phép nhúng được tới log2(mn+1) bit dữ liệu vào trong mỗi khối ảnh mxn với điều kiện là 2r<mxn, bằng cách thay đổi nhiều nhất là 2 bit của một khối ảnh Như vậy, thuật toán đã có cải tiến nhiều so với những thuật toán khác chỉ nhúng được một bit tin vào mỗi khối ảnh
- Độ an toàn của thuật toán được nâng cao thông qua việc sử dụng hai ma trận:
ma trận khóa và ma trận trọng số để nhúng và tách thủy vân
- Thuật toán tương đối dễ cài đặt
- Đây là thuật toán nhúng thủy vân vào ảnh đen trắng nên ta cũng có thể tính toán hệ số phân bố bit d để cải thiện chất lượng ảnh sau khi nhúng thủy vân Thực nghiệm cho thấy nếu kết hợp với phần cải tiến này thì chất lượng ảnh được nâng lên đáng kể
- Sau cải tiến có thể áp dụng thuật toán cho ảnh màu và ảnh đa cấp xám Người
ta sử dụng kỹ thuật chọn ra bit ít quan trọng nhất (LBS) của mỗi điểm ảnh để xây dựng ma trận hai chiều các bit 0, 1 như với ảnh đen trắng Nếu áp dụng tốt thuật toán này cho ảnh màu thì có thể nói thuật toán đã đạt yêu cầu cơ bản của một ứng dụng thủy vân, như đảm bảo tính ẩn, số lượng thủy vân dấu được cao và an toàn
2.2.6 Thuật toán 4 (LSB)
Đây là thuật toán thủy vân dựa vào các bit ít quan trọng LSB.[8] Các loại ảnh màu và đa mức xám có giá trị của mỗi điểm ảnh được biểu diễn bằng dãy nhiều bit Trong dãy các bit này có một bit được gọi là bit it quan trọng nhất (LSB – Least Significant Bit) Bit ít quan trọng nhất là bit mà khi ta đảo giá trị của nó thì điểm màu
bị thay đổi ít nhất
Ví dụ, với ảnh đa mức xám, mỗi mức xám được biểu diễn qua một số nguyên không âm, thì mức xám m sẽ sai khác ít nhất so với hai mức xám liền kề là m-1 hoặc m+1 Trong trường hợp này bit it quan trọng nhất chính là bit thấp nhất trong dạng biểu diễn nhị phân của m Đảo bit này sẽ làm thay đổi mức xám m thành m-1 hoặc m+1 Hầu hết các thuật toán thủy vân trên ảnh màu và ảnh đa cấp xám thường sử dụng gián tiếp thuật toán thủy vân trên ảnh đen trắng