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

Các thuật toán giấu tin trong ảnh

66 366 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 66
Dung lượng 1,92 MB

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

Nội dung

Có nhiều phương pháp mã hóa thường được dùng nhưng nhìn chung có thể chia ra thành hai kiểu chính dựa vào việc sử dụng khóa mã hóa và giải mã, đó là:  Mã hóa cổ điển: cả hai quá trình m

Trang 1

MỤC LỤC

LỜI CẢM ƠN Error! Bookmark not defined

LỜI MỞ ĐẦU 2

CHƯƠNG I 4

GIỚI THIỆU CHUNG VỀ KĨ THUẬT GIẤU TIN 4

1.1 Giới thiệu về giấu tin 4

1.2 Khái niệm về giấu tin 5

1.2.1 Quá trình giấu thông tin 10

1.2.2 Quá trình giải mã 11

1.2.3 Các thuật ngữ hay dùng trong giấu tin 12

1.3 Phân loại các kĩ thuật giấu thông tin 12

1.4 Các yêu cầu trong bài toán giấu tin 13

1.4.1 Khả năng không bị phát hiện (tính ẩn/ vô hình của tin giấu) 14

1.4.2 Khả năng lưu trữ (Về dung lượng tin giấu) 14

1.4.3 Tính bền vững 14

1.5 Giấu thông tin trong các sản phẩm Multimedia 15

1.5.1 Giấu thông tin trong ảnh 15

1.5.2 Giấu tin trong sản phẩm Audio 16

1.5.3 Giấu tin trong Video 17

1.6 Kết luận 18

CHƯƠNG II 18

MỘT SỐ THUẬT TOÁN GIẤU TIN TRONG ẢNH TĨNH 18

2.1 Cấu trúc file ảnh Bitmap 18

2.2 Các đặc điểm của kĩ thuật giấu tin trong ảnh tĩnh 22

2.3 Sự khác biệt giữa giấu tin trong các loại ảnh 23

2.4 Một số thuật toán giấu tin trong ảnh tĩnh 24

2.4.1 Nghiên cứu một kỹ thuật giấu tin đơn giản 25

2.4.2 Kỹ thuật giấu Wu _ Lee 29

2.4.3 Một vài cải tiến kỹ thuật giấu tin Yuan_Pan_Tseng 37

2.5 Kết luận 48

CHƯƠNG III 48

THIẾT KẾ THUẬT TOÁN VÀ CHƯƠNG TRÌNH 48

GIẤU TIN TRONG ỨNG DỤNG TRAO ĐỔI TIN MẬT 48

3.1 Giới thiệu chương trình 48

3.2 Tóm tắt cách cài đặt 49

3.3 Giao diện thực hiện 58

3.4 Kết quả thử nghiệm và nhận xét 60

KẾT LUẬN 64

TÀI LIỆU THAM KHẢO 66

Trang 2

LỜI MỞ ĐẦU

Công nghệ thông tin đang phát triển cao trong giai đoạn hiện nay, đã và ngày càng khẳng định vai trò không thể thiếu được trong cuộc sống, cũng như trong nhiều lĩnh vực khoa học kĩ thuật Công nghệ thông tin được ứng dụng trong nhiều lĩnh vực khác nhau như: quản lý, thương mại điện tử, nghiên cứu khoa học…Từ đó yêu cầu đặt ra việc trao đổi thông tin là vô cùng quan trọng, nó có vai trò quyết định chính trong công việc hiện nay

Ở nước ta công nghệ thông tin đang phát triển vào đời sống con người một cách nhanh chóng và mạnh mẽ Nhu cầu trao đổi lớn về thông tin do Internet mang lại đã giúp con người trao đổi thông tin thuận tiện và nhanh chóng Nhưng cũng gây

ra không ít những vấn đề nảy sinh đó là làm thế nào thông tin có thể đảm bảo an toàn bí mật trong quá trình hòa nhập vào nguồn thông tin khổng lồ trên thế giới Việc bảo vệ thông tin đang trở thành nhu cầu quan trọng và cấp thiết Vấn đề này đã

và đang được nghiên cứu khá nhiều nhằm tìm ra phương pháp hữu hiệu để bảo vệ thông tin

An toàn thông tin và bảo mật dữ liệu thông thường được sử dụng bằng các phương pháp mã hóa, đây là phương pháp được sử dụng trong nhiều năm qua như các hệ mã có khóa công khai với độ an toàn cao Tuy nhiên trong giai đoạn hiện nay, sự phát triển của đa phương tiện như ảnh số, audio, video…với các định dạng khác nhau và vô cùng phong phú, dữ liệu đa phương tiện rất gần gũi với con người, tại sao không dùng chính nó để làm vật mang tin? Ngoài ra nếu kết hợp với mã hóa thì thông tin sẽ có thêm một lớp vỏ bọc an toàn Đây là giải pháp mới đang được nghiên cứu ở giai đoạn hiện nay và coi là giải pháp bảo mật trong tương lai

Trong đợt làm đồ án tốt nghiệp này với sự hướng dẫn của thầy giáo Th.S Nguyễn Văn Tảo em đã đi tìm hiểu về các thuật toán giấu tin trong ảnh và áp dụng vào cài đặt thuật toán CPT (Yu-Yuan Chen, Hsiang- Kuang Pan, Yu_Chee Tseng)

Đồ án được chia làm 3 chương:

Chương 1: Giới thiệu chung về kĩ thuật giấu tin

Chương 2: Một số kĩ thuật giấu tin trong ảnh tĩnh

Chương 3: Thiết kế thuật toán và chương trình xây dựng ứng dụng trong trao đổi tin mật

Trang 3

Mặc dù đã cố gắng song đồ án không tránh khỏi những thiếu sót Em rất mong nhận được những ý kiến đóng góp của các Thầy Cô giáo cũng như của các bạn sinh viên để đề tài này được hoàn thiện hơn

Trang 4

CHƯƠNG I GIỚI THIỆU CHUNG VỀ KĨ THUẬT GIẤU TIN

1.1 Giới thiệu về giấu tin

Ngày nay cùng với sự phát triển của công nghệ kĩ thuật số, các thiết bị xử lý số như máy ảnh, máy scan, máy in, máy ghi âm kĩ thuật số… cùng các phần mềm chuyên dụng ra đời đã đem lại cho con người rất nhiều thuận lợi trong các lĩnh vực học tập, nghiên cứu cũng như vui chơi giải trí

Bên cạnh công nghệ kĩ thuật số, sự phát triển không ngừng của mạng Internet toàn cầu và gần đây nhất là sự ra đời của công nghệ mạng không dây (Wireless Technology) đã và đang giúp cho sự hiểu biết của con người về nhiều lĩnh vực trong cuộc sống, đồng thời đó còn là cầu nối giữa mọi người trên thế giới lại với nhau Chúng ta có thể tìm kiếm thông tin phục vụ cho quá trình học tập nghiên cứu trong kho tàng tri thức khổng lồ, đó chính là mạng Internet, chỉ cần ngồi ở nhà với chiếc máy tính nối mạng ta có thể biết được tin tức ở khắp nơi trên thế giới mà không cần phải mất nhiều thời gian đến tận nơi đó, tầm quan trọng của mạng Internet quả là to lớn

Với tầm quan trọng và có nhiều ứng dụng nên ngày nay công nghệ thông tin đang trở thành một trong những ngành mũi nhọn trong quá trình phát triển kinh tế

xã hội, bên cạnh đó sự hòa nhập và ứng dụng của công nghệ thông tin trong các lĩnh vực khác cũng đang thu hút được nhiều sự quan tâm như: chính trị, quân sự, quốc phòng, giáo dục…một số loại hình mới xuất hiện như: chính phủ điện tử, thư viện điện tử, giáo dục điện tử sách điện tử, thương mại điện tử và y tế điện tử… tất cả đều cho thấy vai trò ngày càng to lớn của công nghệ thông tin trong sự phát triển của nền kinh tế

