Khái niệm bit có trọng số thấp LSB

Một phần của tài liệu Luận văn công nghệ thông tin xây dựng ứng dụng giấu tin trong ảnh (Trang 30 - 61)

7. Kết cấu của đề tài

2.2.1. Khái niệm bit có trọng số thấp LSB

Bit có trọng số thấp là bit có ảnh hưởng ít nhất tới việc quyết định tới màu của mỗi điểm ảnh, vì vậy khi ta thay đổi bit ít quan trọng của một điểm ảnh thì màu của mỗi điểm ảnh mới sẽ tương đối gần với điểm ảnh cũ. Như vậy kỹ thuật tách bit trong xử lý ảnh đựợc sử dụng rất nhiều trong quy trình giấu tin. Việc xác định LSB của mỗi điểm ảnh trong một bức ảnh phụ thuộc vào định dạng của ảnh và số bit màu dành cho mỗi điểm của ảnh đó. Ví dụ đối với ảnh 16 bit thì 15 bit là biểu diễn 3 màu RGB của điểm ảnh còn bit cuối cùng không dùng đến thì ta sẽ tách bit này ra ở mỗi điểm ảnh để giấu tin, hoặc với ảnh 256 màu thì bit cuối cùng trong 8 bit biểu diễn một điểm ảnh được coi là bit ít quan trọng nhất…

Ví dụ: Tách bit cuối cùng trong 8 bit biểu diễn mỗi điểm ảnh của ảnh 256 màu

1001110 0 1001010 1 1110001 0

Bảng 2.1: Mổi điểm ảnh biểu diễn bởi 8 bit, bit cuối cùng được coi là bit ít quan trọng nhất tức là bit bên phải nhất.

Trong phép tách này ta coi bit cuối cùng là bit ít quan trọng nhất, thay đổi giá trị của bit này thì sẽ thay đổi giá trị của điểm ảnh lên hoặc xuống đúng một đơn vị, ví dụ như giá trị điểm ảnh là 234 thì khi thay đổi bit cuối cùng nó có thể mang giá trị mới là 235 nếu đổi bit cuối cùng từ 0 thành 1. Với sự thay đổi nhỏ đó ta hi vọng là cấp độ màu của điểm ảnh sẽ không bị thay đổi nhiều.

2.2.2. Phƣơng pháp giấu tin LSB

Ý tưởng: Phương pháp LSB (Least Significant Bit) sẽ thay thế bit ít quan trọng nhất, thường là bit cuối của mỗi mẫu dữ liệu bằng bít thông tin mật. Như vậy trên mỗi pixel của một ảnh BMP 24bit có thể giấu được từ 1 đến 3 bit mật.

Ví dụ mẫu 8 bit, bit cuối 0 được thay thế bởi bit thông tin mật 1:

Hình 2.1: Minh họa kĩ thuật giấu LSB

Ưu điểm của phương pháp này là dễ cài đặt và cho phép giấu dữ liệu nhiều. Có thể tăng thêm dữ liệu giấu bằng cách sử dụng hai bit LSB. Tuy nhiên cách làm này cũng làm tăng nhiễu trên đối tượng chứa dẫn đến đối phương dễ phát hiện và thực hiện các tấn công. Vì vậy dữ liệu chứa cần phải được chọn trước khi giấu sử dụng phương pháp này.

Để tăng độ an toàn cho kỹ thuật này, ta sử dụng một khóa bí mật K để mã hóa các thông tin mật trước khi đem giấu vào các bit LSB.

2.2.3. Sự khác nhau giữa giấu tin trong ảnh đen trắng với ảnh màu

