Sử dụng khó aK là ma trận khóa kích thước xn (ma trận nhị phân) dùng chung bởi người gửi và người nhận kết hợp với ma trận trọng số cấp r,

Một phần của tài liệu đồ án tốt nghiệp: Tìm hiều các kỹ thuật giấu tin trong ảnh (Trang 51 - 54)

F là một khối ảnh có kích thước 6x6 và K là một ảnh có kích thước 3x3.

3.2.3.4 Sử dụng khó aK là ma trận khóa kích thước xn (ma trận nhị phân) dùng chung bởi người gửi và người nhận kết hợp với ma trận trọng số cấp r,

dùng chung bởi người gửi và người nhận kết hợp với ma trận trọng số cấp r, kích thước m x n cũng được dùng chung bởi người gửi và người nhận (do Yu- Yuan Chen, Hsiang-KangPan and Yu-Chee Tseng đề xuất: gọi tắt là CPT) a.Thuật toán CPT

Với khối ảnh Fi, khóa K, ma trận trọng số W ta cần giấu r bit thông tin b1b2...br

vào Fi bằng cách đảo nhiều nhất 2 bit của Fi. Mục đích của ta là biến đổi Fi thành F’i

sao cho nó thỏa mãn yêu cầu sau:

Sum((F’i⊕ K) ⊗ W) ≡ b1b2...br (mod 2r). [6]

Mã hóa

Quá trình biến đổi gồm bốn bước sau:

Bước 1: tính ma trận T = Fi⊕ K.

Bước 2: tính Sum = Sum((Fi⊕ K) ⊗ W).

Bước 3: với ma trận T và với mọi w = 1,2,....,2r-1 ta xác định tập hợp Sw như sau:

Sw = {(j,k)|( W[j,k] = w Λ T[j,k] = 0) ∨ ( W[j,k] = 2r-w Λ T[j,k] = 1)} [6] Dễ nhận thấy Sw là tập hợp các tọa độ (j,k) của ma trận Fi[j,k] sao cho khi đảo bit Fi[j,k] thì Sum ở bước 2 tăng lên w. Thực vậy ta có:

+ Trường hợp 1: nếu W[j,k] = w và T[j,k] = 0

