- Chống lại sự thoái thác trách nhiệm: hệ thống đảm - bảo một đối tác bất kỳ trong hệ thống không thể từ chối trách nhiệm về hành động mà mình đã thực hiện - Những kết quả nghiên cứu về
Trang 1MỞ ĐẦU
Công nghệ Data hiding và mã hóa, với công nghệ này chúng có thể truyền tin cho mọi người trên các phương tiện đại chúng mà không bị phát hiện Cuộc cách mạng thông tin kỹ thuật số đã đem lại những thay đổi sâu sắc trong xã hội và trong cuộc sống của chúng ta Những thuận lợi mà thông tin kỹ thuật số mang lại cũng sinh ra những thách thức và cơ hội mới cho quá trình đổi mới Mạng internet toàn cầu đã biến thành một xã hội ảo nơi diễn ra quá trình trao đổi thông tin trong mọi lĩnh vực chính trị, quân sự, quốc phòng, kinh tế, thương mại…Và chính trong môi trường mở và tiện nghi như thế xuất hiện những vấn nạn, tiêu cực đang rất cần đến các giải pháp hữu hiệu cho vấn đề an toàn thông tin như nạn xuyên tạc thông tin, truy nhập thông tin trái phép, v.v Đi tìm giải pháp cho những vấn đề này không chỉ giúp ta hiểu thêm về công nghệ phức tạp đang phát triển rất nhanh này mà còn đưa ra những cơ hội kinh tế mới cần khám phá
Trải qua một loạt giai đoạn phát triển , data hiding và mã hóa ngày này càng trở lên tinh vi hơn cùng với sự phát triển của computer Với môi trường mạng mở, có rất nhiều loại thông tin, trong đó có các thông tin quí giá mà bạn không thể để người khác biết được Hiện nay cuộc chiến với các cracker vẫn chưa ngã ngũ, và có lẽ sẽ chẳng bao giờ ngã ngũ thì việc dùng các phương pháp mã hóa sẽ khiến cho những tên cracker sẽ để ý đến thông tin của bạn, và tất nhiên chúng sẽ tìm mọi cách để crack, vì vậy sẽ chẳng có gì là đảm bảo thông tin của bạn sẽ được an toàn Với công nghệ data hiding bạn có thể dấu một bài thơ tình vào một bức ảnh như bác anaconda mà không làm thay đổi bức ảnh (đối với cảm nhận của con người), như vậy chúng ta đã đánh lạc hướng được những tên cracker, thêm vào đó việc thực hiện crack trên mutimedia sẽ khó khăn hơn nhiều so với crack với các văn bản text Hiện này công nghệ data hiding
đã và đang phát triển ở mức độ cao hơn, đó là vấn đề bảo vệ bản quyền , công nghệ sử
Trang 2Trang 1
dụng trong lĩnh vực này là water marking digital (thủy vân kĩ thuật số) trong đề tài này chúng em sẽ trình bày về công nghệ Data Hiding sử dụng mã hóa AES và một ứng dụng sử dụng công nghệ này
MỤC LỤC
CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI 6
1.1 Giới thiệu về data hiding 7
1.2 Giới thiệu về mã hóa AES 10
CHƯƠNG 2: DATA HIDING VÀ MÃ HÓA AES 11
2.1Mô tả hệ thống ẩn dữ liệu 11
2.1.1 Khái niệm 11
2.1.2 Mô tả hệ thống ẩn dữ liệu: 12
2.2 Các yếu tố ảnh hưởng đến quá trình ẩn dữ liệu 13
2.2.1 Sự thay đổi trên đối tượng chứa là tối thiểu 13
2.2.2 Mức độ tránh các thao tác biến đổi trên đối tượng chứa 14
2.2.3 Số lượng dữ liệu nhúng: 14
2.2.4 Sự khó phát hiện bởi tri giác của con người – sự vô hình: 15
2.2.5 Không thể giải mã dữ liệu nhúng từ đối tượng chứa – Tính bảo mật: 15
2.3 Phân loại các kỹ thuật ẩn dữ liệu 15
2.3.1 Ẩn dữ liệu trên văn bản 16
2.3.1.1 Các kỹ thuật của Brassil 16
2.3.1.1.1 Nhúng dữ liệu bằng cách dịch chuyển dòng 16
2.3.1.1.2 Nhúng dữ liệu bằng cách dịch chuyển từ 17
2.3.1.1.3 Nhúng dữ liệu đặc trưng 17
2.3.1.2 Các kỹ thuật của Bender 18
2.3.1.2.1 Phương pháp khoảng trắng mở 18
Trang 3Trang 2
2.3.1.2.2 Phương pháp cú pháp 20
2.3.1.2.3 Phương pháp ngữ nghĩa 20
2.3.2 Các kỹ thuật ẩn dữ liệu trên ảnh tĩnh: 20
2.3.2.1 Các hướng tiếp cận của các kỹ thuật ẩn dữ liệu trên ảnh tĩnh: 21
2.3.2.1.1 Hướng tiếp cận chèn vào bit LSB: 21
2.3.2.1.2 Phương pháp ngụy trang và lọc: 22
2.3.2.1.3 Các thuật toán và phép biến đổi: 22
2.3.2.2 Các kỹ thuật ẩn dữ liệu trên ảnh tĩnh: 23
2.3.2.2.1 Ẩn dữ liệu với tỉ lệ bit thấp: 23
2.3.2.2.1.1 Patchwork- cách tiếp cận thống kê: 23
2.3.2.2.1.2 Mã hóa kết cấu khối (texture block coding)-Cách tiếp cận trực quan: 27 2.3.2.2.2 Mã hóa với dữ liệu bit cao – Mã hóa affine: 28
2.3.2.2.2.1 Phương pháp nhúng dữ liệu vào các khối, chứa tối đa một bit dữ liệu: 29 2.3.2.2.2.2 Phương pháp nhúng dữ liệu vào các khối, mỗi khối chứa tối đa hai 33 2.3.2.2.2.3 Phân tích khả năng che dấu và kết quả thực nghiệm: 38
2.4 Thuật toán mã hóa AES 40
2.4.1 Quá trình mã hóa 40
2.4.1.1 Tham số, ký hiệu, thuật ngữ và hàm 40
2.4.1.2 Các bước thực hiện 40
2.4.1.3Kiến trúc của thuật toán Rijndael 41
2.4.1.4 Phép biến đổi SubBytes 42
2.4.1.5 Phép biến đổi ShiftRows 44
2.4.1.6 Phép biến đổi MixColumns 45
2.4.1.7 Thao tác AddRoundKey 47
2.4.1.8 Ví dụ về quà trình mã hóa: 49
2.4.2 Quá trình tạo khóa 56
Trang 4Trang 3
2.4.2.1Chiều dài yêu cầu của khóa 56
2.4.2.2 Sự hạn chế của khóa 56
2.4.2.3 Các tham số của khóa: chiều dài khóa, kích thước block và số vòng 56
2.4.2.4 Gợi ý việc thực hiện dựa trên các nền tảng khác nhau 57
2.4.2.5 Mảng của các byte 57
2.4.3 GIẢI MÃ AES Error! Bookmark not defined 2.4.3.1 Giải mã: 63
24.3.2 InvShiftrows 64
2.4.3.3 InvSubBytes 64
2.4.3.4 InvMixColumns 64
2.4.3.5 Ví dụ mã hóa AES 65
Chương III.ƯNG DỤNG DATA HIDING KẾP HỢP VỚI MÃ HÓA 72
3.1 Mã hóa 72
3.2 Giải mã 72
3.3Ví dụ minh họa 73
KẾT LUẬN 75
1 Đánh giá: 75
2 Phát triển và hạn chế của đề tài: 75
TÀI LIỆU THAM KHẢO 76
Trang 5Trang 4
DANH SACH CÁC HÌNH
Hình 1 Quá trình nhúng dữ liệu 3
Hình 2 Quá trình rút trích dữ liệu 13
Hình 3 Quá trình nhúng và rút trích dử liệu 14
Hình 4 Vòng lặp đơn trong thuật giải Patchwork 25
HÌnh 5 Hình dáng các mảnh 27
Hình 6 Sự sắp xếp các mảnh 27
Hình 7 Một ví dụ về phương pháp mã hóa kết cấu khối 28
Hình 8 Nhúng 3 bit vào ảnh 6 x 6 33
Hình 9 Ảnh F, ma trận khóa K vàma trận trọng lượngW 38
Hình 10 Ảnh F sau khi thực hiện toán tử XOR và ảnh chứa bị thay đổi dữ liệu 38
Hình 11 Mô tả Một chu kỳ mã hóa của phương pháp Rijndael (với Nb=4) 42
Hình 12 Sơ đồ mã hóa 71
Hình 13 Sơ đồ giải mã 72
Hình 14 Thể hiện sự thay đổi ảnh của quá trình ẩn dử liệu dung mà hóaAES 72
Hình 15 Thể hiện sự thay đổi ảnh a: quá trình rút trích dử liệu và giải mã.b Ảnh sau khi giải mã và xóa dữ liệu ẩn trên ảnh 73
Trang 6Trang 5
DANH SÁCH CÁC BẢNG
Bảng 1 Mối quan hệ giữa n và độ tin cậy 26
Bảng 2 Thể hiện bảng thay thế S-box đƣợc sử dụng trong phép biến đổi SubBytes ở dạng thập lục phân 43
Bảng 3 Thể hiện bảng thay thế S-box đƣợc sử dụng trong phép biến đổi 44
Bảng 4 Giá trị di số shift(r, Nb) 44
Bảng 5 Thao tác MixColumns tác động lên mỗi cột của trạng thái 46
Bảng 6 Thao tác AddRoundKey tác động lên mỗi cột của trạng thái 48
Bảng 7 Bảng S-BOX có định dang mã hexa 50
Bảng 8 Minh họa các thông số của khóa 56
Bảng 9 Minh họa việc sắp xếp các bit trong mỗi byte 57
Bảng 10 Minh họa mảng của các trạng thái 58
Bảng 11: Thể hiện bảng thay thế S-box đƣợc sử dụng trong phép biến đổi InvShiftrows 63
Trang 7Trang 6
CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI
Mật mã và dấu tin (Cryptography) là ngành khoa học là ngành nghiên cứu các
kỹ thuật toán học nhằm cung cấp các dịch vụ bảo vệ thông tin [44] Đây là ngành khoa học quan trọng, có nhiều ứng dụng trong đời sống – xã hội
Khoa học mật mã đã ra đời từ hàng nghìn năm Tuy nhiên, trong suốt nhiều thế
kỷ, các kết quả của lĩnh vực này hầu như không được ứng dụng trong các lĩnh vực dân
sự thông thường của đời sống – xã hội mà chủ yếu được sử dụng trong lĩnh vực quân
sự, chính trị, ngoại giao Ngày nay, các ứng dụng mã hóa và bảo mật thông tin đang được sử dụng ngày càng phổ biến trong các lĩnh vực khác nhau trên thế giới, từ các lĩnh vực an ninh, quân sự, quốc phòng…, cho đến các lĩnh vực dân sự như thương mại điện tử, ngân hàng…Với sự phát triển ngày càng nhanh chóng của Internet và các ứng dụng giao dịch điện tử trên mạng, nhu cầu bảo vệ thông tin trong các hệ thống và ứng dụng điện tử ngày càng được quan tâm và có ý nghĩa hết sức quan trọng Các kết quả của khoa học mật mã ngày càng được triển khai trong nhiều lĩnhvực khác nhau của đời sống – xã hội, trong đó phải kể đến rất nhiều những ứng dụng đa dạng trong lĩnh vực dân sự, thương mại Các ứng dụng mã hóa thông tin cá nhân, trao đổi thông tin kinh doanh, thực hiện các giao dịch điện tử qua mạng đã trở nên gần gũi và quen thuộc với mọi người
Cùng với sự phát triển của khoa học máy tính và Internet, các nghiên cứu và ứng dụng của mật mã học ngày càng trở nên đa dạng hơn, mở ra nhiều hướng nghiên cứu chuyên sâu vào từng lĩnh vực ứng dụng đặc thù với những đặc trưng riêng Ứng dụng của khoa học mật mã không chỉ đơn thuần là mã hóa và giải mã thông tin mà còn bao gồm nhiều vấn đề khác nhau cần được nghiên cứu và giải quyết, ví dụ như chứng thực nguồn gốc nội dung thông tin (kỹ thuật chữ ký điện tử), chứng nhận tính xác thực
về người sở hữu mã khóa (chứng nhận khóa công cộng), các quy trình giúp trao đổi thông tin và thực hiện giao dịch điện tử an toàn trên mạng
Các ứng dụng của mật mã học và dấu tín để bảo vệ thông tin rất đa dạng và phong phú; tùy vào tính đặc thù của mỗi hệ thống bảo vệ thông tin mà ứng dụng sẽ có các
Trang 8- Tính toàn vẹn thông tin: hệ thống bảo đảm tính toàn vẹn thông tin trong liên lạc hoặc giúp phát hiện rằng thông tin đã bị sửa đổi
- Xác thực các đối tác trong liên lạc và xác thực nội dung thông tin trong liên lạc
- Chống lại sự thoái thác trách nhiệm: hệ thống đảm
- bảo một đối tác bất kỳ trong hệ thống không thể từ chối trách nhiệm về hành động mà mình đã thực hiện
- Những kết quả nghiên cứu về mật mã cũng đã được đưa vào trong các hệ thống phức tạp hơn, kết hợp với những kỹ thuật khác để đáp ứng yêu cầu đa dạng của các hệ thống ứng dụng khác nhau trong thực tế, ví dụ như hệ thống bỏ phiếu bầu cử qua mạng, hệ thống đào tạo từ xa, hệ thống quản lý an ninh của các đơn vị với hướng tiếp cận sinh trắc học, hệ thống cung cấp dịch vụ đa phương tiện trên mạng với yêu cầu cung cấp dịch vụ và bảo vệ bản quyền sở hữu trí tuệ đối với thông tin số
1.1 Giới thiệu về data hiding
Cuộc cách mạng thông tin kỹ thuật số đã đem lại những thay đổi sâu sắc trong xã hội và trong cuộc sống của chúng ta Những thuận lợi mà thông tin kỹ thuật
số mang lại cũng sinh ra những thách thức và cơ hội mới cho quá trình đổi mới Sự ra đời những phần mềm có tính năng rất mạnh, các thiết bị mới như máy ảnh kỹ thuật số, máy quét chất lượng cao, máy in, máy ghi âm kỹ thuật số, v.v…, đã với tới thế giới tiêu dùng rộng lớn để sáng tạo, xử lý và thưởng thức các dữ liệu đa phương tiện (multimedia data) Mạng Internet toàn cầu đã biến thành một xã hội ảo nơi diễn ra quá trình trao đổi thông tin trong mọi lĩnh vực chính trị, quân sự, quốc phòng, kinh tế,
Trang 9Trang 8
thương mại… Và chính trong môi trường mở và tiện nghi như thế xuất hiện những vấn nạn, tiêu cực đang rất cần đến các giải pháp hữu hiệu cho vấn đề an toàn thông tin như nạn ăn cắp bản quyền, nạn xuyên tạc thông tin, truy nhập thông tin trái phép v.v Đi tìm giải pháp cho những vấn đề này không chỉ giúp ta hiểu thêm về công nghệ phức tạp đang phát triển rất nhanh này mà còn đưa ra những cơ hội kinh tế mới cần khám phá
Yêu cầu của đề tài:
Data hiding là phương pháp đã và đang được nghiên cứu và ứng dụng rất mạnh mẽ
ở nhiều nước trên thế giới đó là phương pháp nhúng tin(che dấu thông tin) trong các phương tiện khác Đây là phương pháp mới và phức tạp nó đang được xem như một công nghệ chìa khoá cho vấn đề bảo vệ bản quyền, nhận thực thông tin và điều khiển truy cập ứng dụng trong an toàn và bảo mật thông tin
Giấu thông tin (Steganography) là một 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 phương tiện chứa mà không gây ra sự nhận biết về sự tồn tại của thông tin giấu
Từ Steganography bắt nguồn từ Hi Lạp và được sử dụng cho tới ngày nay, nó có nghĩa là tài liệu được phủ (covered writing) Các câu chuyện kể về kỹ thuật giấu thông tin được truyền qua nhiều thế hệ, ý tưởng về che giấu thông tin đã có từ hàng nghìn năm về trước nhưng kỹ thuật này được dùng chủ yếu trong quân đội và trong các cơ quan tình báo Mãi cho tới vài thập niên gần đây, giấu thông tin mới nhận được sự quan tâm của các nhà nghiên cứu và các viện công nghệ thông tin với rất nhiều các công trình nghiên cứu Cuộc cách mạng số hoá thông tin và sự phát triển nhanh chóng của mạng truyền thông là nguyên nhân chính dẫn đến sự thay đổi này Những phiên bản sao chép hoàn hảo, các kỹ thuật thay thế, sửa đổi tinh vi, cộng với sự lưu thông phân phối trên mạng của các dữ liệu đa phương tiện đã sinh ra rất nhiều những vấn đề nhức nhối về nạn ăn cắp bản quyền, phân phối bất hợp pháp, xuyên tạc trái phép
Trang 10Trang 9
Sự khác biệt chủ yếu giữa mã hoá thông tin và giấu thông tin là phương pháp mã hoá làm cho các thông tin hiện rõ là nó có được mã hoá hay không còn đối với phương pháp giấu thông tin thì người ta sẽ khó biết được là có thông tin giấu bên trong do tính chất ẩn (invisible) của thông tin được giấu Một khi những thông tin mã hoá bị phát hiện thì những tên 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 để che giấu thông tin mà các hacker không thể phát hiện ra
Giấu tin trong ảnh có hai khía cạnh: Một là bảo mật cho dữ liệu đem giấu (embedded data), thông tin mật được giấu kỹ trong một đối tượng khác sao cho người khác không phát hiện được Hai là bảo mật chính đối tượng được dùng để giấu dữ liệu vào (host data), chẳng hạn như ứng dụng bảo vệ bản quyền, phát hiện xuyên tạc thông tin (watermarking) Đây là ứng dụng cơ bản nhất của kỹ thuật giấu tin trong ảnh Một thông tin nào đó sẽ được nhúng vào trong một ảnh, giả sử hình ảnh cần được lưu thông trên mạng Để bảo vệ các sản phẩm chống lại hành vi lấy cắp hoặc làm nhái cần phải có một kỹ thuật để “dán tem bản quyền” vào sản phẩm này Việc dán tem hay chính là việc nhúng thuỷ 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à thuỷ vân phải tồn tại bền vững cùng với sản phẩm, muốn bỏ thuỷ vân này mà không được phép của người chủ sở hữu thì chỉ còn cách là phá huỷ sản phẩm
Để tìm hiểu sâu hơn về công nghệ giầu tin trong ảnh đề tài của chúng em đã tiến hành tìm hiểu các phương pháp để giấu tin, cách thức giấu tin và giấu các loại tin khác nhau như thế nào Ở đề tài này chúng em đã nghiên cứu cách thức giấu tin trong ảnh Bitmap, ảnh JPEG, ảnh Tif các loại tin được giấu như một đoạn văn bản, một tệp Word thậm chí là giấu ảnh trong ảnh…tuy nhiên do đây là một công nghệ hoàn toàn mới đối với nước ta nên trong quá trình tìm hiểu và phát triển đề tài chúng em còn gặp rất nhiều vấn đề khó khăn như tài liệu về đề tài không nhiều, các công cụ cũng như thuật toán để dùng cho công nghệ Data Hiding quá phức tạp …chính vì vậy đề tài của
Trang 11Trang 10
chúng em còn nhiều vấn đề chưa thể hoàn thành được Chúng em mong được sự giúp
đỡ của các thầy cô trong khoa để đề tài này sẽ được hoàn thiện ở mức độ cao hơn như
có thể giấu được nhiều kiểu thông tin khác nhau và giấu trong nhiều loại dữ liệu khác nhau
1.2 Giới thiệu về mã hóa AES
Với tốc độ và khả năng xử lý ngày càng được nâng cao của các bộ vi xử lý hiện nay, phương pháp mã hóa chuẩn (Data Encryption Standard – DES) trở nên không
an toàn trong bảo mật thông tin Do đó, Viện Tiêu chuẩn và Công nghệ Hoa Kỳ (National Institute of Standards and Technology – NIST) đã quyết định chọn một chuẩn mã hóa mới với độ an toàn cao nhằm phục vụ nhu cầu bảo mật thông tin liên lạc của Chính phủ Hoa Kỳ cũng như trong các ứng dụng dân sự Thuật toán Rijndael
do Vincent Rijmen và Joan Daeman đã được chính thức chọn trở thành chuẩn mã hóa nâng cao AES (Advanced Encryption Standard) từ ngày
02 tháng 10 năm 2000
Phương pháp mã hóa Rijndael là phương pháp mã hóa theo khối (block cipher)
có kích thước khối và mã khóa thay đổi linh hoạt với các giá trị 128, 192 hay 256 bit Phương pháp này thích hợp ứng dụng trên nhiều hệ thống khác nhau từ các thẻ thông minh cho đến các máy tính cá nhân
Trang 12
Trang 11
CHƯƠNG 2: DATA HIDING VÀ MÃ HÓA AES
2.1.1 Khái niệm
a) Ẩn dữ liệu (data hiding) là thao tác nhúng dữ liệu vào các dạng lưu trữ
số hóa như tập tin văn bản, tập tin ảnh nhị phân, các tập tin âm thanh…, nhằm mục đích nhận diện, chú thích, bảo vệ bản quyền tác giả và truyền thông mật
b) Ẩn dữ liệu gồm hai quá trình: Nhúng dữ liệ (embedding) vào đối tượng nhúng và rút trích dữ liệu (extracting) từ đối tượng chứa Hay còn gọi là quá trình mã hóa và giải mã
c) Đối tượng nhúng là đối tượng được chọn để nhúng dữ liệ vào, đối tượng nhúng có ký hiệu: Cover<data type>, trong đó data type là loại đối tượng (văn bản, ảnh tĩnh, âm thanh, )
d) Đối tượng chứa là đối tượng sau khi đã được nhúng vào một lượng dữ
liệu, đối tượng chứ có ký hiệu là Stego<data type>
e) Dữ liệu được nhúng vào đối tượng chứa có thể là các ký hiệu, thông điệp hay các mẫu (pattern), dữ liệu này được gọi là dữ liệu nhúng
f) Các kỹ thuật ẩn dữ liệu nói chung còn có một hay nhiều khóa gọi là
stego-key, stego-key là tham số điều khiển quá trình nhúng dữ liệu nhằm hạn chế khả
năng dữ liệu núng bị phát hiện, hay nhằm lấy lại dữ liệu nhúng từ đối tượng chứa
g) Mỗi ứng dụng cụ thể có các rang buộc riêng trên các yếu tố tác động đến quá trình nhúng dữ liệu Các yếu tố đó có thể là số lượng dữ liệu nhúng, mức độ bất biến của dữ liệu nhúng khi đối tượng chứa bị thao tác bởi các phép biến đổi, mức độ bảo toàn dữ liệu nhúng trong các chuẩn nén mất dữ liệu
h) Các dữ liệu nhúng thường là thông tin về bản quyền, được nhúng vào các dạng truyền thông như văn bản, ảnh, âm thanh với số lượng tín hiệu bị suy biến tối thiểu để không ảnh hưởng nhiều đến đối tượng chứa
i) Bất cứ vị trí nào trong tín hiệu chứa (tín hiệu chứa là tín hiệu, dữ liệu của đối tượng chứa) đều có thể là mục tiêu của sự di chuyển hay phá hủy trong các chuẩn
Trang 13I´ K´ M®I ¢
Và đầu ra là một đối tượng chứa (ảnh chứa)
Cấu trúc một quá trình ẩn dữ liệu thông thường:
Hình 1: Quá trình nhúng dữ liệu
Khi đó Stego Image (I’) là dữ liệu được truyền trên môi trường truyền
Cấu trúc một quá trình rút trích dữ liệu
Hình 2: Quá trình rút trích dữ liệu
Trang 14Trang 13
Quá trình từ nhúng dữ liệu sang rút trích dữ liệu ẩn từ đối tƣợng chứa đƣợc mô
tả bằng sơ đồ sau:
Hình 3 Quá trình nhúng và rút trích dử liệu
Các kỹ thuật ẩn dữ liệu nói chung đều phải đáp ứng một số các yếu tố, các yếu
tố này thay đổi tùy theo từng ứng dụng cụ thể Sau đây là các yếu tố chung cho các kỹ thuật ẩn dữ liệu
2.2.1 Sự thay đổi trên đối tượng chứa là tối thiểu
Mục đích của ẩn dữ liệu là nhúng dữ liệu vào đối tƣợng chứa nhằm các mục đích riêng cho từng ứng dụng Tuy nhiên, ẩn dữ liệu không thể làm thay đổi giá trị sử dụng của đối tƣợng chứa vì:
Nếu ứng dụng của ẩn dữ liệu là bảo vệ quyền sở hữu trí tuệ thì đối tƣợng chứa – tác phẩm của tác giả không thể bị suy biến vì nhƣ thế thì tác phẩm đó mất đi giá trị và không cần bảo vệ bản quyền nữa
Trang 15Trang 14
Nếu ứng dụng của ẩn dữ liệu là thêm thông tin chú thích thì đối tượng chứa quan trọng hơn, thông tin chú thích chỉ là phần chú thích thêm, vì vậy đối tượng chứa phải đảm bảo được chất lượng
Nếu ứng dụng ẩn dữ liệu là truyền thông mật, thì sự khác nhau giữa đối tượng gốc và đối tượng chứa phải rất nhỏ để tránh được sự nghi ngờ của người khác
2.2.2 Mức độ tránh các thao tác biến đổi trên đối tượng chứa
Còn gọi là tính bền vững của dữ liệu nhúng, đây là mức độ của dữ liệu nhúng không bị mất đi khi đối tượng chứa bị biến đổi bởi các thao tác Tính năng này là bắt buộc với tất cả các ứng dụng của ẩn dữ liệu Tuy nhiên, không có kỹ thuật nào có thể bất biến với tất cả các thao tác, mỗi kỹ thuật chỉ hỗ trợ cho tính bất biến đối với một số thao tác mà thôi Các thao tác trên đối tượng chứa có thể liệt kê như sau:
+ Văn bản: dịch chuyển từ, chi lại khoảng cách giữa các từ,…
+ Ảnh tĩnh: các phép biến đổi affine, nhiễu, các phép biến đổi phi hình học, lọc nhiễu,
+ Mô hình ba chiều: các phép biến đổi affine, biến đổi hình học, biến đổi phi hình học, sắp xếp lại lưới đa giác,…
2.2.3 Số lượng dữ liệu nhúng:
Tùy thuộc vào từng ứng dụng cụ thể mà yêu cầu về số lượng dữ liệu nhúng là nhiều hay ít Một số ứng dụng chỉ cần nhúng một bit đơn vào đối tượng chứa (ví dụ như ứng dụng đánh dấu đối tượng), một số ứng dụng lại yêu cầu số lượng dữ liệu nhúng phải lớn (các đoạn chú thích)
Tính năng này luôn tỉ lệ nghịch với tính bền vững của dữ liệu nhúng Một kỹ thuật nếu hỗ trợ tính năng bền vững của dữ liệu nhúng cao thì số lượng dữ liệu nhúng lại giảm đi đáng kể, và ngược lại nếu nâng cao số lượng dữ liệu nhúng thì dữ liệu nhúng đó lại ít khả năng tránh được các thao tác trên đối tượng chứa, tín hiệu chứa
Trang 16Trang 15
càng bị nhiễu Các kỹ thuật hiện đại đều quan tâm đến hai tính năng này và muốn đồng thời nâng cao cả hai tính năng này
2.2.4 Sự khó phát hiện bởi tri giác của con người – sự vô hình:
Tính năng này gần giống với tính năng thay đổi tối thiểu trên đối tượng chứa, tuy nhiên lại có sự khác nhau rõ ràng: một đối tượng chứa có thể thay đổi ít nhưng dữ liệu nhúng lại trực quan, ngược lại dữ liệu nhúng có thể khó bị phát hiện trong khi thay đổi trên đối tượng chứ khá nhiều
Một số ứng dụng không cần tính năng này (ví dụ ứng dụng nhúng các lời chú thích, các logo vào đối tượng chứa), tuy nhiên đối với ứng dụng truyền thông mật thì đây là một trong số các tính năng quan trọng nhất Steganography phải bảo đảm không
để cho một người trung gian phát hiện, nghi ngờ đối tượng chứa chó chứa thông tin thêm vào Đối với Steganophy, việc phát hiện có dữ liệu nhúng trong đối tượng chứa gây ra một sự thất bại hoàn toàn: người trung gian có thể giải mã thông điệp, làm suy biến thông điệp hay chỉ đơn giản là hủy thông điệp đi
Trong Steganography, tính năng này cùng với hai tính năng số lượng dữ liệu nhúng và tính bền vững của dữ liệu nhúng, cả ba luôn tỉ lệ nghịch với nhau Nếu ứng dụng quá nhiều dữ liệu, thì khả năng bị phát hiện tăng cao và ngược lại, số lượng dữ liệu nhúng ít thì khả năng bị phát hiện giảm xuống
2.2.5 Không thể giải mã dữ liệu nhúng từ đối tượng chứa – Tính bảo mật:
Tính năng này đặc biệt quan trọng đối với ứng dụng Steganophy, vì mục đích chính của Steganophy là không để người thứ ba giải mã được thông điệp truyền đi
Tóm lại: không phải bất kỳ một ứng dụng của ẩn dữ liệu nào cũng phải tuyệt
đối tuân theo tất cả các tính năng trên Mỗi ứng dụng chỉ quan tâm đặc biệt đến một số tính năng phù hợp với mục đích của ứng dụng đó
2.3 Phân loại các kỹ thuật ẩn dữ liệu
Trang 17Trang 16
2.3.1 Ẩn dữ liệu trên văn bản
2.3.1.1 Các kỹ thuật của Brassil
Brassil và một số nhà nghiên cứu khác đã xác định một vấn đề cần giải quyết là
sự phân phối bất hợp pháp các văn bản qua các phương tiện điện tử hiện đại, ví dụ như thư điện tử Các phương tiện như trên cho phép các xâm phạm trên các bản sao chép văn bản mà chưa có sự đồng ý của tác giả hay không trảtiền bản quyền Để chống lại
sự xâm phạm bản quyền này, Brassil đã đưa ra mộtphương pháp đánh dấu trên các văn bản với một từ mã duy nhất mà người đọckhông thể phát hiện, nhưng có thể sử dụng
để xác định người nhận hợp lệ vănbản đó chỉ bằng cách thao tác trên văn bản đó
Kỹ thuật của Brassil là sử dụng một từ mã (có thể là một số nhị phân) được nhúng vào văn bản bằng cách thay đổi các đặc trưng riêng của văn bản
Bằng cách gắn mỗi bit của từ mã vào các đặc trưng của văn bản, ta có thể mã hóatừ mã đó Dạng đặc trưng xác định một phương pháp mã hóa riêng Brassil đưa ra
ba đặc trưng trong văn bản sau:
2.3.1.1.1 Nhúng dữ liệu bằng cách dịch chuyển dòng
Trong phương pháp này, các dòng trong văn bản sẽ được dịch chuyển để nhúng
dữ liệu Phương pháp này được áp dụng cho dạng tập tin văn bản hay hìnhảnh của trang văn bản
Phương pháp này di chuyển mỗi hai dòng của văn bản hoặc lên hoặc xuống 1/300 inch Brassil thấy rằng phương pháp này làm việc đặc biệt tốt, và dữ liệu nhúng trong văn bản vẫn được rút trích hoàn chỉnh được, ngay cả sau khivăn bản đã bị sao chép ra 10 lần
Tuy nhiên, phương pháp này là kỹ thuật ẩn dữ liệu trên văn bản dễ thấy nhất đối với người đọc Hơn nữa, phương pháp có thể bị đánh bại sau khi văn bản được đo khoảng cách giữa hai dòng, việc chia khoảng cách giữa hai dòng ngẫu nhiên hay đồng
Trang 18Phương pháp thực hiện như sau: với mỗi dòng văn bản, tìm ra các khoảng cách lớn nhất và bé nhất, khoảng cách lớn nhất được giảm xuống một lượng, vàkhoảng cách
bé nhất cũng được tăng thêm một lượng như trên, như vậy sẽ giữ nguyên chiều dài của dòng văn bản và gây ra ít thay đổi nhận thấy được trên văn bản Nhúng dữ liệu bằng cách dịch chuyển từ ít bị người đọc nhận biết hơn phương pháp dịch chuyển dòng, vì khoảng cách giữa hai từ kế nhau trong một dòng thường bị dịch chuyển để hỗ trợ cho
sự sắp chữ trong văn bản.Tuy nhiên, phương pháp dịch chuyển từ có thể bị phát hiện
và bị đánh bại bằng hai phương pháp sau:
Nếu một người biết được thuật toán sử dụng trong định dạng sắp xếp chữ văn bản, khoảng cách thật sự giữa hai từ có thể được đo và so sánh với khoảng cách trong văn bản gốc Sự khác biệt trong khoảng cách sẽ chứa dữ liệunhúng
Bằng cách chia lại khoảng cách giữa các từ được dịch chuyển, hay dịch chuyển ngẫu nhiên các từ trong văn bản, một người khác có thể làm mất đi từ mã
2.3.1.1.3 Nhúng dữ liệu đặc trưng
Đây là phương pháp thứ ba của Brassil Giống như hai phương pháp trên, phương pháp này cũng hỗ trợ cả trên ảnh nhị phân của văn bản hay trên tập tin định
Trang 19Trang 18
dạng văn bản Đặc trưng của văn bản có thể bị thay đổi hay không bị thay đổi phụ thuộc vào từ mã Việc nhúng các bit vào văn bản có thể bằng cách kéo dài hay cắt ngắn các nét trên cùng của các kí tự như b, d, h, Trước khi mã hóa, các dòng trên của các kí tự được kéo dài hay cắt ngắn, sau đó sẽ bị thay đổi một lần nữa để mã hóa dữ liệu đặc biệt Điều này tránh được sự rút trích dữ liệu công khai, vì chiều cao các kí tự trong văn bản gốc không được biết Và dĩ nhiên, quá trình giải mã cần phải có các ảnh gốc Phương pháp mã hóa đặc trưng có thể thực hiện trên một lượng dữ liệu nhúng lớn, vì một văn bản có nhiều đặc trưng Phương pháp này có thể bị đánh bại bằng cách điều chỉnh lại chiều dài các kí tự theo một giá trị cố định
2.3.1.2 Các kỹ thuật của Bender
Các văn bản ở dạng số rất khó chứa dữ liệu ẩn (trong khi văn bản trên giấy thì
dễ hơn) Các văn bản ở dạng số ít có các thao tác biến đổi như trên ảnh, nhưng nếu văn bản xuất hiện một từ hay một câu lạ thì dễ dàng bị người đọc phát hiện Bender đưa ra
ba phương pháp chính sử dụng cho ẩn dữ liệu trên vănbản:
Phương pháp khoảng trắng mở sử dụng các khoảng trắng không được sử dụng trong các trang in
Phương pháp cú pháp sử dụng các dấu câu
Phương pháp ngữ nghĩa thao tác dựa trên nghĩa của các từ
2.3.1.2.1 Phương pháp khoảng trắng mở
Bender đưa ra hai lý do của việc sử dụng khoảng trắng để mã hóa
Thứ nhất, khi thay đổi số lượng các khoảng trắng thì nghĩa của câu ít bị ảnh hưởng
Thứ hai, người đọc tình cờ sẽ không chú ý đến sự thay đổi của các khoảng trắng
Trang 20Trang 19
Trong phương pháp này lại có ba phương pháp nhỏ: phương pháp khai thác khoảng trắng giữa các câu, giữa các từ và giữa các dòng trong các văn bản được sắp chữ
Phương pháp khai thác khoảng trắng giữa các câu:mã hóa một chuỗi nhị phân vào văn bản bằng cách đặt một hay hai khoảng trắng sau mỗi kí tự kết thúc, ví dụ như một câu trong văn xuôi, một dấu chấm phẩy (;) trong ngôn ngữ C, Một khoảng trắng
mã hóa 0, hai khoảng trắng mã hóa 1 Phương pháp này không hiệu quả, nó cần phải
có một văn bản lớn để mã hóa một lượng bit nhỏ (một bit trên một câu tương ứng với
tỉ lệ dữ liệu là 1bit/160 byte với giả thuyết một câu trung bình có 80 kí tự) Phương pháp này cũng phụ thuộc vào cấu trúc của văn bản Hầu hết các trình xử lý văn bản đều xử lý khoảng trắng sau mỗi câu
Phương pháp khai thác khoảng trắng sau mỗi dòng: dữ liệu mã hóa cho phép xác định số khoảng trắng sau mỗi dòng Hai khoảng trắng mã hóa một bit, bốn khoảng trắng mã hóa hai bit, tám khoảng trắng mã hóa ba bit, Phương pháp này có thể thực hiện trên mọi loại văn bản, vì nó không bị người đọc phát hiện do những khoảng trắng thêm vào nằm ngoài phạm vi của văn bản Nó còn mã hóa được số lượng bit nhiều hơn phương pháp trên Trong phương pháp khai thác khoảng trắng sau mỗi câu, văn bản sau khi đã nhúng dữ liệu, qua các chương trình như thư điện tử có khả năng bị cắt mất khoảng trắng Vấn đề duy nhất của phương pháp khai thác khoảng trắng sau mỗi dòng
là không thể lấy lại dữ liệu nhúng được sau khi văn bản chứa đã qua các thao tác sao chép trên giấy
Phương pháp khai thác các khoảng trắng ngay sau các từ: một khoảng trắng mã hóa bit 0, hai khoảng trắng mã hóa bit 1 Phương pháp này cho kết quả vài bit trên một dòng Để xác định khoảng trắng nào là của dữ liệu nhúng, khoảng trắng nào là của văn bản, Bender sử dụng phương pháp mã hóa giống như phương pháp của Manchester Manchester sử dụng một nhóm bit để đại diện cho một bit “01” được giải mã thành 1,
“10” là 0, “00” và “11” là rỗng
Trang 21Trang 20
Ví dụ: chuỗi được mã hóa là “1000101101” thì được giải mã thành “001”, trong khi chuỗi “110011” là rỗng
Phương pháp khoảng trắng hiệu quả trong các văn bản định dạng ASCII.Một số
dữ liệu có khả năng bị mất khi văn bản được in ra
2.3.1.2.2 Phương pháp cú pháp
Hai phương pháp cú pháp và ngữ nghĩa có thể kết hợp song song Trong nhiều tình huống sau khi mã hoá, văn bản có số lượng dấu câu nhiều hay có dấu câu sai, nhưng lại không ảnh hưởng lớn đến ngữ nghĩa trong văn bản Ví dụ cụm từ “bread, butter, and milk” và “bread, butter and milk” cả hai đều dùng dấu phẩy đúng Bất cứ khi nào trong câu sử dụng dạng thứ nhất thì mã hóa 1, dạng thứ hai thì mã hóa 0 Trong một số ví dụ còn sử dụng các từ viết tắt, viết gọn Phương pháp này chỉ mã hóa được vài bit trên 1Kb văn bản Phương pháp cú pháp còn bao gồm cả cách thay đổi trong cách thức diễn đạt và cấu trúc văn bản mà không làm thay đổi ngữ nghĩa Phương pháp này rõ ràng có hiệu quả hơn phương pháp khoảng trắng, nhưng khả năng khai thác của nó bị giới hạn
2.3.1.2.3 Phương pháp ngữ nghĩa
Phương pháp này cũng tương tự như phương pháp cú pháp Phương pháp ngữ nghĩa dùng giá trị chính hay phụ đồng nghĩa Ví dụ từ “big” có thể thay bằng“large” (Hình 8) Khi giải mã, từ có ý nghĩa chính sẽ đại diện cho giá trị 1, từ có ý nghĩa phụ
sẽ đại diện cho giá trị 0.Tuy nhiên phương pháp này có thể làm thay đổi ngữ nghĩa của câu, mặc dù từ thay thế cùng nghĩa, nhưng sắc thái của câu đã bị thay đổi (các từ được dùng thích hợp trong từng ngữ cảnh)
2.3.2 Các kỹ thuật ẩn dữ liệu trên ảnh tĩnh:
Ảnh tĩnh là một đối tượng rất thích hợp cho ẩn dữ liệu, nhất là trong Steganography vì các yếu tố sau đây:
Trang 22được rải ngẫu nhiên trên ảnh chứa
2.3.2.1 Các hướng tiếp cận của các kỹ thuật ẩn dữ liệu trên ảnh tĩnh:
Chèn vào bit thấp nhất LSB (Least Significant Bit)
Các kỹ thuật lọc và mặt nạ
Các thuật toán và các phép biến đổi
2.3.2.1.1 Hướng tiếp cận chèn vào bit LSB:
Phương pháp chèn bit vào LSB là phương pháp được biết nhiều nhất trong kỹ thuật ẩn dữ liệu Đây là một hướng tiếp cận thông dụng, đơn giản để nhúng thông tin vào ảnh Nhưng phương pháp này có nhược điểm là dễ bị tấn công bởi các thao tác
trên ảnh Một sự chuyển đổi từ dạng GIF hay BMP sang dạng nén mất dữ liệu (ví dụ như JPEG) có thể hủy hết thông tin ẩn trong ảnh
Khi sử dụng kỹ thuật LSB cho ảnh 24 bit màu, mỗi pixel có 3 bit được dùng để
mã hóa dữ liệu (vì mỗi pixel được biểu diễn bằng 3 byte) Sự thay đổi trên pixel khó bị mắt người nhận ra Ví dụ, kí tự A có thể được ẩn trong 3 pixel
Giả sử 3 pixel của ảnh gốc có giá trị nhị phân như sau:
( 00100111 11101001 11001000 )
( 00100111 11001000 11101001 )
( 11001000 00100111 11101001 )
Trang 23Chỉ có các bit LSB in đậm bị thay đổi Các kỹ thuật chèn vào bit LSB cải tiến là
dữ liệu có thể được ẩn trong bit thấp nhất và bit thấp thứ hai trong byte mà mắt người vẫn không thể nhận ra sự thay đổi
Sử dụng kỹ thuật LSB trong ảnh 8 bit màu phải cẩn thận hơn đối với ảnh 24 bit màu vì sự thay đổi màu sắc rõ hơn
2.3.2.1.2 Phương pháp ngụy trang và lọc:
Kỹ thuật ngụy trang và lọc ẩn thông tin bằng cách đánh dấu một ảnh bằng một
ký hiệu mờ Các kỹ thuật nhúng dấu hiệu thích hợp với ảnh hơn, các kỹ thuật đó có thể được áp dụng trên ảnh tĩnh mà không sợ ảnh hưởng của định dạng ảnh nén mất dữ
liệu Bằng cách che phủ, hoặc ngụy trang một tín hiệu mờ, hệ thống thị giác của người HVS không thể nhận biết được sự thay đổi trên ảnh
Về mặt kỹ thuật, nhúng dấu hiệu không phải là một dạng của Steganography Trong khi Steganography dấu dữ liệu trong ảnh, nhúng dấu hiệu mở rộng thông tin của ảnh và trở thành một thuộc tính của ảnh chứa, cung cấp các chi tiết về bản quyền, giấy phép, quyền sỡ hữu
Các kỹ thuật ngụy trang thích hợp hơn cho các ảnh nén dạng JPEG hơn là các
kỹ thuật LSB vì chúng có thể miễn dịch trước các thao tác nén hay xén ảnh
2.3.2.1.3 Các thuật toán và phép biến đổi:
Hiện nay trên Internet, ảnh JPEG đã trở nên phong phú vì là chuẩn nén tốt, chất lượng cao và tỉ lệ nén cao Nguyên lý cơ bản trong chuẩn nén JPEG là phép biến đổi cosin rời rạc DCT (Discrete Cosine Transform) DCT là phép biến đổi nén mất dữ liệu,
vì giá trị cosin không thể tính toán chính xác được và các lỗi trong tính toán có thể
Trang 24Hai kỹ thuật phổ rộng khác nhau được gọi là dãy trực tiếp và nhảy tần số Kỹ thuật dãy trực tiếp dấu thông tin bằng cách thay đổi pha của tín hiệu dữ liệu với một chuỗi số giả ngẫu nhiên mà cả người gửi và người nhận đều biết Kỹ thuật nhảy tần số phân chia băng thông có sẵn thành nhiều kênh truyền và nhảy giữa các kênh truyền đó (cũng được chèn bằng một dãy số giả ngẫu nhiên)
2.3.2.2 Các kỹ thuật ẩn dữ liệu trên ảnh tĩnh:
Các kỹ thuật ẩn dữ liệu trên ảnh tĩnh được chia thành hai loại theo kích thước
dữ liệu nhúng:
Ẩn dữ liệu với tỉ lệ bit thấp, lượng dữ liệu được nhúng trong ảnh rất ít,
có kỹ thuật chỉ nhúng một bit vào ảnh vì thế tính bền vững của dữ liệu nhúng cao
Ẩn dữ liệu với tỉ lệ bit cao, lượng dữ liệu được nhúng cao hơn nhiều và
do đó tính bền vững cũng thấp hơn
2.3.2.2.1 Ẩn dữ liệu với tỉ lệ bit thấp:
Hai kỹ thuật điển hình là Patchwork và mã hóa kết cấu khối Patchwork nhúng một bit đơn vào ảnh với một giá trị tin cậy cao dựa trên phân phối Gaussian Mã hóa kết cấu khối dựa trên các vùng đồng nhất trên ảnh
2.3.2.2.1.1 Patchwork- cách tiếp cận thống kê:
Trang 25Trang 24
Patchwork là một hướng tiếp cận theo phương pháp thống kê, dựa trên các dãy
số giả ngẫu nhiên[15] Patchwork nhúng vào ảnh chứa một số thống kê đặc thù, chứa một hàm phân phối Gaussian sao cho mắt người không thể nhận ra
Hình 3.1 mô tả một phương pháp Patchwork dùng một vòng lặp đơn Hai mảnh
A, B được chọn ngẫu nhiên, mảnh A có màu sáng trong khi mảnh B có màu tối
Một số liệu thống kê duy nhất sẽ cho biết dấu hiệu có xuất hiện hay không
Patchwork có đặc điểm là không phụ thuộc vào nội dung của ảnh chứa và kỹ thuật này
có khả năng tránh được các biến đổi phi hình học
Để minh họa, ảnh chứa trong ví dụ này có mức sáng 256, hệ thống lượng
tử tuyến tính sẽ bắt đầu từ 0 và tất cả các mẫu không phụ thuộc vào các mẫu
khác, hay nói chính xác hơn là các mẫu độc lập với nhau
Hình 4 Vòng lặp đơn trong thuật giải Patchwork
Nguyên lý thuật giải:
Sử dụng lý thuyết thống kê, hàm phân phối Gaussian để mã hóa
Chọn một khóa để tạo một dãy số ngẫu nhiên
Dựa vào các số trên dãy số ngẫu nhiên, chọn ra mỗi lần hai mảnh trên
Trang 26Trang 25
ảnh chứa, một mảnh có giá trị sáng (A-ai) và một mảnh có giá trị tối hơn (B-bi)
Trừ vào ai một lượng δ và cộng vào bi một lượng δ Đối với mức sáng
256 thì δ có giá trị từ 1 đến 5
Lặp lại quá trình n lần (thông thường n ≈10000)
Sử dụng hàm phân phối Gaussian để tính S với độ tin cậy tốt Nếu S
dương thì giá trị mã hóa là 1, nếu S âm thì mã hóa 0 Sau đây là bảng số liệu mô tả mối quan hệ giữa n và độ tin cậy, với δ = 2 :
Bảng 1 Mối quan hệ giữa n và độ tin cậy
Vì n hoặc δ tăng, nên đồ thị hàm phân bố của S ′n dịch chuyển qua phải Sau đây là một số cải tiến của phương pháp Patchwork:
Các mảnh bao gồm nhiều pixel tốt hơn các mảnh chỉ có một pixel
Kết hợp với mã affine hay các thông tin heuristic dựa trên đặc điểm
nhận biết sẽ làm phương pháp này mạnh hơn Mã hóa Patchwork nhạy với các phép biến đổi affine, nếu các điểm trên ảnh chứa bị dịch chuyển bới các phép tịnh tiến hay biến đổi tỉ lệ thì dữ liệu nhúng sẽ bị mất
Trang 27Trang 26
Patchwork có khả năng chống lại các thao tác xén ảnh, nếu các mảnh
không nằm trong phạm vi bị xén thì dữ liệu nhúng vẫn giữ nguyên
Hình dáng của mảnh:
Hình 3.2 mô tả ba loại hình dáng mảnh và sự phân bố tương ứng với mảnh đó Hình 3.2 a) mảnh nhỏ, cạnh sắc, kết quả là phần lớn năng lượng của mảnh tập trung ở phần tần số cao của mảnh: dễ bị mất dữ liệu khi qua thao tác nén mất dữ liệu Hình 3.2 b) thì năng lượng tập trung ở phần tần số thấp Hình 3.2.c) phân phối năng lượng đều ở phần tần số cao và tần số thấp
HÌnh 5 Hình dáng các mảnh
Lựa chọn hình dáng mảnh tối ưu nhất phụ thuộc vào từng loại ảnh và các thao tác trên ảnh Nếu ảnh chứa có định dạng là JPEG thì mảnh có dạng như hình 3.2b) là tối ưu nhất vì năng lượng phân bố tại phần tần số thấp Nếu trên ảnh chứa có thao tác tăng độ tương phản thì mảnh như hình 3.2a) là tốt nhất Nếu trong trường hợp không biết các thao tác trên ảnh thì chọn mảnh như hình 3.2c) là tốt nhất
Sự sắp xếp các mảnh cũng ảnh hưởng đến hiệu quả của phương pháp Hình 3.3
mô tả ba phương pháp sắp xếp mảnh Hình 11a) là sắp xếp theo dạng lưới thẳng,
phương pháp này ít được sử dụng khi n lớn vì HSV rất nhạy với dạng này Hình 3.3b)
là sắp xếp theo dạng lục giác đều Hình 3.3c) là sắp xếp theo ngẫu nhiên
Trang 28Trang 27
Hình 6 Sự sắp xếp các mảnh
Phương pháp Patchwork có vài giới hạn: thứ nhất là tỉ lệ dữ liệu mã hóa thấp, chỉ phù hợp cho các ứng dụng mã hóa với tỉ lệ dữ liệu thấp, thứ hai là các pixel trong ảnh chứa phải được ghi nhớ và không được di chuyển
2.3.2.2.1.2 Mã hóa kết cấu khối (texture block coding)-Cách tiếp cận trực quan:
Phương pháp này ẩn dữ liệu trong những mẫu kết cấu ảnh ngẫu nhiên và liên tiếp Kỹ thuật này được thực hiện bằng cách sao chép một vùng ảnh từ một mẫu kết cấu ngẫu nhiên trên ảnh đến một vùng khác có kết cấu tương tự
Hình 7 Một ví dụ về phương pháp mã hóa kết cấu khối
Quá trình giải mã:
Trang 29Trang 28
Tự động đặt hai ảnh tương quan chồng lên nhau (ảnh gốc và ảnh sau khi nhúng dữ liệu) Việc này sẽ làm hiện ra các đỉnh mà ở đó có các vùng chồng chéo lên nhau
Dịch chuyển ảnh Sau đó trừ giá trị ảnh gốc với ảnh sao chép của nó
Gán giá trị 0 cho mép bìa ảnh nếu cần thiết
Điều chỉnh kết quả và giới hạn nó để nó chỉ gồm những giá trị gần 0
Ảnh chứa dữ liệu sẽ thấy được các giá trị đó
Nếu ảnh chứa dữ liệu ẩn bị thao tác bằng các phép biến đổi thì cả hai vùng sẽ bị thay đổi như nhau vì chúng là hai vùng đồng nhất có kết cấu giống nhau
Nếu chọn lựa vùng có kích thước hợp lý, phần bên trong của khối thay đổi như nhau qua hầu hết các phép biến đổi phi hình học
Mã hóa kết cấu khối không phải là không có bất lợi Hiện nay, kỹ thuật này cần
có các thao tác của con người để chọn lựa vùng nguồn và vùng đích có kích thước
thích hợp và ước lượng ảnh hưởng trực quan của các biến đổi trên ảnh Thật ra có thể
tự động hóa quá trình này bằng cách sử dụng một máy tính nhận dạng kết cấu các
vùng sao chép và dán lên ảnh Tuy nhiên, kỹ thuật này không có tác dụng với ảnh
thiếu vùng có kích thước kết cấu vừa phải và kết cấu liên tiếp
2.3.2.2 2 Mã hóa với dữ liệu bit cao – Mã hóa affine:
Mã hóa dữ liệu với tỉ lệ bit cao có thể có rất ít tác động lên ảnh chứa, nhưng nó không có khuynh hướng tránh được các biến đổi trên ảnh chứa Hình thức thông
thường nhất là thay thế bit thấp nhất của độ chói bằng dữ liệu nhúng
Không có một kỹ thuật đã biết nào tránh được tất cả các phép biến đổi hay tổ hợp các phép biến đổi Đối với tổ hợp các phép biến đổi, thường người ta sử dụng
thêm một kỹ thuật khác để hỗ trợ Kỹ thuật hỗ trợ này rất quan trọng đối với các phép biến đổi affine, và nó giữ lại sự đồng bộ cho luồng dữ liệu mã hóa
Trang 30Trang 29
Sau đây là hai phương pháp của Yu –Yuan Chen , Hsiang – Kuang Pan và Yu – Chee Tseng ở khoa Khoa học máy tính trường Đại học Trung tâm quốc gia Đài Loan Hai phương pháp này nhúng dữ liệu bằng cách thay thế các bit trong dữ liệu ảnh,
chúng không tránh được các phép biến đổi affine, nhưng số lượng dữ liệu được nhúng lớn và khả năng một người thứ ba giải mã được là rất khó, tuy nhiên cả hai phương
pháp đều sử dụng ảnh nhị phân làm đối tượng nhúng
2.3.2.2 2.1 Phương pháp nhúng dữ liệu vào các khối, mỗi khối chứa tối đa một bit dữ liệu:
Phương pháp này nhúng dữ liệu bằng cách chia ảnh ra thành các khối kích
thước bằng nhau, mỗi khối được nhúng tối đa một bit dữ liệu Dữ liệu của mỗi khối là các bit LSB của từng pixel trong ảnh
Trang 31- Nếu TRUE: nhảy đến bước 3 để nhúng 1 bit vào Fi
- Nếu FALSE: trong khối Fi sẽ không có dữ liệu được nhúng
Bước 3:
Giả sử bit cần được nhúng là b
(a) If ( SUM ( Fi Ù K ) mode 2 =b ) then
Giữ nguyên Fi
(b) Else if SUM ( Fi Ù K ) = SUM ( K ) - 1 then
Chọn ngẫu nhiên một bit [Fi]j,k =0 với [K]j,k =1 và đổi [Fi]j,k =1
c) Else if SUM ( Fi Ù K ) =1 - then
Chọn ngẫu nhiên một bit [Fi]j,k =1 với [K]j,k =1 và đổi [Fi]j,k = 0
Trang 32Vỏ SUM ( Fi đỉ K ) = SUM ( F ỉ K ) Ẹ 1 Dấu + xảy ra trong trường hợp
[ Fi ] j ,k =0, dấu – xảy ra trong trường hợp , [ Fi ] j ,k = 1
Biểu thức liởn quan:
0 < SUM ( Fi đỉ K ) < SUM ( K ) Þ SUM ( Fi đỉ K ) ã b mod 2
Xờt 3 giõ trị của SUM ( Fi ỉ K ) :
SUM ( Fi ỉ K ) = 1 :thớ SUM ( Fi đ K ) = SUM ( Fi ỉ K ) + 1 ,ỉ, phải tăng
SUM ( Fi ỉ K )
thởm một giõ trị để thỏa điều kiện (3.2)
Nởn ta chọn ngẫu nhiởn một i [Fi ] j,k = 0 với K j ,k = 1 vỏ thay đổi [ Fi ] j ,k = 1
Trang 33
Trang 32
SUM ( Fi Ù K ) = SUM ( K ) - 1 : SUM ( Fi ¢ K ) = SUM ( Fi Ù K ) - 1 , phải giảm SUM ( Fi Ù K ) đi một giá trị để thỏa điều kiện (3.2) Nên chọn ngẫu nhiên một [
Fi ] j ,k = 1 với K j ,k = 1 và thay đổi [ Fi ] j , k = 0
Với các giá trị còn lại của SUM ( Fi Ù K ) nếu tăng hay giảm SUM ( Fi Ù K ) một giá trị thì vẫn thỏa điều kiện (3.2) Chọn ngẫu nhiên một [ Fi ] j ,k với K j ,k = 1và , [ Fi ] j ,k ¢ là phần bù của [ Fi ] j ,k
Xét SUM ( F3 Ù K ) = 3 thỏa (3.1), b2=1 thỏa (a) nên giữ nguyên F3
Xét SUM ( F4 Ù K ) = 4 thỏa (3.1), và SUM ( F4 Ù K ) = SUM ( K ) - 1
thỏa (c), lấy ngẫu nhiên [F2]2,3 = 1 với K2,3 =1 và đổi 2 2,3 2 2,3 [F]
=0=[F] ¢
Hình 8 Nhúng 3 bit vào ảnh 6 x 6 Đánh giá thuật giải:
Do sử dụng toán tử logic AND nên: SUM ( Fi Ù K ) không bao giờ vƣợt quá SUM (K)
Trang 34Trang 33
So sánh giữa F và F ¢ tại những vị trí hàng i, cột j tương ứng, nếu hai giá trị khác nhau thì tại đó K i,j =1 và ngược lại K i,j =0 Như vậy, khi so sánh tất cả các hần
tử của F và F¢ thì ta có thể suy ra toàn bộ ma trận K, K không còn là bí mật nữa
Nếu K có nhiều giá trị 1 thì sự khác nhau giữa F và F¢ gia tăng, gây nên
sự nghi ngờ có chứa dữ liệu Nhưng nếu K có nhiều giá trị 0 thì thuật giải cũng không
hoàn toàn khả thi
Nếu F có tất cả các giá trị hoàn toàn là 1 thì khả năng nghi nghờ chứa dữ liệu gia tăng và suy luận ra K dễ dàng Nhưng nếu F có nhiều giá trị 0 thì tỉ lệ ẩn dữ
liệu không cao
Tóm lại, việc chọn K và F phù hợp là điều quan trọng Phương pháp mã hoá dữ
liệu này không an toàn cao, số lượng dữ liệu được chứa không nhiều
2.3.2.2 2.2 Phương pháp nhúng dữ liệu vào các khối, mỗi khối chứa tối đa hai bit dữ liệu:
Phương pháp này là phương pháp cải tiến phương pháp trên Nó bảo đảm tỉ lệ
ẩn của dữ liệu cao hơn, do dùng một ma trận trọng lượng W Phương pháp này cũng dựa trên phép toán mod và toán tử logic Å Ở mỗi khối m´ n, sẽ có r bit được nhúng với 2r- 1£ mn , nhưng chỉ làm thay đổi tối đa 2 bit trên ma trận chứa
Ký hiệu:
F: ma trận điểm ảnh, sẽ chứa dữ liệu được nhúng, giả sử là F được chia thành k khối F i có kích thước m´ n Sau các bước thực hiện, F sẽ bị thay đổi thành ma trận F¢
K: ma trận khóa Nó là một ma trận m´ n, được chọn ngẫu nhiên phù
hợp theo từng trường hợp Các giá trị trong K là 0 hoặc 1
W: ma trận trọng lượng m´ n, với [W] i,j ∈ {1 2r –1} Cách sắp xếp các
giá trị được chọn ngẫu nhiên
r: số lượng bit được nhúng vào một khối m´ n, r thỏa2r- 1£ mn
B: các thông tin được nhúng, B gồm kr bit, k là số lượng khối của F
A 1 , A 2 là hai ma trận m´ n, toán tử A 1 ⊗ A 2 là toán tử mà " i,j i=1 m,
Trang 35 " k Î {1… 2r –1}, k phải xuất hiện ít nhất một lần trong W (3.6)
Ma trận W được chọn ngẫu nhiên thỏa điều kiện và theo từng trường hợp
Với m hàng n cột, W có thể có các lựa chọn sau:
Có 2r –1 giá trị, vì thế để chọn giá trị cho mn phần tử có: 2r 1Cmn-
Ta có thể sắp xếp ngẫu nhiên các giá trị: (2r –1)! cách
Với mn - 2r –1 giá trị còn lại có thể sắp xếp ngẫu nhiên:
(2r−1)mn−(2r−1)
Vậy: số lần chọn lựa W : C2mn 1 *(2r - 1)!*(2r - 1) mn- 2 – 1
Ví dụ:m = n = 8 và r = 5 Ta có C64 31!*3133 cách chọn W
Vì thế tỉ lệ bảo mật thông tin rất cao nếu W không được công bố
Vì phương pháp này dùng toán tử mod: b1b2 br = SUM (( Fi Å K ) Ä W )
Fi sẽ được chuyển thành i F¢ bằng cách lấy phần bù của một giá trị nào đó
trong Fi để thỏa công thức sau:
SUM (( Fi ¢Å K ) Ä W ) º b1b2 br (mod 2r )
Trang 36Đây là biểu thức chênh lệch giữa tổng và giá trị được nhúng, để giải mã
theo công thức (3.8) ta phải tăng tổng thêm một giá trị d
Đặt S w = S w¢ với w º w¢mod 2r
Khi d=0 không cần thay đổi Fi
Nếu d ≠ 0, thực hiện các bước sau:
Trang 37Trang 36
Chọn ngẫu nhiên một h Î {0,1…,2r-1} với điều kiện Shd ¹ Æ và S-(h-1)d ≠Æ
Chọn ngẫu nhiên một bộ (j,k) Î Shd và lấy phần bù của [Fi]j,k
Chọn ngẫu nhiên một bộ (j,k) Î S-(h-1)d và lấy phần bù của [Fi]j,k
Để tăng tổng thêm một lƣợng d, ta dùng hai tập khác rỗng Shd và S-(h-1)d
Tổng sẽ tăng thêm hd + (- (h-1)d) = d Tuy nhiên ta phải gán giá trị cho các tập S0, S2.r, S2.2r, S3.2r… luôn rỗng
Theo điều kiện của W, phải có tối thiểu một [W]j,k = w Nếu
[Fi]j ,k ∧ [K]j ,k = 0 thì lấy phần bù của [F i ] j,k sẽ làm tăng tổng thêm w , nhƣ
vậy
Sw ≠ ∅ Nhƣ vậy [ Fi ] j ,k Ù[ K ] j ,k = 1 , thì khi lấy phần bù [Fi]j,k sẽ làm giảm tổng đi w, hay tăng tổng lên 2r-w (mod 2r), nhƣ vậy tập S 2 - w ¹ Æ , với w ¹ 2r-1 vì w=2r-w lúc đó S2 - w ¹ Æ
Trang 38Ta sẽ kiểm tra lần lượt các giá trị của h:
Đầu tiên h=1, nếu Sd ¹ Æ thì h=1là giải pháp được chọn, nếu trái lại thì
S- d ¹ Æ theo bổ đề 1
h=2, nếu S2d ¹ Æ thì h=2 được chọn, ngược lại 2d S- ¹ Æ theo bổ đề 1
Tiếp tục kiểm tra, nếu tất cả Si đều là rỗng thì S2 ¹ Æ theo bổ đề 2
Và với 2r-1, $ h sao cho 2r-1 là bội số của d
Như vậy luôn tìm được một h cho vấn dề
Các ma trận được mô tả như hình dưới đây Thực hiện các bước:
F1: SUM (( F1 Å K ) Ä W ) º 0(mod 8) Và dữ liệu nhúng là 001, ta phải tăng tổng thêm 1 Vì [ F1 Å K ]2,4 = 0 và [W]2,4 = 1 ta có thể lấy phần bù của [F1]2,4
F2: SUM (( F2 Å K ) Ä W ) º 2 , dữ liệu nhúng là 010, không cần phải thay đổi F2
F3: SUM (( F3 Å K ) Ä W ) º 2 , dữ liệu nhúng là 000, ta phải tăng tổng thêm 6 bằng cách lấy phần bù của [F3]4,4
F4: SUM (( F4 Å K ) Ä W ) º 4 , dữ liệu nhúng là 001, ta phải tăng tổng thêm 5 bằng cách lấy phần bù của [F4]2,2 và [F4]3,2 Vì không có một bộ chỉ số nào