Khởi nguồn của giấu thông tin trong ảnh là thông tin được giấu trong các ảnh màu hoặc ảnh xám, trong đó mỗi pixel ảnh mang nhiều giá trị, được biểu diễn bằng nhiều bit. Với ảnh đó thì việc thay đổi một giá trị nhỏ ở một pixel thì chất lượng ảnh gần như không thay đổi, và khả năng bị phát hiện rất thấp dưới con mắt người bình thường. Do đó hệ thống thị giác của con người cũng đóng một vai trò quan trọng trong việc bảo đảm tính không nhìn thấy thông tin được giấu trên ảnh. Với những ảnh mà mỗi điểm ảnh chỉ mang một giới hạn nhỏ các giá trị thì việc giấu thông tin trong ảnh đảm bảo tính vô hình của thông tin che giấu là một công việc khó khăn hơn nhiều. Đặc biệt với ảnh đen trắng, mỗi điểm ảnh chỉ mang một trong hai giá trị trắng hoặc đen. Vậy thì khi thay đổi giá trị một pixel từ đen thành trắng hoặc ngược lại thì rất dễ bị phát hiện. Một số thuật toán khác thì giấu chất lượng ảnh tốt hơn nhưng lượng thông tin giấu được ít và quá đơn giản không đảm bảo được độ an toàn thông tin. Bảng sau sẽ liệt kê những khác nhau cơ bản giữa giấu thông tin trong ảnh đen trắng và ảnh màu.

Giấu thông tin trong ảnh đen trắng Giấu thông tin trong ảnh màu hoặc ảnh xám

Thông tin giấu ít hơn Thông tin giấu nhiều hơn

Có cùng kích cỡ với ảnh

Khả năng bị phát hiện phương tiện có giấu thông tin cao hơn ảnh màu

Khả năng bị phát hiện thấp

Độ an toàn thông tin thấp do dễ bị phát hiện có thông tin chứa thông tin bên trong

Độ an toàn cao

Các thuật toán giấu ít, phức tạp Nhiều thuật toán và có nhiều hướng mở

rộng phát triển. Như áp dụng giải thuật di truyền.

Bảng 2.2 : Sự khác nhau giữa giấu thông tin trong ảnh đen trắng và ảnh màu

Ảnh gốc Ảnh có giấu tin

Ảnh gốc Ảnh có chứa tin

Hình 2.3: Ảnh đen trắng sau khi giấu cùng một lượng thông tin như ảnh màu nhưng chất lượng kém hơn.

2.3. Tiểu kết

Thuật toán giấu tin là phần cốt lõi trong một hệ giấu tin trong ảnh. Trong chương này nhóm đã xác định được thuật toán giấu tin LSB để sử dụng trong chương trình.

Chương tiếp theo, nhóm sẽ trình bày về các loại ảnh và chọn ra loại ảnh làm môi trường chứa thông tin cần giấu.

CHƢƠNG 3: TỔNG QUAN VỀ ẢNH BITMAP

Hiện nay, có rất nhiều định dạng ảnh như JPEG, PNG, GIF hay BITMAP. Tùy thuộc vào nhu cầu sử dụng hàng ngày mà ta dùng các loại ảnh thích hợp. Đối với môi trường mạng và thiết kế web đòi hỏi sự nhanh chóng cho sự truy cập từ các máy khách tới máy chủ nhưng chất lượng ảnh không được quá kém nên JPEG và PNG có thể đáp ứng nhu cầu này.

Đối với giấu tin trong ảnh ta cần đảm bảo các yêu cầu như an toàn vào bảo mật thông tin và một điều không kém quan trọng là số lượng thông tin được giấu càng nhiều càng tốt. Do đó, định dạng ảnh BITMAP có cấu trúc ảnh cố định với vùng dữ liệu ảnh giúp thỏa mãn những yêu cầu trên.

3.1. Sơ lƣợc về các loại ảnh JPEG, GIF, PNG

Ảnh JPEG

JPEG (tiếng Anh, viết tắt cho Joint Photographic Experts Group) là một trong những phương pháp nén ảnh hiệu quả, có tỷ lệ nén ảnh tới vài chục lần. Tuy nhiên ảnh sau khi giải nén sẽ khác với ảnh ban đầu. Chất lượng ảnh bị suy giảm sau khi giải nén. Sự suy giảm này tăng dần theo hệ số nén. Tuy nhiên sự mất mát thông tin này là có thể chấp nhận được và việc loại bỏ những thông tin không cần thiết được dựa trên những

nghiên cứu về hệ nhãn thị của mắt người.[14]

