Y u - Y u a n C h e n , H s i a n g - K u a n g P a n v à Y u - C h e e T s e n g r 1 7 ] đ ư a r a m ộ t th u ậ t t o á n d ự a tr ê n th u ậ t to á n c h u ẩ n đ ã t r ìn h b à y ở p h ầ n tr ê n , th u ậ t to á n n à y m a n g tê n là C P T .
Đ ể tă n g đ ư ợ c k h ả n ã n g g iấ u t i n tr o n g m ỗ i k h ố i b ít ta đ ư a ra m ộ t m a tr ậ n t r ọ n g s ố w c ó c ù n g k íc h th ư ớ c ( m x n ) v ớ i k h ố i b it F , v à k h o á K .
Các phần tử của w phải thỏa mãn điều kiện { [ W] , j | i = l..m ,j = l..n } = {1,2.... 2r- l }. Ma trận w luôn có thể tìm được do biểu thức sau luôn đúng:
2>-< 2['°s(mn+1>] < 2lo8(mn+1) với r là một số nguyên bất kỳ thỏa mãn điều kiện: r < [log(m n+l)] (các log trong ký hiệu trên đều là logarithm cơ số 2). Dễ thấy tập các
bộ số thỏa mãn điều kiện cho w đủ lớn:
mn mn - (2r - 1)
c *(2r - l)!*(2r - 1)
2r-l
Với m = n = 8, r = 5 ta có: c *311*31
31
Sơ đồ thuật toán giấu thông tin khi đó được thay đổi như sau:
51. Tính (F;®K)
52. Tính SUM((F,©K)®W), trong đó <s> là phép toán nhân các cặp phần tử đổng vị của hai ma trận cùng kích thước.
53. Từ ma trận (Fj©K) với mỗi we(1..2r- l) xây dựng tập SH, như sau:
s „= ỉ(j,k ) I ([W ]jk = vv A[F,®K]jk = 0)v([W ]jk = (2r-w)A[Fj © K ]j)k= 1)}
SH, là tập chỉ số thỏa mãn tính chất sau: thay [Kj]j k bằng phần bù (cơ sô'2) dẩn tới tăng tổng SUM((F,©K)<S>W) lên w. Thật vậy, nếu thỏa mãn điều kiện ([W ]jk = wA[Fi© K ]jk= 0) thì hiển nhiên thay giá trị [Fi©K]j k từ 0 thành 1 dẫn tới tăng tổng SUM((Fj©K)<E>W) lên w. Còn nếu thỏa mãn điều kiện ([W ]jk = (2r-w)A [F ị® K ]jk= l) thì thay [F|©K]Jk từ 1 thành 0 dẫn tới giảm tổng SUM((Fj0K)<8>W) đi một lượng (2 r-w), nói cách khác, tăng tổng
SUM((F,®K)®W) lên w(mod 2r)
54. Tính d = (b „ b2,... br) - SUMCCF.eK^W) (mod 2r) với d là độ chênh lệch trọng sô'
Nếu d = 0 thì không cần thay đổi Fj, nếu d*0 thì thực hiện các bước sau đây để thay đổi Fj sang Fj :
a) Chọn ngẫu nhiên he (0,1,2,...,2r- l } sao cho ((Sht]?í:0 ) A(S(h.1)d^ 0 ) ) .
b) Chọn ngẫu nhiên chỉ số (j,k)eSj,d và hoán đổi giá trị bít của [Fị]j k;
c) Chọn ngẫu nhiên chỉ sô' (j,k)eS„(h.1)d và hoán đổi giá trị bít của [F ị]jk;
Biểu thức E1 trong trường hợp này như sau:
SƯM((F;©K)®W) = (b „ b2,... br) (mod 2r) (E l')
Trong các bước b) và c) trên đây, giá trị trọng số bị thay đổi một lượng hd và ((-h-l)d ) tương ứng, nói cách, trọng số được tăng lên một lượng hd+(-(h-
l)d))=d đơn vị.
Từ kết quả E l’ nhận được ở bước S4 sẽ có công thức sau:
(b „ b2,... br)=SUM((F,©K)(8)W) (mod 7)
Đây chính là công thức sử dụng để tách chuỗi bít (bị, b2,... br) khi biết khóa K ,w và các khối F/.
Hình 3.1 minh hoạ sơ đồ khối của thuật toán CPT và hình 3.2 minh hoạ một ví dụ khối bit F được chia thành 2 khối cơ bản F) và F2, khóa K và ma trận trọng số w kích thước (4x4). Tối đa r = [log2(4x4+l)] = 4 bít có thể được giấu trong một khối.
í Các tấn công )
[ K U [W ]mxn [K ]mxn [W ]mxn
0 1 0 1 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 1 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 0 0 1 1 « « 0 1 0 0 0 0 0 ỉ 1 0 0 0 0 0 1 1 1 F, ® K F2© K F,' F2' (b) (c) (H 3.2 Một ví dụ giấu tin)
Giả sử lấy r=3 và chuỗi bít cần giấu là (001001). Vì SUM((F1©K)<8>W) (mod 23)=24 mod 23=0; độ chênh lệch trọng số d= 1-0=1; Bởi vậy, khi hoán đổi giá trị [F|]2 4sẽ làm tăng giá trị của trọng số [W] 24 một đơn vị.
Đối với F2, vì tổng SƯM((F2© K )0 W ) (mod 23) = 36 mod 23 = 4, độ chênh lệch trọng số d = 1-4 = -3. Bởi vậy việc hoán đổi giá trị [F2]22và [F2]3 2 làm tăng trọng số lên các giá trị -[ W] 22=-6và [W] 3 2 =3 tương ứng.
Thuật toán trên đã cải thiện đáng kể vấn đề về dung lượng giấu, tuy nhiên nó chưa chú trọng tới vấn đề chất lượng ảnh vì thông tin được giấu một cách ngẫu nhiên vào khối bít. Để nâng cao chất lượng của ảnh kết quả, chúng ta xem xét một thuật toán cải tiến sau.