MỘT THUẬT TOÁN MỚI GIẤU TIN TRONG ẢNH NHỊ PHÂN SỬ DỤNG TÍNH CHẴN LẺ CỦA CÁC KHỐI BIT pptx

5 759 7
MỘT THUẬT TOÁN MỚI GIẤU TIN TRONG ẢNH NHỊ PHÂN SỬ DỤNG TÍNH CHẴN LẺ CỦA CÁC KHỐI BIT pptx

Đang tải... (xem toàn văn)

Thông tin tài liệu

MỘT THUẬT TOÁN MỚI GIẤU TIN TRONG ẢNH NHỊ PHÂN SỬ DỤNG TÍNH CHẴN LẺ CỦA CÁC KHỐI BIT ThS. NGUYỄN HIẾU CƯỜNG Bộ môn Công nghệ phần mềm Khoa Công nghệ thông tin Trường Đại học Giao thông Vận tải Tóm tắt: Báo cáo trình bày một thuật toán mới để giấu tin trong ảnh nhị phân sử dụng tính chẵn lẻ của các khối bit. Thuật toán có thể giấu được một bit vào mỗi khối ảnh bằng cách thay đổi nhiều nhất một phần tử của khối đó, trong khi tính bảo mật và chất lượng ảnh sau khi giấu tin của thuật toán này khá cao. Summary: The paper presents a new algorithm for hiding data in binary images using parity blocks. The algorithm can hide one bit in each image block by changing at most one bit in the block. It has also good quality in security and stego-images. I. ĐẶT VẤN ĐỀ Giấu tin là kỹ thuật nhằm giấu những thông tin số cần bảo mật vào trong một đối tượng dữ liệu số khác (gọi là môi trường giấu tin) sao cho sự biến đổi của môi trường sau khi đã giấu tin là rất khó nhận biết, do vậy đối phương sẽ không thể biết được trong một đối tượng nào đó có giấu thông tin mật hay không. Giấu tin là giải pháp hiệu quả cho nhiều vấn đề trong bảo mật thông tin hiện nay, như truyền tin bí mật, bảo vệ bản quyền, xác thực thông tin,… Môi trường giấu tin có thể là bất kỳ đối tượng dữ liệu đa phương tiện nào nhưng phổ biến nhất là ảnh số. CB- CNTT Các thuật toán giấu tin trong ảnh thường sử dụng ảnh màu hoặc ảnh đa mức xám làm môi trường giấu tin, do chúng có môi trường “dày” và vì thế lượng tin có thể giấu được lớn và tính che giấu cao. Giấu tin trong ảnh nhị phân là một thách thức lớn hơn, vì không như các loại ảnh trên, môi trường giấu tin trong ảnh nhị phân rất “thưa”, mỗi điểm ảnh của nó chỉ được thể hiện bởi một bit nên sẽ rất dễ bị phát hiện khi có bất kỳ sự biến đổi nào [2, 3, 4]. Trong thời gian gần đây nhóm tác giả Venkatesan ở trường Đại học kỹ thuật Rangasamy đã đề xuất một thuật toán giấu tin trong ảnh nhị phân [1]. Thuật toán này sử dụng kỹ thuật giấu tin dựa trên tính chẵn lẻ của các khối bit 3×3, mỗi khối giấu được một bit bằng cách thay đổi tối đa một phần tử trong khối đó. Thuật toán sử dụng một kỹ thuật chọn bit để thay đổi sao cho ảnh sau khi giấu tin ít bị ảnh hưởng nhất. Tuy nhiên thuật toán trong [1] có độ bảo mật thấp, tức là trong trường hợp đối phương biết một bức ảnh có giấu tin bằng thuật toán này thì sẽ dễ dàng trích rút được thông tin đã giấu. Trong báo cáo này sẽ trình bày một thuật toán mới, cải tiến từ thuật toán trong [1], cũng dựa trên tính chẵn lẻ của các khối bit, nhưng có sử dụng thêm một ma trận khóa để tăng cường tính bảo mật cho thuật toán giấu tin. Khi nhận được ảnh có tin giấu, người nhận cần phải có thêm ma trận khóa mới có thể trích rút được thông tin. Khối bit được sử dụng không chỉ cố định là 3×3 mà có thể là m×n bất kỳ. Các tham số m và n cũng là những yếu tố để tăng thêm tính bảo mật, đồng thời có thể lựa chọn linh hoạt các giá trị của chúng để tăng chất lượng ảnh sau khi giấu tin. Nếu lượng tin cần giấu nhỏ so với ảnh gốc thì có thể điều chỉnh tăng giá trị m và n lên sao cho tin giấu được trải đều trên toàn ảnh, thay vì chỉ tập trung vào một phần nhỏ phía trên ảnh, do đó mật độ các bit phải thay đổi sẽ thấp, nên tính che giấu của ảnh sẽ cao hơn. Ngoài ra chất lượng ảnh sau khi giấu còn được nâng cao hơn do trong thuật toán mới này, những khối toàn màu đen hoặc toàn màu trắng sẽ không được sử dụng để giấu tin. II. MỘT SỐ ĐỊNH NGHĨA Định nghĩa 1. Phép toán ^ là phép AND từng phần tử của hai ma trận cùng cấp. Với A, B là các ma trận cùng cấp m×n, ta có C = A^B cũng là ma trận cấp m×n trong đó C[j,k] = A[j,k] AND B[j,k], với j = 1, 2, …, m, k = 1, 2, …, n. Định nghĩa 2. Phép toán SUM(F) tính tổng các phần tử của ma trận F. Định nghĩa 3. Phần tử láng giềng của phần tử F[j,k] là phần tử F[u,v] thỏa mãn các điều kiện: ⎪ ⎩ ⎪ ⎨ ⎧ <− <− ≤−+−≤ 2kv 2ju 2kvju1 Định nghĩa 4. Ma trận láng giềng của ma trận F cấp m×n là ma trận N cấp m×n trong đó N[j,k] là số phần tử láng giềng thuộc khối F của F[j,k] mà có giá trị khác với F[j,k]. CB-CNTT Ví dụ: Nếu F = thì N = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 100 100 111 ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 220 252 122 III. NỘI DUNG THUẬT TOÁN Dữ liệu vào: + F: Ảnh nhị phân được dùng để giấu tin + m và n: Kích thước của khối con Fi của F + K: Ma trận nhị phân cấp m×n với các giá trị được lựa chọn ngẫu nhiên + B: Dãy bit cần giấu vào F F là một ma trận nhị phân và được phân hoạch thành các khối Fi cấp m×n. Mỗi khối Fi sẽ được sử dụng để giấu một bit b của B bằng cách thay đổi nhiều nhất một phần tử trong Fi. Ma trận K là khoá bí mật, được thỏa thuận giữa người gửi và người nhận. Người gửi sử dụng K trong quá trình giấu tin và người nhận sau khi có ảnh F’ chứa tin giấu cần phải có thêm K để có thể khôi phục lại thông tin đã giấu. Dữ liệu ra: + F’: Ảnh nhị phân chứa dãy bit B, trong đó mỗi khối F’i cấp m×n là một phân hoạch của F’ giấu một bit b của B và F’i khác Fi nhiều nhất là một bit. Thuật toán thực hiện giấu từng bit b của B tuần tự vào mỗi khối Fi của F theo các bước sau: Bước 1: + Tính SUM(Fi) + Nếu SUM(Fi) = 0 hoặc SUM(Fi) = mn thì bỏ qua không giấu tin vào khối Fi này, chuyển sang xét khối Fi tiếp theo. + Nếu 0 < SUM(Fi) < mn thì chuyển sang bước 2 để giấu tin. Việc giấu tin vào Fi thực chất là biến đổi Fi thành F’i sao cho thỏa mãn một bất biến nào đó. Bất biến này cũng chính là dấu hiệu để có thể khôi phục lại thông tin đã giấu. Trong thuật toán này bất biến cần đạt được là SUM(F’i ^ K) = b (mod 2), nói cách khác b phải có cùng tính chẵn lẻ với SUM(F’i ^ K). Bước 2: + Tính S = SUM(Fi ^ K) + Nếu S = b (mod 2) thì đã đạt bất biến, do đó trường hợp này giấu được một bit vào Fi mà không cần phải biến đổi Fi. + Nếu S ≠ b (mod 2) thì cần phải biến đổi Fi sao cho đạt được bất biến. Để làm việc này chỉ cần thay đổi một bit trong Fi sao cho tính chẵn lẻ của S thay đổi là được. Đây là trường hợp giấu một bit vào Fi bằng cách thay đổi một phần tử trong Fi. CB- CNTT Tuy nhiên qua thử nghiệm thấy rằng với kỹ thuật thay đổi bit ngẫu nhiên, tức là sử dụng mọi khối Fi để giấu tin và trong trường hợp cần thay đổi một phần tử trong Fi lại thay đổi một phần tử bất kỳ miễn sao đạt được bất biến thì chất lượng ảnh sau khi giấu sẽ không được tốt, xuất hiện khá nhiều điểm bất thường. Do đó một vấn đề được đặt ra là cần một kỹ thuật thay đổi bit có chọn lọc: xác định đúng các khối Fi để giấu tin và vị trí phần tử cần thay đổi trong Fi sao cho ảnh ít bị ảnh hưởng nhất. Trong bước 1, để tránh giấu vào các khối toàn màu đen hoặc toàn màu trắng, ta đã đưa ra điều kiện chỉ giấu vào các khối Fi thỏa mãn 0 < SUM(Fi) < mn. Trong bước 2 này, ở trường hợp giấu bit b mà cần phải thay đổi một phần tử của khối Fi thì ta không thay đổi ngay một phần tử bất kỳ mà chuyển sang bước 3 để xác định phần tử thích hợp nhất. Bước 3: + Xây dựng ma trận láng giềng Ni của ma trận Fi + Xác định phần tử Ni[j,k] có giá trị lớn nhất trong ma trận Ni mà có K[j,k] = 1 + Thay đổi phần tử Fi[j,k] Với tính chất của ma trận láng giềng thì rõ ràng nếu Ni[j,k] có giá trị lớn nhất và K[j,k] = 1 thì sau khi thay đổi Fi[j,k] ta sẽ nhận được F’i thỏa mãn bất biến và F’i[j,k] có nhiều phần tử láng giềng giống nó nhất, do đó sẽ hạn chế các điểm bất thường và nâng cao được chất lượng ảnh sau khi giấu tin. Ví dụ: Nếu Fi = Thì Ni = Chọn K = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 100 100 111 220 252 122 ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 001 110 011 Giả sử bit cần giấu vào Fi là bit 0. Vì SUM(Fi) = 5 thỏa mãn 0 < SUM(Fi) < 9 nên có thể sử dụng Fi để giấu tin. Vì SUM(Fi ^ K) = 3 khác tính chẵn lẻ với 0 nên để giấu được bit 0 vào Fi cần phải thay đổi một phần tử trong Fi. Do Ni[2,2] có giá trị lớn nhất và K[2,2] = 1 nên phần tử được chọn để thay đổi là Fi[2,2]. Kết quả sau khi giấu bit 0 vào Fi, có F’i = . ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ 100 110 111 Nhận xét: Việc lựa chọn khóa K là hoàn toàn ngẫu nhiên, do đó số khả năng lựa chọn có thể lên đến 2mn. Khi K càng có nhiều bit 0 thì xác suất để các phần tử Ni[j,k] có giá trị lớn nhất trong ma trận láng giềng mà có K[j,k] = 1 càng nhỏ, vì thế sẽ hạn chế khả năng lựa chọn phần tử tốt nhất để thay đổi. Tất nhiên, nếu K gồm toàn bit 0 thì ta không thể sử dụng nó trong thuật toán này để giấu tin được. Để khôi phục lại tin giấu: CB-CNTT Thuật toán này có thể khôi phục lại thông tin đã giấu mà không cần có ảnh gốc. Để khôi phục thông tin cần: ảnh nhị phân F’ có chứa tin giấu và ma trận khóa K cấp m×n. Qui trình khôi phục tin được thực hiện ngược với qui trình giấu tin, theo các bước: + Phân hoạch F’ thành các khối F’i cấp m×n, sau đó thực hiện tuần tự trên các khối F’i các công việc sau: + Tính SUM(F’i) + Nếu SUM(F’i) = 0 hoặc SUM(F’i) = mn thì chuyển sang khối F’i tiếp theo vì trong khối F’i này không có tin giấu. + Nếu 0 < SUM(F’i) < mn thì chứng tỏ trong khối F’i này có tin giấu, và ta cần khôi phục lại bit thông tin này. Tính giá trị b = SUM(F’i ^ K) mod 2, và b chính là bit đã được giấu trong F’i. IV. THỬ NGHIỆM Chương trình thử nghiệm giấu một ảnh nhị phân logo.bmp (hình 1) có kích thước 54×54 vào trong một ảnh nhị phân cachep.bmp (hình 2) kích thước 210×210, với kích cỡ các phân hoạch trên ảnh gốc là 3×3. Kết quả thử nghiệm giấu tin được thể hiện trong các hình 3, 4 và 5. logo.bmp cachep.bmp cachep_ngaunhien.bmp Hình 1. Ảnh cần giấuHình Hình 2. Ảnh gốc trước khi giấu tin Hình 3. Ảnh sau khi giấu logo.bmp bằng kỹ thuật thay đổi bit ngẫu nhiên cachep_chonloc1.bmp cachep_chonloc.bmp Hình 4. Ảnh sau khi giấu logo.bmp bằng kỹ thuật chọn khối để giấu – những khối toàn màu đen hoặc toàn màu trắng không được sử dụng để giấu tin Hình 5. Ảnh sau khi giấu logo.bmp bằng kỹ thuật chọn khối để giấu và chọn bit thích hợp trong khối để thay đổi với việc sử dụng ma trận láng giềng của khối CB- CNTT V. KẾT LUẬN Báo cáo trình bày một thuật toán mới để giấu tin trong ảnh nhị phân. Thuật toán có thể giấu một bit vào mỗi khối ảnh m×n bằng cách thay đổi nhiều nhất một phần tử trong khối đó. Thuật toán sử dụng tính chẵn lẻ của các khối bit để xây dựng bất biến, sử dụng một ma trận khóa để tăng tính bảo mật và dùng kỹ thuật thay đổi bit có chọn lọc để nâng cao chất lượng ảnh sau khi giấu. Tài liệu tham khảo [1]. M. Venkatesan, P. Meenakshi Devi, K. Duraiswamy, K. Thiagarajah. A New Data Hiding Scheme with Quality Control for Binary Images Using Block Parity. 3rd International Symposium on Information Assurance and Security, IEEE, 2007. [2]. M. Wu, J. Lee. A Novel Data Embedding Method for Two-Color Fascimile Images. In Proceedings of International Symposium on Multimedia Information Processing. Chung-Li, Taiwan, R.O.C, 1998. [3]. C. Chan, C. Chang. A Survey of Information Hiding Schemes for Digital Images. IJCSES International Journal of Computer Sciences and Engineering Systems, Vol.1, No.3, July 2007. [4]. Phạm Văn Ất, Nguyễn Hiếu Cường, Đỗ Văn Tuấn. Giấu tin trong ảnh nhị phân và ứng dụng. Tạp chí Khoa học Giao thông vận tải, số 19, tháng 9 năm 2007 ♦ . một thuật toán mới để giấu tin trong ảnh nhị phân sử dụng tính chẵn lẻ của các khối bit. Thuật toán có thể giấu được một bit vào mỗi khối ảnh bằng cách thay đổi nhiều nhất một phần tử của khối. kỹ thuật Rangasamy đã đề xuất một thuật toán giấu tin trong ảnh nhị phân [1]. Thuật toán này sử dụng kỹ thuật giấu tin dựa trên tính chẵn lẻ của các khối bit 3×3, mỗi khối giấu được một bit. bày một thuật toán mới để giấu tin trong ảnh nhị phân. Thuật toán có thể giấu một bit vào mỗi khối ảnh m×n bằng cách thay đổi nhiều nhất một phần tử trong khối đó. Thuật toán sử dụng tính chẵn

Ngày đăng: 10/07/2014, 13:21

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan