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.
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 >