Trên một xã hội ảo, nơi diễn ra việc trao đổi thông tin trong mọi lĩnh vực chính trị, quân sự quốc phòng, kinh tế, thương mại … đã xuất hiện những vấn nạn tiêu cực đang rất cần đến các g
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TRỊNH THỊ HỒNG
NGHIÊN CỨU NÂNG CAO TÍNH BẢO MẬT TRONG GIẤU TIN, ỨNG DỤNG THUẬT TOÁN GIẤU TIN CPT TRÊN ẢNH 24 BIT MÀU
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60 48 05
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS TỐNG MINH ĐỨC
Hà Nội-2011
Trang 2MỤC LỤC
Chương 1 8
TỔNG QUAN VỀ GIẤU TIN TRONG ẢNH 8
1.1 Giới thiệu tổng quan giấu tin trong ảnh số 8
1.1.1 Khái niệm 8
1.1.2 Các thành phần của hệ thống giấu tin trong ảnh 9
1.1.3 Một số tính chất của giấu tin trong ảnh số 10
1.1.4 Phân loại kỹ thuật giấu tin trong ảnh 11
1.1.5 Ứng dụng kỹ thuật giấu tin trong ảnh 13
1.2 Giấu tin trong ảnh nhị phân 14
1.3 Giấu tin trong dữ liệu đa phương tiện 15
1.3.1 Giấu tin trong ảnh số 15
1.3.2 Giấu tin trong audio 15
1.3.3 Giấu tin trong video 16
1.3.4 Giấu tin trong văn bản text 16
1.4 Cấu trúc file ảnh bitmap 17
Chương 2 20
CÁC KỸ THUẬT GIẤU TIN TRONG ẢNH 20
2.1 Kỹ thuật giấu tin RLE 20
2.2 Kỹ thuật giấu tin theo khối bít 22
2.2.1 Nội dung thuật toán 23
2.2.2 Phân tích thuật toán 23
2.3 Kỹ thuật giấu tin Wu-Lee 24
2.3.1 Định nghĩa các phép toán với ma trận 24
2.3.2 Thuật toán Wu-Lee 24
2.3.3 Phân tích thuật toán 25
2.4 Kỹ thuật giấu tin CPT 26
2.4.1 Giới thiệu về phương pháp CPT 26
2.4.2 Nội dung thuật toán 26
2.4.3 Phân tích đánh giá thuật toán 30
2.4.4 Cải tiến phương pháp CPT nâng cao dung lượng giấu tin 30
Trang 3Chương 3 35
GIẤU THÔNG TIN VÀO ẢNH MÀU VÀ ẢNH ĐA CẤP XÁM 35
3.1 Kỹ thuật gài các bít có trọng số thấp 36
3.2 Kỹ thuật giấu tin dựa trên bảng màu 38
3.3 Ứng dụng thuật toán CPT cải tiến giấu tin trên ảnh 24 bit màu 39
3.3.1 Ý tưởng 39
3.3.2 Thuật toán giấu tin 40
3.3.3 Thuật toán tách tin 41
3.4 Tăng cường tính bền vững của thông tin giấu trong ảnh 24 bit màu 41 3.4.1 Ý tưởng 41
3.4.2 Thuật toán 42
Chương 4 48
MỘT SỐ KẾT QUẢ ĐẠT ĐƯỢC 48
4.1 Chương trình thử nghiệm 48
4.2 Hệ số đánh giá PSNR 49
KẾT LUẬN 52
TÀI LIỆU THAM KHẢO 53
Trang 4THUẬT NGỮ TIẾNG ANH
HSV (Human Visual System) Hệ thống cảm nhận hình ảnh của mắt
người
RLE (Run Length Coding) Mã hóa độ dài
LSB (Least Significant Bit) Bit có trọng số thấp
PSNR (peak noise ratio) Hệ số đánh giá chất lượng ảnh sau khi
giấu tin MSE (mean squared error) Xác định hệ số cho hai ảnh có cùng
kích thước
Trang 5MỞ ĐẦU
Sự phát triển của kỹ thuật máy tính và sự bùng nổ của mạng Internet đã đem lại những thay đổi sâu sắc trong cuộc sống và xã hội chúng ta Bên cạnh những tiện nghi, thuận lợi mà thông tin kỹ thuật số mang lại cho chúng ta còn nhiều những thách thức cho quá trình đổi mới Trên một xã hội ảo, nơi diễn ra việc trao đổi thông tin trong mọi lĩnh vực chính trị, quân sự quốc phòng, kinh
tế, thương mại … đã xuất hiện những vấn nạn tiêu cực đang rất cần đến các giải pháp hữu hiệu cho vấn đề an toàn thông tin như nạn xuyên tạc thông tin, truy nhập thông tin trái phép…
Trong quá trình phát triển của công nghệ, nhiều phương pháp bảo vệ thông tin đã được đưa ra trong đó giải pháp dùng mật mã học là giải pháp được ứng dụng rộng rãi nhất Các hệ mã mật đã được phát triển nhanh chóng
và được ứng dụng rất phổ biến cho đến tận ngày nay Đã có rất nhiều những
hệ mã phức tạp được sử dụng như DES, RSA, NAPSACK , giải pháp dùng
hệ mã mật đã được chứng minh thực tế là rất hiệu quả và được ứng dụng phổ biến
Sự phát triển của các phương tiện kỹ thuật như máy quét, máy ảnh, máy ghi âm kỹ thuật số…, cũng như sự phát triển mạnh mẽ của các phần mềm có tính năng mạnh cho phép người dùng có thể xử lý dễ dàng các dữ liệu đa phương tiện (Multimedia Data) Một giải pháp đang rất thu hút được sự chú ý trong thời gian gần đây, là giấu thông tin trong các dữ liệu đa phương tiện như ảnh, file audio, video Đây được xem là thành tựu khoa học mới của nhân loại
Giấu tin trong dữ liệu đa phương tiện nói chung và giấu tin trong ảnh nói riêng là một công nghệ mới rất phức tạp, nó đang được các nhà khoa học tập trung nghiên cứu ở nhiều nước trên thế giới như Đức, Mỹ, Ý, Canada, Nhật Bản, Trung quốc … Ở nước ta cũng có nhiều nhóm nghiên cứu và đã đạt được những kết quả khả quan
Đối với các thuật toán giấu tin, việc áp dụng các thuật toán giấu tin vào trong ảnh số là một vấn đề được nhiều người quan tâm, việc áp dụng phải đảm bảo tính hiệu quả, tính mật để đảm bảo tăng cường khả năng giấu tin, dữ liệu sau khi giấu tin càng ít thay đổi so với dữ liệu gốc càng khó phát hiện Chính vì vậy, tác giả chọn đề tài “Nghiên cứu nâng cao tính bảo mật trong
Trang 6giấu tin, ứng dụng thuật toán giấu tin CPT trên ảnh 24 bit màu” để tăng cường giải pháp bảo mật cho tin giấu trong ảnh
Cấu trúc luận văn ngoài phần mở đầu, kết luận, luận văn gồm 4 chương:
Chương 1: Tổng quan về giấu tin trong ảnh số
Chương này trình bày về lịch sử giấu tin, một số ứng dụng của giấu tin mật, trình bày về mô hình giấu tin, các hướng tiếp cận của kỹ thuật giấu tin trong ảnh, phân loại các kỹ thuật giấu tin trong ảnh số và trình bày tổng quan
về ảnh số
Chương 2: Một số kỹ thuật giấu tin trong ảnh
Chương này trình bày một số kỹ thuật giấu tin trên ảnh nhị phân: Kỹ thuật RLE, Kỹ thuật giấu tin theo khối bit, Kỹ thuật Wu-Lee, Kỹ thuật CPT Ứng với mỗi kỹ thuật, rút ra nhận xét đánh giá điểm mạnh, điểm yếu của thuật toán
Chương 3: Giấu thông tin vào ảnh màu và ảnh đa cấp xám
Chương này trình bày về cách áp dụng các kỹ thuật giấu tin vào ảnh
24 bit màu, ảnh đa cấp xám Sử dụng giấu tin vào các mặt phẳng bit
Tác giả có đưa ra nhận xét đánh giá điểm mạnh, điểm yếu của các phương pháp và có đề xuất một giải pháp khắc phục sự thay đổi của ảnh sau khi giấu tin so với ảnh gốc trong trường hợp sử dụng mặt phẳng bit cao để giấu tin
Chương 4: Một số kết quả đạt được
Trang 7Lời cam đoan!
Tôi xin cam đoan đây là công trình nghiên cứu thực sự của bản thân, được thực hiện trên cơ sở nghiên cứu lý thuyết, nghiên cứu thực tiễn và dưới
sự hướng dẫn khoa học của Tiến sĩ Tống Minh Đức Các số liệu và kết quả trong luận văn là hoàn toàn trung thực và chưa từng công bố trong các công trình nghiên cứu khác
Tác giả
Trịnh Thị Hồng
Trang 8Lời cảm ơn!
Trong suốt quá trình nghiên cứu và học hỏi, đồng thời được sự giúp đỡ, chỉ bảo tận tình của thầy giáo hướng dẫn TS Tống Minh Đức, tôi đã hoàn thành báo cáo luận văn của mình Mặc dù đã cố gắng hết sức, nhưng luận văn không tránh khỏi những thiếu sót Rất mong được sự góp ý, chỉ bảo của các thầy cô và các bạn để đề tài được hoàn chỉnh hơn
Tôi xin tỏ lòng biết ơn tới các thầy, cô giáo trong khoa Công nghệ Thông tin trường Đại học Công nghệ, Đại học Quốc gia Hà Nội đã truyền thụ cho tôi những kiến thức vô cùng quý báu và bổ ích trong suốt thời gian học tập tại trường, đặc biệt là thầy giáo TS Tống Minh Đức đã tận tình hướng dẫn, giúp đỡ tôi trong quá trình nghiên cứu
Hà Nội, ngày tháng 09 năm 2011
Học viên
Trịnh Thị Hồng
Trang 9Chương 1 TỔNG QUAN VỀ GIẤU TIN TRONG ẢNH 1.1 Giới thiệu tổng quan giấu tin trong ảnh số
Sự khác biệt giữa mã hóa thông tin và giấu thông tin số là mã hóa thông tin làm cho thông tin được mã hóa không thể đọc được ngoại trừ những người được phép, biến dữ liệu rõ thành những bản mã, còn giấu thông tin là làm cho người khác khó phát hiện ra thông tin được giấu trong vật mang tin Người ta
có thể kết hợp mã hóa và giấu thông tin trong các ứng dụng truyền thông, thông tin được mã hóa rồi giấu vào vật mạng tin trước khi truyền đi trên internet
Môi trường giấu tin là các đối tượng dữ liệu số như âm thanh, hình ảnh, video, văn bản, cơ sở dữ liệu,… trong đó môi trường ảnh số đã và đang được nhiều người quan tâm Giấu tin trong ảnh chiếm một tỉ lệ lớn trong các chương trình ứng dụng, các hệ thống giấu tin trong đa phương tiện vì lượng thông tin trao đổi bằng ảnh rất lớn, hơn nữa giấu tin trong ảnh đóng vai trong quan trọng trong các ứng dụng như xác 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,…
Trang 10Giấu tin trong ảnh số là một phương pháp giấu thông tin vào trong dữ liệu của file ảnh mà không làm thay đổi chất lượng và dung lượng ảnh Thông tin giấu được tách từ ảnh mang (ảnh môi trường) mà không cần ảnh gốc
Các kỹ thuật giấu tin trong ảnh số chủ yếu dựa trên bản chất hệ thống thị giác của con người HVS (Human Visual System) Hệ thống thị giác của con người hạn chế về khả năng cảm nhận những thay đổi nhỏ màu sắc của điểm ảnh Bằng mắt thường con người khó thấy sự thay đổi của những ảnh không có sự khác biệt về màu sắc
1.1.2 Các thành phần của hệ thống giấu tin trong ảnh
Trong các hệ thống giấu tin trong ảnh gồm có hai phần cơ bản gồm quá trình nhúng thông tin vào ảnh môi trường và giải tin từ ảnh mang như sau:
Hình 1.1 Lược đồ quá trình giấu tin
Hình 1.2 Lược đồ quá trình giải tin
Trang 11- Mẫu tin mật: thông tin được chứa trong một file văn bản, file ảnh,
video,… trong quá trình xử lý chúng được chuyển đổi thành chuỗi bít
- Ảnh gốc: là ảnh được dùng làm môi trường giấu tin, thông tin được nhúng vào ảnh gốc
- Khóa K: là một khóa tham gia vào quá trình giấu tin để tăng tính
bảo mật, chỉ những người biết khóa K mới có thể đọc được thông tin
- Thủ tục giải tin: là phương pháp tách tin mật được giấu khi nhận
được ảnh có chứa thông tin mật
1.1.3 Một số tính chất của giấu tin trong ảnh số
Hiện nay có rất nhiều phương pháp giấu tin trong ảnh được nghiên cứu, thử nghiệm và ứng dụng Để đánh giá một phương pháp giấu tin người ta thường dựa vào các yếu tố sau [6]:
- Tính ẩn (tính vô hình): dựa trên đặc điểm của hệ thống thị giác của
con người, thông tin giấu sẽ làm thay đổi ảnh mang, một người với thị giác bình thường không thể phân biệt được giữa ảnh mang và ảnh gốc Tính ẩn phụ thuộc vào mức độ biến đổi của ảnh mang so với ảnh gốc trong quá trình giấu tin Một phương pháp hiệu quả sẽ làm cho thông tin mật trở nên vô hình trên ảnh mang, người bình thường không thể phát hiện thông tin chứa trong ảnh
- Tính an toàn: là khả năng chống lại sự tấn công hoặc giả mạo từ
bên ngoài, chống lại các phương pháp phát hiện ảnh chứa tin mật Một hệ thống giấu tin tốt phải đảm bảo tin mật không bị tấn công một cách chủ đích trên cơ sở biết có những hiểu biết phương pháp giấu tin như ảnh gốc, ảnh mang, kỹ thuật giấu tin, kỹ thuật giải tin (nhưng không có khóa),…
- Tính bền vững: sau khi giấu thông tin vào ảnh, ảnh mang có thể
phải trải qua một số biến đổi khác nhau như lọc tuyến tính, lọc phi tuyến, thêm nhiễu, làm mờ, làm nhạt, nén mất dữ liệu,… Sau các quá trình biến đổi trên, quá trình giải tin mật không làm sai khác tin
Trang 12đã được giấu Tính bền vững là thước đo sự nguyên vẹn của thông
tin mật sau các quá trình biến đổi trên
- Dung lượng giấu tin: được tính bằng tỉ lệ lượng tin (số byte) so với
kích thước của ảnh môi trường (số byte) Tùy thuộc vào thuật toán, kích thước ảnh môi trường mà dung lượng giấu tin khác nhau Thông thường các phương pháp giấu tin đều cố gắng làm tăng dung lượng tin giấu, tuy nhiên việc làm tăng dung lượng tin giấu ảnh hưởng tới các đặc tính khác như tính an toàn, tính ẩn,…
- Độ phức tạp tính toán: chỉ tiêu về độ phức tạp tính toán chủ yếu
tính bằng các phép tính toán học trong quá trình giấu tin và quá trình giải tin Yêu cầu về độ phức tạp tính toán tùy thuộc vào từng ứng dụng cụ thể
- Ảnh môi trường đối với quá trình giải mã: các phương pháp giấu
tin phải đảm bảo yêu cầu là quá trình tách tin mật không cần có ảnh môi trường
1.1.4 Phân loại kỹ thuật giấu tin trong ảnh
Dựa vào các tiêu chi khác nhau, người ta có thể phân chia một cách tương đối các kỹ thuật giấu tin khác nhau
- Dựa vào mục đích giấu tin:
Trên cơ sở các công trình nghiên cứu, các bài báo được công bố,
có thể chia giấu tin theo hai hướng chính theo sơ đồ sau:
Trang 13Hình 1.3 Sơ đồ phân loại kỹ thuật giấu tin + Watermaking (Thủy vân, thủy ấn) đò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 dữ liệu môi trường Có thể chia thủy vân thành nhiều hướng như thủy vân bền vững và thủy vân dễ vỡ Thủy vân bền vững có thể chia thành thủy vân ẩn và thủy vân hiện
+ Steganoghraphy quan tâm nhiều đến vấn đề giấu tin mật, các ứng dụng của Steganoghraphy đòi hỏi tính mật cao và dung lượng chứa càng lớn càng tốt
- Dựa vào hướng tiếp cận của kỹ thuật giấu tin: có thể chia làm hai
loại như sau:
+ Các kỹ thuật giấu tin tác động lên miền không gian ảnh, thay đổi
trực tiếp giá trị điểm ảnh (thường dùng với các file ảnh không nén, hoặc nén không mất thông tin)
+ Các kỹ thuật khảo sát trực tiếp thông qua các kỹ thuật biến đổi dữ
liệu khi nén ảnh (thường dùng với các file ảnh nén theo chuẩn có mất thông tin)
- Dựa vào cấu trúc ảnh gốc có thể chia làm 3 loại:
+ Giấu tin trong ảnh nhị phân
+ Giấu tin trong ảnh đa cấp xám
+ Giấu tin trong ảnh màu
Trang 14- Ngoài ra dựa vào kỹ thuật biến đổi ảnh có thể chia thành các phương pháp như: phương pháp gài bits dữ liệu vào bits có trọng số thấp, phương pháp mã khối bề mặt, phương pháp dựa trên bảng màu,…
1.1.5 Ứng dụng kỹ thuật giấu tin trong ảnh [6]
Giấu tin trong ảnh số ngày càng được ứng dụng trong nhiều lĩnh vực như giấu thông tin bí mật, bảo vệ bản quyền, điểm chỉ số, gán nhãn, điều khiển truy cập,…
- Giấu thông tin bí mật (Steganography): Các thông tin bí mật
được giấu trong đối tượng ảnh thông thường và ít gây chú ý khi trao đổi trên đường truyền Trong trường hợp giấu tin, thông tin được giấu càng nhiều càng tốt, ảnh mang không có sự khác biệt với ảnh môi trường và việc tách thông tin bí mật không cần ảnh môi trường ban đầu
- Bảo vệ bản quyền tác giả (Copyright Protection): Đây là ứng
dụng cơ bản nhất của thủy vân số (digital watermarking) Thông tin được nhúng vào sản phẩm số, được gọi là biểu tượng thủy vân, mang ý nghĩa chỉ quyền sở hữu hợp pháp của các sản phẩm Thêm vào đó, gán nhãn thời gian cũng là một phương pháp chống giả mạo Yêu cầu kỹ thuật đối với ứng dụng là thủy vân tồn tại bền vững cùng với sản phẩm, chỉ người sở hữu mới có khóa để tách biểu tượng thủy vân ra khỏi sản phẩm
- Xác thực thông tin và phát hiện xuyên tạc thông tin (Authentication and Tamper Detection): Một tập các thông tin sẽ
được giấu trong ảnh gốc, sau đó được sử dụng để nhận biết xem dữ liệu trên ảnh gốc đó có bị thay đổi hay không Các thuỷ vân nên được ẩn để tránh khỏi sự tò mò của đối phương, hơn nữa việc làm giả các thuỷ 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 (ví dụ như phân biệt xem một đối tượng ảnh mang đã bị thay đổi, xuyên tạc nội dung hay là chỉ bị nén mất dữ liệu) Yêu cầu chung đối với ứng dụng này là khả năng giấu thông tin nhiều và không cần bền vững trước các phép xử lý trên ảnh mang
- Giấu vân tay hay dán nhãn (Fingerprinting and Labeling): Thủy
vân được sử dụng để nhận diện người gửi hay người nhận của một
Trang 15thông tin nào đó trong ứng dụng phân phối sản phẩm Thủy vân trong trường hợp này cũng tương tự như số serial của sản phẩm phần mềm Mỗi sản phẩm sẽ mang một thủy vân riêng, ví dụ: các thủy vân khác nhau sẽ được nhúng vào các bản copy khác nhau của thông tin gốc trước khi chuyển cho nhiều người Những ứng dụng này yêu cầu bảo đảm độ an toàn cao cho các thủy vân tránh sự xóa giấu vết trong khi phân phối
- Điều khiển sao chép (Copy Control): Điều mong muốn đối với
các hệ thống phân phối dữ liệu ảnh số là tồn tại một kỹ thuật chống sao chép trái phép dữ liệu Có thể sử dụng thủy vân để chỉ trạng thái sao chép của dữ liệu, các thủy vân trong những trường hợp này được
sử dụng để điều khiển sao chép đối với các thông tin Các thiết bị phát hiện ra thủy vân thường được gán sẵn trong các hệ thống đọc ghi, ví dụ như hệ thống quản lí sao chép DVD đã được ứng dụng ở Nhật Thủy vân mang các giá trị chỉ trạng thái cho phép sao chép dữ liệu như: copy never - không được phép sao chép, hay copy once- chỉ được sao chép một lần; sau khi sao chép xong, bộ đọc - ghi thủy
ấn sẽ ghi biểu tượng thủy ấn mới chỉ trạng thái mới lên DVD Các ứng dụng loại này yêu cầu thủy vân phải được bảo đảm an toàn và việc phát hiện thủy ấn đã giấu mà không cần thông tin gốc
1.2 Giấu tin trong ảnh nhị phân
Giấu tin trong ảnh nhị phân dễ bị nhận biết bằng mắt thường và dung lượng thông tin giấu trong ảnh bị hạn chế Đối với ảnh nhị phân mỗi điểm ảnh được biểu diễn bởi một bit (bit 0 tương ứng với màu đen, bit 1 tương ứng với màu trắng) nên khi có thay các bits dễ bị phát hiện, do đó rất khó giấu tin an toàn trong ảnh nhị phân Việc nghiên cứu về các phương pháp giấu tin trong ảnh nhị phân trước hết giải quyết các khó khăn trên, đồng thời làm cơ sở để phát triển các thuật toán giấu tin trong ảnh đa cấp xám, ảnh màu, hay các phương tin lưu trữ thông tin khác Hiện nay, có một số phương pháp giấu tin trong ảnh nhị phân như sau:
- Phương pháp RLE (Run Length Code – Mã hóa độ dài RUN), dựa
vào tính chẵn lẻ của cặp RUN để giấu thông tin
- Phương pháp Wu – Lee: là một thuật toán giấu tin khá phổ biến
của M.Wu và J.Lee Trong thuật toán Wu – Lee, mỗi ảnh nhị phân xem như là ma trận nhị phân được chia thành các khối bits mxn, mỗi
Trang 16khối bits giấu được một bit thông tin bằng cách thay đổi nhiều nhất một bit trong khối
- Phương pháp CPT: trên cơ sở phát triển ý tưởng thuật toán Wu –
Lee, các tác giá Y.Y.Chen, H.Pan, Y.Tseng (Chen-Phan-Tseng) đề xuất một phương pháp giấu tin trong ảnh nhị phân, theo đó ảnh đường chia thành các khối bits khích thước mxn, mỗi khối bít giấu được tối đa r bits thông tin với r ≤ [log2(m.n + 1)] bằng cách thay đổi không quá 2 bits trong khối dữ liệu ảnh
- Phương pháp LSB (Least Significant Bits): phương pháp này ứng
dụng cho ảnh màu hoặc ảnh đa cấp xám LSB là các bits khi bị thay đổi hầu như không làm ảnh hưởng đến chất lượng ảnh gốc Ứng dụng các phương pháp trên ứng với ma trận nhị phân được trích dẫn
từ các bits LSB được ma trận kết quả và trả các bits LSB về ảnh
gốc để tạo thành ảnh mới được giấu thông tin
Các kỹ thuật giấu tin trong ảnh nhị phân sẽ được trình bày trong chương 2
1.3 Giấu tin trong dữ liệu đa phương tiện
1.3.1 Giấu tin trong ảnh số
Hiện nay, giấu thông tin trong ảnh là một bộ phận chiếm tỷ lệ lớn nhất trong các chương trình ứng dụng, các phần mềm, hệ thống giấu tin trong đa phương tiện Bởi lượng thông tin được trao đổi bằng hình ả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ư: xác 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,… Thông tin được giấu vào dữ liệu ảnh, nhưng chất lượng ảnh rất ít thay đổi và người ta khó có thể nhận thấy bằng mắt thường Ngày nay, khi ảnh số đã được sử dụng rất phổ biến thì giấu thông tin trong ảnh đã đem lại nhiều ứng dụng quan trọng trên các lĩnh vực trong đời sống xã hội Ví dụ: ở các nước phát triển, chữ ký tay đã được số hóa và lưu trữ sử dụng như là hồ sơ cá nhân của các
dịch vụ ngân hàng, tài chính
1.3.2 Giấu tin trong audio
Giấu thông tin trong audio mang những đặc điểm riêng khác với giấu tin trong các đối tượng đa phương tiện khác Một trong những yêu cầu cơ bản của giấu tin là đảm bảo tính chất ẩn của thông tin được giấu đồng thời không ảnh hưởng đến chất lượng của dữ liệu gốc Để đảm bảo yêu cầu này, kỹ thuật
Trang 17giấu tin trong ảnh phụ thuộc vào hệ thống thị giác của con người – HVS (Human Vision System) còn kỹ thuật giấu tin trong audio lại phụ thuộc vào hệ thống thính giác HAS (Human Auditory System) Một vấn đề khó khăn ở đây
là hệ thống thính giác của con người nghe được các tín hiệu ở các dải tần rộng
và công suất lớn nên đã gây khó dễ đối với các phương pháp giấu tin trong audio Tuy nhiên, HAS lại kém trong việc phát hiện sự khác biệt giữa các dải tần và công suất, điều này có nghĩa là các âm thanh to, cao tần có thể che giấu các âm thanh nhỏ một cách dễ dàng Các mô hình phân tích tâm lý đã chỉ ra điểm yếu trên và thông tin này sẽ giúp ích cho việc chọn các audio cho việc giấu thông tin Vấn đề khó khăn thứ hai đối với giấu tin trong audio là kênh truyền tin Kênh truyền hay băng thông chậm sẽ ảnh hưởng đến chất lượng thông tin sau khi giấu Giấu thông tin trong audio đòi hỏi yêu cầu rất cao về tính đồng bộ và tính an toàn của thông tin Tóm lại, các phương pháp giấu tin trong audio đều dựa vào điểm yếu trong hệ thống thính giác của con người
1.3.3 Giấu tin trong video
Giống như giấu tin trong ảnh hay trong audio, giấu tin trong video cũng được quan tâm và phát triển mạnh mẽ cho nhiều ứng dụng như điều khiển truy cập thông tin, xác thực thông tin và bảo vệ bản quyền tác giả Ví dụ các
hệ thống chương trình trả tiền xem theo đoạn với các video clip (pay per view application) Các kỹ thuật giấu tin trong video cũng được phát triển mạnh mẽ theo hai khuynh hướng là thủy vân số và giấu tin mật Một phương pháp giấu tin trong video được đưa ra bởi Cox là phương pháp phân bố đều Ý tưởng cơ bản của phương pháp là phân bố thông tin cần giấu dàn trải theo tần số của dữ liệu gốc Nhiều nhà nghiên cứu đã dùng những hàm cosin riêng và các hệ số truyền sóng riêng để giấu tin Trong các phương pháp khỏi nguồn, thường các
kỹ thuật giấu tin cho phép giấu ảnh vào video, trong thời gian gần đây cho phép giấu cả âm thanh, hình ảnh vào trong video Như Swanson đã sử dụng phương pháp giấu tin theo khối bít, phương pháp này đã giấu được 2 bít vào khối 8x8 Như vậy, giấu tin trong video dựa cả đặc điểm thị giác và thính giác của con người
1.3.4 Giấu tin trong văn bản text
Giấu thông tin trong văn bản dạng text khó thực hiện hơn do có ít các thông tin dư thừa, để làm được điều này người ta phải khéo léo khai thác các
dư thừa tự nhiên của ngôn ngữ Một cách khác là tận dụng các định dạng văn bản (mã hóa thông tin vào khoảng cách giữa các từ hay các dòng văn bản) Kỹ
Trang 18thuật giấu tin đang được áp dụng cho nhiều loại đối tượng chứ không chỉ cho
dữ liệu đa phương tiện như ảnh, audio, video Gần đây đã có một số nghiên cứu giấu tin trong cơ sở dữ liệu quan hệ, các gói IP truyền trên mạng chắc chắn sau này còn tiếp tục phát triển tiếp cho các môi trường dữ liệu số
1.4 Cấu trúc file ảnh bitmap
Khái niệm về ảnh bitmap
Ảnh bitmap do Microsoft phát triển, do vậy còn được gọi là Microsoft Windowns Bitmap (BMP, DIB, Windows BMP, Windown DIB, Compatible Bitmap) được lưu trữ độc lập với thiết bị hiển thị (DIB)
File Bitmap là file nhị phân được phân chia thành 4 phần theo thứ tự từ đầu đến cuối như sau:
File Header Image Header Color Palettle Data of Image
File Header
File header được dùng để thông báo cho các phần mềm truy xuất biết đây là file BMP, đồng thời cho biết chính xác độ lớn file, vị trí của dữ liệu ảnh được thực hiện định vị trong phạm vi file Nó gồm chính xác 14 byte Ý nghĩa và nội dung cụ thể của các byte được thống kê theo bảng dưới đây:
File Header
4 Kích thước file ảnh (tính theo byte)
Image Header
Image Header cho biết thông tin về ảnh và những định dạng dữ liệu của
nó như chiều cao, chiều rộng, số bit của một điểm ảnh, dữ liệu ảnh có được nén hay không
Trang 19Trong thực tế có hai trường hợp của Image Header: Một được phát triển theo định dạng OS/2 BMP gồm 12 byte; một được phát triển theo định dạng Windows BMP gồm ít nhất 40 byte Tuy nhiên ta có thể kiểm tra ngay được ảnh thuộc định dạng nào nhờ 4 byte đầu tiên của Image Header ghi chiều dài của nó Bảng dưới đây là Image Header theo định dạng Windows BMP, gồm ý nghĩa và nội dung cụ thể của các byte
Windows BMP Header
4 Độ phân giải theo chiều ngang
4 Độ phân giải theo chiều đứng
4 Số màu quan trọng Có giá trị 0 nếu tất cả các
màu đều quan trọng
Color Palettle
Bảng màu có thể có hay không tùy thuộc vào định dạng của dữ liệu ảnh Bảng màu là mảng một chiều chứa chỉ mục các màu của ảnh, mỗi điểm ảnh chỉ việc trỏ đến một chỉ mục nào đó trên bảng màu Bảng màu chiếm 4*n byte trong đó n là số màu của ảnh Số bit lưu trữ thông tin mỗi điểm ảnh chỉ định độ phân giải màu của bitmap Nếu số bit bằng 1, bảng màu có 21
= 2 màu, thông thường là đen và trắng Nếu số bit bằng 4, bảng màu có 24
= 16 màu; số bit bằng 8, bảng màu có 28 = 256 màu, số bit bằng 24, bảng màu có
224 = 16.7 triệu màu
- Đối với dạng ảnh 24 bit: File ảnh không có bảng màu, vì mỗi điểm ảnh đã được biểu diễn bởi giá trị 24 bit RGB trong vùng dữ liệu bitmap Thông tin
Trang 20màu cho mỗi điểm ảnh được lưu trữ trong 3 byte dữ liệu liên tục theo thứ
tự tương ứng là: Red, Green, Blue
- Đối với ảnh 256, 16 và 2 màu tương ứng:
+ Bảng màu chiếm 256*4 =1024 byte, 16*4 = 64 byte, 2*4 = 8 byte
+ Mỗi màu được mô tả bởi 4 byte, thể hiện 4 thành phần màu: Blue, Green, Red và Darkgray
+ Với hầu hết các tệp ảnh BMP, thành phần Darkgray bằng 0
+ Các thành phần Red, Green, Blue được lưu trữ ở 6 bit cao
- Đối với ảnh 16 màu: Bảng màu có 16 màu (có giá trị bằng 0, 1, …15) Mỗi điểm ảnh được mô tả bởi một con số trong bảng màu Do vậy, giá trị mỗi điểm ảnh chỉ cần 4 bit để mô tả Hai điểm ảnh được chứa trong một byte: điểm ảnh đứng trước được chứa trong 4 bit cao, điểm ảnh đứng sau được chứa trong 4 bit thấp
- Đối với ảnh 2 màu: Bảng màu có 2 màu (0, 1) Mỗi điểm ảnh được mô tả bởi giá trị 0 hoặc 1 Do vậy, giá trị mỗi điểm ảnh chỉ cần 1 bit để mô tả Tám điểm ảnh được chứa trong một byte: điểm ảnh đứng trước được chứa trong bit cao, điểm ảnh trong bit sau được chứa trong bit thấp
Nếu kích thước byte thực tế của mỗi dòng ảnh không chia hết cho 4 thì Bitmap sẽ thêm vào cuối dòng một số byte chia hết cho 4 Ta không cần phải quan tâm nhiều đến vấn đề này vì các hàm hiển thị bitmap API (với 4 hàm chính AnimatePalette, CreatePalette, SelectPalette và RealizePalette) sẽ thực hiện điều này một cách tự động Mặt khác, bitmap ghi dữ liệu ảnh từ dưới lên theo ảnh thực Nghĩa là các dòng của một DIB được sắp xếp từ dưới lên, dòng cao nhất xuất hiện trên màn hình thực tế là dòng cuối cùng được lưu trữ trong bitmap
Trang 21Chương 2 CÁC KỸ THUẬT GIẤU TIN TRONG ẢNH 2.1 Kỹ thuật giấu tin RLE
Trong phương pháp RLE (Run Length Code – Mã hóa độ dài RUN), người ta sử dụng tính chẵn lẻ của cặp RUN để giấu thông tin trong các ảnh nhị phân, cụ thể là điều chỉnh tính chẵn lẻ của độ dài từng cặp RUN của ảnh nhị phân để giấu được bit thông tin cần giấu, trong đó RUN là tập các pixel có cùng màu liên tiếp Các tham số cơ bản của RUN là màu và độ dài (số pixel) của nó Tiến hành xem xét phương pháp giấu thông tin trong ảnh nhị phân bằng cách điều chỉnh độ dài của RUN
Hình 2.1 Minh họa cặp RUN Một cặp RUN là 2 RUN liên tiếp, có thể là RUN đen trước, RUN trắng sau hoặc ngược lại Lược đồ trên minh họa 2 RUN liên tiếp trong một cặp RUN từ trái qua phải Các vị trí giữa RUN trắng và RUN đen có thể coi là ranh giới rõ ràng trong ảnh nhị phân, nếu thực hiện giấu tin bằng cách thay đổi vị trí ranh giới đó thì khó có thể phát hiện sự thay đổi của ảnh
Phương pháp RLE sẽ điều chỉnh độ dài RUN đen và trắng để giấu thông tin, mỗi cặp RUN có thể giấu được 1 bit thông tin Giả sử LB là độ dài của RUN đen và Lw là độ dài của RUN trắng, L’B (L’B = [LB - 1, LB + 1] ) là
độ dài của RUN đen và L’w (L’w =[ Lw - 1, Lw + 1]) là độ dài của RUN trắng sau khi điều chỉnh Mặt khác, dù nếu 1 pixel của RUN đen hoặc RUN trắng bị thay đổi nhưng tổng số pixel của cặp RUN không bị thay đổi (LB + Lw =L’B + L’w) Phương pháp này chỉ điều chỉnh đôi chút ranh giới giữa RUN trắng và RUN đen trong cặp RUN Nhờ tính chẵn lẻ của độ dài L’B để nhận biết được
Trang 22thông tin có giấu hay không Ví dụ, nếu LB là chẵn thì dữ liệu được giấu là 0, ngược lại là 1
Với RUN có độ dài lớn thì khó phát hiện được sự điều chỉnh; với RUN
có độ dài nhỏ, việc điều chỉnh sẽ tạo ra một sự thay đổi lớn nên rất dễ bị phát hiện Ví dụ, nếu số pixel của RUN chỉ là 1, nó có thể là 1 hoặc 2 sau khi điều chỉnh tức là có thể tăng lên gấp 2 lần nên rất dễ bị phát hiện có sự thay đổi trong ảnh dẫn đến chất lượng ảnh cũng bị ảnh hưởng
Để xử lý vấn đề này, ta có một biến T (T > 0) là một ngưỡng để nhận biết được một cặp RUN nào có thể giấu thông tin hay không Nếu độ dài của RUN nhỏ hơn T thì RUN đó sẽ không được dùng giấu thông tin Bằng việc điều chỉnh giá trị T, có thể điều chỉnh được chất lượng ảnh sau khi giấu thông tin
Giả sử bit giấu là d (d = [0, 1]), điều kiện để RUN có thể che giấu thông tin và việc điều chỉnh sẽ được mô tả:
Việc điều chỉnh này sẽ không là thay đổi tổng độ dài của RUN đen và RUN trắng mặc dù trong quá trình thêm dữ liệu thì độ dài của RUN đen là LB
và RUN trắng là LW trong mỗi cặp RUN có thể bị thay đổi Hình 2.2 là một ví
dụ về giấu tin bằng kỹ thuật RLE
Việc tiến hành giải mã thông tin được che giấu như sau: Giả sử dữ liệu được thêm là d’, bằng việc kiểm tra LB và LW ta có thể thấy được cặp RUN
có thể giấu dữ liệu hay không Công thức kiểm tra:
L’B = LB + sgn(LW – LB ) *| (LB mod 2) –d|;
Trong đó sgn(x) =
L’W = LW - sgn(LW – LB )*|( LB mod 2) – d|;
1 If x > 0 -1 If x < 0
If (LB > LW >= T) or (LW > LB >= T) or (LB = LW and LB > T)
If (LB > LW >= T) or (LW > LB >= T) or (LB = LW and LB > T)
d’ = LB mod 2
Trang 23Hình 2.2 Ví dụ về giấu tin bằng kỹ thuật RLE
Hình 2.3 Ví dụ về giải tin bằng kỹ thuật RLE
2.2 Kỹ thuật giấu tin theo khối bít
Kỹ thuật giấu tin theo khối bits tiến hành chia ma trận ảnh thành các khối ma trận nhị phân kích thước mxn, mỗi khối bít tiến hành giấu một bits thông tin (thông tin cần giấu phải chuyển sang dữ liệu nhị phân)
Trang 242.2.1 Nội dung thuật toán
Bài toán: giấu từng bit thông tin bi trong chuỗi bit b vào ma trận ảnh nhị phân F theo từng khối bit Fi có kích thước mxn
Thuật toán giấu tin
- Kiểm tra khả năng giấu hết thông tin vào ảnh, điều này phụ thuộc vào dung lượng ảnh nhị phân F, kích thước khối bits mxn và dung lượng thông tin cần giấu
- Lần lượt giấu bit bi vào khối bits Fi theo nguyên tắc sau: tính Sum(Fi) là tổng các phần tử trong Fi, nếu Sum(Fi) = bi thì giữ nguyên Fi, ngược lại tiến hành đảo một bit bất kỳ trong Fi
- Ma trận F’ nhận được từ các ma trận thành phần Fi chính là ma trận
ảnh đã được giấu tin
Thuật toán giải tin
- Chia ma trận điểm ảnh F’ (ảnh mang) thành các khối bits Fi có kích thước mxn và tính bi = Sum (Fi) mod 2
- Chuỗi bit b là chuỗi bi nhận được
2.2.2 Phân tích thuật toán
Trong quá trình giấu tin, việc chọn kích thước khối tin cần căn cứ vào
dung lượng ảnh mang và lượng thông tin cần giấu sao cho thông tin cần giấu được dàn trải trên toàn bộ ảnh Khi kích thước khối càng lớn thì lượng thông tin có thể giấu thấp, đồng thời ảnh sau khi giấu ít biến đổi so với ảnh gốc và ngược lại
Trong thuật toán, việc chia ảnh gốc thành các khối điểm ảnh có kích thước giống nhau khá đơn giản Tuy nhiên để tăng tin an toàn bảo mật cho thuật toán, chúng ta có thể chia ảnh gốc thành các khối điểm ảnh có kích thước khác nhau và vị trí bắt đầu của mỗi khối theo một thuật toán xác định nào đó Như vậy, việc thám mã sẽ khó khăn hơn, ngoài việc phải tìm ra kích thước của từng khối điểm ảnh còn phải xác định vị trí bắt đầu của mỗi khối
Kỹ thuật giấu tin trên sẽ gây hiện tượng bất thường đối với ảnh sau khi giấu thông tin, đặc biệt cần thay đổi thông tin trên khối ảnh chỉ có một màu (toàn màu đen hoặc toàn màu trắng)
Trang 252.3 Kỹ thuật giấu tin Wu-Lee
2.3.1 Định nghĩa các phép toán với ma trận
Cho hai ma trận nhị phân B1 và B2 có cùng kích thước, ta biểu diễn phép toán AND: B1^B2 là một ma trận kết quả nhận được từ phép AND từng phần tử tương ứng của hai ma trận B1 và B2
Tương tự, ta biểu diễn phép toán XOR: B1 B2 là một ma trận kết quả nhận được từ phép XOR từng phần tương ứng của hai ma trận B1 và B2
2.3.2 Thuật toán Wu-Lee
Là một thuật toán giấu tin khá phổ biển của M.Wu và J.Lee [15] Trong thuật toán Wu-Lee [6], môi trường giấu tin là một ảnh nhị phân (có thể coi như là một ma trận nhị phân – mỗi phần tử của ma trận là một bits nhận giá trị
0 hoặc 1) được chia thành các khối bits mxn, mỗi khối giấu được một bit thông tin bằng cách thay đổi nhiều nhất một bit trong khối Dùng thêm một khóa K có kích thước mxn để tăng tính bảo mật
Các bước thực hiện giấu tin:
Bước 1: Chia ảnh F thành các ma trận điểm ảnh Fi có kích thước mxn
Bước 2: Với mỗi Fi nhận được ở bước 1, kiểm tra điều kiện giấu tin
0 < Sum (Fi^K) < Sum (K)
Nếu thỏa mãn điều kiện trên thực hiện bước 3 để giấu một bit dữ liệu vào khối bits Fi, ngược lại dữ liệu không được giấu vào Fi và Fi sẽ được giữ nguyên
Bước 3: Giấu bit b vào khối bits Fi
If (Sum(Fi^K) mod 2 = b) then
Giữ nguyên Fi không đổi;
ElseIf (Sum(Fi^K) = 1) then
Trang 26Các bước giải tin:
Dựa vào bất biến khi giấu tin, ta thực hiện lần lượt trên từng khối bits Fi trên ảnh truyền tin Nếu Fi thỏa mãn bất biến 0 < Sum (Fi^K) < Sum (K) thì bit b giấu trong Fi được tính theo công thức b = Sum(Fi^K) mod 2
Minh họa thuật toán:
Hình 2.4 Giấu 3 bits thông tin trong một ma trận 6x6 Giả sử một ảnh có kích thước 6x6 và một ma trận khóa có kích thước 3x3 như hình vẽ, ta chia ảnh thành các khối F1, F2, F3, F4 có kích thước 3x3
- Tính Sum(K) = 5
- Vì Sum(F1^K) = Sum(K) nên không giấu dữ liệu vào khối F1
- Sum(F2^K) = 3 < Sum(K) nên có thể giấu một bit trông khối F2 Ta cần giấu một bit 0, nên ta cần chọn một bit F2[i,j] = 0 và K[i,j] = 1, đảo giá trị bit F2[i,j] = 1, F2 chuyển thành F2’ như hình trên
- Sum(F3^K) = 3 và bit cần giấu là b3 = 1 nên không cần thay đổi trong khối F3 mà vẫn giấu được bit thông tin Do đó, F3’ = F3
- Sum(F4^K) = 4 và bit cần giấu b4 = 1 nên ta cần tìm một bit F4[i,j] =
1 và K[i,j] = 1, tiến hành đảo bit F4[i,j] = 0, F4 chuyển thành F4’ 2.3.3 Phân tích thuật toán
Thuật toán Wu – Lee tương đối đơn giản, dễ thực hiện Tuy nhiên, tỉ lệ giấu tin tương đối thấp vì mỗi khối bits chỉ giấu được một bit thông tin, và độ an
Trang 27toàn chưa cao Nếu đối phương biết ảnh giấu tin sử dụng thuật toán Wu – Lee thì chỉ cần tìm được m, n và khóa K sẻ giải mã được thông tin đã giấu
2.4 Kỹ thuật giấu tin CPT
2.4.1 Giới thiệu về phương pháp CPT
Trên cơ sở phát triển ý tưởng của nhóm M.Y.Wu và J.H.Lee, nhóm các tác giả Y.Y.Chen, H.Pan và Y.Tseng (Chen – Pan – Tseng) đề xuất một phương pháp giấu tin trong ảnh nhị phân, theo đó ảnh nhị phân được phân thành nhiều khối có cùng kích thước mxn Với mỗi khối dữ liệu có thể giấu tối đa r bits thông tin, r ≤ [log2(m.n + 1)] bằng cách thay đổi không quá 2 bits trong khối dữ liệu ảnh [20, 21]
Khóa bí mật K là một ma trận nhị phân có kích thước bằng khối ảnh, được dùng chung giữa người giấu tin và người giải mã thông tin
Ma trận trọng số W (Weight matrix) là một ma trận có cùng kích thước với khóa và được sử dụng chung giữa người giấu thông tin và người giải mã thông tin Ma trận trọng số kích thước mxn có các phần tử nhận giá trị trong tập 2R = [1,…, 2r – 1] và phủ đầy tập 2R
Với cách lựa chọn khóa K và ma trận trọng số W như vậy thì sẽ có tới
t1 = 2mn khả năng của khóa K và t2 C2mnr1*(2r 1)!*(2r 1)mn(2r1) khả năng của ma trận trọng số W, do đó có tới t1*t2 khả năng lựa chọn K, W Nếu người giấu tin lựa chọn m, n đủ lớn thì khả năng đối phương dò tìm được thông tin được giấu là vô cùng khó Độ an toàn của thuật toán giấu tin này rất cao
2.4.2 Nội dung thuật toán
Với khối ảnh F, ma trận trọng số W, khóa K, ta cần giấu r bit thông tin
b1b2…br vào F, bằng cách đảo nhiều nhất 2 bit của F Quá trình biến đổi của thuật toán gồm 4 bước sau:
các phần tử tương ứng của hai ma trận nhị phân cùng bậc
phần tử tương ứng của hai ma trận cùng bậc, phép SUM dùng để tính tổng các phần tử của một ma trận
Ví dụ: Cho các ma trận F, K, W
Trang 280 1 1
0 0 1
0 1 1
1 1 0
0 1 1
1 1 0
3 2 1
3 2 1
3 2 1
W
Ta có kết quả như sau:
1 0 1
0 1 0
1 0 1 K F
3 0 1
0 2 0
3 0 1
- Trường hợp 1: Nếu W[j,k] = w và T[j,k] = 0 Khi đó đảo bit F[j,k] sẽ làm cho T[j,k] = 1, do đó SUM tăng lên w
- Trường hợp 2: Nếu W[j,k] =2r - w và T[j,k] = 1 Khi đó đảo bit Fi [j,k]
sẽ làm cho T[j,k] = 0, do đó SUM sẽ giảm đi (2r - w), tức tăng lên w theo mod 2r.
Việc đảo bit trên khối F phải thỏa mãn yêu cầu:
SUM (( F’ K) W) b1b2…br (mod 2r)
Đây cũng chính là cơ sở để khôi phục thông tin được giấu Khi nhận được F', biết các khóa K, ma trận trọng số W người giải tin chỉ cần đi tính giá trị b = SUM (( F' K) W) mod 2r, chính là thông tin được giấu
Các mệnh đề sau chứng minh tính đúng đắn của thuật toán, nghĩa là luôn giấu được r bit thông tin mà chỉ cần thay đổi nhiều nhất 2 bit của khối
S2
r
- w (Một cách nói khác: nếu Sw = thì S-w)
Thật vậy, theo định nghĩa của ma trận trọng số, tồn tại ít nhất một phần
tử W[j,k] = w Giả sử T[j,k] = F[j,k] K[j,k] = 0, đảo bit F[j,k] sẽ làm SUM tăng w, hay Sw, trái với giả thiết
Vậy T[j,k] = F[j,k] K[j,k] = 1, nếu ta đảo bit F[j,k] sẽ làm SUM giảm đi w hay tăng lên (2r - w) (mod 2r), suy ra S2r - w