Thuật toỏn F5

Một phần của tài liệu giấu tin trong tập tin avi (Trang 51 - 79)

Thuật toỏn F5 được đề xuất bởi nhà khoa học người Đức Pfitzmann và Westfeld vào năm 2001. Thuật toỏn này nhỳng thụng điệp vào LSB của cỏc hệ số DCT theo bước đi giả ngẫu nhiờn thụng qua tất cả cỏc hệ số DCT của ảnh, trong đú nú bỏ qua cỏc hệ số DC và cỏc hệ số bằng 0. Nếu LSB của hệ số DCT khụng phự hợp với bit thụng điệp, giỏ trị tuyệt đối của hệ số giảm đi 1. Nếu phộp trừ dẫn đến 0 thỡ bit thụng điệp phải nhỳng vào hệ số tiếp theo, bởi vỡ ở phớa bờn nhận, thụng điệp chỉ được lấy ra ở cỏc hệ số DCT khỏc 0. Đặc biệt F5 sử dụng ma trận mó hoỏ để giảm thiểu số thay đổi cần thiết khi giấu thụng điệp. Với cỏch thức này nú cú thể giảm thiểu tối đa được khoảng trờn 50% thay đổi trờn ảnh so với Jsteg. Theo mụ tả của thuật toỏn F5, chương trỡnh yờu cầu cỏc thụng tin gồm cú:

a. Yếu tố chất lượng Q của ảnh stego

b. Ảnh đầu vào (định dạng TIFF, BMP, JPEG, hoặc GIF) c. Tập tin đầu ra

d. Tập tin chứa thụng điệp bớ mật

e. Mật khẩu được sử dụng cho bộ tạo giả ngẫu nhiờn PRNG Chỳ thớch chốn vào phần header của ảnh (thường là độ dài thụng điệp)

Ma trận mó húa cú 3 tham số (c, n, k) với c là số thay đổi trờn một nhúm gồm n hệ số DCT, k là số bit được nhỳng. Tỏc giả sử dụng một ma trận mó húa đơn giản (1, 2k-1, k), sử dụng một hàm băm để đưa ra k bit khi ỏp dụng cho 2k – 1 hệ số.

Vớ dụ, nếu chỳng ta muốn nhỳng 2 bit x1, x2 (k=2) vào nhúm 3 hệ số (22-1=3) a1, a2, a3 sẽ chỉ thay đổi một vị trớ. Chỳng ta cú thể bắt gặp 4 trường hợp xảy ra như sau:

x1=a1 ⊕ a3, x2= a2 ⊕ a3 ⇒ khụng thay đổi gỡ x1≠a1 ⊕ a3, x2= a2 ⊕ a3 ⇒ thay đổi a1

x1=a1 ⊕ a3, x2≠ a2 ⊕ a3 ⇒ thay đổi a2 x1≠a1 ⊕ a3, x2≠ a2 ⊕ a3 ⇒ thay đổi a3

Từ đú ta cú thể lấy ra được x1, x2 dựa vào cỏc trường hợp trờn.

Trường hợp tổng quỏt, chỳng ta cú một từ mó a với n vị trớ bit cú thể thay đổi cho k bit thụng điệp mật x. Đặt f là một hàm băm dựng để lấy ra k bit từ một từ mó. Ma trận mó húa cú thể giỳp chỳng ta tỡm ra một thay đổi phự hợp a thành a’ đối với mọi a và x với x=f(a’) sao cho khoảng cỏch Hamming

d(a, a’) <= dmax

Vỡ ma trận mó húa gồm ba phần (dmax, n, k) cho nờn một từ mó với n vị trớ sẽ thay đổi khụng quỏ dmax vị trớ để nhỳng k bit. F5 thực hiện ma trận mó húa với dmax =1. Đối với (1, n, k) từ mó cú độ dài là n=2k – 1. Khi đú bỏ qua điểm hội tụ (tức hệ số DCT bằng 0) chỳng ta sẽ nhận được mật độ thay đổi là

