Nghiên cứu phát triển các thuật toán giấu tin trong ảnh và ứng dụng trong mã đàn hồI Nghiên cứu phát triển các thuật toán giấu tin trong ảnh và ứng dụng trong mã đàn hồI Nghiên cứu phát triển các thuật toán giấu tin trong ảnh và ứng dụng trong mã đàn hồI luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
––––––––––––– –––––––––––––
Nguyễn Hải Thanh
NGHIÊN CỨU PHÁT TRIỂN CÁC THUẬT TOÁN GIẤU TIN TRONG ẢNH
VÀ ỨNG DỤNG TRONG MÃ ĐÀN HỒI
Chuyên ngành: Đảm bảo toán học cho máy tính và các hệ thống tính toán
Mã số: 62.46.35.01
LUẬN ÁN TIẾN SĨ TOÁN HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC:
1 PGS TS Phan Trung Huy
2 PGS.TS Tống Đình Quỳ
Hà Nội–2012
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các kết quả được viết chung với các tác giả khác đều được sự đồng ý của đồng tác giả trước khi đưa vào luận án Các kết quả nêu trong luận án là trung thực và chưa từng được ai công bố trong các công trình nào khác
Hà Nội, ngày 07 tháng 09 năm 2012
Nguyễn Hải Thanh
Trang 3LỜI CẢM ƠN
Trước hết, tác giả xin gửi lời cảm ơn sâu sắc tập thể hướng dẫn khoa học, PGS.TS Phan Trung Huy và PGS.TS Tống Đình Quỳ, những người thầy đã chỉ ra hướng nghiên cứu lý thú Các thầy là tấm gương cho tôi trong nghiên cứu cũng như trong cuộc sống
Tác giả xin gửi lời cảm ơn đến các thày/cô ở Viện Toán ứng dụng và Tin học, các thày/cô ở Trung tâm Đào tạo Sau đại học Trường Đại học Bách khoa Hà Nội cùng các đồng nghiệp ở Vụ Khoa học, Công nghệ và Môi trường - Bộ Giáo dục và Đào tạo
đã hỗ trợ, giúp đỡ tác giả trong công tác để tác giả có thể dành thời gian thực hiện luận
án
Tác giả xin gửi lời cảm ơn chân thành đến các thầy phản biện và các thầy trong hội đồng đã trao đổi và góp nhiều chỉ dẫn quý báu, giúp cho luận án được trình bày tốt hơn
Tác giả xin gửi lời cảm ơn đến bạn bè và nhiều người còn chưa được nhắc đến Cuối cùng nhưng không phải tất cả, tác giả xin bày tỏ lòng biết ơn gia đình đã động viên giúp đỡ rất nhiều về tinh thần, thời gian để tác giả hoàn thành luận án
Trang 4MỤC LỤC
DANH MỤC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT 6
DANH MỤC CÁC BẢNG 7
DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ 8
MỞ ĐẦU 9
Ch ương 1 CÁC KIẾN THỨC CƠ BẢN 15
1.1 Một số khái niệm 15
1.1.1 Nhóm 15
1.1.2 Nhóm xyclic 15
1.1.3 Vành 16
1.1.4 Môđun 16
1.1.5 Vị nhóm 16
1.1.6 Ngôn ngữ 17
1.1.7 Otomat 18
1.1.8 Các phép toán trên ma trận 18
1.2 Các tính chất cơ bản của mã 19
1.2.1 Mã và đồng cấu mã 19
1.2.2 Kiểm tra tính chất mã 20
1.3 Mật mã học 21
1.3.1 Giới thiệu chung về mã hóa 21
1.3.2 Khóa 21
1.3.3 Mã đối xứng và phi đối xứng 22
1.3.4 Thám mã (Cryptanalyis) 22
1.4 Giấu tin trong ảnh 23
1.4.1 Các kỹ thuật được sử dụng để giấu tin 24
1.4.2 Phương pháp LSB (LSB- Least significant bit) 25
1.4.3 Phương pháp Wu-Lee trên ảnh nhị phân 26
1.4.4 Phương pháp Wu-Lee trên ảnh Bitmap 28
1.4.5 Phương pháp CPT trên ảnh nhị phân 29
Trang 5Ch ương 2 GIẤU TIN TRÊN ẢNH NHỊ PHÂN 32
2.1 Tỷ lệ giấu tin tối đa của các lược đồ giấu tin k-block 32
2.2 Các lược đồ giấu tin CPT mở rộng 33
2.2.1 Phương pháp giấu tin CPTE 33
2.2.2 Phương pháp CPTE1 39
2.2.3 Phương pháp CPTE2 42
2.3 Tăng cường chất lượng ảnh nhị phân 46
2.3.1 Phương pháp tăng cường chất lượng ảnh nhị phân MCPTE2 48
2.3.2 Chứng minh tính đúng đắn của thuật toán MCPTE2 52
2.4 Phương pháp môđun 52
2.4.1 Giấu tin theo phương pháp module sử dụng tập 1-cơ sở 53
2.4.2 Giấu tin theo phương pháp module sử dụng tập 2-cơ sở 54
2.4.3 Tính đúng đắn của các sơ đồ giấu tin 1-M, 2-M 54
2.4.4 Lược đồ giấu tin sử dụng phương pháp môđun trên vành Z2 55
2.4.5 Lược đồ giấu tin sử dụng phương pháp môđun trên vành Z3 57
2.5 Đánh giá chất lượng ảnh nhị phân sau khi giấu tin 59
Ch ương 3 GIẤU TIN TRÊN ẢNH MÀU 62
3.1 Tổng quan về giấu tin theo tiếp cận chẵn lẻ 62
3.2 Các thuật toán giấu tin dựa trên tiếp cận chẵn lẻ 64
3.2.1 Thuật toán EzStego 64
3.2.2 Thuật toán chẵn lẻ tối ưu 66
3.2.3 Thuật toán xác định chẵn lẻ theo vòng lặp 68
3.2.4 Thuật toán Rho 69
3.3 Đánh giá các thuật toán giấu tin theo tiếp cận chẵn lẻ 72
3.4 Các thuật toán tăng cường chất lượng ảnh chỉ số 73
3.4.1 Thuật toán MFOPA1 75
3.4.2 Thuật toán MFOPA2 78
3.4.3 Thuật toán MFOPA3 79
3.5 Lược đồ giấu tin trên ảnh chỉ số theo tiếp cận môđun 80
3.5.1 Lược đồ giấu tin 2-M3 80
3.5.2 Lược đồ giấu tin 2-M4 82
Trang 63.6 Đánh giá chất lượng ảnh màu sau khi giấu tin 84
Ch ương 4 S Ơ ĐỒ MẬT MÃ SỬ DỤNG KỸ THUẬT GIẤU TIN VÀ TÌM KIẾM THÔNG TIN TRÊN DỮ LIỆU MÃ HÓA 86
4.1 Mã đàn hồi 86
4.1.1 Đồ thị mã đàn hồi 88
4.1.2 Tích đàn hồi 89
4.1.3 Mã đàn hồi 90
4.2 Đánh giá độ an toàn của các thuật toán giấu tin 91
4.2.1 Thuật toán giấu tin trong lược đồ giấu tin CPTE 91
4.2.2 Thuật toán giấu tin trong lược đồ giấu tin CPTE1 92
4.2.3 Thuật toán giấu tin trong lược đồ giấu tin CPTE2 92
4.2.4 Thuật toán giấu tin trong lược đồ giấu tin MCPTE2 93
4.3 Sơ đồ mã hóa đàn hồi theo tiếp cận giấu tin 95
4.3.1 Thao tác ảo 97
4.3.2 Mã đàn hồi trên đồ thị với tiếp cận giấu tin 98
4.4 Tìm kiếm thông tin 100
4.4.1 Tìm kiếm xấp xỉ 100
4.4.2 Tìm kiếm trong văn bản mã hóa 103
4.5 Tìm kiếm theo tiếp cận mờ 105
4.5.1 Khái niệm độ mờ 105
4.5.2 Ôtômát mờ sánh mẫu 105
4.5.3 Tìm kiếm trên văn bản mã hóa đàn hồi sử dụng kỹ thuật giấu tin 106
KẾT LUẬN 109
TÀI LIỆU THAM KHẢO 111
DANH MỤC CÔNG TRÌNH CỦA TÁC GIẢ 113
Trang 7DANH MỤC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT
STT Ký hiệu/chữ viết tắt Ý nghĩa
1 |A| Lực lượng của tập A
2 x Giá trị phần nguyên dưới của x
3 CPT Chen-Pan-Tseng
4 CPTE CPT Extension
5 FOPA Fastest Optimal Parity Assignment (phương
pháp chẵn lẻ tối ưu nhanh nhất)
6 GIF Graphics Interchange Format
7 JPEG Joint Photographic Experts Group
8 MCPT Modification CPT
9 LSB Least significant bit (bit ít quan trọng nhất)
10 LCS Longest Common Subsequence (Dãy con
chung dài nhất)
11 LCF Longest Common Factor (Xâu con chung dài
nhất hay khúc con chung dài nhất)
12 MSDR Maximality of Secret Data Ratio (Tỷ lệ giấu tin
tối đa)
13 OPA Optimal Parity Assignment (phương pháp chẵn
lẻ tối ưu)
14 PA Parity Assignment (phương pháp chẵn lẻ)
15 PSNR Peak signal-to-noise ratio (tỷ lệ tín hiệu trên
nhiễu)
16 RLE Run – Length - Encoded
Trang 8DANH MỤC CÁC BẢNG
1 Bảng 2.1: So sánh tỷ lệ giấu tin tối đa với các sơ đồ CPT, CPTE,
CPTE2
62
2 Bảng 2.2: So sánh chất lượng ảnh có giấu tin của các phương pháp 63
Trang 9DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ
1 Hình 1: Phân loại kỹ thuật giấu tin 9
2 Hình 2.1: Ví dụ về ảnh nhị phân có giấu tin 48
3 Hình 2.2: Ví dụ về ảnh có giấu tin được điều khiển chất lượng 51
4 Hình 2.3: Các ảnh được sử dụng để đánh giá chỉ số PSNR 63
5 Hình 3.1: Ví dụ về đường đi Halminton trong trường hợp khi các cụm
điểm màu trên không gian P phân bố xa nhau 68
6 Hình 3.2: Ví dụ về các cây OPA 70
7 Hình 3.3: Ví dụ về các cây Rho 73
8 Hình 3.4a: Ví dụ về các phương pháp giấu tin trên ảnh chỉ số 76
9 Hình 3.4b: Ví dụ về các phương pháp giấu tin trên ảnh chỉ số 76
10 Hình 3.5: Ví dụ về ảnh chỉ số có giấu tin không điều khiển chất lượng 77
11 Hình 3.6: Ví dụ về ảnh có giấu tin được kiểm soát chất lượng 80
12 Hình 3.7a: So sánh chất lượng ảnh có giấu tin của các phương pháp 88
13 Hình 3.7b: So sánh chất lượng ảnh có giấu tin của các phương pháp 88
14 Hình 4.1: Đồ thị mã đàn hồi G 3 92
15 Hình 4.2: Mã hóa sử dụng tích đàn hồi 94
16 Hình 4.3: Sơ đồ mã hóa theo tiếp cận giấu tin 98
17 Hình 4.4: Phương pháp so mẫu trên miền mã hóa có sử dụng otomat
18 Hình 4.5: Phương pháp so mẫu không giải mã 108
Trang 10MỞ ĐẦU
Về khía cạnh lịch sử, giấu tin (Steganography) được hiểu là viết được che giấu Steganography có lịch sử phát triển lâu đời từ 440 năm trước công nguyên Steganography có nguồn gốc từ tiếng Hy Lạp, trong đó Steganos (có nghĩa là phủ hoặc
bí mật) và graphy (có nghĩa là bằng văn bản hoặc bản vẽ) Một trong những kỹ thuật che giấu thông tin sớm nhất được sử dụng liên quan đến một người Hy Lạp tên là Histaeus Để thông báo thông tin cho quân đội của mình ông đã cạo đầu của một nô lệ
và xăm thông tin vào đầu của người nô lệ Khi tóc của người nô lệ mọc trở lại, Histaeus gửi người nô lệ đến nơi nhận tin, ở đó người ta đã tiến hành cạo tóc của người nô lệ để nhận lại thông tin được giấu Một ví dụ khác là trong đại chiến thế giới thứ 2 người ta đã sử dụng các bức tranh có vệt cỏ dài ngắn trên bờ sông biểu diễn các bit 0, 1 của một bức mật điện
Trong những năm gần đây với sự phát triển của công nghệ thông tin, đặc biệt là
sự ra đời của Internet kết hợp với sức mạnh của máy tính điện tử, các phương pháp giấu tin trên môi trường multimedia và cơ sở dữ liệu được quan tâm nghiên cứu và phát triển mạnh Môi trường che giấu được quan tâm nhiều thường là các file ảnh, video, âm thanh (audio) và văn bản (text) Trong đó dạng thức cơ bản có thể ẩn giấu được nhiều thông tin là dạng ảnh (đây là định dạng thông tin phổ biến được sử dụng để trao đổi trên mạng và có dung lượng không lớn, dung lượng ảnh có thể từ vài KB cho đến vài MB) Các file ảnh chính là môi trường được lựa chọn trong nghiên cứu của luận án Các kỹ thuật giấu tin trong ảnh được nghiên cứu, phát triển trong luận án có thể ứng dụng mở rộng cho các môi trường khác như audio, video
Mặc dù có lịch sử phát triển từ rất lâu, nhưng các kỹ thuật giấu tin mới được chú
ý phát triển mạnh trong khoảng 10 năm trở lại đây, trên thế giới đã có một số cách tiếp cận về phân loại các kỹ thuật giấu tin Sơ đồ phân loại sau được đưa ra năm 1999 và được nhiều người chấp nhận:
Hình 1: Phân loại kỹ thuật giấu tin
Giấu tin (Information hiding)
Giấu tin mật
(Steganography)
Thủy vân số (Digital watermarking)
Thủy vân bền vững (Robust watermarking)
Thủy vân dễ vỡ (Fragile watermarking)
Trang 11Sơ đồ phân loại này như một bức tranh khái quát về ứng dụng và kỹ thuật giấu thông tin Việc phân loại dựa trên việc thống kê sắp xếp khoảng 100 công trình đã công bố trên một số tạp chí, cùng với thông tin về tên và tóm tắt nội dung của khoảng
200 công trình đã công bố trên Internet, có thể chia lĩnh vực giấu tin ra làm hai hướng lớn, đó là giấu tin mật (steganography) và thủy vân (watermarking):
• Giấu tin mật (steganography): mục tiêu là tìm các phương pháp giấu tin với
tỷ lệ giấu tin cao và người khác không phát hiện được 1 đối tượng (ví dụ: file ảnh) đang có giấu tin mật
• Thủy vân số (Watermarking): mục tiêu để giấu các nội dung tin ngắn nhằm khẳng định bản quyền sở hữu hay phát hiện xuyên tạc thông tin, do đó không quan tâm nhiều đến tỷ lệ tin được giấu nhưng đòi hỏi độ bền vững cao của thông tin cần giấu (trước các biến đổi thông thường của tệp dữ liệu môi trường) Thủy vân số được phân thành 2 loại là thủy vân dễ vỡ và thủy vân bền vững Thủy vân bền vững được nhúng vào trong sản phẩm như một hình thức dán tem bản quyền (dùng để xác thực bản quyền) Trong trường hợp này, thủy vân phải tồn tại bền vững cùng với sản phẩm nhằm chống việc tẩy xóa, làm giả hay biến đổi phá hủy thủy vân Thủy vân dễ vỡ là kỹ thuật nhúng thủy vân vào trong sản phẩm sao cho khi phân bố sản phẩm này trong môi trường mở nếu có bất cứ một phép biến đổi nào làm thay đổi đối tượng sản phẩm gốc thì thủy vân đã được giấu trong đối tượng không còn nguyên vẹn như trước (dễ vỡ) Thủy vân dễ vỡ được ứng dụng để chống giả mạo
Trong hướng nghiên cứu về steganography thì việc nghiên cứu các thuật toán
giấu tin trong ảnh nhị phân luôn có sự thách thức cao và được nhiều tổ chức và cá nhân quan tâm nghiên cứu Nguyên nhân là do giấu tin trong ảnh nhị phân rất dễ bị phát hiện và các thuật toán giấu tin trong ảnh nhị phân có thể mở rộng cho các định dạng ảnh khác, ví dụ điển hình là phương pháp LSB (được đề xuất vào khoảng đầu những năm 2000)
Năm 1998, M Y Wu và J H Lee đề xuất thuật toán giấu tin Wu-Lee (xem [19]) theo khối, trong đó một ảnh nhị phân dùng làm môi trường giấu tin được chia thành các khối đều nhau, mỗi khối là một ma trận nhị phân Thông tin mật là một bít mật được giấu vào mỗi khối này bằng cách thay đổi nhiều nhất một bit của khối
Năm 2000, các tác giả Chen, Pan, Tseng đề xuất thuật toán CPT cho ảnh nhị phân (xem [20]) Thuật toán CPT cho phép giấu được một dãy r bit vào ma trận nhị
phân F kích thước m×n=N với r = log2(m×n+1) (hay 2 r-1 ≤ N < 2r+1
) bằng cách thay
đổi nhiều nhất 2 bit trong khối F So với thuật toán Wu-Lee thì thuật toán CPT tăng
được lượng thông tin che giấu rất đáng kể Kể từ khi phương pháp CPT ra đời, đã có rất nhiều bài báo nghiên cứu và phát triển thuật toán CPT cả về mặt lý thuyết và ứng dụng, chẳng hạn như: Yu-Chee Tseng; Hsiang-Kuang Pan (2001); Hioki Hirohisa (2003) đã đề xuất một thuật toán CPT cải tiến nhằm tăng chất lượng ảnh có giấu tin Ahmed Al-Jaber và Khair Eddin Sabri (2005) có đề xuất một phương pháp giấu 4 bít
Trang 12(=log2(5×5 +1)) trong khối ma trận nhị phân 5×5 mà không sử dụng ma trận trọng số như trong phương pháp CPT
Ở Việt Nam thời gian qua cũng có nhiều công trình nghiên cứu về giấu tin mật,
có thể kể đến các nhóm nghiên cứu của Học viện Kỹ thuật Quân sự (Đào Thanh Tĩnh), Viện CNTT - Viện Khoa học và Công nghệ Việt Nam (Nguyễn Xuân Huy), Trường Đại học Giao thông Vận tải (Phạm Văn Ất), Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội (Trịnh Nhật Tiến), Ví dụ: nhóm tác giả Phạm Văn Ất, Đào Thanh Tĩnh tập trung vào việc hoàn thiện thuật toán, chứng minh tính đúng đắn của thuật toán CPT, cải tiến một số tính chất của thuật toán CPT nhằm tăng hiệu quả cài đặt và
đề ra một số phương pháp cho phép giấu tin với tỷ lệ cao hơn 1 bít so với CPT
Mục tiêu thứ nhất của luận án là nghiên cứu về định dạng ảnh nhị phân và đề xuất các thuật toán giấu tin mới theo tiếp cận CPT mở rộng và các thuật toán dựa trên
lý thuyết môđun để nâng cao tỷ lệ giấu tin và điều khiển chất lượng giấu tin
Trong các ứng dụng thực tiễn người ta thường sử dụng ảnh màu để giấu tin, bởi
vì ảnh màu có tính chất dễ che giấu, phổ biến và khả năng giấu tin cao Ảnh đa mức xám là một trường hợp đặc biệt của ảnh màu Đối với ảnh màu, để giảm dung lượng đường truyền người ta thường sử dụng các định dạng như ảnh chỉ số (BMP, GIF, PCX, ), ảnh nén trên miền tần số như (JPG, TIFF, ) Đối tượng nghiên cứu của luận
án về ảnh màu là các định dạng ảnh chỉ số
Đối với ảnh màu, phương pháp chẵn lẻ được xem là một hướng tiếp cận được nhiều tác giả tập trung nghiên cứu đặc biệt là trong lĩnh vực ảnh màu có chỉ số Các kết quả nổi bật theo ý tưởng chẵn lẻ có Romana Machado (2001) với phương pháp EzStego và Fridrich, J., Du, R (2002) với phương pháp chẵn lẻ tối ưu OPA Các thuật toán này được xây dựng dựa trên tiếp cận theo mô hình đồ thị có trọng số là khoảng cách màu
Mục tiêu thứ hai của luận án là nghiên cứu đề xuất các thuật toán giấu tin mới trên ảnh chỉ số cũng dựa trên tiếp cận đồ thị nhưng có tốc độ tính toán cao hơn, cài đặt đơn giản hơn
Mật mã (Cryptography) ngày càng được ứng dụng rộng rãi trong nhiều lĩnh vực khoa học kỹ thuật cũng như trong hoạt động cuộc sống và đã có những đóng góp đáng
kể Vì vậy, hiện nay mật mã đang được quan tâm nghiên cứu nhằm xây dựng những hệ mật mã với độ an toàn cao Tuy nhiên, cho đến nay vẫn chưa có được một hệ mật mã với độ an toàn thật lý tưởng Vì thế luôn có động lực cải tiến, nghiên cứu xây dựng các
hệ mới, cả về khía cạnh lý thuyết cũng như thực hành
Mật mã có thể làm cho nội dung của thông điệp bị che dấu, không thể đọc được dưới dạng bản rõ nên vẫn có thể nhận ra được là có một nội dung đang bị che dấu, giấu tin là che dấu sự tồn tại, hiện hữu của dữ liệu, thông điệp mật Ưu điểm của hướng tiếp cận giấu tin so với mã hoá là khi tiếp cận môi trường giấu tin đối phương khó xác định được là có thông tin giấu ở trong đó hay không Giấu tin có thể kết hợp với khả năng của mã hóa để phục vụ cho mục đích che dấu dữ liệu với khả năng bảo mật và an toàn cao hơn
Trang 13Mục tiêu thứ 3 của luận án về khía cạnh ứng dụng trong mật mã học là: đề xuất các mô hình mã hóa mới theo tiếp cận mã đàn hồi sử dụng các kỹ thuật giấu tin Mô hình này sẽ là cơ sở để phát triển các hệ mật mã mới Tiếp đó đề xuất thuật toán tìm kiếm dữ liệu an toàn trên môi trường mã hóa (sử dụng kỹ thuật mã hóa mới) mà không cần giải mã
Nội dung của luận án gồm phần mở đầu, 4 chương, tài liệu tham khảo và kết luận:
Chương 1–Các kiến thức cơ bản: Chương này trình bày các kiến thức cơ sở cần
thiết liên quan được sử dụng trong luận án Cụ thể nhắc lại một số khái niệm về nhóm,
vị nhóm, ngôn ngữ, ôtomát, vành, môđun, các phép toán trên ma trận và giới thiệu một số tính chất cơ bản của mã Một phần quan trọng của chương giới thiệu các kiến thức cơ sở về giấu tin và giấu tin trong ảnh cùng các kỹ thuật giấu tin căn bản đang được áp dụng rộng rãi trong thời gian gần đây như: phương pháp LSB, Wu-Lee, CPT (xem [19,20,21]) Đó là những gợi ý cho hướng nghiên cứu mở rộng các kỹ thuật giấu tin mới với tỷ lệ giấu tin và chất lượng ảnh mang tin cao hơn trong luận án Cùng với các mở rộng về giấu tin, luận án cũng phát triển các hệ mã mới sử dụng các kỹ thuật giấu tin để tăng cường độ bảo mật, an toàn cho dữ liệu
Các chương tiếp theo trình bày các kết quả nghiên cứu chính của luận án
Chương 2–Giấu tin trên ảnh nhị phân: Chương này của luận án đề xuất các
lược đồ giấu tin mới trên ảnh nhị phân dựa trên tư tưởng của CPT ([20]) Các lược đồ giấu tin được mở rộng (CPTE, CPTE1, CPTE2) đều có tỷ lệ giấu tin cao hơn so với CPT, trong đó CPTE2 có tỷ lệ giấu tin gần gấp đôi CPT mà chất lượng ảnh vẫn không đổi Đặc biệt luận đưa ra một phương pháp mới có tên gọi là phương pháp môđun cho phép phát triển các lược đồ giấu tin mới cho ảnh nhị phân và ảnh màu với tỷ lệ giấu cao Dựa trên phương pháp môđun luận án đã đề xuất 1 số lược đồ giấu tin mới 1-M, 2-M, 1-M2, 2-M2, 1-M3, 2-M3, 2-M4 Các lược đồ giấu tin được đề xuất theo tiếp cận môđun đều có tỷ lệ giấu tin cao và có thể đạt tới tỷ lệ giấu tin tối đa của các lược
đồ k-block, chẳng hạn như thuật toán 1-M2, 2-M2 Cùng với các thuật toán giấu tin trên ảnh nhị phân được cải tiến và phát triển mới, luận án giới thiệu thuật toán giấu tin sửa đổi MCPTE2, cho phép giấu tin có kiểm soát chất lượng ảnh nhằm nâng cao chất lượng ảnh có giấu tin, đảm bảo yêu cầu bằng mắt thường đối phương không thể phát hiện được sự khác biệt giữa ảnh có giấu và không giấu tin
Chương 3- Giấu tin trên ảnh màu: Chương này của luận án đề xuất các phương
pháp giấu tin mới trên ảnh chỉ số màu dựa trên ý tưởng của phương pháp chẵn lẻ Các thuật toán mới được đề xuất để giấu tin trong ảnh chỉ số (BMP, GIF) bao gồm: phương pháp xác định chẵn lẻ theo vòng lặp và phương pháp FOPA, trong đó thuật toán giấu tin FOPA dựa trên phương pháp Rho cho ta chất lượng ảnh tốt nhất và tốc
độ tính toán nhanh nhất theo tiếp cận chẵn lẻ Dựa trên thuật toán FOPA, trong chương này đã đề xuất mới 3 thuật toán tăng cường chất lượng ảnh có giấu tin MFOPA1, MFOPA2, MFOPA3 đảm bảo yêu cầu bằng mắt thường đối phương không thể phát hiện được sự khác biệt giữa ảnh có giấu và không giấu tin, đồng thời cũng
Trang 14tăng độ an toàn cho thông tin được giấu Phần cuối chương giới thiệu 2 lược đồ giấu tin mới theo tiếp cận môđun là 2-M3 và 2-M4
Chương 4–Mã đàn hồi theo tiếp cận giấu tin và bài toán tìm kiếm thông tin trên dữ liệu mã hóa
Chương này nghiên cứu kết quả đạt được về giấu tin đã được thực hiện trong chương 3 Phần đầu chương nhắc lại một hình thức tích mới–tích đàn hồi được đề xuất bởi Phan Trung Huy, Vũ Thành Nam ([9]) Độ dài tích đàn hồi có thể co hoặc giãn, miễn là đảm bảo sự phân tích duy nhất, bên cạnh đó tích đàn hồi có tính chất đa trị Sơ
đồ mật mã được đề xuất trong chương này là sơ đồ kết hợp giữa các kỹ thuật giấu tin
và mã đàn hồi Sơ đồ này đảm bảo các yêu cầu về tính đàn hồi, tốc độ tính toán, độ an toàn và cài đặt đơn giản
Phần tiếp theo của chương xem xét khả năng phát triển ứng dụng liên quan đến
sơ đồ mã đàn hồi theo tiếp cận giấu tin Phần này sẽ nhắc lại một số kiến thức về tìm kiếm thông tin, tìm kiếm mờ và tìm kiếm trên văn bản mã hóa mà không cần giải mã Trong nội dung của luận án cũng đưa ra một khái niệm mới về độ đo xấp xỉ tựa ngữ nghĩa giữa 2 câu văn bản nhằm hỗ trợ cài đặt các thuật toán tìm kiếm xấp xỉ hiệu quả Phần cuối chương đề xuất thuật toán so mẫu theo tiếp cận mờ trên môi trường văn bản
mã hoá bởi mã đàn hồi theo tiếp cận giấu tin mà không đòi hỏi phải giải mã
Những kết quả nổi bật đã đạt được của luận án:
1 Đề xuất được thuật toán giấu tin mới CTPE, CPTE1, CPTE2 Trong đó thuật toán CPTE1, CPTE2 đạt tỷ lệ giấu tin tối đa theo tiếp cận chia khối và CPTE2
có tỷ lệ giấu tin xấp xỉ gấp đôi thuật toán giấu tin nổi tiếng CPT Trên cơ sở thuật toán CPTE2, luận án đã đề xuất thuật toán tăng cường chất lượng ảnh có giấu tin MCPTE2
2 Đề xuất phương pháp giấu tin tổng quát theo tiếp cận môđun và lược đồ giấu tin tổng quát 1-M, 2-M Từ phương pháp này luận án đã đưa ra các lược đồ giấu tin
cụ thể cho ảnh nhị phân và ảnh màu trên vành Z2, Z3, Z4bao gồm: 1-M2, 2-M2, 1-M3, 2-M3, 2-M4 cho ảnh nhị phân và ảnh màu Các lược đồ giấu tin được đề xuất cho ảnh nhị phân đều có tỷ lệ giấu tin cao hơn so với CPT, trong đó lược
đồ 1-M2 đạt tỷ lệ giấu tin tối đa, lược đồ 2-M2 có thể đạt tỷ lệ giấu tin tối đa trong các lược đồ k-block Phương pháp môđun cho ta khả năng đề xuất thêm nhiều lược đồ giấu tin mới trong ảnh nhị phân và ảnh màu với tỷ lệ giấu cao
3 Đề xuất được thuật toán giấu tin theo tiếp cận chẵn lẻ trên ảnh chỉ số màu FOPA Thuật toán này đạt chất lượng tối ưu trong các thuật toán theo tiếp cận chẵn lẻ, ngoài ra FOPA đạt được hiệu quả tính toán nhanh nhất trong các thuật toán OPA (chẵn lẻ tối ưu) Trên cơ sở thuật toán FOPA luận án đã đề xuất 3 thuật toán tăng cường chất lượng ảnh có giấu tin MFOPA1, MFOPA2, MFOPA3
4 Kết quả của luận án đã cung cấp các thuật toán giấu tin an toàn để phát triển ứng dụng trong mật mã học và đề xuất sơ đồ mã hóa đàn hồi theo tiếp cận giấu tin
Trang 155 Trong luận án cũng đưa ra một khái niệm mới về độ đo xấp xỉ tựa ngữ nghĩa giữa 2 câu văn bản nhằm hỗ trợ cài đặt các thuật toán tìm kiếm xấp xỉ hiệu quả Phần cuối chương 4 đề xuất thuật toán so mẫu theo tiếp cận mờ trên môi trường văn bản mã hoá bởi mã đàn hồi theo tiếp cận giấu tin mà không đòi hỏi phải giải mã
Các kết quả chính của luận án đã được công bố trong các công trình [1], [2], [3], [4], [5], [6], [7], [8], [9], [10] và đã được trình bày tại:
− Hội thảo quốc gia “Một số vấn đề chọn lọc của Công nghệ thông tin và truyền thông”, Đại Lải, 09/2007; Huế, 12-13/6/2008; Biên Hòa – Đồng Nai, 05–06/8/2009
− Hội thảo Quốc tế về các hệ cơ sở dữ liệu và thông tin thông minh khu vực Châu
Á (ACIIDS) Tp Huế - 2010, Daegu city, Korea – 2011, Kaohsiung, Taiwan –
2012
− Xemina tại bộ môn Toán Tin, Viện Toán ứng dụng và Tin học, Trường Đại học Bách khoa Hà Nội
Hướng phát triển tiếp theo của luận án:
− Nghiên cứu đề xuất các phương pháp giấu tin mới trên môi trường ảnh màu đối với các định dạng ảnh được nén trên miền tần số (JPG, TIFF, )
− Nghiên cứu đề xuất các giải pháp giấu tin mới trên các môi trường đa phương tiện như file ảnh, video, audio theo tiếp cận môđun
− Nghiên cứu xây dựng được những hệ mã có độ an toàn cao kết hợp giữa khái
niệm mã đàn hồi kết hợp với các kỹ thuật giấu tin Các hệ mã mới có độ phức tạp tính toán nhỏ và cài đặt đơn giản
Trang 16Chương 1 CÁC KIẾN THỨC CƠ BẢN
Chương này trình bày các kiến thức cơ sở cần thiết liên quan được sử dụng trong luận án Ta nhắc lại một số khái niệm cơ sở trong đại số (nhóm, nhóm cyclic, vị nhóm, vành, môđun), khái niệm về mã và tính chất cơ bản của mã Một phần quan trọng của chương giới thiệu các kiến thức cơ sở về giấu tin và giấu tin trong ảnh cùng các kỹ thuật giấu tin phổ biến trong thời gian gần đây như: phương pháp LSB, Wu-Lee, CPT (xem [19,20,21]) Đó là những gợi ý cho hướng nghiên cứu mở rộng các kỹ thuật giấu tin mới với tỷ lệ giấu tin và chất lượng ảnh mang tin cao hơn trong luận án
1.1 Một số khái niệm
1.1.1 Nhóm
Một tập khác rỗng G được gọi là một nhóm nếu tồn tại một ánh xạ từ tích Descartes G × G vào G (ảnh của phần tử (a,b) ∈ G × G với a,b là những phần tử tùy ý của G, qua ánh xạ này ta ký hiệu là ab – khi đó G sẽ được gọi là một nhóm nhân) thỏa
mãn các tính chất sau:
G1) Kết hợp: a(bc)=(ab)c với ∀a,b,c ∈ G
G2) Có đơn vị: Tồn tại một phần tử e ∈ G sao cho ae=ea=a, ∀ a ∈ G, phần tử e được gọi là phần tử đơn vị của G
G3) Có nghịch đảo: với mỗi phần tử a ∈ G luôn tồn tại phần tử b ∈ G sao cho ab
= ba = e Phần tử b được gọi là phần tử nghịch đảo của a và ký hiệu là a-1
Phần tử ab được gọi là tích của a và b và ánh xạ xác định tích ở trên được gọi là phép toán trên nhóm nhân G
Nếu phép toán trên G thỏa mãn thêm điều kiện
G4) Giao hoán: ab=ba với ∀ a, b ∈ G,
thì G được gọi là nhóm Abel Nhóm Abel còn được gọi là nhóm giao hoán
Thông thường người ta viết phép toán trên nhóm Abel theo lối cộng a + b và gọi là
tổng của a và b trong G Phần tử nghịch đảo của a trong nhóm Abel sẽ được ký hiệu –
a, phần tử đơn vị được ký hiệu là 0
Một nhóm G được gọi là hữu hạn hay vô hạn nếu tập G là hữu hạn hay vô hạn phần tử Trường hợp nhóm G là hữu hạn thì số phần tử của G được gọi là cấp của nhóm đó và ký hiệu là |G|
1.1.2 Nhóm xyclic
Một nhóm G được gọi là nhóm xyclic nếu mọi phần tử của nó đều là lũy thừa của một phần tử a ∈ G Khi đó ta gọi a là phần tử sinh của nhóm xyclic G và ký hiệu là G=<a>
Trang 17Theo định nghĩa, một nhóm xyclic G với phần tử sinh là a có thể viết được dưới dạng G = {an | n ∈ Z} Có 2 khả năng xẩy ra:
1) an ≠ am với mọi cặp số nguyên khác nhau n, m Rõ ràng khi đó cấp của nhóm xyclic G là vô hạn
2) Tồn tại 2 số nguyên khác nhau n, m sao cho an
=am Từ đây cũng suy ra a-n
= a-m, nên ta luôn có thể giả thiết thêm rằng n-m>0 Hơn nữa ta có an-m
Một tập hợp R được gọi là một vành nếu trên R có hai phép toán 2 ngôi, một gọi
là phép cộng và một gọi là phép nhân, sao cho các điều kiện sau được thỏa mãn:
(R1) Tập hợp R là một nhóm Abel đối với phép cộng
(R2) Phép nhân trên R là kết hợp và có đơn vị
(R3) Luật phân phối: phép nhân là phân phối đối với phép cộng Nghĩa là, với
Nếu R là một trường thì một R-môđun được gọi là không gian vectơ trên trường
đó Tương tự, ta cũng có định nghĩa cho R-môđun phải bằng cách xét phép nhân vô hướng ở bên phải
1.1.5 Vị nhóm
Vị nhóm M là tập hợp được trang bị phép toán hai ngôi có tính chất kết hợp và
có phần tử trung hòa Phép toán thường ký hiệu bởi phép nhân, phần tử trung hòa (xác định duy nhất) thường được gọi là phần tử đơn vị, được ký hiệu là 1
Với vị nhóm M bất kỳ, tập P(M)–tập các tập con của M cũng có cấu trúc vị
nhóm, bằng cách định nghĩa:
XY = {xy: x ∈ X, y ∈ Y} với X, Y ⊆ M Phần tử trung hòa là tập {1}
Trang 18Vị nhóm con của M là tập con N, đóng đối với phép toán và chứa phần tử trung hòa của M: NN ⊂ N và 1M ∈ N
Đồng cấu từ vị nhóm M vào vị nhóm N là ánh xạ ϕ: M→N thỏa:
và được trang bị phép toán kết hợp là phép nối ghép chuỗi (a1, a2, , a n ) (b1, b2, , b m) =
(a1, a2, , a n , b1, b2, , b m), để trở thành vị nhóm, được gọi là vị nhóm tự do sinh bởi A, với từ rỗng là phần tử trung hòa Vì phép toán là kết hợp nên ta có thể viết gọn w =
Cho hai ngôn ngữ X và Y trên A, ta định nghĩa tích của hai ngôn ngữ X và Y là
X, Xu –1 được sử dụng khi tập Y = {u} chỉ có một phần tử
Từ w ∈ A* gọi là khúc con (factor) của từ x ∈ A* nếu tồn tại các từ u, v ∈ A*
: x =
uwv Từ w gọi là khúc con thực sự của x nếu w là khúc con của x và w ≠ x Ta nói w là
khúc đầu (prefix) của x nếu tồn tại u: x = wu Ta ký hiệu w ≤ x hay w ≤P x nếu w là
khúc đầu của x, w < x hay w <P x nếu w ≤ x và w ≠ x Tương tự ta có khái niệm khúc
đuôi (suffix)
Trang 19Một chuỗi các từ (u1, u2, u n ), u i ∈ A*
, i = 1 n, n ≥ 0, được gọi là một phân tích
của từ w nếu w = u1u2 u n
1.1.7 Otomat
Cho bảng chữ cái hữu hạn A Otomat hữu hạn không tất định trên A là bộ A = (Q, A, F, i, T), được tạo thành từ tập hữu hạn các trạng thái Q, trạng thái ban đầu i ∈
Q, tập con T ⊆ Q các trạng thái kết thúc và tập F ⊆ Q ×A×Q gọi là tập các cung, xác
định hàm chuyển trạng thái của otomat
Mỗi cung là một bộ f = (q i , a, q j ), ta nói f có nhãn a, a ∈ A, đi từ trạng thái q i đến
trạng thái q j, và thường được ký hiệu f q: i a→q j
Một đường đi hữu hạn c trong otomat A là chuỗi hữu hạn các cung liên tiếp (f1,
f2, , f n ): f i = (q i , a i , q i+1), trong đó, n là độ dài của đường đi, từ w=a1a2 a n tạo thành
bởi các nhãn a i trên các cung được gọi là nhãn của đường đi Trạng thái q1 là điểm
đầu và trạng thái q n+1 là điểm cuối của đường đi Ta thường sử dụng ký hiệu
nhận được nếu có otomat A sao cho L = L(A)
Otomat A = (Q, A, F, i, T ) được gọi là tất định nếu với các cung (p, a, q), (p’, b,
q’) tuỳ ý thuộc F, từ p = p’ và a = b suy ra q = q’ Điều này có nghĩa là với mỗi trạng thái p ∈ Q và chữ cái a ∈ A, có đúng một trạng thái q sao cho a
p→ Khi A q là tất
định, ta định nghĩa một hàm f: Q×A → Q, xác định bởi f(p, a) = q với (p, a, q) ∈ F, để đơn giản ta ký hiệu f(p, a) = p.a
Hàm f: Q×A → Q được mở rộng thành hàm: Q×A* → Q, được gọi là hàm
chuyển mở rộng của otomat A xác định trên mỗi từ w∈A*, với định nghĩa quy nạp
theo độ dài của w: p.1 = p và p.wa = (p.w).a, để đơn giản ta cũng sẽ ký hiệu hàm chuyển mở rộng là f và ta sẽ luôn sử dụng f theo nghĩa mở rộng
1.1.8 C ác phép toán trên ma trận
a) Phép toán ⊕ của hai ma trận: là phép XOR theo các vị trí tương ứng của hai
ma trận nhị phân cùng cấp Phép toán ⊕ trong phạm vi luận án cũng được sử dụng cho phép toán cộng các dãy bít
Trang 20b) Phép toán ⊗ của 2 ma trận: là phép nhân hai ma trận nguyên cùng cấp (nhân các vị trí tương ứng của hai ma trận với nhau)
c) Phép toán SUM[F]: là phép tính tổng tất cả các phần tử của ma trận F
d) Phép toán ^ của 2 ma trận là phép AND từng phần tử của 2 ma trận cùng cấp
1 0 0
1 0 1
101
110
344
627
001
011
K F
004
027
W T
SUM[T⊗W]=7+2+4+3+1=17
1.2 Các tính chất cơ bản của mã
Một trong những bài toán cơ bản của lý thuyết mã là nghiên cứu về tính chất liên quan đến sự phân tích xâu thành các từ Bên cạnh phương pháp tổ hợp, việc sử dụng các công cụ đại số để nghiên cứu cấu trúc và tính chất của lớp mã là một tiếp cận được áp dụng rộng rãi Trong mục này chúng ta nhắc lại một số kết quả, qua đó thể hiện mối quan hệ chặt chẽ giữa mã với cơ sở đại số
1.2.1 Mã và đồng cấu mã
Định nghĩa 1.2.1 (xem [15, tr 38]) Giả sử A là bảng chữ cái Tập con X của vị nhóm
tự do A * được gọi là mã nếu ∀ m, n ≥ 1 và x 1 , , x n , y 1 , , y m∈ X, từ đẳng thức
x 1 x n = y 1 y m suy ra m = n và x i = y i∀ i = 1 n
Nói cách khác, tập X là mã nếu mọi từ trong X+ đều chỉ có một phân tích duy nhất thành các từ trong X Do 1.1=1 nên mọi tập mã đều không thể chứa từ rỗng Dễ thấy mọi tập con của mã X cũng là mã
Cho bảng chữ bản rõ B, bảng chữ bản mã A, một đơn cấu β: B * → A * từ vị nhóm tự do
B * đến A *
, được gọi là đồng cấu mã hay một phép mã hoá
Điều kiện cần và đủ về phép mã hoá, biểu diễn qua đơn cấu vị nhóm được thể hiện qua Mệnh đề sau
Mệnh đề 1.2.1 (xem [15, tr 38]) Nếu tập con X của A * là mã thì mọi đồng cấu β: B *
→ A * , cảm sinh một song ánh từ bảng chữ cái B nào đó lên X, sẽ là đơn cấu Ngược lại, nếu tồn tại một đơn cấu β: B *→ A * sao cho β(B) = X thì X là mã
Với khái niệm trên, quá trình mã hoá có thể coi là việc thay thế mỗi từ b1b2 b n thuộc B* bằng từ mã β(b1)β(b2) β(b n) được xác định bởi đồng cấu mã β Sự kiện β là
Trang 21đơn ánh đảm bảo rằng từ mã có thể được giải mã duy nhất để thu được từ bản rõ ban đầu
1.2.2 Kiểm tra tính chất mã
Cho tập các từ X trên bảng chữ A, bài toán kiểm tra tính chất mã của X là một
bài toán cơ bản khi nghiên cứu mã Trong nhiều trường hợp, bài toán này là không dễ dàng Trong mục này ta đề cập đến thuật toán Sardinas–Patterson Thuật toán này không cần sử dụng các tính chất nâng cao của mã mà dựa trên cách tổ chức thực hiện tính toán để kiểm tra một ngôn ngữ cho trước có thỏa định nghĩa mã hay không
Trong trường hợp X hữu hạn (tổng quát hơn là đoán nhận được) thì số bước tính toán
là hữu hạn
Thuật toán cố gắng xây dựng từ có hai phân tích khác nhau trên X Trong mỗi
bước, xác định phần dư–đoạn sai khác giữa hai cách phân tích Thuật toán dừng khi xuất hiện phần dư là từ rỗng, tương ứng với việc tìm được từ có hai phân tích khác nhau
Một cách hình thức, thuật toán có thể mô tả như sau Để cho gọn, thay vì X∪{u}
Định lý và Mệnh đề sau đây khẳng định tính đúng đắn của thuật toán
Định lý 1.2.1 (xem [15, tr 51]) X ⊂ A + là mã khi và chỉ khi không có tập U n nào chứa
từ rỗng
Ví dụ 1.2.1 Cho A = {a, b} và X = {b, abb, abbba, bbba, baabb}, ta có
U1 = {ba, bba, aabb }, X–1U1 = {a, ba }, U1–1X = {abb },
U2 = {a, ba, abb }, X–1U2 = {ε, a }, U2–1X = {ε, bb, bba, ba, abb }
U3 = {ε, a, bb, bba, ba, abb }
Vì ε ∈U3 nên X không là mã
Trang 22Ví dụ 1.2.2 Cho A = {a, b} và X = {aa, ba, bb, baa, bba}, ta có U1 = {a }, U2 = U1
Vì vậy U n = {a } với ∀n ≥ 1, suy ra X là mã
1.3 Mật mã học
Mã hóa thông tin (mật mã) là một trường hợp riêng của mã, trong đó mật mã học sử dụng một số mã có khả năng bảo mật để ứng dụng trong lĩnh vực bảo mật, an toàn thông tin
1.3.1 Giới thiệu chung về mã hóa
Mã hóa nguồn tin X theo bộ mã M là phép ánh xạ 1:1 biến đổi một tin x i ∈ X
Nếu tin xi được mã hóa thành: mr1mr2 mrl, ở đây l là số ký hiệu của bộ mã dùng
để biểu diễn xivà được gọi là độ dài từ mã
Ví dụ 1.3.1 Nguồn X = {x1, x2, , x n }, bộ mã nhị phân M = {0, 1}, mã hóa
x1=00, x2=01, x3=10, x4=11
Mã hóa (encryption) là nghệ thuật che dấu và bảo vệ thông tin để lưu trữ và trao đổi Mục đích của mã hóa là làm cho người ngoài cuộc không thể đọc được thông tin Trong hệ thống máy tính thông tin được thể hiện dưới dạng hình ảnh, âm thanh, chữ
số, chữ viết,… và gọi chung là các thông điệp hoặc văn bản
Văn bản gốc/nguồn (trước khi mã) cần được bảo vệ an toàn được gọi là bản rõ (plaintext), thường được ký hiệu là PT hay P
Một thông điệp đã được mã hóa được gọi là bản mã (ciphertext) và ký hiệu là
Hàm mã hóa E thực hiện mã hóa bản rõ P thành bản mã C: E(P)=C
Hàm giải mã D thực hiện giải mã bản mã C thành bản rõ P: D(C)=P
1.3.2 Khóa
Khóa (key) là một giá trị dùng để thực hiện một thuật toán mã hóa Khóa có thể
là một số, một xâu ký tự,… Khóa này có thể nhận một trong nhiều giá trị (càng nhiều càng tốt) Giới hạn các giá trị có thể có của khóa được gọi là không gian khóa (key space) Mỗi khóa k xác định một hàm mã hóa Ek và một hàm giải mã Dk Giá trị của
Trang 23khóa quyết định hiệu quả của các hàm mã hóa và giải mã, vì vậy các hàm mã hóa và giải mã có thể được biểu diễn như sau: Ek(P)=C, Dk(C)=P
Như vậy một hệ mã bao gồm: một không gian bản rõ, một không gian bản mã và một không gian khóa
Trong một hệ mã nếu khóa để mã và khóa giải mã giống nhau thì Dk(Ek(P))=P Trường hợp hệ mã có khóa lập mã và khóa giải mã khác nhau Khi đó khóa lập
mã k1 khác với khóa giải mã k2, ta có: Ek1(P)=C; Dk2(C) =P; Dk2(Ek1(P))=P
1.3.3 Mã đối xứng và phi đối xứng
Khái niệm mã đối xứng được dùng để chỉ các hệ mã mà trong đó khi biết khóa lập mã ta có thể tìm ra khóa giải mã, hay nói cách khác là khóa dùng để giải mã có thể tính toán được từ khóa dùng để mã hóa Một số hệ mã đối xứng có khóa lập mã và khóa giải mã giống nhau Đối những hệ mã này, cần phải giữ bí mật khóa lập mã Người gửi và người nhận cần thống nhất một khóa trước khi trao đổi thông tin Một số
hệ mã đối xứng tiêu biểu như DES, IDEA, SAFER, AES
Thuật toán mã hoá phi đối xứng hay còn gọi là thuật toán mã hoá khoá công khai được thiết kế trên nguyên tắc sử dụng hai khoá, trong đó khoá dùng để giải mã khó có thể tính toán được từ khoá dùng để mã hoá (thông thường là không đủ thời gian) Chúng được gọi là hệ thống khoá công khai vì khoá dùng để mã có thể được công bố rộng rãi Một người bất kỳ có thể sử dụng khoá mã để mã hoá một thông điệp, nhưng chỉ người với khoá giải tương ứng mới có thể giải mã thông điệp đó Trong những hệ thống này khoá dùng để mã hoá được gọi là khoá công khai (public key), còn khoá dùng để giải mã được gọi là khoá riêng (private key)
Thuật toán này được thể hiện bằng:
Ek1(P) = C
Dk2(C) = P
Dk2(Ek1(P)) = P
Trong một số trường hợp, thông điệp sẽ được mã hoá bằng khoá riêng và giải
mã bằng khoá công khai, điều này thường được áp dụng đối với chữ ký điện tử Một
số hệ mã công khai phổ biến như: hệ mã ElGamal, hệ mã RSA
Trang 24công có thể biết và làm những gì để hiểu được thông tin bí mật Ví dụ, những người thám mã truy cập được bản mã hay không? hay anh ta có biết hay đoán được một phần nào đó của bản rõ? hoặc thậm chí: Anh ta có thể chọn lựa các bản rõ ngẫu nhiên để mã hóa? Các kịch bản này tương ứng với phương pháp tấn công bản mã, tấn công biết bản
rõ và tấn công chọn lựa bản rõ
Nếu như hệ thống mật mã sử dụng khóa xuất phát từ mật khẩu, chúng có nguy
cơ bị tấn công kiểu duyệt toàn bộ (brute force), vì kích thước không đủ lớn cũng như thiếu tính ngẫu nhiên của các mật khẩu Đây là điểm yếu chung trong các hệ thống mật
mã
Chúng ta có thể chia thành các loại tấn công sau:
• Tấn công chỉ biết bản mã (ciphertext-only): người thám mã chỉ có bản tin đã được mã hóa
• Tấn công biết bản tin rõ (known plaintext): người thám mã có bản tin rõ và bản
mã
• Tấn công chọn bản tin rõ (chosen plaintext): người thám mã tạm thời có quyền truy xuất tới Bộ mã hóa, do đó anh ta có khả năng chọn bản tin rõ và xây dựng bản mã tương ứng
• Tấn công chọn bản mã (chosen ciphertext): người thám mã tạm thời có quyền truy xuất tới Bộ giải mã, do đó anh ta có khả năng chọn bản mã và xây dựng lại bản tin rõ tương ứng
1.4 Giấu tin trong ảnh
Giấu tin (Steganography) là kỹ thuật che dấu thông tin, nhúng thông tin mật vào trong một nguồn đa phương tiện mà không để người khác nhận biết về sự tồn tại của thông tin được giấu Kỹ thuật này hiện đang được nghiên cứu và ứng dụng rất nhiều trong vấn đề bảo vệ bản quyền, xác thực thông tin,
Mật mã (Cryptography) có thể làm cho nội dung của thông điệp bị che dấu, không thể đọc được dưới dạng bản rõ nên vẫn có thể nhận ra được là có một nội dung đang bị che dấu còn giấu tin (Steganography) là che dấu sự tồn tại, hiện hữu của dữ liệu, thông điệp mật Ưu điểm của hướng tiếp cận giấu tin so với mã hoá là khi tiếp cận môi trường giấu tin đối phương khó xác định được là có thông tin giấu ở trong đó hay không Giấu tin có thể kết hợp với khả năng của mã hóa để phục vụ cho mục đích che dấu dữ liệu với khả năng bảo mật và an toàn cao hơn
Mục tiêu mà kỹ thuật giấu tin hướng tới là phải ngăn chặn được tối đa sự nghi ngờ với các dữ liệu được dấu, nếu có sự nghi ngờ nào thì xem như là qua trình che dấu
dữ liệu thất bại Một khi mà vật mang giữ liệu bị lấy đi thì tính bảo mật và an toàn của
nó phụ thuộc hoàn toàn vào thuật toán giấu tin được sử dụng
Môi trường dấu tin trong công nghệ thông tin rất đa dạng, có thể là các file âm thanh, hình ảnh, video, nhưng phổ biến hơn cả là các bức ảnh số Nguyên nhân là lượng thông tin được trao đổi bằng ảnh là rất lớn và giấu tin trong ảnh cũng đóng vai
Trang 25trò hết sức quan trọng trong hầu hết các ứng dụng bảo vệ an toàn thông tin như: xác thực, bảo vệ bản quyền tác giả, điều khiển truy cập,…Chính vì thế mà vấn đề này nhận được sự quan tâm rất lớn của các cá nhân, các tổ chức, các trường đại học và nhiều viện nghiên cứu trên thế giới
Hiện tại đã có rất nhiều các công trình nghiên cứu về các phương pháp giấu tin trong ảnh từ các loại ảnh nhị phân, ảnh màu, ảnh đa mức xám Nguyên tắc của việc giấu tin trong ảnh là phải đảm bảo ảnh sau khi được chèn thêm các thông tin cần giấu thì với mắt thường không thể nhận biết được sự thay đổi
Giấu tin có hai mục đích:
- Bảo mật cho những dữ liệu được giấu
- Bảo đảm an toàn (bảo vệ bản quyền) cho chính các đối tượng chứa dữ liệu giấu trong đó
Có thể thấy hai mục đích này hoàn toàn trái ngược nhau và dần phát triển thành hai lĩnh vực với những yêu cầu và tính chất khác nhau
- Kỹ thuật giấu thông tin bí mật (Steganography): với mục đích đảm bảo an toàn và bảo mật thông tin tập trung vào các kỹ thuật giấu tin để có thể giấu được nhiều thông tin nhất 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
- Kỹ thuật giấu thông tin theo kiểu đánh giấu (watermarking) để bảo vệ bản quyền của đối tượng chứa thông tin tập trung đảm bảo một số các yêu cầu như đảm bảo tính bền vững… đây là ứng dụng cơ bản nhất của kỹ thuật thuỷ vân số
1.4.1 Các kỹ thuật được sử dụng để giấu tin
1.3.1.1 Kỹ thuật tiêm (Injection)
Kỹ thuật tiêm giấu dữ liệu ẩn vào trong một đoạn của file, mà đoạn đó hầu như không được để ý trong các ứng dụng xử lý Bằng cách làm này, có thể tránh được sự thay đổi những bit của file đó Ví dụ có thể cộng thêm một số byte vào phần đuôi của
1 file thực thi, những byte được chèn đó không ảnh hưởng tới quá trình xử lý và người
sử dụng cũng không thể nhận thức được rằng file đó chứa các thông tin đã được cộng thêm vào Nhược điểm khi sử dụng kỹ thuật này là sẽ làm tăng kích thước của file chứa tin đó, tăng rất nhiều nếu số lượng tin giấu lớn và do đó sẽ gây ra sự nghi ngờ
1.3.1.2 Kỹ thuật thay thế (Substitution)
Kỹ thuật này có được thực hiện dựa trên ý tưởng thay thế các thông tin ít quan trọng trong việc quyết định nội dung của file gốc và dữ liệu được thay vào vị trí những bít đó ít gây sự thay đổi lớn đến chất lượng file chứa gốc Ưu điểm của kỹ thuật này là file chứa gốc sau khi giấu tin thì kích thước không thay đổi
Nhược điểm của kỹ thuật này là làm giảm chất lượng của file chứa gốc ban đầu, ngoài ra số lượng tin giấu cũng bị hạn chế do phải phụ thuộc vào số bit ít quan trọng trong file chứa gốc
Trang 26Hiện nay kỹ thuật thay thế được nghiên cứu rất phổ biến và là kỹ thuật được quan tâm phát triển nhiều nhất Kỹ thuật này đặc biệt được sử dụng nhiều trong các phương pháp giấu tin trong ảnh có thể kể đến các phương pháp: LSB, Wu-Lee, CPT
1.3.1.3 Kỹ thuật sinh (Generation)
Không giống như hai kỹ thuật trên, kỹ thuật sinh không phụ thuộc vào file gốc (phương tiện chứa tin), kỹ thuật này sẽ tạo ra một file chứa với mục đích duy nhất là
để giấu tin Với kỹ thuật tự sinh, vì file chứa là được sinh ra mới hoàn toàn nên không
sợ có sự thay đổi về kích thước hay chất lượng file nhưng nội dung file chứa thường khó giống thật (ví dụ như sinh file ảnh thì ảnh đó phải là ảnh gì đó hoặc file văn bản thì nội dung không được ngô nghê quá)
Tuy nhiên để áp dụng kỹ thuật này thì rất phức tạp phụ thuộc vào rất nhiều yếu tố
để có thể tạo ra file chứa gốc như yêu cầu
Ví dụ bài thơ sau chứa nội dung tin cần giấu là câu “Cụ Hồ muôn tuổi”, câu này được lấy từ bài thơ bằng cách ghép các từ đầu dòng của bài thơ theo thứ tự từ trên xuống
Cụ già thong thả buông cần trúc
Hồ rộng mênh mông mặt nước hồng Muôn vạn đài sen hương thơm ngát Tuổi già vui thú với non sông!
1.4.2 Phương pháp LSB (LSB- Least significant bit)
Bit LSB là bit có ảnh hưởng ít nhất tới việc quyết định tới màu sắc của mỗi điểm ảnh, vì vậy khi ta thay đổi bit ít quan trọng của một điểm ảnh thì màu sắc của mỗi điểm ảnh mới sẽ tương đối gần với điểm ảnh cũ Việc xác định bit LSB của mỗi điểm ảnh trong một bức ảnh phụ thuộc vào định dạng của ảnh và số bit màu dành cho mỗi điểm của bức ảnh đó
Xét trường hợp cụ thể với ảnh Bitmap 24 bit:
- Trong ảnh 24 bít màu dữ liệu hình ảnh nằm ngay sau phần header và ở đó không có bảng màu nào Các điểm ảnh được lưu theo chiều từ trái sáng phải trên một dòng và các dòng lại được lưu theo thứ tự từ dưới lên trên
- Đối với ảnh Bitmap 24 bit, mỗi pixel được biểu diễn bằng 24 bit và ảnh này
có 224 màu Thông tin màu cho mỗi pixel được chứa trong 3 byte liên tiếp của
dữ liệu với mỗi byte tương ứng với 3 màu Blue, Green, Red
- Mắt người không cảm nhận được sự thay đổi các màu Blue, Green, Red trong một cường độ nhỏ Giả sử, ta chỉ xem xét với màu Blue, sẽ có 28 giá trị khác nhau Sự khác nhau giữa các giá trị hay gọi cách khác là cường độ của Blue như 11111111 và 11111110 sẽ không bị phát hiện bởi thị giác của con người Như vậy nếu ta giấu tin trong bít cuối cùng của mỗi thành phần màu Blue, Green, Red của các điểm ảnh thì khi đó mắt người không thể nhận ra sự thay đổi
Trang 27Ví dụ 1.4.1 muốn ẩn 1 ký tự A vào trong 1 file ảnh Giá trị nhị phân của A là
10000001 khi đó kí tự A được dấu trong 3 điểm ảnh
+ Giả sử dữ liệu của 3 pixel có thể là
1.4.3 Phương pháp Wu-Lee trên ảnh nhị phân
Ảnh nhị phân là ảnh bao gồm các điểm ảnh chỉ có màu trắng hoặc đen (tương ứng với bit 0 hay bit 1) Để giấu dữ liệu, ta sẽ tách ma trận điểm ảnh thành các ma trận
bit F kích thước m×n rời nhau và giấu tin trên các ma trận đó Như vậy các thuật toán giấu tin chỉ cần quan tâm tới phương pháp giấu dữ liệu trên các ma trận F Các thuật
toán giấu tin trong ảnh nhị phân phổ biến hiện nay đều tiếp cận theo cách chia miền không gian ảnh thành các khối tin (khối bit) và giấu tin vào từng khối
Phương pháp Wu-Lee do M Y Wu và J H Lee đề xuất năm 1998 (xem [19]) là một thuật toán giấu tin theo khối, trong đó một ảnh nhị phân dùng làm môi trường giấu tin được chia thành các khối đều nhau, mỗi khối là một ma trận nhị phân Thông tin mật đựợc giấu vào mỗi khối này bằng cách thay đổi nhiều nhất một bit của khối Trong mọi thuật toán giấu tin, sau khi thực hiện giấu tin cần phải đạt được một bất biến nào đó, và đây chính là cơ sở để khôi phục lại thông tin giấu Trong thuật toán
của Wu-Lee, mỗi khối F giấu được một bit thông tin sao cho khối sau khi giấu F’ đạt được bất biến: S’ = SUM(F’^ K) theo mod 2 có cùng tính chẵn lẻ với bit được giấu, trong đó K là một ma trận khoá nhị phân
Mô tả thuật toán giấu tin:
Trang 28- B là dãy bít cần giấu vào ảnh G, mỗi bít b của B sẽ được giấu vào một khối
F Như vậy số bit có thể giấu vào G không vượt quá số khối F Nếu m và n lớn thì số bit giấu được vào G sẽ nhỏ Ngược lại, nếu m và n nhỏ thì số khối
F nhiều hơn nên số bit giấu được vào G sẽ lớn hơn, nhưng đổi lại số bit cần
thay đổi cũng nhiều hơn do vậy khả năng bị lộ sẽ cao hơn
Dữ liệu ra: Một ảnh nhị phân G’ chứa thông tin cần giấu
Thuật toán giấu tin áp dụng cho từng khối F kích thước m × n:
Bước 1) Tính T = F^K
Bước 2) Tính S = SUM(T)
Bước 3) if 0 < S < SUM(K) then chuyển sang bước 4 để giấu Việc giấu thực chất
là biến đổi F thành F’ sao cho S’ mod 2 = b
else không giấu vào khối F này, chuyển sang khối khác
Bước 4: Giấu b vào trong F
if (S mod 2 = b) then thực hiện giấu tin mà không cần phải thay đổi bit nào của F
(trường hợp 1)
else if (S = 1) then chọn ngẫu nhiên bit (j,k) của F thoả mãn đồng thời F j,k = 0 và
K j,k =1, sau đó chuyển bit F j,k thành 1 (trường hợp 2)
else if (S = SUM(K) – 1) then chọn ngẫu nhiên bit (j,k) của F thoả mãn đồng thời
F j,k = 1 và K j,k =1, sau đó chuyển bit Fj,k thành 0 (trường hợp 3)
else chọn ngẫu nhiên bit (j,k) của F thoả mãn K j,k = 1, sau đó thay đổi bit F j,k
(trường hợp 4)
Nhận xét: Điều kiện 0 < S < SUM(K) để đảm bảo rằng nếu một khối F gồm toàn
bit 0 (khi đó S = 0) hoặc toàn bit 1 (khi đó S = SUM(K)) sẽ không được sử dụng để giấu thông tin, vì giấu trong những trường hợp đó rất dễ bị lộ Trường hợp 2 (khi S = 1) thì F có rất nhiều bit 0 vì thế cần chọn bit 0 để đổi sẽ ít bị lộ Trường hợp 3 (khi S = SUM(K) - 1) F có rất nhiều bit 1 vì thế cần chọn bit 1 để đổi
1 0 0
1 0 1
101
110
1 0 0
1 0 0
Trang 29111'
F
Để khôi phục được thông tin giấu trong F’ cần biết khoá K, kết quả của phép toán SUM(F’^K) mod 2 chính là bit đã giấu
1.4.4 Phương pháp Wu-Lee trên ảnh Bitmap
Bitmap là định dạng ảnh do Microsoft đề xuất, có phần mở rộng là BMP và được
sử dụng rộng rãi trong các ứng dụng trên Windows Dữ liệu ảnh bitmap là một ma trận điểm ảnh, mỗi điểm ảnh được biểu diễn bởi một số bit, thông thường là 8 bit hoặc 24 bit
Chia vùng dữ liệu của ảnh bitmap thành các khối đều nhau kích thước m*n, sau
đó áp dụng ý tưởng của thuật toán Wu-Lee để giấu tin tuần tự vào từng khối như sau:
- Một ảnh bitmap G’ chứa thông tin cần giấu
Các bước thực hiện của thuật toán áp dụng cho từng khối F(m*n) :
Bước 1: Tính T = MOD(F)^K Trong đó MOD(F) là ma trận m*n với các phần tử F j,k
else không giấu vào khối F này, chuyển sang khối khác
Bước 4: Giấu b vào trong F
if (S mod 2 = b) then thực hiện giấu mà không cần phải thay đổi phần tử nào
của F vì khi đó đã đạt được bất biến rồi
else if (S = 1) then chọn ngẫu nhiên phần tử F j,k của F thoả mãn đồng thời Fj,k mod 2 = 0 và K j,k = 1, sau đó thay đổi phần tử F j,k
Trang 30else if (S = SUM(K) – 1) then chọn ngẫu nhiên phần tử F j,k của F thoả mãn đồng thời F j,k mod 2 = 1 và K j,k =1, sau đó thay đổi phần tử F j,k
else chọn ngẫu nhiên phần tử (j,k) của F thoả mãn K j,k =1, sau đó thay đổi phần
tử F j,k
Nhận xét: Phép toán MOD có tác dụng chuyển ma trận chỉ số màu sang ma trận nhị phân để áp dụng được những ý tưởng của thuật toán Wu-Lee Việc thay đổi phần
tử F j,k của ma trận chỉ số màu không đơn giản như trong ma trận nhị phân (đổi 0 thành
1, đổi 1 thành 0) mà cần phải đổi sang một giá trị khác (chỉ số màu khác) sao cho nó khác tính chẵn lẻ với chỉ số màu ban đầu, vẫn nằm trong bảng màu và sai khác ít nhất
so với những màu xung quanh
Để khôi phục được thông tin giấu trong F’ cần biết khoá K Kết quả của phép toán SUM(MOD(F’)^K) mod 2 chính là bit đã giấu
1.4.5 Phương pháp CPT trên ảnh nhị phân
Thuật toán CPT (xem [20]) do 3 tác giả Chen, Pan, Tseng đề xuất năm 2000 là thuật toán nổi tiếng hiện nay đang được sử dụng nhiều trong các ứng dụng về giấu tin
trong ảnh 8 bit, 24 bit Thuật toán này được thiết kế để giấu được một dãy r bit vào ma trận F kích thước m×n=N với r = log2(m×n+1) (hay 2 r-1 ≤ N < 2r+1) bằng cách thay
đổi nhiều nhất 2 bit trong khối F So với thuật toán Wu-Lee thì thuật toán CPT tăng
được lượng thông tin che giấu rất đáng kể Thuật toán CPT sử dụng một ma trận khóa
nhị phân K và ma trận trọng số W có cỡ N, các phần tử của W được lựa chọn bao gồm tất cả các phần tử biểu diễn giá trị của các dãy nhị phân có độ dài r, trừ phần tử 0, nói cách khác các tập các phần tử của W là {1,2,…,2 r
+) b là dãy r bit cần giấu vào ma trận F m×n
Trang 31b = b1b2…b r
Ở đây ta sử dụng b theo hai nghĩa: dãy bit và số tự nhiên dạng nhị phân
Dữ liệu ra: Ma trận nhị phân F’ đã được mã hóa mang thông tin dãy r bit b, mà
chúng ta có thể lấy lại được thông tin b từ F’
1.4.5.2 Thuật toán giấu tin
ij
ij W T
Mục đích của thuật toán là thay đổi nhiều nhất hai vị trí trong F để được ma trận
F’ mà S’ tương ứng tính theo công thức (1.1) thỏa: S’ = b mod 2 r
Xảy ra một trong ba trường hợp sau:
Nếu S = b (hay α = 0) thì dĩ nhiên ta không cần thay đổi ma trận F
Nếu α ≠ 0 và S α ≠ Ø chỉ cần đảo một ô bất kì Fij thuộc S α Thuật toán dừng
Nếu α ≠ 0 và S α= Ø ta chuyển bước 6
Bước 6)
Trang 32Ta tìm số nguyên h>1 và nhỏ nhất sao cho S hα ≠ Ø và Sα-hα ≠ Ø
Sự tồn tại của h sẽ được chỉ ra trong chương 2, khi ta chứng minh tính đúng đắn
của thuật toán CPTE
Khi đó ta đảo một ô bất kì thuộc F ij thuộc S hα và một ô bất kì Fij thuộc Sα-hα Thuật toán dừng
Thuật toán được đảm bảo tính đúng đắn với định lý sau:
Định lý 1.4.1 (xem [20]): Cho F, K là ma trận bit cấp m×n và W là ma trận các số tự
nhiên cùng cấp W thỏa mãn:
{W ij, 1≤ i≤ m, 1≤ j≤ n} = {1, 2,…, 2r
-1}
với r = log2(m×n +1) , b = b1b2…b r là dãy r bit cần cất giấu
Trong mọi trường hợp ta đều có thể thay từ 0 tới 2 bit của F để được:
b = SUM[(F ⊕ K) ⊗ W] mod 2 r
Trang 33
Chương 2 GIẤU TIN TRÊN ẢNH NHỊ PHÂN
Chương này của luận án đề xuất các phương pháp giấu tin mới trên ảnh nhị phân dựa trên ý tưởng của phương pháp CPT (xem [20]) Các thuật toán giấu tin mở rộng (CPTE, CPTE1, CPTE2) đều có tỷ lệ giấu tin cao hơn so với CPT, trong đó CPTE2 có
tỷ lệ giấu tin gần gấp đôi CPT và đạt được tỷ lệ giấu tin xấp xỉ tỷ lệ giấu tin tối đa của các phương pháp giấu tin dựa trên ý tưởng của phương pháp CPT mà chất lượng ảnh vẫn không đổi Phương pháp môđun sử dụng một tiếp cận mới dựa trên các tính chất của môđun cho phép phát triển nhiều sơ đồ giấu tin mới Dựa trên phương pháp môđun luận án đã đề xuất 1 số sơ đồ giấu tin mới 1-M, 2-M, 1-M2, 2-M2, 1-M3, 2-M3, 2-M4 Các sơ đồ giấu tin được đề xuất theo tiếp cận môđun đều có tỷ lệ giấu tin cao và có thể đạt tới tỷ lệ giấu tin tối đa của các sơ đồ giấu tin k-block, chẳng hạn như thuật toán 1-M2, 2-M2 Việc giấu tin trên ảnh nhị phân rất dễ bị phát hiện khi ta thực hiện giấu tin ở những vùng thuần nhất màu, để nâng cao chất lượng ảnh có giấu tin luận án giới thiệu thuật toán giấu tin sửa đổi MCPTE2 cho phép giấu tin có kiểm soát chất lượng ảnh nhằm đảm bảo yêu cầu bằng mắt thường đối phương không thể phát hiện được sự khác biệt giữa ảnh có giấu và không giấu tin Các kết quả chính của chương này được công bố tại các công trình [2], [3], [4], [7], [8], [9], [10]
2.1 Tỷ lệ giấu tin tối đa của các lược đồ giấu tin k-block
Ta định nghĩa lược đồ giấu tin k-block là phương pháp giấu tin trong một ma trận
F bằng cách thay đổi nhiều nhất k phần tử thuộc F Tỷ lệ giữa số bít giấu được trên tổng số phần tử của F thể hiện khả năng giấu tin của các thuật toán giấu tin khác nhau,
để đơn giản ta gọi số bit giấu được (lượng tin giấu được) trong ma trận F khi ta thay đổi nhiều nhất k phần tử của F là tỷ lệ giấu tin Không mất tính tổng quát ta chỉ xét một
ma trận F xác định có kích thước m×n của các điểm ảnh thuộc ảnh G F được xét như
là một tập hợp của các điểm ảnh, trong đó tùy tình huống, ta xem mỗi phần tử F ij (hoặc cặp(i,j)) được xem như là một điểm ảnh và cũng có thể xem như là màu của điểm ảnh
Đặt N = mn Cho t là số nguyên > 1 thể hiện số mầu của các điểm ảnh F ij, đối với ảnh
nhị phân t = 2, với ảnh mầu nói chung t > 2 Việc thay đổi điểm ảnh F ij được hiểu là
màu F ij được thay đổi thành mầu F ij ’ với t-1 cách khác nhau
Với F đã chọn, mỗi ma trận F’ sau khi có sự thay đổi các phần tử được gọi là một cấu hình Vì mỗi phần tử có t-1 cách thay đổi, do đó ta có số cấu hình tối đa có được khi ta thay đổi một phần tử của F là (t-1).N, nếu chúng ta thay đổi 2 phần tử đồng thời thì sẽ thu được tối đa (t-1)2.N.(N-1)/2 cấu hình, nếu thay đổi k phần tử đồng thời ta có
số cầu hình là: (t-1) k
k N
C
Trang 34
Điều này có nghĩa là chúng ta có thể giấu nhiều nhất:
RMax k (N) = log2C = log2(1+(t-1). 1
Phương pháp giấu tin trên ảnh nhị phân CPT sử dụng sơ đồ giấu tin 2-block, ta có
t=2, k=2 do đó với các phương pháp giấu tin theo tiếp cận CPT chúng ta có thể giấu nhiều nhất:
RMax2(N) = log2(1+N+N.(N-1)/2) = log2(1+N.(N+1)/2) bít trong F
Phương pháp CPT cho ta giấu được r = log2(N+1) bít trong F Ta thấy với N≥1,
dễ thấy:
log2((N+1).(N+1)/2) ≥ log2(1+N.(N+1)/2) > log2((N+1).(N+1)/4)
⇒ log2((N+1).(N+1)/2) ≥ log2(1+N.(N+1)/2) ≥ log2((N+1).(N+1)/4)
⇒ 2.log2(N+1)-1 ≥ RMax2(N)≥ 2.log2(N+1) – 2]= 2.log2(N+1)] – 2 ≥2
log2(N+1)] – 2, dễ thấy 2.log2(N+1)-1 = 2.log2(N+1) - 1 ≤ 2.log2(N+1) + 1 -1 =
2.r ⇒ 2.r ≥ RMax2(N) ≥ 2.r - 2 như vậy có thể thấy phương pháp giấu tin CPT đạt tỷ lệ còn xa so với tỷ lệ giấu tin tối đa trên sơ đồ 2-block (RMax2(N) xấp xỉ gấp đôi r)
2.2 Các lược đồ giấu tin CPT mở rộng
Ta xem các lược đồ giấu tin theo tiếp cận CPT mở rộng là các phương pháp
giấu tin trong một ma trận F kết hợp với các ma trận tham số K, W bằng cách thay đổi nhiều nhất 2 phần tử thuộc F.
2.2.1 Phương pháp giấu tin CPTE
Phương pháp CPTE cũng có ý tưởng giấu tin theo khối bit như CPT: Xuất phát
từ việc xử lí giấu tin trên một ma trận nhị phân F cỡ m×n kết hợp với các ma trận tham số: K – ma trận khóa dạng nhị phân cỡ m×n, W – ma trận của các trọng số nguyên cỡ m×n Phương pháp CPTE khác phương pháp CPT ở cách chọn tập các phần
tử của ma trận trọng số W Cụ thể: với phương pháp CPTE các phần tử của ma trận
trọng số sẽ lấy giá trị thuộc tập {1, 2,…, 2r }, với r = log2(m×n), trong đó phương
pháp CPT chỉ lấy giá trị W ijtrong khoảng từ 1 tới 2r −1 với r = log2(N+1)
Phương pháp CPTE cho phép giấu được nhiều thông tin hơn so với CPT trong khi chất lượng ảnh không thay đổi (số điểm ảnh cần thay đổi tương đương nhau) Cụ
thể: phương pháp CPT giấu được r = log2(N +1) bit, phương pháp CPTE giấu được
r’ = log2(N)+1 bit với N = m×n
Trang 35Trường hợp m×n = 2r
-1 ta có r’ = r, trong trường hợp này 2 phương pháp coi như nhau về hiệu quả theo khối lượng bit được giấu
Khi m×n ≠ 2 r
-1, thì r’ = r+1 Điều đó có nghĩa là trên một khối F phương pháp
CPTE sẽ lưu được nhiều hơn phương pháp CPT một bit
Chẳng hạn trong trường hợp các khối có kích thước m×n = 3×3 Với phương pháp CPT ta lưu được 3 bit trên một khối F Với phương pháp CPTE ta sẽ lưu được 4 bit trên một khối F
2.2.1.1 Lược đồ giấu tin CPTE
Ta thực hiện giấu một dãy r+1 bit với r = log2(m×n) vào khối ma trận nhị phân F kích thước m×n với:
+) b là dãy r+1 bit cần giấu vào ma trận F m×n
b = b1b2…b r+1
Dữ liệu ra: Ma trận nhị phân F’ = (F ij ’) m×n chứa giá trị b và ta có thể tính lại giá trị b
từ F’ kết hợp với các ma trận K, W
Thuật toán giấu tin:
Bước 1) Kiểm tra khối F nếu là ma trận đồng nhất 0 hoặc 1 (gồm toàn bit 0 hoặc 1) ta
sẽ bỏ qua không giấu tin vào khối F này
ij
ij W T S
Trang 36Hay 0 ≤ S ≤ 2r+1−1
Khác với phương pháp CPT chỉ xét mod 2r
, S chính là giá trị nguyên mod 2r+1 tương ứng được tính bởi ma trận nhị phân F, phụ thuộc vào ma trận khóa K và ma trận trọng số W
Bước 4)
b = b1b2…b r+1 là giá trị số cần giấu dưới dạng dạng cơ số 2 Suy ra: 0 ≤ b ≤
2r+1−1 (như S) Ta cần đảo nhiều nhất 2 phần tử F ij thuộc ma trận F sao cho:
Bước 5)
Mục đích của bước này là ta tìm tập các vị trí F ij để sao cho sau khi đảo bit một
trong các vị trí này, ta được S’ = b
Gọi S α là tập các phần tử F ij, thỏa mãn điều kiện nếu thay đổi giá trị một phần tử
thuộc S α thì giá trị S tăng lên đúng một lượng là α (theo mod 2 r+1
)
Có 3 trường hợp xảy ra xét theo α:
Trường hợp 1: 1≤ α <2 r Khi đó nếu W ij = α và T ij = 0, thì ta đảo bit Fij trên ma trận F Do sự tương ứng của phép toán T = F ⊕ K nên T ij cũng
đảo bit T ij = 0 thành T ij ’ = 1 Theo cách tính giá trị S ta có:
Trang 37Nếu α ≠ 0 mod 2 r+1
và S α ≠ Ø: ta chỉ cần đảo giá trị của một phần tử F ij ∈ Sα khi
đó S sẽ tăng một lượng α và F mới sẽ lưu giá trị b, ta chuyển sang bước 8
Nếu α ≠ 0 mod 2 r+1
và S α = Ø: ta chuyển tiếp sang bước 7
Bước 7)
Ta tìm h tự nhiên h>1 và nhỏ nhất sao cho S hα ≠ Ø và S α hα≠ Ø
Sự tồn tại của h được chỉ ra ở bổ đề 2.2.3 dưới đây
Khi đó ta đảo giá trị một phần tử thuộc S hα và một phần tử thuộc S α hα, giá trị
của S sẽ tăng lên một lượng là hα và α−hα, do đó S tăng lên một lượng đúng bằng α và
.0 mod 2 r+1 hay α = 0 mod 2 r+1điều này mâu thuẫn
với giả thiết ở bước 5 là α ≠ 0 mod 2 r+1 Vậy phải có hα ≠ (α − hα) mod 2 r+1 hay tương
đương là S hα ∩ Sα hα=∅ Do vậy ta luôn có thể chọn 2 phần tử tách biệt trong S hα và
S α hα
Bước 8) Kiểm tra tính đồng nhất của ma trận F, nếu F gồm toàn bít 0 và bít 1 ta sẽ coi
như khối bít này không có giấu tin thuật toán dừng và trả về giá trị False (Khi thực
hiện giấu tin trên toàn bộ ảnh G nếu thuật toán giấu tin trên 1 khối F trả về giá trị False
ta sẽ thực hiện giấu dãy bit b vào khối F tiếp theo)
Thuật toán dừng trả về giá trị True
Thuật toán lấy lại giá trị mật được giấu:
Bước 1) Kiểm tra tính đồng nhất của ma trận F, nếu F gồm toàn bít 0 và bít 1 thuật
toán dừng và trả về giá trị -1 thể hiện rằng không có thông tin được giấu trong F
Bước 2)
Tính r = log2(mn),
T = F ⊕ K,
b = SUM[T ⊗ W] mod 2 r+1
Thuật toán dừng trả về giá trị b
2.2.1.2 Chứng minh tính đúng đắn của lược đồ giấu tin CPTE
Trang 38Mặt khác, theo giả thiết S α = Ø nên theo cách xây dựng Sα trong bước 4 ở trên thì:
≠ 0 mod t Mặt khác (k-1)α = kα- α = t-α mod t, như vậy S (k-1)α =S t-α Theo bổ đề 2.1.1,
nếu S α = Ø thì S t-α ≠ ∅ , chọn h=k-1 ta sẽ có S hα = S t-α ≠ ∅, dễ thấy h >1 Từ đây suy ra luôn tồn tại số tự nhiên h > 1 sao cho cho S hα≠ Ø
Chọn h là số nguyên nhỏ nhất, h>1 thỏa mãn S hα ≠ Ø, thì S(h-1)α = Ø Theo bổ đề
2.1.1 ta có S t-(h-1)α ≠ ∅ Vì α−hα=t-(h-1)α mod t, hay S α hα = S t-(h-1)α ≠ Ø
Vậy bổ đề được chứng minh
Định lý 2.2.1: Cho F, K là ma trận bit cấp m×n và W là ma trận các số tự nhiên cùng
cấp W thỏa mãn:
{W ij, 1≤ i≤ m, 1≤ j≤ n} = {1, 2,…, 2r
}
với r = log2(m×n), b = b1b2…b r+1 là dãy r+1bit cần giấu
Trong mọi trường hợp ta đều có thể thay từ 0 tới 2 bit của F để được:
b = SUM[(F ⊕ K) ⊗ W] mod 2 r+1
Chứng minh:
Bài toán chỉ xảy ra một trong ba trường hợp sau đây:
• Nếu S = b (hay α = 0) ta không cần thay đổi ma trận F
• Nếu α ≠ 0 và S α≠ Ø:
Trang 39Khi đó dựa trực tiếp vào cách xây dựng S α ta chỉ cần đảo giá trị một ô F ij ∈S α và
thu được S’=b mod 2 r+1
Ví dụ 2.2.1 Thực hiện giấu 4 bít trên ma trận nhị phân cấp 3×3 theo phương pháp
0 1 0
1 1 0
0 1 1
1 1 0
2 7 4
3 1 5
001
000
K F T
004
000
W T
S = SUM[T ⊗W] = 4+8+6 = 18 = 2 mod 24
a) Giả sử cần giấu b= 0010, ta có b=S, ta không phải đảo bit nào
b) giả sử cần giấu b =1001, α = 9 − 2 = 7 mod 16, khi đó ta xác định được S7={F22|
000
110'
011
000'
011
110
000
000'
' F K T
Trang 40S’ = 8 mod 16 = b (đúng)
2.2.2 Phương pháp CPTE1
Ý tưởng của phương pháp CPTE1 là tìm cách giấu dữ liệu mật vào một tập điểm ảnh khi thay đổi nhiều nhất giá trị màu của một điểm ảnh Phương pháp CPTE1 sẽ cải tiến cách xây dựng ma trận trọng số, cách biểu diễn các phần tử của ma trận trọng số, cách thực hiện phép toán cộng giữa các phần tử thuộc ma trận trọng số và phép toán nhân giữa các phần tử thuộc ma trận nhị phân (0,1) với các phần tử thuộc ma trận trọng
số Cụ thể như sau:
- Các phần tử của ma trận trọng số W được biểu diễn dưới dạng chuỗi bít có cùng
độ dài n (theo hệ cơ số 2, các phần tử của W trong phương pháp CPT được biểu diễn theo hệ cơ số 10) Ví dụ: với n = 5 ta có phần tử 16 của W được biểu diễn
là 10000, phần tử có giá trị 7 của W được biểu diễn là 00111
- Với phần tử bất kỳ x, y của ma trận trọng số được biểu diễn bởi dãy n-bít
x1x2 x n và y1y2 yn và k∈Z2 ta định nghĩa các phép toán (*) và ⊕ như sau:
x ⊕y = z1z2 zntrong đó z i =x i +y i mod 2, i=1, ,n
x*k = k*x= z1z2 zntrong đó z i =x i k (=x i And k)
Ta có thể dễ dàng kiểm tra các tính chất sau:
i) x ⊕x = 0, hay -x = x,
ii) x ⊕y = y⊕x
Ghi chú 2.2.1: Để đơn giản ta biểu diễn các phần tử của ma trận trọng số W trong
phương pháp CPTE1 như là các số tự nhiên (theo hệ cơ số 10), ngoại trừ khi ta thực hiện các phép toán * và ⊕ ta sẽ chuyển sang thực hiện trên dãy các chuỗi bít
2.2.2.1 Lược đồ giấu tin theo phương pháp CPTE1
Thuật toán giấu tin CPTE1.A:
Thuật toán giấu một dãy r bít (r = log2(m×n+1)) vào ma trận nhị phân F gồm
m×n phần tử mà chỉ cần thay đổi giá trị của một phần tử của F
Dữ liệu vào:
+) Ta xét trên 1 ma trận ảnh nhị phân F = (F ij)m×n
+) Kết hợp 1 ma trận khóa nhị phân cấp m×n: K = (K ij)m×n
+) W là ma trận trọng số cấp m×n : W = (W ij)m×n với W ijlà số tự nhiên được biễu
diễn dưới dạng chuỗi nhị phân có độ dài r
+) r = log2(N+1), N= m×n
Đặt điều kiện với W:
{W ij, 1 ≤ i≤ m, 1 ≤ j ≤ n} = {1, 2,…, 2r
-1}
Nói cách khác, các giá trị của tập V = {1, 2,…, 2 r-1} phải xuất hiện trong W ít
nhất 1 lần Với cách chọn r như trên ta thấy số phần tử của tập V = 2r
-1 <=