Đây là thuật toán giấu tin trong khối bit do Yu-Yuan Chen, Hsiang-Kuang Pan, Yu-Chee Tseng của đại học Đài loan đề xuất cho ảnh đentrắng.
Thuật toán CPT(Chen-Pan-Tseng) thực hiện như sau:
* Input (Dữ liệu vào): Một ảnh gốc F dùng để giấu thông tin, F được chia thành các khồi nhỏ Fi, mỗi ma trận điểm ảnh Fi có kích thước m*n, r là số bít để giấu trong mỗi khối Fi (r thỏa mãn điều kiện 2r-1<m*n). Ma trận nhị phân K(ma trận khóa) cùng kích thước với khối Fi, ma trận trọng số W(các phần tử là số nguyên, các giá trị từ 1 đến 2r-1 xuất hiện ít nhất một lần trong W) cùng kích thước của K. Lượng thông tin cần giấu B B=b1b2 .bz mỗi bi có r bít), độ chênh lệch trọng số d.
45 trang |
Chia sẻ: lethao | Lượt xem: 4703 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Đề tài Các phương pháp giấu tin trong ảnh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
đã giấu được hai bít vào khối 8*8; hay gần đây nhất là phương pháp của Mukherjee là kĩ thuật giấu trong audio và video sử dụng cấu trúc lưới đa chiều…Kĩ thuật giấu thông tin trong video áp dụng cả những đặ điểm về thị giác và thính giác của con người.
d.Giấu thông tin trong văn bản dạng text
Giấu tin trong văn bản dạng text khó thực hiện hơn do đó ít các thông tin dư thừa, để làm được điều này người ta phải khéo léo khai thác các dư thừa tự nhiên của ngôn ngữ. Một cách khác là tận dụng các định dạng văn bản (mã hoá thông tin vào khoảng cách giữa các từ hay các dòng văn bản).
Kỹ thuật giấu tin đang được áp dụng cho nhiều loại đối tượng chứ không riêng gì dữ liệu đa phương tiện như ảnh, audio, video. Gần đây đã có một số nghiên cứu giấu tin trong cơ sở dữ liệu quan hệ, các gói IP truyền trên mạng chắc chắn sau này còn tiếp tục phát triển tiếp cho các môi trường dữ liệu số khác.
1.2.4. Phân loại theo cách thức tác động lên các phương tiện
Phương pháp chèn dữ liệu: Phương pháp này tìm các vị trí trong file dễ bị bỏ qua và chèn dữ liệu cần giấu vào đó, cách giấu này không làm ảnh hưởng gì tới sự thể hiện các file dữ liệu ví dụ như được giấu sau các ký tự EOF.
Phương pháp tạo các phương tiện chứa: Từ các thông điệp cần chuyển sẽ tạo ra các phương tiện chứa để phục vụ cho việc truyền thông tin đó, từ phía người nhận dựa trên các phương tiện chứa này sẽ tái tạo lại các thông điệp.
1.2.5. Phân loại theo các mục đích sử dụng
- Giấu thông tin bí mật: đây là ứng dụng phổ biến nhất từ trước đến nay, đối với giấu thông tin bí mật người ta quan tâm chủ yếu tới các mục tiêu:
+ Độ an toàn của giấu tin - khả năng không bị phát hiện của giấu tin.
+ Lượng thông tin tối đa có thể giấu trong một phương tiện chứa cụ thể mà vẫn có thể đảm bảo an toàn
+ Độ bí mật của thông tin trong trường hợp giấu tin bị phát hiện
- Giấu thông tin bí mật không quan tâm tới nhiều các yêu cầu bền vững của phương tiện chứa, đơn giản là bởi người ta có thể thực hiện việc gửi và nhận nhiều lần một phương tiện chứa đã được giấu tin
- Giấu thông tin thuỷ vân: do yêu cầu bảo vệ bản quyền, xác thực… nên giấu tin thuỷ vân có yêu cầu khác với giấu tin bí mật. Yêu cầu đầu tiên là các dấu hiệu thuỷ vân đủ bền vững trước các tấn công vô hình hay cố ý gỡ bỏ nó. Thêm vào đó các dấu hiệu thuỷ vân phải có ảnh hưởng tối thiểu (về mặt cảm nhận) đối với các phương tiện chứa. Như vậy các thông tin cần giấu càng nhỏ càng tốt.
Tuỳ theo các mục đích khác nhau như bảo vệ bản quyền, chống xuyên tạc nội dung, nhận thực thông tin,… thuỷ vân cũng có các yêu cầu khác nhau
Các kỹ thuật giấu tin mới được phát triển mạnh trong khỏang mười năm trở lại đây nên việc phân loại các kỹ thuật còn chưa hoàn toàn thống nhất. Sơ đồ phân loại do F.Petitcolas đưa ra năm 1999 được nhiều người chấp nhận.
Robust Watermarking
Thuỷ vân bền vững
Fragile Watermarking
Thuỷ vân dễ vỡ
Information hiding
Giấu thông tin
Watermarking
Thuỷ vân số
Visible Watermarking
Thuỷ vân hiển thị
Steganography
Giấu tin mật
Imperceptible Watermarking
Thuỷ vân ẩn
Hình 1.4. Phân loại các kỹ thuật giấu tin.
Theo sơ đồ đây, giấu tin được chia thành hai hướng chính là giấu tin mật và thủy vân số. Giấu tin mật quan tâm chủ yếu đến lượng tincos thể giấu, còn thủy vân số lại quan tâm chủ yếu đến tính bền vững của thông tin giấu. trong từng hướng chính lại chia ra các hướng nhỏ hơn, chẳng hạn với thủy vân số thì có thủy vân bền vững và thủy vân dễ vỡ. Thủy vân bền vững cần bảo toàn được các thông tin thủy vân trước các tấn công như dịch chuyển, cắt xén, xoay đối với ảnh. Ngược lại, thủy vân dễ vỡ cần phải dễ bị phá hủy khi gặp các sự tấn công nói trên.
1.3. Một số ứng dụng đang được triển khai
1.3.1. Bảo vệ bản quyền tác giả (copyright protection):
Đây là ứng dụng cơ bản nhất của kỹ thuật thuỷ vân số (digital watermarking) - một dạng của phương pháp giấu tin. Một thông tin nào đó mang ý nghĩa quyền sở hữu tác giả (người ta gọi nó là thuỷ vân - watermark) sẽ được nhúng vào trong các sản phẩm, thuỷ vân đó chỉ một mình người chủ sở hữu hợp
pháp các sản phẩm đó có và được dùng làm minh chứng cho bản quyền sản phẩm. Giả sử có một thành phẩm dữ liệu dạng đa phương tiện như ảnh, âm thanh, video và cần được lưu thông trên mạng. Để bảo vệ các sản phẩm chống lại các hành vi lấy cắp hoặc làm nhái cần phải có một kỹ thuật để “dán tem bản quyền” vào sản phẩm này. Việc dán tem hay chính là việc nhúng thuỷ vân cần phải đảm bảo không để lại một ảnh hưởng lớn nào đến việc cảm nhận sản phẩm. Yêu cầu kỹ thuật đối với ứng dụng này là thuỷ vân phải tồn tại bền vững cùng với sản phẩm, muốn bỏ thuỷ vân này mà không được phép của người chủ sở hữu thì chỉ còn cách là phá huỷ sản phẩm.
1.3.2. Nhận thực thông tin hay phát hiện xuyên tạc thông tin (authentication and tamper detection):
Một tập các thông tin sẽ được giấu trong phương tiện chứa sau đó được sử dụng để nhận biết xem dữ liệu trên phương tiện gốc đó có bị thay đổi hay không. Các thuỷ vân nên được ẩn để tránh được sự tò mò của kẻ thù, hơn nữa việc làm giả các thuỷ vân hợp lệ hay xuyên tạc thông tin nguồn cũng cần được xem xét. Trong các ứng dụng thực tế, người ta mong muốn tìm được vị trí bị xuyên tạc cũng như phân biệt được các thay đổi (ví dụ như phân biệt xem một đối tượng đa phương tiện chứa thông tin giấu đã bị thay đổi, xuyên tạc nội dung hay là chỉ bị nén mất dữ liệu). Yêu cầu chung đối với ứng dụng này là khả năng giấu thông tin cao và thuỷ vân không cần bền vững.
1.3.3. Giấu vân tay hay dán nhãn (fingerprinting and labeling):
Thuỷ vân trong những ứng dụng này đựơc sử dụng để nhận diện người gửi hay người nhận của một thông tin nào đó. Ví dụ như các vân khác nhau sẽ được nhúng vào các bản copy khác nhau của thông tin gốc trước khi chuyển cho nhiều người. Với những ứng dụng này thì yêu cầu là đảm bảo độ an toàn cao cho các thuỷ vân tránh sự xoá giấu vết trong khi phân phối.
1.3.4. Điều khiển truy cập (copy control):
Các thuỷ vân trong những trường hợp này được sử dụng để điều khiển truy cập đối với các thông tin. Các thiết bị phát hiện ra thuỷ vân thường được
gắn sẵn vào trong các hệ thống đọc ghi. Ví dụ như hệ thống quản lí sao chép
DVD đã được ứng dụng ở Nhật. Các ứng dụng loại này cũng yêu cầu thuỷ vân phải được bảo đảm an toàn và cũng sử dụng phương pháp phát hiện thuỷ vân đã giấu mà không cần thông tin gốc.
CHƯƠNG II:
TÌM HIỂU CÁC PHƯƠNG PHÁP GIẤU TIN TRONG ẢNH
2.1. Các định dạng ảnh thường được sử dụng để giấu tin.
Cấu trúc ảnh nói chung gồm 3 phần chính: Header, dữ liệu, bảng màu. Tuy nhiên mỗi loại ảnh có những đặc trưng khác nhau, định dạnh một số loại ảnh cơ bản:
2.1.1. Định dạng ảnh IMG.
Ảnh IMG là ảnh đen trắng. Phần đầu của ảnh IMG có 16 byte chứa các thông tin cần thiết:
+ 6 byte đầu: dùng để đánh dấu định dạng ảnh IMG. Giá trị của 6 byte này viết 0x0001 0x0008 0x0001.
+ 2 byte tiếp theo: chứa độ dài mẫu tin. Đó là độ dài của dãy các byte kề liền nhau mà dãy này sẽ được lặp lại một số lần nào đó. Số lần lặp này sẽ được lưu trữ trong byte đếm. Nhiều dãy giống nhau được lưu trong một byte. Đó là cách lưu trữ nén.
+ 4 byte tiếp: mô tả kích cỡ pixel.
+ 2 byte tiếp: số pixel trên một dòng ảnh.
+ 2 byte cuối: số dòng ảnh trong ảnh.
Ảnh IMG được nén theo từng dòng. Mỗi dòng bao gồm các gói (pack). Các dòng giống nhau cũng được nén thành một gói.
2.1.2. Định dạng ảnh PCX.
Định dạng ảnh PCX là một trong những định dạng ảnh cổ điển nhất. Nó sử dụng phương pháp mã loạt dài RLE để nén dữ liệu ảnh. Quá trình nén và giải nén được thực hiện trên từng dòng ảnh. Thực tế, phương pháp giải nén PCX kém hiệu quả hơn so với kiểu IMG. Tệp PCX gồm 3 phần: đầu tệp (header), dữ liệu ảnh (image data) và bảng màu mở rộng.
Cấu trúc tệp ảnh dạng PCX
Header 128 bytes
Bảng màu mở rộng
Dữ liệu ảnh nén
Hình 2.1: Cấu trúc ảnh PCX
Header của tệp PCX có kích thước cố định gồm 128 byte và được phân bố như sau:
+ 1 byte: chỉ ra kiểu định dạng. Nếu là kiểu PCX/PCC nó có giá trị là 0Ah.
+ 1 byte: chỉ ra version sử dụng để nén ảnh, có thể có các giá trị sau:
- 0: version 2.5.
- 2: version 2.8 với bảng màu.
- 3: version 2.8 hay 3.0 không có bảng màu.
- 5: version 3.0 có bảng màu.
+ 1 byte: chỉ ra phương pháp mã hoá. Nếu là 0 thì mã hoá theo phương pháp BYTE PACKED, nếu không là phương pháp RLE.
+ 1 byte: số bit cho một điểm ảnh plane.
+ 1 word: toạ độ góc trái trên của ảnh. Với kiểu PCX nó có giá trị là (0,0); còn PCC thì khác (0,0).
+ 1 word: toạ độ góc phải dưới.
+ 1 word: kích thước bề rộng và bề cao của ảnh.
+ 1 word: số điểm ảnh.
+ 1 word: độ phân giải màn hình.
+ 1 word.
+ 48 byte: chia thành 16 nhóm, mỗi nhóm 3 byte. Mỗi nhóm này chứa thông tin về một thanh ghi màu. Như vậy ta có 16 thanh ghi màu.
+ 1 byte: số bit plane mà ảnh sử dụng. Với ảnh 16 màu, giá trị này là 4, với ảnh 256 màu (1 pixel/ 8 bit) thì số bit plane lại là 1.
+ 1 byte: số bytes cho một dòng quét ảnh.
+ 1 word: kiểu bảng màu.
+ 58 byte: không dùng.
Tóm lại, định dạng ảnh PCX thường được dùng để lưu trữ ảnh vì thao tác đơn giản, cho phép nén và giải nén nhanh.
2.1.3. Định dạng ảnh TIFF.
Cấu trúc gồm có 3 phần:
- Phần header IFH (Image File Header) có trong tất cả các tệp TIFF và gồm 8 byte.
+ 1 word: chỉ ra kiểu tạo tệp trên máy tính.
+ 1 word: version.
+ 2 word: giá trị Offset theo byte tính từ đầu file tới cấu trúc IFD.
- Phần thứ hai IFD (Image File Directory): Nó không ở ngay sau IFH mà vị trí của nó được xác định bởi trường offset trong đầu tệp.
Một IFD gồm:
+ byte: chứa các DE (Directory Entry).
+ 12 byte là các DE xếp liên tiếp. Mỗi DE chiếm 12 byte.
+ 4 byte: chứa Offset trỏ tới IFD tiếp theo.
- Cấu trúc phần dữ liệu thứ 3: Các DE
Các DE có độ dài cố định 12 byte và gồm 4 phần.
+ 2 byte: chỉ ra dấu hiệu mà ảnh đã được xây dựng.
+ 2 byte: kiểu dữ liệu của tham số ảnh.
+ 4 byte trường độ dài.
+ 4 byte đó là Offset tới điểm bắt đầu dữ liệu thực liên quan tới dấu hiệu, tức là dữ liệu liên quan với DE không phải lưu trữ vật lý cùng với nó nằm ở một vị trí nào đó trong file. Dữ liệu chứa trong tệp thường được tổ chức thành các nhóm dòng (cột) quét của dữ liệu ảnh.
2.1.4.Định dang ảnh GIF.
Ảnh GIF (Graphics Interchange Format) 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 thường dùng cho sơ đồ, hình vẽ, nút bấm và các hình màu. 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ỏ. Đây là một giải pháp tốt cho hình ảnh trên mạng, cho các hoạt hình nhỏ và ngắn.
GIF sử dụng thuật toán nén LOSS LESS (Không mất dữ liệu), điều đó cho phép chúng tạo ra kích thước nhỏ mà không bị mất hoặc mờ bất kỳ chi tiết nào của ảnh dữ liệu
GIF note
GIF header (7 byte)
Globel Palette
Header Image (10 byte)
Palette of Image (nếu có)
Data of Image 1
‘,’ ký tự liên kết
…………………..
‘;’ terminator
Hình 2.2: Cấu trúc ảnh Gif
Chữ ký của ảnh.
Bộ mô tả hiển thị.
Bản đồ màu tổng thể.
Mô tả một đối tượng của ảnh.
- Dấu phân cách.
- Bộ mô tả ảnh.
- Bản đồ màu cục bộ.
- Dữ liệu ảnh. Phần mô tả này lặp lại n lần nếu ảnh chứa n đối tượng.
- Phần đầu cuối ảnh GIF (terminator).
+ Chữ ký của ảnh GIF có giá trị là GIF87a. Nó gồm 6 ký tự, 3 ký tự đầu chỉ ra kiểu định dạng, 3 ký tự sau chỉ ra version của ảnh.
+ Bộ hình thị: chứa mô tả các thông số cho toàn bộ ảnh GIF:
Độ rộng hình raster theo pixel: 2 byte.
Độ cao hình raster theo pixel: 2 byte.
Các thông tin và bản đồ màu, hình hiển thị,…
Thông tin màu nền: 1 byte.
Phần chưa dùng: 1 byte.
+ Bản đồ màu tổng thể: mô tả bộ màu tối ưu đòi hỏi khi bit M=1.
Khi bộ màu tổng thể được thể hiện, nó sẽ xác định ngay bộ mô tả hiển thị ở trên và bằng 2m, với m là lượng bit trên một pixel, 3 byte (biểu diễn cường độ màu của 3 màu cơ bản Red-Green-Blue). Cấu trúc của khối này như sau:
Bit
Thứ tự byte
Mô tả
Màu Red
1
Giá trị màu đỏ theo index 0
Màu Green
2
Giá trị màu xanh lục theo index 0
Màu Blue
3
Giá trị màu xanh lơ theo index 0
Màu Red
4
Giá trị màu đỏ theo index 1
Màu Green
5
Giá trị màu xanh lục theo index 1
Màu Blue
6
Giá trị màu xanh lơ theo index 0
Hình 2.3: Cấu trúc của khối bản đồ màu tổng thể
+ Bộ mô tả ảnh: định nghĩa vị trí thực tế và phần mở rộng của ảnh trong phạm vi không gian ảnh đã có trong phần mô tả hiển thị. Nếu ảnh biểu diễn theo ánh xạ màu cục bộ thì cờ định nghĩa phải được thiết lập. Mỗi bộ mô tả ảnh được chỉ ra bởi ký tự kết nối ảnh. Ký tự này chỉ được dùng khi định dạng GIF có từ 2 ảnh trở lên. Ký tự này có các giá trị 0x2c (ký tự dấu phẩy). Khi ký tự này được đọc qua, bộ mô tả ảnh sẽ được kích hoạt. Bộ mô tả ảnh gồm 10 byte và có cấu trúc như sau:
Các bit
Thứ tự byte
Mô tả
0010110
1
Ký tự liên kết ảnh (‘)
Căn trái ảnh
2,3
Pixel bắt đầu ảnh tính từ trái hình hiển thị
Căn đỉnh trên
4,5
Pixel cuối ảnh bắt đầu tính từ đỉnh trên hình hiển thị
Độ rộng ảnh
6,7
Độ rộng ảnh tính theo pixel
Độ cao ảnh
8,9
Chiều cao ảnh tính theo pixel
MI000pixel
10
Khi bit M=0 sử dụng bảng màu tổng thể. M=1 sử dụng bản đồ màu cục bộ. I = 0: định dạng ảnh theo thứ tự liên tục. I = 1: định dạng ảnh theo thứ tự xen kẽ pixel + 1: số bit/pixel của ảnh này.
Hình 2.4: Cấu trúc bộ mô tả ảnh
+ Bản đồ màu cục bộ: chỉ được chọn khi bit M của byte thứ 10 là 1. Khi bản đồmàu được chọn, bản đồ màu sẽ chiếu theo bộ mô tả ảnh mà lấy vào cho đúng. Tại phần cuối ảnh, bản đồ màu sẽ lấy lại phần xác lập sau bộ mô tả hiển thị. Các tham số này không những chỉ cho biết kích thước ảnh theo pixel mà còn chỉ ra số thực thể bản đồ màu của nó.
+ Dữ liệu ảnh: chuỗi các giá trị có thứ tự của các pixel màu tạo nên ảnh. Các pixel được xếp liên tục trên một dòng ảnh, từ trái qua phải. Các dòng ảnh được viết từ trên xuống dưới.
+ Phần kết thúc ảnh: cung cấp tính đồng bộ cho đầu cuối của ảnh GIF. Cuối của ảnh sẽ xác định bởi kí tự “;” (0x3b).
Định dạng GIF có rất nhiều ưu điểm và đã được công nhận là chuẩn để lưu trữ ảnh màu thực tế (chuẩn ISO 0918-1).
2.1.5. Định dạng ảnh .JPEG
Đây cũng là một định dạng ảnh phổ biến được sử dụng, nhưng đặc điểm của loại ảnh này là đây là loại ảnh nén.
Ảnh JPEG là một trong những định dạng của phương pháp nén ảnh JPEG(Joint Photographic Experts Group). Do đó sự mất mát thông tin có thể xảy ra khi tiến hành nén và sau giải nén thì tập tin ảnh sẽ khác với ảnh ban đầu, chất lượng ảnh bị suy giảm khi giải nén, sự suy giảm này tăng theo hệ số nén.
Ưu điểm của loại tập tin ảnh này là nếu được giấu tin thì có thể truyền trên mạng bởi nó nhẹ hơn ảnh định dạng BMP rất nhiều lần. Mặt khác nó được hỗ trợ trên nhiều trình duyệt
2.2. Kỹ thuật được sử dụng để giấu tin trong ảnh
2.2.1. Kỹ thuật Injection
Kỹ thuật Injection hay còn được gọi là kỹ thuật Insertion - Sự them vào, sử dụng kỹ thuật này để giấu dữ liệu ẩn vào trong một đoạn của file, mà đoạn đó hầu như không được để ý trong các ứng dụng xử lý. Bằng cách làm này, có thể tránh được sự thay đổi những bit của file đó. Ví dụ có thể cộng thêm một số byte vô hại vào một file thực thi hay file nhị phân, bởi vì những byte đó không ảnh hưởng tới quá trình xử lý đồng thời người sử dụng cũng không thể nhận thức được rằng file đó chứa các thông tin đã được cộng thêm vào. Mặc dù vậy, khi sử dụng kỹ thuật này thì nó sẽ làm tăng kích thước của file chứa tin đó, tăng rất nhiều nếu số lượng tin giấu lớn và do đó sẽ gây ra nghi sự nghi nghờ.
Nếu ứng dụng kỹ thuật này vào sử dụng trong giấu tin trong ảnh thì chỉ có thể giấu tin với số lượng có hạn nhất định tùy thuộc vào kích thước của file chứa gốc.
2.2.2. Kỹ thuật Substitution
Kỹ thuật này có nghĩa là sự thay thế phương pháp này sử dụng việc thay thế các thông tin ít quan trọng trong việc quyết định nội dung của file gốc, và dữ liệu được thay vào những bít đó ít gây sự thay đổi lớn đến chất lượng file chứa gốc.
Ưu điểm của kỹ thuật này là file chứa gốc sau khi giấu tin thì kích thước không thay đổi.
Nhược điểm của phương pháp này làm giảm chất lượng của file chứa gốc ban đầu, ngoài ra số lượng tin giấu cũng bị hạn chế do phải phụ thuộc vào số bit ít quan trọng
trong file chứa gốc.
2.3. Kỹ thuật Generation
Kỹ thuật Generation có nghĩa là sự tự phát sinh, không giống như hai kỹ thuật trên, kỹ thuật này không phụ thuộc vào file chứa gốc tồn tại, kỹ thuật này sẽ tạo ra một file chứa với mục đích duy nhất là để giấu tin. Hai phương pháp trên người ta có thể so sánh đối chiếu hai file để đưa ra kết luận, với kỹ thuật này thì không phải lo lắng đến điều đó bởi vì chỉ có một file chứa gốc duy nhất và cũng là file chứa tin.
Tuy nhiên để áp dụng kỹ thuật này thì rất phức tạp phụ thuộc vào rất nhiều yếu tố để có thể tạo ra file chứa gốc như yêu cầu.
2.4. Phân tích hệ thống thông tin
2.4.1.Phân tích yêu cầu:
a. Yêu cầu của người sủ dụng đối với hệ thống:
Chương trình giấu tin trong ảnh về cơ bản đáp ứng các yêu cầu sau:
Về giao diện: Giao diện thân thiện, dễ sử dụng.
Về chức năng: Đưa thông tin mật vào trong một tài liệu sau đó ẩn thông tin đó đi làm cho người khác không có khả năng phát hiện ra trong tài liệu đó có thông tin được giấu bên trong.
b. Dữ liệu và các thao tác trên đó:
Dữ liệu đầu vào: Dữ liệu cần nhúng hay cần giấu đó có thể là một đoạn văn bản, một tệp .doc hay một file ảnh cộng với đối tượng để nhúng vào là một file ảnh với mật khẩu của người dùng.
Dữ liệu đầu ra: tương ứng với dữ liệu đầu vào, gần như giống hoàn toàn với dữ liệu đầu vào nhưng thực chất bên trong chúng ẩn chứa một kho dữ liệu bí mật mà chỉ có người giấu chúng mới biết được, hoặc một người khác nếu muốn biết dữ liệu bí mật đó thì họ phải có mật khẩu do người giấu cung cấp.
Chương trình giúp chúng ta có thể giấu thông tin vào một file đồng thời hỗ trợ lấy thông thông tin đã được giấu từ file đã được nhúng.
2.5. Phân tích chức năng:
2.5.1.Sơ đồ phân cấp chức năng:
Giấu đoạn văn bản
Chương trình
nhúng
tin
trong
ảnh
Giấu thông tin
Lấy thông tin
Giấu tệp văn bản
Giấu file ảnh
Lấy đoạn văn bản
Lấy tệp văn bản
Lấy file ảnh
Hình 2.5.Sơ đồ phân cấp chức năng
2.5.2.Chức năng giấu thông tin:
a. Giấu đoạn văn bản:
Đưa đoạn văn bản cần giấu vào sau đó thiết lập mật khẩu riêng cho nó rồi tiến hành mã hóa đoạn văn bản cùng với mật khẩu, sau khi mã hóa xong đẩy thông tin đó vào trong ảnh ta sẽ đưa ra một ảnh mới gần giống hệt so với ảnh cũ về hình thức nhưng nội dung bên trong lại chứa đựng thông tin mà ta đã giấu muốn lấy được thông tin đó cần phải có mật khẩu của thông tin đó.
b. Giấu tệp văn bản:
Công nghệ gần giống như giấu đoạn văn bản
c. Giấu file ảnh:
Tương tự như giấu đoạn văn bản.
2.5.3.Chức năng lấy thông tin
Ngược lại của quá trính giấu thông tin, bạn phải đưa ảnh chứa dữ liệu cần lấy trong đó vào sau đó nhập mật khẩu riêng của nó và tiến hành lấy ra bình thường.
CHƯƠNG III:
XÂY DỰNG CHƯƠNG TRÌNH GIẤU TIN TRONG ẢNH BẰNG MÃ HÓA LSB
3.1.Khái niệm bit it quan trọng LSB ((LSB- Least significant bit))
Bit LSB là bit có ảnh hưởng ít nhất tới việc quyết định tới màu sắc 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 sắc của mỗi điểm ảnh mới sẽ tương đối gần với điểm ảnh cũ. 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ì ra sẽ tách bit này ra ở mỗi điểm ảnh để giấu tin… 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 đó.
3.2.Tìm hiểu cấu trúc ảnh Bitmap
Có một vài định dạng phổ biến cho file ảnh kĩ thuật số bao gồm BMP, JPG, PNG…trong đề tài của em đã nghiên cứu được với file ảnh BMP vì file ảnh này đơn giản, có lợi thế về tính chất vì tính chất của BMP là được tiêu chuẩn hóa cao và tính lan rộng mạnh. Trong đồ họa máy tính BMP còn được biết đến với tên Windows bitmap, là một định tập tin hình ảnh 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.
Cấu trúc của file ảnh BMP:
File này là file nhị phân, được phân chia thành 4 phần. Bao gồm File Header, Image Header, Color Table, và cuối cùng là Pixel Data.
* FileHeader: (14 BYTE)
Chức năng chính:
+ Xác định đây có phải là file BMP hay không.(2 byte đầu tiên)
+ Độ lớn của file ảnh (4 byte tiếp theo)
+ Xác đinh vị trí của dữ liệu ảnh
Tên trường
Kích thước (byte)
Miều tả
Type
2
Là 2 kí tự ‘B’ và ‘M’
Size
4
Kích thước của file
Reserved 1
2
Không được sử dụng, phải có giá trị là 0.
Reserved 2
2
OffBits
4
Vị trí bắt đầu phần The Pixel Data
Bảng 3.1. Bảng mô tả FileHeader
* ImageHeader: (40 BYTE)
Chức năng chính: Đưa ra thông tin chi tiết về ảnh và định dạng dữ liệu như:
+ Chiều rộng và chiều cao của ảnh
+ Bao nhiêu bit được sử dụng cho 1 pixel
+ Dữ liệu ảnh có được nén hay không.
Tên trường
Kích thước (byte)
Miêu tả
Size
4
Kích thước phần Header, phải nhỏ hơn 40.
Width
4
Chiều rộng file theo Pixel
Height
4
Chiều cao file theo Pixel
Planes
2
Phải là 1
BitCount
2
Số bit trên 1 Pixel : 1, 2, 4, 8, 16, 24, hoặc 32.
Compression
4
Kiểu nén (0 = Không được nén)
SizeImage
4
Kích thước ảnh, phải là 0 đối với ảnh không được nén
XPelsPerMeter
4
Uu tiên độ phân giải pixels/ meter
YPelsPerMeter
4
Uu tiên độ phân giải pixels/ meter
ClrUsed
4
Số màu Map được sử dụng thực sự
ClrImportant
4
Số mày có ý nghĩa
Bảng 3.2. Bảng mô tả ImageHeader
* ColorTables:
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ự 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à phải bằng zero.
* The Pixel Data:
Với ảnh 8 bit, mỗi pixel được biểu diễn bởi 1 byte đơn của dữ liệu.Với ảnh 24 bit, mỗi pixel được biểu diễn bởi 3 byte tuần tự của dữ liệu
3.3.Chương trình giấu tin trong ảnh Bitmap
3.3.1. Kĩ thuật giấu thông tin trong ảnh Bitmap
Chúng ta sử dụng kỹ thụât “Thay thế” (substitution) để ẩn thông tin trong một file.
Với công nghệ này, bạn thay thế những bit ít quan trọng nhất của file gốc với dữ liệu mà bạn muốn ẩn. Để sử dụng công nghệ này ta thực hiện các bước sau:
Khi sử dụng kĩ thuật thay thế sẽ có một số ưu nhược điểm sau:
+Ưu điểm: Kích thước của file sẽ không bị thay đổi sau khi thực hiện việc ẩn thông tin.
+ Nhược điểm: Có thể giảm chất lượng ảnh sau khi ẩn thông tin; giới hạn kích thước thông tin muốn ẩn.
Trong kỹ thuật “Thay thế”, phương thức rất phổ biến là mã hóa LSB (Least Significant Bit).Phương thức mã hóa này thay thế bit ít quan trọng nhất trong một vài byte của file để ẩn tuần tự những byte dữ liệu chứa thông tin muốn ẩn. Cách này có hiệu quả trong trường hợp mà thay thế LSB không ảnh hưởng đến chất lượng ảnh. Ví dụ như đối với ảnh Bitmap 24 bit.
* Tại sao giấu thông tin trong ảnh Bitmap 24 bit lại có hiệu quả hơn:
- Ảnh Bitmap 24 bit: tức là sẽ có 24 bit biểu diễn cho 1 pixel và ảnh này có 2^24 màu. Thông tin màu cho mỗi pixel được chứa trong 3 byte liên tiếp của dữ liệu với mỗi byte tương ứng với 3 màu Blue, Green, Red.
- 24 bit màu là dữ liệu đơn giản để đọc. Dữ liệu hình ảnh đi theo ngay trực tiếp sau đầu mục thông tin và ở đó không có bảng màu nào.
- Các điểm ảnh được lưu theo chiều từ trái sáng phải trên một dòng và các dòng lại được lưu theo thứ tự từ dưới lên trên .
- Mỗi byte trong vùng BimapData biểu diễn 1 hoặc nhiều điểm ảnh theo số Bít cho một pixel - 8 bit dữ liệu cần 8 byte dữ liệu nguồn.
Như vậy, với mỗi Pixel sẽ có 8 bit biểu diễn cho mỗi giá trị màu. Giả sử, ta chỉ xem xét với màu Blue, sẽ có 28 giá trị khác nhau. Sự khác nhau giữa các giá trị hay gọi cách khác là cường độ của Blue như 11111111 và 11111110 sẽ không bị phát hiện bởi thị giác của con người.
- Đối với ảnh 24 bit, ta có thể nhúng 3 bit dữ liệu muốn ẩn trong 1 pixel. Trong khi đó với ảnh 8 bit ta chi có thể nhúng 1 bit dữ liệu cho mỗi pixel. Như vậy, ảnh 24 bit cung cấp nhiều khoảng trống hơn so với ảnh 8 bit.
Ví dụ: muốn ẩn 1 ký tư A vào trong 1 file ảnh. Giá trị nhị phân của A là 10000001 Lúc này kí tự A được ẩn trong 3 pixel.
+ Giả sử dữ liệu của 3 pixel có thể là
(00100111 11101001 11001000)
(00100111 11001000 11101001)
(11001000 00100111 11101001)
+ Sau khi ẩn kí tự A, giá trị của 3 pixel là:
(00100111 11101000 11001000)
(00100110 11001000 11101000)
(11001000 00100111 11101001)
Như vậy, chỉ có 3 bit bị thay đổi trong 3 byte. Và sẽ không bị phát hiện bởi thị giác của con người.
3.4. Các bước giải quyết vấn đề
3
Các file đính kèm theo tài liệu này:
- Các phương pháp giấu tin trong ảnh.doc