Tuy nhiên, nhìn vào những mặt có lợi của công nghệ thông tin nói chung, cũng như của công nghệ kĩ thuật số và mạng Internet nói riêng, chúng ta không thể không nói đến những vấn đề đã và đang tồn tại trong nó, đó chính là đảm bảo sự an toàn và

bí mật của những thông tin quan trọng hay những thông tin cá nhân khỏi những kẻ

tò mò Phương pháp đầu tiên được áp dụng để đảm bảo tính mật của thông tin đó là mật mã học, với cách này thì thông tin được mã hóa thành những kí hiệu vô nghĩa, sau đó được gửi tới người nhận và họ sẽ phải giải mã chúng để lấy lại nội dung của

Trang 5

thông tin ban đầu, cái mà họ cần sử dụng để khôi phục nội dung gọi là khóa của hệ

mã Có nhiều phương pháp mã hóa thường được dùng nhưng nhìn chung có thể chia

ra thành hai kiểu chính dựa vào việc sử dụng khóa mã hóa và giải mã, đó là:

 Mã hóa cổ điển: cả hai quá trình mã hóa và giải mã đều sử dụng chung cùng một khóa, vì vậy khóa này cần phải được giữ hết sức cẩn thận và bí mật, nếu mất thì ngay cả người mã hóa cũng không thể giải mã nội dung thông tin của chính mình Một số hệ mật của kiểu này : Hệ mật Hill, hệ mật Virgine, hệ mã hoán vị…

 Mã hóa công khai: với phương pháp này thì quá trình mã hóa và giải mã sẽ

sử dụng hai khóa khác nhau, người thứ nhất sẽ tạo ra một cặp khóa, khóa bí mật sẽ được họ giữ lại, còn gửi cho người thứ hai khóa công khai, người đó sẽ sử dụng khóa công khai để mã hóa nội dung của thông tin, sau đó gửi lại cho người thứ nhất, người thứ nhất sẽ dùng khóa bí mật của mình để giải mã nội dung của thông tin, một số hệ mật của kiểu này như: Hệ mã RSA, hệ mã DES, hệ mã Elgamal…

Nếu so sánh độ an toàn của hai phương pháp này thì mã hóa công khai có độ

an toàn cao hơn hẳn, do trường khóa rất lớn vì vậy khả năng thám mã thành công là rất khó và thời gian thực hiện cũng rất lớn, trong khi đó phương pháp mã hóa cổ điển thực hiện khá đơn giản, thời gian mã hóa cũng như giải mã nhanh, và đa số các

hệ mật này đều đã bị phá, nên độ an toàn không cao

Bên cạnh phương pháp mã hóa, còn có cách khác để bảo vệ độ an toàn của thông tin trên đường vận chuyển, đó là phương pháp giấu tin, tức là thông tin được giấu vào nguồn chứa mà người khác không phát hiện được Giấu tin khác mã hóa

trong khi mã hóa không ẩn tin đi và nhìn qua có thể biết ngay được rằng thông tin

tin tặc sẽ tìm mọi cách để triệt phá Và cuộc chạy đua giữa những người bảo vệ thông tin và bọn tin tặc vẫn chưa kết thúc tuyệt đối về bên nào Trong hoàn cảnh đó thì giấu thông tin trở thành một phương pháp hữu hiệu

1.2 Khái niệm về giấu tin

Ngày nay do trình độ khoa học kĩ thuật ngày càng phát triển, nền kinh tế không ngừng được mở rộng, vì vậy nhiều vấn đề nảy sinh trong thế giới công nghệ

Trang 6

thông tin như: vấn đề bản quyền tác giả trên các sản phẩm Audio,Video sẽ được xác định như thế nào? Nạn xuyên tạc thông tin ngày một nhiều và không thể kiểm soát nổi do sự tinh vi và công nghệ cao Nghiên cứu các vấn đề liên quan đến việc đặt các dấu hiệu để chống sự làm giả, chống nhái nhãn mác và để bảo vệ quyền tác giả của những tác phẩm tranh ảnh, điện tử…là đối tượng nghiên cứu của lĩnh vực khoa học giấu tin

Các dạng thức che giấu thông tin đầu tiên có thể thật sự chỉ là các dạng thức rất thô sơ sử dụng mã hóa dùng private-key; key trong trường hợp này được hiểu là phương thức được sử dụng Các sách Steganography với rất nhiều các ví dụ minh họa về các phương thức được sử dụng trước đây Những người đưa tin Hy Lạp đã viết các thông điệp bằng hình săm trên chiếc đầu cạo trọc của mình Khi tóc mọc lên chúng sẽ che hết các thông điệp này Các bàn sáp được khắc đến lớp gỗ trần là một thông điệp được giấu Khi các bàn sáp này được phủ lại sáp như ban đầu các thông điệp này đã được dấu kín Qua thời gian những kĩ thuật mật mã sơ khai này được cải tiến, cả về tốc độ, dung lượng, lẫn độ an toàn Ngày nay, các kĩ thuật mã hóa hình ảnh đã vươn tới cấp độ tinh vi, việc mã hóa chính xác các giao tiếp có thể coi như rất an toàn trong nhu cầu truyền thông tin Trên thực tế, dự kiến rằng thuật toán tốt nhất sử dụng khóa (key) với dung lượng nhiều kilobit là không thể giải mã cho dù tất cả máy tính trên thế giới hoạt động trong 20 năm tập trung giải mã Tất nhiên khả này xảy ra điều này là có thể xảy ra, hoặc khả năng tính toán của máy tính có bước đột phá, nhưng với hầu hết người dùng sử dụng các ứng dụng hiện nay các kĩ thuật mã hóa là đủ an toàn

Tại sao chúng ta lại theo đuổi ý tưởng che giấu thông tin? Có nhiều lý do, điều đầu tiên là giấu thông tin trong các vật dụng không hẳn là một ý tưởng tồi, giả sử rằng đó không hẳn là phương pháp an toàn nhất được sử dụng Steganography là một ví dụ cho phép chúng ta giấu những thông điệp được mã hóa trong những vật dụng không thu hút sự chú ý Một đoạn các kí tự ngẫu nhiên được gửi đi giữa 2 người dùng có thể là cảnh báo cho bên thứ ba những thông điệp nhạy cảm đang được gửi đi, trong khi những bức tranh trẻ em với vài vệt nhiễu thì không có vẻ gì là như thế cả Những thông tin đính kèm những bức tranh thật ra đã được mã hóa nhưng lại không hề thu hút sự chú ý một chút nào Điều này trở nên đặc biệt quan

Trang 7

trọng khi các kĩ thuật không tương xứng với sự tăng trưởng người dùng và tổ chức Các chính phủ và các nhà kinh doanh thường truy cập vào các hệ thống mạnh với các thuật toán mã hóa tốt hơn là các người dùng đơn lẻ Vì thế, khả năng những thông điệp của người dùng đơn lẻ có thể bị bẻ khóa ngày càng cao theo thời gian Việc giảm những thông điệp bị chặn bởi các tổ chức được coi như là cách giúp tăng cường tính riêng tư và bảo mật Một lợi ích khác đã được đưa ra bởi A Tewfik

là các thông tin ẩn có về cơ bản có thể thay đổi cách chúng ta nghĩ về việc bảo mật thông tin Các phương pháp mã hóa thông thường phụ thuộc vào cách ẩn một thành phần thông tin được đặt trong cái gọi là hộp an toàn và được khóa bằng cái gọi là

“key” Bản thân thông tin là không quá phức tạp và tất cả ai với một khóa (key) chính xác có thể truy cập Khi chiếc hộp được mở tất cả thông tin bảo mật sẽ mất

