Thuật toán giấu tin Chen-Pan-Tseng [16]

Một phần của tài liệu (LUẬN văn THẠC sĩ) tìm hiểu một số thuật toán giấu tin mật trong ảnh kỹ thuật số và xây dựng một thuật toán giấu tin mật​ (Trang 25)

3. Bố cục của luận văn

2.1.3 Thuật toán giấu tin Chen-Pan-Tseng [16]

Thuật toán do nhóm tác giả Yu-Yuan Chen, Hsiang-Kuang Pan và Yu-Chee Tseng khoa công nghệ thông tin và khoa học máy tính, trường đại học quốc gia Đài Loan đề xuất… Thuật toán sử dụng một ma trận khoá và ma trận trọng số để giấu thông tin, thuật toán đảm bảo được tốt an toàn thông tin và cũng giấu được nhiều thông tin trong ảnh bằng cách thay đổi nhiều nhất hai bit mỗi khối ảnh.

Một số khái niệm:

a) Khoá bí mật:

Khoá là một ma trận nhị phân có cùng kích thước m×n với kích thước của khối ảnh. Khoá được dùng một cách bí mật giữa người gửi và người nhận.

b) Ma trận trọng số cấp r:

Ma trận trọng số W cấp r là một ma trận số nguyên có kích thước bằng kích thước của khối ảnh m×n và thoả các điều kiện sau:

- W có các phần tử nằm trong khoảng giá trị (0..2r-1) với r cho trước thoả mãn điều kiện 2r < m*n.

- Mỗi một phần tử có giá trị từ 1..2r-1 xuất hiện ít nhất 1 lần.

Ví dụ: xây dựng một ma trận trọng số kích thước 4 × 4, ma trận này chứa các giá trị nằm trong trong khoảng 0 ..15 và mỗi giá trị từ 1 đến 23=7 xuất hiện ít nhất 1 lần. Một ví dụ ma trận trọng số W: 1 2 3 4 5 6 7 1 2 3 4 5 4 5 7 1 c) Phép đảo bít:

Phép đảo bít là một phép biến đổi trên các bit nhị phân. Đảo bit b tương đương với phép biến đổi thay b bởi 1-b, tức là nếu ban đầu b nhận giá trị 0 thì sau khi đảo nó sẽ nhận giá trị 1 và ngược lại, nếu ban đầu b có giá trị là 1 thì sau khi đảo nó sẽ mang giá trị 0.

d) Các phép toán trên ma trận dùng trong thuật toán: Phép toán XOR hai ma trận A⨁ B

Phép toán nhân hai ma trận A Λ B

Phép toán tính tổng giá trị trong ma trận SUM(X) Các phép toán này đều đã được nhắc lại ở phần trước.

Thuật toán giấu tin

Input:

F: Một ma trận ảnh gốc dùng để giấu thông tin. F được chia thành các khối Fi

mỗi ma trận điểm ảnh Fi có kích thước là mxn, để cho đơn giản ta giả sử F là bội của các F

K: Một ma trận khoá cấp 𝑚 × 𝑛; W: Một ma trận trọng số cấp 𝑚 × 𝑛;

r: Số lượng bit sẽ nhúng trong mỗi khối ảnh 𝑚 × 𝑛;

B: Lượng thông tin cần giấu gồm 𝑘 × 𝑟 bit, k sẽ là khối ảnh giấu; d: Độ lệch chuẩn trọng số.

Output:

Ảnh đích F’ chứa B, F’ được tạo từ các khối F’i. Mỗi F’i thu được từ khối Fi

tương ứng sau khi đã giấu r bit thông tin từ B.

Cách thực hiện:

Thuật toán sẽ thực hiện việc biến đổi mỗi Fi thành F’i sao cho luôn thỏa mãn điều kiện sau: SUM (F’i  K)  W)  b1 b2…br (mod 2r).

Trong đó, b1 b2…br là dạng biểu diễn của một số nhị phân tạo từ dãy r bit liên tiếp trong B. Mỗi Fi bị biến đổi nhiều nhất là 2 bit. Quá trình biến đổi gồm 4 bước sau đây:

Bước 1: Tính ma trận T = Fi  K Tính ma trận P = T  W Bước 2: Tính tổng Sum = SUM (P)

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) v (W [j, k] = 2r - w ^ T [j, k] =1)} Từ định nghĩa của tập Sw ta có: Sw’ = Sw.

Bước 4: Ta đặt d = (b1 b2…br) – SUM (P) (mod 2r).

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 thì giữ nguyên Fi Nếu d≠ 0