D(k) = k n 2 1 1 1 = + Và tỉ lệ nhỳng R(k)= 1 2 ) 1 ( 1 − = + = ld n kk n n k

Sử dụng mật độ thay đổi và tỉ lệ nhỳng chỳng ta cú thể định nghĩa hiệu suất nhỳng W(k). Nú cú thể chỉ ra giỏ trị bit trung bỡnh chỳng ta cú thể nhỳng trờn sự thay đổi đú W(k)= k k D k R k k . 1 2 2 ) ( ) ( − =

Hiệu suất nhỳng của (1, n, k) luụn luụn lớn hơn k. Bảng 2.1 chỉ ra tỉ lệ nhỳng giảm trong khi hiệu suất nhỳng tăng. Tuy nhiờn chỳng ta cú thể đạt được hiệu suất cao chỉ với thụng điệp rất nhỏ.

Bảng 2.2 đưa ra sự phụ thuộc giữa bit thụng điệp xi và vị trớ bit được thay đổi a’j. Chỳng ta chia phần phụ thuộc với mó nhị phõn của j tới cột a’j vậy nờn chỳng ta cú thể tỡm ra hàm băm rất nhanh Khi đú f(a) = n aii i=1 . ⊕ k n Mật độ thay đổi (D(k)) Tỉ lệ nhỳng (R(k)) Hiệu suất nhỳng W(k) 1 1 50.00% 100.00% 2 2 3 25.00% 66.67% 2.67 3 7 12.50% 42.86% 3.43 4 15 6.25% 26.67% 4.27 5 31 3.12% 16.13% 5.16 6 63 1.56% 9.52% 6.09 7 127 0.78% 5.51% 7.06 8 255 0.39% 3.14% 8.03 9 511 0.20% 1.76% 9.02

F(a’) A’1 a’2 a’3 a’4 a’5 a’6 A’7

X1 ì ì ì ì

X2 ì ì ì ì

X3 ì ì ì ì

Bảng 2.2 Sự phụ thuộc (ì) giữa bit thụng điệp xi và cỏc bit từ mó a’j

Chỳng ta cú thể tỡm ra vi trớ bit s = x ⊕ f(a) Khi đú từ mó được thay đổi trong a’ =

   = ⇔ = lại ngược a ,..., a ,..., a , (a f(a)) x ( 0 s a nếu n s 2 1 )

Chỳng ta cú thể tỡm ra một tham số k tốt nhất cho mọi thụng điệp để nhỳng vào mọi bản phủ, bản phủ cung cấp đủ khả năng nhỳng thụng điệp sao cho thụng điệp vừa đủ trong bản phủ. Vớ dụ, nếu chỳng ta muốn nhỳng một thụng điệp 1000 bit vào bản phủ cú khả năng chứa 50000 bit thỡ tỉ lệ nhỳng cần thiết là R=1000:50000=2%. Giỏ trị này nằm giữa R(k=8) và R(k=9) trong bảng 2.1. Chỳng ta chọn k=8 và cú thể nhỳng 50000:255=196 từ mó với độ dài n=255, hay ma trận mó húa là (1, 255, 8) cú thể nhỳng 196.8=1568 bit. Nếu chỳng ta chọn k=9 chỳng ta khụng thể nhỳng được thụng điệp.

Thuật toỏn F5 bao gồm cỏc bước sau:

1. Lấy phần thể hiện RGB của ảnh đầu vào (lấy dữ liệu của ảnh).

2. Biến đổi miền dữ liệu của ảnh sang miền tần số DCT

f(a’) a’1 a’2 a’3

x1 ì ì

3. Lượng tử hoỏ cỏc hệ số DCT theo Q ta được cỏc hệ số DCT đó lượng tử. Tớnh khả năng cú thể nhỳng khi khụng sử dụng ma trận mó húa C = hDCT – hDCT /64 –h(0) –h(1)+ 0.49h, trong đú hDCT là tổng số hệ số DCT, h(0) là số hệ số AC DCT bằng 0, h(1) là số hệ số AC DCT cú trị tuyệt đối bằng 1, hDCT/64 là số hệ số DC, – h(1)+0.49h(1) = –0.51h là ước lượng mức độ hao hụt. (adsbygoogle = window.adsbygoogle || []).push({});

Mật khẩu người dựng được sử dụng để tạo ra bộ khởi tạo giả ngẫu nhiờn PRNG cỏi mà quyết định nhỳng cỏc bit thụng điệp vào cỏc vị trớ ngẫu nhiờn. PRNG cũng thường được sử dụng để phỏt sinh một dũng bit giả ngẫu nhiờn bằng phộp XOR với thụng điệp tạo ra nú một dũng bit ngẫu nhiờn. Trong quỏ trỡnh nhỳng, hệ số DC và cỏc hệ số bằng 0 thường được bỏ qua.

Thụng điệp được chia thành cỏc đoạn gồm k bit, mỗi đoạn nhỳng vào một nhúm hệ số DCT 2k–1 theo bước đi giả ngẫu nhiờn. Nếu giỏ trị băm của nhúm khụng phự hợp với cỏc bit thụng điệp, thỡ giỏ trị tuyệt đối của một trong những hệ số trong nhúm bị giảm đi 1 cho phự hợp. Nếu hệ số trở thành 0 (hệ số này được gọi là điểm hội tụ - shrinkage), và khi đú k bit thụng điệp này sẽ được nhỳng trong nhúm hệ số DCT tiếp theo (lưu ý LSB(d)= d mod 2 với d > 0, và LSB(d)=1–d mod 2 với d < 0)

Nếu độ dài thụng điệp phự hợp với khả năng cú thể giấu trong ảnh thỡ quỏ trỡnh giấu thành cụng, ngược lại sẽ thụng bỏo lỗi và cho biết độ dài lớn nhất của ảnh cú thể giấu để điều chỉnh thụng điệp giấu hoặc thay đổi ảnh dựng để giấu thụng điệp.

Thuật toỏn giấu F5

Đầu ra: ảnh đó được phủ

Khởi tạo PRNG với khúa bớ mật chia sẻ Hoỏn vị hệ số DCT với PRNG

Xỏc định k từ kớch cỡ ảnh

Tớnh toỏn độ dài từ trong khoảng n  2k-1

While dữ liệu chưa được nhỳng do

Lấy k bit khối thụng điệp tiếp theo

Repeat

G  {n khỏc 0 hệ số AC}

S  băm k-bit của LSB trong G S  s ⊕ k bit của khối thụng điệp

If s <> 0 then

Giảm giỏ trị tuyệt đối của hệ số DCT Gs

Chốn Gs vào ảnh nhỳng End if Until s=0 hoặc Gs <> 0 Chốn hệ số DCT từ G vào ảnh nhỳng (bản phủ) End while 2.3 Tổng kết chương

Trong chương này, luận văn đó khỏi quỏt được cỏc cỏch thức, phương phỏp, kỹ thuật, thuật toỏn giấu tin thường được sử dụng trờn thế giới. Luận văn trỡnh bày một số kĩ thuật từ đơn giản đến phức tạp, từ biến đổi trong miền khụng gian đến biến đổi trong miền tần số, trỡnh bày

thuật toỏn giấu tin trong khối bit, Wu-Lee, CPT, biến đổi Cosin rời rạc DCT, thuật toỏn LSB, JSteg và F5.

CHƯƠNG 3. PHƯƠNG PHÁP GIẤU TIN TRONG TẬP TIN VIDEO - AVI

Trong chương này, tỏc giả đề xuất một phương phỏp giấu tin và chiết xuất tin giấu từ tệp tin AVI (Audio Video Interleave) độ phõn giải cao. Mặc dự tập tin AVI cú kớch cỡ tương đối lớn, tuy nhiờn nú vẫn cú thể được truyền đi từ điểm nguồn đến điểm đớch thụng qua hệ thống mạng một cỏch an toàn sau khi dữ liệu video nguồn được xử lớ bằng cỏch sử dụng phương phỏp giấu và chiết xuất này.

Do tập tin video thực chất là một chuỗi liờn hũan cỏc hỡnh ảnh, nờn chỳng ta cú thể xem xột cỏc kĩ thuật giấu tin trong ảnh và ỏp dụng vào dữ liệu video

3.1 Thuật toỏn LSB sửa đổi

LSB là một trong những kĩ thuật giấu tin được sử dụng rộng rói nhất. Mặc dự thuật toỏn này cú những nhược điểm nhất định, tuy nhiờn với tớnh chất dễ sử dụng của mỡnh, LSB đó trở thành một phương phỏp khỏ phổ biến. Để giấu một thụng điệp bớ mật vào trong ảnh, thỡ tất nhiờn sẽ cần một bản phủ theo định dạng ảnh. Do phương phỏp này dựng cỏc bit trong mỗi điểm ảnh, nờn ta phải sử dụng ảnh cú định dạng nộn khụng mất mỏt, nếu khụng thụng tin cần giấu sẽ bị mất trong quỏ trỡnh chuyển đổi của thuật toỏn nộn mất mỏt.

Khi sử dụng ảnh màu 24bits, một bit của mỗi thành phần đỏ, xanh lỏ cõy, xanh da trời cú thể được sử dụng để giấu tin, do đú khả năng giấu tin trong mỗi điểm ảnh là 3 bits. Vậy với mỗi ảnh kớch cỡ 800 x 600 thỡ khả năng lưu trữ là 1.440.000 bits (180.000

bytes) dữ liệu bớ mật. Chỳng ta xem xột vớ dụ dưới đõy, 3 điểm màu của ảnh 24bit sử dụng 9 bytes bộ nhớ.

(00100111 11101001 11001000) (00100111 11001000 11101001) (11001000 00100111 11101001)

Khi kớ tự “A” – cú giỏ trị nhị phận là 10000001, được chốn vào:

(00100111 11101000 11001000) (00100110 11001000 11101000) (11001000 00100111 11101001)

Trong trường hợp này, chỉ cú ba bit (gạch chõn) cần thiết phải thay đổi để cú thể chốn thành cụng kớ tự “A”. Trung bỡnh chỉ cần thay đổi một nửa số lượng bit của ảnh để giấu thụng điệp bớ mật trong trường hợp thụng điệp cần giấu sử dụng kớch thước phủ tối đa. Những thay đổi này được nhắm đến cỏc bit ớt quan trọng nhất, do vậy quỏ khú để nhận ra bằng mắt thường. Túm lại, thụng điệp đó được giấu một cỏch hiệu quả.

Trong khi ảnh 24bits cú một khoảng khụng gian đủ rộng để ẩn giấu thụng điệp, thỡ nếu sử dụng ảnh 8bits làm bản phủ, với khụng gian hẹp hơn, ảnh 8bit đũi hỏi phải cú một phương phỏp tiếp cận thận trọng hơn. Trong khi ảnh 24 bit sử dụng 3 bytes để thể hiện một điểm ảnh, thỡ ảnh 8 bit chỉ sử dụng duy nhất 1 byte. Thay đổi LSB của byte này sẽ dẫn đến thay đổi nhỡn thấy được về mầu sắc, vỡ màu mới sẽ xuất hiện trong bảng màu. Vỡ vậy mà bản phủ (ảnh) cần phải được lựa chọn kĩ lưỡng hơn và tốt nhất là ảnh (adsbygoogle = window.adsbygoogle || []).push({});

xỏm, vỡ mắt con người khú phỏt hiện ra sự khỏc biệt giữa cỏc màu xỏm với nhau hơn là sự khỏc biệt giữa cỏc màu sắc khỏc.

3.2 Kỹ thuật che giấu

Kĩ thuật che giấu thường cú những hạn chế nhất định với ảnh 24bits và ảnh xỏm, kĩ thuật này sử dụng cỏch tiếp cận tương đối khỏc để giấu thụng điệp. Nú gần giống với thủy võn trờn giấy, tạo dấu ấn trờn ảnh. Phương phỏp này cú thể che giấu thụng tin bằng cỏch, vớ dụ như là thay đổi độ chúi ở một số phần trong ảnh. Kĩ thuật che giấu khai thỏc khớa cạnh thị giỏc của con người đối với ảnh, nú bền vừng hơn trước cỏc thao tỏc nộn ảnh, xộn ảnh và một số thao tỏc xử lớ ảnh khỏc so với LSB sửa đổi. Thụng tin khụng được giấu ở mức “nhiễu” (mức bit thấp) mà là ở bờn trong phần cú thể nhỡn được của ảnh, điều đú làm cho kĩ thuật này phự hợp hơn so với LSB sửa đổi trong trường hợp thuật toỏn nộn mất mỏt như JPEG được sử dụng

3.3 Biến đổi

Phương phỏp phức tạp hơn của giấu tin trong ảnh đú là sử dụng và sửa đổi DCT (Discrete Cosine Transform)- biến đổi cosin rời rạc. DCT được sử dụng bởi thuật toỏn nộn ảnh JPEG để biến đổi cỏc khối điểm ảnh 8x8 thành 64 hệ số DCT. Mỗi hệ số DCT F(u,v) của một khối điểm ảnh 8x8 với tọa độ ảnh f(x,y) được tớnh như sau:       + + = ∑∑ = = 7 0 7 0 16 ) 1 2 ( cos 16 ) 1 2 ( cos * ) , ( ) ( ) ( 4 1 ) , ( x y v y u x y x f v C u C v u F π π

Trong đú C(x) = 1/ 2 khi x = 0 và C(x)=1. Sau khi tớnh toỏn cỏc hệ sộ, lượng tử húa được thực hiện như sau:

FQ(u,v) =       ) , ( ) , ( v u Q v u F

Trong đú Q(u,v) là bảng lượng tử 64 thành phần. Thuật toỏn đơn giản để giấu thụng điệp trong ảnh JPEG cú thể thấy như sau:

Đầu vào: Thụng điệp, bản phủ

Đầu ra: Ảnh đó phủ chứa thụng điệp

While vẫn cũn dữ liệu để nhỳng do

Lấy hệ số DCT tiếp theo từ bản phủ

If DCT <> 0 và DCT <> 1 then

Lấy LSB tiếp theo từ thụng điệp

Thay thế DCT LSB bằng bit thuộc thụng điệp

End if

Chốn DCT vào ảnh đang được phủ

End while

Mặc dự sự thay đổi với chỉ một hệ số DCT sẽ ảnh hưởng đến cả 64 điểm ảnh, LSB của hệ số DCT lượng tử cú thể được sử dụng để giấu thụng tin. Ảnh nộn khụng mất mỏt cú khả năng bị nghi ngờ là đó bị sửa đổi khi thay đổi LSB. Điều này khụng xảy ra với phương phỏp nờu ở trờn, vỡ phương phỏp này thực hiện trờn miền tần số bờn trong ảnh, thay vỡ trờn miền khụng gian và do vậy sẽ khụng cú sự thay đổi dễ nhận thấy được so với ảnh gốc (bản phủ)

Khi thụng tin được giấu trong video, chương trỡnh hoặc người giấu tin thường sẽ sử dụng phương phỏp DCT. DCT được thực hiện bằng cỏch thay đổi từng hỡnh ảnh trong đoạn video, chỉ

cú như vậy thỡ những thay đổi đú mới khụng thể nhận biết được bằng mắt thường. Cụ thể hơn, DCT thay đổi cỏc giỏ trị của những phần nhất định của ảnh, nú thường được làm trũn tăng lờn.

Vớ dụ nếu một phần của ảnh cú giỏ trị là 6.667 thỡ sẽ được làm trũn thành 7. Giấu tin trong video cũng tương tự như giấu tin trong ảnh, điểm khỏc biệt chỉ là ở chỗ thụng tin được giấu trong mỗi khung của video. Khi thụng tin được giấu trong video khụng nhiều thỡ nhỡn chung khú cú thể nhận thấy được bằng mắt thường, tuy vậy lượng thụng tin giấu bờn trong càng nhiều thỡ khả năng bị phỏt hiện càng cao.

3.4 Đề xuất

Tệp tin AVI độ nột cao đơn giản chỉ là nối tiếp liờn tục cỏc hỡnh ảnh cú độ phõn giải cao, được gọi là cỏc khung (frames). Trước tiờn, chỳng ta sẽ chạy một đoạn video và thu lại tất cả cỏc khung dưới dạng bitmap như ở hỡnh dưới đõy. Đồng thời chỳng ta cũng thu thập một số thụng tin sau:

a. Khung bắt đầu (starting frame): Đú là khung đầu tiờn mà từ đú thuật toỏn bắt đầu nhỳng thụng điệp

b. Khối macro (macroblock[3]) đầu tiờn: chỉ ra khối macro trong khung đó chọn để từ đú thuật toỏn bắt nhỳng thụng điệp

c. Số lượng khối macro: xỏc định cú bao nhiờu khối macro trong một khung được sử dụng để giấu dữ liệu. Cỏc khối macro này cú thể là khung liờn tiếp dựa trờn kiểu định trước. Rừ ràng là chỳng ta càng sử dụng nhiều khối macro thỡ càng làm tăng khả năng giấu tin hơn. Ngoài ra, nếu kớch thước của thụng điệp cố

định thỡ số lượng cỏc khối macro này cũng cố định. Ngược lại nú

Một phần của tài liệu giấu tin trong tập tin avi (Trang 51 - 79)