TỔNG QUAN KĨ THUẬT GIẤU TIN
Vấn đề giấu tin
Trong lĩnh vực bảo vệ thông tin, mật mã là giải pháp phổ biến và hiệu quả nhất Quá trình bảo mật bắt đầu bằng việc mã hóa thông tin, sau đó giải mã nhờ vào khóa của hệ mã Nhiều hệ mã phức tạp như DES, RSA và NAPSACK đã được ứng dụng rộng rãi, mang lại độ bảo mật cao cho dữ liệu.
Phương pháp giấu tin (DataHiding) đang được nghiên cứu và áp dụng rộng rãi trên toàn thế giới Kỹ thuật này cho phép nhúng thông tin số vào trong một đối tượng dữ liệu số khác, với yêu cầu quan trọng là phải giữ tính chất ẩn của thông tin mà không làm ảnh hưởng đến chất lượng của dữ liệu gốc.
Mã hóa thông tin và giấu thông tin là hai khái niệm khác nhau; mã hóa cho phép nhận biết rõ ràng liệu thông tin có được mã hóa hay không, trong khi giấu thông tin khiến người khác khó phát hiện sự tồn tại của thông tin bên trong.
Mô hình kỹ thuật giấu thông tin cơ bản
Giấu thông tin vào phương tiện chứa và tách lấy thông tin là hai quá trình ngược lại, có thể được mô tả qua sơ đồ khối của hệ thống.
Hình 1.1 - Lƣợc đồ chung cho quá trình giấu tin
Phương tiện chứa(audio, ảnh, video)
Phương tiện chứa đã đƣợc giấu tin
Thông tin cần được bảo mật phụ thuộc vào mục đích sử dụng của người dùng, có thể bao gồm các thông điệp bí mật hoặc các logo và hình ảnh có bản quyền.
- Phương tiện chứa: các file ảnh, text, audio… là môi trường để giấu tin
- Bộ giấu thông tin: là những chương trình thực hiện việc giấu tin
- Đầu ra: là các phương tiện chứa đã có tin giấu trong đó
Quá trình tách thông tin từ các phương tiện chứa đã được giấu diễn ra ngược lại với quá trình giấu thông tin Sau khi tách, phương tiện chứa có thể được sử dụng và quản lý theo các yêu cầu khác nhau Hình 1.2 minh họa các bước giải mã thông tin đã giấu Khi nhận được phương tiện chứa, quá trình giải mã được thực hiện bằng bộ giải mã tương ứng với bộ giấu thông tin và khóa của quá trình giấu Kết quả thu được bao gồm phương tiện chứa gốc và thông tin đã được giấu Tiếp theo, thông tin đã giấu sẽ được xử lý và kiểm định so sánh với thông tin ban đầu.
Hình 1.2 - Lƣợc đồ cho quá trình giải mã
Phân loại giấu tin
Kỹ thuật giấu thông tin số đang trong giai đoạn phát triển chưa ổn định, với nhiều phương pháp mới được đề xuất từ các khía cạnh khác nhau Do đó, việc đưa ra một định nghĩa chính xác về lĩnh vực này là rất cần thiết.
Phương tiện chứa(audio, ảnh, video)
Phương tiện chứa đã đƣợc giấu tin
Kiểm định đánh giá phân loại rõ ràng chƣa thể có đƣợc Sơ đồ phân loại trên hình 1.3 đƣợc Fabien A P Petitcolas đề xuất năm 1999
Hình 1.3 - Một cách phân loại các kỹ thuật giấu tin
Sơ đồ phân loại này cung cấp cái nhìn tổng quan về ứng dụng và kỹ thuật giấu thông tin, được xây dựng dựa trên việc thống kê khoảng 100 công trình đã công bố trên các tạp chí và thông tin từ khoảng 200 công trình trên Internet Lĩnh vực giấu tin được chia thành hai hướng chính: watermarking và steganography.
1.3.1 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 là kỹ thuật tìm kiếm các vị trí dễ bị bỏ qua trong file để chèn dữ liệu cần giấu mà không làm ảnh hưởng đến sự thể hiện của file Ví dụ, dữ liệu có thể được giấu sau các ký tự EOF mà vẫn giữ nguyên tính toàn vẹn của file.
Phương pháp tạo các phương tiện chứa thông điệp là quá trình chuyển đổi thông tin thành các hình thức dễ hiểu Những phương tiện này giúp người nhận tái tạo lại các thông điệp một cách hiệu quả, từ đó nâng cao khả năng truyền thông và tiếp nhận thông tin.
1.3.2 Theo các mục đích sử dụng
Giấu thông tin bí mật là ứng dụng phổ biến nhất hiện nay, với mục tiêu chính là bảo vệ thông tin cá nhân và đảm bảo an toàn dữ liệu.
- Độ an toàn của giấu tin - khả năng không bị phát hiện của giấu tin
Information hiding Giấu thông tin
Fragile Watermarking Thuỷ vân dễ vỡ
Robust Watermarking Thuỷ vân bền vững
- 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
Việc giấu thông tin bí mật trong phương tiện chứa mà không chú ý đến các yêu cầu bền vững là do khả năng gửi và nhận nhiều lần thông tin từ phương tiện đó.
Việc giấu thông tin thuỷ vân có những yêu cầu khác biệt so với giấu tin bí mật, chủ yếu do nhu cầu bảo vệ bản quyền và xác thực Đầu tiên, các dấu hiệu thuỷ vân cần phải đủ bền vững để chống lại các tấn công vô hình hoặc cố ý gỡ bỏ Bên cạnh đó, chúng cũng phải gây ảnh hưởng tối thiểu đến cảm nhận của các phương tiện chứa Do đó, thông tin cần giấu nên được giữ ở mức tối thiểu.
Tuỳ theo các mục đích khác nhau thuỷ vân cũng có các yêu cầu khác nhau.
Mục đích giấu tin
Bảo mật thông tin thông qua giấu tin có hai khía cạnh quan trọng Thứ nhất, nó đảm bảo an toàn cho dữ liệu được giấu, như việc giấu thông tin mật trong một đối tượng khác để người ngoài không phát hiện ra, điều này được gọi là steganography.
Bảo mật chính là phương pháp quan trọng để ẩn giấu dữ liệu, thường được áp dụng trong các ứng dụng như bảo vệ bản quyền và phát hiện thông tin bị xuyên tạc, chẳng hạn như watermarking.
Hình 1.4 - Hai lĩnh vực chính của kỹ thuật giấu thông tin
1.4.1 Kỹ thuật giấu thông tin bí mật (Steganography)
Để đảm bảo an toàn và bảo mật thông tin, các kỹ thuật giấu tin được áp dụng nhằm che giấu nhiều thông tin mật Những thông tin này được giấu kín trong một đối tượng khác, giúp người ngoài không thể phát hiện ra.
Giấu tin bí mật (Steganography)
1.4.2 Kỹ thuật giấu thông tin theo kiểu đánh giấu (watermarking)
Mục đích chính của việc bảo vệ bản quyền thông tin là đảm bảo tính bền vững cho đối tượng chứa thông tin Đây là ứng dụng cơ bản nhất của kỹ thuật thuỷ vân số.
Môi trường giấu tin
Giấu tin trong ảnh đang thu hút sự chú ý lớn, đóng vai trò quan trọng trong các ứng dụng bảo vệ thông tin như nhận thực, xác định xuyên tạc và bảo vệ bản quyền Thông tin được nhúng vào dữ liệu ảnh mà không làm giảm chất lượng hình ảnh, giúp người dùng không nhận ra sự tồn tại của thông tin ẩn Với sự phổ biến của ảnh số hiện nay, việc giấu thông tin trong ảnh đã mang lại nhiều ứng dụng quan trọng trong các lĩnh vực khác nhau của đời sống xã hội.
Thông tin đƣợc giấu một cách vô hình, nó nhƣ là cách truyền thông tin mật cho nhau mà người khác không biết được
Kỹ thuật giấu thông tin trong âm thanh khác với kỹ thuật giấu thông tin trong ảnh, vì nó phụ thuộc vào hệ thống thính giác của con người (HAS) thay vì hệ thống thị giác (HSV) Tai người có khả năng phát hiện sự khác biệt giữa các giải tần và công suất rất kém, điều này cho phép các âm thanh lớn, cao tần dễ dàng che giấu các âm thanh nhỏ, thấp tần.
Giấu tin trong audio gặp khó khăn do kênh truyền và băng thông chậm, ảnh hưởng đến chất lượng thông tin Quy trình này yêu cầu tính đồng bộ và an toàn cao Các phương pháp thường khai thác điểm yếu trong hệ thống thính giác của con người để thực hiện việc giấu thông tin hiệu quả.
Giấu thông tin trong video, tương tự như trong ảnh và âm thanh, đang được phát triển mạnh mẽ và thu hút sự quan tâm lớn Công nghệ này có nhiều ứng dụng quan trọng, bao gồm kiểm soát truy cập thông tin, nâng cao nhận thức thông tin và bảo vệ bản quyền tác giả.
Phương pháp giấu tin trong video do Cox đề xuất là phương pháp phân bố đều, trong đó thông tin được phân phối theo tần số của dữ liệu gốc Nhiều nhà nghiên cứu đã áp dụng các hàm cosin riêng và hệ số truyền sóng riêng để thực hiện việc giấu tin Các thuật toán ban đầu chủ yếu cho phép giấu ảnh vào video, nhưng gần đây, các kỹ thuật mới đã phát triển cho phép giấu cả âm thanh và hình ảnh.
1.5.4 Giấu thông tin trong văn bản dạng text
Việc giấu thông tin trong văn bản text gặp nhiều khó khăn do thiếu thông tin dư thừa Để thực hiện điều này, cần khéo léo khai thác các yếu tố dư thừa tự nhiên của ngôn ngữ Một phương pháp khác là sử dụng định dạng văn bản, chẳng hạn như mã hóa thông tin vào khoảng cách giữa các từ hoặc các dòng văn bản.
Kỹ thuật giấu tin hiện nay không chỉ giới hạn trong dữ liệu đa phương tiện như hình ảnh, âm thanh và video, mà còn được áp dụng cho nhiều loại đối tượng khác Gần đây, một số nghiên cứu đã tập trung vào việc giấu tin trong cơ sở dữ liệu quan hệ và các gói IP truyền trên mạng, cho thấy tiềm năng phát triển mạnh mẽ trong tương lai.
NGHIÊN CỨU CẤU TRÚC ẢNH BITMAP
Cấu trúc ảnh bitmap
Một tập tin BMP điển hình thông thường chứa những khối dữ liệu sau
Bảng 2.1 - Các khối dữ liệu trong một tập tin BMP
BMP File Header Lưu trữ thông tin tổng hợp về file BMP
Bitmap Infomation Lưu trữ thông tin chi tiết về ảnh bitmap
Color Palette Lưu trữ định nghĩa của màu được sử dụng cho bitmap
Bitmap Data Lưu trữ từng pixel của hình ảnh thực tế
2.1.1 BMP File Header Đây là khối bytes ở phần đầu tập tin, sử dụng để định danh tập tin Ứng dụng đọc khối bytes này để kiểm tra xem đó có đúng là tập tin BMP không và có bị hƣ hỏng không
Bảng 2.2 Chi tiết khối bytes tiêu đề tập tin BMP
Magic number sử dụng để định nghĩa tập tin BMP: 0x42 0x4D (mã hexa của kí tự B và M) Các mục dưới đây có thể đƣợc dùng:
IC - OS/2 Icon 0002h 4 bytes Kích thước của tập tin BMP theo byte
0006h 2 bytes Dành riêng, giá trị thực tế phụ thuộc vào ứng dụng tạo ra hình ảnh
0008h 2 bytes Dành riêng, giá trị thực tế phụ thuộc vào ứng dụng tạo ra hình ảnh
000Ah 4 bytes Offset, địa chỉ bắt đầu các byte dữ liệu ảnh bitmap
Khối bytes này cung cấp thông tin chi tiết về hình ảnh, giúp ứng dụng hiển thị hình ảnh trên màn hình Cấu trúc tiêu đề DIB được mô tả chi tiết trong Bảng 2.3, với tất cả các giá trị được lưu trữ dưới dạng số nguyên không dấu, trừ khi có ghi chú rõ ràng.
Bảng 2.3 Chi tiết khối bytes thông tin tập tin BMP
Eh 4 Kích thước của tiêu đề (40 bytes)
12h 4 Chiều rộng bitmap tính bằng pixel (signed interger)
16h 4 Chiều cao bitmap tính bằng pixel (signed interger)
1Ah 2 Số lƣợng các mặt phẳng màu sắc đƣợc sử dụng Phải đƣợc thiết lập bằng 1
1Ch 2 Số bit trên mỗi pixel, là độ sâu màu của hình ảnh giá trị điển hình là 1, 4, 8, 16, 24 và 32
1Eh 4 Phương pháp nén được sử dụng Xem bảng tiếp theo để có danh sách các giá trị có thể
22h 4 Kích thước hình ảnh Đây là kích thước của dữ liệu bitmap (xem bên dưới), và không nên nhầm lẫn với kích thước tập tin
26h 4 Độ phân giải theo chiều ngang của hình ảnh (signed interger) 2Ah 4 Độ phân giải theo chiều dọc của hình ảnh (signed interger)
2Eh 4 Số lƣợng màu trong bảng màu
32h 4 Số lƣợng các màu sắc quan trọng đƣợc sử dụng, hoặc 0 khi màu sắc nào cũng đều là quan trọng, thường bị bỏ qua
Bảng màu trong tập tin BMP xuất hiện ngay sau tiêu đề BMP và tiêu đề DIB, do đó, offset được tính bằng tổng kích thước của tiêu đề BMP và kích thước của tiêu đề DIB.
Có tất cả 2 24 màu RGB khác nhau, nhƣng các loại Bitmap sau:
- 1bit (2 màu, hoặc chuẩn Windows là trắng-đen)
Trong hệ thống màu 8 bit (256 màu), không thể khai thác hết tất cả các màu, do đó chỉ liệt kê các màu được sử dụng trong file Mỗi màu trong bảng màu được mô tả bằng 4 bytes, bao gồm BlueByte, GreenByte, RedByte và ReservByte Ví dụ, bảng màu loại 1 bit chuẩn Windows có 8 bytes với các giá trị: 0,0,0,0,255,255,255,0.
(4 bytes đầu là màu thứ 0; 4 bytes sau là màu thứ 1 Do chỉ có 0 và 1 nên mô tả mỗi điểm ảnh chỉ cần dùng 1 bit)
Bảng màu của file 4 bits có 64 bytes, bao gồm các màu từ số 0 đến số 15, trong khi bảng màu của file 8 bits có 1024 bytes (từ 0 đến 255) Các màu trong file 1 bit, 4 bits và 8 bits được gọi là màu Indexed, trong khi màu 24 bits được gọi là màu True.
Dữ liệu ảnh được lưu trữ theo từng điểm ảnh từ trái sang phải và từ dưới lên trên Đối với ảnh màu dạng Indexed, mỗi điểm ảnh cần từ 1 đến 8 bits để xác định vị trí màu trong bảng màu.
Giá trị 0111 (=7) trong định dạng BMP 4 bits chỉ ra rằng điểm ảnh có màu xám theo tiêu chuẩn Windows Trong khi đó, định dạng 24 bits không sử dụng bảng màu để mô tả màu sắc, mà thay vào đó, nó liệt kê trực tiếp giá trị RGB của ba màu thành phần, giúp tiết kiệm bộ nhớ và dung lượng lưu trữ.
Mỗi điểm ảnh loại 1 bit tiêu tốn 18 bytes, trong khi loại 4 bits là 12 bytes, loại 8 bits là 1 byte và loại 24 bits là 3 bytes Tuy nhiên, tổng khối lượng dữ liệu của bức ảnh thường lớn hơn so với tính toán lý thuyết do quy ước rằng số bytes cần dùng cho mỗi hàng ngang phải là bội của 4.
Khi bạn có một bức ảnh 1x1, 1 bit, kích thước của nó vẫn tốn 66 bytes, tương tự như bức ảnh 32x1, 1 bit (54 bytes cho header, 8 bytes cho bảng màu, và 4 bytes cho một hàng tối thiểu) Nếu bạn xoay bức hình 32x1 thành 1x32, sẽ có sự lãng phí đáng kể xảy ra, với mỗi hàng lãng phí 31 bits, tổng cộng là 32 lần, tương đương với 124 bytes.
Ảnh xám
Đơn vị cơ bản của ảnh số là pixel, với thông số khác nhau tùy thuộc vào định dạng ảnh màu hay ảnh xám Đối với ảnh màu, mỗi pixel chứa thông tin của ba màu cơ bản là Đỏ (R), Xanh lá (G) và Xanh dương (B), tạo ra bản màu khả kiến.
Trong mỗi pixel của ảnh màu, ba màu cơ bản là Đỏ (R), Xanh lá (G) và Xanh dương (B) được sắp xếp gần nhau với cường độ sáng khác nhau Mỗi màu cơ bản thường được biểu diễn bằng tám bit, cho phép tạo ra 256 mức độ màu khác nhau Do đó, mỗi pixel sẽ có khả năng hiển thị một loạt các màu sắc phong phú.
Ảnh màu có 16.78 triệu màu, với mỗi pixel chứa thông tin từ 2^24 màu Đối với ảnh xám, mỗi pixel mang 256 mức xám (tương ứng với 8 bit), cho phép tái hiện cấu trúc đầy đủ của ảnh màu thông qua tám mặt phẳng bit.
Trong xử lý ảnh, cấu trúc của ảnh thường được chú trọng hơn màu sắc Vì vậy, chuyển đổi từ ảnh màu sang ảnh xám là một bước phổ biến, giúp tăng tốc độ xử lý và giảm độ phức tạp của các thuật toán.
NGHIÊN CỨU KỸ THUẬT GIẤU TIN THUẬN NGHỊCH
Kỹ thuật giấu tin dựa trên sự khác biệt
Kỹ thuật giấu tin thuận nghịch dựa trên Difference Expansion do Jun Tian đề xuất năm 2002 [5].
Ý tưởng và thuật toán
Kỹ thuật này nhúng thông điệp cần giấu vào sự khác biệt của cặp giá trị điểm ảnh
3.2.1 Một số công thức và định nghĩa a) Một số công thức:
Từ cặp giá trị điểm ảnh (x,y) của ảnh, ta tính giá trị trung bình l và sự khác biệt h theo công thức:
2 y l x , h x y (1) trong đó là phép toán lấy phần nguyên
Mà giá trị của điểm ảnh trong ảnh xám nằm trong [0,255], ta có:
) 1 2 ), 255 ( 2 min( l l h (3) Công thức này đƣợc sử dụng để kiểm tra h sau khi thay đổi để tránh vấn đề tràn sau khi nhúng vào ảnh
LSB của h sẽ đƣợc chọn làm vùng để nhúng bit dữ liệu:
Để tránh vấn đề tràn trong LSB (h) = 0 hoặc 1, chúng ta chỉ nhúng vào những giá trị h có thể thay đổi Định nghĩa h là có thể thay đổi nếu nó thỏa mãn một số điều kiện nhất định khi xét đến cặp giá trị điểm ảnh xám (x,y).
2 b l l h cho cả b=0 và 1 Định nghĩa: Cho một cặp giá trị điểm ảnh xám (x,y) chúng ta nói h là có thể mở rộng nếu h thỏa mãn điều kiện sau:
3.2.2 Quá trình giấu thông tin
Hình 3.1 - Lƣợc đồ quá trình giấu tin [5]
Chúng ta áp dụng công thức (1) cho mỗi cặp điểm ảnh
Tiếp theo chúng ta phân loại h thành 5 loại EZ, NZ, EN, CNE và NC:
1 EZ: expandable zeros Cho tất cả h 0, 1 mà có thể mở rộng
2 NZ: not expandable zeros Cho tất cả h 0, 1 mà không thể mở rộng
3 EN: expandable nonzeros Cho tất cả h 0, 1 mà có thể mở rộng
4 CNE: changeablable, but not expandable Cho tất cả h h 0, 1 mà có thể thay đổi nhƣng không thể mở rộng
5 NC: not changeable Cho tất cả h h 0, 1 mà không thể thay đổi
Dựa vào 5 thành phần ở bước 1, chúng ta sẽ tạo bản đồ định vị (location map) cho các cặp có h thuộc EZ hoặc EN với giá trị 1, trong khi những cặp có h thuộc NZ, CNE hoặc NC sẽ có giá trị 0 Bản đồ định vị này (bitmap 1bit) sẽ được nén bằng thuật toán JBIG2 hoặc mã đoạn dài Chuỗi bit sau khi nén sẽ được ký hiệu là L.
Chúng ta sẽ thu thập giá trị LSB gốc của h trong CNE tạo thành chuỗi bit C, với h=1 hoặc -2 thì LSB sẽ không đƣợc thêm vào C
Với bản đồ định vị L, giá trị LSB gốc C, và chuỗi bit thông điệp P chúng ta kết hợp chúng thành chuỗi bit B:
Tùy vào h mà chúng ta sẽ có những công thức nhúng bit b riêng:
- NZ hoặc NC: không thay đổi giá trị của h
Với b lần lƣợt là những bit thuộc chuỗi bit B
Sau khi các bit b đã đƣợc nhúng hết vào trong h Chúng ta áp dụng công thức
(2) để nhúng vào trong ảnh gốc
3.2.2 Quá trình tách thông tin và khôi phục ảnh gốc
Hình 3.2 - Lƣợc đồ quá trình tách tin [5]
Quá trình giải mã ngƣợc lại với quá trình giấu tin
Bước 1: Áp dụng công thức (1) cho mỗi cặp giá trị điểm ảnh
Tiếp theo chúng ta chia h làm 2 phần C và NC:
1 C: changeable Cho tất cả h có thể thay đổi
2 NC: not changeable Cho tất cả h không thể thay đổi
Sau khi thu thập tất cả các LSB của h trong C, chúng ta sẽ có chuỗi bit B Từ chuỗi B, chúng ta có thể xác định các giá trị L, C và P Dựa vào L, chúng ta sẽ giải mã được bản đồ định vị (location map) Với bản đồ định vị này, chúng ta có thể khôi phục lại giá trị h ban đầu.
- Nếu h C và bản đồ định vị có giá trị là 1, khi đó
- Nếu h C, bản đồ định vị có giá trị là 0 và 0 h 1 khi đó h 1
- Nếu h C, bản đồ định vị có giá trị là 0 và 2 h 1khi đóh 2
- Nếu h C, bản đồ định vị có giá trị là 0 và h 2hoặc h 3khi đó h b h 2
- Nếu h NC, h không thay đổi
Sau khi tất cả h đã đƣợc khôi phục, chúng ta áp dụng công thức (2) để khôi phục lại ảnh gốc
Kết quả: ảnh gốc đƣợc khôi phục, và thu đƣợc chuỗi bít thông điệp giấu P
Kỹ thuật có khả năng giấu cao, trên 95% ảnh Chất lƣợng ảnh sau khi giấu tin tốt
Có khả năng khôi phục lại ảnh gốc có độ chính xác cao.
CÀI ĐẶT THỬ NGHIỆM
Môi trường thử nghiệm
4.1.1 Tập dữ liệu thử nghiệm
Tập dữ liệu thử nghiệm bao gồm 10 ảnh chuẩn kích thước 512x512 và 20 ảnh chụp từ máy ảnh kỹ thuật số, được chuyển đổi thành ảnh xám 8 bit bằng phần mềm Adobe Photoshop CS2 với nhiều kích cỡ khác nhau.
Hình 4.2 20 chụp bằng máy ảnh kỹ thuật số với nhiều kích cỡ
4.1.2 Đo độ đánh giá PSNR
Chất lượng ảnh sau khi tin giấu được đánh giá qua tỷ số PSNR (Peak Signal to Noise Ratio), phản ánh tỷ lệ tín hiệu đỉnh so với nhiễu.
Nó được định nghĩa thông qua bình phương trung bình lỗi MSE (mean squared error) cho hai hình ảnh I va K có kích thước m n:
Khi hai hình ảnh giống hệt nhau, MSE sẽ bằng 0 và PSNR đi đến vô hạn
4.1.3 Một số giao diện chương trình demo a) Giao diện chính của chương trình (hình 4.3)
Bao gồm các chức năng:
- Giấu chuỗi kí tự: thực hiện giấu một chuỗi thông điệp do người dùng nhập vào
- Giấu tệp văn bản: thực hiện giấu một tệp văn bản do người dùng chọn
Giấu theo tỷ lệ ảnh là phương pháp thực hiện việc ẩn thông tin bằng cách sử dụng chuỗi bit ngẫu nhiên, với kích thước được tính toán dựa trên tỷ lệ phần trăm của ảnh mà người dùng nhập.
- Tách chuỗi kí tự: thực hiện tách một chuỗi thông điệp từ ảnh đã đƣợc giấu bởi chức năng giấu chuỗi kí tự
- Tách tệp văn bản: thực hiện tách một tệp văn bản từ ảnh đã đƣợc giấu bởi chức năng giấu tệp văn bản.
Hình 4.3 Giao diện chính chương trình b) Giao diện chương trình BIP (Binarization Image Processor) hình 4.4
Hình 4.4 Giao diện chương trình nén ảnh BIP (Binarization Image Processor) [7]
- Add File (s): tệp ảnh đầu vào quá trình nén
- Output type: lựa chọn định dạng ảnh kết quả
- Output directory: Chọn thư mục lưu ảnh kết quả
- Binarize all: thực hiện quá trình xử lý ảnh
Cách chuyển đổi một định dạng ảnh bằng phần mềm BIP:
To begin, click on "Add File(s)" or "Add Directory" to select the image files you wish to process The software will then handle all the files listed under "Images to process."
Bước 2: Click vào Output type để chọn kiểu (TIFF/PDF/JBIG2/BMP) cho ảnh kết quả
Bước 3: Click vào Output directory để chọn đường dẫn tới thư mục lưu ảnh kết quả
Step 4: Click the "Binarize all" button to process all images in the input list, or select the "Binarize selected" button to process only the chosen images from the list.
Các định dạng đầu ra của phần mềm BIP:
Các yêu cầu tối thiểu về hệ thống khi cài đặt:
- Bộ xử lý Celeron 800MHz
- Thông tin chung: info@xvel.com
- Đăng ký: orders@xvel.com
- Hỗ trợ khách hàng: support@xvel.com c)Giao diện quá trình giấu tin bất kỳ
Hình 4.5 Giao diện nhúng thông điệp
Hình 4.6 Chọn ảnh Ô nhập dữ liệu:
- Ảnh nhúng: click vào nút bên cạnh chọn ảnh để giấu thông tin
- Bản đồ: tên ảnh lưu trữ bản đồ định vị, sẽ được nén lại chương trình nén JBIG2 rồi nhúng vào ảnh
- Thông điệp: nhập vào thông điệp cần giấu
- Ảnh kết quả: lưu trữ ảnh kết quả sau khi giấu tin
- Click vào nút để chọn ảnh
- Giấu tin: thực hiện quá trình giấu tin
- Thoát: thoát khỏi giao diện giấu thông tin
Hình 4.7 Nhập bản đồ định vị nén
Khi thực hiện giấu tin, một bản đồ định vị sẽ được tạo và lưu tên trong ô dữ liệu bản đồ Sau đó, sử dụng phần mềm nén BIP (Binarization Image Processor) để nén bản đồ định vị, với định dạng tệp kết quả là jb2 Tiếp theo, nhấn nút chọn ảnh để chọn bản đồ định vị đã nén, và nhấn nút tiếp tục để hoàn tất quá trình giấu tin Kết quả cuối cùng được thể hiện qua hình ảnh minh họa.
Hình 4.8 Ảnh trước và sau khi giấu tin d) Giao diện quá trình giấu tệp văn bản:
Hình 4.9 Giao diện quá trình giấu tệp văn bản Ô nhập dữ liệu:
- Ảnh nhúng: click vào nút bên cạnh chọn ảnh để giấu thông tin
- Bản đồ định vị: tên ảnh lưu trữ bản đồ định vị, sẽ được nén lại chương trình nén JBIG2 rồi nhúng vào ảnh
- Tên tệp nhúng: click vào nút bên cạnh để chọn tệp văn bản cần giấu
- Ảnh kết quả: lưu trữ ảnh kết quả sau khi giấu
- Giấu tin: thực hiện quá trình giấu tin
- Thoát: thoát khỏi giao diện giấu thông tin
Khi thực hiện giấu tin, người dùng cần tạo bản đồ định vị với tên nhập trong ô dữ liệu Sau đó, sử dụng phần mềm BIP để nén bản đồ định vị Tiếp theo, chọn bản đồ đã nén bằng cách nhấn nút chọn ảnh và tiếp tục quá trình giấu tin Giao diện thực hiện việc giấu tin sẽ dựa trên tỷ lệ kích thước ảnh.
Hình 4.10 Giao diện quá trình giấu theo tỷ lệ ảnh
Giải thích tham số đầu vào: Ô nhập dữ liệu:
- Ảnh nhúng: click vào nút bên cạnh chọn ảnh để giấu thông tin
- Bản đồ định vị: tên ảnh lưu trữ bản đồ định vị, sẽ được nén lại chương trình nén JBIG2 rồi nhúng vào ảnh
- Tỷ lệ nhúng: nhập vào tỷ lệ (0-90 %)
- Ảnh kết quả: lưu trữ ảnh kết quả sau khi giấu tin
- Giấu tin: thực hiện quá trình giấu tin
- Thoát: thoát khỏi giao diện giấu thông tin
Khi giấu tin, bạn cần tạo bản đồ định vị với tên nhập trong ô dữ liệu Sử dụng phần mềm BIP để nén bản đồ định vị Tiếp theo, chọn bản đồ đã nén bằng cách nhấn nút chọn ảnh và sau đó nhấn nút tiếp tục để tiếp tục quá trình giấu tin.
Các module cài đặt
4.2.1 Chức năng: Giấu thông tin vào trong ảnh
Các tham số đầu vào:
- digital_image: tên của ảnh sẽ giấu tin lên
- location_map: tên của ảnh lưu trữ bản đồ định vị
- watermark_iamge: tên của ảnh kết quả sau khi giấu tin
- message: nội dung thông điệp giấu vào ảnh
- dk: thiết lập bằng 1 khi giấu thông tin, giấu tệp Khác 1 khi giấu theo tỷ lệ ảnh
4.2.2 Chức năng: Tách thông tin từ trong ảnh và khôi phục lại ảnh ban đầu
Các tham số đầu vào:
- watermark_image: tên của ảnh sẽ tách tin
- map_compress: tên của ảnh lưu trữ bản đồ định vị nén (*.jb2)
- result_image: tên ảnh kết quả sau khi khôi phục
- message: lưu thông điệp tách được từ ảnh đầu vào
4.2.3 Chức năng:Trích xuất phần dữ liệu của ảnh JBIG2
- image_jb2: tên của ảnh jbig2 sẽ đƣợc trích phần dữ liệu
- data: lưu trữ phần dữ liệu của ảnh jbig2 đầu vào
4.2.4 Chức năng: Khôi phục ảnh JBIG2
Các tham số đầu vào:
- data: chứa phần dữ liệu của ảnh JBIG2 cần khôi phục
- file_name: tên của ảnh JBIG2 sau khi khôi phục
4.2.5 Chức năng: Đọc một tệp văn bản
- filename: tên tệp văn bản cần đọc
- text: nội dung của tệp văn bản đầu vào
4.2.6 Chức năng: Ghi một tệp văn bản
- text: nội dung cần ghi vào tệp văn bản
- filename: tên tệp văn bản cần ghi vào
4.2.7 Chức năng: Đổi một chuỗi kí tự ra một chuỗi nhị phân
- String: chuỗi kí tự cần đổi
-Bit: chuỗi bít kết quả
4.2.8 Chức năng: Đổi một chuỗi nhị phân ra một chuỗi kí tự
-Bit: chuỗi bít cần đổi
- String: chuỗi kí tự kết quả.
Thực nghiệm và đánh giá
4.3.1 Giấu trên 10 ảnh chuẩn (hình 4.1)
Hình 4.11 Tệp thông điệp(nội dung 40.320 bit)
Hình 4.12 Tệp thông điệp (nội dung 67.264 bit)
Sử dụng kỹ thuật Difference Expandable nhúng 2 file text trên vào tập cơ sở dữ liệu ảnh hình 4.1 ta đƣợc bảng PSNR 4.1:
Bảng 4.1 Kết quả thực nghiệm trên 10 ảnh chuẩn Lƣợng giấu Ảnh giấu
Hình 4.13 Tập ảnh trước và sau khi giấu 30% và 50% kích thước ảnh
4.3.2 Giấu trên 20 ảnh bất kỳ
Hình 4.14 Tập ảnh thử nghiệm gồm 20 ảnh bất kỳ với kích cỡ khác nhau
Bảng 4.2 Bảng kết quả thực nghiệm trên 20 ảnh Lƣợng giấu Ảnh giấu
Kỹ thuật giấu đƣợc lƣợng thông tin lớn, quá trình xử lý nhanh, chất lƣợng hình ảnh sau khi giấu tin là tốt (PSNR>35).