Phần mở rộng của các file JPEG thường có dạng .JPEG, .JFIF, .JPG, hay .JPE; dạng .JPG là dạng được dùng phổ biến nhất. Hiện nay dạng nén ảnh JPEG rất được phổ biến trong điện thoại di động cũng như những trang thiết bị lưu giữ có dung lượng nhỏ

Ảnh GIF

GIF (viết tắt của Graphics Interchange Format; trong tiếng Anh nghĩa là "Định dạng trao đổi hình ảnh") là một định dạng tập tin hình ảnh bitmap cho các hình ảnh dùng ít hơn 256 màu sắc khác nhau và các hoạt hình dùng ít hơn 256 màu cho mỗi khung hình. GIF là định dạng nén dữ liệu đặc biệt hữu ích cho việc truyền hình ảnh

qua đường truyền lưu lượng nhỏ. Định dạng này được CompuServe cho ra đời vào

năm 1987 và nhanh chóng được dùng rộng rãi trên World Wide Web cho đến nay.[13]

Tập tin GIF dùng nén dữ liệu bảo toàn trong đó kích thước tập tin có thể được giảm mà không làm giảm chất lượng hình ảnh, cho những hình ảnh có ít hơn 256 màu. Số lượng tối đa 256 màu làm cho định dạng này không phù hợp cho các hình chụp (thường có nhiều màu sắc), tuy nhiên các kiểu nén dữ liệu bảo toàn cho hình chụp nhiều màu cũng có kích thước quá lớn đối với truyền dữ liệu trên mạng hiện nay. Định dạng JPEG là nén dữ liệu thất thoát có thể được dùng cho các ảnh chụp, nhưng lại làm giảm chất lượng cho các bức vẽ ít màu, tạo nên những chỗ nhòe thay cho các đường sắc nét, đồng thời độ nén cũng thấp cho các hình vẽ ít màu. Như vậy, GIF thường được dùng cho sơ đồ, hình vẽ nút bấm và các hình ít màu, còn JPEG được dùng cho ảnh chụp.

Định dạng GIF đã được đăng ký sở hữu trí tuệ bởi Unisys, và những ai muốn viết chương trình để tạo ra hoặc hiển thị tập tin GIF phải trả tiền bản quyền. Tiêu chuẩn định dạng PNG đã ra đời để thay thế GIF, giảm các hạn chế luật pháp và hạn chế công nghệ. Nay giấy phép sở hữu trí tuệ của Unisys đã hết hạn, nhưng PNG vẫn được ưa chuộng do có nhiều tính năng kỹ thuật vượt trội, và đã trở thành định dạng phổ biến thứ 3 trên mạng.

Ảnh PNG

PNG (từ viết tắt trong tiếng Anh của Portable Network Graphics; chính thức đọc như "pinh") là một dạng hình ảnh sử dụng phương pháp nén dữ liệu mới - không làm mất đi dữ liệu gốc. PNG được tạo ra nhằm cải thiện và thay thế định dạng ảnh GIF với một định dạng hình ảnh không đòi hỏi phải có giấy phép sáng chế khi sử dụng. PNG được hỗ trợ bởi thư viện tham chiếu libpng, một thư viện nền tảng độc lập bao

gồm các hàm của C để quản lý các hình ảnh PNG.[15]

Những tập tin PNG thường có phần mở rộng là PNG và đã được gán kiểu chuẩn MIME là image/png (được công nhận vào ngày 14 tháng 10 năm 1996).

Động cơ thúc đẩy cho việc tạo ra định dạng PNG bắt đầu vào khoảng đầu năm 1995, sau khi Unisys công bố họ sẽ áp dụng bằng sáng chế vào thuật toán nén dữ liệu LZW- được sử dụng trong định dạng GIF. Thuật toán được bảo vệ bởi bằng công nhận độc quyền sáng tạo ở trong nước Mỹ và tất cả các nước trên thế giới. Tuy nhiên, cũng đã có một số vấn đề với định dạng GIF khi cần có một số thay đổi trên hình ảnh, nhất