So sánh điều này với các phương pháp che giấu thông tin dùng khóa “”key” nhúng ngay trong thông tin được gửi Điều khác biệt này có thể được hiểu dễ hơn bởi công nghệ mã hóa DVD Thuật toán CSS lấy những thông tin video số và gói nó trong một dạng thức mã hóa Khi đầu đọc DVD cung cấp khóa (key) chính xác, video sẽ được giải mã và đọc DVD ra màn hình Khi video đã được giải mã dù chỉ một lần nó trở nên vô dụng với nội dung mà không hề có dấu vết của tác giả So sánh phương pháp này với ý tưởng sử dụng watermark, mặc dù sự mã hóa watermark vẫn hiện hữu bất chấp video đã bị thay đổi theo các cách khác nhau và việc giải mã đã được thử Với điều này, sự cần thiết có một sự kết hợp giữa cả hai phương pháp trở nên rất rõ ràng

Do vai trò và tầm quan trọng của mình nên kĩ thuật giấu tin phải được nghiên cứu trên tất cả các dạng dữ liệu Các kĩ thuật giấu tin phổ biến nhất trong môi trường điện tử như:

 Kĩ thuật giấu tin mật (Steganography)

 Kĩ thuật thủy vân số (Digital Watermarking)

Định nghĩa về Steganography

Giấu thông tin là kĩ thuật nhúng thông tin vào trong một nguồn đa phương tiện, gọi là các nguồn chứa, mà không gây ra nhận biết về sự tồn tại của thông tin được giấu trong đó Trước đây kĩ thuật này đã từng được sử dụng rất thành công

Trang 8

trong đại chiến Thế giới lần II, rất nhiều thông tin mật được chuyển đi mà không hề gây ra sự nghi ngờ cho đối phương, đó là trong quân đội và phục vụ cho công tác tình báo Tuy nhiên ngày nay, kĩ thuật giấu thông tin mật đã thu hút được nhiều sự quan tâm nghiên cứu của các nhà khoa học và các viện công nghệ thông tin để ứng dụng trong việc bảo vệ bản quyền tác giả, chống phân phối bất hợp pháp, cũng như xuyên tạc trái phép các nội dung thông tin quan trọng Các sản phẩm cần giữ bản quyền ngày nay rất đa dạng ở nhiều thể loại như dữ liệu Multimedia, âm thanh, hình ảnh…Như vậy kĩ thuật giấu tin không chỉ dừng lại ở mức chỉ đơn giản để xác định quyền sở hữu nguồn tin, mà còn ở khía cạnh cao hơn đó là để bảo mật các thông tin quan trọng

Kĩ thuật giấu tin cũng có những yêu cầu rất khắt khe như:

 Không được làm biến dạng bản tin gốc

 Phải vô hiệu hóa được mọi thao tác như cắt tin, nén tin hay chắt lọc…

Một số ví dụ có liên quan đến kĩ thuật giấu tin như: với một bức tranh khi để bình thường thì sẽ chẳng có ý nghĩa gì trong đó, nhưng nếu xoay ngược nó lại ta sẽ thấy nội dung ẩn chứa bên trong, hay một chiếc cốc đựng nước sẽ chẳng có ý nghĩa

gì khi dùng, nhưng nếu nhiệt độ của nó tăng lên đến một mức nào đó thì các hoa văn bên trong thành cốc sẽ hiện lên rõ rệt…đó tất cả đều là các ứng dụng của kĩ thuật giấu tin mật Tuy nhiên trong lĩnh vực tin học sẽ ứng dụng kĩ thuật này như thế nào, những sản phẩm trong môi trường điện tử ta có thể thấy như: nội dung thông tin mật sẽ được giấu bên trong một bức ảnh bình thường, chỉ khi sử dụng một phần mềm đặc biệt thì khi đó ta mới có thể thu lại thông tin được giấu trong nó; với một tập tin Video hay Audio vẫn nghe hàng ngày sẽ chẳng có gì đáng chú ý cả, nhưng bên trong nó có thể chứa đựng nội dung quan trọng nào đó, hay đơn giản chỉ

là lời của bài hát đó…

Qua những ví dụ trên, ta có thể thấy vai trò và tầm quan trọng của kĩ thuật giấu tin mật trong nhiều lĩnh vực, bởi vì mục đích chính của kĩ thuật đó là:

 Bảo mật cho dữ liệu được đem đi giấu

 Bảo mật cho chính đối tượng được dùng để giấu tin

Định nghĩa về Watermarking

Trang 9

Watermarking hay còn được gọi là thủy vân số, khuynh hướng này có rất nhiều ứng dụng trong thực tế Kĩ thuật này không cần đến tính vô hình của thông tin, thường nhằm vào các úng dụng nghệ thuật trên giấy để chỉ nguồn gốc, tính sở hữu hay các liên kết giữa các tài liệu được in trên nhiều tờ giấy khác nhau, trong các trang trí nghệ thuật Thủy vân số được sử dụng với nhiều mục đích như :

 Bảo vệ bản quyền tác giả (copyright protection):

Đây là ứng dụng cơ bản nhất của thủy vân số - một dạng của phương pháp giấu tin 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, thủy vân đó chỉ một mình 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 thành phẩm dữ liệu dạng đa phương tiện như ảnh, âm thanh, video và cần được lưu thông trên mạng.Để bảo vệ các sản phẩm chống lại các 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 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ó cách phải phá hủy sản phẩm đó

 Xác thực thông tin hoặc phát hiện xuyên tạc thông tin (authentication and tamper detection) :

Một tập các thông tin sẽ được giấu trong phương tiện chứa sau đó được sử dụng để nhận biết xem dữ liệu trên phương tiện gốc đó có bị thay đổi hay không Các thủy vân được để ẩn để tránh sự tò mò, 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 được xem xét 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ư xem 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 là 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 cần bền vững

 Giấu vân tay hay dán nhãn (fingerprinting or labeling) :

Thủy vân trong ứng dụng này được sử dụng để nhận diện người gửi hay người nhận của một thông tin nào đó Ví dụ như 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

Trang 10

ứng dụng này thì yêu cầu là đảm bảo độ an toàn cao cho các thủy vân tránh sự xóa dấu vết trong khi phân phối

 Điều khiển truy cập (copy control):

Các thủy vân trong những trường hợp này được sử dụng để kiểm soát sao chép đối với các thông tin Các thiết bị phát hiện ra thủy vân thường được gắn sẵn vào trong các hệ thống đọc/ ghi

Ví dụ như hệ thống quản lý sao chép DVD đã được ứng dụng ở Nhật Các ứng dụng loại này cũng yêu cầu thủy vân phải được đảm bảo an toàn và cũng 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

1.2.1 Quá trình giấu thông tin

Quá trình giấu tin được tiến hành theo các bước sau:

Thủy vân bền vững

Thủy vân dễ

vỡ

Giấu thông tin

Phương tiện

chứa (audio,

image, video)

Nhúng thông tin giấu vào phương tiện chứa

Phương tiện chứa

đã được giấu tin

Phân phối sản phẩm

Thông tin Khóa

Trang 11

Đầu tiên cần chọn một phương tiện chứa, thông tin cần giấu sẽ nhúng vào phương tiện chứa nhờ khóa, sau khi giấu phương tiện chứa sẽ mang thông tin và được phân phối theo yêu cầu

Ví dụ: Mã hóa thông điệp và nhúng các bít của thông điệp vào trong ảnh

1.2.2 Quá trình giải mã

Sau khi có được phương tiện chứa thông tin được giấu, nhờ có khóa và bộ giải

mã sẽ tách được tin bên trong phương tiện chứa, mang đi kiểm tra và xác nhận độ chính xác của thông tin thu được

Quá trình giải mã sẽ được thực hiện theo quá trình:

Trang 12

1.2.3 Các thuật ngữ hay dùng trong giấu tin

Datahiding: chỉ thuật ngữ giấu tin nói chung bao gồm cả giấu tin mật

(Steganography) và thủy vân số (watermarking)

Steganography: chỉ kĩ thuật giấu tin mật trong đối tượng

Watermarking: là kĩ thuật thủy vân số, chỉ những kĩ thuật giấu tin dung để bảo

