2. Những đóng góp của luận văn
3.2.2. Giấu tin sử dụng phương pháp Module
Một môđun (phải) trên vành Zq (hay Zq - module) là một nhóm aben cộng M
với phần tử trung hòa là 0 và được trang bị phép nhân vô hướng, gán tương ứng mỗi cặp (m,k) thuộc M × Zq với một phần tử m.k thuộc M. Với Zq={0,1,..,q-1}, thỏa mãn một số tính chất mà ta sẽ được:
P1) m.0 = 0; m.1=m;
P2) m+n = n+m, với m,n thuộc M.
P3) m.(k+l) = m.k + m.l, với m thuộc M, k, l thuộc Zq.
Định nghĩa 1. Cho v là một số tự nhiên, v > 0, M là một Zq-module U⊆M- {0}, ta gọi U là một v-cơ sở của module M nếu với xM – {0}, x có thể được biểu diễn bởi một tổ hợp tuyến tính của nhiều nhất v phần tử thuộc U.
43
(Nghĩa là, tồn tại n phần tử u1,u2,..,un U, n≤v, n phần tửt1, t2,..., tn Zq sao cho
x = u1.t1+u2.t2+..+un.tn ).
Cho một ảnh G, ký hiệu CG là tập các mầu của G, CG = {Cp: p∈ G}, trong đó Cp là màu của điểm ảnh p.
Giả sử rằng chúng ta có thể xây dựng được hàm Val: CG Zq và một ánh xạ đa trị Next: CG CG nhằm thay đổi màu của các điểm ảnh p, thỏa mãn các điều kiện sau:
(2.1) c∈ CG, x ∈ Zq–{0}, tồn tại c’Next(c) thỏa mãn
Val (c’)=Val(c)+x (trong Zq) và c Next(c).
(2.2) Đối với ảnh màu c, c’∈ CG, c’ Next(c), c’ là một màu giống màu
c về mặt cảm quan màu sắc được phân biệt bởi mắt người (với ảnh nhị phân ta không đề cập đến điều kiện này).
Cho một v-cơ sở U ⊆ M-{0}, một khối F ={p1,p2,..,pN} gồm N điểm ảnh thuộc ảnh G, N ≥|U| (khi thực hiện giấu tin ta thường chọn khối F có số phần tử là |U|, khi đó tỷ lệ giấu tin đạt được sẽ là cao nhất), đặt S={1,2,..,N} và xây dựng một toàn ánh:
(2.3) h: SU, h được gọi là ánh xạ trọng số.
Với mỗi pi∈F, w=h(i) được gọi là trọng số của pi .
Với module M được xem như là tập dữ liệu mật, phần tiếp theo sẽ giới thiệu phương pháp giấu một phần tử bất kỳ d ∈ M vào khối F bằng cách thay đổi màu của nhiều nhất v phần tử thuộc F. Phương pháp giấu tin sử dụng một v-cơ sở U, với v
nhỏ, v=1 hay 2. Số màu có thể được thay đổi trong mỗi điểm ảnh là k-1=|Zq|-1, q thường chọn nhỏ để nâng cao chất lượng ảnh giấu tin. Số bit có thể giấu trong F là
44 3.2.3. Giấu tin sử dụng tập 1-cơ sở
Cho U ⊆ M-{0}, U là tập 1-cơ sở của M. A1. Giấu phần tử bí mật d vào F
Bước 1) Tính m = i∈S h(i).Val(pi), trong module M Bước 2) Trường hợp m = d: giữ nguyên F;
Trường hợp d m, tính a = d – m, ta có 0 ≠ a ∈ M
- Do U là 1-cơ sở của M do đó theo định nghĩa 1 sẽ tồn tại w ∈ U, t ∈ Zq– {0}, sao cho a = w.t, theo (2.3) h là một toàn ánh từ S vào U do đó ta luôn tìm được i ∈ S thỏa mãn h(i)=w, khi đó ta có h(i).t = a = d-m.
- Thay đổi màu pi thành pi’ Next(pi) thỏa mãn Val(pi’) = Val(pi)+t ( trong Zq ).
B1. Lấy lại phần tử bí mật d từ F
Tính u = i ∈S h(i).Val(pi) (trong M), u chính là giá trị mật đã được giấu vào F (u=d).
3.2.4. Giấu tin sử dụng tập 2-cơ sở
Cho U ⊆ M-{0}, U là tập 2-cơ sở của M. A2. Giấu phần tử bí mật d vào F
Bước 1) Tính m = i ∈S h(i).Val(pi), trong module phải M. Bước 2)
- Trường hợp m = d: giữ nguyên F;
- Trường hợp d m: tính a = d –m, a ∈ M-{0}. Do U là tập 2-cơ sở của M, có 2 trường hợp xẩy ra:
i) Tồn tại j ∈ S, t ∈ Zq–{0} thỏa mãn h(j).t = a =d-m. Theo điều kiện (2.1), ta sẽ tìm được pj’ Next(pj) thỏa mãn Val(pj’)=Val(pj)+t và thay đổi màu pj thành pj’.
45
ii) Nếu không tồn tại j như trên, với tính chất của U ta luôn tìm được 2 phần tử x, y S, tx, ty Zq–{0} sao cho d –m =a = h(x).tx+h(y).ty. Theo điều kiện (2.1), ta sẽ tìm được 2 màu px’, py’ thỏa mãn pi’ Next(pi), Val(px’)=Val(px)+tx và py’
Next(py), Val(py’) = Val(py) + ty,. Ta thay đổi màu px thành px’ và py thành py’. B2. Lấy lại phần tử bí mật d từ F
Tính u = i ∈S h(i).Val(pi) (trong M), u chính là giá trị mật đã được giấu vào F (u=d).
Tính đúng đắn của phương pháp.
Việc chứng minh tính đúng đắn tổng quát của thuật toán giấu tin sử dụng v- cơ sở có thể suy ra từ tính chất (P1-P3) của module mà v=1,2 là trường hợp riêng, sẽ thể hiện rõ qua các ví dụ minh họa ở các phần sau.
3.2.5. Một số sơ đồ giấu tin theo tiếp cận module trên
Trong phần này sẽ giới thiệu một số sơ đồ giấu tin cụ trên ảnh đa mức xám và nhị phân dựa trên phương pháp module. Các sơ đồ này sử dụng các v-cơ sở, v
nhỏ, v=1 hay 2, của module M trên vành Z3.
3.2.5.1. Sơ đồ giấu tin trên ảnh xám
Xét trường hợp ảnh 256 mức xám, mỗi điểm ảnh có màu C (mức xám) được biểu diễn bởi 8 bit, C sẽ nhận các giá trị trong tập P={0,1,..,255}. Để xây dựng sơ đồ giấu tin sử dụng tập 2-cơ sở hạn chế và Z3-module, ta cần xác định: Module phải
M, một 2-cơ sở U, các hàm Val, Next và ánh xạ trọng số h.
Module phải M là tích đề các của Z3, M=Z3 Z3 .. Z3 =Z3n, mỗi phần tử
x=(x1,x2,..,xn) M được biểu diễn bởi một dãy n-bit x = x1x2...xn với phép toán cộng (+) và nhân vô hướng (.) được xác định như sau:
Với mỗi x = x1x2..xn, y = y1..ynM, k Z3, D1) x+y = z1z2..zn where zi=xi +yi mod 3, i=1,..,n .
46 D2) x.k= z1z2..zn where zi=xi.k (trong Z3).
Hàm Val: P Z3 được xác định như sau, Val(C) = (C AND 3) mod 3, với
C P, đặt x = C AND 3, 0≤ x ≤3, việc thay đổi màu C thành màu C’ được thực hiện tại 2 bit ít ý nghĩa x của C (2 bit cuối), cụ thể việc thay đổi giá trị bit cuối cùng của C được sẽ được màu C’=C XOR 00000001, thay đổi giá trị bit thứ 2 của C sẽ được C’=C XOR 00000010, thay đổi giá trị 2 bit cuối của C sẽ được C’=C XOR 00000011, khi đó Val(C’)= (C’ AND 3) mod 3.
Như vậy Next(C)={ C XOR 00000001, C XOR 00000010, C XOR 00000011}.
Ví dụ 1: C=7 sẽ có biễu diễn là 00000111, x=11, khi đó Val(C) = x mod 3 = 0 trong Z3, nếu ta cần thay đổi C sao cho Val(C) được thay bằng Val(C)+2=2 trong Z3, điều này có nghĩa là x được thay bằng x’=2, x’có biễu diễn 10, khi đó C được thay bằng C’= 00000110.
Sơ đồ giấu tin 2-M3
Cho một 2-cơ sở U M –{0}, M = Z3 Z3 .. Z3 =Z3n. Giả sử
F={C1,..,Cm} là một khối các điểm ảnh của G, trong đó |F|≥ |U|, khi đó ta có thể xây dựng một toàn ánh: h: S={1,.., m}→U. Với dM là dữ liệu mật cần giấu trong F, ta xây dựng thuật toán giấu d trong F bằng cách thay đổi màu của nhiều nhất 2 điểm ảnh thuộc F như sau:
Bước 1) Tính p = iS h(i).v(Ci) trong M.
Bước 2) So sánh p và d, có các trường hợp sau xẩy ra: a) Trường hợp p = d: giữ nguyên F.
b) Trường hợp p ≠ d: Đặt x = d – p M –{0}, vì U là một 2-cơ sở của M, x
sẽ được biểu diễn bởi tổ hợp tuyến tính của nhiều nhất 2 phần tử thuộc U, có 2 trường hợp xẩy ra:
47
i) Nếu x = u.t với u U, t Z3-{0}, ta tìm một điểm ảnh Ci F sao cho
h(i)=u, tiếp đó thực hiện thay đổi màu Ci thành Ci’sao cho Val(Ci’) = Val(Ci)+t. ii) Nếu x = u.t + v.t’ với u, v U và t, t’ Z3-{0}, ta sẽ tìm được 2 điểm ảnh Ci, CjF sao cho h(Ci) = u, h(Cj) = v, thực hiện thay đổi màu Ci, Cj thành Ci’,
Cj’ sao cho Val(Ci’) = Val(Ci) + t, Val(Cj’) = Val(Cj) + t’. Khôi phục lại giá trị mật từ F
Tính d =CjFh(i).v(Cj)trong M.
Ví dụ 2: Xét Z3-module M= Z3 Z3 Z3 Z3 mỗi phần tử xM sẽ được biểu diễn bởi dãy 4-phần tử thuộc Z3. Tập U={1100, 1200, 1000, 0100, 0011, 0012, 0010, 0001} là một 2-cơ sở của M, đặt u1=1100, u2=1200, u3=1000, u4=0100,
u5=0011, u6=0012, u7= 0010, u8=0001.
Với mỗi khối F các điểm ảnh thỏa |F| ≥ |U|=8, chẳng hạn F={p1,..,p8}, p1=13,
p2=65, p3=139, p4=211, p5=222, p6=173, p7= 25, p8=130, ta sẽ thực hiện giấu phần tử tùy ý d M vào khối F như sau. Biểu diễn nhị phân p1= 00001101 cho ta Val(p1) = 1, p2=01000001 với Val(p2) = 1, p3 = 10001011 với Val(p3) = 0, p4 = 11010011 với Val(p4) = 0, p5=11011110 với Val(p5) = 2, p6 =10111101 với Val(p6) = 1, p7= 00011001 với Val(p7)=1, p8= 10000010 với Val(p8)=2.
Ta xây dựng toàn ánh h: S={1,2,..,8} → U với h(i) = ui. Giả sử rằng chúng ta cần giấu phần tử d = 2102 vào khối F.
Tính p = iS h(i).Val(pi) =u1.1 + u2.1 + u3.0 + u4.0 + u5.2 + u6.1 + u7.1+ u8.2 = 1100 + 1200 + 0 + 0 + 0022 + 0012 + 0010 + 0002 = 2010. Ta có –p = 1020 trong
M
Vì p≠ d, ta tính m = d-p = 2102 + 1020 = 0122 trong M.
Ta tìm được biểu diễn của m trong U như sau: m = u4.1+u5.2 (0122=0100.1+0011.2), như vậy ta cần thay đổi màu p4 thành p4’ sao cho Val(p4’) =
48
trong Z3. Điều này có nghĩa là ta sẽ thay đổi 2 bit LSB của p4 là 11 thành 01, 2 bit LSB của p5 là 10 thành 01. Ta có màu mới p4’=11010001, p5’= 11011101 như vậy khối F sau khi có giấu tin có giá trị như sau:
Fnew ={ 13, 65, 139, 219, 221, 173, 25, 130} Để nhận lại giá trị mật được giấu trong Fnew ta tính
p = iSh(i).Val(pi) = u1.1 + u2.1 + u3.0 + u4.1 + u5.1 + u6.1 + u7.1+ u8.2 = 1100 + 1200 + 0 + 0100 + 0011+ 0012 + 0010 + 0002 = 2102 = d là giá trị mật đã được giấu vào khối F.
3.2.5.2. Sơ đồ giấu tin sử dụng module trên ảnh nhị phân
Xét trường hợp ảnh nhị phân G, mỗi điểm ảnh sẽ có màu C được biểu diễn bởi 1 bit, C nhận các giá trị 0, 1. Ta ghép từng cặp điểm ảnh liên tiếp của G và xem mỗi cặp đó như một điểm ảnh màu (theo G). Để dễ phân biệt ta gọi ảnh được nhìn theo cách tiếp cận mới với mỗi điểm ảnh là một cặp điểm ảnh của G là G’ khi đó mỗi điểm ảnh C’ của G’ sẽ nhận giá trị trong tập P={(0,0), (0,1), (1,0), (1,1)} để đơn giản ta viết {00, 01, 10, 11}.
Ta xây dựng module phải M và các phép toán cộng (+) và nhân vô hướng (.) như trong sơ đồ giấu tin trên ảnh xám (mục 2.2.1). Hàm Val được xác định như sau:
Val: PZ3, Val(C’) = C’ mod 3 với C’P.. Sơ đồ giấu tin 1-M3:
Cho tập 1-cơ sở hạn chế U M –{0}, M = Z3 Z3 .. Z3 =Z3n. Giả sử
F={C1,..,C2m} là một khối các điểm ảnh của G, trong đó |F|≥ 2.|U|. Cho K là một ma trận khóa nhị phân gồm 2.m phần tử tùy ý. Tính F’=F K = {C1’,..,C2m’}. Ghép cặp hai bit kề nhau thành một phần tử của tập T = {T1,..,Tm}, với Ti= C2i-1’C2i’, khi đó ta có thể xây dựng một toàn ánh: h: S={1,.., m}→U. Với dM là dữ liệu mật cần giấu trong F, ta xây dựng thuật toán giấu d trong F bằng cách thay đổi màu của nhiều
49
nhất 1 điểm ảnh thuộc T (có nghĩa là sẽ thay đổi nhiều nhất 2 điểm ảnh thuộc F) như sau:
Bước 1) Tính p = iS h(i).Val(Ti) trong M.
Bước 2) So sánh p và d, có các trường hợp sau xẩy ra: i) Trường hợp p = d: giữ nguyên F.
ii) Trường hợp p ≠ d: Đặt x = d – p M –{0}, vì U là một 1-cơ sở của
M, x sẽ được biểu diễn bởi tổ hợp tuyến tính của 1 phần tử thuộc U nghĩa là uU,
t Z3 –{0}sao cho x = u.t ta tìm một điểm ảnh Ti T sao cho h(i)=u, tiếp đó thực hiện thay đổi màu Ti thành Ti’ sao cho Val(Ti’) = Val(Ti)+t.
Thực hiện thay đổi màu C2i-1C2i thành C2i-1C2i XOR (T’ XOR T) Khôi phục lại giá trị mật từ F
Tính F’=F K, xác định T dựa trên F’ Tính d =TiTh(i).Val(Ti)trong M.
Ví dụ 3: Xét Z3-module M = Z3 Z3 mỗi phần tử xM sẽ được biểu diễn bởi dãy 2-phần tử thuộc Z3. Tập U={11,12,10,01} là một 1-cơ sở của M, đặt u1=11,
u2=12, u3=10, u4=01.
Mỗi khối F thỏa mãn yêu cầu |F| ≥ 2|U|=8, chẳng hạn F={1,0,0,1,0,1,1,1} gồm 8 phần tử, ta có thể thực hiện giấu phần tử dM tùy ý. Cho mộtma trận khóa nhị phân K={0,1,0,1,1,1,1,0}. Trước hết tính F K = {1,1,0,0,1,0,0,1}, ghép cặp 2 bit một, ta có T={11, 00,10, 01}, đặt T1=11, T2=00, T3=10, T4=01.
Ta xây dựng toàn ánh h: S={1,2,3,4} → U với h(i) = ui. Giả sử cần giấu giá trị d = 22 vào F.
Tính p = i S h(i).Val(Ti) = u1.0 + u2.0 + u3.2 + u4.1 = 10.2 + 01.1 = 20+01=21, -p = 12
50
Vì p≠ d, ta tính m = d-p = 22 + 12 = 01 trong M. Do m = u4.1, ta thay đổi màu T4 sao cho thành màu T4’ sao cho Val(T4’) = Val(T4) + 1 = 2, như vậy T4’=10. Ta có F7F8=11 sẽ được đổi thành (11 XOR (T4 XOR T4’)) =(11 XOR (01 XOR 10)) = 00.
Như vậy khối điểm ảnh có giấu tin Fnew={1,0,0,1,0,1,0,0} Để nhận lại giá trị mật được giấu trong Fnew ta tính
F newK = {1,0,0,1,0,1,0,0} {0,1,0,1,1,1,1,0}={1,1,0,0,1,0,1,0}, như vậy
T={11, 00, 10, 10}, tính p = i S h(i).Val(Ti) = u1.0 + u2.0 + u3.2 + u4.2 = 20+02=22 = d là giá trị cần tìm.
Kết luận
Phần này đã tìm hiểu, trình bày nội dung về lược đồ giấu tin mới dựa trên tiếp cận module: Sơ đồ giấu tin 2-M3 sử dụng các 2-cơ sở U và sơ đồ giấu tin 1-M3 sử dụng các 1-cơ sở của module trên vành Z3. Sơ đồ 2-M3 sử dụng giấu tin trong ảnh đa mức xám, theo ví dụ 2 ta thấy với mỗi khối điểm ảnh F gồm 8 phần tử, bằng cách thay đổi giá trị của nhiều nhất 2 điểm ảnh thuộc F, ta sẽ giấu được tập các giá trị từ 0 đến 2222 (theo hệ cơ số 3), theo cơ số 10 là các giá trị từ 0 đến 80, nghĩa là với sơ đồ 2-M3 mỗi khối 8 điểm ảnh có thể giấu được log281 = 6 bit mật. Sơ đồ 1- M3 minh họa sử dụng để giấu tin trong ảnh nhị phân, theo ví dụ 3, trong mỗi khối 8 điểm ảnh F bằng cách thay đổi giá trị của nhiều nhất 2 phần tử thuộc F, ta có thể giấu được các giá trị từ 0 đến 22 (theo hệ cơ số 3, 22=8 theo hệ cơ số 10), nghĩa là ta sẽ giấu được log29 = 3 bit trong F, bằng số bit giấu được theo phương pháp CPT. Nếu áp dụng sơ đồ 1-M3 cho ảnh đa mức xám theo cách như sơ đồ 2-M3, điều này tương đương với khả năng, trên một khối T có 4 điểm ảnh, thay màu 1 điểm có thể giấu 3 bit.. Các sơ đồ có thể kết hợp một khóa nhị phân K chọn ngẫu nhiên để tăng độ an toàn chống thám tin và có thể áp dụng cho cả ảnh đa mức xám hay nhị phân. Việc thay màu một điểm ảnh trên ảnh đa mức xám chỉ thực hiện trên 2 bit LSB nên không thể phát hiện bằng mắt. Số điểm ảnh thay đổi bé, cùng sự thay đổi màu ít, đảm bảo yếu tố chống thám tin cao cho các sơ đồ khi áp dụng thực tiễn.
51
Ngoài ra, nếu xem mỗi kênh màu R,G,B của ảnh màu 24bpp như 1 ảnh đa mức xám, ta có thể giấu tin mật trên cả 3 kênh nhờ các sơ đồ này. Bài toán nâng cao điều khiển chất lượng giấu tin cho ảnh nhị phân, hay mở rộng các sơ đồ giấu tin cho ảnh màu palette.., vì thế được nghiên cứu mở rộng ngoài nội dung luận văn.
3.2.6. Phương pháp giấu tin theo module
Trong G, với mỗi điểm ảnh trong khối F ta tính giá trị x = (C and 3), để có được hai bit LSB của C, và sau đó xác định v(C) = x, 0 ≤ x ≤ 3. Thay vì C, v(C)
Z4 có thể được sử dụng như là giá trị mới của các điểm ảnh. Thay đổi 2 bit LSB x của C có thể gây ra thay đổi mới v(C). Thay đổi một màu trong C tương ứng một giá trị t trong Z4 có nghĩa rằng hai LSB v(C) trong C được thay thế bằng v(C) + t trong Z4. Ví dụ, C = 99 được biểu diễn ở dạng nhị phân là 01100011, chúng ta nhận được hai bit LSB x = 11 hoặc v(C) = x = 3 ở Z4. Nếu chúng ta cần thay đổi C để v(C) được thay thế bằng v(C) +2 = 1 trong Z4, điều này có nghĩa là x được thay thế bởi x’ = 1 với cách biểu diễn nhị phân x = 01, sau đó C được thay đổi thành C’ =