giới hạn của nó là 256 màu trong thời điểm máy tính có khả năng hiển thị nhiều hơn 256 màu đang trở nên phổ biến. Mặc dù định dạng GIF có thể thể hiện các hình ảnh động, song PNG vẫn được quyết định là định dạng hình ảnh đơn (chỉ có một hình duy nhất). Một người "anh em" của nó là MNG đã được tạo ra để giải quyết vấn đề ảnh động. PNG lại tăng thêm sự phổ biến của nó vào tháng 8 năm 1999, sau khi hãng Unisys huỷ bỏ giấy phép của họ đối với các lập trình viên phần mềm miễn phí, và phi thương mại.

3.2. Cấu trúc ảnh Bitmap

3.2.1. Tổng quan về ảnh Bitmap

Trong đồ họa máy vi tính, BMP, còn được biết đến với tên tiếng Anh khác là Windows bitmap, là một định dạng tập tin hình ảnh khá phổ biến. Các tập tin đồ họa lưu dưới dạng BMP thường có đuôi là .BMP hoặc .DIB (Device Independent Bitmap).[12]

Số bit trên mỗi điểm ảnh (bit per pixel), thường được ký hiệu bởi n. Một ảnh BMP n-bit có màu. Giá trị n càng lớn thì ảnh càng có nhiều màu, và càng rõ nét hơn. Giá trị tiêu biểu của n là 1 (ảnh đen trắng), 4 (ảnh 16 màu), 8 (ảnh 256 màu), 16 (ảnh 65536 màu) và 24 (ảnh 16 triệu màu). Ảnh BMP 24-bit có chất lượng hình ảnh trung thực nhất.

Đặc điểm nổi bật nhất của định dạng BMP là tập tin hình ảnh thường không được nén bằng bất kỳ thuật toán nào. Khi lưu ảnh, các điểm ảnh được ghi trực tiếp vào tập tin - một điểm ảnh sẽ được mô tả bởi một hay nhiều byte tùy thuộc vào giá trị n của ảnh. Do đó, một hình ảnh lưu dưới dạng BMP thường có kích cỡ rất lớn, gấp nhiều lần so với các ảnh được nén (chẳng hạn GIF, JPEG hay PNG).

Định dạng BMP được hỗ trợ bởi hầu hết các phần mềm đồ họa chạy trên Windows, và cả một số ứng dụng chạy trên MS-DOS. Ngay từ Windows 3.1, Microsoft đã cho ra đời phần mềm PaintBrush, một phần mềm hỗ trợ vẽ hình ảnh đơn giản và lưu hình ảnh được vẽ dưới dạng BMP 16 hay 256 màu. Tuy nhiên, do kích thước tập tin ảnh BMP quá lớn, định dạng BMP không phù hợp để trao đổi hình ảnh qua mạng Internet (do hạn chế về tốc độ truyền dữ liệu). Do đó, các trang web thường sử dụng ảnh dạng GIF, JPEG hay PNG. Các định dạng này hỗ trợ các thuật toán nén hình ảnh, vì vậy có thể giảm bớt kích cỡ của ảnh.

3.2.2. Cấu trúc ảnh Bitmap

Cấu trúc tập tin ảnh BMP bao gồm 4 phần:

 Bitmap Header (14 bytes): giúp nhận dạng tập tin bitmap.

 Bitmap Information (40 bytes): lưu một số thông tin chi tiết giúp hiển thị

ảnh.

 Color Palette (4*x bytes), x là số màu của ảnh: định nghĩa các màu sẽ được sử dụng trong ảnh.

 Bitmap Data: lưu dữ liệu ảnh.

Bitmap Header

Phần này có độ lớn cố định là 14 bytes, phần này dùng để mô tả thông tin chung về tệp như kiểu tệp, độ lớn và một số thông tin liên qua đến tệp.

Offset(byte) Giá Trị ngh a

1 „B‟ Định dạng kiểu tệp

2 „M‟ Định dạng kiểu tệp

3->6 Unsigned long Kích thước tệp

7->10 Zero Reserved