vệ cho đối tượng chứa thông tin

Phương tiện chứa: gọi là dữ liệu nguồn (host signal) là nơi để giấu dữ liệu Ví

dụ giấu tin trong ảnh thì ảnh là phương tiện chứa hay ảnh là dữ liệu nguồn

Dữ liệu nhúng hay là thông tin giấu (embed data): dữ liệu cần giấu được

nhúng vào trong phương tiện chứa Trong giấu tin mật thì thông tin giấu là message, còn trong thủy vân số gọi là thủy vân

Tính tàng hình (imperceptible): đây là một trong ba yêu cầu của hệ giấu thông

tin Tính không nhìn thấy là tính chất tàng hình của dữ liệu nhúng trong dữ liệu nguồn

Tính bền vững (Robusness): đây là một yêu cầu của hệ giấu thông tin Tính

bền vững thể hiện ở khả năng chịu được các thao tác biến đổi trên dữ liệu nguồn như: cắt, xén, lọc…

Khả năng giấu (Embeding Capacity): là lượng dữ liệu cần giấu có khả năng

giấu vào trong dữ liệu nguồn

Nhiễu (Noise): chỉ sự sai khác của dữ liệu nguồn sau khi giấu thông tin

1.3 Phân loại các kĩ thuật giấu thông tin

Có nhiều cách phân loại kĩ thuật giấu thông tin:

Phương tiện chứa

Trang 13

 Phân loại theo dữ liệu nguồn: Nhìn chung các dạng dữ liệu nguồn khác nhau, người ta sử dụng các kĩ thuật giấu tin khác nhau Ví dụ dữ liệu nguồn là Audio, ảnh, Video… thì phải lựa chọn các kĩ thuật khác nhau để đảm bảo yêu cầu hệ giấu tin

 Phân loại theo tính chất tri giác được và không tri giác được: Sự khác nhau chủ yếu giữa hệ giấu tin tri giác được và không tri giác được là sự nhận biết nhanh khi có sự thay đổi nhỏ nguồn tin Chẳng hạn như dữ liệu nguồn là dạng văn bản (Text) và dữ liệu nguồn là Code của chương trình thì rõ ràng với dữ liệu nguồn dạng văn bản khi thay đổi một bit người ta không nhận ra nhưng với dữ liệu nguồn dạng chương trình khi ta thay đổi một bit chương trình có thể không chạy và ta nhận thấy ngay được sự khác biệt này

 Phân loại theo tính tàng hình: Xét về tính tàng hình thì các kĩ thuật giấu tin chia thành 2 nhóm: Thông tin nhìn thấy được và thông tin không nhìn thấy được Các thủy vân nhìn thấy được chủ yếu sử dụng cho ảnh và video.Một mẫu nhìn thấy được chẳng hạn như Logo nằm đè lên ảnh hoặc Video Các vân nhìn thấy thường mô tả cho các thông tin bản quyền, sở hữu quyền truy nhập đối với các thông tin của phương tiện chứa Ví dụ như các Logo mờ được gắn vào các phương tiện vô tuyến Một kĩ thuật giấu nhìn thấy được đã được áp dụng trước đây là thay đổi độ sáng tối của ảnh gốc, theo mẫu thủy vân chìm hay nổi Sự thay đổi đó cũng cần thực hiện theo một số yêu cầu nhất định như đảm bảo tốt về sự tương phản màu sắc hay việc thay đổi đó phải theo một quy tắc ngẫu nhiên để tránh việc loại bỏ những vân đó bằng các hệ thống tự động Giấu nhìn thấy được trên Video cũng sử dụng những ý tưởng tương tự

Phần chủ yếu của các kĩ thuật giấu tin hiện nay là các nghiên cứu cho phương pháp giấu không nhìn thấy được do tính ưu việt của nó nhưng đây là một công việc phức tạp vì giấu không nhìn thấy được vừa phải đảm bảo tính vô hình của thông tin giấu vừa đảm bảo chất lượng của dữ liệu gốc (thiết bị của đa phương tiện chứa)

 Phân loại theo lĩnh vực ứng dụng cũng là một tiêu chuẩn để phân loại kĩ thuật giấu thông tin Các ứng dụng cổ điển bao gồm: bảo vệ bản quyền tác giả, nhận thực thông tin, giấu vân tay, điều khiển truy cập thông tin và chú giải…

1.4 Các yêu cầu trong bài toán giấu tin

Khả năng Lưu trtrữ

Trang 14

1.4.1 Khả năng không bị phát hiện (tính ẩn/ vô hình của tin giấu)

Tính chất này thể hiện ở khả năng khó bị phát hiện, nghĩa là khó xác định một đối tượng có chứa thông tin mật hay không Để nâng cao khả năng này, hầu hết các phương pháp ẩn thông tin dựa trên đặc điểm của hai hệ tri giác người: hệ thị giác và

hệ thính giác Đây là hai cơ quan chủ yếu được dùng để đánh giá chất lượng của một tín hiệu

Khả năng khó bị phát hiện phụ thuộc vào hai tính chất sau:

 Kỹ thuật nhúng: Dữ liệu được nhúng phải phù hợp với đối tượng chứa và

thuật toán nhúng Để thực hiện tốt yêu cầu này ngoài những kinh nghiệm có trong lĩnh vực ẩn thông tin người thực hiện phải có kiến thức về các loại định dạng tập tin Vì có thể với cùng một loại thông tin mật nhưng nó rất khó bị phát hiện trên đối tượng A, nhưng lại quá dễ khi nhúng vào đối tượng B

 Kinh nghiệm của kẻ tấn công: Nếu như kẻ tấn công có nhiều kinh nghiệm thì

khả năng phát hiện một đối tượng chứa có chứa thông tin mật là không quá khó

1.4.2 Khả năng lưu trữ (Về dung lượng tin giấu)

Khả năng này thể hiện ở lượng thông tin của thông điệp mật có thể nhúng trong đối tượng chứa Do tính bảo mật nên khả năng lưu trữ luôn bị hạn chế Do đó trong trường hợp muốn ẩn một thông tin có kích thước tương đối lớn ta thường chia nhỏ ra nhiều thành phần và thực hiện nhúng từng phần

Trong thực tế, khi quyết định chọn phương pháp nhúng nào ta thường lấy ba tiêu chí trên làm cở sở Tùy thuộc vào từng ứng dụng mà người ta sẽ ưu tiên cho tiêu chuẩn nào hơn

1.4.3 Tính bền vững

Trang 15

Thể hiện khả năng ít bị thay đổi trước các tấn công từ bên ngoài: như thay đổi tính chất (thay đổi tần số lấy mẫu, số bít lấy mẫu…) đối với tín hiệu âm thanh, các phép biến đổi affine (dịch, quay, tỉ lệ…) thay đổi chất lượng ảnh (thay đổi hệ màu) đối với tín hiệu ảnh, chuyển đổi định dạng dữ liệu (JPG–BMP, GIF–PCX, WAV–MP3, MPG–AVI…) Hiện nay chưa có phương pháp nào đảm bảo biện pháp này một cách tuyệt đối

Với từng ứng dụng cụ thể, mức độ yêu cầu tính chất này thể hiện khác nhau

Ví dụ: Trong Watermarking dễ vỡ chỉ cần thay đổi nhỏ trên đối tượng chứa cũng có thể làm cho đối tượng thông tin mật bị hủy Thông thường thì mức độ yêu cầu tính chất này trong các ứng dụng Watermarking cao hơn các ứng dụng ẩn thông tin khác

1.5 Giấu thông tin trong các sản phẩm Multimedia

Ngày nay với sự phát triển của mạng Internet, các sản phẩm Multimedia trở nên rất phổ biến, chúng tồn tại ở nhiều dạng như hình ảnh, âm thanh, câc âm thanh

và hình ảnh động…Việc giấu thông tin trong các dạng khác nhau của Multimedia cũng có đôi chút khác biệt

1.5.1 Giấu thông tin trong ảnh

