Xuất một lược đồ giấu tin mới trên ảnh chỉ số màu

Một phần của tài liệu Kỹ thuật thủy vân và mật mã học trong xác thực, bảo vệ bản quyền dữ liệu đa phương tiện (Trang 55)

Cũng giống như ảnh nhị phân, giấu tin trên ảnh ít màu (thường là các ảnh được tạo từ phần mềm máy tính) gặp phải những khó khăn nhất định. Do có nhiều vùng ảnh đồng màu và thường có sự khác biệt lớn về màu sắc giữa hai miền liền kề, nếu các lược đồ giấu tin không có chiến thuật hợp lý thì người dùng có thể dễ dàng phát hiện ra sự sai khác giữa ảnh gốc và ảnh chứa tin.

Để tiết kiệm bộ nhớ, ảnh ít màu thường được tổ chức lưu trữ ở dạng bảng màu (color table) và có tối đa 256 màu khác nhau. Khi đó, giá trị của dữ liệu ảnh là các chỉ số tham chiếu đến bảng màu. Nhằm cải thiện chất lượng ảnh, các lược đồ giấu tin trên loại ảnh này thường tìm cách thay thế một màu có chỉ số chẵn bằng màu gần nhất có chỉ số lẻ hoặc ngược lại [19,32,52,56]. Dựa trên ý tưởng này, phương pháp Ez Stego [52] sắp xếp lại các màu trong bảng màu theo cường độ sáng. Cường độ sáng của màu 𝒄 ứng với các thành phần 𝑅𝑐, 𝐺𝑐, 𝐵𝑐 được tính theo công thức:

𝑙𝑐 = 0.299𝑅𝑐+ 0.587𝐺𝑐+ 0.144𝐵𝑐

Sau khi sắp xếp lại bảng màu, các màu gần giống nhau sẽ có chỉ số màu lân cận. Tuy nhiên, theo Fridrich [32], hai màu khác nhau nhiều nhưng vẫn có thể có cường độ sáng bằng nhau, vì vậy Fridrich đã sử dụng khoảng cách Euclid để đánh giá sự khác biệt về màu ứng với hai chỉ số màu 𝑖 và 𝑗 theo công thức:

49

𝒅 = √(𝑅𝑖− 𝑅𝑗)2+ (𝐵𝑖− 𝐵𝑗)2+ (𝐺𝑖− 𝐺𝑗)2

trong đó, 𝑅𝑖, 𝐺𝑖, 𝐵𝑖và 𝑅𝑗, 𝐺𝑗, 𝐵𝑗 là giá trị các thành phần màu ứng với các màu có chỉ số 𝑖 và 𝑗 trong bảng màu. Khi cần thay đổi một màu có chỉ số chẵn (hay lẻ), Fridrich sẽ duyệt các màu có chỉ số lẻ (hay chẵn) để tìm màu gần nhất (theo khoảng cách Euclid) với màu cần thay đổi. Tuy nhiên, chiến thuật thay thế màu gần nhất của hai thuật toán [32,52] vẫn có thể tạo ra các màu mới cô lập, vì vậy ảnh chứa tin dễ bị phát hiện bằng hệ thống thị giác.

Nhằm cải thiện chất lượng ảnh chứa tin, trong [23] sử dụng một tập các khối ảnh mẫu có kích thước 3 × 3, các khối ảnh mẫu có sự ưu tiên khác nhau trong quá trình sử dụng. Mỗi khối ảnh mẫu được xác định bởi 8 điểm xung quanh điểm tâm của khối, trong đó chia làm hai phần liên thông, một phần gồm các điểm có màu giống nhau được gọi là màu mẫu, phần còn lại gồm các điểm có màu khác màu mẫu được gọi là màu tham dự (nominated color). Thuật toán sẽ tìm các khối ảnh kích thước

3 × 3 trùng với một mẫu trong tập mẫu và nhúng một bít bằng cách biến đổi màu của điểm tâm khối thành màu mẫu hoặc màu tham dự. Với cách thay đổi như vậy, thuật toán có hai tính chất quan trọng: điểm ảnh được chọn để thay đổi luôn nằm trên biên của hai miền có màu khác nhau và không xuất hiện màu mới. Nhờ vậy, thuật toán có tính che giấu cao. Tuy nhiên, khả năng nhúng tin của lược đồ [23] còn hạn chế như chính nhận xét của tác giả. Ý tưởng chọn điểm ảnh trên biên để thay đổi cũng đã được các tác giả trong [44,45,64] sử dụng nhằm cải thiện chất lượng ảnh, nhưng mỗi lược đồ lại đưa ra cách tiếp cận khác nhau.

