MỞ ĐẦU An toàn dữ liệu (data security) là một lĩnh vực quan trọng của công nghệ thông tin với mục tiêu nghiên cứu, phát triển các phương thức ngăn chặn sự truy cập dữ liệu bất hợp pháp nhằm sao chép trái phép hoặc làm sai lệch thông tin trên mạng. Có hai phương thức thường được sử dụng trong an toàn dữ liệu là mật mã và giấu tin. Mật mã là một quá trình chuyển đổi bản rõ thành bản mã mà không thể truy cập được bởi người dùng trái phép. Mật mã gồm hai quá trình: mã hóa và giải mã.
Khi mã hóa hay giải mã dữ liệu đều sử dụng khóa. Dựa trên khóa sử dụng, mật mã được chia thành hai loại: Mật mã khóa bí mật (còn gọi là mật mã khóa đối xứng) và mật mã khóa công khai (còn gọi là mật mã khóa bất đối xứng). Trong mật mã khóa bí mật, sử dụng chung một khóa cho cả hai quá trình mã hóa và giải mã. Trái lại, trong mật mã khóa công khai, dùng khóa công khai để mã hóa, khóa bí mật để giải mã.
Giấu tin là kỹ thuật nhúng dữ liệu vào một sản phẩm ảnh số (hoặc âm thanh, video, văn bản, dữ liệu,.) nhằm truyền thông tin hoặc bảo vệ sản phẩm đó. Giấu tin gồm hai quá trình: Nhúng tin và trích tin. Để tăng tính bảo mật, một khóa bí mật có thể được sử dụng cho cả hai giai đoạn nhúng tin và trích tin. Với mã hóa, sản phẩm sau khi mã hóa không rõ nghĩa dễ gây sự tò mò, kích thích sự tấn công của tin tặc.
Trong khi đó, đối với giấu tin, sản phẩm chứa tin không khác so với các sản phẩm thông thường, không gây ra sự nghi ngờ cho tin tặc. Giấu tin hiện vẫn nhận được nhiều sự quan tâm từ cộng đồng nghiên cứu: trong năm năm gần đây, có hơn 13.560 công bố khoa học được ghi nhận trên Thư viện số của IEEE 1. Giấu tin (data hiding) được chia thành hai hướng 1 https://ieeexplore.org/search/searchresult.jsp?queryText="datahiding"ORsteganographyORwatermarking&highlight=true& returnFacets=ALL&returnType=SEARCH&ranges=2015_2020_Year 2 nghiên cứu chính: giấu tin mật (steganography) và thủy vân (watermarking). Giấu tin mật chú trọng tin giấu, các tác động đều được xem xét để đảm bảo tin giấu không bị phát hiện hoặc sai lệch.
Thủy vân lại chú trọng hơn đến sản phẩm, tính bền vững sẽ được dùng trong bảo vệ bản quyền sản phẩm, ngược lại tính dễ vỡ lại được dùng để xác thực tính toàn vẹn hay phát hiện giả mạo. Đối với một số ứng dụng trong y tế, quân đội, luật pháp, giáo dục,. việc khôi phục lại ảnh gốc (sau khi nhúng dữ liệu) để tiếp tục sử dụng là nhu cầu bắt buộc. Với các trường hợp như vậy, thường phải sử dụng kỹ thuật giấu tin thuận nghịch (reversible data hiding) hay còn gọi là giấu tin bảo toàn (lossless data hiding).
Giấu tin thuận nghịch là kỹ thuật nhúng tin mà sau khi tách thông tin nhúng, ta khôi phục được ảnh gốc ban đầu. Khác với giấu tin bền vững, đòi hỏi sự bền vững trước các phép tấn công, theo [83], kỹ thuật giấu tin thuận nghịch là một kỹ thuật dễ vỡ, kỹ thuật này không quan tâm đến sự bền vững để chống lại các cuộc tấn công. Tình hình nghiên cứu trong và ngoài nước Thuật toán giấu tin thuận nghịch đầu tiên được Barton đề xuất vào năm 1997 [15]. Ông đề xuất nhúng thông tin xác thực vào sản phẩm số, sau khi trích xuất thông tin xác thực, người nhận có thể khôi phục được sản phẩm số ban đầu.
Giấu tin thuận nghịch dựa trên phép biến đổi modulo được Honsinger và cộng sự [44] đưa ra vào năm 2001. Phương pháp Modulo [44] thực hiện nhúng dữ liệu bằng phương pháp cộng modulo 256 (255 là giá trị tối đa của điểm ảnh đa cấp xám 8 bít). Cộng modulo có thể ngăn chặn được việc tràn dữ liệu khỏi miền điểm ảnh, nghĩa là một điểm nhỏ hơn 0 hoặc vượt quá 255 (đối với ảnh đa cấp xám 8 bít), tuy nhiên ảnh chứa tin có chất lượng không cao, nhiều nhiễu. Ý tưởng cộng modulo 256 để tránh hiện tượng vượt ra khỏi miền điểm ảnh, sau này cũng được nhiều tác giả sử dụng [54, 66].
Nhược điểm lớn của phương pháp này đó là chất lượng ảnh kém với nhiều nhiễu muối tiêu. Phương pháp xác thực thuận nghịch dựa trên nén bảo toàn được 3 Fridrich và cộng sự [35] đề xuất. Ý tưởng của lược đồ này là tạo ra một không gian trống bằng cách nén một mặt phẳng bít S của ảnh gốc, sau đó sử dụng không gian trống tạo được để nhúng dữ liệu. Phương pháp này có ưu điểm là chất lượng ảnh chứa tin tốt vì mỗi giá trị điểm ảnh chỉ thay đổi nhiều nhất là một đơn vị, nếu chọn mặt phẳng S gồm bít ít ý nghĩa nhất (Least Significant Bit - LSB) của các điểm ảnh.
Tuy nhiên, khả năng nhúng tin phụ thuộc vào miền được chọn S và thuật toán nén. Nói chung, khả năng nhúng của thuật toán không cao và khả năng nhúng bị phụ thuộc vào đặc trưng thống kê của mỗi ảnh. Phương pháp giấu tin dựa trên lượng tử hóa [17] là một sự mở rộng LSB (Generalized-LSB) và ứng dụng nó trong giấu tin thuận nghịch. Ý tưởng của phương pháp này chính là lượng tử hóa.
Để khôi phục ảnh gốc, cần lưu các giá trị dư thừa của phép lượng tử bằng cách ghép các phần dư của tất cả các điểm ảnh thành một chuỗi nhị phân và nén chuỗi này bằng một phép nén bảo toàn. Nhúng tin thuận nghịch trên ảnh Jpeg nhận được sự quan tâm lớn của các nhà nghiên cứu do tính chất phổ biến của ảnh này. Theo [83] việc nhúng tin thuận nghịch trên ảnh Jpeg sử dụng các hệ số DCT lượng tử, bảng lượng tử và bảng mã Huffman. Ý tưởng chung của các phương pháp là thực hiện các phép biến đổi thuận nghịch trên ba đại lượng nêu trên.
Trong [36] các tác giả đề xuất hai phương pháp. Trong phương pháp thứ nhất, chọn ra tập L cặp chỉ số ứng với các hệ số tần số trung. Sau đó, trích các hệ số với chỉ số tương ứng của các khối DCT lượng tử tạo thành một dãy nhị phân và nén dãy này để nhận được một khoảng trống chứa thủy vân. Phương pháp thứ hai độc đáo hơn, dựa trên nhận xét các hệ số DCT bằng tích các hệ số lượng tử với giá trị lượng tử.
Trong [7, 19, 98], các tác giả đều sử dụng cách biến đổi thuận nghịch hệ số DCT lượng tử. Phương pháp mở rộng hiệu (DE- Difference Expansion) do Jun Tian đề xuất [94, 95] là một trong những phương pháp giấu tin thuận nghịch đáng được quan tâm nhất. Ý tưởng của phương pháp này là nhúng một bít trên 4 hiệu của một cặp hai điểm ảnh kề nhau. Các khái niệm khả mở, khả biến được tác giả đưa ra.
Chỉ các cặp khả mở mới có thể nhúng được một bít. Muốn trích được dữ liệu và khôi phục ảnh gốc, thì bên nhận cần phải biết được cặp nào là khả mở và cặp nào không khả mở. Để đạt được điều này, bản đồ định vị, được thiết lập trong bước nhúng tin, là một dãy nhị phân nhằm xác định cặp đang xét là khả mở hay không khả mở. Bản đồ định vị được nén và nhúng cùng dữ liệu.
Do có bản đồ định vị nên hạn chế đáng kể khả năng nhúng của phép mở rộng hiệu. Một hướng phát triển của phương pháp mở rộng hiệu là áp dụng trên các khối ảnh hay véc tơ ảnh. Điều này có hai lợi ích: vì bản đồ định vị ứng với từng khối nên kích thước giảm đáng kể, thậm chí không cần nén, thứ hai là trong mỗi một khối n điểm ảnh, tạo ra được n − 1 hiệu, như vậy số hiệu sẽ tăng lên và khả năng nhúng cũng nhiều hơn. Người đầu tiên đưa ra một phép biến đổi nguyên trên véc tơ n điểm ảnh, mở rộng phép biến đổi hai điểm ảnh của J.Tian là Alattar [10], sau đó áp dụng phép biến đổi này để nhúng n − 1 bít trên mỗi véc tơ điểm ảnh.
Khả năng nhúng của phương pháp Alattar được cải thiện đáng kể. Tuy nhiên một hạn chế lớn của phương pháp này là thuật toán kiểm tra một véc tơ có phải là khả mở hay không có thời gian hàm mũ (đối với n), nên phương pháp này chỉ có thể dùng được đối với các véc tơ điểm ảnh ứng với các khối ảnh cấp 3 hoặc cấp 4. Điều đó hạn chế khả năng ứng dụng của phương pháp Alattar. Trong [7, 9, 52, 56], các tác giả cũng xét mở rộng hiệu trên các véc tơ điểm ảnh theo hướng chọn một phần tử làm cơ sở, sau đó tạo ra các hiệu bằng cách trừ mỗi phần tử còn lại cho phần tử cơ sở.
Các phương pháp khác nhau ở cách chọn phần tử cơ sở. Một số mở rộng khác của phương pháp J.Tian [26] để nâng cao khả năng nhúng là: nhúng hai bít trên một bộ ba điểm ảnh, như vậy tỉ lệ nhúng là 2/3 lớn hơn so với J.Tian là 1/2; các phép biến đổi thuận nghịch nguyên, như phép biến đổi tương phản [28], phép biến đổi thuận nghịch nguyên dựa trên ma trận [88]. Phương pháp mở rộng sai số dự báo (PEE- Prediction Error Expansion) 5 là một hướng phát triển tiềm năng khác của DE dựa trên nhận xét: nếu hiệu được xét càng nhỏ thì khả năng khả mở càng tăng. Trên ý tưởng này, các phương pháp dự báo được phát triển.
Trong tài liệu [91] đã sử dụng phương pháp dự báo MED (xem Mục 1.2) để dự báo giá trị của mỗi điểm ảnh. Sau đó, lập sai số dự báo: e = x − x̂, trong đó x là giá trị gốc, x̂ là giá trị dự báo của x. Từ đó, ta có một dãy sai số dự báo: E = (e1 , e2 ,. Các bít dữ liệu được nhúng bằng cách mở rộng sai số dự báo: e0i = 2ei + bi.
So với DE thì PEE có khả năng nhúng cao hơn nhiều vì giá trị sai số dự báo thường nhỏ và số lượng sai số nhiều gấp khoảng hai lần số hiệu của các cặp điểm ảnh. Trong [103] đề xuất phương pháp tương tự nhưng sử dụng bộ dự báo hình thoi (xem Mục 1. Bản đồ định vị là một thách thức lớn đối với các phương pháp giấu tin thuận nghịch dựa trên DE trên hai phương diện: thứ nhất là nó chiếm khá nhiều bít và cần phải nhúng chung với dữ liệu nên giảm đáng kể khả năng nhúng tin. Thứ hai, việc điều khiển khả năng nhúng, tức là với một yêu cầu nhúng dữ liệu cho trước làm sao điều khiển để nhận được độ biến đổi ảnh nhỏ nhất (chất lượng ảnh tốt nhất).
Đã có một số nghiên cứu về vấn đề này. Để điều khiển khả năng nhúng, J.