Mô hình của quá trình giấu thông tin

Một phần của tài liệu Bảo mật thông tin trên cơ sở giấu tin trong ảnh (Trang 39)

■SRSHP trường nhúng k h o á giâu K -► trường m m g m -► nhúng

(H 2.13 Mô hình của quá trình giấu tin)

• Giai đoạn nhúng thông tin : z = E(X, M, K) • Giai đoạn tách thông tin : M * = E '(Z, K) Trong đó:

■ X : ảnh môi trường ■ M : thông tin cần giấu

■ K : khoá giấu tin, được sử dụng chung cho cả 2 giai đoạn ■ z : ảnh kết quả thu được ở b ư ớ c giấu tin

■ M * : thông tin tách ra từ ảnh kết quả, đối với trường hợp giấu tin tốt thì M *= M

■ E : thuật toán giấu thông tin ■ E '1 : thuật toán tách thông tin

Để tăng cường tính bảo mật người ta thường kết hợp 2 phương pháp: mã hoá và giấu tin. Sơ đồ cho mô hình kiểu này có dạng như sau (H 2.14):

Mih moi trường

nhúng

K

Quá trình giấu tin - Tách tin

E E 1 ► . ím ữ i ->■ trường ' n p p -► nhúng

(H 2.14 Mô hình của quá trình giấu tin có sử dụng mã hoá)

Trong trường hợp này, đầu tiên các thông tin cần giấu được mã hoá sau đó bản mã mới được nhúng vào ảnh môi trường. Sau khi thông tin được tách ra khỏi môi trường sẽ được giải mã trở lại bản rõ ban đầu.

2.3 GIỚI THIỆU CÁC KỸ THUẬT GIẤU TIN TRONG ẢNH

Qua quá trình nghiên cứu và phát triển, nhiều kỹ thuật giấu tin đã được giới thiệu, nhìn chung các kỹ thuật này được chia thành ba nhóm phương pháp [1], mỗi nhóm phương pháp bao gồm các kỹ thuật xử lý khác nhau, cụ thể gồm các nhóm: nhóm các kỹ thuật dựa trên việc nhúng dữ liệu vào miền LSB, nhóm các kỹ thuật nhúng dữ liệu dựa trên các phép xử lý ảnh và nhóm kỹ thuật sử dụng "mặt nạ giác quan" (perceptual masking). Chúng ta sẽ điểm qua các nhóm kỹ thuật nói trên.

Như chúng ta đã biết, một bức ảnh số bao gồm một ma trận các giá trị màu và độ sáng. Với một ảnh đa cấp xám điển hình, mỗi điểm ảnh được biểu diễn bởi 8 bit; với một ảnh 24 bít màu, mỗi điểm ảnh được biểu diễn bằng 3 byte (24 bit), mỗi byte biểu diễn một trong ba màu cơ bản (Red, Green, Blue).

LSB (Least Significant Bit) là kỹ thuật giấu tin đơn giản nhất, thực hiện nhúng trực tiếp các bít dữ liệu vào miền các bít ít ý nghĩa nhất của ảnh nguồn. Việc điều chế các bit LSB không gây ra sự khác biệt giữa ảnh nguồn và ảnh kết quả đối với cơ quan cảm giác của con người vì sự thay đổi là rất nhỏ, không đáng kể. Có một số kỹ thuật thuộc nhóm này đã sử dụng một dãy nhiễu giả ngẫu nhiên trong hoặc sau khi thực hiện giấu các bít thông tin vào ảnh nguồn.

Ưu điểm của kỹ thuật LSB chính là tính đơn giản của nó và kỹ thuật này đã được sử dụng rất nhiều [12]. Kỹ thuật LSB còn có tính trong suốt đối với tri giác cao. Tuy nhiên khi cân nhắc tới các yêu cầu về tính bền vững, khả năng chống giả inạo và các vấn đề về bảo mật thì kỹ thuật này còn bộc lộ nhiều nhược điểm. Kỹ thuật LSB rất nhạy cảm với các phép lọc và xử lý ảnh. Có thể nói các thao tác xử lý ánh như phép quay ảnh, điều chỉnh tỷ lệ, cộng nhiễu, nén mất dữ liệu chính là việc phá huỷ các thông tin giấu trong ảnh. Hơn nữa, đối phương có thể loại bỏ các thông tin giấu bằng cách loại bỏ toàn bộ miền bit LSB mà chỉ gây ra một chút thay đổi nhỏ về chất lượng ảnh môi trường đối với cơ quan cảm giác của con người.