Khi đó đảo bit Fi[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 là tăng lên w theo mod 2r.

Quy ước rằng với mọi w’ ≡ w (mod 2r) trong đó w = 1,2,....,2r – 1, ta có Sw’ = Sw .

Ta cần thực hiện việc đảo bit trên Fi để được F’i sao cho tổng Sum tính được ở bước 2 khi thay Fi bởi F’i sẽ tăng lên d.

* Nếu d = 0: không thay đổi Fi . * Nếu d ≠ 0:

1. Chọn h bất kỳ thuộc tập {0,1,2,...,2r - 1}sao cho Shd ≠ ∅ và S-(h - 1)d

≠∅

2. Chọn (j,k) bất kỳ thuộc Shd và đảo bit Fi[j,k] (nếu là 0 thì đổi thành 1 và ngược lại, 1 đổi thành 0).

3. Chọn (j,k) bất kỳ thuộc S-(h - 1)d và đảo bit Fi[j,k].

Rõ ràng là để tăng Sum lên d, ta có thể chọn hai tập khác rỗng Shd và S-(h - 1)d. Thật vậy, hai tập hợp này chứa các vị trị bit trong khối Fi mà ta có thể đảo để tăng Sum lên hd và –(h - 1)d một cách tương ứng, kết quả cuối cùng là Sum sẽ tăng lên là hd + (-(h - 1)d) = d.

Tương tự như các tập Sw khác ta cũng có thể coi tập S0 là tập chứa các vị trí mà khi đảo những bit có vị trí này trên Fi thì sẽ tăng Sum lên 0. Kết quả này cũng đạt được nếu ta không đảo bất kỳ bit nào trên Fi. Vì vậy ta có thể coi S0 là tập trống và khi nói đảo 1 bit có vị trí thuộc tập S0 có nghĩa là không cần làm gì cả.

Giải mã

Khi nhận được bức ảnh kết quả, người nhận chỉ cần tách các bit ít đặc trưng nhất của từng điểm ảnh và chia thành từng khối F’i kích thước m x n.

Quá trình biến đổi gồm ba bước sau:

Bước 1: tính ma trận T = F’i⊕ K

Bước 2: tính tổng Sum = Sum((Fi⊕ K) ⊗ W)

Bước 3: sử dụng ma trận khóa và ma trận trọng số để tính giá trị của r bit thông tin được giấu trong mỗi khối ảnh bằng công thức sau:

(b1b2....br) = Sum((Fi⊕ K) ⊗ W) (mod 2r) Ví dụ 6: cho F gồm (F1 F2 F3 F4), K, W như sau:

F1 F20111011111001111 0111011111001111 0100111011011101 1001 F3 F4 Khóa K 101010101 Ma trận W 123456712

Giả sử ta cần giấu 8 bit thông tin B = 11011101 vào F. Chia F thành bốn khối kích thước 3x3 F1, F2, F3, F4, mỗi khối ta sẽ giấu r = 2 bit của B.

Thực hiện phép hoặc loại trừ Fi với K thu được Ti, nhân với W rồi tính tổng các phần tử ma trận kết quả:

Với F1 ta có S = Sum((Fi⊕ K) ⊗ W) = 14 và (S mod 2) = 2, để giấu 2 bit đầu tiên của B là 11 vào F1 ta cần biến đổi F1 sao cho Sum tăng lên 1. Vì (F1⊕ K)[3,3] = 0 và W[3,3] = 1, ta có thể sửa F1[3,3] để được F’i.

Với F2 ta có S = Sum((Fi ⊕ K) ⊗ W) = 9 và (S mod 4) = 1, để giấu 2 bit tiếp theo của B là 01 thì không cần phải thực hiện biến đổi trên F2.

Với F3 ta có S = Sum((Fi⊕ K) ⊗ W) = 13 và (S mod 4) = 1, để giấu 2 bit tiếp theo của B là 11 ta cần biến đổi sao cho Sum tăng lên 2. Vì (F3 ⊕ K)[1,2] = 0 và W[1,2] = 2, ta có thể sửa F3[1,2] để được F’3 .

Với F4 ta có S = Sum((Fi⊕ K) ⊗ W) = 22 và (S mod 4) = 2, để giấu 2 bit tiếp theo của B là 01 ta cần biến đổi sao cho Sum tăng lên 3 hoặc Sum giảm xuống 1, việc này không thể thực hiện bằng cách đảo 1 bit trong F4 mà phải cần tới 2 bit. Ta chọn

F1 K F2 K11000010111001000 11000010111001000 01000111001011101 00 F3 K F4 K Ma trận W 123456711 F’011101111100111 K F’2 K 010101 1100110111011011F’3 K F’4 K

đảo 2 bit F4[1,2] và F4[3,2]. Kết quả nhận được như ở hình 3.2.

Giải mã

Khi nhận được bức ảnh kết quả F’, người nhận tách các bit ít đặc trưng nhất của từng điểm ảnh và chia thành từng khối F’i kích thước 3 x 3.

Quá trình biến đổi gồm bốn bước sau:

Bước 1: tính ma trận T = F’i⊕ K

Bước 2: tính tổng Si= Sum = Sum((F’i⊕ K) ⊗ W) Ta có:

S1 = Sum((F’1⊕ K) ⊗ W) = 15 S2 = Sum((F’2⊕ K) ⊗ W) = 9 S3 = Sum((F’3⊕ K) ⊗ W) = 15 S4 = Sum((F’4⊕ K) ⊗ W) = 21

Bước 3: sử dụng ma trận khóa và ma trận trọng số để tính giá trị của r bit thông tin được giấu trong mỗi khối ảnh như sau:

+ (b1b2) =Sum((F’1⊕ K) ⊗ W) (mod 4) = 15 mod 4 = 3 ⇒ b1b2 = 11

Một phần của tài liệu đồ án tốt nghiệp: Tìm hiều các kỹ thuật giấu tin trong ảnh (Trang 51 - 54)

Tải bản đầy đủ (DOC)

(90 trang)
w