kỹ thuật giấu tin
DESCRIPTION
Tổng quan về kỹ thuật giấu tin và một số phương pháp thông dụng.TRANSCRIPT
1
CHƢƠNG 1. TỔNG QUAN VỀ GIẤU TIN VÀ THỦY VÂN ............................................... 3 I. Kỹ thuật giấu tin............................................................................................................ 3
1. Khái niệm giấu tin .................................................................................................. 3 2. Phân loại các kỹ thuật giấu tin ................................................................................ 3
3. Phân biệt thủy vân và giấu tin mật ......................................................................... 4 4. Các hƣớng ứng dụng của thủy vân ......................................................................... 5 5. Môi trƣờng dấu tin .................................................................................................. 6
1. Giấu tin trong ảnh (image) .................................................................................. 6 2. Giấu tin trong audio ............................................................................................ 7
3. Giấu tin trong video ............................................................................................ 7 4. Giấu tin trong văn bản......................................................................................... 8 5. Mô hình kỹ thuật giấu tin .................................................................................... 8
6. Các phƣơng pháp dấu tin ...................................................................................... 10 1. Giấu tin trong miền quan sát ............................................................................. 10 2. Các phƣơng pháp dựa vào kỹ thuật biến đổi ảnh .............................................. 10 3. Các phƣơng pháp sử dụng mặt nạ giác quan .................................................... 10
II. Thủy vân ..................................................................................................................... 10
1. Khái niệm thủy vân .................................................................................................... 10 2. Mô hình của kỹ thuật thủy vân ................................................................................... 11 7. Đặc trƣng của thủy vân số .................................................................................... 12
8. Phân loại các kỹ thuật thủy vân ............................................................................ 13 9. Các khả năng tấn công trên hệ thống thủy vân ..................................................... 14
CHƢƠNG 2. CÁC PHƢƠNG PHÁP THỦY VÂN TRÊN ẢNH SỐ .................................... 16
III. Kỹ thuật miền không gian ........................................................................................ 16
10. Kỹ thuật thủy vân cho ảnh nhị phân ..................................................................... 16 6. Thuật toán 1 ...................................................................................................... 17 7. Thuật toán 2 ...................................................................................................... 20
8. Thuật toán 3 ...................................................................................................... 22 11. Kỹ thuật thủy vân cho ảnh xám ............................................................................ 26
IV. Thuật toán thủy vân dựa trên DCT ........................................................................... 28 12. Ý tƣởng ................................................................................................................. 28 13. Chuyển đổi cosin rời rạc ....................................................................................... 28
9. Chuyển đổi tuyến tính ....................................................................................... 28
10. Biến đổi cosin rời rạc ........................................................................................ 29 14. Quá trình nhúng thủy vân ..................................................................................... 31 15. Thuật toán nhúng thủy vân WM .......................................................................... 33
16. Ví dụ minh họa ..................................................................................................... 34
17. Quá trình trích thủy vân ........................................................................................ 36 18. Kết luận................................................................................................................. 38
V. Kỹ thuật thủy vân sử dụng sóng nhỏ .......................................................................... 39
19. Giới thiệu về sóng nhỏ .......................................................................................... 39 20. Lý thuyết biến đổi sóng nhỏ rời rạc cho thủy vân ảnh (DWT)............................. 40 21. Xử lý ghép ............................................................................................................ 41 22. Phân tách kiểu hình chóp ...................................................................................... 42 23. Phân tách sóng nhỏ kiểu đóng gói ........................................................................ 43
24. Họ sóng nhỏ .......................................................................................................... 44 25. Kỹ thuật thủy vân sử dụng phép biến đổi sóng nhỏ ............................................. 45
11. Kỹ thuật thủy vân của Raval Mehul va Rege Priti ............................................ 45
12. Kỹ thuật thủy vân của Peining Tao và Ahmet M. Eskicioglu .......................... 46 VI. Thủy vân miền DFT ................................................................................................. 48
2
26. Mô hình hệ thống thủy vân ................................................................................... 48 27. Mô hình và phân bố tín hiệu của hệ số cƣờng độ DFT ........................................ 50 28. Bộ phát hiện thủy vân tối ƣu ................................................................................ 52 29. Kết quả thực nghiệm ............................................................................................. 58
3
CHƢƠNG 1. TỔNG QUAN VỀ GIẤU TIN VÀ THỦY VÂN
I. Kỹ thuật giấu tin
1. Khái niệm 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 nhƣ DES, RSA,
NAPSACK…đã đƣợc sử dụng rất hiệu quả và phổ biến cho đến ngày nay.
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à phƣơng pháp giấu tin. Cho tới nay phƣơng pháp 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. Độ an toàn thông tin của phƣơng pháp này là do tính chất ẩn của thông tin
đƣợc giấu. Do đó yêu cầu cơ bản của giấu tin là không làm ảnh hƣởng đến dữ liệu
gốc.
2. Phân loại các kỹ thuật giấu tin
Kỹ thuật 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 vệ cho chính đối tƣợng dùng để giấu dữ liệu vào. Hai mục đích
khác nhau này dẫn đến hai hƣớng kỹ thuật chủ yếu của giấu tin.
Hƣớng thứ nhất là giấu tin mật, nhằm tập trung vào các kỹ thuật giấu tin 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.
Hơn nữa, nếu phát hiện có tin giấu thì việc giải tin cũng khó thực hiện đƣợc. Đồ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 dấ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.
Hƣớng thứ hai là thủy vân số, liên quan tới ứng dụng giấu các mẫu tin ngắn
nhƣng đòi hỏi độ bền vững lớn của thông tin cần dấu trƣớc các biến đổi thông thƣờng
của tệp dữ liệu môi trƣờng. Hƣớng thủy vân số có miền ứng dụng lớn hơn. Ví dụ: ứng
dụng bảo vệ bản quyền, phát hiện xuyên tạc thông tin… 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
4
bền vững. 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. Cũng có thể chia thủy vân theo
đặc tính, một loại cần đƣợc che dấu để chỉ có một số ngƣời tiếp xúc với nó có thể thấy
đƣợc thông tin, loại thứ hai đối lập, cần đƣợc mọi ngƣời nhìn thấy. Sau đây là sơ đồ
phân loại:
3. Phân biệt thủy vân và giấu tin mật
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 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.
Hình 1. Phân loại các kỹ thuật dấu tin
5
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.
4. 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. Một thông tin nào đó mang ý nghĩa quyền sở hữu tác giả (ngƣời
ta gọi nó là thủy vân – watermark) sẽ đƣợc nhúng vào trong các sản phẩm, thủy
vân đó chỉ ngƣời chủ sở hữu hợp pháp các sản phẩm đó có và đƣợ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: một tập thông tin sẽ đƣợc
giấu trong phƣơng tiện chứa sau đó đƣợc sử dụng để nhận biết dữ liệu trên phƣơng
tiện gốc có bị thay đổi hay không. 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ị rí 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: 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
6
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: 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.
5. Môi trƣờng dấu tin
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. Giấu tin trong ảnh (image)
Hiện nay giấu tin trong ảnh là một bộ phận 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 phƣơng tiện do lƣợng
thông tin đƣợc trao đổi bằng ảnh là rất lớn và 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, xác định xuyên tạc thông tin, bảo vệ bản quyền tác giả, đieùe 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.
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
7
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.
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 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 đã gây khó khăn đối với các phƣơng pháp dấu tin trong audio.
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 cho việc 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.
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
8
ché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à các hệ thống chƣơng trình trả tiền xem theo đoạn phim đã xem. Một phƣơng
pháp giấu tin trong video đƣợc đƣa ra bởi Cox [14] là phƣơng pháp phân bố đều. Ý
tƣởng cơ bản của phƣơng pháp là phân phối thông tin giấu dàn trải theo tần số của dữ
liệu chứa gốc. Nhiều nhà nghiên cứu đã dùng những hàm cosin riêng và các hệ số
truyền sóng riêng dể giấu tin. Trong các thuật toán khởi nguồn thì thƣờng các kỹ thuật
cho phép giấu cả âm thanh và hình ảnh vào video. Nhƣ phƣơng pháp của Swanson đã
sử dụng cách giấu theo khối, phƣơng pháp này đã giấu đƣợc hai bit vào khối 8x8.
Kỹ thuật giấu thông tin bằng video áp dụng cả đặc điểm thị giác và thính giác
của con ngƣời.
Kỹ thuật giấu tin đang đƣợc áp dụng cho nhiều loại đối tƣợng chứ không chỉ
riêng dữ liệu đa phƣơng tiện nhƣ ảnh, audio hay video. Gần đây, đã có một số nghiên
cứu giấu tin trong văn bản text, cơ sở dữ liệu quan hệ và cơ sở dữ liệu XML, cho phép
mở ra những hƣớng nghiên cứu mới.
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. Hƣớng 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, các kỹ
thuật giấu tin cũng tiến hành nhƣ giấu tin trong ảnh bằng cách thay đổi 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.
5. Mô hình kỹ thuật giấu tin
Hệ thống giấu tin nói chung bao gồm 2 phần chính: chèn tin và tách tin. Giai
đoạn chèn tin cần thông tin khóa K (công khai hoặc bí mật) và thông tin mật cần giấu
đƣợc chèn vào ảnh gốc để đƣợc ảnh có bản quyền. Giai đoạn tách tin cần ảnh có bản
9
quyền, khóa K, cần hoặc không cần ảnh gốc là cơ sở để tách thông tin từ ảnh có bản
quyền.
Mẩu tin mật: có thể là văn bản hoặc tệp ảnh hay bất kỳ một tệp nhị phân nào vì
quá trình xử lý nhúng tin ta đều phải chuyển dữ liệu cần giấu về dạng chuỗi nhị
phân.
Ảnh phủ hay ảnh gốc: ảnh đƣợc dùng để làm môi trƣờng nhúng tin mật
a) Qúa trình chèn tin
b) Qúa trình tách tin Hình ….Qúa trình dấu tin và tách tin
10
Khóa K: là khóa tham gia vào quá trình giấu tin nhằm tăng tính bảo mật.
Ảnh bản quyền: là ảnh sau khi đã đƣợc nhúng tin mật vào nó
6. Các phƣơng pháp dấu tin
Các phƣơng pháp giấu tin trong ảnh hiện nay đều thuộc vào một trong 3 nhóm:
1. Giấu tin trong miền quan sát.
Ví dụ: Nhúng vào các bít 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 khô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 đó.
2. 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 dấ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ủ).
3. 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. “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 đó.
II. Thủy vân
1. Khái niệm thủy vân
Cách đây 700 năm thủy vân trên giấy đã đƣợc sử dụng ở Fabriano, Italy để xác
định nhãn hàng và nhà máy sản xuất ra sản phẩm. Ngƣời ta sử dụng các chất mà khi
viết lên không để lại dấu vết nhƣng kết quả lại đƣợc hiển thị khi hơ nó trên lửa. 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.
Ban đầu, thủy vân đƣợ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…Đến
11
thế kỷ thứ 18 nó bắt đầu đƣợc dùng cho tiền tệ và các tài liệu văn bản khác. 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ệ.
. Thuỷ vân trong đồng đô la và đồng Mark
Thuật ngữ thủy vân đƣợc đƣa ra vào cuối thế 18. Vì trong giai đoạn này ngƣời
ta đã thấy đƣợc ảnh hƣởng của việc đánh dấu lên trên giấy. Ví dụ đầu tiên của kỹ
thuật này có nghĩa tƣơng đƣơng với thủy vân số là lĩnh vực đòi hỏi sự kiên trì của
Emil Hembrooke cho việc định danh các tác phẩm âm nhạc. Năm 1988, Komatsu và
Tominaga đã đƣa ra thuật ngữ “thủy vân số”.
Vậy thủy vân số là gì? Thủy vân số là một mẫu các bit được chèn vào ảnh
số, audio, video hay text nhằm xác định thông tin bản quyền của tác phẩm. Mục đích
của thủy vân là bảo vệ bản quyền cho đối tượng dữ liệu mang thông tin thủy vân.
2. Mô hình của kỹ thuật thủy vân
Tƣơng tự nhƣ thủy vân trên đối tƣợng vật lý, kỹ thuật thủy vân số đƣợc sử
dụng cho nội dung số thay vì cho các đối tƣợng vật lý. Với thủy vân số, một tín hiệu
năng lƣợng thấp đƣợc chèn vào một tín hiệu khác. Tín hiệu năng lƣợng thấp đƣợc gọi
là thủy vân, nó mang thông tin bảo mật hoặc bản quyền về tín hiệu chính. Tín hiệu
chính là tín hiệu chứa thủy vân, còn gọi là tín hiệu phủ thủy vân, nó có thể là ảnh, âm
thanh, video, văn bản ở dạng số.
12
Hệ thống thủy vân số bao gồm: bộ nhúng thủy vân và bộ phát hiện thủy vân.
Bộ nhúng thủy vân chèn thủy vân vào tín hiệu phủ, bộ phát hiện thủy vân phát hiện ra
sự tồn tại của tín hiệu thủy vân. Lƣu ý, đối tƣợng gọi là 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 tín hiệu
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. Ngoài ra trên đƣờng truyền còn có nhiễu và sự tấn
công từ bên ngoài. Do đó 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.
7. Đặ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 đó. Ví dụ:
thay đổi tỷ lệ bit của video hoặc thay đổi tần số có thể nghe đƣợc trong tín hiệu của
audio.
Tính bền vững: Tùy vào từng ứng dụng mà sử dụng thủy vân có các mức hỗ
trợ khác nhau để chống lại sự thay đổi nội dung của dữ liệu gốc. Nếu sử dụng thủy
vân để xác định quyền sở hữu thì 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 do tác động
của 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. Nhƣng nếu thủy vân đƣợc
dùng để xác thực nội dung thì thủy vân phải là thủy vân dễ vỡ. Thủy vân này sẽ bị phá
hủy bất kỳ khi nào nội dung bị chỉnh sửa, vì vậy bất kỳ thao tác nào tác động vào nội
dung cũng sẽ bị phát hiện.
13
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ác
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ố.
8. Phân loại các kỹ thuật thủy vân
Việc phân lớp các kỹ thuật thủy vân phụ thuộc vào nhiều tham số khác nhau.
Dƣới đây là danh sách các kiểu thủy vân, mỗi kiểu thủy vân có các ứng dụng khác
nhau.
Phân loại dựa trên môi trƣờng: môi trƣờng để thực hiện thủy vân có thể là văn
bản, ảnh, âm thanh, video. Từ đó sẽ có các loại thủy vân tƣơng ứng là thủy vân văn
bản, thủy vân ảnh, thủy vân âm thanh và thủy vân video.
Thủy vân bền vững và thủy vân dễ vỡ: thủy vân bền vững là loại thủy vân mà
bất kỳ sửa đổi nào lên nội dung của dữ liệu đã đƣợc nhúng thủy vân thì cũng không
làm thay đổi thủy vân đƣợc nhúng trong đó. Ngƣợc lại, thủy vân dễ vỡ là loại thủy
vân khi có tác động chỉnh sửa hoặc thay thế lên nội dung của dữ liệu chứa thủy vân
thì thủy vân đó sẽ bị phá hủy.
Thủy vân ẩn và thủy vân hiện: thủy vân hiện là thủy vân mà khi nhúng thủy
vân vào nội dung số thì ta có thể nhìn thấy nội dung của thủy vân cùng với nội dung
của dữ liệu đƣợc nhúng. Ngƣợc lại, ta không thể nhìn thấy đƣợc nội dung của thủy
vân trong dữ liệu đƣợc nhúng đối với thủy vân ẩn.
Thủy vân công khai, thủy vân bí mật: với thủy vân công khai, ngƣời dùng có
thể phát hiện ra thủy vân trong nội dung số đã đƣợc nhúng thủy vân. Thủy vân bí mật
thì ngƣời dùng không có quyền phát hiện ra thủy vân có trong nội dung số.
Thủy vân đối xứng và thủy vân bất đối xứng: thủy vân đối xứng (gọi là thủy
vân khóa đối xứng) có chung một khóa cho quá trình nhúng và phát hiện thủy vân.
Thủy vân bất đối xứng (gọi là thủy vân khóa bất đối xứng) có khóa khác nhau cho quá
trình nhúng thủy vân và phát hiện thủy vân.
14
Ảnh 1.8. Thủy vân ẩn và thủy vân hiện
Phƣơng thức xử lý: Có thể phân loại thủy vân dựa trên cơ sở là chúng ta xử lý
trên miền không gian, miền tần số hay miền nén.
9. 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…
15
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ả.
16
CHƢƠNG 2. CÁC PHƢƠNG PHÁP THỦY VÂN TRÊN ẢNH SỐ
III. Kỹ thuật miền không gian
Kỹ thuật thủy vân trong miền không gian có các đặc trƣng sau đây:
- Thủy vân đƣợc ứng dụng trong miền điểm ảnh
- Quá trình nhúng thủy vân không cần chuyển đổi ảnh gốc
- Các thao tác đơn giản đƣợc kết hợp với ảnh gốc trong miền điểm ảnh
- Thủy vân có thể đƣợc phát hiện bằng cách liên hệ mẫu mong muốn với tín hiệu nhận
đƣợc.
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 phƣơng thức này cũng bộ lộ rõ một trở ngại chính:
nhu cầu để đồng bộ hóa hoàn toàn không gian dẫn tới hệ thống có tính nhạy cảm cao
với những tấn công không đồng bộ.
10. Kỹ thuật thủy vân cho ảnh nhị phân
Ả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 nhị phâ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 biế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. Dƣới đây sẽ trình bầy một trong các thuật toán thủy vân điển
hình.
Ý 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ỏ và trong mỗi khối nhỏ sẽ giấu không quá một bit thông tin. Thuật toán này
17
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.
6. Thuật toán 1
Algorithm SW ( simple watermarking)
Input:
- File ảnh Bitmap đen trắng F
- Dữ liệu cần giấu d đƣợc biểu diễn dƣới dạng nhị phân (dãy bit 0/1).
Output:
- File ảnh đã giấu tin G
Method:
- Chia F thành các khối kích thƣớc m x n
- Với mỗi khối B trong F ta xét khả năng giấu một bit dữ liệu di của d
theo quy tắc cân bằng tính chẵn lẻ nhƣ sau:
Gọi t là tổng số điểm trắng (bit mang giá trị 1) trong B. Nếu t và di cùng tính
chẵn lẻ thì không sửa khối B và coi nhƣ khối này đã đƣợc giấu bit dữ liệu di. Trong
trƣờng hợp ngƣợc lại, nếu t và di khác tính chẵn lẻ thì đảo ngẫu nhiên một bit trong B
để t và di trở thành cùng tính chẵn lẻ.
Nhƣ vậy giả sử cần giấu 1 bit dữ liệu b vào khối B. Kí hiệu Sum(B) là tổng số
điểm trắng trong khối B, kí hiệu x=y (mod z) cho biết hai số nguyên x và y có cùng số
dƣ khi chia cho z ( x và y đồng dƣ theo modulo z). Nhƣ vậy biểu thức x=y (mod 2)
cho biết x và y có cùng tính chẵn lẻ. Ta cần xét hai trƣờng hợp sau đây:
- Trƣờng hợp 1: Sum(B)= b (mod 2), khối B đã thỏa mãn tính chất để
giấu bit dữ liệu b, ta không cần sửa khối B và xem nhƣ bit b đã đƣợc giấu vào
khối B.
- Trƣờng hợp 2: Sum(B) b (mod 2), trƣờng hợp này phải sửa B để thay
đổi tính chẵn lẻ của Sum(B). Dễ thấy, ta chỉ cần đảo một bit bất kỳ trong B thì
18
Sum(B) sẽ tăng hoặc giảm 1 đơn vị. Gọi B' là khối kết quả thu đƣợc từ khối B
sau khi đảo một bit trong B. Ta có Sum(B’) =b (mod 2).
Ví dụ dƣới đây minh họa cho hai trƣờng hợp trên:
+ Giả sử khi phải giấu một bit dữ liệu b=1 vào khối B nhƣ sau:
1 0 1 1
0 1 0 0
0 0 1 0
1 1 1 0
Hình 2.4. Khối B kích thƣớc 4 x 4, với Sum(B)=8
Ta đếm số bit 1 trong khối: trong trƣờng hợp trên khối B có 8 bit 1, nên
Sum(B)=8. Do đó, Sum(B) (mod 2). Nhƣ vậy 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 sửa lại phần tử B[2,2] nhƣ
hình vẽ sau:
Hình 2.5. Khối B sau khi thay đổi bit
Sau khi thay đổi thì Sum(B’)=7, khi đó ta có Sum(B’)= 1 (mod 2).
1 0 1 1
0 0 0 0
0 0 1 0
1 1 1 0
19
+ 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)=0 (mod 2).
Khối B đƣợc bảo toàn và bit dữ liệu b=0 xem nhƣ đƣợc giấu.
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 thuật toán
SIW (Simple ivert watermarking) nhƣ sau:
Algorithm SIW
Input:
- File ảnh Bitmap đen trắng có chứa thủy vân G
Output:
- Dữ liệu d (dãy bit 0/1) trích từ ảnh G
Format: d= SIW(G)
Method
Chia A thành các khối kích thƣớc m x n, với mỗi khối Bi trong A ta tính di=
Sum(B) mod 2.
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à 8 x 8,
khối thứ hai có kích thƣớc là 8 x 12 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ị
20
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.
7. Thuật toán 2
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à khóa 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:
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(FiK)<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:
Nếu (SUM((FiK) mod 2 = b) thì giữ Fi nhƣ cũ.
Ngƣợc lại: nếu SUM((FiK)=1 thì chọn ngẫu nhiên một bit Fi(j,k)=0 mà
K(j,k)=1 và đổi Fi(j,k) thành 1.
21
Ngƣợc lại: nếu 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 và đổi Fi(j,k) thành 0.
Ngƣợc lại:chọn ngẫu nhiên một bit của Fi sao cho K(j,k)=1 và đảo ngƣợc
Fi(j,k).
Việc chọn khóa K nhằm làm tăng độ mật của thuật toán. Nếu trƣớc đây chỉ biết
kích thƣớc khối là M x N thì đối phƣơng rất dễ khai thác đƣợc bản tin mật, nay ngoài
kích thƣớc này còn phải biết giá trị cụ thể của khóa K.
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ộ.
Trong bƣớc S3 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.
SUM(Fi’^K) mod 2=b
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. Có thể dễ dàng
kiểm chứng rằng sau bƣớc S3 ta thu đƣợc bất biến trên. Nhờ bất biến đó, ta dễ dàng
giả mã để lấy lại thông tin đã giấu nhƣ sau:
Duyệt lần lƣợt các khối Fi’ của ảnh đích F’. Nếu Fi’ thỏa mãn điều kiện
0<SUM(Fi’^K) <SUM(K) thì tính bit b đã đƣợc giấu vào trong khối bằng công thức
b= SUM(Fi’^K) mod 2.
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ỏ.
22
Giả sử ta cần giấu 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 vẽ. Ta 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.
Ví dụ nhúng 3 bit
Áp dụng thuật toán:
- Vì SUM(F1^K) =SUM(K)=5 nên không giấu dữ liệu vào trong F1.
- Vì SUM(F2^K) =3 nên ta giấu bit đầu tiên b=0 của d vào khối này.
- Vì SUM(F2^K) mod 2=3 mod 2 0 và thỏa mãn điều kiện nên ta chọn ngẫu
nhiên một một phần tử, chẳng hạn phần tử (2,3) để đảo bit trong khối F2. Với phần tử
này ta có F2[2,3]=0 và K[2,3]=1. Sau khi đảo bit F2[2,3] ta thu đƣợc khối G2 nhƣ
trên hình vẽ (bit đổi đƣợc tô xám).
- Với F3, SUM(F3^K)=3 và bit cần giấu là bit thứ hai trong d, b=1 nên ta có
SUM(F3^K) mod 2=3 mod2=1=b. Khối F3 đƣợc giữ nguyên với ý nghĩa là khối đã
đƣợc giấu bit b=1 (trƣờng hợp 1).
- Cuối cùng, đối với F4, SUM(F4^K)=4=SUM(K)-1, và bit cần giấu là bit cuối
cùng của d, b=1 nên ta có SUM(F4^K) mod 2=4 mod 2=0 b.Trƣờng hợp này rơi
vào trƣờng hợp thứ 3 trong thuật toán. Ta chọn phần tử (2,1) để đảo bit trong khối F4
vì với phần 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 G4 nhƣ trên hình vẽ (bit bị đảo đƣợc tô xám).
8. Thuật toán 3
23
* Ý tƣởng: Kỹ thuật này tốt hơn kỹ thuật trên vì có thể nhúng nhiều bit vào một khối.
Với một khối kích thƣớc mxn có thể nhúng log2(mn+1) bit dữ liệu bằng cách thay
đổi nhiều nhất 2 bít trong một khối. Ở đây ta sử dụng ma trận trọng số (W) khi nhúng
thủy vân. Thuật toán đảm bảo tốt, an toàn và giấu đƣợc nhiều thông tin trong ảnh
bằng cách thay đổi nhiều nhất 2 bit mỗi khối ảnh. Nhƣợc điểm của phƣơng pháp này
là chất lƣợng chƣa cao, dễ bị phát hiện, chỉ nên áp dụng cho ảnh màu. Thuật toán cải
tiến sẽ cải thiện rất nhiều chất lƣợng ảnh bằng kỹ thuật chọn hệ số phân bố bit đen
trắng và số bit giấu tƣơng đƣơng.
* Một số khái niệm
- Khóa bí mật K:
Khóa 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 giá trị (0..2r-1) với r
cho trƣớc thỏa mãn điều kiện 2r<(mxn)
+ Mỗi một 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ó:
)12(12 )12(!12 rr mnrr
mnC
Khả năng chọn W. 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 bởi những kẻ
phá hoại.
K W
F1
F2
F3 F4
24
Hình 34. Ma trận ảnh F(F1,F2,F3,F4) khóa K và ma trận trọng số W
* Phép đảo bit:
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.
* Các phép toán trên ma trận dùng trong thuật toán
Ngoài các phép toán And, Xor, Sum đã đề cập, trong thuật toán còn sử dụng thêm
phép nhân ma trận (ký hiệu ).
Hình 35. FW là phép toán nhân giữa các cặp bit của hai ma trận
* Thuật toán:
- Dữ liệu vào:
+ 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 F
i 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)
+ d: độ chênh lệch trọng số
- Dữ liệu ra:
Các ma trận điểm ảnh F’i đƣợc thay đổi từ Fi. Các Fi’ cho ra ảnh F’ đã có
thông tin thủy vân.
F W FW
25
Thuật toán sẽ thực hiện việc biến đổi mỗi Fi thành Fi’ sao cho luôn thỏa mãn
điều kiện sau:
SUM((Fi’ )K ) b1b2…br(mod 2r)
Mỗi Fi bị biến đổi nhiều nhất là 2 bit. Quá trình biến đổi gồm 4 bit sau đây:
B1) Tính ma trận T=FiK
B2) Tính tổng SUM(TW)
B3) 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 nhƣ 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
B4) Ký hiệu d=(b1b2…br)- SUM(TW) mod 2r.
Ta cần thực hiện việc đả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 d 0 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]
26
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ả.
* Sau khi nghiên cứu thuật toán chúng ta có thể đƣa ra một số 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.
11. Kỹ thuật thủy vân cho ảnh xám
Thuật toán SW nói trên mặc dù áp dụng cho ảnh đen trắng nhƣng nó cũng có
thể sử dụng cho ảnh màu hoặc ảnh đa cấp xám.
27
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 theo sơ đồ sau
đây:
Giả sử ta cần giấu bản tin d vào ảnh C
- Bước 1: Trích từ ảnh màu C ra một ảnh đen trắng F.
- Bước 2: Sử dụng thuật toán SW giấu bản tin d vào ảnh đen trắng F để thu đƣợc
ảnh đen trắng F’.
- Bước 3: Trả lại các bit của F’ vào mỗi điểm ảnh màu tƣơng ứng của F để thu
đƣợc ảnh mầu kết quả là G.
Có nhiều cách để trích ra một ảnh đen trắng từ một ảnh màu C. Ví dụ, với mỗi
giá trị biểu diễn điểm ảnh C ta chọn ra một bit thấp. Nếu bit này mang giá trị 0 thì sẽ
sinh ra một điểm đen tƣơng ứng trong ảnh F, ngƣợc lại nếu bit trích ra mang giá trị 1
thì sẽ sinh ra một điểm đen tƣơng ứng trong ảnh F, ngƣợc lại nếu bit trích ra mang
giá trị 1 thì sinh ra một điểm trắng tƣơng ứng cho ảnh đen trắng F.
Thủ tục trả lại ảnh đen trắng F’ vào ảnh màu gốc C là ngƣợc so với thủ tục
trích nói trên. Nếu điểm ảnh trong F’ là đen thì ta gán giá trị 0 cho bit thấp nhất của
điểm ảnh tƣơng ứng trong C, ngƣợc lại nếu điểm ảnh trong F’ là trắng thì ta gán trị 1
cho bit thấp nhất của điểm ảnh tƣơng ứng trong C.
Nhƣ vậy, đây là kỹ thuật thủy vân khá đơn giản nhƣng rất dễ bị tấn công do đó
phƣơng pháp chèn vào các bit quan trọng dƣờng nhƣ không thích hợp đối với thủy
vân số, nơi mà các bức ảnh phải đối mặt với các thay đổi cố tình làm phá hoại chúng,
cộng thêm các biến đổi khác nhƣ nén hoặc giải nén (có mất mát thông tin). Kỹ thuật
28
này đƣợc sử dụng cho các thuật toán thủy vân chống xuyên tạc do tính chất dễ bị phá
vỡ trƣớc các tấn công trên hệ thủy vân.
IV. Thuật toán thủy vân dựa trên DCT
12. Ý tƣởng
Thuật toán dƣới đây sử dụng phƣơng pháp nhúng thủy 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 thủy vân là miền tần số ở giữa của các
khối ảnh cùng kích thƣớc đã đƣợc chọn ra 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 bit tín hiệu thủy vân sẽ đƣợc
nhúng trong một khối.
13. Chuyển đổi cosin rời rạc
9. Chuyển đổi tuyến tính
Trong chuyển đổi tuyến tính, dãy { n } sẽ nhận đƣợc từ dãy { n } theo công thức:
in
M
i
in ,
1
0
Đây là công thức chuyển đổi thuận. Dãy ban đầu có thể khôi phục thông qua công
thức chuyển đổi ngƣợc:
in
M
i
in ,
1
0
Nếu sử dụng ma trận ta cũng thu đƣợc kết quả tƣơng tự:
.A
.B
Trong đó, 110 ,....,, M , 110 ,...,, M và A, B là ma trận MxM với
jijjiji BA ,,,, ,
Ma trận biến đổi thuận và ngƣợc là biến đổi ngƣợc của nhau. Do đó, A.B=B.A=I. Với
I là ma trận đơn vị.
Mở rộng công thức này cho hàm hai chiều ta có công thức biến đổi thuận cho khối
tuyến tính có kích thƣớc MxM nhƣ sau:
29
lkji
M
i
M
j
jilk X ,,,
1
0
1
0
,, .
(3.5)
Biến đổi hai chiều gọi là có thể tách đƣợc nếu nó có thể phân thành một dãy biến đổi
một chiều. Với ảnh số, điều này tƣơng đƣơng với biến đổi theo hàng, sau đó là biến
đổi theo cột hoặc ngƣợc lại. Trong trƣờng hợp có thể phân tách thì công thức (3.5)
đƣợc biểu diễn nhƣ sau:
lj
M
i
M
j
jiiklk X ,
1
0
1
0
,,, ..
Với ma trận ta có:
TAXA ..
Và công thức ngƣợc:
TBBX ..
Một biến đổi đƣợc gọi là trực giao nếu ma trận ngƣợc của ma trận biến đổi chính là
ma trận chuyển vị.
B=A-1
=A*T
Từ đó ta có:
AAAA TTTTM
i
i
****1
0
2 .
(3.10)
Trong biến đổi trực giao, ma trận A chỉ ra rằng:
IAAAA T .. 1* (3.11)
Do đó:
1
0
2**M
n
n
TT I (3.12)
Kết hợp công thức 3.10 và 3.12 ta nhận đƣợc:
1
0
21
0
2M
n
n
M
n
n
10. Biến đổi cosin rời rạc
a) DCT một chiều
30
Cho mảng V gồm M số: V=[vo,v1,...,vM-1].
Dãy V’ đƣợc xây dựng từ V nhƣ sau:
V’=[vo,v1,...,vM-1,vM-1,…,v1,v0 ].
Nói cách khác:
1212
10'
MkMkMV
MkkVkV
Ta lấy biến đổi DFT 2M điểm của V’:
120,12' /12
/1
0
/12
0
MuekMVekVekVuT MkujM
Mk
MkujM
k
MkujM
k
(3.15)
Nếu đặt l=2M-1-k, công thức 3.15 trở thành:
120,/)12(1
0
/1
0
MuelVekVuT MulMjM
l
MkujM
k
Suy ra:
120),( 2/)12(2/)12(1
0
2/
MueekVeuT MukjMukjM
k
Muj
Do đó:
M
ukjkVeuT
M
k
Muj
2
)12(cos2.
1
0
2/
Hệ quả là ta có công thức chuyển đổi mới:
DCT(V[k])=C[u]=
11][.
0]0[2
1
2/ MuuTe
uT
Muj
Từ phân tích ở trên ta thấy biến đổi DCT của vector V thu đƣợc bằng cách lấy ảnh
ngƣợc, kết hợp với hai dãy để nhận đƣợc đãy 2M điểm, sau đó lấy M điểm đầu của
chuyển đổi DFT 2M điểm.
Cặp DCT đƣợc biểu diễn tổng quát hơn nhƣ sau cho biến đổi thuận:
31
M
ukkV
MuC
kVM
C
M
k
M
k
2
)12(cos
2
10
1
0
1
0
Biến đổi ngƣợc:
M
ukuC
MC
MkV
M
u 2
)12(cos
20
1 1
1
Biến trong công thức cosin đảm nhận việc điều chỉnh tần số, hệ số nhân với cosin
đảm nhận việc điều chỉnh biên độ của hàm. Rõ ràng IDCT là tổng cosin của các tần số
khác nhau và các hệ số DCT biểu diễn độ rộng của mỗi hàm cosin.
b) DCT hai chiều
Công thức chuyển đổi DCT hai chiều nhƣ sau:
M
jx
M
iyxyVjicjiT
M
y
M
x 2
)12(cos
2
)12(cos,),(],[
1
0
1
0
lainguocM
jiM
jic2
0,1
),(
Chuyển đổi IDCT cho hai chiều:
M
jx
M
iyjiTjicxyV
M
j
M
i 2
)12(cos
2
)12(cos,),(,
1
0
1
0
Không giống nhƣ DFT, DCT làm việc với số thực và nó đƣợc biết đến nhiều
hơn so với DFT. Với DCT ta có thể tránh đƣợc các hệ số lớn cho các thành phần tần
số cao so với DFT do có biên không liên tục.
14. Quá trình nhúng thủy vân
Input:
Thủy vân: Một chuỗi các bit S hoặc một ảnh nhị phân W, và một ảnh F
Output: Ảnh gốc đã nhúng thủy vân FW
32
Thực hiện:
Một ảnh có kích thƣớc M x N sẽ đƣợc chia thành (M x N)/64 khối 8x8,
mỗi bit thủy vân sẽ đƣợc giấu trong một khối.
Bƣớc 1: Chọn một khối bất kỳ B và biến đổi DCT khối đó thu đƣợc B’
Bƣớc 2: Chọn hai hệ số ở vị trí bất kỳ trong miền tần số ở giữa của khối B’, giả
sử đó là B’(i,j) và B’(p,q).
Bƣớc 3: Tính độ chênh lệch d= || B’(i,j) | - | B’(p,q)|| mod a, trong đó a là một
tham số thỏa mãn a=2(2t+1), t là số nguyên dƣơng.
Bƣớc 4: Bit thủy vân Si sẽ đƣợc nhúng sao cho thỏa mãn điều kiện
12
12
td
td
Nếu d<2t+1 mà Si=1 thì một trong hai hệ số DCT b’(i,j) hoặc b’(p,q) có trị
tuyệt đối lớn hơn sẽ bị thay đổi để t>=2t+1 theo công thức sau:
Max(|b’(i,j)|, |b’(p,q)|) + (INT(0.75 x a) –d)
Với hàm max(|b’(i,j)|, b’(p,q)|) là hàm chọn ra hệ số có trị tuyệt đối lớn hơn, hệ
số đƣợc chọn sẽ đƣợc cộng thêm một lƣợng là (INT(0.75 x a) –d), hoặc cũng có thể
biến đổi một trong hai hệ số theo công thức:
Min(|b’(i,j) , |b’(p,q)|) - (INT(0.25 x a) +d), INT() là hàm lấy phần nguyên của
một số thực.
Tƣơng tự, nếu d>=2t+1 mà Si=0 thì một trong hai hệ số DCT b’(i,j) hoặc
b’(p,q) có trị tuyệt đối lớn hơn sẽ đƣợc thay đổi để thỏa mãn d<2t+1 nhƣ sau:
Max(|b’(i,j) , |b’(p,q)|) – (d - (INT(0.75 x a) )
Hàm max(|b’(i,j)| , |b’(p,q)|) là hàm chọn ra hệ số có trị tuyệt đối lớn hơn, hệ số
đƣợc chọn sẽ bị trừ đi một lƣợng là (d – INT(0.25 x a)), hoặc cũng có thể biến đổi
một trong hai hệ số theo công thức:
Min(|b’(i,j) , |b’(p,q)|) + (INT(0.25 x a) - d)
nếu Si=1
nếu Si=0
33
Hàm Min(|b’(i,j) , |b’(p,q)|) là hàm chọn ra hệ số có trị tuyệt đối nhỏ hơn, hệ
số đƣợc chọn sẽ đƣợc cộng thêm một lƣợng là (INT(0.25 x a) - d)
Bƣớc 5: Thực hiện phép biến đổi ngƣợc IDCT đối với khối ảnh đã nhúng bit
thông tin thủy vân. Ghép các khối ảnh kết quả để đƣợc ảnh chứa thủy vân.
15. Thuật toán nhúng thủy vân WM
Để nhúng thủy vân W thể hiện qua dãy bit (w1, w2,…, wn) vào ảnh nguồn F ta
lấy ngẫu nhiên từng khối bit B của ảnh nguồn và giấu lần lƣợt các bit thủy vân wi vào
mỗi khối. Khóa dùng để trích thủy vân bao gồm giá trị n là bậc của các khối ảnh B,
trật tự ngẫu nhiên K của quá trình chọn các khối B và các cặp chỉ số (i,j), (p,q) đƣợc
chọn để sửa ma trận hệ số C trong các lời gọi thuật toán WM1 cho mỗi khối. Quá
trình nhúng thủy vân đƣợc mô tả qua sơ đồ sau:
Hình 3.1. Quá trình nhúng thủy vân
Algorithm WM
Input
- Số tự nhiên n: bậc của khối
- Số tự nhiên t
Ảnh gốc
Các khối DCT
Ảnh đã nhúng thủy vân
Các khối ảnh
Các khối đã nhúng thủy vân
Watermark
Tách
Biến đổi
Nhúng thủy vân
Biến đổi
Các khối đã biến đổi ngƣợc IDCT
Ghép ảnh
34
- Thủy vân W=(wi, w2,…, wm)
- Ảnh nguồn F
Output
- Ảnh đã chứa W biến đổi từ F
- Trật tự chọn khối K
- Dãy các cặp chỉ số S
Procedure WM(W, F, n, t, S)
Method
1. Khởi trị
K:= null;
S:= null;
m:=length(W);
2. for i:=1 to m do
Chọn ngẫu nhiên theo chỉ số r khối B trong F chƣa giấu tin;
Add r to K
WM1(wi, B, n, t, i, j, p, q);
Add(i,j) to S;
Add(p,q) to S;
End for;
End WM.
Do thuật toán WM có độ phức tạp tính toán là O(n2log2n) nên độ phức tạp tính
toán của thuật toán WM sẽ là O(mn2log2n), trong đó m là chiều dài tính theo số bit
của thủy vân, n là bậc của một khối ảnh.
16. Ví dụ minh họa
Giả sử ta cần giấu một bit thủy vân b vào khối ảnh B. Ta chọn a=18=
2(2x4+1), do đó t=4.
Quá trình giấu tin đƣợc thực hiện nhƣ sau:
Giả sử có giá trị nhƣ bảng dƣới đây. Khối này đƣợc lấy ra từ thành phần Blue
của một ảnh màu 24 bit.
58 75 77 55 55 55 55 55
35
26 77 77 77 55 77 77 76
78 25 77 77 77 78 26 76
33 26 33 27 27 26 26 77
203 202 202 202 27 26 26 26
202 202 151 149 150 201 26 27
244 202 40 201 202 102 244 201
202 208 202 202 202 202 202 201
Hình 3.2. Khối ảnh tách từ mầu Blue
Sau khi biến đổi DCT ta thu đƣợc khối B’ chứa các hệ số DCT nhƣ sau
862 117 3 0 36 6 -17 -50
-409 -63 -28 -53 -30 -6 50 9
174 -123 13 32 0 -8 -58 18
30 144 -18 28 -18 1 -22 -43
-38 40 11 -76 -23 21 16 5
-71 -109 57 53 72 -6 -59 22
4 47 -70 44 -26 -38 100 -7
72 63 28 -40 47 59 -51 1
Hình 3.3. Miền tần số giữa của khối sau phép biến đổi DCT
Từ khối hệ số B’ nói trên ta sẽ chọn bất kỳ hai hệ số trong miền tần số ở giữa
đƣợc đánh dấu sẫm. Giả sử đó là hai vị trí B’[4,2] và B’[8,1] giá trị tƣơng ứng là 144
và 72.
Tính d: d=||144|-|72|| mod 18=0
36
Vì d<2t+1 =9 nên nếu phải giấu bit b=0 vào khối này thì ta sẽ giữ nguyên khối
vì d đã thỏa mãn điều kiện giấu.
Trong trƣờng hợp này, thực hiện phép biến đổi DCT ngƣợc ta thu lại đƣợc
chính khối B ban đầu IDCT(B’, B, n).
Ngƣợc lại, nếu phải chọn giấu bit b=1 vào B thì ta phải thay đổi một trong hai
hệ số đã chọn để thu đƣợc hệ thức d>=2t+1.
Vì B’[4,2]=144 có trị tuyệt đối lớn hơn B’[8,1]=72 nên B’[4,2] đƣợc chọn để
sửa trị. Giá trị mới của B’[4,2] khi đó sẽ là:
B’[4,2]:= B’[4,2] + INT(0.75 x a)-d=144+INT(0.75x18)-0=157
Bây giờ, tính lại d với trƣờng hợp hệ số B’[4,2] đã thay đổi thành 157.
D=(157-72) mod 18 = 13>9=2t+1 và thỏa mãn điều kiện giấu bit 1 vào khối.
Sau đó, khối B’ lại đƣợc biến đổi ngƣợc DCT để thu đƣợc khối ảnh mới sau đây.
61 78 57 78 55 53 52 52
25 77 76 77 55 77 77 77
74 23 75 76 77 79 29 80
32 25 32 26 27 27 27 78
205 203 203 202 26 25 24 25
206 205 152 150 150 200 23 24
245 202 41 202 201 102 244 200
199 206 201 202 203 204 204 204
Hình 3.4. Khối ảnh sau khi giấu dữ liệu
17. Quá trình trích thủy vân
Dựa vào trật tự K của quá trình chọn khối và dãy các cặp hệ số trong mỗi lần
sửa khối, thuật toán trích thủy vân IWM trình bày dƣới đây sẽ đọc mỗi lần một khối B
từ ảnh chứa thủy vân FW và sau đó gán trị cho bit b theo điều kiện dƣới đây:
37
Nếu d>=2t+1, đặt b:=1;
Nếu d<2t+1, đặt b:=0;
Giá trị t xem nhƣ đã biết trƣớc, a=2(2t+1).
Trong thuật toán IWM, hàm length(K) cho ra số lƣợng phần tử trong dãy K.
Algorithm IWM
Input
- Ảnh đen trắng F có chứa thủy vân
- Bậc của khối n
- Số tự nhiên t
- Dãy K chứa các chỉ số của các khối chọn ngẫu nhiên trong thuật toán
nhúng thủy vân.
- Dãy S chứa các cặp chỉ số quy định vị trí các phần tử đã sửa trong mỗi
khối.
Output
- Thủy vân W biểu diễn qua dãy bit
Procedure IWM(F, V, K, S, n, t)
Method
Khởi tạo W:=null;
m:=length(K);
for f:=1 to m do
get rth block B in F;
get next index(p,q) in S;
DCT (B, C, n)
d:=||C[i,j]|-|C[p,q]|| mod a;
if d>=2t+1 then b:=1 else b:=0
38
endif;
add b to W;
endfor;
End IWM.
Quá trình tách thủy vân đƣợc mô tả nhƣ hình dƣới đây
Hình 3.5. Quá trình trích thủy vân
18. Kết luận
Kích thƣớc khối ảnh nêu trong kỹ thuật là 8 x 8. Tuy nhiên, có thể lựa chọn các
kích thƣớc khác nhau tùy ý theo kích thƣớc từng ảnh gốc và kích thƣớc thực tế của
thủy vân.
Việc chọn một cặp hệ số trong miền tần số giữa có thể đƣợc chọn cố định cho
tất cả các khối trong quá trình nhúng thủy vân. Khi đó, thủy vân có thể rất dễ bị phát
hiện thông qua việc thử lần lƣợt các cặp hệ số trong miền tần số giữa. Có thể làm tăng
độ an toàn và khó phát hiện thủy vân bằng cách đƣa ra một thuật toán có sử dụng
khóa cho sự lựa chọn cặp hệ số trong miền tần số giữa cho từng khối DCT. Khi đó, vị
Ảnh đã nhúng thủy vân
Lấy ra các khối đã chọn
Khối đã biến đổi DCT
Watermarks
Tách khối
Biến đổi DCT
Giải mã
39
trí của cặp hệ số đƣợc chọn cho quá trình nhúng thủy vân trong từng khối sẽ đƣợc lƣu
sử dụng làm khóa cho quá trình tách thủy vân.
Trong kỹ thuật này, quá trình tách thủy vân không cần sử dụng ảnh gốc. Tham
số a trong kỹ thuật đóng vai trò nhƣ là hệ số tƣơng quan giữa tính ẩn và tính bền vững
của thủy vân. Khi tăng hệ số a lên thì độ sai lệch của thủy vân giảm đi và nhƣ vậy nó
bền vững hơn. Tuy nhiên, nếu tăng a thì chất lƣợng ảnh sau khi giấu sẽ giảm. Điều
này rất dễ hiểu vì a lớn nghĩa là phân lớp khoảng cách hai hệ số lớn nên khoảng biến
đổi của một hệ số để thỏa mãn điều kiện giấu lớn dẫn đến ảnh hƣởng nhiều đến chất
lƣợng ảnh.
(Phần này phải làm lại ví dụ và lấy ví dụ cho phân tách thủy vân)
/*******************************************/
V. Kỹ thuật thủy vân sử dụng sóng nhỏ
19. Giới thiệu về sóng nhỏ
Biến đổi tín hiệu chỉ là dạng biểu diễn khác của tín hiệu. Nó không làm thay
đổi nội dung thông tin của tín hiệu. Biến đổi sóng nhỏ cung cấp cách biểu diễn thời
gian – tần số của tín hiệu. Biến đổi này tạo ra nhằm khắc phục những hạn chế của
biến đổi Fourier thời gian ngắn (Short Time Fourier Transform-STFT) và cũng đƣợc
sử dụng để phân tích tín hiệu động. Trong khi đó STFT cho độ phân dải không đổi ở
tất cả các tần số. Biến đổi sóng nhỏ sử dụng kỹ thuật đa độ phân dải bằng cách với
mỗi tần số khác nhau nó phân tích với một độ phân dải khác nhau.
Mỗi sóng là một hàm dao động của thời gian hoặc không gian và tuần hoàn.
Ngƣợc lại, sóng nhỏ là sóng cục bộ, chúng có năng lƣợng tập trung ở thời gian hoặc
không gian và thích hợp để phân tích tín hiệu tạm thời. Trong khi biến đổi fourier và
STFT sử dụng sóng để phân tích tín hiệu thì biến đổi sóng nhỏ sử dụng sóng nhỏ của
năng lƣợng hữu hạn.
40
Hình 2.1. Sự khác nhau giữa sóng(a) và sóng nhỏ(b)
Trong phân tích sóng nhỏ, tín hiệu đƣợc phân tích nhiều lần với hàm sóng nhỏ
và sự biến đổi đƣợc tính toán với mỗi phần đƣợc tạo ra. Với tần số cao, biến đổi sóng
nhỏ cho độ phân dải rất tốt về thời gian và độ phân dải không tốt về tần số. Với tần số
thấp, biến đổi sóng nhỏ cho độ phân dải tốt về tần số và độ phân dải không tốt về thời
gian.
20. Lý thuyết biến đổi sóng nhỏ rời rạc cho thủy vân ảnh (DWT)
DWT là chủ đề rất lớn. Ở đây chỉ tập trung vào những vấn đề của DWT mà có
liên quan đến vấn đề ta đang quan tâm là thủy vân. Hai vấn đề chung của tất cả các
thuật toán biến đổi sang miền tần số là biến đổi thuận và biến đổi ngƣợc.
DWT là viết tắt cả Discrete Wavelet Transformation, sử dụng để biến đổi dữ
liệu mẫu thành hệ số sóng nhỏ.
IDWT là viết tắt của Inverse Discrete Wavelet Transformation, dùng để biến
đổi ngƣợc hệ số sóng nhỏ thành dữ liệu mẫu gốc.
Ở đây ta thảo luận về ảnh có kích thƣớc NxN.
2.2.1. Xử lý phân tách
Ảnh đƣợc lọc thông cao và thông thấp giữa các dòng. Kết quả lọc của mỗi lần
đƣợc lấy mẫu hai lần theo thông cao và thông thấp. Hai tín hiệu con này tƣơng ứng
với thành phần tần số cao và thành phần tần số thấp giữa các dòng. Mỗi tín hiệu con
này một lần nữa đƣợc lọc thông cao và thông thấp, nhƣng lần này là giữa các cột. Kết
quả này một lần nữa đƣợc lấy mẫu.
41
Hình 2.2. Bƣớc phân tách của ảnh hai chiều
Ở bƣớc này dữ liệu gốc đƣợc phân thành 4 ảnh con, mỗi ảnh có kích thƣớc
N/2xN/2 chứa thông tin về các thành phần tần số khác nhau. Hình 2.2. thể hiện bƣớc
phân tách của ảnh xám hai chiều. Hình 2.3. thể hiện 4 nhánh con khi phân tách ảnh.
Hình 2.3. Bƣớc phân tách DWT
LL là kết quả lọc thông thấp cả dòng và cột, chứa thành phần miêu tả thô về
ảnh. Do đó LL còn đƣợc gọi là xấp xỉ của ảnh. HH là kết quả lọc thông cao theo cả
hàng và cột và nó chứa thành phần tần số cao của tín hiệu tƣơng tự. HL và LH là kết
quả của lọc thông thấp một chiều và lọc thông cao ở chiều còn lại. LH chứa thông tin
chi tiết theo chiều đứng, tƣơng ứng với cung ngang. HL biểu diễn thông tin chi tiết
theo chiều ngang từ cung đứng. Tất cả 3 thành phần con: HL, LH, HH đƣợc gọi là
nhánh con chi tiết vì nó bổ sung chi tiết tần số cao cho ảnh xấp xỉ.
21. Xử lý ghép
Xử lý ngƣợc thể hiện trên hình 2.4. Thông tin từ 4 ảnh con đƣợc lấy mẫu và lọc
ngƣợc giữa các cột. Kết quả thu đƣợc một lần nữa đƣợc lấy mẫu và lọc ngƣợc với bộ
42
lọc ngƣợc. Kết quả cuối cùng thu đƣợc chính là ảnh gốc. Ở đây không có sự mất mát
thông tin trong quá trình phân tách cũng nhƣ quá trình ghép để thu đƣợc ảnh gốc.
Hình 2.4. Bƣớc ghép 4 thành phần ảnh con
Với DWT có thể phân tách ảnh nhiều lần. Có thể tiếp tục phân tách cho đến
khi tín hiệu đƣợc phân tách toàn bộ hoặc để ngƣời dùng tự động ngắt quá trình phân
tách một cách thủ công. Với các ứng dụng nén và thủy vân, thông thƣờng quá trình
phân tách không thực hiện quá 5 lần.
Hầu hết sử dụng hai cách phân tách sau:
- Phân tách kiểu hình chóp
- Phân tách kiểu đóng gói
22. Phân tách kiểu hình chóp
Kiểu phân tách đơn giản và phổ biến nhất là phân tách kiểu hình chóp. Với
cách phân tách này, ta chỉ tiến hành phân tách tiếp cho thành phần con LL. Hình 2.5.
thể hiện lƣợc đồ phân tách của 3 mức. Ở mỗi mức¸ chi tiết của mỗi thành phần là kết
quả cuối cùng của mức đó, nhƣng chỉ có thành phần xấp xỉ là LL đƣợc phân tách tiếp.
Hình 2.5. 3 mức phân tách ảnh sử dụng kiểu phân tách hình chóp
43
Hình 2.6 thể hiện cấu trúc hình chóp là kết quả của cách phân tách này. Ở mức
phân tách sâu nhất sẽ có một ảnh con xấp xỉ và 9 nhánh con ở các mức khác nhau.
Sau khi phân tách thành phần LL, có tất cả D(L)=3*L+1 nhánh con.
Hình 2.6. Hình chóp sau 3 mức phân tách
Hình 2.7 là một ví dụ về kết quả của phân tách kiểu hình chóp. Đó là kết quả
tƣơng ứng với một, hai và ba mức phân tách.
Hình 2.7. Phân tách ảnh lần 1, 2 và 3
23. Phân tách sóng nhỏ kiểu đóng gói
Kiểu phân tách này không hạn chế số lần phân tách với từng thành phần ảnh, ở
mỗi lần phân tách tất cả các thành phần con đều đƣợc phân tách. Hình 2.8 thể hiện
lƣợc đồ của kiểu phân tách đóng gói qua hai lần phân tách.
44
Hình 2.8. Hai lần phân tách của kỹ thuật đóng gói.
Hình 2.9 thể hiện kết quả phân tách ảnh qua 2 lần
Hình 2.10. Kết quả phân tách kiểu đóng gói sau 2 lần phân tách
24. Họ sóng nhỏ
45
Có một số hàm cơ sở đƣợc dùng làm họ sóng nhỏ cho biến đổi sóng nhỏ. Vì họ
sóng nhỏ tạo ra tất cả các hàm sóng nhỏ, nó xác định đặc trƣng của biến đổi sóng nhỏ
sau khi thực hiện. Do đó, chi tiết của ứng dụng cụ thể nên đƣợc xem xét kỹ để xác
định ra họ sóng nhỏ nên sử dụng sao cho quá trình biến đổi sóng nhỏ sẽ hiệu quả cho
ứng dụng tƣơng ứng.
Hình 2.11. minh họa một số hàm sóng nhỏ phổ biến. Hàm Haar là một trong
những hàm đơn giản và lâu đời nhất. Do đó bất kỳ thảo luận nào về sóng nhỏ đều bắt
đầu với hàm Haar. Hàm Daubechies là hàm phổ biến nhất. Nó thể hiện cơ sở của xử
lý tín hiệu sóng nhỏ và thƣờng dùng cho các ứng dụng lớn. Hai hàm Haar và
Daubechies còn đƣợc gọi là sóng Maxflat vì đáp ứng xung của chúng có độ dẹt nhất ở
tần số 0 và π. Đây là đặc trƣng mà nhiều ứng dụng mong muốn đạt đƣợc. Hàm Haar,
Daubechies, Symlets và Coiflets đều đƣợc hỗ trợ sóng nhỏ trực giao. Sóng này cùng
với sóng nhỏ Meyer có khả xây dựng lại cấu trúc một cách hoàn hảo. Sóng Meyer,
Morlet va Mexican Hat là các sóng có hình dạng đối xứng.
25. Kỹ thuật thủy vân sử dụng phép biến đổi sóng nhỏ
11. Kỹ thuật thủy vân của Raval Mehul va Rege Priti
3.3.1.1. Ý tưởng
Dựa trên kỹ thuật biến đổi sóng nhỏ hai tác giả Raval Mehul và Rege Priti đã
đề xuất kỹ thuật thủy vân sử dụng phép biến đổi sóng nhỏ hai chiều để phân tích ảnh
gốc thành bốn băng LL, HL, LH và HH rồi nhúng tín hiệu thủy vân thứ nhất vào băng
LL, nhúng một thủy vân khác vào băng HH. Kết quả thử nghiệm cho thấy thủy vân
bền vững trƣớc một số phép xử lý ảnh thông thƣờng.
3.3.1.2. Quá trình nhúng thủy vân
Input:
- Thủy vân: hai ảnh nhị phân J, K kích thƣớc N x N
- Một ảnh chứa I kích thƣớc 4N x 4N
Output: Ảnh chứa đã nhúng thủy vân I’
Method:
- Sử dụng phép biến đổi sóng nhỏ hai chiều mức hai đối với I
46
- Nhúng thủy vân J vào băng LL2, nhúng thủy vân K vào băng HH2 bởi
công thức : Vi,j’=Vi,j+Wi,j. Với Vi,j là hệ số tƣơng ứng trong LL2 và HH2;
là hệ số tƣơng quan giữa tính ẩn và tính bền vững của thủy vân.
- Sử dụng phép biến đổi ngƣợc IDWT để tổng hợp lại đƣợc ảnh chứa
thủy vân.
3.3.1.3. Quá trình tách thủy vân
- Sử dụng phép biến đổi sóng nhỏ hai chiều mức hai đối với ảnh gốc I và
ảnh chứa thủy vân I’.
- Từ kết quả phân tích trên, tính giá trị lệch giữa các điểm tƣơng ứng
thuộc các băng LL2, HH2 của ảnh chứa thủy vân và ảnh gốc rồi chia cho để
đƣợc bit tƣơng ứng thuộc ảnh thủy vân: Wi,j’= (Vi,j - Vi,j)/ .
- Kiểm định, đánh giá thủy vân tách đƣợc với thủy vân gốc.
3.3.1.4. Kết quả
Qua thử nghiệm, kỹ thuật thủy vân của Raval Mehul va Rege Prit cho kết
quả thủy vân bền vững trƣớc một nhóm các biến đổi thông thƣờng đối với ảnh
chứa thủy vân. Thủy vân nhúng ở băng LL bền vững trƣớc một nhóm các phép
biến đổi, trong khi thủy vân nhúng ở băng HH lại bền vững trƣớc một nhóm các
biến đổi khác. Điều đó thể hiện, thủy vân đƣợc nhúng ở các băng khác nhau thể
hiện tính bền vững khác nhau trƣớc các tấn công vào hệ thủy vân. Nhƣ vậy, có thể
sử dụng thủy vân nhúng vào tất cả cá băng trong phép phân tích sóng nhỏ để có
thể tìm đƣợc sự bền vững ở ít nhất một trong các băng trƣớc các tấn công hoặc có
thể xây dựng một phƣơng pháp nhúng kết hợp vào các băng để tìm một thủy vân
tổng hợp từ các băng đã nhúng.
Quá trình tách thủy vân ở đây đƣợc yêu cầu sử dụng cả ảnh gốc và ảnh
chứa thủy vân.
12. Kỹ thuật thủy vân của Peining Tao và Ahmet M. Eskicioglu
Với kỹ thuật trên các tác giả đã sử dụng phép biến đổi sóng nhỏ hai chiều
để phân tích ảnh gốc thành các băng tần khác nhau, rồi nhúng tín hiệu thủy vân
vào một hoặc một số các băng tần. Theo cách đó, thủy vân có thể bền vững trƣớc
một số tấn công nhƣng lại kém bền vững với một nhóm các tấn công khác. Khắc
phục yếu điểm trên, trong thuật toán này, các tác giả Peining Tao và Ahmet M.
47
Eskicioglu đã nhúng tín hiệu thủy vân vào cả bốn băng tần trong phép phân tích
sóng nhỏ, mỗi băng tần có thể sử dụng các hệ số khác nhau.
3.3.2.1. Quá trình nhúng thủy vân
Input:
Ảnh chứa, I=(aij, 0i, j2n),
Ảnh thủy vân là ảnh nhị phân, W=(wij 0, 1, 0i, jn)
Output: Ảnh chứa đã đƣợc nhúng thủy vân IW
Method:
- Thực hiện phép biến đổi sóng nhỏ DWT mức một để phân tích
ảnh chứa I.
- Sửa các miền tần số Vij tƣơng ứng với các băng LL, HL, LH, và
HH:
- ijk
k
ij
k
ijw WVV , ; với i,j=1,….,n; k=1, 2, 3, 4
- Thực hiện phép biến đổi ngƣợc IDWT đối với các băng đã sửa
đổi tƣơng ứng trong bƣớc thứ 2 để đƣợc ảnh chứa đã nhúng thủy vân IW.
3.3.2.2. Quá trình tách thủy vân
Input : Ảnh chứa đã nhúng thủy vân, ảnh gốc
Output: Thủy vân là ảnh nhị phân W*
Method:
- Thực hiện phép biến đổi sóng nhỏ DWT mức một để phân tích
ảnh gốc I và ảnh đã nhúng thủy vân (có thể đã qua xử lý).
- Tách thủy vân từ các băng LL, HL, LH, HH:
;/)( *
,
*
k
k
ij
k
ijw
k
ij VVW với i, j=1,…,n; k=1, 2, 3, 4
- Nếu 5.0* ijW thì lấy 1* ijW ngƣợc lại lấy *
ijW =0.
3.3.2.3. Kết quả
Với kỹ thuật nhúng thủy vân sử dụng phép biến đổi sóng nhỏ trên đây, thủy
vân sau khi đƣợc nhúng ở băng tần thấp thì bền vững đối với một nhóm các tấn
công, trong khi thủy vân đƣợc nhúng ở băng tần cao lại bền vững trƣớc một nhóm
các tấn công khác, thủy vân nhúng trong những băng tần giữa cũng bền vững với
một số tấn công.
48
VI. Thủy vân miền DFT
26. Mô hình hệ thống thủy vân
Cho s(i), i=1,2,…,N là mẫu của tín hiệu gốc s với độ dài N. Cho S(k),
k=1,2,…,N là hệ số biến đổi DFT của s(i) và M(k), P(k) là độ lớn của biến đổi Fourier
(M(k)= )(kS ) và pha của nó tƣơng ứng là P(k) = arg(S(k)). Giả sử rằng SR(k) và SI(k)
ký hiệu cho phần thực và phần ảo của S(k). Việc nhúng thủy vân sẽ đƣợc thực hiện
trong miền Fourier và cụ thể hơn là độ lớn của nó. Do đó, xuất phát từ độ lớn của biến
đổi Fourier M ta tạo ra độ lớn biến đổi đã đƣợc nhúng thủy vân. Gỉa sử M’ là độ lớn
đã đƣợc nhúng thủy vân đƣợc tạo ra bằng cách nhúng thủy vân vào hàm f:
M’=f(M,W,p) (1)
Trong công thức trên, vecter M chứa mẫu của dãy thuỷ vân. Dãy này do bộ
sinh ngẫu nhiên tạo ra. Gỉa sử W(k), k=1,2,…,N là tín hiệu ngẫu nhiên thuộc miền
{1,-1}. Do đó, trung bình của dãy thủy vân mẫu W(k) tƣơng đƣơng với 0. Trong
trƣờng hợp f là hàm tuyến tính, dễ dàng chứng minh rằng trung bình của độ lớn đã
đƣợc thủy vân vẫn không thay đổi. Tham số p xuất hiện trong công thức (1) là số
thực, số này cho biết độ dài của thủy vân. Khi p tăng lên thì thủy vân càng bền vững.
Nếu hàm nhúng thủy vân là hàm nhân, độ lớn của thủy vân tính theo công thức
sau:
M’=M+MWp=M(1+Wp) (2)
Để xác định tín hiệu đã đƣợc nhúng thủy vân cuối cùng s’ (trong miền không
gian) ta sử dụng công thức biến đổi Fourier rời rạc ngƣợc IDFT áp dụng lên độ lớn
thủy vân M’ và hệ số DFT gốc với pha là P.
s’=IDFT(M’,P) (3)
Cho tín hiệu thủy vân y, bộ phát hiện thủy vân có mục đích quyết định liệu y
có phải là tín hiệu gốc của thủy vân W hay không. Bộ phát hiện thủy vân có thể xem
nhƣ là một bộ kiểm tra giả thiết, trong đó hai giả thiết có thể có là:
H0: tín hiệu y không phải là tín hiệu gốc của thủy vân W
H1: tín hiệu y là tín hiệu gốc của thủy vân W
49
Chú ý rằng giả thiết H0 có thể xuất hiện trong trƣờng hợp tín hiệu y chƣa đƣợc
thủy vân(H0a) hoặc tín hiệu y đã đƣợc thủy vân bởi thủy vân W’ khác(H0b), trong đó
W≠W’. H0a và H0b là loại trừ lẫn nhau và hợp của chúng tạo thành H0.
Hiệu quả của một phƣơng thức thủy vân phụ thuộc phần lớn vào sự lựa chọn
bộ phát hiện thủy vân d. Bộ phát hiện tƣơng quan và bộ phát hiện thủy vân đƣợc dùng
phổ biến. Nó xuất hiện trong một số phƣơng thức thuỷ vân không chỉ trong miền
không gian mà còn trong miền tần số. Việc kiểm tra của bộ phát hiện thủy vân là sự
tƣơng quan giữa thủy vân và tín hiệu thủy vân y của nó.
(4)
Để quết định theo giả thiết hợp lệ, bộ phát hiện thủy vân đƣa đầu ra d để so
sánh với ngƣỡng đã chọn là T. Việc tính toán của phƣơng thức thủy vân có thể đo
bằng cách sử dụng xác suất khai báo Pfs và xác xuất loại bỏ Pfr. Xác xuất khai báo là
kiểu lỗi I, nó là khả năng của giả thiết bác bỏ H0, thậm chí điều đó là đúng. Trong
trƣờng hợp này, nó là khả năng phát hiện ra thủy vân W trong tín hiệu. Với kiểu lỗi II
tƣơng ứng với xác xuất loại bỏ, xác suất này cho biết không phát hiện ra thủy vân W
trong tín hiệu (trừ khi H0 là sai).
Trong hầu hết các phƣơng thức thủy vân, giả thiết H0 đƣợc chấp nhận khi bộ
phát hiện thủy vân lớn hơn ngƣỡng T. Do đó, xác suất khai báo và xác suất loại bỏ có
thể biểu diễn theo công thức sau:
Có thể thực hiện theo công thức xác suất ở trên nếu bộ phát hiện thủy vân phân
bố cho cả hai giả thiết. Do đó, giả sử f0(x),f1(x) là hàm xác suất cho giả thiết H0 và H1
thì xác suất lỗi là:
50
Theo công thức ở trên, Pfa và Pfr phụ thuộc vào ngƣỡng T. Sự thay đổi T sẽ làm
tăng một xác suất và làm giảm xác suất còn lại. Do đó, ngoài bộ phát hiện thủy vân,
việc chọn ngƣỡng thích hợp cũng là một vấn đề quan trọng. Trong một số trƣờng hợp,
bộ phát hiện có ý nghĩa nhƣ là tổng hoặc tích của các giai đoạn độc lập so với các
phân bổ giống nhau. Theo lý thuyết hữu hạn trung tâm, bộ phát hiện tuân theo phân
bổ Gaussian. Do đó trong trƣờng hợp này, có thể tính xác suất lỗi nhƣ sau:
Trong đó 0, 1 là giá trị trung bình và 0,1 là độ lệch chuẩn của phân bố f0, f1
tƣơng ứng.
27. Mô hình và phân bố tín hiệu của hệ số cƣờng độ DFT
Bƣớc cơ sở để xây dựng bộ phát hiện tối ƣu là tính ra hệ số phân bố biến đổi.
Vì thế trong phần này sẽ tính phân bố của hệ số độ lớn DFT của tín hiệu. Mô hình
thống kê tín hiệu nhƣ sau:
Với E(.) là giá trị mong muốn.
Hàm tự động tƣơng quan giả định là:
Với a là hằng giá trị thực. a nhận giá trị trong đoạn [0.9,…,0,99] với một vài
lớp tín hiệu một chiều. Chú ý rằng a có khuynh hƣớng về 0 với cách tiếp cận hệ số
tƣơng quan tự động phân bố Dirac.
51
Từ công thức (5) và (8) ở trên ta thấy hệ số tƣơng quan tín hiệu Fs,s(D) chỉ phụ
thuộc vào sự khác nhau tuyệt đối D của tín hiệu. Biến đổi DFT của tín hiệu s(i),
i=1,…,N cho theo công thức sau:
Giả thiết biến đổi DFT ở trên theo phân bố Gaussian, theo lý thuyết hữu hạn
trung tâm với các biến ngẫu nhiên. Giả thiết này sẽ hợp lệ ít nhất với trƣờng hợp giá
trị của tham số a nhỏ. Nhằm kiểm tra bằng thực nghiệm, ta thực hiện kiểm tra
Kolmogorov-Smirnov với tất cả hệ số. Hình 2 là giá trị của p với mỗi hệ số trong
trƣơng hợp a=0 và a=0.995. Tham số thống kê dùng để kiểm tra Kolmogorov-
Smirnov (giá trị mong muốn và biến) nhận từ công thức 12, 13 và 30. Điều đó chứng
tỏ rằng giá trị p là rất thấp với tất cả các hệ số theo phân bố Gaussian.
Từ đó suy ra công thức tính trung bình của S(k):
Chứng minh công thức này đƣợc trình bầy trong phần tiếp theo. Biến của S(k)
đƣợc tính tách biệt so với phần thực SR(k) và phần ảo SI(k) theo công thức sau:
Thay thế giá trị ở công thức 5 vào công thức 10 ta đƣợc :
Kết quả cuối cùng để tính biến của SR(k) và SI(k) nhƣ sau:
52
Công thức này đƣợc chứng mình trong phần tiếp theo.
Hình 1 thể hiện các biến giả thiết và tiềm năng của phần thực và phần ảo của
các hệ số biến đổi Fourier rời rạc. Trong ví dụ này 100 tín hiệu có độ dài 1000 theo
mô hình (8) đƣợc dùng với a=0,99.
Bƣớc tiếp theo là tính phân bố độ lớn của cƣờng độ Fourier )(kS . Quan sát
công thức (10) ta thấy tất cả các giai đoạn của DC đều có giá trị trung bình bằng 0.
Nếu biến của SR(k) và SI(k) bằng nhau thì cũng có thể kết luận phân bố của )(kS là
một Rayleigh:
Tuy nhiên biến của phần thực và phần ảo của S(k) chỉ bằng nhau khi tất cả các
mẫu tín hiệu có thể đƣợc mô hình nhƣ một biến phân bố hoàn toàn độc lập (a=0). Do
đó, trong các trƣờng hợp khác ta phải sử dụng hàm xác suất của tín hiệu.
Trong đó: và 1≠2. Các biến z cho trong
công thức:
Trongn đó I0 là hàm Bessel và 1, 2 là độ lệch chuẩn của phần thực và phần
ảo của S(k). Do đó phân bố độ lớn DF nhƣ sau:
28. Bộ phát hiện thủy vân tối ƣu
Phần này trình bầy về bộ phát hiện thủy vân tối ƣu cho thủy vân nhân bằng cách sử
dụng bộ kiểm tra tỷ lệ khả năng (Likelihood Ratio Test- LRT). Theo lý thuyết
53
Neyman-Pearson, để tối ƣu hóa khả năng của bộ phát hiện PD với Pfa=e, ta quyết định
là H1 nếu:
Với ngƣỡng T xác định từ công thức:
Công thức (16) gọi là bộ kiểm tra LRT. Hàm mật độ xác suất của tín hiệu đã đƣợc
nhúng thủy vân P(M’, H0), P(M’,H1) đƣợc tính toán cho mỗi tín hiệu đã đƣợc thủy
vân với thủy vân đã biết và chƣa biết. Với P(M’;H0) ta giả thiết rằng thủy vân là ngẫu
nhiên và đƣợc mô hình bởi:
Theo công thức nhúng (2), dễ dàng chứng minh rằng PDF của tín hiệu đã đƣợc thuỷ
vân bằng:
Xây dựng f’M với hàm mật độ xác suất của phân bố trong công thức (14) ta thấy:
Trong trƣờng hợp giả thiết H1, tín hiệu đƣợc thủy vân bởi thủy vân đã biết W. Do đó,
xác suất sẽ là:
54
Nếu giữa các hệ số của S là độc lập, ta kết luận rằng:
Kết hợp với công thức (14), (21), (16) ta nhận đƣợc lƣợc đồ phát hiện tối ƣu:
Ngƣỡng đƣợc lựa chọn sao cho có thể xác định đƣợc xác suất lỗi khai báo thất bại đã
đƣợc định nghĩa trƣớc. Để tính xác suất lỗi khai báo thất bại, trƣớc hết phải biết phân
bố bộ phát hiện trong trƣờng hợp phát hiện thủy vân sai. Giả thiết phân bố là
Gaussian. Sau đó tính tham số phân bố từ thống kê phân bố qua thực nghiệm. Cuối
cùng xác định lỗi thủy vân từ tín hiệu đã đƣợc nhúng thủy vân.
Từ thống kê phân bố qua thực nghiệm và xác suất lỗi khai báo thất bại mong muốn, ta
tính ngƣỡng theo công thức sau:
Trong đó mũ và mũ là giá trị mong đợi và độ lệch chuẩn của tập đầu ra của bộ
phát hiện. Do đó theo công thức trên ta có ngƣỡng T sau:
Nhu cầu về số lƣợng của bộ phát hiện là không biết trƣớc, tuy nhiên số lƣợng phải đủ
lớn nếu muốn xấp xỉ chính xác phân bố. Bằng thực nghiệm, số lƣợng ít nhất đủ để xấp
xỉ phân bố đƣợc xác định thông qua thủ tục sau đây. Trƣớc hết ƣớc lƣợng tham số
phân bố mũ và mũ sử dụng phân bố thực nghiệm đƣợc tạo ra từ đầu ra của bộ
phát hiện L. Cho L tăng trong khoảng từ Lmin đến Lmax. Sau đó theo thống kê này để
tính ngƣỡng nhằm thu đƣợc xác suất khai báo thất bại tƣơng đƣơng với 10-10
. Ta dừng
tại L* mà tại đó dẫn tới một ƣớc lƣợng ổn định của T.
55
Thủ tục này đƣợc minh họa trong hình 4 với Lmin=5, Lmax=1000. Theo hình này, giá trị
ngƣỡng ổn định khi số lần thực nghiệm lớn hơn L*=100. Tất nhiên L* phụ thuộc vào
sức mạnh của bộ nhúng thuỷ vân, độ dài của tín hiệu và đặc trƣng của tín hiệu. Vì thế
ta đề xuất thực hiện thủ tục trên với tập tín hiệu đại diện và với các bộ nhúng trong
các ứng dụng cụ thể.
1. Chứng minh các công thức
* Tính trung bình hệ số fourier rời rạc
Trung bình của S(k) là:
Thay na bằng N
kj2 theo công thức (30):
Thì thu đƣợc:
Thay vào tổng với điều kiện ràng buộc: 0<=k<N, a≠2lπ => N
k2≠2lπ=>k≠0.
Cuối cùng ta thu đƣợc:
Sử dụng công thức:
56
Ta thu đƣợc:
Do đó, giá trị trung bình bằng:
* Tính biến của hệ số Fourier rời rạc
S(k) là một tín hiệu phức tạp, do đó biến của phần thực và phần ảo sẽ đƣợc tính riêng
biệt với nhau.
- Biến của phần thực:
Tính theo công thức:
Tổng thứ 2 tính trong công thức (30). Tổng thứ nhất tƣơng đƣơng với:
Áp dụng công thức (31):
Sau đó chia tổng thành 2 phần:
57
Từ đó nhận đƣợc công thức 12.
- Biến của phần ảo:
Tính theo công thức:
Chia công thức trên giống nhƣ công thức 34 và sử dụng công thức 31 ta có:
Từ đó thu đƣợc công thức 13
* Tính phân bố của fz(z):
Phần này ta tính 22)( yxzf z , trong đó x N(0,12),y N(0,2
2) và 1≠2. Thay x
bằng zcos(t), y bằng z sin(t), phân bố ở trên trên bằng:
Thay vào công thức 37:
58
Sau khi đƣa vào tổng chu kỳ của hàm sin và tính đối xứng:
Có thể viết công thức 38 nhƣ sau:
Sử dụng công thức 31:
Với I0(z) là hàm Bessel của z, áp dụng công thức 39:
Cuối cùng thay thế q và dùng công thức 41, công thức 38 trở thành:
Trƣờng hợp đặc biệt 1=2, hàm phân bố xác xuất f(z) là hàm Rayleigh.
29. Kết quả thực nghiệm
Qua thực nghiệm, ngƣời ta xác định mức độ ƣu tiên của các bộ phát hiện đã đề xuất
so với các bộ phát hiện tƣơng quan cổ điển. Thực nghiệm thực hiện trên tín hiệu số
một chiều.
Để xây dựng các tín hiệu với đặc trƣng tƣơng quan tự động mong muốn, ta lọc một tín
hiệu phân bố thông thƣờng S có giá trị trung bình bằng 0 với bộ lọc IIR:
Bộ lọc này tạo ra tín hiệu có hàm tƣơng quan tự động có dạng sau:
59
Công thức này giống với công thức 8 khi s2=0. Biến của tín hiệu đã lọc bằng (1-
a)/(1+a) s2. Nhúng thủy vân theo công thức 2. Sau đó tín hiệu đã đƣợc thủy vân sẽ
đƣợc đƣa vào công thức tƣơng quan (4) và bộ phát hiện đề xuất (23). Để ƣớc lƣợng
xác suất loại bỏ thất bại và xác suất khai báo thất bại, cả khóa đúng và khóa lỗi đều
phải đƣợc dùng trong suốt phiên phát hiện.
Thủ tục trên đƣợc thực hiện với một số lƣợng lớn các khóa khác nhau. Nhờ lý thuyết
hữu hạn trung tâm nên phân bố của L(x) là thông thƣờng. Kết quả là phân bố của
ln(L(x)) cũng là thông thƣờng, với ln(x) là logarit tự nhiên của x. Để thể hiện khả
năng xấp xỉ rất tốt của đầu ra của bộ phát hiện bởi phân bố Gaussian, ta đƣa ra kết quả
thực nghiệm của nó trong hình 3. Hình 3a và 3b là kết quả phân bố sử dụng khóa lỗi
và khóa đúng tƣơng ứng. Kết quả này khá tốt vì theo lý thuyết null của Kolmogorov-
Smirnov mức độ quan trọng bằng 0.01 đã bị loại bỏ. Sau đây ta sẽ sử dụng bộ phát
hiện L(x) thay cho ln(L(x)). Cho dr(x) và de(x) là phân bố của đầu ra của bộ phát hiện
cho thủy vân lỗi và thủy vân đúng tƣơng ứng.
Tính giá trị trung bình thực nghiệm và độ lệch chuẩn bằng cách xấp xỉ pdf thực
nghiệm với pdf thông thƣờng, có thể dùng đặc trƣng toán tử nhận đƣợc (Receiver
Operator Characteristic – ROC) cho cả hai đầu ra của bộ phát hiện. Đƣờng cong ROC
dùng để so sánh hiệu quả của bộ phát hiện.
Thủ tục trên đƣợc dùng với các giá trị khác nhau của tham số a. Quá trình phát hiện
thực hiện nhƣ sau:
- Bộ phát hiện tƣơng quan
- Bộ phát hiện đề xuất xem xét tham số a đã biết.
- Bộ phát hiện đề xuất ƣớc lƣợng tham số a chƣa biết từ dãy thủy vân
- Hệ số tƣơng quan đã đƣợc chuẩn hóa
Hình 5-8 là kết thực nghiệm của bộ phát hiện đề xuất so với bộ phát hiện tƣơng quan,
tham số a đƣợc thay đổi trong phạm vi từ [0,1].
Hình 5, giá trị của tham số a bằng 0. Đây là trƣờng hợp đặc biệt với tín hiệu trắng,
không sử dung công thức lọc 26. Hệ quả là tham số a tăng lên đạt tới giá trị 0.995
trong hình 8. Quan sát hình 5-8 có thể kết luận:
60
- Bộ phát hiện đề xuất tốt hơn nhiều so với bộ phát hiện tƣơng quan
- Hiệu năng của bộ phát hiện đề xuất dùng để ƣớc lƣợng tham số a cũng
giống nhƣ sử dụng tham số a đã biết vì đƣờng cong ROC đều gần với cả hai
bộ phát hiện này.
- Đƣờng cong ROC tƣơng ứng với bộ phát hiện đề xuất không ảnh hƣởng
nhiều đến giá trị tham số a so với bộ phát hiện tƣơng quan.
Figure 1: Biến thực nghiệm và biến lý thuyết của phần thực và phần ảo của mỗi hệ số Fourier rời rạc cho
100 tín hiệu với độ dài 1000 và hệ số a=0.99
Figure 2: Giá trị P (đầu ra của bộ kiểm tra Kolmogorov-Smirnov) với mỗi hệ số của phần thực sau khi
biến đổi Fourier của tín hiệu. Hình a:a=0, hình b:a=0.995
61
Figure 3: Phân bố đầu ra của bộ phát hiện thực nghiệm. Hình a: khóa lỗi, hình b: khóa đúng.
Figure 4: ƣớc lƣợng ngƣỡng và số lần thực nghiệm
62
Figure 5: Đƣờng cong ROC bộ phát hiện tƣơng quan, bộ phát hiện tƣơng quan chuẩn, bộ phát hiện
tƣơng quan đề xuất sử dụng tham số đã biết a=0.
Figure 6: Đƣờng cong ROC bộ phát hiện tƣơng quan, bộ phát hiện tƣơng quan chuẩn, bộ phát hiện
tƣơng quan đề xuất sử dụng tham số đã biết a=0.9.
63
Figure 7: Đƣờng cong ROC bộ phát hiện tƣơng quan, bộ phát hiện tƣơng quan chuẩn, bộ phát hiện
tƣơng quan đề xuất sử dụng tham số đã biết a=0.97.
Figure 8: Đƣờng cong ROC bộ phát hiện tƣơng quan, bộ phát hiện tƣơng quan chuẩn, bộ phát hiện
tƣơng quan đề xuất sử dụng tham số đã biết a=0.995.
64
CHƢƠNG 3. XÂY DỰNG ỨNG DỤNG
I. Xây dựng các modul cho các thuật toán sử dụng để xác thực nội dung
1. Xử lý chuỗi thành dãy nhị phân
Nội dung thủy vân cần nhúng vào ảnh có thể là một chuỗi.
Ví dụ: “Phùng Thị Lan”. Nhƣng thông tin nhúng đƣợc vào ảnh là các bit và
đoạn bit. Vì thế phải chuyển chuỗi thành xâu nhị phân tƣơng ứng bằng cách lấy
ra từng ký tự của chuỗi, sử dụng bảng mã ASCII để lấy ra mã của ký tự. Tiếp
theo sử dụng thuật toán chia liên tiếp cho 2 để lấy ra từng bit của mã ASCII
tƣơng ứng và lƣu các bit này vào một mảng kiểu nguyên. Đây là mảng dãy nhị
phân cần nhúng vào ảnh.
2. Tạo khóa cho thuật toán thủy vân
Ma trận khóa là một ma trận nhị phân. Chƣơng trình cho phép chọn kích thƣớc
của ma trận khóa gồm số dòng và số cột. Và đó cũng là kích thƣớc của khối ảnh
và kích thƣớc của ma trận trọng số. Sau khi chọn kích thƣớc sẽ có một hộp
thoại hiện ra để chọn giá trị của ma trận. Mỗi phần tử của ma trận ứng với một
nút CheckBox, nếu nút này đƣợc tích thì có nghĩa là phần tử tƣơng ứng của ma
trận khóa sẽ nhận giá trị 1, ngƣợc lại nhận giá trị 0.
Mặc định, ma trận này có kích thƣớc là 3x3 và giá trị của các phần tử có dạng
hình chữ thập nhƣ minh họa ở hình dƣới.
Với ma trận trọng số, sau khi ngƣời dùng đƣa vào số bit có thể giấu trong một khối là
r (số bít này phải đảm bảo 2r<mxn), dựa vào giá trị này trong chƣơng trình sử dụng
65
hàm chọn ngẫu nhiên các giá trị trong khoảng từ 0 đến 2r-1 để tạo giá trị cho ma trận
trọng số. Tất nhiên phải đảm bảo mỗi giá trị trên xuất hiện ít nhất một lần trong ma
trận.
2. Kết quả demo chƣơng trình
- Giao diện chính của chƣơng trình:
- Để nhúng thủy vân: gõ thông tin nội dung thủy vân cần nhúng vào mục “nội dung
thủy vân cần nhúng”, tiếp theo mở một file ảnh và chọn một trong 3 thuật toán: 1,
2, 3 sẽ thu đƣợc ảnh chứa thủy vân.
- Để lấy thủy vân chứa trong ảnh đã nhúng thủy vân, chọn mục tách thủy vân. Nếu
khối lƣợng thủy vân cần nhúng quá lớn so với kích thƣớc của ảnh, chƣơng trình sẽ
cảnh báo để ngƣời dùng nhập lại nội dung thủy vân. Sau đây là các kết quả thu đƣợc từ 3 thuật toán thủy vân dùng để xác thực nội dung ảnh số:
Thuật toán 1:
66
Thuật toán 2:
Thuật toán 3:
67
Đánh giá:
- Vì chƣơng trình xử lý với ảnh 24 bit mầu, nghĩa là chỉ có một thành phần R hoặc G hoặc
B tham gia nhúng thủy vân nên khả năng “lộ” của ảnh rất thấp. Nếu quan sát kỹ trên các
kết quả tại các vùng sáng của ảnh thì có khả năng nhận ra đƣợc một vài điểm ảnh có sự
thay đổi trên gam màu tƣơng ứng.
- Để giảm khả năng bị lộ, có thể tăng kích thƣớc khối.
- Sẽ có sự đánh đổi giữa dung lƣợng thủy vân cần nhúng và khả năng bị lộ của ảnh. Khi tỷ
lệ nhúng lớn thì khả năng bị lộ càng tăng và ngƣợc lại.
3. Kiểm tra khả năng xác thực nội dung của chƣơng trình
Để xác thực nội dung ảnh:
- Lấy ảnh đã giấu thủy vân bằng các thuật toán trong miền không gian, sau đó lƣu ảnh kết
quả.
- Lấy ảnh kết quả chứa thủy vân ở bƣớc trên để thực hiện một số kỹ thuật tấn công: tạo
nhiễu, phóng to, thu nhỏ, cắt ảnh, xoay ảnh, bóp méo, tăng giảm độ sáng…
- Xác thực nội dung ảnh bằng cách lấy lại thủy vân từ các ảnh đã bị tấn công và thấy thủy
vân này không phải là thủy vân mà tác giả đã nhúng. Điều đó chứng tỏ nội dung ảnh đã
bị chỉnh sửa. Hay nói cách khác nội dung của ảnh không còn nhƣ nguyên bản của nó.
68
Figure 9: ảnh gốc
Dƣới đây là ảnh chứa thủy vân bị chỉnh sửa theo các tác động: tạo nhiễu, phóng to, thu
nhỏ, cắt ảnh, xoay ảnh, bóp méo, tăng giảm độ sáng…
Ảnh nhúng thủy vân: Phung Thị Lan
69
70
Kết quả tách thủy vân sử dụng chức năng tách thủy vân của chƣơng trình cài đặt cho thấy tất
cả các ảnh đã bị tác động của các thao tác trên đều không thu đƣợc thủy vân “Phung Thị
Lan” đã giấu. Vậy các ảnh không phải là ảnh nguyên bản của tác giả. Hay nội dung ảnh đã
đƣợc xác thực.
4. Đánh giá tính bền vững của thủy vân với thuật toán DCT
Dƣới đây là một số kết quả thực nghiệm trên một số bài viết của tạp chí IEEE thực hiện
nhúng thủy vân bằng thuật toán DCT với ảnh xám.
71