Nội dung luận văn tập trung vào việc nghiên cứu một số kỹ thuật giấu dữ liệu trong ảnh đã được công bố, một số lược đồ thủy vân dễ vỡ khóa công khai trên ảnh nhị phân và ảnh mầu; ứng dụn
Trang 1ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
HOÀNG THỊ THÚY DIỆU
PHƯƠNG PHÁP THỦY VÂN DỄ VỠ
KHÓA CÔNG KHAI ỨNG DỤNG TRONG BÀI TOÁN CHỐNG GIẢ MẠO VĂN BẰNG
LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2014
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan
Những nội dung trong luận văn này là do tôi thực hiện dưới sự chỉ đạo trực tiếp của thầy giáo PGS.TS Phạm Văn Ất
Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
Mọi sao chép không hợp lệ, vi phạm qui chế đào tạo, hay gian trá tôi xin chịu hoàn toàn trách nhiệm
Học viên
Hoàng Thị Thúy Diệu
Trang 3LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời biết ơn sâu sắc đến PGS.TS Phạm Văn Ất người đã tận tình hướng dẫn, chỉ bảo, giúp đỡ em trong suốt quá trình làm luận văn
Em cũng xin gửi lời cảm ơn đến các thầy cô giáo trường Đại học Công nghệ thông tin và Truyền thông - Đại học Thái Nguyên, các thầy cô Viện Công nghệ thông tin đã truyền đạt những kiến thức và giúp đỡ em trong suốt quá trình học của mình
Tôi cũng xin gửi lời cảm ơn tới Ban giám hiệu trường Cao đẳng Cộng đồng Bắc Kạn đã tạo điều kiện thuận lợi cho tôi tham gia khóa học và trong suốt quá trình hoàn thành luận văn
Và cuối cùng tôi xin gửi lời cảm ơn tới các đồng nghiệp, gia đình và bạn
bè những người đã ủng hộ, động viên tạo mọi điều kiện giúp đỡ để tôi có được kết quả như ngày hôm nay
Hoàng Thị Thuý Diệu
Trang 4MỤC LỤC
TRANG PHỤ BÌA………i
LỜI CAM ĐOAN ii
LỜI CẢM ƠN iii
MỤC LỤC iv
DANH MỤC CÁC BẢNG vii
DANH MỤC CÁC HÌNH viii
MỞ ĐẦU 1
Chương 1 3
TỔNG QUAN VỀ CÁC KỸ THUẬT GIẤU TIN 3
1.1 Khái niệm giấu tin 3
1.2 Lịch sử giấu tin 4
1.3 Phân loại các kỹ thuật giấu tin 6
1.4 Ứng dụng của kỹ thuật giấu tin 6
1.5 Một số hướng tiếp cận giấu tin trong ảnh 8
1.5.1 Giấu tin trên miền không gian ảnh 8
1.5.2 Giấu tin trên miền tần số 8
1.6 Cấu trúc tệp ảnh bitmap 9
1.6.1 Cấu trúc và nội dung của Bitmap File Header 10
1.6.2 Cấu trúc và nội dung của Bitmap Info 10
1.6.3 Cấu trúc và nội dung của Color Palette 11
1.6.4 Bitmap Data 11
1.7 Một số định nghĩa 11
1.8 Thuật toán giấu tin Wu-Lee 13
1.8.1 Thuật toán nhúng tin 13
1.8.2 Phân tích thuật toán 15
Trang 51.8.3 Thí dụ minh họa thuật toán nhúng tin Wu-Lee 16
1.8.4 Một số nhận xét về thuật toán Wu-Lee 17
1.9 Thuật toán Chen – Pan – Tseng 18
1.9.1 Ý tưởng 18
1.9.2 Thuật toán nhúng tin CPT 18
1.9.3 Chứng minh tính đúng đắn của thuật toán 20
1.9.4 Một số thí dụ minh họa thuật toán CPT 22
1.9.5 Phân tích thuật toán 25
1.10 Thuật toán giấu tin THA 26
1.10.1 Thuật toán nhúng tin 26
1.10.2 Ví dụ minh hoạ 27
Chương 2 29
MỘT SỐ LƯỢC ĐỒ THỦY VÂN DỄ VỠ KHÓA CÔNG KHAI 29
2.1 Thủy vân trên ảnh số 29
2.2 Phân loại thủy vân 30
2.3 Giới thiệu về hàm băm 31
2.3.1 Định nghĩa hàm băm 31
2.3.2 Đặc tính của hàm băm 31
2.3.3 Tính chất của hàm băm 32
2.3.4 Một số hàm băm phổ biến 33
2.3.5 Tiêu chuẩn của một hàm băm tốt 35
2.3.6 Ứng dụng của hàm băm 36
2.4 Hệ mật mã khóa công khai 36
2.4.1 Mã khóa công khai 37
2.4.2 Sơ đồ mã khóa công khai 37
2.4.3 Các đặc trưng của khóa công khai 38
2.4.4 Ứng dụng khóa công khai 38
Trang 62.4.5 Tính an toàn của các sơ đồ khóa công khai 39
2.5 Hệ mã hóa RSA 39
2.5.1 Tạo khóa cho RSA 40
2.5.2 Sử dụng RSA 40
2.5.3 Ví dụ RSA 40
2.5.4 Sơ đồ chữ ký số RSA 41
2.6 Quản lý và phân phối khóa 42
2.7 Lược đồ thủy vân dễ vỡ khóa công khai trên ảnh nhị phân 43
2.7.1 Thuật toán nhúng dấu thủy vân 44
2.7.2 Thuật toán xác thực tính toàn vẹn 44
2.7.3 Tấn công tính chẵn lẻ 45
2.8 Lược đồ thủy vân dễ vỡ khóa công khai trên ảnh mầu 46
2.8.1 Nhúng tin trên ảnh mầu bằng kỹ thuật chèn bit thấp 46
2.8.2 Thuật toán nhúng thủy vân 48
2.8.3 Thuật toán xác thực 49
Chương 3 51
ỨNG DỤNG THỦY VÂN DỄ VỠ KHOÁ CÔNG KHAI TRONG 51
BÀI TOÁN CHỐNG GIẢ MẠO VĂN BẰNG 51
3.1 Bài toán 51
3.2 Giải pháp 51
3.3 Mô hình xử lý của hệ thống 51
3.4 Kết quả thực nghiệm 53
KẾT LUẬN 58
TÀI LIỆU THAM KHẢO 59
I Tiếng Việt 59
II Tiếng Anh 59
Trang 7DANH MỤC CÁC BẢNG
Bảng 1.1 Cấu trúc và nội dung của Bitmap File Header 10 Bảng 1.2 Cấu trúc và nội dung của Bitmap Info 10 Bảng 1.3 Cấu trúc và nội dung của Color Palette 11
Trang 8DANH MỤC CÁC HÌNH
Hình 1.1 Mô hình giấu tin 3
Hình 1.2 Mô hình giải mã thông tin 4
Hình 1.3 Phân loại kỹ thuật giấu tin 6
Hình 1.4 Minh hoạ thuật toán nhúng tin của Wu-Lee 16
Hình 1.5 Minh hoạ giữa thay đổi ngẫu nhiên và thay đổi có định hướng 18
Hình 1.6 Minh hoạ thuật toán CPT trường hợp thay đổi 1 bit 222
Hình 1.7 Minh hoạ quá trình giải mã thông tin đã giấu 233
Hình 1.8 Thí dụ minh hoạ trường hợp thay đổi hai bit 25
Hình 2.1 Mô hình thủy vân số 29
Hình 2.2 Phân loại thủy vân theo mục đích ứng dụng 30
Hình 2.3 Sơ đồ mã khóa công khai 38
Hình 2.4 Mô hình thuật toán nhúng thủy vân 44
Hình 2.5 Mô hình xác thực tính toàn vẹn 45
Hình 3.1 Sơ đồ thủy vân ảnh bằng 52
Hình 3.2 Sơ đồ xác thực và định vị vùng giả mạo 53
Hình 3.3 Ảnh bằng gốc Error! Bookmark not defined Hình 3.4 Ảnh bằng thủy vân 55
Hình 3.5 Ảnh bằng giả 56
Hình 3.6 Ảnh định vị vùng giả mạo 57
Trang 9MỞ ĐẦU
Một trong những thành tựu quan trọng của những thập niên cuối thế kỷ
XX, đầu thế kỷ XXI là sự ra đời, phát triển của mạng Internet Mọi người đều
có thể kết nối vào Internet để tìm kiếm thông tin một cách dễ dàng thông qua nhà cung cấp dịch vụ Internet Người dùng có thể đọc thông tin mới nhất, tra cứu các thư viên số, tìm thông tin lĩnh vực mình quan tâm Bên cạnh đó, các nhà cung cấp sản phẩm cũng sẵn sàng cung cấp dữ liệu của mình cho người dùng thông qua mạng
Tuy nhiên việc phân phối một cách phổ biến các tài nguyên trên mạng hiện nay luôn gặp phải vấn nạn sao chép và sử dụng không hợp pháp Kỹ thuật thủy vân hiện đang được xem là một trong những giải pháp quan trọng trong việc bảo vệ bản quyền và xác thực tính toàn vẹn của dữ liệu số
Theo mục đích sử dụng của lược đồ thủy vân được chia thành hai nhóm chính là thủy vân dễ vỡ và thủy vân bền vững Mặt khác, dựa vào việc sử dụng khóa cũng có thể chia thành hai loại là: thủy vân khóa bí mật và thủy vân khóa công khai Đối với thủy vân khóa bí mật, do sử dụng chung khóa cho cả hai quá trình nên cần phải có công đoạn trao đổi khóa giữa người nhúng và người kiểm tra dấu thủy vân, điều này dẫn đến việc bảo mật khóa gặp phải khó khăn Tuy nhiên hạn chế này không xuất hiện trong thuật toán thủy vân khóa công khai
Nội dung luận văn tập trung vào việc nghiên cứu một số kỹ thuật giấu
dữ liệu trong ảnh đã được công bố, một số lược đồ thủy vân dễ vỡ khóa công khai trên ảnh nhị phân và ảnh mầu; ứng dụng những kỹ thuật này trong bài toán chống giả mạo văn bằng
Trang 10Cấu trúc của luận văn
Dựa vào mục tiêu đã xác định, nội dung của luận văn sẽ được trình bày qua 3 chương như sau:
Chương I: Tổng quan về các kỹ thuật giấu tin
Chương II: Một số lược đồ thủy vân dễ vỡ khóa công khai
Chương III: Ứng dụng thuỷ vân dễ vỡ khoá công khai trong bài toán chống giả mạo văn bằng
Do thời gian và trình độ còn hạn chế nên luận văn khó tránh khỏi những sai sót, kính mong nhận được sự đóng góp chỉ bảo của các thầy, cô giáo và các bạn đồng nghiệp
Qua đây tôi xin cảm ơn thầy giáo PGS.TS Phạm Văn Ất và các thầy giáo trong Trường Đại học công nghệ thông tin và truyền thông – Đại học Thái Nguyên đã tận tình hướng dẫn tôi trong quá trình học tập cũng như trong thời gian nghiên cứu hoàn thiện luận văn này
Thái Nguyên, tháng 7 năm 2014
Học viên thực hiện
Hoàng Thị Thúy Diệu
Trang 11Chương 1 TỔNG QUAN VỀ CÁC KỸ THUẬT GIẤU TIN
Chương này trình bày một số khái niệm và phân tích khả năng ứng dụng của kỹ thuật giấu tin Ngoài ra, trong Chương còn trình bày ba thuật toán giấu tin trên ảnh nhị phân Wu-Lee[8], CPT[6] và THA [7] thường được đề cập trong các tài liệu Các thuật toán này là cơ sở để xây dựng lược đồ thủy vân dễ vỡ trình bày trong Chương 2
1.1 Khái niệm giấu tin
Giấu tin là một kỹ thuật giấu một lượng thông tin số nào đó vào một đối tượng dữ liệu khác
Kỹ thuật giấu tin nhằm hai mục đích: một là bảo mật cho dữ liệu được đem giấu, hai là bảo vệ cho chính đối tượng được giấu tin ở trong Hai mục đích khác nhau này dẫn đến hai kỹ thuật chủ yếu của giấu tin Hướng thứ nhất
là giấu tin mật, nhằm tập trung vào các kỹ thuật giấu tin sao cho người khác khó phát hiện được đối tượng có chứa thông tin mật bên trong Hướng thứ hai
là thủy vân số, hướng thủy vân số có miền ứng dụng lớn hơn nên được quan tâm nghiên cứu nhiều hơn và thực tế đã có rất nhiều kỹ thuật được đề xuất
Mô hình giấu tin và giải mã thông tin
a Mô hình giấu tin
Hình 1.1 Mô hình giấu tin
Trang 12b Mô hình giải mã thông tin
Hình 1.2 Mô hình giải mã thông tin 1.2 Lịch sử giấu tin
Các kỹ thuật giấu tin đã được đề xuất và sử dụng từ xa xưa, và tiếp tục được phát triển cho đến ngày nay
Các ghi chép đầu tiên về giấu tin đã được nhà sử học Hy Lạp Herodotus ghi chép lại, một trong những câu chuyện nổi tiếng khi nói đến lĩnh vực này là câu chuyện về tên bạo chúa Histiacus Trong suốt thế kỷ thứ 5 trước công nguyên, Histiacus bị vua Darius giam cầm tại nhà tù Susa Trong thời gian này, ông đã cố gắng liên hệ với con rể của mình là Aristagoras ở Miletus Để thực hiện âm mưu này, ông đã cạo đầu của một nô lệ và xăm lên
đó thông điệp cần chuyển, đến khi tóc của nô lệ này mọc dài, hắn được chuyển tới Miletus Phương pháp này về sau đã được các điệp viên Đức sử dụng vào đầu thế kỷ 20
Ngoài ra, từ xa xưa Demeratus người Hy Lạp đã nghĩ ra cách khắc thông báo lên bề mặt các viên thuốc và được bọc lại cẩn thận Hay như cách
sử dụng mực không màu, nước hoa quả, để viết thông báo ẩn v.v
Thời chiến tranh Pháp – Phổ (1870 – 1871), thông tin được giấu trong các đoạn phim nhỏ Thời chiến tranh thế giới thứ I, tài liệu trao đổi giữa các điệp viên được giấu dưới các siêu dấu chấm Và rất nhiều phương pháp khác
Trang 13được áp dụng để che giấu thông tin sử dụng trong chiến tranh Về sau, rất nhiều kỹ thuật giấu tin trên giấy đã được phát triển sử dụng các tia cực tím
Giải pháp giấu thông tin mật vào các bức ảnh được khám phá và phát triển đầu tiên vào những năm 1860, do nhiếp ảnh gia Dragon người Pháp thực hiện
Ngày nay, giấu thông tin trong ảnh chiếm tỷ lệ lớn trong các chương trình ứng dụng, các phần mềm, hệ thống giấu tin trong dữ liệu đa phương tiện bởi lượng thông tin được trao đổi bằng ảnh là rất lớn Hơn nữa, giấu thông tin trong ảnh cũng đóng vai trò 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ư: nhận thức thông tin, xác định xuyên tạc thông tin, bảo vệ bản quyền tác giả, điều khiển truy cập, giấu thông tin mật v.v 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, tổ chức, trường đại học và viện nghiên cứu trong và ngoài nước
Thông tin sẽ được giấu cùng với dữ liệu ảnh nhưng chất lượng ảnh ít thay đổi và mắt người không thể phát hiện được bên trong bức ảnh đó có chứa thông tin gì Và ngày nay, khi ảnh số đã được sử dụng phổ biến thì giấu thông tin trong ảnh đã đem lại rất nhiều những ứng dụng quan trọng trên nhiều lĩnh vực trong đời sống xã hội Ví dụ như đối với các nước phát triển chữ ký tay
đã được số hoá và được lưu trữ giống như là hồ sơ cá nhân của các dịch vụ ngân hàng và tài chính, nó được dùng để xác thực trong các thẻ tín dụng của người tiêu dùng Thêm vào đó, lại có rất nhiều loại thông tin quan trọng cần được bảo mật, chúng rất dễ bị lấy trộm và bị thay đổi bởi các phần mềm chuyên dụng Việc nhận thức cũng như phát hiện thông tin xuyên tạc đã trở nên vô cùng quan trọng và cấp thiết Một đặc điểm của giấu thông tin trong ảnh đó là thông tin được giấu trong ảnh một cách vô hình, bởi sau khi giấu thông tin thì chất lượng ảnh gần như không thay đổi, đặc biệt đối với ảnh màu hay ảnh đa mức xám
Trang 141.3 Phân loại các kỹ thuật giấu tin
Có thể chia lĩnh vực giấu tin thành hai hướng chính, đó là giấu tin mật
và thủy vân số
Kỹ thuật giấu tin mật luôn chú trọng đến tính che giấu, với tính che
giấu, các đối thủ khó có thể phát hiện được đối tượng có chứa tin mật bên trong hay không; hơn nữa, nếu phát hiện có giấu tin thì việc giải mã thông tin mật cũng khó có thể thực hiện được Đồng thời, các kỹ thuật giấu tin mật còn quan tâm lượng tin có thể được giấu
Phạm vi ứng dụng của thủy vân đa dạng hơn, tuỳ theo mục đích của hệ thủy vân mà người ta lại chia thành các hướng nhỏ như: thủy vân dễ vỡ và thủy vân bền vững Thủy vân bền vững quan tâm nhiều đến việc nhúng những mẩu tin đòi hỏi độ bền vững cao của thông tin được giấu trước các biến đổi thông thường trên dữ liệu môi trường Thủy vân dễ vỡ yêu cầu thông tin giấu
sẽ bị sai lệch nếu có bất kỳ sự thay đổi nào trên dữ liệu chứa Như vây, kỹ thuật giấu tin có thể được phân loại như trong Hình 1.3
Hình 1.3 Phân loại kỹ thuật giấu tin 1.4 Ứng dụng của kỹ thuật giấu tin
Giấu tin mật: Thông tin được giấu trong những trường hợp này cần
được bảo mật trước các đối thủ Việc giải mã để nhận được thông tin cũng không cần dữ liệu môi trường gốc Đối với các thuật toán giấu tin mật chúng
ta không chú trọng đến việc bảo vệ thông tin mật trước sự tấn công của các
Giấu thông tin
Trang 15đối thủ mà thay vào đó các thuật toán quan tâm đến tính ẩn và tính an toàn đối với dữ liệu cần giấu Do đó, các thuật toán giấu tin có độ bảo mật cao sẽ được
sử dụng trong các ứng dụng giấu tin mật
Bảo vệ bản quyền tác giả: Đây là ứng dụng cơ bản nhất của kỹ thuật
thủy vân số Một thông tin nào đó mang ý nghĩa bản quyền được sở hữu bởi tác giả gọi là thủy vân, thông tin này sẽ được nhúng vào trong các sản phẩm multimedia, và đó là minh chứng cho bản quyền của tác giả nhằm bảo vệ các sản phầm chống lại các hành vi lấy cắp hoặc làm nhái Yêu cầu kỹ thuật đối với ứng dụng này là thủy vân phải tồn tại bền vững cùng với sản phẩm, khi muốn bỏ thủy 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
Xác thực thông tin: Một tập các thông tin sẽ được giấu trong dữ liệu
nguồn và thông tin sẽ được sử dụng để nhận biết xem dữ liệu nguồn có bị thay đổi hay không Với kiểu ứng dụng này các thủy vân nên được ẩn để tránh được sự tò mò của đối phương, hơn nữa việc làm giả các thủy vân hợp lệ hay xuyên tạc thông tin nguồn cũng cần được xem xét Trong các ứng dụng thực
tế, người ta mong muốn tìm được vị trí bị xuyên tạc cũng như phân biệt được các thay đổi Yêu cầu chung đối với ứng dụng này là khả năng giấu thông tin cao và thủy vân không cần bền vững
Giấu vân tay hay dán nhãn: Thủy vân số trong những ứng dụng này
được sử dụng để nhận diện người gửi hay người nhận của một thông tin nào
đó Ví dụ như các vân khác nhau sẽ được nhúng vào các bản sao khác nhau của thông tin gốc trước khi chuyển cho nhiều người Với những ứng dụng này thì yêu cầu là đảm bảo độ an toàn cao cho các thủy vân tránh sự xoá giấu vết trong khi phân phối
Kiểm soát sao chép: Các thủy vân trong những trường hợp này được
sử dụng để kiểm soát việc sao chép thông tin Các thiết bị phát hiện ra thủy vân thường được gắn sẵn vào trong các hệ thống đọc/ghi Ví dụ như hệ thống
Trang 16quản lí sao chép DVD đã được sử dụng ở Nhật Các ứng dụng loại này yêu cầu thủy vân phải được đảm bảo an toàn và cũng sử dụng phương pháp phát hiện thủy vân đã giấu mà không cần thông tin gốc
1.5 Một số hướng tiếp cận giấu tin trong ảnh
1.5.1 Giấu tin trên miền không gian ảnh
Miền không gian ảnh là miền dữ liệu ảnh gốc, tác động lên miền không gian ảnh chính là tác động lên các điểm ảnh, thay đổi giá trị trực tiếp của điểm ảnh Đây là hướng tiếp cận tự nhiên bởi vì khi nói đến việc giấu tin trong ảnh người ta thường nghĩ ngay đến việc thay đổi giá trị các điểm ảnh nguồn, một phương pháp phổ biến của hướng tiếp cận này là phương pháp tác động đến bit ít quan trọng của mỗi điểm ảnh
Tuy nhiên, phương pháp này cũng có nhiều hạn chế, chẳng hạn như không đảm bảo được tính bền vững của thông tin giấu đối với các thao tác biến đổi như quay ảnh hoặc nén ảnh Jpeg Điều này là dễ hiểu vì các thao tác nói trên cũng loại bỏ hoặc làm sai lệch các bit ít quan trọng nhất của mỗi điểm ảnh
1.5.2 Giấu tin trên miền tần số
Hướng tiếp cận dựa trên miền không gian ảnh như đã trình bày ở trên là cách tiến hành khảo sát tín hiệu và hệ thống rời rạc một cách trực tiếp trên miền giá trị rời rạc của các điểm ảnh gọi là trên miền biến số độc lập tự nhiên Nhưng trong nhiều trường hợp, cách khảo sát trực tiếp này gặp phải những khó khăn nhất định hoặc rất phức tạp và hiệu quả không cao
Ngoài phương pháp khảo sát trực tiếp, có thể dùng phương pháp khảo sát gián tiếp thông qua các kỹ thuật biến đổi Các biến đổi này làm nhiệm vụ chuyển miền biến số độc lập sang các miền khác và như vậy tín hiệu và hệ thống rời rạc sẽ được biểu diễn trong các miền mới với các biến số mới Phương pháp biến đổi này cũng giống như phương pháp biến đổi trong phép tính tích phân hay phương pháp đổi hệ toạ độ trong giải tích của toán phổ thông quen thuộc
Trang 17Mỗi cách biến đổi sẽ có những thuận lợi riêng, tuỳ từng trường hợp mà chúng ta chọn phép biến đổi nào cho phù hợp Sau khi khảo sát, biến đổi xong các tín hiệu và hệ thống rời rạc trong miền các biến số mới này, nếu cần thiết
có thể dùng các biến đổi ngược để đưa chúng trở lại miền biến số độc lập
Phương pháp khảo sát gián tiếp sẽ làm đơn giản rất nhiều các công việc gặp phải khi dùng phương pháp khảo sát trực tiếp trong miền biến số độc lập
tự nhiên Hệ thống rời rạc cần khảo sát chính là miền không gian các điểm ảnh Có một số phương pháp biến đổi được sử dụng rất phổ biến như: Furier, Cosine rời rạc (DCT), Wavelet rời rạc (DWT)… Đây là những phép biến đổi được sử dụng nhiều trong các kỹ thuật xử lý ảnh và âm thanh Trong giấu tin, đặc biệt trong kỹ thuật thủy vân tiếp cận theo miền tần số, các phép biến đổi
từ miền biến số tự nhiên của ảnh sang miền tần số như biến đổi Furier, biến đổi cosin rời rạc, Wavelet được sử dụng phổ biến
1.6 Cấu trúc tệp ảnh bitmap
Tệp ảnh bitmap là một trong những định dạng ảnh thông dụng được hỗ trợ bởi hầu hết các hệ điều hành và thiết bị điện tử Theo [3], tệp ảnh bitmap được chia thành 4 phần như sau:
Trong đó:
Bitmap File Header gồm 14 byte
Bitmap Info gồm 40 byte
Color palette - Bảng màu (đối với ảnh 24 bít không có bảng mầu)
Bitmap Data
Trang 181.6.1 Cấu trúc và nội dung của Bitmap File Header
Bảng 1.1 Cấu trúc và nội dung của Bitmap File Header
3 - 6 Size of the file Unsigned long
11 - 14 Byte offset to bitmap data Số TT (tính từ 0) byte
đầu của BMP data
1.6.2 Cấu trúc và nội dung của Bitmap Info
Bảng 1.2 Cấu trúc và nội dung của Bitmap Info
1 - 4 Number of bytes in Bitmap Info 40
15 - 16 Number of bits per pixels 1, 4, 8 hoặc 24
Trang 191.6.3 Cấu trúc và nội dung của Color Palette
Bảng 1.3 Cấu trúc và nội dung của Color Palette
Với ảnh 24 mầu
Mỗi nhóm 3 byte biểu diễn mầu của một điểm ảnh (byte 1 – Red, byte
2 – Green, byte 3 – Blue) Thứ tự lưu trữ các điểm ảnh trong file cũng như với ảnh 8 màu
1.7 Một số định nghĩa
Trước tiên luận văn trình bày một số định nghĩa sử dụng trong các thuật toán nhúng tin
Trang 20Định nghĩa 1.1: Phép hai ma trận nguyên cùng cấp A và B (ký hiệu A
0 1 1 0
0 0 0 1
0 1 0 1
1 1 0 0
1 0 1 0
1 0 1 1
1 1 0 0
1 0 1 0
1 1 0 0
1 0 1 0
1 0 0 1
1.2:
:
Với
Định nghĩa 1.3: Ma trận W kích thước được gọi là ma trận trọng số
Thí dụ minh hoạ về ma trận trọng số cấp 3 (r = 3) với ma trận W như sau:
3 6 2
1 7 4
7 6 5
2 3 1 W
lại không phải là ma trận trọng số cấp 3 vì
trong ma trận W' không tồn tại phần tử (i,j) để W'i,j = 4, mà 3
4 1, 2, , 2 1 ,
,
W |i j i 1 4, j 1 3 1, 2, , 2 1
Trang 21Định nghĩa 1.4: Phép toán SUM trên ma trận A cấp được tính theo công thức:
1.5:
1.8 Thuật toán giấu tin Wu-Lee
Kỹ thuật giấu tin theo khối bit thể hiện độ an toàn không cao với việc
sử dụng duy nhất kích thước khối là khoá cho quá trình giấu tin, đồng thời ảnh chứa thông tin giấu cũng dễ bị phát hiện do kỹ thuật có thể sẽ thay đổi giá trị của một bit trong các khối ảnh toàn màu đen hoặc toàn màu trắng Điều này sẽ có thể dẫn tới sự bất thường ở vị trí thay đổi so với các vị trí lân cận trong khối
Thuật toán giấu thông tin trong ảnh đen trắng do M.Y.Wu và J.H.Lee [8] đưa ra trong một bài báo đăng tại Proceedings of international Symposium
on Multimedia Information Processing 1999 đã khắc phục được phần nào những tồn tại nêu trên bằng cách đưa thêm khoá K cho việc giấu tin và đưa thêm các điều kiện để thay đổi bit trong mỗi khối
1.8.1 Thuật toán nhúng tin
Tư tưởng giấu tin của Wu - Lee
Thuật toán giấu tin được thể hiệu như sau: chia ảnh môi trường thành các khối điểm ảnh có cùng kích thước mxn Với mỗi khối điểm ảnh F (ma trận điểm ảnh) có thể được giấu tối đa 1 bit b (b = 0 hoặc b = 1) Quá trình giấu tin sẽ thực hiện biến đổi ma trận nhị phân F thành ma trận G nhưng giữa
F và G chỉ khác nhau tối đa là một vị trí
Tóm tắt thuật toán
Input:
Trang 22là kích thước của ma trận gồm m hàng và n cột, giá trị m, n được giữ bí mật
Fmxn là ma trận nhị phân và là ma trận môi trường để giấu tin
Kmxn là ma trận nhị phân khoá và giá trị của ma trận K phải được giữ bí mật
b là bit nhị phân cần giấu (b = 0 hoặc b = 1)
Trường hợp 1 if s mod 2 = b then
G = F // giấu mà không cần biến đổi
Trường hợp 2 if s = SUM(K) -1 then
- Chọn ngẫu nhiên phần tử (i,j) thoả Fi,j = 1 và Ki,j =1
- Fi,j = 0
Trang 23Trường hợp 4 if (s >1) and (s <SUM(K) -1 ) then
- Chọn ngẫu nhiên phần tử (i,j) thoả Ki,j =1
- Fi,j = NOT (Fi,j)
- G = F
1.8.2 Phân tích thuật toán
Thuật toán sử dụng K nhằm làm tăng độ bảo mật cho thuật toán giấu tin Nếu trước đây chỉ biết kích thước khối là mxn thì đối phương đã có thể dễ dàng giải mã được tin mật thông qua ảnh chứa tin, nhưng với thuật toán của Wu-Lee ngoài giá trị m,n các thuật toán thám mã còn phải xác định giá trị cụ thể của ma trận K Do vậy, để tìm được ma trận khóa K khi đã biết m, n các thuật toán thám mã phải duyệt trường hợp khác nhau
Theo định nghĩa phép toán , và bất biến (1.2) nên nội dung thuật toán Wu-Lee sẽ biến đổi F thành G sao cho SUM(G K) cùng tính chẵn lẻ với b
Do vậy, nếu b không cùng tính chẵn lẻ với SUM(G K) thì thuật toán sẽ thực hiện đảo giá trị của phần tử Fi,j ứng với Ki,j = 1 để đạt được bất biến (1.2) Như vậy, khoá K được xem như một mặt nạ, tạo ra khung nhìn cho thuật toán
Điều kiện 0 <SUM(F K)< SUM(K) quy định, nếu mọi vị trí (i,j) của F tại các vị trí Ki,j = 1 mà Fi,j đều bằng không hoặc đều bằng một thì không nên giấu tin vì nếu thực hiện giấu dễ bị lộ khóa K
Trang 241.8.3 Thí dụ minh họa thuật toán nhúng tin Wu-Lee
Giả sử ta cần giấu dãy bit b1b2b3 = 011 vào một ảnh kích thước 6x6 với
ma trận khóa K có kích thước 3x3 như trong hình vẽ Ta chia ảnh F thành 4 khối ảnh nhỏ với mỗi khối kích thước là 3x3 ta thu được F1, F2, F3, F4
Hình 1.4 Minh hoạ thuật toán nhúng tin của Wu-Lee
- Với F1, 0< SUM(F1 K) = 3 < SUM(K) nên thuật toán sẽ giấu b1 (b1
= 0) vào F1 bằng cách biến đổi F1 thành G1 sao cho SUM(G1 K) mod 2 =
b1 Trong trường hợp này, SUM(F1 K) thoả trường hợp 4 tại Bước 2 trong thuật toán, do vậy chúng ta sẽ đảo giá trị tại phần tử (i,j) của F1 ứng với Ki,j =
1 Giả sử ta chọn phần tử (1,2) kết quả sẽ thu được như G1
- Vì SUM(F2 K) = 0 nên khối F2 sẽ không được dùng để giấu dữ liệu do vậy G2 = F2
- Với F3, do F3 thoả mãn điều kiện 0< SUM(F3 K) = 3 < SUM(K), nên thuật toán sẽ thực hiện giấu b2 vào F3 Trong trường hợp này, ta thấy SUM(F3 K) mod 2 = 1 = b2 nên không cần biến đổi F3 và G3 bằng F3
- Với F4, 0< SUM(F4 K) = 4 <SUM(K) nên thuật toán sẽ thực hiện giấu bit b3 = 1 vào khối F4 bằng cách biến đổi F4 thành G4 thoả mãn tính chất (2) và (3) Do SUM(F4 K) = SUM(K) -1 nên chúng ta chọn ngẫu nhiên
Trang 25phần tử (i,j) mà F4(i,j) = 1 mà Ki,j = 1 và thay đổi F4(i,j) = 0 Giả sử ta chọn phần tử (3,3) kết quả sẽ thu được như G4
1.8.4 Một số nhận xét về thuật toán Wu-Lee
Thứ nhất: ảnh môi trường để thực hiện giấu thông tin cũng phải được chọn kỹ càng Nếu một ảnh có quá nhiều điểm trắng (hoặc đen) thì tỉ lệ bit giấu được sẽ rất thấp
Thứ hai: Vì trong mỗi ma trận điểm ảnh F thuật toán chỉ biến đổi tối đa
là một phần tử (từ 1 thành 0 hoặc từ 0 thành 1), do vậy nếu chọn m, n đủ lớn thì sự thay đổi này khó có thể nhận biết bằng mắt thường nhưng khả năng giấu của thuật toán lại giảm đáng kể
Thứ ba: Khi cần biến đổi ma trận F, thuật toán luôn thay đổi ngẫu nhiên một phần tử Fi,j ứng với Ki,j = 1 Do vậy, trong một số trường hợp ảnh sau khi được giấu tin sẽ xuất hiện những điểm khác biệt so với ảnh gốc và dễ dàng phân biệt được bằng mắt thường Do đó, để tăng tính che giấu cho thuật toán chúng ta nên chọn phần tử (i,j) có định hướng theo một tiêu chí nào đó
Xét ví dụ giấu bit 0 vào ma trận có kích thước với các giá trị cụ thể như sau:
Trang 261.9.2 Thuật toán nhúng tin CPT
Tóm tắt thuật toán
Để tiện cho việc trình bày, trong luận văn sẽ trình bày nội dung thuật toán CPT áp dụng cho một khối bit (ma trận nhị phân) Các phép toán sử dụng trong thuật toán này đều đƣợc hiểu theo nghĩa
Trang 27K là ma trận nhị phân cấp và là khóa bí mật để giải tin
S‟ = b (mod 2r
Bất biến (1.5) này cũng chính là cơ sở để khôi phục lại tin
Tính d = b – S (mod 2r)
Trường hợp 1: Nếu d = 0 thì b = S (mod 2r) nên đã đạt được bất biến (1.5)
do đó trường hợp này giấu b vào F mà không cần phải biến đổi F
Trang 28Trường hợp 2: Nếu d 0 thì cần phải biến đổi F sao cho đạt được bất biến (1.7) Trong trường hợp này có hai khả năng:
Trường hợp 2.1 NếuZd Ø thì chọn (i,j) Zd rồi đảo giá trị phần tử Fi,j, khi
đó theo định nghĩa (1.2) S sẽ tăng thêm d đơn vị do đó đạt được bất biến
Nhận xét 1.1: Qua các bước thực hiện của thuật toán nhận thấy thuật toán sẽ
luôn thực hiện được nếu tồn tại h thoả mãn Zhd Ø
Điều này sẽ được chứng minh trong mục tiếp theo
1.9.3 Chứng minh tính đúng đắn của thuật toán
Nhận xét 1.2: Theo định nghĩa tập Zα và tính chất của ma trận trọng số W thì
Vì vậy phải tồn tại ít nhất một cặp (i, j) sao cho Wi,j = α
Mặt khác do T là ma trận nhị phân nên Ti,j có giá trị bằng 0 hoặc 1 Xét các trường hợp:
Trang 29- Nếu Ti,j = 0: Do Wi,j = α nên (i, j) thoả điều kiện thứ nhất trong (1.6),vậy (i,j) Zα
- Nếu Ti,j = 1: Do Wi,j = α mà α = 2r-1 = 2r – α nên (i,j) thoả điều kiện thứ hai trong (1.7), vậy (i,j) Zα Do đó tập Z 2 r 1 Ø
Mà 2r - α = - α (mod 2r) = - α
Do đó, khi Zα = Ø sẽ tồn tại (u,v) để (Wu,v = - α và Tu,v = 0) (1.8)
Từ (1.4) và (1.8),ta suy ra khi Zα = Ø thì Z-α Ø (1.9)
Vì h là số tự nhiên đầu tiên thoả mãn điều kiện Zhd Ø, suy ra
Z(h - 1)d = Ø Theo (1.8) khi Z(h - 1)d = Ø thì Zd-hd Ø, vì vậy phép chọn phần tử (u,v) trong (1.7)luôn thực hiện được
Nhận xét 1.4: Luôn tồn tại h sao cho hd = 2r-1 (mod 2r)
Chứng minh
Trường hợp 1: Nếu d lẻ thì có thể biểu diễn d dưới dạng: d = 2t+1
Nhân cả 2 vế của biểu thức với 2r-1 ta có:
2r-1.d = 2r-1.2t+2r-1 suy ra 2r-1.d = t.2r+2r-1 = 2r-1 (mod 2r)
Chọn h = 2 r-1 ta có hd = 2r-1
Trường hợp 2: Nếu d chẵn và d chỉ chứa thừa số nguyên tố 2 thì có thể biểu
diễn d dưới dạng: d = 2u (với u ≤ r-1) Xét các khả năng:
+ Nếu u = r-1 thì chọn h = 1 ta có hd =1.2r-1= 2r-1
+ Nếu u < r-1 thì chọn h = 2 (r-1)-u ta có hd = 2(r-1)-u.2u = 2r-1
Trang 30Trường hợp 3: Nếu d chẵn và d chứa cả các thừa số nguyên tố khác 2 thì có
thể biểu diễn d dưới dạng: d = (2t+1)2v (với 1 ≤ v < r-1)
Chọn h = 2 (r-1)-v ta có:
hd = 2(r-1)-v (2t+1).2v = (2t+1)2r-1 = t.2r + 2r-1 = 2r-1 (mod 2r)
Chứng minh tính đúng của thuật toán
Theo nhận xét 1.2: để chứng minh tính đúng của thuật toán cần chỉ ra tồn tại h sao cho Zhd Ø
Theo nhận xét 1.4 luôn tồn tại h sao cho hd = -1 (mod ) Mặt khác theo nhận xét 1.2 tập do đó luôn tồn tại h sao cho Điều
đó chứng tỏ thuật toán luôn thực hiện đúng
1.9.4 Một số thí dụ minh họa thuật toán CPT
Thí dụ minh hoạ trường hợp thay đổi một bit
Quá trình giấu tin
Giả sử cần giấu dãy bit 1011 vào ma trận điểm ảnh có kích thước
với các tham số đầu vào như Hình 1.6
Trang 31- Đặt d = b - s (mod 2r) = 11 - 51 (mod 16) = 8
Vì d = 8 0, nên ta xây dựng tập
Zα = {(i,j) | (Wi,,j=α và Ti,j = 0) hoặc (Wi,j=2r-α và Ti,j=1)}
Với α = d = 8, xét ma trận W ta thấy phần tử (2,2) thoả mãn điều kiện (W2,2=2r - d và T2,2 = 1), suy ra Zd Ø
Do Zd Ø, theo thuật toán CPT chỉ cần đảo giá trị phần tử Fi,j |(i ,j) thuộc Zd Chọn i =2 và j = 2 thực hiện phép đảo phần tử F2,2 ta sẽ đƣợc ma trận kết quả G nhƣ trong Hình 1.6
Quá trình trích tin
Giả sử khi nhận đƣợc ma trận G đã chứa thông tin cần giấu, với các giá trị trên Hình 1.7, để giải mã thông tin giấu trong G ta sẽ thực hiện tính theo bất biến
Trang 32 Thí dụ minh hoạ trường hợp thay đổi hai bit
Quá trình nhúng tin
Giả sử cần giấu dãy bit 0100 vào ma trận điểm ảnh có kích thước
với các tham số đầu vào F, K, W thì đầu ra tương ứng sau khi kết thúc thuật toán là ma trận G như trong Hình 1.7 Quá trình giấu diễn ra như sau:
- Tính: T = F K (kết quả như Hình 1.6)
- Tính: s = SUM(T W ) = 59 mod (16) =11
- Đặt: d = b – s (mod 2r) = 4 – 11(mod 16) = 9
Vì d = 9 0, nên ta xây dựng tập
Zα = {(i,j) | (Wi,,j=α và Ti,j = 0) hoặc (Wi,j=2r-α và Ti,j=1)}
Với α = d = 9, không tồn tại phần tử (i,j) để (Wi,,j=9 và Ti,j = 0) hoặc (Wi,j=7 và Ti,j=1), suy ra Zd = Ø
+ Xét : Với d = 9 và do phép toán mod 2r nên <=> Do không tồn tại (i,j) để ( và = 0) hoặc ( =14 và =1) => Ø
+Xét Z 3d : Với d = 9 ta có Z3d Ø vì tồn tại phần tử (3,2) để (W3,2 = 3d
và T3,2 = 0)
- Theo thuật toán, khi Zhd Ø (h là số tự nhiên đầu tiên thoả mãn) ta sẽ
thay đổi giá trị hai phần tử Fi,j và Fu,v với (i,j) thuộc Zhd và (u,v) thuộc Z d-hd
+ Chọn (i,j) = (3,2) và (u,v) = (4,2), sau khi đảo F3,2 và F4,2 ta sẽ được
ma trận kết quả G như trong Hình 1.8
Trang 33Để giải mã thông tin đã được giấu trong ma trận G chúng ta cần tính b‟=
, sau đó đổi giá trị b‟ thành dãy nhị phân gồm r bit có giá trị tương ứng và đó chính là dãy bit đã được giấu
Ví dụ: Với các ma trận W, K, G như trong hình 1.8 ta tính được thông tin giấu trong G như sau:
b‟= SUM((G K) W) mod 2r
=> b‟ = 84 mod 16 = 4 = 0100(2)
1.9.5 Phân tích thuật toán
Thuật toán có thể giấu được r bit vào trong một khối với điều kiện
là và chỉ cần thay đổi nhiều nhất là 2 bit trên một khối Như vậy, thuật toán này đã có cải tiến rất lớn so với những thuật toán khác chỉ giấu được một bit vào mỗi khối