Tải bản đầy đủ (.pdf) (5 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (285.05 KB, 5 trang )


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 ♦

×