Thuật toán PoV3

Một phần của tài liệu Tiểu luận môn phương pháp nghiên cứu khoa học trong tin học NGHIÊN CỨU KỸ THUẬT GIẤU THÔNG TIN VÀO TRONG ẢNH (Trang 52)

2.1. Ý tưởng

♦ Với một ảnh I cần kiểm tra, trước tiên ta 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 đối với tần số của các cặp PoV.

Output:

P: xác suất giấu tin trong ảnh I

2.2. Cách thức 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 Mm x n. 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ê Khi – bình phương vớiN – 1 bậc tự do ta tính χ 2 1 − N = ∑ = 127 0 k 2 ] [ ]) [ ] [ ( k Z k Z k X(1)

Bước 8: Tính P là xác suất của việc giấu tin

dx x e N N x N N 1 2 1 0 2 2 1 2 1 ) 2 1 ( 2 1 - 1 = P − − − − ∫ − − Γ χ (2)

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 phần tử chẵn, lẻ như vậy có không quá 256/2 = 128 phần tử. Ta xây dựng hai vecto X(x0, x1, …, xk), 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 tần số xuất hiện các điểm ảnh lẻ (Y[k] = 2k + 1) với 0 ≤ k ≤ 127.

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[k] và Y[k].

Giả sử rằng 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] = 0 và N = N – 1.

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

dx x e N x N 1 2 1 0 2 2 1 − − − ∫χ − sẽ bé và từ (2) suy ra xác suất p sẽ lớn.

Ngược lại thì χ 2N−1 sẽ lớn suy ra 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ẽ quyết định được ảnh có giấu tin hay không. Hơn nữa Wesfeld 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.

V. KỸ THUẬT PHÂN TÍCH ĐỐI NGẪU 1. Các khái niệm

Kỹ thuật đối ngẫu hay còn gọi là kỹ thuật RS (Regular – Singular) do Fridrich et.al. đưa ra. Phương pháp này thực hiện các thống kê về sự thay đổi của các nhóm chính quy (Regular) và nhóm đơn (Singular) trên ảnh để ước lượng độ dài thông điệp đã giấu một cách chính xác. Phương pháp này phù hợp với ảnh màu và ảnh đa cấp xám khi các thông điệp được giấu một cách ngẫu nhiên. Kỹ thuật RS cũng là một kỹ thuật được dựa trên lý thuyết xác suất thống kê,

Giả sử rằng ta có một ảnh có MxN đ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: Một hàm độ khác biệt f trên nhóm G = (x1, x2, …, xn) được định nghĩa như sau

F(x1, x2, …, xn) = ∑ − = 1 1 n i |xi – xi+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. (adsbygoogle = window.adsbygoogle || []).push({});

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

Định nghĩa 2:Việc giấu tin LSB sử dụng các kiểu hàm lật (flip) bit Fm(x) 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(x) = F(x+1) – 1 với mọi x

F0(x) = x, với ∀x ∈ P.

Định nghĩa 3: Phép lật bit F1 và F-1 được áp dụng lên nhóm G (x1, x2, x3, …., xn) 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 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 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 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-Mlại ngược

lại. Dưới đây sẽ trình bày các bước cụ thể của kỹ thuật RS trong đó có sử dụng đến các khái niệm và định nghĩa vừa trình bày ở trên.

2. Thuật toán RS (Regular – Singular)

2.1. Tư tưởng:

Kỹ thuật RS phân hoạch ảnh cần kiểm tra thành các nhóm điểm ảnh cố định. Mỗi nhóm đó lại được phân lớp vào các nhóm R hay S phụ thuộc vào sự khác biệt giữa các điểm ảnh trong nhóm bị tăng hoặc giảm sau phép lật bit LSB với mặt nạ M. Sau đó tính xác suất của việc giấu tin căn cứ vào số nhóm R, S đó.

Input

Ảnh I cần kiểm tra

n: số phần tử của một nhóm

Output

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

2.2. Cách thực hiện

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

Bước 2: Đọc giá trị điểm ảnh vào một ma trận AM × N. Bước 3: P = P ∪ {xi} với xi∈ [0, 255].

Bước 4: Chia ảnh thành M × N/n nhóm khác nhau. Mỗi nhóm n điểm ảnh.

Với mỗi nhóm G = (x1, x2, …, xn) ta thực hiện các bước sau: Bước 5: Tính hàm ƒ(G) ƒ(G) = ∑ − = 1 1 n i |xi – xi+1| (adsbygoogle = window.adsbygoogle || []).push({});

Bước 6: Cho mặt nạ M = {M(i)}i = 1, …, n với M(i) ∈ {-1, 0, 1}.

Tính FM(G) = (FM(1)(x1), FM(2)(x2), ….. , FM(n)(xn)) Bước 7: Phân lớp nhóm G ƒ (FM (G)) > ƒ(G) thì R = R ∪ G; ƒ (FM (G)) < ƒ(G) thì S = S ∪ G; ƒ (FM (G)) = ƒ(G) thì U = U ∪ G. Bước 8: Tính RM = số các nhóm R tương ứng với mặt nạ M, M ∈ {0, 1}. SM = số các nhóm S tương ứng với mặt nạ M, M ∈ {0, 1}. R-M = số các nhóm R tương ứng với mặt nạ M, M ∈ {-1, 0}. S-M = số các nhóm S tương ứng với mặt nạ M, M ∈ {-1, 0}. Bước 9:

Nếu |RM | = |SM | thì p =1

Ngược lại thực hiện các bước 9 đến bước 12 Bước 10: Tính các hệ số

d0 = RM(p/2) – SM (p/2);

d0 = RM(1 - p/2 )– SM (1 - p/2); d-0 = R-M (p/2) – S-M (p/2);

d-1 = R-M (1 - p/2) – S-M (1 - p/2); Bước 11: Tính xp là nghiệm của phương trình 2(d1 + d0) + (d-0 – d-1- d1- 3d0) xp + d0 – d-0. Bước 12: Tính ước lượng độ dài thông điệp p

P = xp / (xp - )

2.3. Phân tích thuật toán RS

Ban đầu phân hoạch MxN điểm ảnh thành (MxN/n) nhóm mỗi nhóm n điểm ảnh độc lập liền kề nhau. Thông thường chọn n = 4 (là các khối 2x2). Với P là tập tất cả các giá trị điểm ảnh. Với mỗi nhóm G chứa n giá trị điểm ảnh trên P. G = (x1, x2, …, xn). Ta sẽ phân lớp các nhóm G vào ba lớp R, S, U. Trước tiên, ta xác định hàm f(G) là tổng khoảng cách về sự khác biệt giữa các phần tử kề nhau trong G theo định nghĩa 1.

Tiếp theo với mỗi điểm ảnh xi (1 i n) của nhóm G, ta xác định hàm lật bit FM(i)(xi). Giá trị của hàm này phụ thuộc vào giá trị của M(i) tương ứng trong mặt nạ M. Nếu M(i) = 0 thì FM(i)(xi) = xi điều này nghĩa là không có sự thay đổi bit tại xi. Nếu M(i) = 1 và xi ≥ 0 thì FM(i)(xi) sẽ nhận giá trị xi +1 nếu xi là số chẵn, ngược lại sẽ nhận giá trị là xi-1 nếu xi là số lẻ. Nếu M(i) = 1 và xi ≥ -1, thì FM(i)(xi) sẽ nhận giá trị là xi+1 nếu xi là lẻ, ngược lại hàm sẽ nhận giá trị là xi-1 nếu xi là số chẵn. Với mỗi FM(i)(xi) với 1 i n có ta thu được FM(G) = (FM(1)(x1), FM(2)(x2), …, FM(n)(xn)).

Ở bước tiếp theo, với mặt nạ M = {M(i)}i = 1,…, n với M(i) {-1, 0, 1}, hàm f(G) và FM(G) đã thu được ở bước trước, ta phân lớp nhóm G thành các lớp R, S, U theo định nghĩa 2. Nếu nhóm G không có sự thay đổi giá trị của các phần tử kề nhau sau phép lật bit theo mặt nạ M (tương ứng M = {0}) thì G U. Nếu sự khác biệt giữa các phần tử kề nhau sau phép lật bit trên nhóm G theo mặt nạ M là lớn hơn sự khác biệt giữa các phần tử kề nhau trong nhóm G ban đầu thì G R, ngược lại G S.

Sau khi phân lớp các nhóm G, nếu sử dụng mặt nạ M với các phần tử có giá trị không âm (thuộc {0,1}) để lật bit, đếm số nhóm G R, gọi là RM, tương tự SM là số nhóm G S; nếu sử dụng mặt nạ M với các phần tử có giá trị không dương {-1,0} để lật bit, đếm số nhóm G R, gọi là R-M, tương tự S-M là số nhóm G S.

Nếu có một ảnh chứa tin ẩn (stego) với chiều dài thông điệp ẩn đã giấu là p (phần trăm các điểm ảnh) chưa được biết. Khởi tạo, độ đo của số các phần tử trong các nhóm R và S tương ứng là RM(p/2), R-M(p/2), SM(p/2), S-M(p/2). Giả sử thông điệp là một vecto bit ngẫu nhiên, trung bình chỉ một nửa các điểm ảnh sẽ bị lật bít thông qua việc giấu tin, nếu ta lật bít LSB của tất cả các điểm ảnh thì số các phần tử của nhóm R và S là RM(1 - p/2), SM(1- p/2), R-M(1-p/2), S-M(1- p/2).

* Độ chính xác của độ dài thông điệp đã được ước lượng

Có ba yếu tố chính ảnh hưởng đến độ chính xác của độ dài thông điệp đã được ước lượng đó là: độ lệch ban đầu, mức độ nhiễu hoặc chất lượng của ảnh mang tin và vị trí của các bit thông điệp trên ảnh.

a. Thứ nhất, độ lệch ban đầu:

Kỹ thuật RS có thể cho độ dài thông điệp khác 0 nhờ số chẵn các biến ngẫu nhiên trên ảnh gốc. Độ lệch ban đầu khác không có thể là một số dương hoặc âm và nó đặt ra một giới hạn cho độ chính xác có được của phương pháp RS. Người ta đã tiến hành kiểm tra với một cơ sở dữ liệu gồm 331 ảnh đa cấp xám JPEG và thu được một phân phối Gauss có độ lệch

chuẩn 0.5%. Số ảnh nhỏ hơn thì phải có số các biến cao hơn trong độ lệch ban đầu vì số lượng các nhóm R và S là nhỏ hơn. Các ảnh trung gian và các ảnh nhiễu có các biến lớn hơn trong các độ lệch ban đầu. Ngược lại, độ lệch lại rất thấp đối với các ảnh JPEG, các ảnh không được nén thu được qua các camera số, qua máy quét và các các ảnh đã qua bộ lọc xử lý ảnh. Các ảnh mầu cũng cho các biến lớn hơn trong độ lệch so với các ảnh đa cấp xám.

b. Thứ hai, mức độ nhiễu:

Với các ảnh có nhiều nhiễu, sự khác biệt giữa số các điểm ảnh R và S trên ảnh “cover” là nhỏ. Do vậy, các đường trên đồ thị RS giao nhau ở một góc nhỏ và độ chính xác của kỹ thuật RS giảm. Đối với ảnh chất lượng thấp, ảnh đã qua nén và các ảnh nhỏ cũng như vậy.

c. Thứ ba, vị trí các bít thông điệp trên ảnh:

Kỹ thuật RS chính xác hơn nếu các bit thông điệp được phân bố một cách rời rạc ngẫu nhiên trên ảnh.

KẾT LUẬN

Trong quá trình nghiên cứu đề tài này chúng tôi đã tìm hiểu và nghiên cứu dựa trên một số đề tài luận văn tốt nghiệp được công bố trên mạng internet.Qua quá trình nghiên cứu chúng tôi đã trình bày sơ bộ về sự phát triển của các kỹ thuật giấu tin, các khái niệm về giấu tin trong các môi trường đa phương tiện khác nhau. Trong đó đã đi sâu vào phân tích đánh giá các kỹ thuật giấu tin trong môi trường ảnh số như giấu tin trong khối bit sử dụng tính chẵn lẻ của tổng số bit 1 trong khối, giấu tin sử dụng ma trận khóa và ma trận trọng số.

Mỗi phương pháp đều có những ưu nhược điểm nhất định từ đó có thể ứng dụng vào thực tiển để giấu tin sao cho thông tin được đảm bảo về độ an toàn của tin giấu đồng thời cũng giấu được nhiều thông tin trong ảnh nhất có thể.

Người ta đã chứng minh được rằng: Nếu coi mỗi điểm của dữ liệu ảnh (ảnh màu hoặc ảnh đa cấp xám) là một pixel, mỗi pixel là một byte (8 bit) hoặc là một số tự nhiên từ 0 đến 255 thì để đảm bảo bí mật, số lượng các bit mà một thông điệp cần giấu so với tổng số các pixel ảnh không được vượt quá 12,5%. Nghĩa là một pixel ảnh không được giấu quá 1 bit dữ liệu mật.

Đồng thời chúng tôicũng đã nghiên cứu qua khái niệm cơ bản của thủy vân, đồng thời nghiên cứu đánh giá một số kỹ thuật thủy vân trên miền tần số của ảnh sử dụng phép biến đổi DCT.

Thông qua việc nghiên cứu một số kỹ thuật giấu tin mật trên ảnh, nhóm chúng tôi phần nào đã hiểu được về một số thuật toán giấu tin trong ảnh.

Phân tích đánh giá ưu nhược điểm của các kỹ thuật từ đó làm cơ sở cho việc nghiên cứu các hệ thống giấu tin mật trên ảnh và có thể phục vụ cho việc nghiên cứu sâu hơn sau này về các kỹ thuật giấu thông tin trong. Bên cạnh nghiên cứu thuật toán giấu tin trong ảnh nhóm chúng tôi cũng đã tìm hiểu và nghiên cứu vài thuật toán có khả năng phát hiện ảnh có giấu tin, đặc biệt là giấu tin mật. (adsbygoogle = window.adsbygoogle || []).push({});

Tuy nhiên đây là bài toán khó cần có nhiều thời gian hơn để nghiên cứu nên chúng tôi chỉ dừng lại ở phần nghiên cứu lý thuyết nhằm làm nền tảng để có thể phát triển thành luận văn tốt nghiệp.

Nghiên cứu tài liệu, hệ thống lại các vấn đề sau - Một số kỹ thuật giấu tin trong ảnh

- Một số khả năng phát hiện ảnh có giấu tin

Hướng phát triển

Báo cáo trình qua một số bài toán phát hiện tin giấu trong ảnh và một số kỹ thuật phát hiện tin giấu trong ảnh, tuy nhiêncũng còn có vài thuật toán khó hơn chưa đề cập tới như:

Kỹ thuật phân tích cặp mẫu SPA Kỹ thuật phân tích độ lệch chuẩn

Kỹ thuật thống kê – bình phương một bậc tự do

TÀI LIỆU THAM KHẢO

Luận văn thạc sĩ: NGHIÊN CỨU MỘT SỐ KHẢ NĂNG PHÁT HIỆN TIN GIẤU TRONG MÔI TRƯỜNG ẢNH - Mai Thanh Huyên – ĐHQG HÀ

Một phần của tài liệu Tiểu luận môn phương pháp nghiên cứu khoa học trong tin học NGHIÊN CỨU KỸ THUẬT GIẤU THÔNG TIN VÀO TRONG ẢNH (Trang 52)