Giấu thông tin trong ảnh thường chiếm tỉ lệ lớn trong thực tế so với các loại sản phẩm khác Người ta thường sử dụng nó vào mục đích giữ bản quyền, chống xuyên tạc thông tin, bảo vệ tính xác thực của tác phẩm, thậm trí dùng để truyền tin

bí mật qua mặt đối phương Kĩ thuật này đã được áp dụng rất nhiều trong thời gian chiến tranh thế giới lần II xảy ra, vì vậy mà phương pháp giấu tin trong ảnh rất được quan tâm nghiên cứu Tuy nhiên trong kĩ thuật giấu tin trong ảnh có hai hướng chính là : giấu tin trong ảnh màu và trong ảnh đen trắng Hiện nay đã có nhiều thuật toán áp dụng cho giấu tin trong ảnh màu và ảnh đa cấp sáng theo các định dạng chuẩn như: BMP, GIFF, PCX, JPG… Trong đó với ảnh đen trắng thì việc giấu tin là khó đảm bảo sự an toàn hơn so với ảnh màu

Các thuật toán giấu tin trong ảnh màu được phát triển chủ yếu nhằm vào việc tăng khả năng nhúng các bit vào đối tượng ảnh, còn với ảnh đen trắng thì lại chú trọng hơn vào tính chất không nhìn thấy được của thông tin trong ảnh sau khi giấu

Trang 16

Giấu thông tin trong ảnh là một phần của việc giấu thông tin trong các thiết bị đa phương tiện Thông tin sẽ được giấu cùng với dữ liệu ảnh nhưng chất lượng ảnh phải ít thay đổi để không ai biết được bên trong ảnh có chứa thông tin và có ý nghĩa như thế nào Ngày nay cùng với việc ảnh số đã được sử dụng rất phổ biến thì giấu tin trong ảnh sẽ đem lại rất nhiều ứng dụng quan trọng trên nhiều lĩnh vực như chữ

kí số hóa và lưu trữ Rất nhiều thông tin quan trọng cần được bảo mật như thông tin

về an ninh quốc gia, về tài khoản trong ngân hàng…các thông tin này sẽ được số hóa và lưu trữ trên mạng, vì vậy chúng rất dễ bị đánh cắp hay bị thay đổi làm sai lệch thông tin.Việc chứng thực thông tin cũng như phát hiện thông tin xuyên tạc đã trở lên vô cùng quan trọng và cấp thiết, vì những đặc điểm như vậy nên phương pháp giấu tin trong ảnh đang thu hút được nhiều sự quan tâm bởi thông tin được giấu một cách vô hình, đó như là một cách truyền thông tin mật cho nhau mà người khác không thể biết được, do sau khi giấu chất lượng ảnh là gần như không thay đổi Thông tin giấu trong ảnh thì cũng như là một hệ mật mã, nhằm đảm bảo tính an toàn thông tin, đó là sự kết hợp giữa hệ mật mã và hình họa nhưng phương pháp này

có ưu điểm là che giấu đươc khả năng phát hiện thông tin chứa trong ảnh

1.5.2 Giấu tin trong sản phẩm 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 đế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 - HVS (Human Vision System) 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 HAS (Human Auditory System) Và một vấn đề khó khăn ở đây là hệ thống thính 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ó dễ đối với các phương pháp giấu tin trong audio Nhưng thật may là HAS lại kém trong việc phát hiện sự khác biệt các dải tần và công suất điều này có nghĩa là các âm thanh to, cao tần có thể che giấu được các âm thanh nhỏ thấp một cách dễ dàng 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 đối với giấu thông tin trong audio là kênh truyền tin Kênh truyền hay băng

Trang 17

thông chậm sẽ ảnh hưởng đến chất lượng thông tin sau khi giấu Ví dụ để nhúng một đoạn java applet vào một đoạn audio (16 bit, 44.100 Hz) có chiều dài bình thường thì các phương pháp nói chung cũng cần ít nhất là 20 bit/s Giấu thông tin trong audio đòi hỏi yêu cầu rất cao về tính đồng bộ và tính an toàn của thông tin 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

1.5.3 Giấu tin trong Video

Cũng giống như giấu thông 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ư điều khiển truy cập thông tin, nhận thực thông tin và bảo vệ bản quyền tác giả Ta có thể lấy một ví dụ là các hệ thống chương trình trả tiền xem theo đoạn với các video clip (pay per view application) Các kỹ thuật giấu tin trong video cũng được phát triển mạnh mẽ và cũng theo hai khuynh hướng là thuỷ vân số và data hiding Nhưng phần giới thiệu này chỉ quan tâm tới các kỹ thuật giấu tin trong video Một phương pháp giấu tin trong video được đưa ra bởi Cox 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 để 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ác ảnh vào trong video nhưng thời gian gần đây 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 phương pháp giấu theo khối, phương pháp này đã giấu được hai bít vào khối 8*8 Hay gần đây nhất là phương pháp của Mukherjee là kỹ thuật giấu audio vào video

sử dụng hệ thống lưới đa chiều

Kỹ thuật giấu thông tin áp dụng cả đặc điểm thị giác và thính giác của con người

Cũng như giấu tin trong ảnh hay trong các sản phẩm dạng Audio, giấu tin trong các sản phẩm dạng Video được quan tâm nhiều vì trong thực tế sản phẩm dạng này được lưu truyền rất phổ biến hiện nay Kĩ thuật giấu tin dạng này nhằm xác thực thông tin và bảo vệ bản quyền của tác giả, chống sao chép trái phép các sản phẩm khi không có sự đồng ý Các kĩ thuật giấu tin trong Video phát triển theo hai hướng là thủy vân số và giấu tin, yêu cầu đối với các phương pháp này khắt khe

Trang 18

hơn do hệ thống phải đánh lừa được cả thính giác và thị giác của con người Do tất

cả các thông tin sau khi được số hóa đều ở dạng nhị phân nên kĩ thuật giấu trong các sản phẩm Audio, hay Video đều có những điểm giống nhau nào đó

1.6 Kết luận

Trong chương này, chúng ta có thể thấy được cái nhìn tổng quát về các sản phẩm kĩ thuật số hiện nay, phân loại các kĩ thuật giấu tin trong các dạng sản phẩm khác nhau Và cũng thấy được sự khó khăn và phức tạp của kĩ thuật giấu tin, phụ thuộc vào rất nhiều yếu tố, đồng thời các ứng dụng thực tế và tầm quan trọng của kĩ thuật này trong nhiều lĩnh vực hiện nay

Giấu tin là một công nghệ mới rất phức tạp, nó đang được các nhà khoa học tập trung nghiên cứu ở nhiều nước trên thế giới như Đức, Mỹ, ý, Canada, Nhật Bản…Tuy nhiên, những kết quả thực nghiệm cho thấy để thực sự ứng dụng thực tế thì lĩnh vực này cần phải có thêm thời gian để nghiên cứu thẩm định nhưng các nhà khoa học cũng khẳng định rằng đây là một công nghệ mới đầy hứa hẹn cho vấn đề

an toàn và bảo mật thông tin Công việc hiện nay của các nhà khoa học đang tập trung xây dựng một hệ thống lí thuyết chính xác cho vấn đề giấu tin, đây là một mảnh đất mới cho các nhà khoa học khám phá

CHƯƠNG II MỘT SỐ THUẬT TOÁN GIẤU TIN TRONG ẢNH TĨNH

2.1 Cấu trúc file ảnh Bitmap

Trang 19

Ảnh Bitmap là một trong rất nhiều định dạng chuẩn thường gặp, có phần mở rộng là *.BMP, được Microsoft Corporation đưa ra lần đầu tiên trong phiên bản Windows 3.0 trở lên Mỗi ảnh Bitmap đều gồm 3 phần chính là :

BITMAPFILEHEADER bmfh; //Chứa thông tin chung về file

BITMAPINFOHEADER bmih; //Chứa thông tin chung về ảnh