Trường hợp 1: Sd ≠ ∅ thì chọn một phần tử [j,k] bất kỳ thuộc tập Sd và đảo bit Fi[j,k] .

u=d;

v = 2r – u ; u = (u + d) mod 2r;

1. Chọn phần tử [j, k] bất kì thuộc Su và đảo bit Fi[j, k]; 2. Chọn phần tử [j, k] bất kì thuộc Sv và đảo bit Fi[j, k];

Quá trình tách tin:

Input:

F’ là ảnh đã được giấu dãy bit bí mật B K là ma trận khóa bí mật, kích thước 𝑚 × 𝑛. r là số lượng bit đã giấu ở mỗi khối

Ma trận trọng số W có kích thước 𝑚 × 𝑛

Output:

F là file ảnh chứa tin đã được giấu B là dãy bit đã giấu Quy trình

Cách thực hiện:

Bước 1:

Đọc header ảnh để biết các thông tin về ảnh; Đọc bảng mầu;

Đọc phần dữ liệu ảnh vào ma trận hai chiều M.

Bước 2: Chia ma trận điểm ảnh M thành các khối nhỏ F’i với kích thước 𝑚 × 𝑛. B ước 3: Với mỗi khối nhỏ F’i .Tính b= SUM (F’i  K)  W) mod 2r. Trong đó b là xâu nhị phân được tạo ra bởi r bit thông tin.

Ví dụ minh họa thuật toán

Giả sử ta cần giấu dãy bit M = 110001101011 vào ảnh F có kích thước 8x8 và một ma trận khóa K có kích thước 4x4, và một ma trận trọng số W kích thước 4x4 như hình vẽ. Trước hết chia ảnh F thành 4 khối nhỏ F1, F2, F3, F4, mỗi khối nhỏ có kích thước là 4x4 .

Ta chọn m = n = 4, r=3, ta dấu dãy bít M = 110001101011 vào trong ảnh F. Như vậy đoạn bít 110 giấu vào khối F1, đoạn bít 001 giấu vào khối F2, đoạn 101 giấu vào khối F3, đoạn 011 giấu vào khối F4.

Bước 1: Ta thực hiện phép toán XOR của Fi và K, ta được:

T1 T2 T3 T4 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 K F1 F2 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 F3 F4 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 W 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0

Bước 2: Tính P = (FiK) W

P1 P2

P3 P4

Bước 3: Với mỗi Ti ta xác định Siw với W= (1,2,3,4,5,6,7), i=1..4.

Các Siw được xác định như sau: nếu S’iw[j, k] = w thì ta có [j, k] = Siw. Các phần tử trong ma trận S’iw[j,k] được xác định như sau :

-S’iw[j, k]=W[j, k] nếu Ti[j, k] = 0; -S’iw[j, k]=23 -W[j, k] nếu Ti[j, k] = 1. S’1w S’2w S’3w S’4w 0 2 0 0 1 2 0 0 0 0 7 1 5 0 7 0 0 3 0 5 0 3 4 0 0 7 1 2 0 0 0 0 0 0 3 0 1 0 3 0 0 0 0 1 5 0 7 0 2 0 0 5 2 3 4 0 6 7 1 2 0 0 0 0 1 6 3 4 7 6 3 4 5 6 1 7 3 6 1 1 2 5 4 3 2 5 4 5 6 1 7 6 6 7 1 2 1 2 5 4 7 2 5 4 5 6 7 7 3 6 1 1 6 3 4 3 6 5 4 5 2 1 7 6 6 7 7 6

Trên khối S’1w ta thu được S1w (w = 1,2,3,4,5,6,7) như sau :