Dựa trên tính chẵn lẻ của khối bít, phần này đề xuất lược đồ giấu tin mới trên ảnh chỉ số màu (ảnh ít màu). Theo đó, vùng dữ liệu của ảnh gốc được chia thành các khối cùng kích thước. Mỗi khối có thể nhúng được một bít và biến đổi nhiều nhất một phần tử. Khi cần biến đổi tính chẵn lẻ của khối, thuật toán sẽ thay thế giá trị của một phần tử bằng giá trị của phần tử liền kề nhưng khác tính chẵn lẻ. Với chiến thuật thay thế như vậy, lược đồ đề xuất cũng có hai tính chất giống như [23], do đó lược đồ cũng có tính che giấu cao. Nội dung lược đồ đề xuất gồm hai thuật toán nhúng tin và thuật toán trích tin được trình bày chi tiết dưới đây.

50

2.6.1.Thuật toán nhúng tin

Thuật toán chia ảnh 𝐼 thành các khối không chờm nhau cùng kích thước 𝑚 × 𝑛

và nhúng nhiều nhất một bít trên mỗi khối. Dưới đây trình bày thuật toán nhúng tin trên khối 𝐹 (𝐹 là ma trận nguyên cấp 𝑚 × 𝑛). Thuật toán sử dụng ma trận khóa nhị phân liên thông 𝐾 cấp 𝑚 × 𝑛 với 𝑆𝑈𝑀(𝐾) ≥ 3. Khi thực hiện thành công (có giấu tin), thuật toán sẽ cho ma trận 𝐺 thỏa mãn các điều kiện:

- 1 ≤ 𝑆𝑈𝑀(𝑀𝑂𝐷(𝐺)𝐾) ≤ 𝑆𝑈𝑀(𝐾) – 1 (2.8)

- 𝑆𝑈𝑀(𝑀𝑂𝐷(𝐺)𝐾)𝑚𝑜𝑑 2 = 𝑏 (2.9)

- 𝐹 và 𝐺 khác nhau tối đa một phần tử

Các điều kiện (2.8) và (2.9) được sử dụng để trích tin. Để nhúng bít 𝑏 vào 𝐹 và nhận được 𝐺 thuật toán thực hiện các bước:

Bước 1: Đặt 𝑠 = 𝑆𝑈𝑀(𝑀𝑂𝐷(𝐹) ⊗ 𝐾)

Bước 2: Kiểm tra điều kiện nhúng tin, xét hai trường hợp:

Nếu 𝑠 = 0 hoặc 𝑠 = 𝑆𝑈𝑀(𝐾), không nhúng tin và kết thúc thuật toán Nếu 1 ≤ 𝑠 ≤ 𝑆𝑈𝑀(𝐾) − 1, chuyển sang Bước 3

Bước 3: Xét hai khả năng:

Nếu 𝑠 𝑚𝑜𝑑 2 = 𝑏, đặt 𝐺 = 𝐹 và kết thúc thuật toán Nếu 𝑠 𝑚𝑜𝑑 2 ≠ 𝑏, chuyển sang Bước 4

Bước 4: Xây dựng tập ∏ theo công thức:

∏ = {

{(𝑖, 𝑗)| 𝐾𝑖,𝑗 = 1, 𝐹𝑖,𝑗 chẵn, ∃(u, v): (𝑢, 𝑣) ⇔ (𝑖, 𝑗)và 𝐹𝑢,𝑣#𝐹𝑖,𝑗}, nếu 𝑠 = 1 {(𝑖, 𝑗)|𝐾𝑖,𝑗 = 1, 𝐹𝑖,𝑗 lẻ, ∃(u, v): (u, v) ⇔ (i, j) và 𝐹𝑢,𝑣#𝐹𝑖,𝑗}, nếu 𝑠 = 𝑆𝑈𝑀(𝐾) − 1 {(𝑖, 𝑗)|𝐾𝑖,𝑗 = 1, ∃(u, v): (u, v) ⇔ (i, j) và 𝐹𝑢,𝑣#𝐹𝑖,𝑗}, nếu 2 ≤ 𝑠 ≤ 𝑆𝑈𝑀(𝐾) − 2

(trong mục 2.6.3 sẽ chứng minh tập ∏ luôn khác rỗng).

Bước 5: Biến đổi một phần tử của 𝐹 để nhận được 𝐺 như sau:

1) Chọn một phần tử (𝑖, 𝑗) ∈ Π

2) Chọn một phần tử (𝑢, 𝑣) sao cho: (𝑢, 𝑣)  (𝑖, 𝑗) và 𝐹𝑢,𝑣 # 𝐹𝑖,𝑗

3) Thay 𝐹𝑖,𝑗 bằng 𝐹𝑢,𝑣. Đặt 𝐺 = 𝐹, kết thúc thuật toán. (adsbygoogle = window.adsbygoogle || []).push({});

Nhận xét 2.3. Dễ dàng thấy rằng, khi thuật toán thực hiện thành công (kết thúc tại Bước 3 hoặc Bước 5), 𝐺 luôn thỏa mãn các điều kiện (2.8) và (2.9). Như vậy, để chứng minh tính đúng đắn của thuật toán 2.6.1chỉ cần chỉ ra Π ≠ Ø.

51

Nhận xét 2.4. Trong Bước 5 có thể có nhiều cách chọn cặp (𝑖, 𝑗) và (𝑢, 𝑣). Dưới đây sẽ trình bày phương pháp xác định (𝑖, 𝑗) và (𝑢, 𝑣) để thuật toán nhúng tin có thể đạt được tính che giấu cao hơn.

Đầu tiên chọn (𝑖, 𝑗) sao cho: (𝑖, 𝑗) ∈ ∏ và 𝑔(𝑖, 𝑗) = 𝑚𝑎𝑥 {𝑔(𝑝, 𝑞)| (𝑝, 𝑞) ∈ ∏}. Ở đây 𝑔(𝑝, 𝑞) là số phần tử trên ma trận 𝐹 liền kề với (𝑝, 𝑞) và có giá trị bằng 𝐹𝑝,𝑞.

Sau khi đã có (𝑖, 𝑗), ta xác định tập:

Ω𝑖,𝑗 = {(𝑝, 𝑞)| (𝑝, 𝑞) ⟺ (𝑖, 𝑗) và 𝐹𝑝,𝑞 # 𝐹𝑖,𝑗}

Với mỗi (𝑝, 𝑞) ∈ Ω𝑖,𝑗, gọi 𝑓(𝑝, 𝑞) là số phần tử trong 𝛺𝑖,𝑗 có giá trị bằng 𝐹𝑝,𝑞. Chọn

(𝑢, 𝑣) sao cho: (𝑢, 𝑣) ⇔ (𝑖, 𝑗) và 𝑓(𝑢, 𝑣) = 𝑚𝑎𝑥 {𝑓(𝑝, 𝑞)|(𝑝, 𝑞) ∈ 𝛺𝑖,𝑗}. Cách chọn này luôn đảm bảo hai yêu cầu:

- Phần tử được chọn để biến đổi nằm trên khóa 𝐾 và xung quanh nó có nhiều phần tử cùng giá trị với nó nhất.

- Giá trị thay thế khác tính chẵn lẻ với phần tử được chọn và xung quanh phần tử được chọn có nhiều phần tử cùng giá trị với giá trị thay thế.

Do phần tử được chọn (𝑖, 𝑗) nằm trên khóa 𝐾 (𝐾𝑖,𝑗 = 1),nên sau khi thay đổi giá trị 𝐹𝑖,𝑗 từ chẵn sang lẻ hoặc ngược lại thì 𝑆𝑈𝑀(𝑀𝑂𝐷(𝐹)𝐾) sẽ thay đổi tính chẵn lẻ, do đó ma trận 𝐺 luôn thỏa mãn điều kiện (2.9). Mặt khác, cách thay đổi màu tại điểm (𝑖, 𝑗) như vậy sẽ rất khó phát hiện vì xung quanh nó luôn có các điểm ảnh cùng màu với màu mới và nhiều khả năng tồn tại các điểm cùng màu với màu cũ của điểm (𝑖, 𝑗). Điều này làm tăng tính che giấu của thuật toán.

2.6.2. Thuật toán trích tin

Để trích bít 𝑏 từ ma trận 𝐺 thuật toán sử dụng ma trận nhị phân khóa 𝐾 dùng trong thuật toán nhúng tin. Từ các điều kiện (2.8) và (2.9) ta có thể xác định bít 𝑏

như sau:

Bước 1: Tính 𝑠′ = 𝑆𝑈𝑀(𝑀𝑂𝐷(𝐺)𝐾)

Bước 2: Trích bít 𝑏

Nếu𝑠′ = 0 hoặc 𝑠′ = 𝑆𝑈𝑀(𝐾), kết luận 𝐺 không chứa tin. Nếu trái lại, tính 𝑏 = 𝑠′ 𝑚𝑜𝑑 2.

52

Một phần của tài liệu Kỹ thuật thủy vân và mật mã học trong xác thực, bảo vệ bản quyền dữ liệu đa phương tiện (Trang 55)