BYTE aBitmapBits[]; //Phần dữ liệu ảnh

Trong đó các cấu trúc được định nghĩa như dưới đây :

typedef struct tagBITMAPFILEHEADER { /* bmfh */

typedef struct tagBITMAPINFOHEADER { /* bmih */

DWORD biSize; LONG biWidth;

LONG biHeight; pixel

Trang 20

} BITMAPINFOHEADER, *LPBITMAPINFOHEADER;

Trang 21

} RGBQUAD;

Sau phần Header và bảng màu là phần chứa dữ liệu của file ảnh, phần này nằm ngay sau phần Palette, đây là phần chứa giá trị màu của điểm ảnh trong Bitmap Các dòng ảnh được lưu trữ từ dưới lên trên, các điểm ảnh được lưu từ trái sang phải, trong đó giá trị của mỗi điểm ảnh là một số trỏ tới phần tử màu tương ứng của phần Palette ảnh Sỗ bit dành cho riêng một pixel sẽ xác định số lượng màu cho pixel đó Ví dụ như nếu mỗi pixel được thể hiện bởi 4 bits, thì khi đó số lượng màu mà pixel có thể xác định là 16 màu Bảng sau thấy mối liên hệ giữa số bit trên một pixel với số màu mà pixel có thể thể hiện :

Bits/pixel Số màu pixel thể hiện

Trang 22

Trên thực tế thường gặp nhất là loại ảnh bitmap với 24 bits/pixel, do định dạng của ảnh nhị phân không được nén nên nó không thích hợp cho việc truyền tải trên môi trường mạng Một khái niệm khác liên quan đến định dạng file Bitmap không thể không nhắc đến là “Bitmap độc lập với thiết bị” hay còn gọi là Device-Independent Bitmap (DIB) DIB bao gồm một bảng màu mô tả làm sao để các giá trị điểm ảnh có thể tương ứng những giá trị màu RGB, điều đó cũng mô tả màu sắc được tạo ra từ sự phát sáng Vì vậy DIB có thể thể hiện được màu sắc thích hợp trên bất kì thiết bị nào, DIB bao gồm những thông tin về màu sắc và kích thước như sau:

 Khuôn dạng màu sắc của thiết bị mà trên đó ảnh được tạo ra

 Độ phân giải của thiết bị tạo ra ảnh

 Bảng màu cho thiết bị tạo ra ảnh

 Một mảng những bit ánh xạ bộ màu red, green, blue tới những pixel trong khung ảnh hình chữ nhật

 Xác định chế độ nén dữ liệu được thể hiện bởi lược đồ nén (nếu có ) để giảm bớt kích thước của mảng bit

 Thông tin về kích thước và màu sắc được lưu trữ trong cấu trúc BitmapInfor, trong đó cũng chứa đựng một cấu trúc BitmapInforHeader theo sau bởi hai hay nhiều cấu trúc RGBQuad Cấu trúc BitmapInforHeader chỉ rõ kích thước của khung

pixel hình chữ nhật, kĩ thuật màu sắc của thiết bị và lược đồ nén được sử dụng để

giảm bớt kích thước của ảnh Bitmap Còn cấu trúc RGBQuad lại xác định những

màu xuất hiện trên các pixel đó

2.2 Các đặc điểm của kĩ thuật giấu tin trong ảnh tĩnh

Giấu tin trong ảnh là sự kết hợp của hệ mật mã và hình họa, chúng có một số các đặc điểm nổi bật như sau :

Nguồn dữ liệu ở đây là các ảnh tĩnh, là ảnh không thay đổi theo thời gian, khác

so với các sản phẩm đa phương tiện như Audio hay Video, khi quan sát dữ liệu gốc thay đổi liên tục theo các đoạn,các bài hay frames Sự khác biệt này ảnh hưởng lớn đến các kĩ thuật giấu thông tin trong các sản phẩm Audio hay Video Đối với giấu tin trong ảnh thì phương pháp giấu và kĩ thuật giấu phụ thuộc vào đặc điểm thị giác của con người như độ sáng, độ tối, độ tương phản của các màu sắc, yếu tố khoảng cách nhìn, góc nhìn…

Trang 23

Giấu thông tin trong ảnh sẽ tác động lên dữ liệu ảnh nhưng không thay đổi kích thước của ảnh, các phép toán thực hiện công việc giấu thông tin sẽ được thực hiện trên dữ liệu ảnh Dữ liệu ảnh là sau khi bỏ qua phần Header,bảng màu Khi giấu thông tin, các phương pháp đều làm biến đổi các giá trị của các bit trong phần

dữ liệu ảnh chứ không thêm vào hay bớt đi dữ liệu ảnh, vì vậy mà kích thước ảnh sẽ được giữ nguyên

Đảm bảo chất lượng ảnh sau khi giấu thông tin, đây là yêu cầu rất quan trọng Sau khi giấu thông tin bên trong, ảnh phải đảm bảo yêu cầu không bị biến đổi về hình dạng cũng như kích thước để có thể bị phát hiện Yêu cầu này có thể dễ thực hiện trên ảnh màu hay các ảnh xám bởi mỗi pixel của những ảnh này được biểu diễn bởi nhiều bit, vì vậy khi ta thay đổi một gíá trị bít trong số các bit thấp thì chất lượng ảnh hầu như không thay đổi và khó có thể nhận thấy, nhưng đối với ảnh chỉ

có hai màu thì điều này cực kì khó thực hiện, bởi chỉ một sự thay đổi nhỏ cũng dễ gây sự chú ý của người xem khi so sánh với ảnh gốc Vì lí do này nên yêu cầu đối với thuật toán giấu tin trong ảnh màu và ảnh đen trắng là hoàn toàn khác nhau Đối với ảnh màu thì thuật toán yêu cầu giấu được càng nhiều thông tin trong ảnh càng tốt, còn với ảnh đen trắng thì điều quan trọng là làm sao cho thông tin giấu khó bị phát hiện

Thông tin được giấu trên ảnh sẽ bị sai lệch nếu có bất cứ một sự biến đổi nào trên ảnh Nếu ta sử dụng các chương trình chuyên dụng trong việc xử lý ảnh như Photoshop hay CorelDraw thì chắc chắn thông tin trong bức ảnh sẽ sai lệch, do giá trị các bit trên bức ảnh đã bị thay đổi bởi các chương trình xử lý ảnh đó

Thông tin được giấu trong ảnh sẽ được mang cùng với dữ liệu ảnh, chính vì điều này mà khi giải mã thông tin ta không cần sử dụng ảnh gốc để so sánh đối chiếu mà chỉ cần sử dụng ảnh chứa tin

2.3 Sự khác biệt giữa giấu tin trong các loại ảnh

Mỗi loại ảnh khác nhau sẽ có các kĩ thuật giấu tin khác nhau và có những yêu cầu kĩ thuật khác nhau

Đối với các loại ảnh màu và ảnh đa cấp xám thì mỗi pixel ảnh mang nhiếu giá trị, được biểu diễn bằng nhiều bit, vì vậy việc thay đổi một giá trị nhỏ ở một pixel thì chất lượng ảnh gần như không đổi và khả năng bị phát hiện là thấp nếu quan sát

Trang 24

bằng mắt thường Do đó thị giác đóng vai trò quan trọng trong việc đảm bảo tính ẩn của thông tin giấu Tuy nhiên với những ảnh mà giá trị của nó chỉ mang một giới hạn nhỏ giá trị các bit thì việc đảm bảo tính ẩn là việc khó khăn hơn, đặc biệt đối với loại ảnh đen trắng, mỗi điểm ảnh chỉ mang hai giá trị, vì thế khi thay đổi giá trị một bit từ 0 sang 1 và ngược lại rất dễ bị phát hiện ngay cả khi quan sát bằng mắt thường Do đó với ảnh đen trắng số lượng các thuật toán là hạn chế và chưa đạt được kết quả như mong muốn, có thuật toán giấu được nhiều thông tin nhưng chất lượng ảnh lại kém và dễ bị phát hiện Một số thuật toán khác thì giấu được chất lượng ảnh tốt nhưng lượng thông tin giấu lại ít và quá đơn giản không đảm bảo được độ an toàn thông tin

