Nghệ thuật của thủy vân số chính là lựa chọn công nghệ tùy theo ứng dụng. Có nhiều yếu tố liên quan đến việc lựa chọn giải pháp cho thủy vân như: bảo mật, yếu tố tri giác, độ bền vững, độ phức tạp, ta cần phải cân bằng giữa các yếu tố. Như trong chương một đã trình bày, có hai hướng tiếp cận của các kỹ thuật giấu tin nói chung và kỹ thuật thủy vân nói riêng đó là hướng tiếp cận trên miền không gian rời rạc các điểm ảnh và trong miền tần số ảnh. Đối với cách tiếp cận trên miền tần số ảnh ta có nhiều phép biến đổi khác nhau để chuyển từ miền tín hiệu rời rạc sang miền tần số như DFT, DCT, DWT. Trong phần này chúng tôi nghiên cứu kỹ thuật thủy vân trên ảnh bằng cách tác động lên miền tần số ảnh thông qua phép biến đổi DCT.
2.1. Phép biến đổi cosin rời rạc
Biến đổi coisin rời rạc DCT (Discrete Cosine Transform) do Ahmed và các đồng nghiệp đưa ra năm 1974. Từ đó nó được ứng dụng rộng rãi nhất là trong kỹ thuật xử lí ảnh số. Trong kỹ thuật thủy vân ảnh dựa trên miền tần số ảnh, thì phép biến đổi DCT được sử dụng nhiều nhất.
Định nghĩa 1: Biến đổi DCT hai chiều tổng quát là biến đổi trên khối M N được định nghĩa như sau:
I(u,v) được gọi là hệ số DCT và là số thực.
Định nghĩa 2: Phép biến đổi ngược IDCT được định nghĩa như sau:
Trong đó
Trên ảnh hai chiều, các khối thường sử dụng là 8 8, 16 16. (a)
(b)
(c)
Phân chia ba miền tần số của khối ảnh 8 8 theo phép biến đổi DCT (a) miền tần số thấp
(b) miền tần số giữa (c) miền tần số cao
2.2. Đặc điểm của phép biến đổi DCT trên ảnh hai chiều:
- Thể hiện đặc tính nội dung về tần số của thông tin ảnh. Hệ số góc trên là lớn và đặc trưng cho giá trị trung bình thành phần một chiều gọi là hệ số DC, các hệ số khác có giá trị nhỏ hơn biểu diễn cho các thành phần
- Bản thân biến đổi DCT không nén được dữ liệu vì sinh ra 64 hệ số. - Theo nguyên lý chung, khi biến đổi chi tiết giữa các điểm ảnh càng lớn theo một hướng nào đó trong khối các điểm ảnh, hướng ngang, dọc hoặc theo đường chéo thì tương ứng theo các hướng đó, các hệ số biến đổi DCT cũng lớn.
♦ Tóm lại, DCT làm giảm độ tương quan không gian của thông
tin trong khối ảnh. Điều đó cho phép biểu diễn thích hợp ở miền DCT do các hệ số DCT có xu hướng có phần dư thừa ít hơn. Hơn nữa, các hệ số DCT chứa thông tin về nội dung tần số không gian của thông tin trong khối. Nhờ các đặc tính tần số không gian của hệ thống nhìn của mắt người, các hệ số DCT có thể được mã hóa phù hợp, chỉ các hệ số DCT quan trọng nhất mới được mã hóa để chuyển đổi.
♦ Khối hệ số DCT có thể chia làm 3 miền: miền tần số thấp,
miền tần số cao và miền tần số giữa. Miền tần số thấp chứa các thông tin quan trọng ảnh hưởng đến tri giác. Miền tần số cao thường không mang tính tri giác cao, khi nén JPEG thường loại bỏ thông tin trong miền này.
♦ Trong các thuật toán thủy vân, miền hệ số DCT tần số cao
thường không được sử dụng do nó thường không bền vững với các phép xử lý ảnh, hoặc nền ảnh JPEG. Miền tần số thấp cũng khó được sử dụng do một sự thay đổi dù nhỏ trong miền này cũng dẫn đến chất lượng tri giác của ảnh. Vì vậy, miền tần số ở giữa thường hay được sử dụng nhất và cũng cho kết quả tốt nhất.
2.3. Kỹ thuật thủy vân sử dụng phép biến đổi DCT
a. Ý tưởng
Thuật toán dưới đây sử dụng phương pháp nhúng thủy vân trong miền tần số của ảnh, giải tần được sử dụng để chứa tín hiệu thủy vân là miền tần số ở giữa của các khối DCT 8x8. Trong đó, các khối DCT 8x8 là những khối ảnh cùng kích thước đã được chọn ra từ ảnh ban đầu và được áp dụng phép DCT để chuyển sang miền tần số. Mỗi bit tín hiệu thủy vân sẽ được nhúng trong một khối.
Trong thuật toán có sử dụng một số hàm tính toán sau: Max(x,y): hàm cho số lớn nhất trong hai số x và y. Min(x,y): hàm cho số nhỏ nhất trong hai số x và y.
INT(x): là hàm lấy phần nguyên của số thực x. | x | : cho giá trị tuyệt đối của x.
b. Quá trình nhúng thủy vân Input
- Thủy vân W: là một chuỗi các bit hoặc một ảnh nhị phân. - Ảnh F kích thước m n.
Output
- Ảnh F’ đã nhúng thủy vân.
Thuật toán:
Bước 1: Ảnh F có kích thước mxn sẽ được chia thành (m n)/64 khối 8 8, mỗi bit của thủy vân sẽ được giấu trong một khối Bk.
Bước 2: Chọn một khối bất kì Bk và biến đổi DCT khối đó thu được Ck. Ck = DCT(Bk)
Bước 3: Chọn hai hệ số ở vị trí bất kì trong miền tần số ở giữa của khối Ck, gọi hai hệ số đó là Ck[i,j] và Ck[p,q].
Bước 4: Tính độ lệch d = | | Ck [i,j]| - | Ck[p,q]| | mod a. Trong đó a là một tham số thỏa a = 2(2t+1), với t là một số nguyên dương.
Bước 5: Bit bk sẽ được nhúng vào khối Ck sao cho thỏa mãn bất biến sau:
Bước 6: Nếu d<2t+1 và bk = 1 thì trong hai hệ số DCT Ck[i,j] hoặc Ck[p,q] có giá trị tuyệt đối lớn hơn sẽ bị thay đổi để thỏa d≥2t + 1 theo công thức (1) hoặc (2) sau đây:
Max(|Ck[i,j]|, | Ck[p,q]|) + (INT(0.75a) - d) (1)
Hệ số được chọn sẽ được cộng thêm một lượng là (INT(0.75a) - d) Min(|Ck[i,j]|, | Ck[p,q]|) – (INT(0.25a) + d) (2)
Hệ số được chọn sẽ bị trừ đi một lượng là (INT(0.25a) + d)
Bước 7: Nếu d≥ 2t + 1 và bk = 0 thì một trong hai hệ số DCT Ck[i,j] hoặc Ck[p,q] có giá trị tuyệt đối lớn hơn sẽ bị thay đổi để thỏa d<2t + 1 theo công thức (3) hoặc (4) như sau:
Min(|Ck[i,j]|, | Ck[p,q]|) + (INT(0.25a) – d) (4)
Hệ số được chọn sẽ được cộng thêm một lượng là INT(0.25a) – d. Bước 8: Thực hiện phép biến đổi ngược IDCT đối với khối Ck. B’k=IDCT(Ck)
Bước 9: Ghép các khối ảnh B’k để được ảnh chứa thủy vân F’.
Thí dụ 1: Giả sử ta cần giấu một bit thủy vân b =0 vào khối B 8 8 được cho dưới đây. Ta chọn a = 26 = 2(2 6 + 1), do đó t = 6
33 84 66 58 15 159 183 146 28 75 15 37 161 157 136 134 29 59 44 65 192 166 144 139 B= 15 15 15 67 113 123 192 170 88 76 15 218 140 198 164 141 19 10 15 218 140 198 164 141 15 15 15 179 241 235 190 107 15 17 89 181 168 234 190 190
Biến đổi DCT(B) ta thu được khối C: Ta tính C[u, v] như sau:
Trong đó 869 -439 -101 114 19 6 -61 -42 -110 65 143 -18 -78 -62 -2 38 31 -4 -37 -7 -67 8 55 -43 C= -8 28 23 -10 -2 57 -26 -56 -2 -3 -109 -69 -33 41 6 9 -24 -27 -26 9 -29 33 6 -10 13 4 -8 -46 -13 33 38 -43 41 34 6 28 5 -31 -24 -40
Trong miền tần số giữa của khối C, ta chọn hai hệ số bất kỳ là C[4, 2]=-18 và C[2, 5] = -3.
Với bit thủy vân b = 0 thì ta phải thay đổi một trong hai hệ số C[4, 2] =-18 hoặc C[2, 5] = -3 đã chọn để thu được d <2t+1.
Vì C[4, 2]= -18 có giá trị tuyệt đối lớn hơn C[2, 5], theo công thức (3) ta tính giá trị mới của C[4, 21] là:
C[4, 2] = C[4, 2] – (d - INT(0.25a))
= -18 – (21 – INT(0.25 x 26) = -33.
Khi đã thay đổi hệ số C[4, 2] = -33 ta thực hiện phép biến đổi ngược IDCT(C) và thu được khối B’:
Tính B’[x,y] như sau:
Trong đó 30 85 70 60 13 155 183 149 26 76 18 39 160 154 136 137 27 60 46 66 190 162 144 141 B’= 14 15 14 67 113 122 192 171 89 76 14 102 169 105 199 176 20 9 13 217 141 200 164 140 18 15 12 177 243 238 190 105 18 17 85 179 170 238 191 187
c. Quá trình tách thủy vân
Input
- Ảnh đã nhúng thủy vân F’. - Khóa K (nếu có).
Output
- Thủy vân đã nhúng W biểu diễn qua dãy bit bk. Thuật toán:
Bước 2: Biến đổi DCT các khối B’k
Bk = DCT(B’k)
Bước 3: Lấy ra vị trí hai hệ số đã biến đổi Bk[i, j] và Bk[p, q]
Bước 4: Tính d = | |Bk[i, j]| - |Bk[p, q]| | mod a với a=2(2t+1) đã chọn khi nhúng thủy vân.
Bước 5: Nếu d≥2t+1 thì được bit bk=1 ngược lại bk=0
Bước 6: Ghép các bit bk tách được từ các khối để được thủy vân đầy đủ W. Thí dụ 2: Với khối B’ có được trong thí dụ (1), quá trình tách thủy vân như sau.
Ta thực hiện phép biến đổi DCT của khối B’ để thu được khối B sau
869 -439 -101 114 19 6 -61 -42 -110 65 143 -33 -78 -62 -2 38 31 -4 -37 -7 -67 8 55 -43 B= -8 28 23 -10 -2 57 -26 -56 -2 -3 -109 -69 -33 41 6 9 -24 -27 -26 9 -29 33 6 -10 13 4 -8 -46 -13 33 38 -43 41 34 6 28 5 -31 -24 -40 Ta lấy ra hai hệ số B[4, 2] = -33 và B[2, 5] = -3. Tính độ lệch d = | |B[4, 2] – |B[2, 5]| | mod 26 = 10.
Ta thấy d < 2t +1 = 13, vậy bit b = 0 đã được giấu vào khối.
d. Phân tích thuật toán
Kích thước khối ảnh nêu trong kỹ thuật là 8 8, tuy nhiên có thể chọn kích thước khác nhau tùy theo kích thước từng ảnh gốc và kích thước thực tế của thủy vân.
Việc chọn một cặp hệ số trong miền tần số giữa có thể được chọn cố định cho tất cả các khối trong quá trình nhúng thủy vân. Khi đó, thủy vân có thể rất dễ bị phát hiện thông qua việc thử lần lượt các cặp hệ số trong miền tần số giữa. Có thể làm tăng độ an toàn và khó bị phát hiện thủy vân bằng cách đưa ra một thuật toán có sử dụng khóa cho sự lựa chọn cặp hệ số trong miền tần số giữa cho từng khối DCT. Khi đó, vị trí của các cặp hệ số được
chọn cho quá trình nhúng thủy vân trong từng khối sẽ được sử dụng phụ thuộc vào khóa của quá trình tách thủy vân.
Trong kỹ thuật, quá trình tách thủy vân không cần sử dụng ảnh gốc.
Tham số a trong kỹ thuật đóng vai trò như là hệ số tương quan giữa tính ẩn và tính bền vững của thủy vân. Khi tăng hệ số a lên thì độ sai lệch của thủy vân giảm đi và như vậy nó bền vững hơn. Tuy nhiên, nếu tăng a thì chất lượng ảnh sau khi giấu sẽ giảm. Điều này rất dễ hiểu vì a lớn, nghĩa là phân lớp khoảng cách hai hệ số lớn nên khoảng cách biến đổi của một hệ số để thỏa mãn điều kiện giấu lớn dẫn đến ảnh hưởng nhiều đến chất lượng ảnh.
KHẢ NĂNG PHÁT HIỆN ẢNH CÓ GIẤU TIN
III. PHƯƠNG PHÁP PHÁT HIỆN ẢNH GIẤU TIN 1. Bài toán phân tích tin giấu
Phân tích tin ẩn giấu hay còn gọi là tấn công một hệ giấu tin (steganalysis) là phương pháp để phát hiện, trích rút, phá hủy hay sửa đổi thông tin đã giấu.
Việc phân tích được coi là thành công hay không còn tùy theo ứng dụng. Đối với việc liên lạc bí mật, việc phát hiện và chứng minh một ảnh có chứa tin mật được coi là thành công. Đối với bảo vệ bản quyền số hay chống giả mạo thì việc phân tích được coi là thành công nếu không chỉ phát hiện ra thủy vân mà còn phá hủy hay sửa đổi nó nhưng không làm giảm chất lượng ảnh mang. Đề tài nghiên cứu ứng dụng trên hệ giấu tin mật.
Các kỹ thuật phân tích giấu tin mật hiện tại tập trung vào việc phát hiện ra sự có mặt hay không các thông điệp ẩn trong dữ liệu được quan sát. Bài toán trích chọn ra các thông điệp bí mật là bái toán khó hơn bài toán phát hiện, nhưng bài toán phát hiện làm tiền đề cho việc trích chọn. Như vậy, có thể xác định hai mục tiêu rõ ràng của bài toán phân tích trên hệ giấu tin mật là:
♦ Phân tích giấu tin bị động (Passive steganalysis): Phát hiện sự hiện diện hay không của thông điệp bí mật trong các dữ liệu được quan sát.
♦ Phân tích giấu tin chủ động (Active steganalysis): Trích chọn
một phiên bản của thông điệp bí mật từ phương tiện chứa tin.
♦ Trích chọn (có thể xấp xỉ) một phiên bản của thông điệp bí
mật từ một phương tiện chứa tin.
2. Phân loại phương pháp phát hiện ảnh giấu tin
2.1. Phân tích trực quan
Đây là phương pháp đơn giản nhất mặc dù kết quả thường không đáng tin cậy. Để phát hiện khả năng một ảnh có giấu tin hay không bằng
thường”. Nhiều phương pháp giấu tin mật, bao gồm cả giấu tin dựa trên LSB và phương pháp dựa trên DCT đều loại bỏ những biến dạng ở những vùng ảnh mịn hoặc thuần nhất một cách dễ nhận thấy. Thật vậy, việc thay đổi bảng màu (của một ảnh màu) dù nhỏ để giấu thông điệp bí mật có thể dẫn đến kết quả là sự thay đổi màu sắc lớn trên ảnh gốc, đặc biệt là nếu ảnh gốc có chứa các màu sắc khác nhau ở mức độ cao. Cũng bởi thực tế là với một ảnh màu tự nhiên, sự thay đổi bit một trong các màu là hiếm.
2.2. Phân tích định dạng ảnh
Có nhiều định dạng tệp tin ảnh khác nhau như BMP, GIF, JPEG. Mỗi loại có đặc điểm và cấu trúc định dạng tệp tin khác nhau. Do đó, khi thực hiện giấu tin, chẳng hạn giấu tin theo LSB, sẽ cho sự thay đổi trên ảnh kết quả ở các điểm ảnh khác nhau. Và khi thực hiện phát hiện ảnh giấu tin cũng vậy. Ví dụ như với ảnh JPG: Ảnh JPG sử dụng phép biến đổi DCT để biến đổi liên tiếp các khối điểm ảnh 8 × 8 vào ma trận 64 hệ số DCT. Bit LSB của các hệ số DCT được sử dụng như là các bit dư thừa mà ta sẽ giấu các bit thông điệp ẩn vào trong đó. Sự thay đổi hệ số DCT đơn lẻ sẽ tác động lên tất cả 64 điểm ảnh. Vì lý do đó không thể áp dụng việc phân tích trực quan đối với loại ảnh này.
2.3. Phân tích thống kê
Theo Plitzman và Westfeld, lý thuyết thống kê có thể áp dụng để phân tích thống kê các cặp giá trị (cặp giá trị điểm ảnh, cặp các hệ số DCT, cặp các chỉ số bảng màu) để tìm sự khác biệt ở bit LSB. Trước khi giấu tin, trên ảnh chứa thông điệp (cover image), mỗi cặp hai giá trị là phân phối không đều. Sau khi giấu tin, giá trị trong mỗi cặp có xu hướng trở nên bằng nhau. Hơn nữa, nếu các kỹ thuật giấu tin mật giấu các bit thông điệp một cách tuần tự vào các điểm ảnh (hoặc các chỉ số bảng màu hoặc các hệ số DCT) liên tiếp nhau, bắt đầu từ góc trên trái thì ta sẽ quan sát được sự thay đổi đột ngột trong các thống kê. Một số kỹ thuật thống kê sẽ được trình bày trong phần cuối của chương này.
IV.KỸ THUẬT PHÂN TÍCH CẶP GIÁ TRỊ ĐIỂM ẢNH 1. Khái niệm cặp giá trị
Khái niệm về cặp giá trị (PoV – Pairs of Values) được Pfitzmann và Westfeld đưa ra. Cho một ảnh I. Gọi j là giá trị của điểm ảnh (pixel) trên ảnh I. Nếu I là ảnh đa cấp xám 8 – bit thì j [0,255]. Nếu j chẵn (j = 2i) thì
sau phép lật bit giá trị của j là 2i + 1, nếu j là lẻ (j = 2i+1) thì sau phép lật bit giá trị của j 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 giá trị của nó vẫn nằm trong một cặp có tính chất chẵn lẻ tương tự.
PoV là một cặp hai giá trị điểm ảnh (2i, 2i+1) và hai giá trị trong cặp