Một dẫn chứng cho nhược điểm của kỹ thuật LSB [JJ, "Steganos" là một chương trình giấu tin sử dụng kỹ thuật LSB được phát triển ở Đức có thể nhúng dữ liệu vào nhiều loại môi trường khác nhau như ảnh, âm thanh và văn bản. Phiên bản mới nhất của "Steganos" là bản 1.5. ảnh nguồn (H 2.15a) được sử dụng là ảnh đa cấp xám, có kích thước 256x256, thông tin cần giấu đặt trong tệp văn bản với nội dung:

"Digital Image Steganography: Data Sneaking Between the Pixels". Sử dụng Steganos (không dùng mật khẩu) để giấu tin cho ảnh kết quả (H 2.15b). Sự khác nhau giữa ảnh nguồn và ảnh kết quả được thể hiện ở hình (H 2.15c), trong đó các điểm "trắng" thể hiện sự khác nhau giữa hai ảnh. Thực hiện thêm nhiễu vào ảnh kết quả theo mật độ Gauss cho hình (H 2.15d), lúc này Steganos không thể tách thông tin từ ảnh kết quả, nó đưa ra một thông báo yêu cầu nhập mật khẩu để giải mã.

(H 2.15 c) (H2.15d)

(Ảnh trích dơn từ IU)

2.3.2 Phương pháp sử dụng các kỹ thuật xử lý ảnh ( T r a n s f o r m

E m b e d d in g T e c h n iq u e s )

C á c ả n h t r o n g đ ó c ó sử d ụ n g th u ậ t to á n n é n m ấ t d ữ liệ u th ư ờ n g đ ư ợ c á p d ụ n g c á c k ỹ th u ậ t n à y đ ể g iấ u th ô n g tin . Q u á t r ìn h g iấ u tin đ ư ợ c t iế n h à n h b ằ n g c á c h b iế n đ ổ i c á c h ệ s ố t r o n g m ộ t m iề n x ử l ý , c h ẳ n g h ạ n p h é p b iế n đ ổ i c o s in rờ i r ạ c ( D C T - D is c r e t e C o s in e T r a n s f o r m ) sử d ụ n g tr o n g c á c ả n h n é n d ạ n g J P E G h a y p h é p b iế n đ ổ i F o u r ie r rờ i rạ c ( D is c r e t e F o u r ie r T r a n s f o r m ) :

2.3.2.1 Phép biến đổi cosin rời rạc (DTC)

D T C th ư ờ n g đ ư ợ c sử d ụ n g tr o n g c á c p h é p n é n ả n h ( J P E G ) . Q u á t r ìn h n é n ả n h sử d ụ n g D T C đ ư ợ c t iế n h à n h th e o c á c b ư ớ c [ 1 6 ] :

> C h u y ể n ả n h s a n g h ệ m à u Y I Q

> Tác động phép biến đổi cosin lên từng khối (adsbygoogle = window.adsbygoogle || []).push({});

> Các giá trị được lượng tử hoá bằng cách chia cho các giá trị lượng tử cho trước (lưu trữ trong một bảng)

> Cuối cùng các giá trị được làm tròn về giá trị nguyên gần nhất. Quá trình trên được mô tả qua hình H 2.16

8 X 8 ẢNH NÉN

ft.

1r

DCT W BÔ LƯƠNG TỬ MÃ ENTROPY

Bảnglượng tử

(H 2.16 Quá trình nén ảnh JPEG sử dụng phép biến đổi Cosin [161)

2.3.2.2 Phép biến đổi Fourier rời rạc (DFT)

DFT được sử dụng để giấu tin trong quá trình điều chế tần số. Kỹ thuật giấu tin này cho phép tăng cường tính bền vững để có thể khắc phục việc nén mất dữ liệu (với một lý do đơn giản là nó được thiết kế để chống lại các thuật toán nén có mất dữ liệu thông thường), ngoài ra nó còn có khả năng tăng cường tính bển vững đối với các phép điều chỉnh tỷ lệ, quay ảnh hay cắt ảnh tuỳ thuộc vào các tham số khác nhau của mỗi phép xử lý.

16 11 10 16 24 40 51 61 12 12 14 19 26 58 60 55 14 13 16 24 40 57 69 56 14 17 22 29 51 87 80 62 18 22 37 56 68 109 103 77 24 35 55 64 81 104 113 92 49 64 78 87 103 121 120 101 72 92 95 98 112 100 103 99

Một đại diện cho kỹ thuật giấu tin kiểu này là phần mềm "Jpeg-Jsteg" r 121. Các thông tin được giấu thông qua phép biến đổi cosin rời rạc đối với các tham số của ảnh môi trường dựa trên các bít dữ liệu của thông tin giấu và loại bỏ các lỗi trong quá trình lượng tử hoá.

Trong trường hợp vấn đề về tính bền vững được đặt lên hàng đầu thì các kỹ thuật trải phổ và mã tự sửa lỗi được sử dụng [10,11,13]. Các watermark hay thông tin cần giấu được coi như một tín hiệu có giải tần số thấp, ảnh môi trường lúc này được coi như một tín hiệu có giải tần số cao. Bằng các trải năng lượng của thông tin giấu qua các băng tần, tại đó năng lượng sẽ bị giảm xuống điều này khiến cho việc phát hiện thông tin giấu hoặc làm hỏng ảnh môi trường trở nên khó khăn hơn. Trong quá trình nhúng thông tin có thể cài thêm các mã tự sửa lỗi để cho phép khôi phục trong trường hợp một số vùng ảnh chứa thông tin giấu bị phá hỏng hoặc bị thay thế.

2.3.3 Phương pháp sử dụng kỹ thuật "M ạ t nạ giác quan" (Perceptual

Masking Systems)

Gần đây phát triển một hướng nghiên cứu mới nhằm mở rộng khả nãng giấu và tăng cường tính bền vững trong kỹ thuật giấu tin. Xuất phát từ việc khai thác các đặc điểm của hệ thống thị giác của con người [10,11,141, người ta đã phát triển kỹ thuật giấu tin gọi là "Mặt nạ giác quan". Khái niệm mặt nạ được nói tới như là hiện tượng một người quan sát không thể cảm nhận được một tín hiệu khi cạnh nó tồn tại một tín hiệu khác.

Kỹ thuật "Mặt nạ giác quan" thực hiện phân tích ảnh môi trường, từ đó tìm ra các vùng thích hợp để đặt thồng tin cần giấu vào. Ngoài ra để tăng cường được tối đa khả năng bền vững, kỹ thuật này còn sử dụng quá trình phân tích để biến đổi biên độ của các dữ liệu nhúng dựa trên các đặc điểm của ảnh môi trường. Với kỹ thuật này, dữ liệu có thể được nhúng trong toàn bộ miền không gian ảnh hoặc trong một vùng xử lý.

CHƯƠNG 3

THUẬT TOÁN GIẤU TIN TRONG ẢNH

T r o n g c á c n g h iê n cứ u ở c h ư ơ n g trư ớ c đ ã t r ìn h b à y c á c v ấ n đ ề c ó liê n q u a n tớ i ả n h m ô i trư ờ n g . C á c n ộ i d u n g s a u sẽ đ ư ợ c n g h iê n c ứ u ở c h ư ơ n g 3 : c á c t h u ậ t to á n g iấ u t in c ơ b ả n đ ố i v ớ i m ộ t s ố lo ạ i ả n h ; từ n h ữ n g th u ậ t to á n đ ã n ê u , ở p h â n t iế p th e o sẽ p h â n t íc h m ộ t p h ư ơ n g p h á p g iấ u tin tr o n g ả n h sử d ụ n g k ỹ th u ậ t L S B ; m ộ t s ố m ặ t h ạ n c h ế c ủ a k ỹ th u ậ t g iấ u tin ; p h ầ n c u ố i là c á c tấ n c ô n g v à c á c b iệ n p h á p k h ắ c p h ụ c c ủ a k ỹ t h u ậ t g iấ u t in N h ư c h ú n g ta đ ã b iế t m ỗ i lo ạ i ả n h c ó c ấ u tr ú c k h á c n h a u , t u ỳ th u ộ c v à o c á c sự k h á c n h a u n à y ta p h ả i á p d ụ n g c á c th u ậ t to á n p h ù h ợ p . T h e o sự k h á c n h a u v ề c ấ p đ ộ m à u c ủ a ả n h , c ó th ể p h â n c h ia th u ậ t to á n th à n h c á c lo ạ i s a u : c á c th u ậ t to á n x ử l ý tr ê n ả n h đ e n tr ắ n g (ả n h n h ị p h â n ) , c á c th u ậ t to á n x ử l ý tr ê n ả n h đ a c ấ p x á m v à c á c th u ậ t to á n x ử lý tr ê n ả n h m à u . C h ú n g ta sẽ n g h iê n c ứ u v ề c á c lo ạ i th u ậ t to á n t h e o sự p h à n lo ạ i tr ê n t r o n g đ ó sẽ tậ p t r u n g v à o c á c th u ậ t to á n g iấ u t in tr o n g ả n h đ e n tr ắ n g v à ả n h đ a c ấ p x á m b ở i v ì th u ậ t to á n g iấ u tin tr o n g ả n h m à u là tr ê n c ơ sở c ủ a th u ậ t to á n g iấ u t in tr o n g ả n h đ a c ấ p x á m , c ó t ín h đ ế n v iệ c g iấ u t in v à o b y te n à o t r o n g s ố c á c b y te b iể u d iễ n đ iể m ả n h .

3.1 THUẬT TOÁN GIẤU THÔNG TIN TRONG K H O I B IT

Đ ể t r iể n k h a i k ỹ th u ậ t g iấ u th ô n g t i n , th u ậ t to á n g iấ u th ô n g t in t r o n g k h ố i b ít c ó ý n g h ĩa đ ặ c b iệ t q u a n tr ọ n g . N ó c ó ứ n g d ụ n g trự c tiế p c h o c á c ả n h m ô i tr ư ờ n g k iế u n h ị p h â n ( c h ỉ c ó 2 m à u đ e n v à t r ắ n g ) c h ẳ n g h ạ n c á c b ả n p h o to c o p y , F A X , m ã v ạ c h h a y c á c ả n h đ e n tr ắ n g .

3.1.1 Thuật toán chuẩn

K ý h iệ u H là ả n h m ô i tr ư ờ n g , G là th ô n g tin c ầ n g iấ u ; K ý h iệ u Sh là h à m g iấ u v à Sr l à h à m tá c h d ữ liệ u từ ả n h m ô i trư ờ n g . T a c ó :

H' = Sh(H, G, K)

Sr(H \ K) = Sr(Sh(H, G, K), K) = G

• H' là ảnh kết quả (gồm ảnh môi trường + thông tin giấu). H' phải thoả mãn các yêu cầu: thứ nhất, khó phát hiện ra rằng H' có chứa thông tin giấu; thứ hai, H' gần như không có khác biệt so với H

• K là khóa bí mật được dùng trong cả 2 giai đoạn giấu tin và tách tin Ký hiệu Bi là một khối bít có kích thước (m X n); Ký hiệu (B1AB2) là phép bitwise AN D và (B1© B2) là phép bitwise XOR giữa các phần tử cùng vị trí của hai khối bít; [B]ị J là phần tử hàng thứ i và cột thứ j; SƯM(B) là tổng tất cả các phần tử của khối bít.

Ký hiệu F là khối bít dùng làm môi trường, K là khóa bí mật. Cả F và K đều là (adsbygoogle = window.adsbygoogle || []).push({});

các khối bít kích thước (m X n ) . Giấu dữ liệu đồng nghĩa với việc thay thế một số bít

trong khối bít F.

Thuật toán được mô tả như sau:

51. Chia tệp dữ liệu môi trường F thành các khối Fj có kích thước (m X n)

Với mỗi khối Fị kiểm tra điều kiện: 0 < SUM(FjAK) < SƯM(K); Nếu thỏa mãn thì thực hiện bước S3 để giấu 1 bít vào khối F|; còn không thì khối không được dùng để giấu dữ liệu.

52. Ký hiệu bít cần giấu trong khối F| là b. Thủ tục sau đây được gọi để giấu một bít dữ liệu:

i f (SƯM(FjAK) mod 2 = b) thì giữ nguyên Fj else i f (SUM(FjAK) mod 2 = 1) thì

chọn ngẫu nhiên phần tử thứ (j,k) của khối Fj thỏa mãn điều kiện

([F ilj,k = 0) and ([K ]j k= 1) và thay ([FJjk = 1)

else if (SUM(FjAK) = S U M (K )-l) thì

chọn ngẫu nhiên phần tử thứ (j,k) của khối Fj thỏa mãn điều kiện ([Fị]jik = 1) and ([K ]j k = l ) v à thay

([FJj,k = 0) else

( [ K ] j k = 1 ) h o á n đổi ( [ F ị ] jtk = 0 ) e n d if ;

T r o n g m ỗ i k h ố i b ít th ỏ a m ã n đ iề u k iệ n 0 < S Ư M ( F i AK ) < S U M ( K ) c ó m ộ t b ít đ ư ợ c g iấ u k h i đ ó F i c h u y ể n th à n h F i' v à b iể u th ứ c s a u th ỏ a m ã n :

0 < SƯM(FiAK) < SUM(K) = > SUM (F’AK) = b ( m o d 2 ) (E l)

h a y : b = SUM(Fi'AK) ( m o d 2 ) T a c ó th ể n h ậ n t h ấ y v ì c h ỉ c ó t ố i đ a m ộ t b ít t r o n g k h ố i g iấ u d ữ liệ u b ị th a y đ ổ i g iá t r ị (từ 0 s a n g 1 h o ặ c n g ư ợ c l ạ i ) n ê n n ế u k íc h th ư ớ c k h ố i ( m X n ) đủ lớn t h ì sự th a y đ ổ i n à y k h ó n h ậ n th ấ y b ằ n g m ắ t th ư ờ n g . V ớ i sơ đ ổ th u ậ t to á n tr ê n ta c ó m ộ t s ố n h ậ n x é t s a u : V ì p h é p A N D đ ư ợ c sử d ụ n g đ ể tín h SUM(FjAK), g iá tr ị c ự c đ ạ i c ủ a SUM(F;AK) k h ô n g th ể v ư ợ t q u á SUM(K) Do b ả n c h ấ t c ủ a p h é p to á n A N D , n ế u k h ố i b ít c ó th a y đ ổ i, n ó c h ỉ th a y đổi t ạ i c á c v ị t r í k h ó a K c ó g iá t r ị 1. V ậ y n ế u k h ố i b ít c ó g iá t r ị to à n b ít 0 h o ặ c to à n b ít 1 , n g ư ờ i m ã t h á m d ễ d à n g n h ậ n r a sự t h a y đ ổ i v à từ đ ó t ì m ra g iá tr ị c ủ a k h ó a K . D o v ậ y m à v ù n g th ỏ a m ã n SUM(FiAK) = 0 v à SUM(FjAK) =

SUM(K) k h ô n g đ ư ợ c sử d ụ n g đ ể g iấ u d ữ liệ u .

N ế u c ó t h a y đổi tr o n g k h ố i Fj th ì th a y đổi c h ỉ d iễ n ra t ạ i c á c vị t r í K n h ậ n g iá t r ị 1. V â y n ế u K c ó q u á í t b it 1 t h ì b ấ t đ ẳ n g th ứ c th ứ h a i c ủ a đ iề u k iệ n 0

< SƯM(FịAK) < SƯM(K) k h ô n g d ễ th ỏ a m ã n . M ặ t k h á c , tr o n g m ộ t số ứ n g

d ụ n g đ ò i h ỏ i tớ i d u n g lư ợ n g g iấ u tin t h ì 1 b ít t r o n g m ộ t k h ố i là q u á ít.

3.1.2 Thuật toán cải tiến CPT

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 (adsbygoogle = window.adsbygoogle || []).push({});

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độ 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

Một phần của tài liệu Bảo mật thông tin trên cơ sở giấu tin trong ảnh (Trang 39)