Với ảnh đen trắng, mỗi điểm ảnh chỉ có 2 bit rõ ràng là khó giấu vì chỉ có hai

vị trí để giấu Ảnh 16 màu mỗi điểm ảnh có 4 bit biểu diễn vì vậy mà số vị trí cần giấu là 4 Đối với ảnh 256 màu mỗi điểm ảnh được biểu diễn bằng 8 bit, như vậy có

8 vị trí để giấu Vì vậy mà ta có thể giấu nhiều vị trí với ảnh màu Những vấn đề đặt

ra ở đây là phải tìm được thuật toán đảm bảo hai yêu cầu sau:

 Giấu được nhiều thông tin hay nhiều bit vào trong ảnh

 Chất lượng ảnh không giảm, khó phát hiện bằng mắt thường và bằng các kĩ thuật kiểm tra

Bảng so sánh giữa giấu tin trong ảnh đen trắng và ảnh màu, ảnh đa cấp xám:

Thông tin giấu ít hơn so với ảnh màu có

Khả năng bị phát hiện phương tiện có

Độ an toàn thông tin thấp do dễ bị phát

rộng Như là áp dụng thuật giải di truyền

2.4 Một số thuật toán giấu tin trong ảnh tĩnh

Trang 25

2.4.1 Nghiên cứu một kỹ thuật giấu tin đơn giản

2.4.1.1 Ý tưởng

Đây có lẽ là kỹ thuật đơn giản nhất trong các kỹ thuật giấu tin, ý tưởng cơ bản của thuật toán là chia một ảnh thành các khối nhỏ và trong mỗi khối nhỏ sẽ giấu một bit thông tin Thuật toán này dùng cho cả ảnh màu, ảnh 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, phần sau sẽ trình bày phương pháp áp dụng thuật toán vào ảnh màu và ảnh xám

2.4.1.2 Thuật toán giấu tin

Input:

- Một ảnh Bitmap đen trắng

- Một file thông tin cần giấu

Output:

- Một file ảnh đã giấu tin

- Một khoá để giải tin

Cách thức thực hiện:

* Tiền xử lí:

Chuyển file thông tin cần giấu sang dạng nhị phân bởi vì thuật toán sẽ giấu từng bit của thông tin cần giấu vào trong ảnh Việc biến đổi ngược trở lại file thông tin sẽ được thực hiện trong quá trình giải tin

Đọc header của ảnh để lấy thông tin ảnh, đọc bảng màu Sau đó, đọc toàn bộ

dữ liệu ảnh vào một mảng hai chiều để sử dụng cho việc giấu tin

* Quá trình giấu tin:

Chia phần thông tin ảnh (ma trận hai chiều điểm ảnh) thành các khối nhỏ có kích thước m  n Giả sử ảnh gốc ban đầu có kích thước là M  N, ảnh gốc được chia thành các khối nhỏ, tổng số các khối nhỏ sẽ là (M  N)/ (m  n) khối Vì ảnh là đen trắng nên mỗi khối là một ma trận hai chiều của các giá trị 0 và 1 như hình vẽ:

Trang 26

Hình 2.2: Một ví dụ về dữ liệu ảnh được chia thành các khối cỡ 4  4

Sau khi phân thành các khối nhỏ, ta sẽ chọn các khối để giấu tin Có thể chọn ngẫu nhiên các khối nhưng để cho đơn giản ta coi như các khối được chọn liên tiếp

từ khối đầu tiên cho đến khi giấu hết các thông tin cần giấu hoặc khi đã chọn đến khối cuối cùng

Mỗi khối nhỏ sẽ được dùng để giấu một bit thông tin theo quy tắc sau: nếu giấu bit 1 vào một khối thì khối đó phải thoả mãn tính chất tổng số các bit 1 trong khối là số lẻ Ngược lại, nếu cần giấu bit 0 vào một khối thì khối đó phải thoả mãn tính chất tổng số các bit 1 trong khối là số chẵn

Như vậy, mỗi lần giấu một bit, có thể xảy ra hai trường hợp sau đây:

Khối đã thoả mãn tính chất để giấu một bit thông tin: chẳng hạn như khi cần giấu bit 1 thì tổng số bit 1 đã là lẻ rồi, hoặc khi cần giấu bit 0 vào khối thì khối đó

đã có tổng số bit 1 là chẵn Trong những trường hợp như thế, ta không cần thay đổi

và ngẫu nhiên một bit thông tin đã được giấu

Trong trường hợp ngược lại, tính chất của khối không thoả mãn yêu cầu để giấu tin nghĩa là khi cần giấu bit 1 thì tổng số bit 1 trong khối là chẵn hoặc khi cần giấu bit 0 thì tổng số bit 1 trong khối lại đang là lẻ Trong những trường hợp như thế thì ta cần phải thay đổi khối đó sao cho thoả mãn điều kiện bằng cách đổi một bit bất kì từ 0 sang 1, hoặc từ 1 sang 0

Giả sử ta phải giấu bit 1 vào khối B sau:

Trang 27

Còn nếu, cũng với khối này mà cần phải giấu bit 0 thì không phải làm gì hết,

vì ban đầu khối này đã thoả mãn tính chất để giấu bit 0

Mỗi lần giấu một bit, ta lại lấy một khối để giấu theo quy tắc trên cho đến hết lượng thông tin cần giấu Sau khi giấu xong ta được một ma trận hai chiều của dữ liệu ảnh mới Bước tiếp theo, cần phải xây dựng ảnh mới bằng cách: chép header và bảng màu của ảnh gốc đã đọc ra lúc đầu vào file ảnh mới Cuối cùng phải chép nốt

dữ liệu ảnh mới vào file để thu được ảnh mới sau khi đã giấu tin

Trong thuật toán giấu tin này khoá đơn giản chỉ là kích thước của khối, nếu biết kích thước của khối thì dễ dàng giải mã tin theo quy tắc sau:

* Quá trình giải tin:

Khi nhận được ảnh đã giấu tin, quá trình giải mã tin sẽ được thực hiện theo các bước sau đây:

- Gỡ header của ảnh và bảng màu của ảnh để biết các thông tin ảnh

- Lấy phần dữ liệu ảnh vào mảng hai chiều

Các bước này giống như quá trình giấu tin Sau khi đã có được giữ liệu ảnh ta lại chia ảnh thành các khối có kích thước giống kích thước khối khi chưa giấu, đây chính là khoá để giải mã Chọn ra các khối đã giấu và giải tin theo quy tắc: đếm số

Trang 28

bit 1 trong khối, nếu tổng số bit 1 là lẻ thì thu được bit 1, ngược lại thu được bit 0

Và cứ tiếp tục cho đến khi hết các khối đã giấu

Như vậy, sau khi xét hết các khối đã giấu, ta thu được một chuỗi bit Chuỗi này chính là thông tin nhị phân đã giấu cần phải lấy ra Cuối cùng, chuyển từ file nhị phân sang định dạng của file thông tin ban đầu

2.4.1.3 Phân tích thuật toán

Thuật toán giấu tin trong ảnh được trình bày ở mục trên rất đơn giản Sau khi nghiên cứu thuật toán này chúng ta có thể đưa ra một số bình luận và đánh giá sau đây:

Việc chọn kích thước khối để giấu tin cần phải căn cứ vào kích thước ảnh và lượng thông tin cần giấu sao cho các thông tin được giấu giàn trải trên toàn ảnh

