TỔNG QUAN VỀ GIẤU TIN
KHÁI NIỆM VỀ GIẤU TIN
Loài người đã phát triển nhiều phương pháp bảo vệ thông tin, trong đó hệ mật mã là giải pháp sớm nhất, với thông tin được mã hóa và giải mã nhờ khóa Độ an toàn của thông tin phụ thuộc vào độ phức tạp của việc tìm ra khóa giải mã Các hệ mật mã như RSA, DSA và NAPSACK vẫn được sử dụng hiệu quả hiện nay Gần đây, phương pháp giấu tin đã thu hút sự chú ý, cho phép nhúng thông tin số vào một đối tượng số khác mà không làm ảnh hưởng đến dữ liệu gốc Tính an toàn của phương pháp này dựa vào tính chất ẩn của thông tin được giấu.
Các phương pháp giấu tin được tiến hành theo nhiều cách khác nhau tùy vào mục đích và môi trường giấu tin Mỗi kỹ thuật giấu tin gồm :
Bộ giải mã thông tin
Thuật toán giấu tin cho phép ẩn thông tin trong một phương tiện mang, sử dụng khóa bí mật chung giữa người mã hóa và người giải mã để đảm bảo tính bảo mật.
Hình 1.1:Sơ đồ quá trình giấu tin trong ảnh
Dữ liệu có chứa thông tin s
Hình 1.2: Sơ đồ quá trình tách tin trong ảnh
Hình 1.1 và 1.2 minh họa quá trình giấu tin và tách tin trong ảnh, sử dụng các phép biến đổi tần số như cosine, wavelet, Fourier rời rạc hoặc biến đổi sai phân (image difference) thông qua các phép biến đổi T và T -1.
Hình vẽ minh họa quá trình giấu tin cơ bản, trong đó phương tiện chứa bao gồm các đối tượng như văn bản, âm thanh, video và hình ảnh Thông tin giấu, tùy thuộc vào mục đích sử dụng, có thể là hình ảnh, logo hoặc đoạn văn bản Quá trình giấu tin diễn ra thông qua một chương trình, tạo ra phương tiện chứa thông tin đã được giấu và phân phối trên mạng Khi nhận được phương tiện này, quá trình giải mã sẽ được thực hiện với chương trình giải mã tương ứng và khóa mã hóa Kết quả bao gồm phương tiện chứa gốc và thông tin đã giấu, sau đó thông tin giấu sẽ được xử lý để kiểm định và so sánh với thông tin ban đầu.
Giấu thông tin là một nghệ thuật và khoa học trong lĩnh vực truyền thông, với mục tiêu chính là ẩn giấu các thông điệp bên trong những thông báo khác mà không làm ảnh hưởng đến nội dung chính Phương pháp này được thực hiện nhằm đảm bảo rằng những người không có thẩm quyền không thể phát hiện hoặc phá hủy những thông tin quan trọng đó.
ĐẶC ĐIỂM GIẤU TIN
Hiện nay giấu thông tin trong ảnh là kỹ thuật còn tương đối mới và đang có xu hướng phát triển rất nhanh
Một kỹ thuật giấu tin trong ảnh đƣợc đánh giá dựa trên một số đặc điểm sau:
Tính vô hình của thông tin đƣợc giấu trong ảnh
Bộ tách tin Thông tin M
Dữ liệu có chứa thông tin s
Số lƣợng thông tin đƣợc giấu
Tính an toàn và bảo mật của thông tin
Chất lƣợng của ảnh sau khi giấu thông tin bên trong
1.2.1 Tính vô hình của thông tin
Khái niệm này dựa trên đặc điểm của hệ thống thị giác con người, trong đó thông tin nhúng không thể nhận biết nếu người xem có thị lực bình thường không phân biệt được giữa ảnh môi trường và ảnh chứa thông tin Việc giấu tin trong ảnh đòi hỏi tính vô hình cao, trong khi thủy vân số chỉ cần đạt một mức độ nhất định Ví dụ, thủy vân số thường được sử dụng để gắn biểu tượng mờ vào chương trình truyền hình nhằm bảo vệ bản quyền.
Thuật toán nhúng tin được coi là an toàn khi thông tin nhúng không thể bị phát hiện ngay cả khi kẻ tấn công có hiểu biết đầy đủ về thuật toán và bộ giải mã, cùng với ảnh chứa thông tin Đặc biệt, khi giấu tin trong ảnh, yêu cầu này càng trở nên quan trọng Ví dụ, đối với thuật toán dò tin trong ảnh đen trắng kích thước m*n, độ phức tạp vẫn đạt O(2 m*n) ngay cả khi đã biết ma trận trọng số được sử dụng trong quá trình giấu tin.
Trong thuật toán giấu tin, việc cân nhắc lượng thông tin giấu so với kích thước ảnh môi trường là rất quan trọng Đây là một trong hai yêu cầu cơ bản của giấu tin mật Mặc dù có thể giấu một bit thông tin vào mỗi ảnh mà không làm tăng độ nhiễu, nhưng điều này sẽ không hiệu quả khi thông tin cần giấu có kích thước lớn Các thuật toán giấu tin hướng đến việc tối ưu hóa khả năng giấu nhiều thông tin nhất có thể mà không gây ra nhiễu đáng kể cho ảnh.
1.2.4 Lựa chọn ảnh Đối với việc giấu thông tin mật thì hầu hết các chuyên gia về lĩnh vực này khuyên rằng: nên chọn ảnh đa cấp xám là môi trường là hợp lý hơn cả Sau khi giấu tin mật trong ảnh đa cấp xám thì chất lƣợng của ảnh là cao, đảm bảo tính vô hình của thông tin mật
1.2.5 Ảnh gốc đối với quá trình giải mã
Thuật toán cần cho phép khôi phục thông tin ẩn trong ảnh mà không cần ảnh gốc, điều này thuận lợi khi ảnh môi trường là duy nhất nhưng lại hạn chế khả năng ứng dụng của kỹ thuật giấu tin Để thực hiện việc giấu tin, trước tiên cần số hóa ảnh, và quá trình số hóa khác nhau tùy thuộc vào loại ảnh Trong đồ án này, chỉ sử dụng ảnh định dạng BMP, một định dạng do Microsoft phát triển, lưu trữ độc lập với thiết bị, cho phép hiển thị dữ liệu trên Windows mà không phụ thuộc vào khung màu của phần cứng Tên file mở rộng mặc định cho ảnh Bitmap là BMP, được sử dụng trên Microsoft Windows và các ứng dụng từ version 3.0 trở lên.
Mỗi file ảnh Bitmap gồm 3 phần:
Bitmap Header Palette màu BitmapData
Các cấu trúc cụ thể của ảnh Bitmap
Bảng 1.1 Cấu trúc ảnh Bitmap
Byte thứ Ý nghĩa Giá trị
1-2 Nhận dạng file „BM‟ hay 1779
3-6 Kích thước file Kiểu long trong Tubo C
7-10 Dự trữ Thường mang giá trị 0
11-14 Byte bắt đầu vùng dữ liệu Offset của byte bắt đầu vùng dữ liệu 15-18 Số byte cho vùng info 4 byte
19-22 Chiều rộng ảnh BMP Tính bằng pixel
23-26 Chiều cao ảnh BMP Tính bằng pixel
27-28 Số planes màu Cố định là 1
29-30 Số bit cho 1 pixel Có thể là 1, 4, 8, 16, 24 tùy theo loại ảnh
31-34 Kiểu nén dữ liệu 0: không nén
35-38 Kích thước ảnh Tính bằng byte
39-42 Độ phân giải ngang Tính bằng pixel/ metter
43-46 Độ phân giải dọc Tính bằng pixel/ metter
47-50 Số màu sử dụng trong ảnh
51-54 Số màu sử dụng khi hiển thị ảnh
Palette màu: Bảng màu của ảnh, chỉ những ảnh nhỏ hơn hoặc bằng 8 bit màu mới có palette màu
BitmapData là phần dữ liệu nằm ngay sau bảng màu trong ảnh BMP, chứa giá trị màu của từng điểm ảnh Các dòng ảnh được lưu trữ từ dưới lên trên và từ trái sang phải Mỗi điểm ảnh có giá trị là chỉ số trỏ tới phần tử màu tương ứng trong bảng màu.
Thành phần Bit Count trong cấu trúc Bitmap Header chỉ rõ số bit dành cho mỗi điểm ảnh và xác định số lượng màu tối đa của hình ảnh Các giá trị mà Bit Count có thể nhận được bao gồm:
1: Bimap là ảnh đen trắng, mỗi bit biểu diễn một điểm ảnh Nếu bit mang giá trị 0 thì điểm ảnh là điểm đen, bit mang giá trị 1 điểm ảnh là điểm ảnh trắng
4: Bitmap là ảnh 16 màu, mỗi điểm ảnh đƣợc biểu diễn bởi 4 bit
8: Bitmap là ảnh 256 màu, mỗi điểm ảnh dƣợc biểu diễn bởi 1 byte
16: Bitmap là ảnh high color, mỗi dãy 2 byte liên tiếp trong bitmap biểu diễn cường độ tương đối của màu đỏ, xanh lá cây, xanh lơ của một điểm ảnh
24: Bitmap là ảnh true color (224 màu), mỗi dãy 3 byte liên tiếp trong bitmap biểu diễn cường độ tương đối của màu đỏ, xanh lá cây, xanh lơ(RGB) của một điểm ảnh
Thành phần Color Used trong cấu trúc Bitmap Header xác định số lượng màu của bảng màu được sử dụng để hiển thị bitmap Nếu giá trị của thành phần này là 0, bitmap sẽ sử dụng số màu tối đa tương ứng với giá trị của BitCount.
MÔI TRƯỜNG GIẤU TIN
Kỹ thuật giấu tin đã được áp dụng rộng rãi trong nhiều môi trường dữ liệu khác nhau, bao gồm dữ liệu đa phương tiện như văn bản, hình ảnh, âm thanh và video Gần đây, nghiên cứu cũng đã mở rộng sang môi trường cơ sở dữ liệu quan hệ Trong số các môi trường này, dữ liệu đa phương tiện chiếm tỷ lệ chủ yếu trong việc triển khai các kỹ thuật giấu tin.
Hiện nay, việc giấu thông tin trong ảnh chiếm tỷ lệ lớn trong các ứng dụng và phần mềm, nhờ vào lượng thông tin khổng lồ được trao đổi qua hình ảnh Phương pháp này đóng vai trò quan trọng trong nhiều ứng dụng bảo vệ an toàn thông tin như nhận thực thông tin, xác định sự xuyên tạc, bảo vệ bản quyền tác giả, điều khiển truy cập và giấu thông tin mật.
Thông tin có thể được giấu kín trong dữ liệu ảnh mà không làm giảm chất lượng hình ảnh, điều này giúp bảo vệ thông tin quan trọng mà không ai nhận ra Trong thời đại ảnh số phổ biến, việc giấu thông tin trong ảnh đã trở thành một ứng dụng quan trọng trong nhiều lĩnh vực, đặc biệt là ngân hàng và tài chính Tại một số nước phát triển, thuỷ vân số được sử dụng để xác thực danh tính khách hàng trên thẻ tín dụng Mỗi khách hàng có chữ ký tay được số hoá và lưu trữ, sau đó chữ ký này được nhúng vào ảnh trên thẻ Khi thẻ được sử dụng, hệ thống đọc thuỷ vân sẽ trích xuất chữ ký số từ ảnh và so sánh với chữ ký đã lưu trữ để xác nhận danh tính khách hàng.
Giấu tin trong audio có đặc điểm riêng biệt so với các phương tiện khác, với yêu cầu cơ bản là đảm bảo tính ẩn của thông tin mà không làm giảm chất lượng dữ liệu gốc Kỹ thuật này phụ thuộc vào hệ thống thính giác của con người (HAS), khác với giấu tin trong ảnh, dựa vào hệ thống thị giác (HVS).
Hệ thống thính giác của con người có khả năng nghe các tín hiệu ở dải tần rộng và công suất lớn, gây khó khăn cho việc 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, cho phép âm thanh to và cao tần dễ dàng che giấu âm thanh nhỏ và thấp Các mô hình phân tích tâm lý đã chỉ ra điểm yếu này, giúp lựa chọn audio phù hợp cho việc giấu tin hiệu quả hơn.
Một thách thức lớn trong việc giấu tin trong audio là kênh truyền tin, vì băng thông chậm có thể làm giảm chất lượng thông tin được giấu Chẳng hạn, để nhúng một đoạn mã java applet vào một file audio có độ phân giải 16 bit và tần số 44,100 Hz, các phương pháp thường yêu cầu ít nhất 20 bit/s để đảm bảo chất lượng.
Giấu tin trong audio yêu cầu cao về tính đồng bộ và an toàn thông tin, với các phương pháp tận dụng điểm yếu của hệ thống thính giác con người.
Giấu tin trong video, tương tự như trong ảnh hay audio, đã thu hút sự chú ý và phát triển mạnh mẽ, phục vụ cho nhiều ứng dụng như kiểm soát truy cập thông tin, xác thực thông tin và bảo vệ quyền tác giả.
Các kỹ thuật giấu tin trong video đang ngày càng phát triển mạnh mẽ, bao gồm hai xu hướng chính: thủy vân số và giấu dữ liệu Một trong những phương pháp nổi bật là phương pháp phân bố đều do Cox đề xuất, với ý tưởng cơ bản là phân phối thông tin giấu một cách dàn trải theo tần số của dữ liệu gốc Phương pháp này sử dụng hàm cosin riêng và hệ số truyền sóng riêng để thực hiện việc giấu tin hiệu quả.
Trong các thuật toán khởi nguồn, kỹ thuật giấu tin vào video đã phát triển mạnh mẽ, cho phép không chỉ giấu tin trong video mà còn cả âm thanh và hình ảnh Phương pháp Swanson có khả năng giấu 2 bit thông tin vào khối 8x8, trong khi phương pháp Mukherjee gần đây đã cải tiến bằng cách giấu âm thanh vào video sử dụng cấu trúc lưới đa chiều.
Kỹ thuật giấu tin sử dụng 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 dạng text
Việc giấu tin trong văn bản dạng text là một thách thức do ít thông tin dư thừa, yêu cầu người thực hiện khéo léo khai thác các dư thừa tự nhiên của ngôn ngữ Một phương pháp khác là sử dụng định dạng văn bản, chẳng hạn như mã hóa thông tin vào khoảng cách giữa các từ hoặc giữa các dòng văn bản.
Kỹ thuật giấu tin hiện nay không chỉ áp dụng cho dữ liệu đa phương tiện như ảnh, âm thanh và video, mà còn được nghiên cứu trong các cơ sở dữ liệu quan hệ và các gói IP truyền trên mạng Sự phát triển này hứa hẹn sẽ mở rộng ra nhiều môi trường dữ liệu số khác trong tương lai.
PHƯƠNG PHÁP GIẤU TIN
Kỹ thuật giấu tin trong ảnh được phát triển từ công nghệ thủy vân số, với phương pháp đầu tiên là thay thế bit thấp nhất (LSB) trong ảnh, hay còn gọi là phương pháp LSB hiding Đây là phương pháp tiên phong trong việc giấu tin trong ảnh số.
Phương pháp giấu tin trên LSB (Least Significant Bit) là kỹ thuật thay thế các bit thông tin vào bit LSB của điểm ảnh Trong ảnh 8-bit cấp độ xám, mỗi điểm ảnh được biểu diễn bằng chuỗi nhị phân 8 bit, trong đó 7 bit đầu tiên (MSBs - Most Significant Bits) có vai trò quan trọng nhất, còn bit cuối cùng (LSB) có ảnh hưởng tối thiểu đến chất lượng hình ảnh Việc thay đổi giá trị của bit LSB không làm giảm đáng kể chất lượng trực quan của ảnh, cho phép giấu thông tin mà không làm ảnh hưởng đến sự nhận diện của hình ảnh.
Kỹ thuật giấu tin trên LSB vẫn được ưa chuộng nhờ tính đơn giản và khả năng giấu nhiều thông tin Mỗi điểm ảnh có thể nhúng một bit thông tin, với tỉ lệ nhúng tối đa là một bit trên một điểm ảnh Giả sử ảnh đầu vào là ảnh xám 8-bit kích cỡ m×n, dữ liệu được biểu diễn dưới dạng vector X m×n ={x ij , i=1, …, m,j=1, …, n, x ij ∈ {0, …, 255}} Sau khi nhúng chuỗi bit thông tin b l = {bi, i = 1, …, l, b i ∈ {0,1}} vào ảnh bằng cách thay thế từng bit b i vào bit LSB của x ij, ta thu được ảnh giấu tin với vector S m×n ={s ij , i=1, …, m, j=1, …, n}.
…,n, s ij ∈ {0, …, 255}} tương ứng Khi đó LSB của điểm ảnh được giấu tin theo mô tả nhƣ hình 1.3 (giấu trên điểm ảnh có giá trị bằng 117)
Hình 1.3 Minh họa giấu thông tin trong LSB của ảnh cấp xám 8 - bit
Việc áp dụng hàm giấu và tách thông tin có thể thực hiện tương tự trên ảnh
Kỹ thuật giấu tin trong ảnh 24-bit sử dụng 3 kênh màu R, G, B (mỗi kênh 8-bit), thường thực hiện trên kênh màu B do ít ảnh hưởng đến cảm nhận của mắt người Để bảo vệ thông tin đã giấu khỏi các tấn công hình học như xoay, nén, co, giãn, các phương pháp giấu LSB cải tiến trên miền tần số như cosine và wavelet được đề xuất Ngoài ra, thông tin cũng có thể được giấu trên LSB của các hệ số sai phân Việc chọn LSB để giấu thông tin có thể theo thứ tự tuần tự (quét raster) hoặc theo thứ tự ngẫu nhiên dựa trên bộ chọn vị trí giả ngẫu nhiên PR Hai phương pháp đặc biệt khác là tăng giảm LSB và phương pháp đồng chẵn lẻ cũng được áp dụng trong quá trình giấu tin.
Phương pháp tăng giảm LSB (±1 embedding) là kỹ thuật giấu thông tin bằng cách so sánh bit thông tin với bit LSB của điểm ảnh được chọn, có thể chọn theo thứ tự hoặc ngẫu nhiên Nếu bit thông tin trùng với bit LSB, một bit thông tin sẽ được giấu vào điểm ảnh đó Ngược lại, nếu không trùng, giá trị của điểm ảnh sẽ được điều chỉnh tăng hoặc giảm 1 để LSB trở thành đồng giá trị với bit thông tin.
Phương pháp đồng chẵn lẻ là kỹ thuật chia không gian ảnh thành các khối kích thước k × t, trong đó thông tin được giấu vào từng khối theo quy tắc chẵn lẻ Cụ thể, số bit LSB có giá trị “1” trong mỗi khối phải đồng nhất về tính chẵn lẻ với bit được giấu, đảm bảo tính bảo mật cho thông tin.
Bit LSB của một khối sẽ là lẻ nếu bit thông tin cần giấu là “1” và chẵn nếu bit cần giấu là “0” Khi không trùng khớp, cần thay đổi giá trị LSB để đảm bảo tính đồng nhất chẵn lẻ với bit thông tin Đặc biệt, khi kích thước mỗi khối để giấu tin là 1×1, nó trở thành trường hợp giấu thay thế LSB tổng quát.
Có nhiều phương pháp giấu LSB khác nhau không chỉ giới hạn trong bốn phương pháp cơ bản như tuần tự, ngẫu nhiên, tăng giảm và đồng chẵn lẻ Những phương pháp này có thể được kết hợp với nhau hoặc sử dụng thêm các thao tác khác để nâng cao hiệu quả và độ an toàn cho thông tin được giấu.
Ngoài phương pháp giấu thông tin trên LSB, còn tồn tại nhiều kỹ thuật giấu tin khác như chèn nhiễu SS và điều chỉnh hệ số lượng tử QIM.
Kỹ thuật giấu tin bằng cách chèn nhiễu SS cho phép điều biến dữ liệu thành chuỗi tín hiệu mang thông tin với hệ số bền vững α, sau đó chèn vào ảnh gốc Nhiều phương pháp đã được đề xuất, trong đó có phương pháp của J.Cox, nơi ảnh gốc được biến đổi Cosine để chọn ra các hệ số DCT x_k có giá trị lớn nhất tương ứng với độ dài tín hiệu cần giấu Các tín hiệu thông tin d_k sẽ được chèn vào các hệ số này theo ba công thức: s_k = x_k + αd_k, s_k = x_k + (αx_k)d_k = x_k(1 + αd_k), hoặc s_k = x_k e^(αd_k) J.Cox khẳng định rằng các biểu thức này cho phép giấu thông tin một cách bền vững trước các tấn công nhiễu và các phép biến đổi hình học.
Kỹ thuật giấu tin điều chỉnh hệ số lượng tử QIM là một phương pháp phổ biến trong lĩnh vực giấu tin, mặc dù có độ phức tạp cao hơn và khả năng giấu thấp hơn so với kỹ thuật giấu LSB Tuy nhiên, giống như kỹ thuật giấu SS, QIM giúp bảo vệ thông tin khỏi các tấn công hình học và nhiễu Trong đó, dữ liệu của ảnh gốc và ảnh đã giấu tin được coi là các tín hiệu khác nhau, với M là chuỗi thông tin cần giấu Tín hiệu ảnh đã giấu tin bao gồm các giá trị trong tập lượng tử đầu ra, nhưng điều này có thể gây mất thông tin khi nén dữ liệu Để đảm bảo tín hiệu ảnh giấu tin bao phủ tất cả các giá trị của tín hiệu gốc, quá trình lượng tử sẽ được điều chỉnh bằng cách dịch chuyển theo một mức thay đổi nhỏ D, được biểu diễn bằng công thức S(X, M) = q(X + D(M)) - D(M), trong đó q M là hàm lượng tử và D là hàm điều chỉnh lượng tử.
Gần đây, một số lĩnh vực như y học, quân sự, nghiên cứu năng lượng và hệ thống thông tin vệ tinh yêu cầu khả năng khôi phục ảnh gốc sau khi tách thông tin, dẫn đến sự ra đời của kỹ thuật giấu tin thuận nghịch Năm 1999, Honsinger và các cộng sự đã giới thiệu kỹ thuật giấu tin thuận nghịch đầu tiên, mở ra hướng đi mới trong lĩnh vực này Kể từ đó, nhiều kỹ thuật giấu tin thuận nghịch khác đã được công bố, đáng chú ý là các kỹ thuật giấu tin biểu.
Kỹ thuật mở rộng sai phân DE (Difference Expansion) do Tian đƣa ra
Năm 2002, một kỹ thuật giấu tin mới được phát triển dựa trên việc mở rộng hệ số sai phân của điểm ảnh, trong đó dữ liệu ảnh được tính toán sai phân và thông tin được giấu vào LSB của các hệ số này Tiếp theo, tác giả đã đề xuất phương pháp mở rộng trên các hệ số wavelet để cải thiện khả năng giấu tin Đến năm 2008, Shaowei Weng và các đồng nghiệp đã giới thiệu một kỹ thuật DE cải tiến, trong đó thêm vào hàm nén - giãn trong quá trình giấu tin nhằm giảm thiểu nhiễu (được đánh giá bằng PSNR) của kỹ thuật giấu tin thuận nghịch DE.
Năm 2003, Ni và cộng sự đã giới thiệu kỹ thuật giấu thuận nghịch dựa trên dịch chuyển biểu đồ tần suất, gọi là NSAS Kể từ đó, nhiều kỹ thuật giấu thuận nghịch mới đã được phát triển dựa trên phương pháp này, bao gồm kỹ thuật DIH vào năm 2004 (dịch chuyển biểu đồ tần suất hệ số sai phân), kỹ thuật HKC (cải tiến kỹ thuật giấu NSAS), và kỹ thuật IWH.
(2006) (dựa trên dịch chuyển biểu đồ tấn suất hệ số nguyên wavelet), kỹ thuật RL
(2008) là kỹ thuật giấu thuận cho ảnh nhị phân dựa trên dịch chuyển tần suất của các loạt đen trong ảnh
Một số kỹ thuật giấu thông tin không dựa vào biểu đồ tần suất bao gồm kỹ thuật giấu MBNS (Multiple-Base Notational System), trong đó dữ liệu được chuyển đổi thành các hệ số nhỏ hơn thông qua phân tích nhân tử đa thức, và các điểm ảnh được điều chỉnh để lưu trữ các hệ số này Kỹ thuật giấu RCM sử dụng hiệu chỉnh LSB của ảnh theo bản đồ màu tương phản Kỹ thuật giấu hai pha RVH chia chuỗi thông tin giấu M thành hai chuỗi con M1 và M2, sau đó thực hiện giấu lần lượt: pha giấu ngang trên các cột lẻ và pha giấu dọc trên các hàng chẵn của ma trận ảnh.
PHƯƠNG PHÁP ĐÁNH GIÁ ĐỘ AN TOÀN CỦA MỘT LƯỢC ĐỒ GIẤU
Khi một kỹ thuật giấu tin được đề xuất, Cachin đã định nghĩa khái niệm giấu tin an toàn, yêu cầu rằng thông tin không thể cảm nhận bằng mắt thường hoặc phát hiện bằng phương pháp thống kê Để minh họa, ký hiệu C’ đại diện cho tập tất cả các ảnh gốc, M’ là tập các thông tin mật, K’ là tập các khóa giấu tin, và S’ là tập tất cả các ảnh stego.
(thuật toán) là một cặp (S E , S X ), với S E : C‟ × M‟ × K‟ ->S‟ là hàm nhúng thông tin và S X : S‟ × K‟->M‟ là hàm tách thông tin Hàm nhúng S E tạo ra một đối tƣợng S ∈
S‟ từ mỗi C ∈ C‟, M ∈ M‟ và K ∈ K‟, tương tự hàm tách S X tách thông tin M từ S bằng khóa K
Giả sử hàm phân bố xác suất của C thuộc tập C′ Nếu khóa K thuộc tập K′ và M thuộc tập M′ được chọn ngẫu nhiên, thì lược đồ giấu tin (S E, S X) cùng với hàm phân bố xác suất P C sẽ tương ứng với hàm phân bố xác suất P S của S thuộc tập S′ Theo khái niệm giấu tin an toàn của Cachin, một lược đồ giấu tin (thuật toán) được coi là an toàn nếu sai số Kullback - Leibler giữa hàm mật độ xác suất của P C và P S là bằng 0.
Khi DKL(P C || P S ) < ε, lược đồ giấu tin được coi là an toàn với độ an toàn ε (ε - secure), trong đó ε là một số thực dương nhỏ Tuy nhiên, trong thực tế, việc đạt được DKL(P C || P S ) = 0 là không khả thi, vì điều này đồng nghĩa với việc không có sự thay đổi nào trên ảnh gốc, tức là P C = P S, theo lý thuyết thông tin Do đó, phương pháp thường được áp dụng là giấu tin sao cho đạt độ an toàn ε - secure, đảm bảo rằng sự thay đổi trên ảnh là tối thiểu và không thể nhận thấy bằng mắt thường.
Nhiều lược đồ giấu tin hiện nay chủ yếu dựa vào đánh giá khả năng cảm nhận của con người thông qua chỉ số PSNR (Peaksignal to noise ratio) so sánh giữa ảnh gốc và ảnh đã giấu tin PSNR được coi là phương pháp đánh giá độ an toàn theo cách tiếp cận chủ quan, trong đó cảm nhận của con người được phân thành năm mức khác nhau Chất lượng ảnh sẽ được xác định dựa trên giá trị PSNR, từ đó đánh giá ảnh thuộc ngưỡng nào Chất lượng PSNR được ánh xạ vào thang đo MOS (Mean Opinion Score) như thể hiện trong bảng 1.1.
Bảng 1.2 Mối quan hệ giữa các giá trị PSNR và MOS
Nhiều kỹ thuật giấu tin thường can thiệp vào ảnh sau khi đã giấu thông tin, dẫn đến chất lượng ảnh bị giảm, với chỉ số PSNR chỉ đạt mức 5.
HÀM BĂM
1.6.1 Định nghĩa tổng quát của hàm băm
Hàm h(x) đƣợc gọi là một hàm băm nếu thỏa mãn hai tính chất sau:
Nén (conpression): hàm h(x) tương ứng chuỗi bit đầu vào có chiều dài hữu hạn tùy ý đƣợc chuỗi bit ra y= h(x) có chiều dài cố định n>0 cho trước
Dễ tính toán (ease of computation): với mọi bit đầu vào x có chiều dài hữu hạn (tùy ý), h(x) đƣợc tính toán “dễ dàng”
Hình 1.4:Minh họa hàm băm
Băm (sử dụng hàm băm)
Văn bản đã băm (độ dài cố định)
Hàm băm được định nghĩa là một hàm không va chạm yếu nếu không thể tính toán để tìm ra hai bức điện x và x' khác nhau nhưng có cùng giá trị hàm băm, tức là h(x) = h(x') Ngoài ra, hàm băm cũng được coi là một chiều nếu không thể tính toán để tìm bức điện x từ một giá trị hàm băm cho trước, tức là h(x) = z Những định nghĩa này nhấn mạnh tính bảo mật và tính một chiều của hàm băm trong các ứng dụng mã hóa và bảo vệ dữ liệu.
1.6.2 Một số tính chất cơ bản của hàm băm
Tính kháng tiền ảnh (preimage resistance) là đặc tính quan trọng của hàm băm, đảm bảo rằng với bất kỳ đầu ra y nào đã cho, không thể xác định được dữ liệu đầu vào x' sao cho giá trị hàm băm h(x') tương đương với giá trị đầu ra y đó.
Tính kháng tiềm ảnh Thứ hai (2 nd - preimage resistance): với mọi dữ liệu x 2 nào (x 2 ≠ x 1 ) mà giá trị hàm băm h(x 2 ) của nó bằng giá trị băm h(x 1 ) của x 1
Tính kháng xung đột (collision resistase): không thể tính toán để hai dữ liệu đầu vào x 1 và x 2 phân biệt sao cho chúng nó bằng giá trị băm (tức là h(x 1 ) = h(x 2 ))
Bảng1.3: Danh sách các hàm băm mật mã học.
Thuật toán MD5 do Ronald Rivest thiết kế năm 1991 đại học MIT
Input: thông điệp có độ dài bất kì
Output: giá trị băm 128 bit
Giải thuật gồm 5 bước thao tác trên khối 512 bit
Nhồi thêm các bit sao cho dữ liệu có độ dài l D8 mod 512 hay l=n* 512+448 (l, n số nguyên)
Luôn thực hiện việc nhồi dữ liệu ngay cả khi dữ liệu ban đầu đã đạt độ dài mong muốn Ví dụ, nếu dữ liệu có độ dài 448 bit, cần nhồi thêm 512 bit để đạt tổng độ dài 960 bit.
Số lƣợng bit nhồi thêm nằm trong khoảng 1 đến 512
Các bit đƣợc nhồi thêm gồm 1 bit “1” và các bit 0 theo sau
Để hoàn thành bước 2, cần thêm độ dài của khối dữ liệu ban đầu, được biểu diễn dưới dạng nhị phân 64 bit, vào cuối chuỗi nhị phân kết quả từ bước 1.
Nếu độ dài khối dữ liệu ban đầu vượt quá 2^64, chỉ 64 bit thấp nhất sẽ được sử dụng, tức là giá trị thêm vào sẽ là K mod 2^64 Kết quả từ hai bước đầu tiên là khối dữ liệu có độ dài là bội số của 512, và khối dữ liệu này được biểu diễn một cách chính xác.
Bằng 1 dãy N từ 32 bit M 0 , M 1 ,…,M N-1 Vậy N L*16(32*16Q2)
Bước 3: khởi tạo bộ đệm MD
Bộ đệm 128 bit được cấu thành từ 4 thanh, có chức năng lưu trữ các giá trị băm trung gian và kết quả ghi 32 bit Các giá trị khởi tạo được biểu diễn theo định dạng little-endian, trong đó byte có trọng số nhỏ nhất nằm ở địa chỉ thấp nhất, ví dụ như A = 067452301.
Bước 4: xử lý các khối dữ liệu 512 bit
Giải thuật tập trung vào hàm nén với bốn vòng xử lý có cấu trúc tương tự, nhưng mỗi vòng áp dụng các hàm luận lý khác nhau, bao gồm F, G, H và I.
Mảng 64 phần tử đƣợc tính theo công thức : T[i]= 2 32 x abs (sin(i)), I tính theo radian Kết quả của 4 vòng đƣợc cộng theo modulo 2 32 với đầu vào CV p để tạo
Bảng 1.4: Các giá trị trong bảng T
Bảng 1.5: Bảng T chính là giá trị của 4 chu kì của FF, GG, HH, II
Sau khi sử lý hết L khối 512 bit, đầu ra của lần xử lý thứ L là giá trị băm 128 bit
Tạo khóa bí mật từ mật khẩu
Kiểm tra tính toàn vẹn dữ liệu
Mã chứng thực thông điệp sử dụng hàm băm
PHƯƠNG PHÁP GIẤU TIN DỰA VÀO AUTOMATA 2D–CA
GIỚI THIỆU
Phương pháp giấu tin 2D-CA, được đề xuất bởi Biswapati Jana, Debasis Giri, Shymal Kumar Mondal và Pabitra Pal vào năm 2013, là một kỹ thuật mới và hiệu quả để nhúng thông điệp mật vào ảnh màu cấp xám Kỹ thuật này sử dụng automata 2D-CA, bắt đầu bằng cách thêm bit thông tin để tạo thành một độ dài bội số của 1024 bit Sau đó, thông điệp được chia thành các khối con dài 1024 bit và được giấu trên miền LSB của ảnh gốc thông qua việc XOR thông điệp giấu với một khóa mật có độ dài tương ứng.
Để mã hóa thông tin, chúng ta sử dụng quy tắc 341 của 2D-CA nhằm cập nhật giá trị điểm ảnh trung tâm trong mỗi khối ma trận 3x3 của ảnh gốc, dựa trên các bit giấu Trong quá trình giải mã, quy tắc 341 cũng được áp dụng để trích xuất thông điệp mật Để khôi phục lại thông điệp ban đầu, các khối thông điệp sẽ được kết hợp và thực hiện phép XOR với khóa mật đã được chia sẻ giữa bên gửi và bên nhận.
AUTOMATA HAI CHIỂU
Automata hữu hạn hai chiều (2D-CA) là hệ thống rời rạc với số trạng thái hữu hạn, mỗi trạng thái được biểu diễn dưới dạng một mảng hai chiều r × s gọi là ô Mỗi ô có trạng thái là một phần tử thuộc tập hợp hữu hạn S, trong đó S = Z c, với c = 2 b là số màu của ảnh Cụ thể, ảnh trắng đen có b = 1, ảnh cấp xám có b = 8 và ảnh màu có b = 24.
Trạng thái của mỗi ô trong mô hình phụ thuộc vào n biến của hàm dịch chuyển, bao gồm ô đang xét và các ô láng giềng Trong nghiên cứu này, chúng tôi chỉ tập trung vào láng giềng Moore trong mô hình 2D-CA.
Láng giềng Moore bao gồm tất cả các ô trực giao hoặc đường chéo liền kề với khu vực quan tâm Phạm vi của láng giềng Moore được xác định cụ thể trong tài liệu [7].
Láng giềng Moore được mô tả cho các phạm vi r = 1 và r = 2 như trong hình 2.1 Số ô láng giềng Moore trong phạm vi r được tính theo công thức (2r + 1)² Khi r ≥ 2, nó được coi là láng giềng Moore mở rộng.
Hình 2.1: A) Láng giềng Moore B) Láng giềng Moore mở rộng
Láng giềng của đối tƣợng đƣợc hình thành bởi chín ô gần nhất:
Có thể minh họa nhƣ hình sau:
Trong đó quá trình hàm dịch chuyển f: (Zc 9 )→ Zc là a ij (t+1) = f (a (t) i-1,j-1 ,a (t) i-1,j ,a (t) i-1,j+1 ,a (t) i,j-1 ,a (t) i,j ,a (t) i,j+1 ,a (t) i+1,j-1 ,a (t) i+1,j ,a (t) i+1,j+1 ,) hoặc tương đương a ij (t+1) = f(V ij (t) ), 0 ≤ i ≤ r – 1, 0 ≤ j ≤ s - 1 trong đó V (t) ij ⊂ (Zc) 9 là trạng thái của các ô ở thời điểm t
Ma trận C (t) đƣợc gọi là trạng thái tại thời điểm t của 2D-CA và C (0) là trạng thái ban đầu của CA Ngoài ra, {C (t) } 0 ≤ t ≤ k đƣợc gọi là sự phát triển k của 2D-
CA và C là tập hợp của tất cả cỏc trạng thỏi cú thể của 2D-CA do đú | C | = c r ã s
Khi số ô của 2D-CA hữu hạn, cần xem xét các điều kiện để xác định trạng thái của CA Cụ thể, điều kiện được xác định là: a(t)ij = a(t)uv nếu và chỉ nếu i ≡ u (mod r) và j ≡ v (mod s).
Các mô hình chuẩn của tự động tế bào (CA) cho rằng trạng thái của các ô tại thời điểm t + 1 phụ thuộc vào trạng thái của một số ô lân cận tại thời điểm t Tuy nhiên, có thể mở rộng khái niệm này với tự động tế bào bộ nhớ (MCA), trong đó trạng thái của tất cả các ô tại t + 1 không chỉ phụ thuộc vào một số ô tại t, mà còn vào các trạng thái của các nhóm ô khác ở các thời điểm trước đó (t - 1, t - 2, vv ) Một loại hình cụ thể của MCA là tự động tế bào bộ nhớ tuyến tính (LMCA), trong đó hàm dịch chuyển có dạng: a_ij(t+1) = (V_ij(t-m)) (mod c), với 0 ≤ i ≤ r - 1 và 0 ≤ j ≤ s - 1 Hàm f_l, 1 ≤ l ≤ k là hàm dịch chuyển của tự động tế bào tuyến tính 2D (2D-LCA) với bậc k.
Nếu hàm toàn cục định nghĩa 2D-CA với hàm dịch chuyển cục bộ fk được xác định là fk(Vij(t-k+1)) = aij(t-k+1), thì các LMCA được cho bởi (1) là một MCA 2D đảo ngược CA nghịch đảo là hàm dịch chuyển khác của LMCA, được biểu diễn bởi công thức aij(t+1) = (Vij(t-m)) + aij(t-k+1) (mod c).
QUÁ TRÌNH GIẤU TIN TRONG ẢNH DỰA VÀO AUTOMATA 2D-CA
Quá trình giấu tin automata 2D-CA gồm đầu vào, đầu ra và các bước thực hiện sau:
Đầu vào: Ảnh sử dụng để giấu tin
Đầu ra: Ảnh đã giấu tin
(Giả sử ảnh đầu vào có kích cỡ ảnh 512 x 512)
Sau khi áp dụng kỹ thuật nhồi thêm bit thông tin, thông điệp ban đầu M sẽ được chia thành n khối con M1, M2,…, Mn, với mỗi khối có chiều dài 1024 bit, tạo thành M = M1 || M2 || || Mn.
Trong bước 2, chúng ta xét trường hợp nếu n x 1024 lớn hơn (k x q)/2, trong đó k và q là kích cỡ của ảnh cần giấu tin Ví dụ, với ảnh kích thước 512 x 512, ta có 512 x 512/2 = 131072, tương đương với 128 x 1024 Đặt N là số lượng ảnh con, với N được tính bằng [n/128], trong đó [x] là hàm làm tròn số nguyên gần nhất với x Tiếp theo, chúng ta sẽ xem xét các ảnh C k, với k từ 1 đến N.
Bước 3 trong quá trình mã hóa là chuyển đổi thông tin mật M i thành H i bằng cách sử dụng công thức H i = M i XOR h (K || i), với i từ 1 đến n Ở đây, h là hàm băm một chiều SHA có đầu ra 1024 bit, và K là khóa bí mật được chia sẻ giữa người gửi và người nhận.
Xét automata 2D-CA khối kích cỡ 3x3, r = 2 và láng giềng Moore (hình 2.1 A) Tổng số ô láng giềng và ô trung tâm bằng 9 Giá trị trung tâm R thay đổi
- Bước 6: lặp row từ 1 đến 512
- Bước 7: lặp col từ 1 đến 512
B [ row] [col ] = LSB của ảnh C k [ row] [col ] ;
Kết thúc vòng lặp (Bước 7)
Kết thúc vòng lặp (Bước 6)
- Bước 8: lặp row từ 1 đến 512
- Bước 9: lặp col từ 1 đến 512
- Bước 12 : Sử dụng 2D-CA quy tắc 341 kiểm tra tính chẵn lẻ bit 1 của khối B[p] [q] kích cỡ 3x3
Kết thúc vòng lặp (Bước 11)
Kết thúc vòng lặp (Bước 10)
- Bước 13 : Cập nhật R sử dụng bảng 3.1 và thay thế đơn vị trung tâm của R
- Bước 14 : Cập nhật giá trị pixel ảnh gốc sử dụng R đã cập nhật
- Bước 15 : Di chuyển trạng thái 2D-CA với col = col + 1
Kết thúc vòng lặp (Bước 9)
- Bước 16 : Di chuyển trạng thái 2D-CA với row = row + 2
Kết thúc vòng lặp (Bước 8)
- Bước 17 : Kết thúc vòng lặp (Bước 5)
Bảng 3.1: Quy tắc cập nhật điểm ảnh trung tâm sử dụng 2D-CA
Lẻ Thay đổi Không thay đổi
Chẵn Không thay đổi Thay đổi
2.3.2 Ví dụ minh họa quá trình giấu tin
Chuỗi thông điệp cần giấu “xin chao cac ban”
Với chuỗi thông điệp cần giấu trên, chuyển chuỗi thông điệp giấu sang dạng nhị phân ta nhƣ sau:
Sau khi đệm bit 0 vào chuỗi nhị phân M và có độ dài 1024 bit
Cho khóa bí mật K= khoa
Khóa K chuyển sang dạng nhị phân ta đƣợc:
Sử dụng hàm băm SHA512 cho khóa K
SHA51212E902C9DEF20607592377D4AE94858DF31651077F60E BDD9E2B7FAF99064F321A2E7923C782542FACCE418715970C7AB55F684EE E18BCB770DF85A98B5EC
Tiếp tục chuyển khóa K đã đƣợc mã hóa kỹ thuật hàm băm SHA512 ta chuyển sang chuỗi nhị phân:
HH = M XOR MMi ta đƣợc chuỗi bit mã hóa:
0010001101010100010101000011 Ảnh đầu vào đƣợc chia thành các khối con có kích cỡ 3x3 Xét khối ma trận con đầu tiên: khoi Tách lsb của khối đó lsb =
Sử dụng 2D-CA quy tắc 341 kiểm tra tính chẵn lẻ bit 1 của khối parity = 2
Xét bit thông điệp giấu đầu tiên và khối ma trận con đầu tiên, sử dụng bảng 3.1 để xác định thay đổi bit trung tâm của từng khối ma trận con 3x3 Với giá trị bit mật là 0, tính chẵn lẻ của bit 1 của khối 2D-CA theo quy tắc 341 cho kết quả chẵn, do đó giữ nguyên giá trị bit trung tâm của khối Kết quả là ma trận ảnh sau khi giấu tin: khối 108, 181, 177.
Quá trình tách tin automata 2D-CA gồm đầu vào, đầu ra và các bước thực hiện sau:
Đầu vào: Ảnh giấu tin
Xét từng ảnh con đã giấu tin S k và khóa bí mật đƣợc chia sẻ K
- Bước 2: Xét automata 2D-CA khối kích cỡ 3x3, r = 2 và láng giềng Moore (hình 2.1 A) Tổng số ô láng giềng và ô trung tâm bằng 9
- Bước 3: lặp row từ 1 đến 512
- Bước 4: lặp col từ 1 đến 512
B [row] [col] = LSB của ảnh S k [row] [col];
Kết thúc vòng lặp (Bước 4)
Kết thúc vòng lặp (Bước 3)
- Bước 5: lặp row từ 1 đến 512
- Bước 6: lặp col từ 1 đến 512
- Bước 9: Sử dụng 2D-CA quy tắc 341 kiểm tra tính chẵn lẻ bit 1 của khối B[p] [q] kích cỡ 3x3
Kết thúc vòng lặp (Bước 8)
Kết thúc vòng lặp (Bước 7)
- Bước 10: Nếu tính chẵn lẻ của số bit 1 trong H i bằng 0 thì tách được bit 0 ngƣợc lại tách đƣợc bit 1, i từ 1 đến n
- Bước 11: Di chuyển trạng thái 2D-CA với col = col + 1 trong ảnh giấu tin Kết thúc vòng lặp (Bước 6)
- Bước 12: Di chuyển trạng thái 2D-CA với row = row + 2
Kết thúc vòng lặp (Bước 5)
- Bước 13: Để nhận được thông điệp M i = H i XOR h (K || i) với i từ 1 đến n
Để khôi phục thông điệp M, người nhận cần loại bỏ các bit đệm thấp hơn từ các khối cuối cùng của M n, trong đó số bit đệm được xác định bởi 11 bit quan trọng nhất của M n.
- Bước 15: Kết thúc vòng lặp (Bước 1)
2.3.4 Ví dụ minh họa quá trình tách tin Ảnh giấu tin đƣợc chia thành các khối con có kích cỡ 3x3 khoi Tách lsb của khối đó lsb =
Sử dụng 2D -CA quy tắc 341 kiểm tra tính chẵn lẻ bit 1 của khối parity = 2
Tính mod(parity,2) khối bằng 0 thì ta lưu trữ bit đó tạo thành chuỗi bit mã hóa tách ở dạng nhị phân
Chia sẻ khóa mật K = khoa
Khóa chuyển sang dạng nhị phân ta nhƣ sau:
Sử dụng hàm băm SHA512 cho khóa K
SHA51212E902C9DEF20607592377D4AE94858DF31651077F60E BDD9E2B7FAF99064F321A2E7923C782542FACCE418715970C7AB55F684EE E18BCB770DF85A98B5EC
Tiếp tục chuyển khóa K đã đƣợc mã hóa kỹ thuật hàm băm SHA512 ta chuyển sang chuỗi nhị phân:
M = HH XOR MMi ta đƣợc chuỗi thông điệp giấu ở dạng nhị phân:
Chuyển chuỗi nhị phân sang văn bản ta nhận đƣợc thông điệp giấu ban đầu:
CÀI ĐẶT THỬ NGHIỆM
MÔI TRƯỜNG CÀI ĐẶT
Ngôn ngữ cài đặt, môi trường soạn thảo và chạy chương trình được thực hiện trên ngôn ngữ lập trình Matlab 7.8
Hệ điều hành Window XP và môi trường NetFarme Work 2.0.
GIAO DIỆN CHƯƠNG TRÌNH
Hình 3.1 Giao diện chính của chương trình
Từ menu chọn “Giấu tin” sẽ gọi đến giao diện giấu tin hình 3.2
Giao diện giấu tin cho phép người dùng ẩn thông tin vào ảnh bằng kỹ thuật automata 2D-CA Để bắt đầu, người dùng chỉ cần nhấn nút “Chọn ảnh” để mở hộp thoại và chọn ảnh cấp xám mà mình muốn sử dụng cho việc giấu tin.
Hình 3.3 Chọn ảnh để giấu tin
Để giấu thông điệp vào ảnh, người dùng có thể nhập trực tiếp nội dung vào ô "Nhập thông điệp" hoặc chọn tệp tin thông điệp bằng cách nhấn nút "Thông điệp" Sau đó, cần nhập khóa cho chương trình để thực hiện việc giấu tin, như minh họa trong hình 3.4.
Hình 3.4 Nhập thông điệp giấu và nhập khóa
Để thực hiện quá trình giấu tin bằng phương pháp Automata 2D-CA, người dùng cần chọn nút “Thực hiện” Kết quả sẽ hiển thị giá trị băm khóa cùng với giá trị mã hóa thông điệp được giấu vào ảnh, như minh họa trong hình 3.5.
Hình 3.5 Thực hiện giấu tin trong ảnh
Tiếp theo ta sẽ nhập tên và chọn nơi lưu ảnh kết quả bằng cách kích vào nút
Hình 3.6 Chọn lưu ảnh kết quả
Khi lưu ảnh giấu xong ta chọn nút “Thoát” để kết thúc chương trình giấu tin
Từ menu chọn “Tách tin” trên giao diện chính gọi ra giao diện tách tin hình 3.7
Hình 3.7 Giao diện tách tin Đây là giao diện sẽ lấy ảnh đã giấu thông tin để xử lý tách tin lấy ra dữ liệu đã giấu trong ảnh
Thực hiện mở ảnh giấu tin để tách thông tin đã giấu bằng cách chọn nút
Hình 3.8 Chọn ảnh để tách tin
Sau khi tải lên ảnh chứa thông tin ẩn, bạn cần chọn nút “Thực hiện tách tin” để tiến hành tách chuỗi thông điệp mã hóa Kết quả thu được sẽ là thông điệp mã hóa được giấu trong ảnh dưới dạng nhị phân, như minh họa trong hình 3.9.
Hình 3.9 Tách thông điệp giấu
Ta chọn nút “Khôi phục thông điệp ban đầu” để lấy thông điệp giấu và đƣa ra kết quả nhƣ hình 3.11
Hình 3.11 Khôi phục lại thông điệp ban đầu
Chọn nút “Thoát” để kết thúc chương trình tách tin
Từ menu chọn “PSNR” trên giao diện chính gọi ra giao diện đánh giá ảnh PSNR hình 3.12
Hình 3.12 Giao diện đánh giá ảnh PSNR
Chọn nút “…” trong mục “Ảnh 1” để chọn ảnh trước khi giấu tin như hình 3.13
Chọn nút “…” trong mục “Ảnh 2” để chọn ảnh ảnh đã giấu tin nhƣ hình 3.14
Hình 3.14 Mở ảnh giấu thông tin
Sau khi đã chọn 2 ảnh để đánh giá với nhau, chọn nút “Đánh giá” để thực hiện quá trình đánh giá nhƣ hình 3.15
Kết quả sẽ cho ta giá trị đánh giá ảnh nếu :
Giá trị là 100 db thì 2 ảnh là 1 không có thay đổi
Giá trị lớn hơn 35 db nhỏ hơn 100 db thì ảnh có thay đổi nhƣng ở mức chấp nhận đƣợc
Giá trị nhỏ hơn 35 db thì ảnh biến dạng mắt thường có thể nhận thấy
Giá trị nhỏ hơn 20 db thì ảnh biến dạng không thể chấp nhận đƣợc
Hình 3.15 Giao diện sau khi đánh giá chất lượng ảnh
Chọn nút “Thoát” để kết thúc chương trình đánh giá ảnh bằng PSNR.
KẾT QUẢ THỬ NGHIỆM CHƯƠNG TRÌNH VÀ NHẬN XÉT
3.3.1 Kết quả thử nghiệm chương trình
Thực nghiệm này đánh giá độ PSNR của ảnh trước và sau khi giấu tin bằng kỹ thuật giấu tin Automata 2D-CA Tập ảnh thử nghiệm bao gồm 9 ảnh cấp xám chuẩn định dạng PNG kích thước 512x512 (tập A1) và 20 ảnh tải về từ mạng với kích thước khác nhau, được chuyển đổi thành ảnh cấp xám qua phần mềm MATLAB 7.8, được đặt tên từ ảnh1 đến ảnh20 (tập A2).
Tập ảnh xám chuẩn A1 trước khi giấu tin hình 4.16
Hình 3.16 Tập ảnh xám chuẩn A1 trước khi giấu tin
Tập ảnh xám ngẫu nhiên A2 trước khi giấu tin hình 3.17
Hình 3.17 Tập ảnh xám ngẫu nhiên A2 trước khi giấu tin
Chuỗi thông điệp giấu có nội dung: “do an tot nghiep truong dai hoc dan lap Hai Phong nganh cong nghe thong tin”
Tập ảnh xám chuẩn A1 sau khi giấu tin hình 3.18
Hình 3.18 Tập ảnh xám chuẩn A1 sau khi giấu tin
Tập ảnh xám ngẫu nhiên A2 sau khi giấu tin hình 4.19
Hình 3.19 Tập ảnh xám ngẫu nhiên A2 sau khi giấu tin
Table 3.1 presents the PSNR evaluation results after data embedding and the capacity for data hiding using image sets A1 and A2 The original images, such as "airplane.png" and "baboon.png," achieved PSNR values of 75.4213 dB and 75.4984 dB, respectively, both allowing for 29,127 bits of data to be hidden Other images, including "beer.png" and "lena.png," also demonstrated similar PSNR ratings, ranging from 75.0734 dB to 75.3966 dB, maintaining the same bit capacity In contrast, images from set A2, like "anh1.png" and "anh2.png," exhibited lower PSNR values of 72.3995 dB and 72.7355 dB, with data hiding capacities of 14,222 and 16,200 bits Notably, "anh3.png" achieved a high PSNR of 87.2034 dB, allowing for an impressive 455,111 bits to be concealed Overall, the analysis highlights the varying effectiveness of data hiding across different images, emphasizing the importance of PSNR in evaluating image quality and data capacity.
3.3.2 Nhận xét Đây là kỹ thuật giấu tin dù lƣợng thông tin cần giấu ít nhƣng khi giấu ta giấu trên toàn ảnh gốc (vì sử dụng lặp lại trên toàn ảnh) Đây là kỹ thuật giấu có thể coi là thủy vân ảnh nhằm mục đích toàn vẹn dữ liệu ảnh hoặc bảo vệ bản quyền
Kết quả thử nghiệm cho thấy rất khó để phân biệt ảnh có giấu tin và ảnh không giấu tin bằng mắt thường Giá trị PSNR trung bình đạt 74.05126dB, cao hơn nhiều so với mức trung bình 37dB của MOS Trong tập ảnh, giá trị PSNR thấp nhất là 67.0928dB và cao nhất là 87.2034dB Khả năng giấu bit của ảnh phụ thuộc vào kích cỡ của ảnh chứa tin.
Kỹ thuật giấu tin dựa trên automata 2D-CA đã cho thấy một số kết quả khả quan qua thử nghiệm, đặc biệt là về độ an toàn và bảo mật thông tin cao.
Không thay đổi ảnh hưởng đến thông tin giấu
Chất lƣợng ảnh giấu tin cao
Thời gian xử lý giấu tin phụ thuộc lớn vào dữ liệu đầu vào nhƣ kích thước ảnh gốc, thông điệp giấu lớn hay nhỏ
Thuật toán giấu tin 2D-CA cung cấp độ bảo mật cao với hai lớp bảo vệ: giấu tin trong ảnh (bảo mật vô hình) và bảo mật thông điệp Nếu thông tin bị tách ra, người dùng có thể mã hóa thông điệp bằng khóa K và áp dụng hàm băm SHA kết hợp với hàm XOR để tăng cường an toàn.