S11={[1,3],[4,2]}; S12 = {[3,1]}; S13 = {[1,3],[3,4]; S14 = {[1,4],[3,3]}; S15 = {[2,1],[3,2]}; S16 = {[1,2],[2,2],[4,1],[4,4]}; S17 = {[2,4],[4,3]}.

Trên khối S’2w ta thu được S2w (w = 1,2,3,4,5,6,7) như sau :

S21 = {[2,3],[2,4],[4,3]}; S22 = {[3,1],[4,4]}; S23 = {[1,3],[2,1]}; S24 = {[1,4],[3,3]}; S25={[3,2],[3,4]}; S26={[1,2],[2,2],[4,1]}; S27={[1,1],[4,2]}.

Trên khối S’3w ta thu được S3w (w = 1,2,3,4,5,6,7) như sau :

S31 = [1,1],[4,2}; S32 = {[1,2],[4,1]}; S33 = {[3,2],[3,4]}; S34 = {[1,4],[3,3]}; S35={[1,3],[2,1]}; S36={[2,2],[3,1],[4,4]}; S37={[2,3],[2,4],[4,3]}.

Trên khối S’4w ta thu được S4w (w = 1,2,3,4,5,6,7) như sau :

S41 = [2,3],[2,4}; S42 = {[1,2]}; S43 = {[2,1]}; S44 = {[1,4],[3,3]}; S45={[1,3],[3,2],[3,4]}; S46={[2,2],[3,1],[4,1],[4,4]}; S47={[1,1],[4,2],[4,3]}.

Bước 4: Thực hiện giấu thông tin vào mỗi khối: Khối F1: giấu đoạn bit 110: SUM(P1) = 28; d=(110) – SUM(P1) (mod 23) = 6 – 28 (mod 8) = 6 ≠ 0.

Vậy Sd = S6 = {[1,2],[2,2],[4,1],[4,4]}; Chọn một phần tử tùy ý để đảo bít ở đây ta chọn phần tử F1[2,2] để thực hiện đảo bít ta được F’

1. Khối F2: giấu đoạn bit 001: SUM(P2) = 22;

d=(001) – SUM(P2)(mod 23)=1 – 22(mod 8)=3. Vậy Sd = S3 = {[1,3],[2,1]}; Ta chọn phần tử F2[1,3] để thực hiện đảo bít ta được F’

2. Khối F3: giấu đoạn bit 101: SUM(P3) = 27;

d=(101) – SUM(P3)(mod 23)=5 – 27(mod 8)=6. Vậy Sd = S6 ={[2,2],[3,1],[4,4]}; Ta chọn phần tử F3[4,4] để thực hiện đảo bít ta được F’

3. Khối F4:giấu đoạn bit 011: SUM(P4) = 25; d=(011) – SUM(P4)(mod 23)=3 – 25(mod 8)=6.

Vậy Sd = S6 ={[2,2],[3,1],[4,1],[4,4]}; Ta chọn phần tử F4[4,1] để thực hiện đảo bít ta được F’

4.

Hình 2.3 Minh họa kết quả sau khi giấu tin theo thuật toán Chen-Pan-Tseng 2.2 Kỹ thuật phát hiện ảnh có giấu tin mật

Có nhiều kỹ thuật phát hiện ảnh có giấu thông tin. Trong đó có kỹ thuật phân tích theo thông kê là kỹ thuật sử dụng lý thuyết thông kê và thống kê toán sau khi xác định nghi vấn đặc trưng. Kỹ thuật này thường đưa ra độ tin cậy cao hơn và đặc biệt là cho các ảnh dữ liệu lớn. Trong chương này luận văn trình bày một số kỹ thuật phát hiện sự tồn tại của tin giấu theo hướng tiếp cận sử dụng lý thuyết xác suất thống kê.

2.2.1 Kỹ thuật phân tích cặp giá trị điểm ảnh. Khái niệm cơ bản Khái niệm cơ bản

Khái niệm về cặp giá trị điểm ảnh (PoV – Pairs of Values) được Pfitzmann và Westfeld đưa ra dựa trên phương pháp thống kê với đặc trưng biến đổi các bít ít quan trọng LSB trong quá trình giấu tin. Cho một ảnh I, gọi m là giá trị của điểm ảnh trên ảnh I. Nếu I là ảnh đa cấp xám 8 bít thì m  [0,255]. Nếu m chẵn (m=2i) thì sau phép lật bit giá trị của m là 2i+1, nếu m là lẻ (m=2i+1) thì sau phép lật bít giá trị của m là 2i. Như vậy, nếu một giá trị điểm ảnh ở trong một cặp thì sau khi giấu tin nó vẫn nằm trong một cặp có tính chẵn lẻ tương tự. Khi đó ta gọi PoV là

F’1 F’2 1 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 F’3 F’4

một cặp gồm hai giá trị điểm ảnh là (2i, 2i+1) và hai giá trị trong cặp này chỉ sai khác nhau ở bit thập nhất. [4]

Kỹ thuật PoVs còn được gọi là phương pháp thống kê X2 (khi bình phương – Chi_squared) và được áp dụng rất thành công trong việc phát hiện giấu tin mật LSB một cách tuần tự.

Có nhiều kỹ thuật PoV khác nhau, trong đó có kỹ thuật PoV3 là kỹ thuật kiểm tra mỗi tổng phần trăm các điểm ảnh từ 1% đến 100% và trả về xác suất của mỗi tập con các điểm ảnh trên ảnh kiểm tra, các điểm ảnh cũng được kiểm tra tuần tự, bắt đầu từ góc trái trên của ảnh. Thực tế PoV3 kiểm tra các nhóm điểm ảnh theo một trật tự nào đó. Mục dưới đây sẽ trình bày chi tiết kỹ thuật phát hiện tin giấu PoV3.

Thuật toán PoV3

Ý tưởng:

Với một ảnh I cần kiểm tra, trước hết phải thống kê tần số của các giá trị điểm ảnh chẵn, lẻ có mặt trong ảnh I. Ta xác định xác suất giấu tin của ảnh thông qua việc áp dụng tiêu chuẩn phân phối X2 đối với tần số của các cặp PoV.

Input:

Ảnh I cần kiểm tra

Output:

Xác suất giấu tin trong ảnh I

Cách thực hiện

Bước 1: Đọc vào ảnh I

Bước 2: Đọc dữ liệu ảnh vào một ma trận Mmxn

Bước 3: Khởi tạo giá trị ban đầu cho vecto X, Y For each k  [0,127]

X[k] = 0; Y[k] = 0; Bước 4:

Tính X[k] là tần số xuất hiện của các điểm ảnh có giá trị chẵn trên ảnh. Tính Y[k] là tần số xuất hiện của các điểm ảnh có giá trị lẻ trên ảnh.

Bước 5: Giả sử ta có N cặp PoV Với mọi k Nếu (X[k] + Y[k]) ≤ 4 thì X[k] = Y[k] = 0; N = N – 1; Bước 6: For each k Z[k] = (X[k] + Y[k]) / 2; Bước 7:

Giả sử ta có N cặp PoV, theo phương pháp thống kê Chi-squared với N - 1 bậc tự do ta tính:      127 0 k 2 2 1 N k Z k Z k X X ] [ ]) [ ] [ ( (1) Với       2 k Y k X k Z   Bước 8:

Tính p là xác suất của việc giấu tin        

1 N x 0 1 2 1 n 2 x 2 1 N 2 dx x e 2 1 N 2 1 1 p ) ( (2)

Phân tích thuật toán:

Thông thường đối với ảnh kiểm tra là một ảnh đa cấp xám 8 bit ta có 256 mức xám khác nhau. Thuật toán xác định các cặp phần tử là các giá trị mức xám chẵn, lẻ nên số lượng các cÆp chẵn lẻ không quá 128 cÆp (256/2). Ta xây dựng hai vector X(x0, x1,…, xk) và Y(y0, y1,…,yk) để thống kê tần số xuất hiện các điểm ảnh. Với 0≤ k ≤ 127. Mỗi phần tử trong X sẽ lưu tần số xuất hiện các điểm ảnh chẵn (X[k] = 2k), mỗi phần tử trong Y sẽ lưu trữ tần số xuất hiện các điểm ảnh lẻ (Y[k] = 2k+1). Ban đầu khởi tạo các phần tử trong X và trong Y đều bằng 0. Sau đó thuật toán thực hiện việc thống kê các giá trị mức xám có trong ảnh cần kiểm tra và tương ứng tăng giá trị

của các phần tử trong X và Y. Gọi Z là một vector chứa giá trị trung bình cộng của X[k] và Y[k]. Z[k] = (X[k] + Y[k])/2

Giả sử ta có N cặp PoV, có k mức chẵn lẻ 0 ≤ k ≤ 127. Nếu X[k] + Y[k] ≤ 4 thì X[k] = Y[k] = Z[k] và N = N-1.

Nếu ảnh có chứa thông tin ẩn thì X[k] = Z[k] đối với mọi k, 2 1 N X  ở phương trình (1) sẽ bé và do đó tích phân x N1   0 1 2 1 n 2 x 2 dx x

e sẽ bé và từ công thức (2) suy ra xác suất p sẽ lớn. Ngược lại khi 2

1 N

X  lớn thì xác suất p sẽ bé. Căn cứ vào sự lớn bé của xác suất p ta sẽ biết được ảnh có giấu tin hay không. Hơn nữa Westfeld và Pfitzmann còn khẳng định rằng nếu ít hơn 100% các điểm ảnh có chứa thông tin được giấu thì xác suất giấu tin sẽ giảm rõ rệt. [9]

2.2.2 Kỹ thuật phân tích đối ngẫu Khái niệm cơ bản Khái niệm cơ bản

Kỹ thuật đối ngẫu RS (Regular - Singularđược trình bày bởi Fridrich [11] để phát hiện giấu tin LSB nhúng trong ảnh màu và ảnh xám. Kỹ thuật này sử dụng số liệu thống kê kép nhạy cảm xuất phát từ mối tương quan của không gian trong hình ảnh. Các hình ảnh được chia thành các nhóm tách rời có hình dạng cố định. Trong mỗi nhóm, nhiễu được đo bằng giá trị tuyệt đối trung bình của sự khác biệt giữa các điểm ảnh lân cận.

Mỗi nhóm được phân loại theo nhóm chính quy hay nhóm đơn tùy thuộc vào việc các nhiễu điểm ảnh trong nhóm được tăng lên hay sau khi lật LSB của một tập hơn cố định các điểm ảnh trong nhóm sử dụng một mặt nạ.

Giả sử ta có một ảnh có M × N điểm ảnh. Tập P là tập tất cả các giá trị điểm ảnh có trên ảnh. Với ảnh đa cấp xám 8 – bit thì P = {0, 1,…., 255}.

Định nghĩa 1.2.1 Một hàm độ khác biệt f trên nhóm G = (𝑥1, 𝑥2, … , 𝑥𝑛) được định nghĩa như sau:

F (𝑥1, 𝑥2, … , 𝑥𝑛) =∑𝑛−1𝑖=1 |𝑥𝑖 − 𝑥𝑖+1|

Trong đó x1, x2 ,…, xn là giá trị các điểm ảnh trên nhóm G. Hàm ƒ được xem như là độ trơn của nhóm G.

Việc giấu tin LSB làm tăng nhiễu trên ảnh do đó ta hy vọng rằng giá trị của hàm f sẽ tăng (hoặc giảm) sau khi giấu tin LSB.

Định nghĩa 1.2.2 Việc giấu tin LSB sử dụng các kiểu hàm lật (flip) bit Fm(𝑥) với m = -1, 0, 1 và x là giá trị điểm ảnh. Cụ thể như sau:

F1: 0 ↔ 1, 2 ↔ 3, … , 254 ↔ 255.

F-1: -1 ↔ 0, 1 ↔ 2, 3 ↔ 4, … , 253 ↔ 254, 255 ↔ 256. Hay F-1(𝑥) = 𝐹(𝑥 + 1) – 1 với mọi 𝑥.

F0(𝑥) = 𝑥, Với ∀ 𝑥 ∈ 𝑃.

Định nghĩa 1.2.3 Phép lật bit F1 và F-1 được áp dụng lên nhóm G = (𝑥1, 𝑥2, 𝑥3, … , 𝑥𝑛) với một mặt nạ M (M là một n – bộ với các thành phần nhận giá trị -1, 0 hoặc 1) được định nghĩa như sau:

FM(G) = (FM(1)(x1), FM(2(x2), ….. , FM(n)(xn)) trong đó M(i) {-1, 0, 1}

Ví dụ: nếu các giá trị các điểm ảnh trong nhóm G là (39, 38, 40, 41) và cho mặt nạ M = (1, 0, 1, 0) thì FM(G) = (F1(39), F0(38), F1(40), F0(41)) = (38, 38, 41, 41). Định nghĩa 1.2.4 Cho một mặt nạ M, phép lật bit F, và hàm khoảng cách ƒ, một nhóm G các điểm ảnh được phân lớp vào một trong ba lớp như sau:

G ∈ R ⇔ƒ (FM (G)) > ƒ(G). G ∈ S ⇔ ƒ (FM (G)) < ƒ(G). G ∈ U ⇔ ƒ (FM (G)) = ƒ(G).

Trong đó R gọi là các nhóm chính quy (Regular), S là các nhóm đơn (Singular) và U là các nhóm không dùng được (Unusable).

Định nghĩa 1.2.5 Ta gọi:

RM là số tương đối các nhóm R với mặt nạ M không âm, M ∈ {0, 1}. SM là số tương đối các nhóm S với mặt nạ M không âm, M ∈ {0, 1}. R -M là số tương đối các nhóm R với mặt nạ M không dương, M ∈ {-1, 0}. S-M là số tương đối các nhóm S với mặt nạ M không dương, M ∈ {-1, 0}.

Ta có RM xấp xỉ bằng R-M, S-M xấp xỉ bằng S-M và được viết như sau: RM ≅ R-M và SM ≅ S-M

Việc giấu tin LSB tập trung vào sự khác biệt giữa RM và SM. Nếu có 50% điểm ảnh bị lật (khi mỗi điểm ảnh bị giấu bit thông điệp) ta thu được RM ≅ SM nhưng ảnh hưởng của việc giấu tin LSB đến R-M và S-M lại ngược lại. Dưới đây sẽ trình bày các bước

Một phần của tài liệu (LUẬN văn THẠC sĩ) tìm hiểu một số thuật toán giấu tin mật trong ảnh kỹ thuật số và xây dựng một thuật toán giấu tin mật​ (Trang 25)

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

(63 trang)