Ví dụ nếu ta có một ảnh kích thước 512 x 512 pixel và có một lượng thông tin cần giấu là 100 kí tự Như vậy, file nhị phân cần giấu sẽ là 100 x 8 = 800 bit Như vậy, để giấu được hết thông tin cần phải có ít nhất 800 khối Vậy nên chia khối như thể nào để có đủ số khối theo yêu cầu và có thể giàn trải rộng trên toàn ảnh? Cách làm như sau: vì (512 x 512) / 800 = 327 dư 544, cho nên kích thước của khối chỉ được phép tối đa là 327 Do đó có thể chọn các khối có kích thước chẳng hạn như

20 x 15, 16 x 16…

Sở dĩ nên chọn khối có kích thước lớn vì như vậy nếu như trong trường các khối bị thay đổi thì khoảng cách bit bị biến đổi sẽ thưa hơn và làm cho ảnh sau khi giấu khó bị nhận biết hơn

Với thuật toán này việc chọn khối 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ể làm khó thuật toán hơn bằng cách chọn ngẫu nhiên một khối chưa giấu ở mỗi lần giấu Khi đó, ta đã làm tăng được độ an toàn của thuật toán vì khoá bây giờ còn thêm cả chỉ số khối đã giấu tin cho từng bit Khi đó, ta đã làm tăng được độ an toàn của thuật toán vì khoá 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ư lần 1 có kích thước khối là 8*8, lần

2 là 8*12 …trong trường hợp này thì khoá sẽ là kích thước khối của mỗi lần giấu Một nhận xét quan trọng nữa thông qua thuật toán này là ta phải hiểu được bản chất của giấu tin được thực hiện trong kỹ thuật này Bản chất của cách thức giấu

Trang 29

chẳng qua là một sự quy ước nào đó, nếu thoả mãn thì giấu bit 1, ngược lại thì giấu bit 0 Điều này khác hẳn với giấu cái bút bi trong cái bàn vì thực tế là ta có cái bút

bi thật sự và phải giấu nó đâu đó trong cái bàn còn xét trong kỹ thuật giấu tin thì bản chất là ta không có bút bi nào hết mà chỉ là giả bút bi Chẳng hạn như ta quy ước cái bàn nào có vết sước ở góc thì có giấu bút bi còn ngược lại thì không có bút

bi Sở dĩ ta thực hiện được điều này vì chỉ có hai trường hợp, một là có giấu bút bi hai là không có bút bi để giấu tương ứng với hai trường hợp 1 và 0

2.4.2 Kỹ thuật giấu Wu _ Lee

Trong phần này chúng ta sẽ tìm hiểu chi tiết một thuật toán giấu thông tin trong ảnh đen trắng do M.Y.Wu và J.H.Lee đưa ra trong một bài báo đăng tại

Proceedings of international Symposium on Multimedia Information Processing

1999 Để cho tiện chúng ta gọi thuật toán theo tên của các tác giả

2.4.2.1 Mô tả thuật toán

Giả sử ta có một ảnh đen trắng, và coi ảnh này như một ma trận các điểm 0, 1 Cho hai ma trận có cùng cỡ B1, B2, kí hiệu:

ma trận:

Định nghĩa 1: Phép XOR ( kí hiệu  ):

Trang 30

 là ký hiệu của phép cộng loại trừ trên hai ma trận nhị phân xác định như sau: A  B = C

Định nghĩa 2: Phép nhân  hai ma trận

Cho hai ma trận số nguyên A, B cùng cỡ Phép nhân AB được xác định như sau: C = AB

Trang 31

Định nghĩa 3 Phép nhân bit hai ma trận và ký hiệu là ^

Cho hai ma trận bit A, B cùng cỡ Phép nhân A^B được xác định như sau:

B1 Chia ảnh F thành các khối nhỏ, mỗi khối sẽ có kích thước là m x n

B2 Với mỗi khối ảnh nhỏ Fi thu được từ B1, kiểm tra điều kiện:

else if (SUM(Fi^K)=1) then

chọn ngẫu nhiên một bit của Fi ở vị trí j,k thỏa mãnđồng thời hai điều kiện

Trang 32

chọn một bit ngẫu nhiên thoả mãn đồng thời [Fi] jk = 1 và [K] jk = 1 sau đó

hoặc từ 1 thành 0;

end if;

Nhận xét ý tưởng của thuật toán Wu_Lee

 Việc chọn khoá 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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 khoá K

 Phép toán Fi^K qui định thuật toán chỉ được phép sửa các bit trong khối Fi ứng với bit 1 trong khoá K Như vậy, khoá 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

 như các thuật toán cải tiến sẽ được trình bày ở phần sau

 Đ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ư khoá 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 F’i nhằm đảm bảo tính bất biến

SUM(F’i^K) mod 2 = b 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ải mã để lấy lại thông tin đã giấu như sau: Duyệt lần lượt các khối F’i của ảnh đích F’ Nếu F’i thoả điều kiện 0< SUM(F’i^K) < SUM(K) thì tính bit b đã được giấu vào trong khối bằng công thức b = SUM(F’i^K) mod 2

Vì khoá K là bí mật nên thông tin đã được nhúng là bí mật Thuật toán này làm

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ỏ

Trang 33

Chúng ta sẽ lấy một ví dụ mô tả thuật toán trên Giả sử một ảnh F có kích thước 6 x 6 và một ma trận khoá K có kích thước 3 x 3 như ở hình dưới Chia ảnh F thành 4 khối nhỏ kích thước là 3 x 3, và đặt tên là F1, F2, F3, và F4

Hình 2.3: Mô tả quá trình đảo bit để giấu tin của thuật toán trên 4 khối

 Vì SUM(F1^K) = SUM(K) = 5 nên không giấu dữ liệu vào trong F1 F1 được giữ nguyên

 Vì SUM(F2^K) = 3 nên có thể giấu một bit vào khối F2 Bit đầu tiên cần giấu là bit 0 Nên theo S3 ta sẽ chọn một bit có F2ij =0 và Kij =1 và đổi giá trị F2ij

thành 1 F2 chuyển thành F’2 như trong Hình 3.3 (bit bị đổi được đánh giấu xám)

 Với F3, SUM(F3^K) = 3 nhưng bit cần giấu là bit 1 nên theo S1 ta giữ nguyên F3 nhưng thực tế F3 vẫn được giấu một bit 1

 Đối với F4, SUM(F1^K) = 4, bit cần giấu là bit 1 nên theo S3 ta chọn một bit

mà F4ij =1 và Kij =1 rồi chuyển F4ij =0 Bit bị thay đổi được đánh giấu xám

 Có thể dễ dàng nhận thấy có nhiều điểm đen điểm trắng lạ trên hai ảnh sau khi giấu thông tin

Ngày đăng: 03/08/2016, 15:58

HÌNH ẢNH LIÊN QUAN

Hình 2.1: Bảng màu của ảnh Bitmap 24 bit/pixel - Các thuật toán giấu tin trong ảnh
Hình 2.1 Bảng màu của ảnh Bitmap 24 bit/pixel (Trang 21)
Bảng so sánh giữa giấu tin trong ảnh đen trắng và ảnh màu, ảnh đa cấp xám: - Các thuật toán giấu tin trong ảnh
Bảng so sánh giữa giấu tin trong ảnh đen trắng và ảnh màu, ảnh đa cấp xám: (Trang 24)
Hình 4.1: Giao diện chương trình giấu tin  Sau khi thực hiện xong chương trình sẽ hiển thị hộp thoại thông báo là bạn đã  giấu tin thành công: - Các thuật toán giấu tin trong ảnh
Hình 4.1 Giao diện chương trình giấu tin Sau khi thực hiện xong chương trình sẽ hiển thị hộp thoại thông báo là bạn đã giấu tin thành công: (Trang 59)
Hình 4.2: Giao diện chương trình hồi phục dữ liệu  Sau khi thông tin đã được khôi phục thành công thì sẽ hiển thị hộp thoại thông  báo: - Các thuật toán giấu tin trong ảnh
Hình 4.2 Giao diện chương trình hồi phục dữ liệu Sau khi thông tin đã được khôi phục thành công thì sẽ hiển thị hộp thoại thông báo: (Trang 60)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w