Luận văn Một số thử nghiệm các kỹ thuật ẩn dữ liệu trên ảnh tĩnh và mô hình ba chiều

Trên ảnh nhịphân, khi số vùng đen và vùng trắng tách rời nhau rõ rệt thì ảnh sau khi nhúng dữ liệu sẽ dễ bị nhìn thấy sự biến dạng, để làm phân tán các điểm ảnh bị thay đổi ta có thể dùng một hàm Sobol có phân phối tương đối đồng đều. Như thế dữ liệu nhúng được nhúng rải đều trên toàn bộ ảnh, không tập trung vào một vùng nhất định.

pdf125 trang | Chia sẻ: lylyngoc | Lượt xem: 2803 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Luận văn Một số thử nghiệm các kỹ thuật ẩn dữ liệu trên ảnh tĩnh và mô hình ba chiều, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Kh oa C NT T - Ð H KH TN TP .H CM -63- Hình 19. Lưới tam giác và các MEP với dữ liệu nhúng là "data hiding" Đánh giá về thuật giải: thuật giải có khả năng chống lại các phép quay, tịnh tiến và biến đổi tỉ lệ đồng nhất, quá trình giải mã không cần mô hình gốc. Ngoài ra, thuật giải không phụ thuộc vào thứ tự lưu trữ các tam giác trong tập tin. Tuy nhiên việc tính toán trên số thực sẽ gây ra nhiều sai số có thể dẫn đến việc suy thoái của dữ liệu nhúng. Số lượng dữ liệu nhúng không nhiều lắm, chỉ khoảng 0.15 – 0.18 byte/ tam giác. 3.5.2.1.2 Thuật giải TVR (Tetrahedral Volumn Ratio): TVR sử dụng đối tượng nhúng là các cặp tỉ số thể tích của hai tứ diện. Tỉ số này bất biến với các phép biến đổi affine nhưng thất bại với các phép biến đổi topology như là tạo lại lưới tam giác, thay đổi ngẫu nhiên giá trị tọa độ của đỉnh Kh oa C NT T - Ð H KH TN TP .H CM -64- và các phép biến đổi hình học thông thường. Thuật giải này được gọi là thuật giải Tỉ số thể tích tứ diện TVR (Tetrahedral Volumn Ratio), sử dụng phương pháp sắp xếp toàn cục hay sắp xếp cục bộ. Thuật giải cũng thao tác trên lưới tam giác. Quá trình giải mã cũng không cần có lưới tam giác gốc, vì thế TVR là thuật giải blind. Nguyên lý thuật giải: yếu tố chính trong thuật giải là thành lập một dãy sắp xếp cục bộ các đối tượng nhúng và tiến hành nhúng dữ liệu vào các đối tượng nhúng. Sau đây là các bước của thuật giải: Bước 1: Từ một điều kiện ban đầu, duyệt trên lưới tam giác tạo một cây mở rộng các đỉnh Vt. Từ cây mở rộng các đỉnh Vt tạo dãy các tam giác. Cây mở rộng được thành lập như sau: điều kiện ban đầu là một cạnh khởi tạo trên lưới tam giác Tris, chiều của cạnh (đỉnh ngọn, đỉnh gốc) và chiều duyệt (theo chiều kim đồng hồ hay ngược chiều kim đồng hồ). Từ cạnh và chiều duyệt đó bắt đầu duyệt các đỉnh trong lưới: chọn một đỉnh liền kề và là đỉnh đầu tiên theo chiều duyệt thêm vào cây mở rộng, quá trình cứ tiếp tục cho đến khi đã duyệt hết các đỉnh. Sau khi đã có cây mở rộng, tạo một dãy các cạnh Tbe (Triangle Bounding Edge), ban đầu Tbe và dãy Tris rỗng, bắt đầu duyệt từ gốc cây theo chiều sâu, ở mỗi đỉnh xét các cạnh nối với đỉnh ấy nếu chưa có trong Tbe thì thêm cạnh đó vào Tbe. Nếu tồn tại lần đầu tiên trong Tbe ba cạnh của một tam giác thì thêm tam giác đó vào Tris. Cạnh ban đầu được chọn là cạnh xác định tứ diện có thể tích lớn nhất trong mô hình lưới tam giác. Tứ diện có thể tích lớn nhất này không được sử dụng trong các bước tiếp theo để bảo toàn tọa độ các đỉnh. Một cạnh xác Kh oa C NT T - Ð H KH TN TP .H CM -65- định một tứ diện được mô tả như hình 20, mỗi cạnh xác định một tứ diện chính là bốn đỉnh của hai tam giác có chung cạnh đó: Hình 20. Cạnh xác định tứ diện chính là bốn đỉnh của hai tam giác có cạnh này là cạnh chung Bước 2: Tạo một dãy các tứ diện Tets từ dãy các tam giác Tris: tính một đỉnh chung cho tất cả các tam giác trong Tris bằng cách tính trọng tâm của các đỉnh của một số tam giác trong Tris, các tam giác đã sử dụng để tính trọng tâm sẽ bị loại ra khỏi Tris và tọa độ đỉnh của các tam giác đó không bị thay đổi trong quá trình nhúng. Đỉnh chung này được xem là đỉnh thứ tư của các tứ diện có tam giác đáy là tam giác trong Tris. Bước 3: Chuyển dãy các tứ diện Tets thành dãy các tỉ số thể tích tứ diện Vrs tương ứng: chọn một thể tích tứ diện làm mẫu số, các thể tích tứ diện còn lại làm tử số, tứ diện có thể tích là mẫu số bị loại ra khỏi Tets và các tọa độ đỉnh của nó không bị thay đổi trong quá trình nhúng. Quá trình tạo dãy tỉ số thể tích được mô tả bằng hình 21: Kh oa C NT T - Ð H KH TN TP .H CM -66- Hình 21. Quá trình tạo chuỗi tỉ số thể tích Bước 4: Nhúng một ký hiệu vào mỗi tỉ số bằng cách thay đổi thể tích tử số. Các đỉnh bị thay đổi tọa độ phải chưa được sử dụng để nhúng một ký hiệu trong giai Kh oa C NT T - Ð H KH TN TP .H CM -67- đoạn trước. Ngoài thông điệp cần nhúng còn có thêm một dãy các ký hiệu nhận biết, dãy các ký hiệu nhận biết được nhúng đầu tiên, dãy này hữu dụng trong quá trình rút trích dữ liệu. Quá trình rút trích dữ liệu sử dụng phương pháp thử và sai. Mỗi cạnh trong lưới đa giác được xem là cạnh khởi tạo, được thao tác hai lần theo hai chiều duyệt: cùng chiều kim đồng hồ và ngược chiều kim đồng hồ. Ban đầu chọn một chiều là chiều duyệt. Từ cạnh này tạo cây mở rộng Vt, dãy tam giác Tris, dãy tứ diện Tets và dãy tỉ số thể tích, sau đó rút trích dữ liệu từ dãy tỉ số thể tích. Nếu các ký hiệu ban đầu đúng với dãy các ký hiệu nhận biết thì cạnh này đúng là cạnh khởi tạo và chiều duyệt này chính xác, quá trình rút trích dữ liệu sẽ tiếp tục cho đến khi nhận được thông điệp. Nếu các ký hiệu không đúng với các ký hiệu nhận biết thì quá trình dừng và chọn chiều kia làm chiều duyệt. Nếu cả hai chiều đều không đúng thì chuyển sang cạnh kế tiếp và tiếp tục cho đến khi rút trích được chính xác dãy ký hiệu nhận biết và thông điệp. Đánh giá về thuật giải: thuật giải có khả năng chống lại các phép biến đổi affine, quá trình giải mã không cần lưới tam giác gốc. Cũng như TSQ, thuật giải không phụ thuộc vào thứ tự lưu trữ các tam giác trong tập tin và việc tính toán trên số thực sẽ gây ra nhiều sai số có thể dẫn đến việc suy thoái của dữ liệu nhúng. Vì TVR sử dụng phương pháp thử và sai trên tất cả các cạnh trong lưới tam giác, điều này tốn không ít thời gian nhất là trong trường hợp lưới tam giác lớn, số lượng tam giác lên đến vài chục ngàn. Số lượng dữ liệu nhúng ít, khoảng 0.05 – 0.2 byte/ tam giác. 3.5.2.1.3 Cơ sở toán học của hai thuật giải TSQ và TVR: Kh oa C NT T - Ð H KH TN TP .H CM -68- Hai thuật giải trên dựa vào cơ sở toán học về các phép biến đổi đồng dạng trên tam giác và trên tứ diện[11]. Các phép quay, tịnh tiến và biến đổi tỉ lệ đồng nhất đều là các phép biến đổi affine. Ta có tính chất về phép biến đổi affine và ánh xạ affine như sau: ™ Hình tam giác là một khái niệm affine. ™ Ánh xạ affine biến một tam giác thành một tam giác, một tứ diện thành một tứ diện. ™ Các phép biến đổi: quay, tịnh tiến và biến đổi tỉ lệ đồng nhất là các phép biến đổi đồng dạng. Phép biến đổi đồng dạng biến một tam giác thành một tam giác đồng dạng với nó. Và các cặp tỉ số {cạnh đáy/đường cao, cạnh bên/cạnh bên} là các đặc trưng của lớp các tam giác đồng dạng. 3.5.2.2 Thuật giải dựa trên sự thay đổi hình dạng lưới tam giác: 3.5.2.2.1 Thuật giải TSPS (Triangle Strip Peeling Symbol sequence): Thuật giải TSPS là thuật giải ẩn dữ liệu dựa trên sự thay đổi các đối tượng nhúng là hình dáng lưới tam giác. Nguyên lý thuật giải: thuật giải dựa trên sự liền kề trong chuỗi các tam giác, mỗi cạnh kề mã hóa một bit dữ liệu. Các đối tượng nhúng được sắp xếp theo dãy một chiều. Sau khi đã nhúng dữ liệu, chuỗi các tam giác có dữ liệu nhúng được tách ra khỏi lưới tam giác. Các đối tượng nhúng là các đối tượng topology và cách sắp xếp cũng theo cách sắp xếp topology nên thuật giải này tránh được các biến đổi hình học. Ngoài ra bằng cách nhúng nhiều lần bản sao của dữ liệu nhúng, thuật giải còn có thể chống lại phép cắt một phần lưới tam giác. Tuy nhiên, dữ liệu nhúng sẽ bị hủy hoàn toàn khi lưới tam giác bị thao tác bởi các phép biến đổi topology. Kh oa C NT T - Ð H KH TN TP .H CM -69- Thuật giải có đầu vào là lưới tam giác, dãy các bit dữ liệu và một hướng duyệt (cùng chiều kim đồng hồ hay ngược chiều kim đồng hồ) ví dụ như hướng cùng chiều kim đồng hồ là xác định bit 1, hướng ngược chiều kim đồng hồ xác định bit 0. Sau đây là các bước của thuật giải: Bước 1: Từ lưới tam giác M, chọn một cạnh ban đầu e, mở rộng một chuỗi tam giác S trên M bằng cách sử dụng dãy các bit dữ liệu để định hướng chọn tam giác kế tiếp. Cạnh e chính là điều kiện khởi tạo. Nhận thấy rằng tam giác cuối cùng trong chuỗi tam giác luôn có hai cạnh tự do (hai cạnh không kề với các tam giác còn lại trong chuỗi tam giác). Tam giác kế tiếp là tam giác có cạnh kề với một trong hai cạnh sẽ được xác định dựa vào hướng duyệt và giá trị kế tiếp trong dãy bit dữ liệu. Bước 2: Tách rời chuỗi tam giác S khỏi M bằng cách tách tất cả các cạnh và các đỉnh trên đường biên của S, chỉ để lại duy nhất cạnh ban đầu e. Chuỗi tam giác S chỉ còn liên kết với phần còn lại của lưới tam giác M chỉ duy nhất cạnh e. Kh oa C NT T - Ð H KH TN TP .H CM -70- Hình 22. Mô tả các bước của thuật giải TSPS Kh oa C NT T - Ð H KH TN TP .H CM -71- Ví dụ: nhúng chuỗi các bit “10101101011” vào chuỗi 12 tam giác. Hình 23. Chuỗi tam giác S tương ứng với dữ liệu nhúng "10101101011". Nếu bit cuối cùng là "1" thì tam giác cuối trong dãy là tam giác nét đứt Quá trình rút trích dữ liệu cần có thông tin về chiều dài của dãy bit dữ liệu nhúng, hướng duyệt, lưới tam giác nguyên thủy. Quá trình có các bước sau: Bước 1: Duyệt trên lưới tam giác để tìm cạnh ban đầu e. Bước 2: Bắt đầu từ cạnh e, với thông tin về chiều dài, lưới tam giác gốc và lưới tam giác sau khi nhúng, duyệt theo chuỗi tam giác S và rút trích dữ liệu nhúng trong mỗi tam giác trong S. ------------------------------------------------ Kh oa C NT T - Ð H KH TN TP .H CM -72- CHƯƠNG 4 : CÁC THỬ NGHIỆM TRÊN STEGANOGRAPHY Chương 4 giới thiệu về lịch sử Steganography và các phần mềm ứng dụng đang phổ biến. Chương 4 cũng trình bày về phương pháp áp dụng các kỹ thuật Steganography trên ảnh tĩnh và mô hình ba chiều. Kh oa C NT T - Ð H KH TN TP .H CM -73- 4.1 Giới thiệu: Từ Steganography trong tiếng Hy Lạp là “ ,s t ega no V gr a f eiu- - ” có nghĩa là “covered writing” - chữ viết được che đậy. Nó bao gồm một số lượng lớn các phương pháp truyền thông mật, che dấu sự tồn tại của thông điệp. Hầu hết các phương pháp được sử dụng là mực vô hình, vi ảnh (microdot), sự sắp xếp các kí tự, chữ ký số, các kênh bao phủ và truyền thông dãy rộng. Theo Markus Kuhn :”Steganography là nghệ thuật và khoa học của việc truyền thông bằng phương pháp che dấu sự tồn tại của sự truyền thông đó”. Ngược lại với mật mã, trong khi mật mã có khả năng bị kẻ thù phát hiện, chặn đứng và thay đổi thông điệp. Mục đích của Steganography là ẩn thông điệp bên trong một thông điệp vô hại khác mà không cho phép kẻ thù phát hiện có một thông điệp thứ hai hiện diện trong thông điệp thứ nhất. Steganography và mã hóa là hai ứng dụng có cùng mục đích nhưng khác về phương pháp, kỹ thuật. Steganography có tầm quan trọng đặc biệt trong truyền thông mật nói chung và nghành tình báo nói riêng. Các kỹ thuật trong Steganography yêu cầu khắc khe về các yếu tố ảnh hưởng. Trong đó yếu tố vô hình và bảo mật là quan trọng nhất, tuy nhiên yếu tố số lượng dữ liệu có thể nhúng và tính bền vững cũng rất quan trọng. Thông thường người ta nghĩ rằng truyền thông có thể được bảo mật bằng cách mã hóa trên đường truyền, nhưng hiện nay mã hóa không còn thích hợp với thực tế nữa. Vấn đề bảo mật đường truyền tập trung vào các phương pháp che dấu thông điệp hơn là mã hóa chúng. Mặc dù các kỹ thuật mã hóa hiện đại bắt đầu phát triển vào trong suốt thời kỳ Phục Hưng, 1641 John Wilkins[2] vẫn sử Kh oa C NT T - Ð H KH TN TP .H CM -74- dụng kỹ thuật che dấu thông điệp hơn là kỹ thuật mật mã vì nó ít gây sự chú ý hơn. Vì thế nghiên cứu truyền thông mật bao gồm không chỉ mã hóa mà còn bảo mật đường truyền, nói cách khác là ẩn dữ liệu, ẩn thông tin. Ngành này bao gồm các kỹ thuật như phổ dãy rộng trên vô tuyến, được sử dụng trong các hệ thống quân sự mang tính chiến lược, được sử dụng trong điện thoại số để cung cấp cho người dùng các vùng bảo mật và trình mail nặc danh, che dấu người gửi. 4.2 Lịch sử phát triển: Những bản chép sớm nhất về Steganography được ghi lại bởi nhà sử học Hy Lạp Herodotus và sau đó truyền lại cho người Hy Lạp. Khi Bạo chúa Hy Lạp Histiaeus bị vua Darius bắt làm tù binh ở Susa vào thế kỷ thứ 5 trước Công Nguyên, ông ta phải gửi một thông điệp mật đến con rể là Aristagoras ở Miletus. Histiaeus đã cạo đầu một tên nô lệ và xâm một thông điệp vào da đầu của hắn. Khi tóc của tên nô lệ đã mọc đủ dài, hắn sẽ được phái đến Miletus. Một câu chuyện khác từ người Hy Lạp cổ cũng được Herodotus ghi lại. Một đoạn văn bản được viết trên những bản được phủ sáp ong. Demeratus, một người Hy Lạp, cần phải thông báo cho Sparta rằng Xerxé có ý định xâm lược Hy Lạp. Để tránh bị phát hiện, ông ta đập các bản sáp ong cho vỡ ra và viết thông điệp lên bản gỗ, sau đó lại phủ sáp ong lên. Các bản sau đó được chuyển đi mà không bị phát hiện. Mực vô hình luôn là một phương pháp phổ biến của Steganography. Người La Mã cổ đại thường sử dụng mực vô hình viết ở giữa hai dòng chữ. Mực vô hình thường được làm từ các chất như nước tiểu, nước trái cây và sữa. Khi Kh oa C NT T - Ð H KH TN TP .H CM -75- được đốt nóng, mực vô hình sẽ trở nên đen lại và dễ xem. Gần đây, mực vô hình cũng được sử dụng trong thế chiến thứ II. Một trong các nhà nghiên cứu về Steganography và mã hóa sớm nhất là Johannes Trithemius (1462-1526), một thầy tu người Đức. Đầu tiên ông nghiên cứu Steganography Steganographia, mô tả các hệ thống ma thuật và các lời tiên tri, nhưng cũng bao gồm một hệ thống mật mã phức tạp. Nó chỉ được công bố sau khi ông qua đời, vì Trithemius sợ sự phản tác dụng cho tác giả nếu nó được xuất bản (chúng ta biết rằng trong thời kỳ này sự thống trị của tôn giáo bao trùm tất cả). Quyển sách về Steganography ra đời sớm nhất dày 400 trang được viết bởi Gaspari Schotti vào năm 1665, có tên là Steganographica. Mặc dù tất cả các ý đều là của Trithemius, nhưng dẫu sao nó cũng là một sự bắt đầu cho một hướng phát triển mới. Steganography tiếp tục phát triển trong suốt thế kỷ 15 và 16. Vì nó thường gây ra sự tức giận, các tác giả thường giấu tên trong các quyển sách của mình. Bishop John Wilkins, sau đó là thạc sỹ của trường đại học Trinity, Cambridge, đã viết một luận án về Steganography. Ông phát minh ra một số các phân loại từ các thông điệp mã hóa trong âm nhạc, mô tả các nguyên lý của mật mã trên các lá thư liên tục và tranh cãi chống lại những ai phản đối việc phát hành các quyển sách trên lĩnh vực này. Một ví dụ thú vị về Steganography trong kỷ nguyên này là nhiều nhà thông thái đã nghi ngờ các lời văn trong các vở kịch của Shakespeare được quy cho là thuộc về Francis Bacon, một nhà văn chính khách thời nữ hoàng Elizabeth. Người ta phát hiện trong lời văn của các vở kịch có chứa các đoạn văn bản ẩn chứa tên của Bacon. Các mật mã, cùng với các thông tin thú vị về Kh oa C NT T - Ð H KH TN TP .H CM -76- Shakespeare và Bacon đã thuyết phục được tranh cãi này. Chi tiết về sự kiện này được Penn Leary đề cập trong quyển sách của ông: ”The Second Cryptographic Shakespeare”. Lĩnh vực này phát triển xa hơn vào 1883 với sự phát hành quyển “Cryptographie militaire” của Auguste Kerckhoffs. Mặc dù hầu hết chỉ đề cập đến mật mã nhưng nó cũng mô tả một số nguyên lý có giá trị khi thiết kế một hệ thống Steganography. Sau đó là “Les Filigranes” của Charle Briquet vào năm 1907, là một quyển về lịch sử của Watermarking. Nhưng trong suốt thế kỷ 20, Steganography mới thật sự được khai hoa. Một ví dụ trong thế kỷ này là trong suốt cuộc chiến tranh Boer ( cuộc chiến tranh của người Boer- người Phi gốc Âu, và người Anh năm 1899-1902). Lord Robert Baden-Powell, người sáng lập phong trào hướng đạo sinh, là một người trinh sát của nước Anh. Công việc của ông là đánh dấu các vị trí căn cứ pháo binh của người Boer. Để bảo đảm người Boer không nghi ngờ ông khi ông bị bắt, ông vẽ bản đồ lên các hoa văn trên cánh của các con bướm. Thế chiến thứ II đánh dấu một thời đại mạnh mẽ của các thí nghiệm trên Steganography. Vào đầu thế chiến, kỹ thuật Steganography hầu hết sử dụng mực vô hình. Sau đó, các mật mã trống (thông điệp không bị mã hóa) được sử dụng để ẩn các thông điệp mật. Mật mã trống thường xuất hiện như một thông điệp ngây thơ, vô tội, bình thường, sẽ không gây nghi ngờ, vì thế sẽ không bị chặn lại trong quá trình di chuyển. Ví dụ, một thông điệp sau đây được một tình báo người Đức gửi trong thế chiến thứ II: Kh oa C NT T - Ð H KH TN TP .H CM -77- “Apparently neutral’s protest is thoroughly discounted and ignored. Isman hard hit. Blockade issue affects pretext for embargo onby-products, ejecting suets and vegetable oils.” Giải mã thông điệp trên bằng cách lấy kí tự thứ hai ở mỗi từ: “ Pershing sails from NY june 1.” Sự sắp xếp trong văn bản cũng được dùng để ẩn thông tin. Thông điệp được đánh dấu và nhận dạng bằng cách thay đổi vị trí các hàng và các từ. Một số kỹ thuật sử dụng ruy băng của máy đánh chữ đục lỗ kim để đánh dấu kí tự được sử dụng. Với kỷ nguyên của máy tính, Steganography trở nên có giá trị phi thường. Sự bùng nổ của các kỹ thuật Steganography trên các đối tượng dữ liệu số đã hiện diện trong những năm gần đây. 4.3 Các phần mềm ứng dụng: Hiện nay, các phần mềm Steganography còn mới và khá hiệu quả. Những phần mềm này cho phép thông tin được ẩn trong hình ảnh, âm thanh và các phương tiện truyền thông. Trong máy tính, một ảnh là một dãy các con số mô tả độ sáng của các điểm trong ảnh. Một ảnh thông thường có kích thước 640 480× , 256 màu (8 bit/pixel) có thể chứa khoảng 300 Kbit dữ liệu. Một thông điệp có thể là văn bản, văn bản mật mã, hoặc là một ảnh khác hoặc bất cứ thứ gì có thể nhúng được vào các ảnh. Ví dụ: giả sử chúng ta có một ảnh 24 bit màu có kích thước 1024 768× (đây là độ phân giải thông thường cho các ảnh vệ tinh, ảnh thiên thể và các ảnh cần có độ phân giải cao). Ảnh này có kích thước lên đến trên 2Mb (1024x768x24/8=2,359,296 byte). Tất cả các màu đều là sự tổ hợp từ ba màu Kh oa C NT T - Ð H KH TN TP .H CM -78- chính Red, Green, Blue. Mỗi màu chính được lưu bằng 1 byte, 24 bit sử dụng 3 byte cho 1 pixel. Nếu thông tin được nhúng trong các bit thấp nhất LSB của mỗi byte, thì mỗi pixel được 3 bit. Tuy nhiên, ảnh 24 bit màu không được sử dụng rộng rãi. Kích thước của chúng quá lớn để truyền trên mạng. Các ảnh thường được nén lại, nhưng với các kỹ thuật nén mất dữ liệu thì thông tin ẩn trong LSB sẽ bị mất hết. Nhiều gói phần mềm Steganography đã được khảo sát. Quá trình khảo sát để xác định sự giới hạn và tính linh động của các phần mềm Steganography. Sau đây là các phần mềm Steganography đang phổ biến: 4.3.1 Hide and Seek: Hide and Seek phiên bản 4.1 và 5.0 của Colin Maroney có những giới hạn trong kích thước ảnh, kích thước thích hợp tương đương 320 480× . Trong phiên bản 4.1, nếu ảnh nhúng kích thước tối thiểu, thì ảnh chứa bị lấp với các khoảng đen. Nếu ảnh nhúng lớn hơn, ảnh chứa bị xén cho vừa kích thước. Trong phiên bản 5.0, vấn đề trên cũng xảy ra với ảnh nhúng nhỏ hơn. Nếu bất kỳ ảnh nhúng nào có kích thước vượt quá 1024 768× , một thông điệp báo lỗi sẽ trả về. Hide and Seek 4.1 là phần mềm miễn phí, chạy trên DOS, nhúng dữ liệu vào ảnh GIF, với mã nguồn mở. Hide and Seek sử dụng LSB của mỗi pixel để mã hóa kí tự, 8 pixel cho một kí tự. Với một thông điệp có kích thước càng lớn thì ảnh chứa càng bị suy biến nhiều hơn. Vì dữ liệu bị phân tán ngẫu nhiên và header của file ảnh cũng bị mã hóa nên không thể nói rằng đây là một file được nhúng dữ liệu một cách hoàn chỉnh. Kh oa C NT T - Ð H KH TN TP .H CM -79- 4.3.2 StegoDos: StegoDos cũng được biết dưới tên Black Wolf’s Picture Encoder phiên bản 0.90a. Là một phần mềm của hãng Black Wolf. Phần mềm này cũng chạy trên DOS, nó chỉ làm việc với các ảnh có kích thước 320x200, 256 màu. 4.3.3 White Noise Storm: Được viết bới Ray Arachelian, là một ứng dụng linh hoạt chạy trên DOS. 4.3.4 S-Tools: Là chương trình chạy trên Win 3.0, của Andy Brown, là công cụ Steganography linh hoạt nhất. Nó bao gồm vài chương trình ứng dụng trên ảnh GIF và BMP, trên file WAV, ngay cả ẩn thông tin vào các vùng không sử dụng trong đĩa mềm. S-Tools sử dụng phương pháp LSB cho cả trên ảnh và trên file âm thanh. 4.3.5 Jpeg-Jsteg v4: Là phần mềm áp dụng cho các file ảnh nén mất dữ liệu. Nhúng dữ liệu vào giữa hai giai đoạn nén bảo toàn dữ liệu và nén mất dữ liệu. 4.4 Lý do đề tài chọn ứng dụng Steganography là các thử nghiệm trên các kỹ thuật ẩn dữ liệu: Truyền thông mật là một ứng dụng hấp dẫn, có một lịch sử phát triển thú vị. So với Watermarking thì Steganography có các yêu cầu về các yếu tố ảnh hưởng cao hơn. Do đó, việc thử nghiệm các kỹ thuật ẩn dữ liệu trong ứng dụng Steganography sẽ thể hiện đầy đủ các mức độ ảnh hưởng của các yếu tố lên kỹ Kh oa C NT T - Ð H KH TN TP .H CM -80- thuật ẩn dữ liệu. Ngoài ra Steganography còn là một hướng phát triển mạnh mẽ, đã, đang và sẽ tiếp tục được quan tâm trong tương lai. 4.5 Steganography trên ảnh tĩnh: Tôi xây dựng một thử nghiệm Steganography trên ảnh tĩnh với ba định dạng ảnh: BMP, PCX và TIFF 2 màu, 256 màu, ảnh xám và 16 triệu màu. Các giải thuật sử dụng là hai giải thuật của Yu –Yuan Chen , Hsiang – Kuang Pan và Yu – Chee Tseng, nhúng dữ liệu vào các bit thấp nhất của ảnh. Giải thuật này đáp ứng phần lớn các yêu cầu của Steganography: ™ Số lượng dữ liệu nhúng cao. ™ Sự biến đổi trên ảnh chứa và ảnh nguyên thuỷ không nhiều, sự thay đổi này khó nhận thấy được bằng mắt. ™ Nếu không có tất cả các tham số nhúng thì thao tác giải mã cực khó. Điều này làm tính bảo mật của dữ liệu tăng cao. ™ Tuy nhiên, vì hai giải thuật này sử dụng các bit thấp nhất trong ảnh để chứa dữ liệu nhúng nên tính bền vững rất thấp. 4.5.1 Phát biểu bài toán: ™ Dữ liệu nhúng có thể bị mất đi sau khi ảnh chứa được lưu lại với định dạng khác. ™ Số bit sử dụng để lưu một pixel có ba dạng 1 bit, 8 bit và 24 bit, thế thì phương án nào để sử dụng thuật giải LSB trên ba dạng? ™ Nếu ảnh chứa là ảnh 8 bit màu hay 24 bit màu thì sự vô hình cao, mắt người khó có thể nhận biết được sự khác biệt giữa ảnh chứa và ảnh gốc (một pixel có chứa dữ liệu nhúng chỉ thay đổi trên giá trị màu ±1/256 đối với 8 bit màu và ±8/16 triệu đối với 24 bit màu). Nhưng nếu ảnh 1 bit màu (ảnh đen trắng) Kh oa C NT T - Ð H KH TN TP .H CM -81- thì sự khác biệt giữa ảnh chứa và ảnh gốc rất dễ nhận ra, làm thế nào để tăng khả năng vô hình của dữ liệu? 4.5.2 Phương án giải quyết: Dữ liệu nhúng chỉ được nhúng vào dữ liệu thật sự của ảnh không nhúng vào phần header, như thế sau khi lưu lại ảnh chứa với các định dạng khác thì dữ liệu nhúng vẫn được giữ nguyên. Đối với ảnh 8 bit màu, từ ảnh gốc tạo một mảng hai chiều F m n´ , mỗi phần tử trong mảng có giá trị 0 hoặc 1, đó là bit thấp nhất của mỗi pixel. Đối với ảnh 24 bit màu, mảng hai chiều F có kích thước 3m n´ , trong đó mỗi pixel tách được 3 bit LSB. Trong phạm vi một chương trình thử nghiệm, ma trận K trong thuật giải LSB1bit (gọi tắt của thuật giải nhúng 1 bit dữ liệu vào một khối các bit LSB) và LSB2bit (gọi tắt của thuật giải nhúng nhiều bit dữ liệu vào một khối các bit LSB) được chọn có giá trị xen kẽ 0 và 1. Ví dụ một ma trận K 5 5´ có giá trị như hình sau: Hình 24. Ma trận K 5x5 trong thuật giải LSB1bit và LSB2bit Ma trận trọng lượng W trong thuật giải LSB2bit sẽ có giá trị theo thứ tự từ 1 đến rw=2 1- như sau: Kh oa C NT T - Ð H KH TN TP .H CM -82- Hình 25. Ma trận W 5x5 trong thuật giải LSB2bit với r=3 Dữ liệu nhúng được chèn thêm một header ở đầu, header này chứa dấu hiệu ảnh có chứa dữ liệu nhúng. Việc sử dụng thêm header làm tăng tốc độ rút trích. Header có cấu trúc như sau: Header của LSB1bit: kích thước 6 byte ™ 4 byte định danh: “TEXT”. ™ 2 byte chứa kích thước thật sự của dữ liệu nhúng. Byte thứ năm có giá trị byte cao, byte thứ sáu là byte thấp của chiều dài dữ liệu nhúng. Header của LSB2bit: kích thước không cố định, tùy thuộc vào kích thước khối iF . ™ 4 byte định danh: “TEXT”. ™ 2 byte chứa kích thước thật sự của dữ liệu nhúng. Byte thứ năm có giá trị byte cao, byte thứ sáu là byte thấp của chiều dài dữ liệu nhúng ™ 1 byte có giá trị là số byte thêm vào header. ™ Các byte sau có giá trị 0. Chiều dài header phải là bội số của r. 4.6 Steganography trên mô hình ba chiều: 4.6.1 Phương pháp áp dụng thuật giải TSQ: Thuật giải TSQ nhúng dữ liệu vào tỉ số đường cao và cạnh đáy trong tam giác. Chương trình chỉ áp dụng nhúng một thông điệp gồm các ký tự vào mô hình lưới tam giác. Kh oa C NT T - Ð H KH TN TP .H CM -83- 4.6.1.1 Phát biểu bài toán: ™ Với cấu trúc một MEP (hình 18), việc nhúng một ký hiệu vào một tam giác sẽ làm ảnh hưởng đến các đỉnh của các tam giác khác, như thế có thể làm thay đổi giá trị đỉnh của các tam giác đã được nhúng dữ liệu và thế là dữ liệu nhúng trong tam giác bị mất. ™ Làm thế nào để nhúng một ký tự vào một tam giác dựa vào tỉ số đồng dạng? ™ Sự thay đổi trên các tỉ số có thể gây ra sự biến đổi lớn trên giá trị ba đỉnh của tam giác, đặc biệt là trong trường hợp các cạnh có độ dài lớn. ™ Giá trị đỉnh được lưu dạng số thực, sai số trong các phép tính toán có thể làm quá trình rút trích dữ liệu không chính xác. 4.6.1.2 Phương án giải quyết: Quá trình nhúng dữ liệu vào một MEP gồm bốn thao tác nhúng dữ liệu vào bốn tam giác. Phương pháp sau đây sẽ lần lượt nhúng dữ liệu vào bốn tam giác mà không làm thay đổi dữ liệu nhúng trong các tam giác khác: trước tiên tam giác Mark được nhúng một ký hiệu nhận biết, như thế ba đỉnh v1, v2, v4 đã bị thay đổi giá trị, sau đó nhúng một chỉ số vào Subscript sao cho chỉ có giá trị đỉnh v0 bị thay đổi, cuối cùng nhúng hai ký tự vào hai tam giác Data1 và Data2 sao cho chỉ có giá trị hai đỉnh v3 và v5, tương ứng, bị thay đổi. Phương pháp nhúng theo thứ tự như trên sẽ không làm tam giác Mark thay đổi các giá trị đỉnh. Với mỗi tam giác, việc nhúng một ký tự vào tam giác sẽ dựa trên sự thay đổi của tỉ số giữa đường cao và cạnh đáy của tam giác đó. Tùy vào ký tự được nhúng mà tỉ số sẽ được thay đổi phù hợp. Tuy nhiên xét trên nhiều lưới tam giác, tỉ số giữa đường cao và cạnh đáy của tam giác thường trong khoảng Kh oa C NT T - Ð H KH TN TP .H CM -84- 0.05 30.00h a ≤ ≤ . Với một ký tự có giá trị từ 1 đến 255 thì ký tự sẽ được nhúng như thế nào? và sự thay đổi tỉ số h a có thể gây ra sự biến dạng lớn trên tam giác đặc biệt là trong trường hợp a lớn (tỉ số h a nhỏ). Tuy nhiên, nếu tỉ số h a được thay đổi một lượng quá nhỏ thì dữ liệu nhúng có thể bị sai bởi các sai số trong phép tính trên số thực. 4.6.1.2.1 Phương pháp nhúng ký tự vào tỉ số h a : Để nhúng một ký hiệu có giá trị từ 0 đến 255 vào một số trong khoảng (0.05 , 30.00), tôi đề nghị một phương pháp chèn dãy bit của ký hiệu vào một số lớn, số này là tích của tỉ số h a với một tham số c. Các tham số nhúng: Gọi: hk a = là tỉ số đường cao và cạnh đáy của tam giác gốc. hk a ′ = là tỉ số đường cao và cạnh đáy của tam giác sau khi đã nhúng dữ liệu. k k k′= − . kt: ký tự, giá trị cần nhúng. c: tham số nhúng. d: vị trí bit sẽ được chèn. b: chiều dài chuỗi nhị phân biễu diễn kt. .N c k= . n: chiều dài chuỗi nhị phân biễu diễn N. Kh oa C NT T - Ð H KH TN TP .H CM -85- Nguyên lý: Nhân giá trị tỉ số k với một lượng c: .N c k= . Chèn kt vào N bằng cách thay thế một đoạn bit chiều dài b của N bằng đoạn bit của kt, tại một vị trí d. Kết quả là một số N ′ đã được nhúng dữ liệu. Tính kết quả tỉ số sau khi nhúng: Nk c ′′ = . Như vậy lượng tỉ số tăng lên là k k k′= − , k N N¢= - và k có thể âm hoặc dương. Như vậy khi thay đổi tọa độ đỉnh trong tam giác theo k′ ta sẽ có một tam giác đã được nhúng dữ liệu. Ví dụ: chèn đoạn bit kt=0111 vào N với n=32, d=16, b=4. N n=32 d=16 162024 1 0 0 0 1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 b N’ b=8 kt=0111 (a) (b) Hình 26. Ví dụ vềmột thao tác chèn bit Tham số c: tham số c được sử dụng thường có giá trị lớn trong khoảng 2.107 đến 2.108. Nếu c quá lớn thì sai số trong phép tính sẽ làm mất dữ liệu nhúng, nếu c quá nhỏ thì k lớn, như thế sẽ làm tam giác bị biến dạng nhiều. Theo thực nghiệm trên nhiều mô hình, 82.10c » là tốt, lượng k trung bình khoảng 0.0015, lượng thay đổi như thế này có thể chấp nhận được và không bị sai số nhiều. Phần thực nghiệm của thuật giải chọn c=2.108, b=8, n=32, tham số d được người sử dụng tùy chọn. Tỉ số h a được giới hạn trong khoảng (0.3 ,10.0), Kh oa C NT T - Ð H KH TN TP .H CM -86- nếu tỉ số vượt khỏi giới hạn thì tam giác đó không được nhúng dữ liệu và cả MEP cũng không nhúng dữ liệu. 4.6.1.2.2 Phương pháp biến đổi tọa độ ba đỉnh trong tam giác theo một lượng k cho trước: Như ta đã đề cập ở trên, k k k′= − là lượng thay đổi của tỉ số đường cao và cạnh đáy trước và sau khi chèn bit. Tam giác phải bị thay đổi trên các đỉnh sao cho tỉ số giữa đường cao và cạnh đáy là k′ . Sự tính lại ba đỉnh tam giác dựa trên nhiều phương trình toán học sẽ phức tạp và gây ra các sai số lớn. Tôi thử nghiệm một phương pháp biến đổi tọa độ ba đỉnh bằng cách chuyển các đỉnh về không gian hai chiều: Đối với tam giác Mark: Thay đổi tỉ số hk a = thành hk a ′′ = : chỉ thay đổi chiều dài đường cao và giữ nguyên cạnh đáy. h h k a a ′ = + (4.1) ⇔ .h h a k′ = + Đặt: h h h′= − (4.2) Như vậy h tăng thêm một lượng .h a k= . Xét một tam giác trong không gian hai chiều có cạnh đáy a song song ox, chiều cao h song song oy: Khi h thay đổi một lượng h , để tọa độ 3 đỉnh tam giác ít bị biến dạng nhất, ta hạ đoạn BC xuống 2 h và nâng A lên 2 h nếu h dương và ngược lại nếu h âm . Kh oa C NT T - Ð H KH TN TP .H CM -87- Tuy nhiên, lượng h phải rất nhỏ để tam giác ít bị biến đổi. Nếu a lớn thì h lớn. h phải nhỏ hơn một ngưỡng cho trước: h t≤ (4.3) Ngưỡng t này sẽ hạn chế việc chọn lựa các tam giác cho các MEP, nó cũng định hướng cho việc chọn đường cao và cạnh đáy thích hợp. Giả sử tam giác trên có h phù hợp với ngưỡng t (thoả (4.3)). A C h O Ox Oy a h B Hình 27. Tam giác trong không gian hai chiều Kh oa C NT T - Ð H KH TN TP .H CM -88- Hình 28. Biến đổi trên tam giác Mark Ta thấy BC//ox, // oxB C′ ′ và 2 ′ ′  = = ′ = B B C C x x x x hHH Như vậy: 2 2 ′ ′  = − = − B B C C hy y hy y Tọa độ ,B C′ ′ đã được xác định. h có thể dương hay âm. Nếu 0h > : chiều cao h tăng, nếu 0h < : chiều cao h giảm. Kh oa C NT T - Ð H KH TN TP .H CM -89- Tương tự cho A′ : 2 ′ ′ = = + A A A A x x hy y Đối với 3 tam giác còn lại: Do tính chất 3 tam giác này mỗi tam giác có một cạnh chung với M. Nên việc thay đổi độ dài đường cao trong mỗi tam giác phải không được làm thay đổi vị trí cạnh chung với tam giác M. Như vậy, trong mỗi tam giác chỉ có một đỉnh đối diện cạnh đáy bị thay đổi tọa độ. Thực hiện tương tự như đối với tam giác M, nhưng chỉ thay đổi tọa độ đỉnh đối diện cạnh đáy. A B C h O Ox Oy a h A’ Hình 29. Biến đổi trên tam giác Subscript, Data1 và Data2 Như vậy : ′ ′ = = + A A A A x x y y h Kh oa C NT T - Ð H KH TN TP .H CM -90- Trong không gian hai chiều, một tam giác có chiều cao song song oy, cạnh đáy song song ox thì việc xác định , ,A B C′ ′ ′ là cực kỳ đơn giản. Nhưng trong không gian ba chiều, chiều cao không song song oy, cạnh đáy không song song ox thì việc xác định toạ độ 3 đỉnh trở nên phức tạp hơn. Phương pháp biến đổi tọa độ ba đỉnh: Tam giác ABC trong hình là một tam giác trong không gian ba chiều với gốc tọa độ O(0,0,0). Quay tam giác ABC một góc sao cho nó nằm hoàn toàn trong mặt phẳng oxy. Sau đó quay tam giác ABC sao cho cạnh đáy song song ox. Như vậy, bài toán tìm tọa độ ba đỉnh tam giác trong không gian ba chiều trở thành bài toán tìm tọa độ trong không gian hai chiều cực kỳ dễ. Sau khi đã xác định được các tọa độ mới, ta biến đổi tam giác mới với các phép biến đổi ngược với các phép biến đổi trên. Các góc quay được xác định dựa trên các vectơ pháp tuyến của mặt phẳng (ABC) và vectơ chỉ phương của các đường thẳng. Vì .h a k= , h phụ thuộc vào a, nếu a quá lớn thì sự biến đổi trên tam giác lớn, nếu a quá nhỏ thì sự biến đổi trên tỉ số sẽ bị các sai số trong phép tính trên số thực. Phần thực nghiệm chọn một ngưỡng trên tam giác: 0.03 10.00h a £ £ . Tam giác chỉ được chọn để sử dụng nếu tỉ số h a thoả điều kiện trên. Sai số trong tính toán: các phép tính toán trên số thực, đỉnh tam giác lưu dạng số thực nên sai số trong quá trình tính toán thường xảy ra. Mỗi kí tự chỉ cách một kí tự khác cạnh nó một đơn vị, nên một sự sai số nhỏ cũng có thể dẫn đến một thông điệp sai sau quá trình rút trích dữ liệu. Để khắc phục điều này, sau Kh oa C NT T - Ð H KH TN TP .H CM -91- mỗi thao tác nhúng vào một MEP, chương trình sẽ kiểm tra lại, rút trích lại dữ liệu đã nhúng vào MEP, nếu có sai sót thì MEP được nhúng dữ liệu lại với sự điều chỉnh thích hợp. 4.6.2 Phương pháp áp dụng thuật giải TVR: 4.6.2.1 Phát biểu bài toán: Một mô hình lưới tam giác không phải là một đồ thị liên thông, mô hình gồm nhiều thành phần liên thông, như vậy cây mở rộng chỉ duyệt trên một trong số các thành phần liên thông mà thôi. Quá trình rút trích dữ liệu sẽ tốn nhiều thời gian vì phép thử và sai, nhất là đối với các lưới tam giác lớn khoảng vài chục ngàn tam giác. Thuật giải TVR nhúng dữ liệu dựa vào tỉ số thể tích của hai tứ diện. Tương tự như các vấn đề trong thuật giải TSQ, TVR cũng có các vấn đề liên quan đến sai số và cách thức nhúng một kí tự có giá trị trong đoạn [1,255] vào một số thực trong khoảng (0.03,20.00). 4.6.2.2 Phương án giải quyết: Với lưới đa giác gồm nhiều thành phần liên thông, chương trình sẽ nhúng dữ liệu trên từng thành phần liên thông. Thực hiện tuần tự thuật giải TVR trên mỗi thành phần liên thông cho đến khi dữ liệu đã được nhúng xong. Do thời gian rút trích bằng phép thử và sai quá lớn, tôi kết hợp hai thuật giải TSQ và TVR. Sử dụng TSQ nhúng một dấu hiệu nhận biết vào tam giác chứa cạnh ban đầu e, quá trình rút trích dữ liệu chỉ duyệt tìm tam giác có chứa dấu hiệu này. Như vậy phạm vi tìm kiếm được rút ngắn lại trong 3 cạnh của tam giác chứa dấu hiệu. Kh oa C NT T - Ð H KH TN TP .H CM -92- Kí tự được nhúng vào tỉ số thể tích theo phương pháp chèn bit đã được sử dụng trong TSQ. c cũng được chọn là 2.108, b=8, n=32. Sự biến đổi tỉ số thể tích hai tứ diện sẽ chỉ thay đổi trên tam giác đáy, đường cao tứ diện vẫn giữ nguyên. Tam giác đáy phải bị biến đổi sao cho tam giác sau khi biến đổi và tam giác gốc thuộc cùng một mặt phẳng và như thế đường cao tứ diện mới được giữ nguyên. Tam giác đáy cũng được chuyển về không gian hai chiều và biến đổi tương tự như trong TSQ, sau khi tam giác đáy đã bị biến đổi, tam giác đáy sẽ được chuyển về không gian hai chiều bằng các phép biến đổi ngược. Biến đổi tọa độ đỉnh: Ta có thể tích tứ diện: 1 . 3 V B H= . Tỉ số thể tích : t m Vk V = . (4.4) Tỉ số k được biến đổi một lượng k thành k¢, nhưng thể tích tứ diện mẫu số không được thay đổi. Do đó: t m Vk V ¢¢= (4.5) Ta có: k k k¢= - . (4.6) hay t t m m V Vk V V ¢ = - Û . m t tk V V V¢= - (4.7) Kh oa C NT T - Ð H KH TN TP .H CM -93- Trong đó k đã được biết qua thao tác chèn bit k N N¢= - . Chương trình thực hiện biến đổi tứ diện tV dựa trên sự thay đổi diện tích của tam giác đáy trong khi đường cao tứ diện vẫn giữ nguyên. (4.7) Û 1. ( ) 3m t t k V H B B¢= - Thay đổi diện tích tam giác đáy bằng cách chỉ thay đổi chiều cao tam giác theo phương pháp đã được đề cập trong thuật giải TSQ. Û 1. . ( ) 6m t t k V H a h h¢= - Û 1. . . 6m k V H a h= Þ 6. . . mk Vh a H = (4.8) Quá trình biến đổi tứ diện theo tỉ số thể tích được mô tả như hình sau: D A’ B’ C’ HA B C D H B C A’ B’ C’ h a A h' O Ox Oy Hình 30. Quá trình biến đổi một tứ diện Kh oa C NT T - Ð H KH TN TP .H CM -94- 4.7 Hướng dẫn sử dụng chương trình: Chương trình được chia thành hai phần: thử nghiệm trên ảnh tĩnh và trên mô hình ba chiều. Giao diện của chương trình trong thử nghiệm ảnh tĩnh: Hình 31. Giao diện ảnh tĩnh Các thành phần của giao diện: Giao diện này đang ở trạng thái thử nghiệm trên ảnh tĩnh. Hai màn hình chứa ảnh: khi mở một ảnh màn hình bên trái sẽ trình bày ảnh. Màn hình bên phải chứa ảnh sau khi được nhúng dữ liệu. Giao diện thử nghiệm trên mô hình 3D: Kh oa C NT T - Ð H KH TN TP .H CM -95- Hình 32. Giao diện 3D Hộp thoại bên dưới gồm các tùy chọn: ™ Combo box Thao tác: chọn thao tác nhúng dữ liệu hay rút trích dữ liệu. Thao tác nhúng dữ liệu chỉ đi cùng với màn hình thực thi là màn hình trái. ™ Combo box Màn hình: chọn màn hình thực thi. ™ Combo box thuật giải: chọn thuật giải thực hiện. Khi người dùng click vào mục chọn, ứng với từng thuật giải là các hộp thoại nhập tham số tương ứng. Trên ảnh tĩnh có hai thuật giải, các hộp thoại của chúng như sau: Kh oa C NT T - Ð H KH TN TP .H CM -96- Hình 33. Hộp thoại tham số của thuật giải LSB1bit Trong hộp thoại tham số của thuật giải LSB1bit, kích thước khối là kích thước của mỗi khối con trong ảnh, mỗi khối sẽ được nhúng một bit. Hình 34. Hộp thoại tham số của thuật giải LSB2bit Trong hộp thoại tham số của thuật giải LSB2bit, kích thước khối là kích thước của mỗi khối con trong ảnh, mỗi khối sẽ được nhúng một bit, tham số thứ hai là số bit được nhúng trong mỗi khối. ™ Edit Thông điệp: nhập thông điệp nhúng. Kh oa C NT T - Ð H KH TN TP .H CM -97- ™ Button Phân tích: phân tích đối tượng nhúng (ảnh, mô hình 3D) với các tham số của từng thuật giải để rút ra thông tin về số lượng dữ liệu nhúng tối đa và tỉ lệ nhúng. ™ Button Thực thi: thực thi thao tác nhúng hay rút trích dữ liệu dựa trên thuật giải được chọn cùng với các tham số của nó. ™ Button Thông tin: thông tin của các thao tác vừa thực hiện. Hình 35 và 37 là hộp thoại thông tin của thao tác nhúng dữ liệu của ảnh và mô hình 3D, hình 36 là hộp thoại thông tin của quá trình rút trích dữ liệu. Hình 35. Hộp thoại thông tin của thao tác nhúng dữ liệu trên ảnh ™ Lượng dữ liệu được nhúng: số lượng thật sự của dữ liệu được nhúng. ™ Thời gian chạy: thời gian chạy thuật giải. ™ Sự suy thoái của ảnh chứa so với ảnh gốc: tỉ lệ phần trăm sự khác biệt giữa hai ảnh. Kh oa C NT T - Ð H KH TN TP .H CM -98- ™ Chất lượng ảnh chứa so với ảnh gốc: đối với ảnh xám, giá trị này trên 30 là đã được xem là ảnh chấp nhận được, giá trị chất lượng trên 50 được xem là khá hoàn hảo. Hình 36. Hộp thoại thông tin của thao tác rút trích dữ liệu Hộp thoại thông tin của thao tác rút trích bao gồm chiều dài dữ liệu nhúng và thời gian rút trích dữ liệu. Hình 37. Hộp thoại thông tin nhúng trên mô hình 3D Hộp thoại thông tin nhúng của mô hình 3D gồm các thông tin: số lượng dữ liệu được nhúng, thời gian nhúng. Tỉ lệ biến dạng trên các tam giác là tỉ lệ số Kh oa C NT T - Ð H KH TN TP .H CM -99- lượng các tam giác bị biến đổi so với số lượng tam giác trong mô hình, tương tự cho tỉ lệ biến dạng trên các đỉnh. Menu: Menu có các mục chính là các thao tác biến đổi hình học trên mô hình 3D bao gồm: tịnh tiến, quay, biến đổi tỉ lệ đồng nhất. Ngoài ra còn có mục chọn xem thông tin của ảnh hay mô hình 3D: Hộp thoại thông tin về ảnh tĩnh: Hình 38. Hộp thoại thông tin về ảnh Kh oa C NT T - Ð H KH TN TP .H CM -100- Hộp thoại thông tin về mô hình 3D: Hình 39. Hộp thoại thông tin về mô hình 3D ------------------------------------------------ Kh oa C NT T - Ð H KH TN TP .H CM -101- CHƯƠNG 5 : KẾT QUẢ THỰC NGHIỆM VÀ HƯỚNG PHÁT TRIỂN Chương 5 trình bày các kết quả thử nghiệm trên ảnh tĩnh và mô hình 3D. Phần cuối chương 5 đưa ra các đánh giá và hướng phát triển, phương pháp cải thiện chương trình. Kh oa C NT T - Ð H KH TN TP .H CM -102- 5.1 Kết quả thực nghiệm: 5.1.1 Kết quả thực nghiệm trên ảnh tĩnh: Ký hiệu sử dụng trong bảng: LSB1bit(4): thuật giải LSB1bit, kích thước khối là 4 4´ . LSB2bit(13,5): thuật giải LSB2bit, kích thước khối là 13 13´ , mỗi khối nhúng 5 bit dữ liệu. M: số lượng dữ liệu tối đa được nhúng trên ảnh. L: chiều dài thông điệp thực sự được nhúng. D: mức độ biến dạng của ảnh chứa so với ảnh gốc. Q: chất lượng của ảnh chứa. Tn: thời gian nhúng (millisecond). Tr: thời gian rút trích (millisecond). Ảnh ImageTest1.bmp: 1 bit màu, kích thước 1728 2339´ : Thông điệp: “Windows 95: The default precision of the timeGetTime function is 1 millisecond. In other words, the timeGetTime function can return successive values that differ by just 1 millisecond. This is true no matter what calls have been made to the timeBeginPeriod and timeEndPeriod functions.” Thuật toán M L D Q Tn Tr LSB1Bit(4) 31536 292 0.0936 20.3296 200 110 LSB2bit(4,3) 94608 292 0.0759 22.3998 170 70 Kh oa C NT T - Ð H KH TN TP .H CM -103- Ảnh ImageTest2.bmp: 1 bit màu, kích thước 437 256´ : Thông điệp 1: “data hiding” Thuật toán M L D Q Tn Tr LSB1Bit(4) 872 11 0.1417 16.9731 10 1 Thông điệp 2: “steganography and data hiding” Thuật toán M L D Q Tn Tr LSB2Bit(4,3) 2616 29 0.1415 16.9867 10 1 LSB2bit(7,3) 872 29 0.1615 15.836 20 10 Thông điệp3: “Specifies the message to be sent” Thuật toán M L D Q Tn Tr LSB2Bit(10,4) 391 29 0.1644 15.68 40 10 LSB2bit(7,3) 872 29 0.1615 15.836 20 10 Ảnh ImageTest3.bmp: 8 bit màu, kích thước 320 240´ Thông điệp1: Kh oa C NT T - Ð H KH TN TP .H CM -104- Thuật toán M L D Q Tn Tr LSB1Bit(7) 191 53 0.0554 73.2553 10 10 Thông điệp2: “If an application attempts to draw within a locked window” Thuật toán M L D Q Tn Tr LSB2Bit(10,3) 288 57 0.0377 96.610 81 43 Ảnh ImageTest4.bmp: 8 bit màu, kích thước 700 719´ Thông điệp1: “frmForm1.lstMyList.RowSourceType = 0 frmForm1.lstMyList.AddItem("First Item") frmForm1.lstMyList.AddItem("Second Item")” Thuật toán M L D Q Tn Tr LSB1Bit(6) 1725 123 0.0325 77.8981 120 90 LSB2bit(15,5) 1351 292 0.0234 80.74 381 50 Thông điệp2: “If an application attempts to draw within a locked window, the system records the extent of the attempted operation in a bounding rectangle. When the window is unlocked, the system Kh oa C NT T - Ð H KH TN TP .H CM -105- invalidates the area within this bounding rectangle, forcing an eventual WM_PAINT message to be sent to the previously locked window and its child windows. If no drawing has occurred while the window updates were locked, no area is invalidated.” Thuật toán M L D Q Tn Tr LSB2Bit(10,3) 1863 425 0.0448 75.0973 521 50 Ảnh ImageTest5.tif: 24 bit màu, kích thước 200 248´ Thông điệp1: “An explicit ORDER BY clause for a SELECT statement is required to ensure any useful ordering of data. In addition, the exact results depend upon the collation being used.” Thuật toán M L D Q Tn Tr LSB1Bit(4) 1162 171 0.1212 71.2296 20 10 Thông điệp2: “The backward compatibility objects are used to gain access to site configuration values, to create and retrieve shopper IDs” Thuật toán M L D Q Tn Tr LSB1Bit(11) 148 127 0.1024 72.6968 301 30 Kh oa C NT T - Ð H KH TN TP .H CM -106- Thông điệp3: ” Removed; no longer supported. Remove all references to free buffers.” Thuật toán M L D Q Tn Tr LSB2Bit(6,3) 1573 68 0.0606 77.2561 40 10 Ảnh ImageTest6.bmp:8 bit màu, kích thước 320 200´ . Thông điệp1: “A locked window cannot be moved.” Thuật toán M L D Q Tn Tr LSB1Bit(7) 157 32 0.0491 74.3174 10 2 LSB1bit(10) 80 54 0.0635 72.0764 10 1 Thông điệp2: “CWnd* pDSC = GetDlgItem(IDC_REMOTEDATACONTROL); CWnd* pList= GetDlgItem(IDC_DBLISTBOX); pList.BindProperty(0x9, pDSC);” Thuật toán M L D Q Tn Tr LSB2Bit(7,4) 630 128 0.0635 72.0764 80 10 Thông điệp3: Kh oa C NT T - Ð H KH TN TP .H CM -107- “In the MFC framework, when the user closes the frame window, the window’s defaultOnClose handler callsDestroyWindow.” Thuật toán M L D Q Tn Tr LSB2Bit(11,6) 391 116 0.0546 73.3823 160 1 Ảnh ImageTest7.bmp: 24 bit màu, kích thước 400 300´ . Thông điệp: “With the Simple Recovery model, the database can be recovered to the point of the last backup. However, you cannot restore the database to the point of failure or to a specific point in time. To do that, choose either the Full Recovery or Bulk-Logged Recovery model.” Thuật toán M L D Q Tn Tr LSB1Bit(5) 1800 266 0.0972 73.1515 80 60 LSB2Bit(7,4) 3591 266 0.0664 76.4615 161 40 5.1.2 Kết quả thực nghiệm trên mô hình ba chiều: Ký hiệu: Dt: tỉ lệ biến dạng trên tam giác trong mô hình sau khi nhúng. Dv: tỉ lệ biến dạng trên đỉnh trong mô hình sau khi nhúng. Thuật giải TSQ: Mô hình ba chiều con mèo cat.ms3d: số lượng tam giác 538, số lượng đỉnh 248. c=2.108. Kh oa C NT T - Ð H KH TN TP .H CM -108- Thông điệp: “If differential backups exist”. d Dt Dv 14 50 30 16 40 30 18 40 30 Bảng 5. Thời gian nhúng và rút trích trong thuật toán TSQ trên mô hình con mèo Dữ liệu nhúng tối đa là 58 byte đạt tỉ lệ 0.108 byte/tam giác, với tỉ lệ biến dạng trên tam giác 21.56 và tỉ lệ biến dạng trên đỉnh 70.16. Hình 40 mô tả ba thử nghiệm trên mô hình cat.ms3d. Kh oa C NT T - Ð H KH TN TP .H CM -109- (a) Moâ hình goác (b) d=14 (c) d=16 (d) d=18 Hình 40. Thử nghiệm thuật giải TSQ trên mô hình con mèo với sự thay đổi trên d Mô hình con chó dog.ms3d: số lượng tam giác 1134, số lượng đỉnh 569. Số lượng dữ liệu nhúng tối đa là 156 đạt tỉ lệ nhúng 0.138 byte/tam giác. d=16 Thông điệp: “steganography in model 3D” Kh oa C NT T - Ð H KH TN TP .H CM -110- Dữ liệu nhúng tối đa là 156 byte đạt tỉ lệ 0.138 byte/tam giác, với tỉ lệ biến dạng trên tam giác 27.51 và tỉ lệ biến dạng trên đỉnh 82.55. Hình 41 mô tả bốn thử nghiệm trên mô hình con chó dựa trên sự thay đổi tham số c. (a ) M o â h ình go ác (b) c=10 8 (c) c=2 .10 8 (d) c=9.10 8 (e) c=2.10 9 Hình 41. Thử nghiệm thuật giải TSQ trên mô hình con chó với sự thay đổi trên c Kh oa C NT T - Ð H KH TN TP .H CM -111- Thuật giải TVR: Mô hình ba chiều con mèo cat.ms3d: số lượng tam giác 538, số lượng đỉnh 248. c=2.108. Thông điệp: “If differential backups exist”. (a) Moâ hình goác (b) d=14 (c) d=16 (d) d=18 Hình 42. Thử nghiệm thuật giải TVR trên mô hình con mèo với sự thay đổi trên d Mô hình con chó dog.ms3d: số lượng tam giác 1134, số lượng đỉnh 569, d=16 Kh oa C NT T - Ð H KH TN TP .H CM -112- Thông điệp: “steganography in model 3D” (a) M oâ hình go ác (b) c=108 (c) c=2.108 (d) c=9.108 (e) c=2.10 9 Hình 43. Thử nghiệm thuật giải TVR trên mô hình con chó với sự thay đổi trên c Kh oa C NT T - Ð H KH TN TP .H CM -113- 5.2 Các khó khăn khi thực hiện luận văn: ™ Ẩn dữ liệu là một kỹ thuật mới cả trên thế giới và tại Việt Nam. Các sách về ẩn dữ liệu vẫn còn ít và thực sự chưa có một quyển sách của các tác giả Việt Nam. ™ Các kỹ thuật mà luận văn đã đề cập được lấy ở các bài báo tại các hội nghị, các kỹ thuật này không được mô tả chi tiết. ™ Các kỹ thuật được sử dụng để áp dụng vào ứng dụng Steganography mang tính chủ quan, chỉ mới được thử nghiệm trên một số mô hình nên khó có thể đánh giá chính xác mức độ hiệu quả của chúng. 5.3 Hướng phát triển: 5.3.1 Hướng phát triển trên ảnh tĩnh: Trên ảnh nhị phân, khi số vùng đen và vùng trắng tách rời nhau rõ rệt thì ảnh sau khi nhúng dữ liệu sẽ dễ bị nhìn thấy sự biến dạng, để làm phân tán các điểm ảnh bị thay đổi ta có thể dùng một hàm Sobol[13] có phân phối tương đối đồng đều. Như thế dữ liệu nhúng được nhúng rải đều trên toàn bộ ảnh, không tập trung vào một vùng nhất định. 5.3.2 Hướng phát triển trên mô hình ba chiều: Với thuật giải TVR, khi thao tác trên lưới tam giác quá lớn, thể tích của các tứ diện có các tam giác nằm càng xa trọng tâm thì càng lớn, do đó sẽ dẫn đến những biến đổi lớn trên tọa độ các đỉnh trong qua trình chèn bit. Một cải tiến để làm giảm khuyết điểm này là phân hoạch lưới tam giác thành các lưới con, sau đó nhúng dữ liệu vào từng lưới con bằng thuật giải TVR. Cải tiến này còn làm Kh oa C NT T - Ð H KH TN TP .H CM -114- tăng tính bảo mật của thông điệp vì các lưới tam giác con sẽ được sắp xếp theo một thứ tự nhất định trước khi được nhúng dữ liệu. Nhúng dữ liệu nhiều lần vào lưới đa giác sẽ làm tăng tính bền vững của dữ liệu nhúng. ------------------------------------------------ Kh oa C NT T - Ð H KH TN TP .H CM -115- TÀI LIỆU THAM KHẢO [1] B. Pfitzmann, Information hiding terminology, In Anderson[5], pp. 347{350, ISBN 3-540-61996-8. [2] Fabien A. P. Petitcolas, Ross J. Anderson, Markus G. Kuhn, Information Hiding – A Survey, Proceedings of the IEEE, special issue on protection of multimedia content, 87(7):1062-078, July 1999. [3] W. Bender, D. Gruhl, N. Morimoto, A.Lu, Techniques for data hiding, February 29, 1996. [4] W. Bender, D. Gruhl, N. Morimoto, A.Lu, Applications for data hiding, February 29, 1996. [5] [6] [7] Ryutarou Ohbuchi, Hiroshi Masuda, Masaki Aono, Data embedding Algorithms for Geometrical and Non-geometrical targets in three-demensional polygonal Models, Computer Communications, Elseveir Science B.V,1997. [8] R. Ohbuchi, H. Masuda, M. Aono, Watermarking Three-demensional Polygonal Mesh Through Geometric and tôpôlogical Modifications, Jyly 15, 1997. [9] Yu-Yuan Chen, Hsiang-Kuang Pan, and Yu-Chee Tseng, A Secure Data Hiding Scheme for Two-Color Images, in IEEE Symp. on Computers and Communications, 2000 [10] Hoàng Kiếm, Dương Anh Đức, Lê Đình Duy, Vũ Hải Quân, Cơ sở đồ họa máy tính, Nhà xuất bản Giáo dục, 2000. Kh oa C NT T - Ð H KH TN TP .H CM -116- [11] Nguyễn Mộng Hy, Hình học cao cấp, Nhà xuất bản Giáo dục, 2001. [12] Chu Đức Khánh, Lý thuyết đồ thị, Nhà xuất bản Đại học quốc gia Tp. HCM,2002. [13] W. Morokoff and R.E. Caflisch, Quasi-random sequences and their discrepancies. SIAM J. Sci. Stat. Computing, 15:1251--1279, 1994. [14] Anil K. Jain, Fundamentals digital image processing, Prentice Hall, Englewood Cliffs, New Jersey, 1989. [15] Douglas R. Stinson, Crytography Theory and Practice, CRC Press, 1995. [16] [17] ------------------------------------------------

Các file đính kèm theo tài liệu này:

  • pdfLuận văn-Một số thử nghiệm các kỹ thuật ẩn dữ liệu trên ảnh tĩnh và mô hình ba chiều.pdf
Luận văn liên quan