11->14 Unsigned long Địa chỉ phần dữ liệu

Bảng 3.1 : Bitmap Header

Trong phần Bitmap Header có mô tả thông tin về độ dài tệp , thông tin này thực sự cần thiết với mọi chương trình .Tuy nhiên qua thực nghiệm thấy rằng với một số tệp thông tin này không chính xác. Do đó trong báo cáo đưa cách tính kích thước tệp bitmap thông qua công thức:

Tệp_Size=Sizeof(Bitmap Header ) + Sizeof(Bitmap Infor) + Sizeof(Pallete) + Sizeof(Data)

Địa chỉ vị (offset) của vùng dữ liệu có thể được xác định thông qua công thức : Địa chỉ vùng data = 54+ Sizeof(Pallete)

Đối với ảnh đen trắng và ảnh màu có số lượng màu lớn hơn 256 thì giá trị địa chỉ cố định là 54.

Bitmap Information

Phần Bitmap Infor dùng để mô tả thông tin về ảnh đang dùng được lưu trữ trong tệp kích thước của phần này cố định là 40 byte.

Ý nghĩa và giá trị của từng trường trong vùng Bitmap Infor được mô tả chi tiết trong bảng :

Offset(byte) Giá Trị ngh a

1->4 40 Số lượng byte của vùng

bitmap info

5->8 Unsigned long Độ rộng của ảnh tính theo

Pixel

9->12 Unsigned long Độ cao của ảnh tính theo

Pixel

13->14 1 Number of Color Plans

15->16 Unsigned long Số bit để biểu diễn 1 pixel

17->20 Unsigned long Kiểu nén

21->24 Unsigned long Độ lớn của ảnh (byte)

25->28 Unsigned long Độ phân giải của ảnh theo

chiều ngang

29->32 Unsigned long Độ phân giải của ảnh theo

33->36 Unsigned long Số lượng màu trong bảng màu

37->40 Unsigned long Số màu quan trọng

Bảng 3.2: Bitmap Information

Color Palette (Bảng màu)

Tiếp theo là Palette màu của BMP, gồm nhiều bộ có kích thước 4 byte xếp liền nhau theo cấu trúc Blue-Green-Red và một Byte dành riêng cho Itensity. Kích thước của vùng Palette màu bằng 4 x số màu của ảnh. Nếu số bits màu của ảnh (byte 15-16 của Info là 24 hoặc 32 thì không có vùng Palette). Vì Palette màu của màn hình có cấu tạo theo thứ tự Red-Green-Blue nên khi đọc Palette màu của ảnh BMP vào ta phải chuyển đổi lại cho phù hợp. Số màu của ảnh được biết dựa trên số Bits cho 1 pixel cụ thể là:

Nếu là ảnh 24 bit, th ì ColorTable không được biểu diễn.

Nếu là ảnh 8 bit thì ColorTable chứa 256 “entries” với mỗi “entry” chứa 4 byte của dữ liệu. 3 byte đầu tiên là giá trị cường độ màu Blue, Green, Red. Byte cuối cùng không được sử dụng và bằng zero.

Bitmap Data

Vùng dữ liệu ảnh là giá trị của điểm ảnh , kích thước của vùng dữ liệu ảnh phụ thuộc vào độ rộng , chiều cao và kiểu ảnh. Với ảnh 8 bit màu thì ta có công thức

Sizeof(Data)=Width * Height

Với ảnh có số màu lớn hơn 256 ta có công thức

Sizeof(Data)=Width * Height * Bit_Number_of_Pixel

Vậy tại vùng Data là giá trị các thành phần màu cơ bản , số lượng bit dùng để biểu diễn giá trị cho từng thành phần màu có thể sẽ khác nhau phụ thuộc vào chất lượng ảnh. Ảnh 24 bit mỗi thành phần màu đựơc lưu trữ bởi 8 bit và thứ tự lưu trữ là B, G, R.

Một phần của tài liệu Luận văn công nghệ thông tin xây dựng ứng dụng giấu tin trong ảnh (Trang 30 - 61)

Tải bản đầy đủ (PDF)

(61 trang)