Các phương pháp giấu tin trong ảnh

Tính bảo mật trong thuật toán với việc sử dụng LSB đã tăng thêm độ bảo mật đó là ngoài phụ thuộc vào ma trận K, W còn phụ thuộc vào chiến lược trích các bít LSB và kỹ thuật nén thông tin. Vì sử dụng các bit LSB để tạo thành ma trận F nên chất lượng của ảnh sau khi đã giấu tin rất tốt. Để tăng dung lượng giấu tin, thay vì sử dụng thuật toán CPT giấu thông tin trong khối bít. Có thể thay đổi trực tiếp các bit của ma trận F để giấu thông tin. Nhược điểm của giải pháp này là tính bảo mật của thuật toán chỉ phụ thuộc vào chiến lược trích các bit LSB. Tuy nhiên có thể khắc phục nhược điểm này bằng cách mã hóa thông tin cần giấu bằng một hệ mật mã nào đó trước khi tiến hành giấu tin trong ảnh. Đây cũng là phương pháp em tìm hiểu quá trình giấu tin trong ảnh.

doc45 trang | Chia sẻ: lvcdongnoi | Lượt xem: 5326 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu 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
truyền thông, các dữ liệu hay các thông tin đa phương tiện gồm: text (văn bản), graphic (hình họa), animation (hoạt ảnh), Image(ảnh chụp), video, audio. 1.1. Giấu tin trong dữ liệu đa phương tiện: Giấu tin như thế nào? Cùng với sự phát triển của Internet và các phương tiện multimedia, nhiều vấn đề như: ăn cắp bản quyền, xuyên tạc thông tin, truy cập thông tin trái phép… cũng tăng theo, đòi hỏi phải tìm ra các giải pháp mới, hữu hiệu cho an toàn và bảo mật thông tin. Một trong các giải pháp nhiều triển vọng là giấu tin(Data Hiding), đã và đang được nghiên cứu và ứng dụng. Giấu thông tin là kỹ thuật nhúng(embedding) một lượng thông tin số nào đó vào trong một đối tượng dữ liệu số khác. Sự khác biệt giữa mã hóa thông tin và giấu thông tin là mã hóa làm cho các thông tin hiện rõ là nó có được mã hóa hay không, còn với giấu thông tin thì sẽ khó phát hiện ra được rằng có thông tin giấu bên trong. Yêu cầu cơ bản của việc giấu tin là đảm bảo tính chất ẩn của thông tin được giấu đồng thời không làm ảnh hưởng đến chất lượng của dữ liệu gốc. Hiện tại thì giấu tin chia làm hai hướng lớn, đó là watermark(thủyvân), và steganography. Phương pháp thủy vân quan tâm đến ứng dụng giấu các mẩu tin ngắn nhưng đòi hỏi độ bền vững lớn của thông tin cần giấu trước các biến đổi thông th ường của tệp dữ liệu môi trường. Trong khi đó, phương pháp Steganography quan tâm tới ứng dụng che giấu các bản tin đòi hỏi độ bí mật và dung lượng càng lớn càng tốt. Mục đích của giấu tin có hai khía cạnh chính: Bảo mật cho dữ liệu đem giấu(embedded data), chẳng hạn như giấu thông tin mật trong một đối tượng nào đó sao cho người khác không phát hiện được. Đảm an toàn bảo mật cho chính đối tượng được dùng để giấu dữ liệu vào(host data) Kỹ thuật giấu tin đã được nghiên cứu và áp dụng trong nhiều môi trường dữ liệu khác nhau như trong dữ liệu đa phương tiện (text, image, audio, video), trong các sản phẩm phần mềm, và gần đây là trong cơ sở dữ liệu quan hệ, trong đó thì dữ liệu đa phương tiện chiếm tỉ lệ chủ yếu trong kỹ thuật giấu TIN 1.2. Phương pháp giấu tin Trong một quá trình phát triển lâu dài, nhiều phương pháp bảo vệ thông tin đã được đưa ra trong đó giải pháp dùng mật mã học là giải pháp được ứng dụng rộng rãi nhất. Các hệ mã mật đã được phát triển nhanh chóng và được ứng dụng rất phổ biến cho đến tận ngày nay. Thông tin ban đầu sẽ được mã hoá thành các ký hiệu vô nghĩa, sau đó sẽ được lấy lại thông qua việc giải mã nhờ khoá của hệ mã. Đã có rất nhiều những hệ mã phức tạp được sử dụng như DES, RSA, NAPSACK...và phương pháp này đã được chứng minh thực tế là rất hiệu quả và được ứng dụng phổ biến. Nhưng ở đây ta không định nói về các hệ mã mật mà ta tìm hiểu về một phương pháp đã và đang được nghiên cứu và ứng dụng rất mạnh mẽ ở nhiều nước trên thế giới đó là phương pháp giấu tin (data hiding). Đây là phương pháp mới và phức tạp, nó đang được xem như một công nghệ chìa khoá cho vấn đề bảo vệ bản quyền, nhận thực thông tin và điều khiển truy cập … ứng dụng trong an toàn và bảo mật thông tin. Vậy lịch sử của phương pháp giấu tin như thế nào? Đầu tiên các câu chuyện kể về kĩ thuật giấu thông tin được truyền qua nhiều thế hệ, ý tưởng về che giấu thông tin đã có từ hàng nghìn năm về trước nhưng kĩ thuật này được dùng chủ yếu trong quân đội và trong các cơ quan tình báo. Mãi cho tới vài thập niên gần đây, giấu thông tin mới nhận được sự quan tâm của các nhà nghiên cứu và các viện công nghệ thông tin với rất nhiều công trình nghiên cứu. Cuộc cách mạng số hóa thông tin và sự phát triển nhanh chóng của mạng truyền thông là nguyên nhân chính dẫn đến sự thay đổi này. Những phiên bản sao chép hoàn hảo, các kĩ thuật thay thế, sửa đổi tinh vi cộng với sự lưu thông phân phối trên mạng của các dữ liệu đa phương tiện đã sinh ra rất nhiều những vấn đề nhức nhối về nạn ăn cắp bản quyền, phân phối bất hợp pháp, xuyên tạc trái phép…đây là lúc công nghệ giấu tin được chú ý và phát triển. Giấu thông tin là một kĩ thuật nhúng thông tin vào trong một nguồn đa phương tiện gọi là các phương tiện chứa mà không gây ra sự nhận biết về sự tồn tại của thông tin giấu. Phương pháp giấu tin là làm cho người ta khó có thể biết được có thông tin giấu bên trong đó do tính chất ẩn của thông tin được giấu. 1.2.1.Mục đích của giấu tin Giấu tin có hai mục đích: - Bảo mật cho những dữ liệu được giấu - Bảo đảm an toàn (bảo vệ bản quyền) cho chính các đối tượng chứa dữ liệu giấu trong đó. Có thể thấy hai mục đích này hoàn toàn trái ngược nhau và dần phát triển thành hai lĩnh vực với những yêu cầu và tính chất khác nhau. Giấu thông tin Giấu tin bí mật (Steganography) Thuỷ vân số (Watermarking) Hình 1.1: Hai lĩnh vực chính của kỹ thuật giấu thông tin Kỹ thuật giấu thông tin bí mật (Steganography): với mục đích đảm bảo an toàn và bảo mật thông tin tập trung vào các kỹ thuật giấu tin để có thể giấu được nhiều thông tin nhất. Thông tin mật được giấu kỹ trong một đối tượng khác sao cho người khác không phát hiện được. Kỹ thuật giấu thông tin theo kiểu đánh giấu (watermarking) để bảo vệ bản quyền của đối tượng chứa thông tin tập trung đảm bảo một số các yêu cầu như đảm bảo tính bền vững… đây là ứng dụng cơ bản nhất của kỹ thuật thuỷ vân số. 1.2.2. Mô hình kỹ thuật giấu thông tin cơ bản Để thực hiện giấu tin cần xây dựng được các thủ tục giấu tin. Các thủ tục này sẽ thực hiện nhúng thông tin cần giấu vào môi trường giấu tin. Các thủ tục giấu tin thường được thực hiện với một khóa giống như các hệ mật mã để tăng tính bảo mật. Sau khi giấu tin ta thu được đối tượng chứa thông tin giấu và có thể phân phối đối tượng đó trên kênh thông tin. Để giải mã thông tin cần nhận được đối tượng có chứa thông tin đã giấu, sử dụng thủ tục giải mã cùng với khóa đã dung trong quá trình giấu để lấy lại thông tin. 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 trái ngược nhau và có thể mô tả qua sơ đồ khối của hệ thống như hình 1.2 trong đó: - Thông tin cần giấu tuỳ theo mục đích của người sử dụng, nó có thể là thông điệp (với các tin bí mật) hay các logo, hình ảnh bản quyền. - Phương tiện chứa: các file ảnh, text, audio… là môi trường để nhúng tin - Bộ nhúng 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 đó Thông tin giấu Phương tiện chứa(audio, ảnh, video) Phương tiện chứa đã được giấu tin Khóa giấu tin Bộ nhúng thông tin Phân phối Hình 1.2: Lược đồ chung cho quá trình giấu tin Tách thông tin từ các phương tiện chứa diễn ra theo quy trình ngược lại với đầu ra là các thông tin đã được giấu vào phương tiện chứa. Phương tiện chứa sau khi tách lấy thông tin có thể được sử dụng, quản lý theo những yêu cầu khác nhau. Phương tiện chứa (audio, ảnh, video) Phương tiện chứa đã được giấu tin Bộ giải mã tin Thông tin giấu Kiểm định Khóa giấu tin Hình 1.3: Lược đồ chung cho quá trình giải mã Hình vẽ 1.3 chỉ ra các công việc giải mã thông tin đã giấu. Sau khi nhận được đối tượng phương tiện chứa có giấu thông tin, quá trình giải mã được thực hiện thông qua một bộ giải mã tương ứng với bộ nhúng thông tin cùng với khoá của quá trình nhúng. Kết quả thu được gồm phương tiện chứa gốc và thông tin đã giấu. Bước tiếp theo thông tin đã giấu sẽ được xử lý kiểm định so sánh với thông tin ban đầu. 1.2.3.Phân loại các kỹ thuật giấu tin a. Giấu tin trong ảnh: Hiện nay giấu thông tin trong ảnh là một bộ phận chiếm tỉ lệ lớn nhất trong các chưng trình ứng dụng hệ thống giấu tin trong đa phương tiện bởi lượng thông tin được trao đổi bằng ảnh là rất lớn và hơn nữa giấu thông tin trong ảnh cũng đóng vai tò hết sức quan trọng trong hầu hết các ứng dụng bảo vệ an toàn thông tin như: nhận thực thông tin, xác định xuyên tạc thông tin, bảo vệ bản quyền tác giả, điều khiển truy cập…Chính vì thế mà vấn đề này nhận được sự quan tâm rất lớn của các cá nhân, tổ chức, trường đại học và nhiều viện nghiên cứu trên thế giới. Khi giấu thông tin trong ảnh, thông tin sẽ được giấu cùng với dữ liệu ảnh nhưng chất lượng ảnh ít thay đổi và gần như khi nhìn binh thường vào ảnh đó chúng ta không thể phát hiện ra rằng đằng sau ảnh là khối thông tin được ẩn trong đó. Ngày nay khi ảnh số được sử dụng rất phổ biến thì giấu thông tin trong ảnh là một công nghệ đem lại rất nhiều tác dụng quan trọng trên nhiều lĩnh vực trong đời sống xã hội. Ví dụ như đối với các nước phát triển, chữ kí tay đã được số hóa và lưu trữ sử dụng như là hồ sơ cá nhân của các dịch vụ ngân hàng và tài chính, nó được dùng để nhận thực trong các thẻ tín dụng của người tiêu dùng. Phần mềm WinWord của Microsoft cũng chho phép người dùng lưu trữ chữ lí trong ảnh nhị phân rồi gắn vào vị trí nào đó trong file văn bản để đảm bảo tính an toàn của thông tin. Tài liệu sau đó được truyền trực tiếp qua máy fax, qua mạng theo đó việc nhận thực chữ kí, xác thực thông tin đó trở thành một vấn đề cực kì quan trọng khi mà việc ăn cắp thông tin hay xuyên tạc thông tin bởi các tin tặc đang trở thành một vấn nạn đối với bất kì quốc gia nào, tổ chức nào. Thêm vào đó lại có rất nhiều loại thông tin quan trọng cần được bảo mật như những thông tin về an ninh, thông tin về bảo hiểm hay các thông tin về tài chính, các thông tin này được số hóa và lưu trữ trong hệ thống máy tính hay trên mạng. Chúng rất dễ bị lấy cắp và bị thay đổi bởi các phần mềm chuyên dụng. Việc nhận thực cũng như phát hiện thông tin xuyên tạc đó trở nên vô cùng quan trọng, cấp thiết. Và một đặc điểm của giấu thông tin trong ảnh đó là thông tin được giấu trong ảnh đó là thông tin được giấu trong ảnh một cách vô hình, nó như là một cách mà truyền thông tin mật cho nhau mà người khác không thể biết được bởi sau khi giấu thông tin thì chất lượng ảnh gần như không thay đổi đặc biệt đối với ảnh mầu hay ảnh xám. Gần đây báo chí đã đưa tin vụ việc ngày 11-9 gây chấn động nước Mĩ và toàn thế giới, chính tên trùm khủng bố quốc tế Osma BinLaDen đã dùng cách thức giấu thông tin trong ảnh để liên lạc với đồng bọn, và hắn đã qua mặt được cục tình báo trung ương Mĩ CIA và các cơ quan an ninh quốc tế. Chắc chắn sau vụ việc này, thì việc nghiên cứu các vấn đề liên quan đến giấu thông tin trong ảnh sẽ rất được quan tâm. b. Giấu thông tin trong audio: Giấu thông tin trong audio mang những đặc điểm khác so với giấu thông tin trong các đối tượng đa phương tiện khác. Một trong những yêu cầu cơ bản của giấu tin là đảm bảo tính chất ẩn của thông tin được giấu đồng thời không làm ảnh hưởng đến chất lượng của dữ liệu gốc. Khác với kĩ thuật giấu thông tin trong ảnh phụ thuộc vào hệ thống thị giác thì kĩ thuật giấu thông tin trong audio lại phụ thuộc vào hệ thống thính giác HAS. Một vấn đề khó khăn ở đây là hệ thống thính giác của con người nghe được các tín hiệu ở các giải tần rộng và công suất lớn nên đã gây khó dễ đối với các phương pháp giấu tin trong audio. Nhưng thật may là HAS lại kém trong việc phát hiện sự khác biệt các dải tần và công suất, điều này có nghĩa là các âm thanh to, cao tần có thể che giấu được các âm thanh nhỏ thấp một cách dễ dàng. Các mô hình phân tích tâm lí đã chỉ ra điểm yếu trên và thông tin này sẽ giúp ích cho việc chọn các audio thích hợp cho việc giấu tin. Vấn đề khó khăn thứ hai đối với giấu thông tin trong audio là kênh truyền tin. Kênh truyền hay băng thông chậm sẽ ảnh hưởng đến chất lượng thông tin sau khi giấu. Ví dụ để nhúng một đoạn java applet vào một đoạn audio (16 bit, 44.100 Hz) có chiều dài bình thường thì các phương pháp nói chung cũng cần ít nhất là 20 bit/s. Giấu thông tin trong audio đòi hỏi yêu cầu rất cao về tính đồng bộ và tính an toàn của thông tin. Các phương pháp giấu thông tin trong audio đều lợi dụng điểm yếu trong hệ thống thính giác của con người. c. Giấu tin trong video: Cũng như giấu tin trong ảnh hay trong audio giấu tin trong video cũng được quan tâm và được phát triển mạnh mẽ cho nhiều ứng dụng như đièu khiển truy cập thông tin, nhận thực thông tin và bảo vệ bản quyền tác giả. Một phương pháp giấu tin trong viedeo được đưa ra bởi Cox là phương pháp phân bố đều. ý tưởng cơ bản của phương pháp là phân phối thông tin giấu dàn trải theo tần số của dữ liệu gốc. Nhiều nhà nghiên cứu đã dùng những hàm cosin riêng và các hệ số truyền sóng riêng để giấu tin. Trong các thuật toán khởi nguồn thường thi các kĩ thuật cho phép giấu các ảnh vào trong video nhưng thời gian gần đây các kĩ thuật cho phép giấu cả âm thanh và hình ảnh trong video. Như phương pháp của Swanson đã sử dụng phương pháp giấu theo khối, phương pháp này đã 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.4.1. Giấu thông tin trong ảnh: a. Trình tự thực hiện : - Mã hoá thông tin trước khi ẩn bằng cách thông qua mật khẩu và ta mã hoá thông tin muốn giấu với mật khẩu tạo ra một mảng byte kí tự mã hoá. - ẩn thông tin đã bị mã hoá vào file ảnh. b. Chương trình “Giấu tin trong file ảnh(.BMP)” Có 3 chức năng chính: Chức năng “Giấu một đoạn văn bản trong file ảnh”. Chức năng “Giấu file văn bản(.doc, .txt) trong file ảnh”. Chức năng “Giấu file ảnh(.bmp) trong file ảnh”. Sơ đồ chức năng chính: Giấu tin trong ảnh Giấu 1 đoạn văn bản Giấu file ảnh Giấu file văn bản Hình 3.3.Sơ đồ giấu tin trong ảnh bitmap(.bmp) Mục đích: Là để giấu những thông tin trong một file ảnh. Xây dựng phương thức CreateStegoFile với 3 tham số: tên file ảnh mới, nội dung message và password. - Chỉ làm việc với ảnh bitmap : Phải kiểm tra file ảnh muốn giấu phải là ảnh Bitmap. dựa vào 2 byte đầu tiên để xác định file ảnh Bitmap. Giấu cả thông tin về chiều dài của đoạn Message vào 4 byte đầu tiên trong phần Data Pixel. Tức là bắt đầu từ byte thứ 54 của file ảnh sẽ lưu trữ chiều dài của message. Vậy ta xây dựng 1 hàm đưa chiều dài của mess vào 4 byte đầu tiên , sau đó là nội dung của mess dưới dạng byte. Kết quả trả về là một mảng byte. Lúc này ta giấu cả mảng byte này vào trong file ảnh. Một thủ tục ẩn thông tin vào file ảnh: thay thế LSB với đầu vào là 1 luồng để dọc các byte ảnh và mảng byte của HiddenMessage. Đầu ra sẽ là luồng output mới chứa HiddenMessage trong file ảnh.Trong thủ tục này ta chỉ thao tác với các bit dữ liệu của thông điệp với các bit của phần Data Pixel trong file ảnh Vậy có thể sử dụng kỹ thuật này cho phép giấu một byte file ẩn vào 8 byte file chứa gốc(file ảnh chứa gốc). Từ trên có thể thấy được lợi thế khi sử dụng cách này là gì? đó chính là lúc nào cũng có nhiều nhất 50% số bít trùng nhau giữa tin cần giấu và file chứa gốc(file ảnh chứa gốc) do đó file chứa gốc ít bị ảnh hưởng lớn khi có tin giấu thêm vào trong file chứa gốc(file ảnh chứa gốc) đó. 3.5.Thuật toán CPT Đâ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. * OutPut (Dữ liệu ra): Một ảnh F’ đã có thông tin giấu, trong đó F’ được tạo bởi các khối Fi’ do giấu tin vào khối Fi tạo thành. Thuật toán sẽ thực hiện giấu r bít thông tin vào mỗi khối Fi bằng cách thay đổi nhiều nhất 2 bit của Fi và Fi biến đổi thành Fi’ sao cho luôn thỏa mãn điều kiên: SUM(Fi’ Å K) Ä W mod 2r=b1b2…br. * Quá trình thực hiện gồm 4 bước: - Bước 1. Tính T=Fi Å K - Bước 2. Tính SUM(T Ä W) - Bước 3. Xác định tập Sw={(x,y)|(W[x,y]=w Ù T[x,y]=0) Ú (W[x,y]=2r - w Ù T[x,y]=1)} trong đó w lấy các giá trị từ 1,2,…,2 r-1. - Bước 4. Kí hiệu d=(b1b2…bz) - SUM((Fi K) W) mod 2r. Thực hiện việc đảo bít trên Fi để được Fi’ sao cho tổng SUM tính được ở bước 2 khi thay Fi bởi Fi’ sẽ tăng lên d. (trong đó Å là phép XOR và Ä là phép nhân các phần tử tại các vị trí tương ứng của 2 ma trận cùng kích thước. Ma trận K và W được sử dụng bí mật giữa người gửi và người nhận tin) * Đánh giá thuật toán: độ an toàn của thuật toán phụ thuộc vào hai ma trận K và W. Để xác định được cả K và W cần kiểm tra (tổ hợp chập 2r-1của m*n)*(2r-1)!*(2r- 1)m*n-2^r-1* 2m*n điều này không thể thực hiện được nếu m và n đủ lớn. Và khối bít tối đa có thể giấu trong khối Fi là Log2(m*n+1) và vì vậy lượng tin giấu phụ thuộc vào kích thước các khối Fi 3.6. Ứng dụng thuật toán cho ảnh màu Để ứng thuật toán CPT cho ảnh màu và ảnh đa cấp xám để tạo thành ma trận nhị phân F. Thực hiện việc giấu tin vào F theo thuật toán CPT với ma trận K và W được sinh ngẫu nhiên. Sau đó trả các bít LSB trở về ảnh gốc để tạo thành ảnh mới đã giấu tin quá trình đó như sau: Tạo ảnh đã giấu tin Sinh file khóa Giấu tin vào khối bits LSB Tiền xữ lý Ảnh gốc để giấu tin Thông tin giấu Hình 3.4.Sơ đồ ứng dụng thuật toán của ảnh màu Bước tiền xử lý gồm các thao tác chính: Số hóa thông tin giấu và nén để tăng dung lượng. Trích các bít LSB từ ảnh gốc một cách ngẫu nhiên bằng một hàm băm để tạo thành ma trận F và chia thành các khối Fi. Sinh ngẫu nhiên ma trận khóa K và ma trận trọng số W. File khóa chứa các thông tin cơ bản để giải mã thông tin: chiến lược trích các bít LSB, số khối và kích thước các khối Fi, ma trận khóa K và ma trận trọng số W. Tính bảo mật trong thuật toán với việc sử dụng LSB đã tăng thêm độ bảo mật đó là ngoài phụ thuộc vào ma trận K, W còn phụ thuộc vào chiến lược trích các bít LSB và kỹ thuật nén thông tin. Vì sử dụng các bit LSB để tạo thành ma trận F nên chất lượng của ảnh sau khi đã giấu tin rất tốt. Để tăng dung lượng giấu tin, thay vì sử dụng thuật toán CPT giấu thông tin trong khối bít. Có thể thay đổi trực tiếp các bit của ma trận F để giấu thông tin. Nhược điểm của giải pháp này là tính bảo mật của thuật toán chỉ phụ thuộc vào chiến lược trích các bit LSB. Tuy nhiên có thể khắc phục nhược điểm này bằng cách mã hóa thông tin cần giấu bằng một hệ mật mã nào đó trước khi tiến hành giấu tin trong ảnh. Đây cũng là phương pháp em tìm hiểu quá trình giấu tin trong ảnh. 3.7.Lấy thông tin từ ảnh: a. Trình tự thực hiện : Lấy thông tin ẩn từ file ảnh. Muốn đọc được thông tin này phải giải mã với khoá chính là mật khẩu đã được dùng để mã hoá hay giấu thông tin. b. Chương trình “Lấy thông tin trong file ảnh(.BMP)” Có 3 chức năng chính: Chức năng “Lấy thông tin một đoạn văn bản từ file ảnh”. Chức năng “Lấy file văn bản(.doc, .txt) từ file ảnh”. Chức năng “Lấy file ảnh(.bmp) từ file ảnh”. Sơ đồ chức năng chính: Lấy thông tin trong ảnh Lấy 1 đoạn văn bản Lấy file ảnh Lấy file văn bản Hình 3.5. Sơ đồ Lấy tin trong ảnh bitmap(.bmp) Mục đích: Là để lấy lại những thông tin đã giấu trong một file ảnh. Xây dựng phương thức ExtractHiddenMessage: Phương thức này ngược với phương thức giấu thông tin CreateStegoFile ở trên + Đầu tiên sẽ phải đọc 4 byte đầu tiên trong phần Data Pixel để lấy về chiều dài của nội dung thông tin giấu trong ảnh. + Sau đó mới đọc tiếp nội dung của thông tin đã giấu. j = 0, i= i+1 ByteĐoc=InputStream.ReadByte i =0, j=0 j = 7 Đệm=ẩn đoạn văn bản Reaplace(ẩn đoạn vb(i), j, bit) Đệm =ClsCryptoHelper.giải mã(đệm, khóa) ẩn đoạn văn bản Kếtthúc Bắt đầu Bit=trích xuất(bytedoc,0) S Đ Hình 3.6. Lưu đồ thuật toán giải mã thông tin c. Cách giải quyết vấn đề: -Lớp clsLSB :Có một hàm “ShowMess” lấy ra byte được thay thế trong từng byte ảnh - Lớp clsStegoFile: Với chức năng chính là lấy được thông tin ẩn trong file ảnh. - Lớp ClsCryptoHelper: Có một phương thức giải mã thông tin nhúng được xác nhận bằng Password - Lớp clsStegoFile: Lớp này có nhiệm vụ lấy thông tin đã giấu trong file ảnh. Đầu vào: Một file ảnh dạng bitmap(.bmp) đã chứa tin trong đó và cùng với mật khẩu dùng để mã hoá dữ liệu. Đầu ra: Thông tin đã bị giấu trong file ảnh và hiện thị nó lên. CHƯƠNG IV: GIAO DIỆN CHƯƠNG TRÌNH 4.1 Thiết kế giao diện người dùng: 4.1.1 Giao diện chính: Chọn chức năng tại đây. Hình 4.1:Giao diện chính của chương trình Sau khi chọn chức năng giấu và lấy thông tin là một đoạn hay một tệp văn bản hay là một file ảnh thì bạn chọn vào từng chức năng trong menu sổ xuống của menu chinh. 4.1.2. Giao diện giấu đoạn văn bản vào file ảnh: Hình 4.2:Giao diện giấu đoạn văn bản vao file ảnh Sau khi chọn được file ảnh để nhúng thông tin, nhập thông tin muốn giấu vào “Thông điệp cần nhúng” sau đó thiết lập mật khẩu, chọn đường dẫn lưu file ảnh đã được nhúng và tiến hành nhúng bắng cách kích vào nút “Hide”. Khi đó thông tin sẽ được nhúng thành công. 4.1.3. Lấy thông tin từ một ảnh đã được nhúng thông tin trong đó: Muốn lấy thông tin từ ảnh đã giấu, tiến hành chọn file ảnh giấu thông tin và nhập mật khẩu cho nó thông tin được giấu trước đó sẽ hiển thị ngay dưới phần “Nội dung thông điệp”. Hình 4.3: Giao diện lấy thông tin từ một ảnh Đối với giấu tệp văn bản và giấu file ảnh cũng tương tự như giấu đoạn thông điệp. KẾT LUẬN 1. Đánh giá: Các kỹ thuật giấu và phát hiện thông tin ẩn giấu trên miền dữ liệu LSB của ảnh cấp xám, chúng ta có thể triển khai tương tự cho ảnh màu, ảnh nén dạng GIF. Các kỹ thuật này có độ tin cậy rất cao. Tuy thời gian nghiên cứu không dài nhưng em đã làm việc rất tích cực, nghiêm túc tìm kiếm và tra cứu các tài liệu trong nước, tài liệu nước ngoài để nắm vững và hiểu rõ các vấn đề, chọn lọc các thông tin cần trình bày từ đó xây dựng và cài đặt chương trình một cách chi tiết để đưa ra kết quả đánh giá chính xác. Tuy chưa đưa ra được cải tiến cụ thể nhưng đó cũng là kiến thức nền tảng cho vấn đề phát hiện thông tin ẩn giấu trong ảnh nói riêng và trong đa phương tiện nói chung. Mong rằng sẽ trở thành một tài liệu quý báu cho các đối tượng cần quan tâm và phát triển mở rộng hơn trong lĩnh vực có liên quan. 2. Hạn chế và hướng phát triển đề tài: Với phương pháp iấu tin trong ảnh Bitmap bằng mã hóa LSB thì tin được giấu sẽ có thể bị mất trên đường truyền nếu file ảnh giấu tin bị nén hay bị biến dạng, để khắc phục vấn đề này còn phải nghiên cứu thêm. Hướng nghiên cứu tiếp theo sẽ đưa ra vấn đề là viết một chương trình giấu tin trong ảnh hỗ trợ một số định dạng ảnh trên web, và chương trình sẽ chạy trực tiếp trên web, để tiện cho việc gửi thông tin bí mật cũng như đảm bảo an toàn thông tin cần thiết. Ngoài ra sẽ cải tiến cho trường hợp ảnh giấu lượng thông điệp thấp và nghiên cứu tiếp một số kỹ thuật phát hiện khác cho ảnh có giấu trên miền LSB như kỹ thuật Pairs analysis, LLT,… Em xin chân thành cảm ơn! TÀI LIỆU THAM KHẢO TIẾNG VIỆT [1]. Lương Mạnh Bá, Nguyễn Thanh Thủy. Nhập môn xử lý ảnh số. Nhà xuất bản khoa hoc và kỹ thuật, 2006 [2]. Nguyễn Ngọc Hà, Phát triển một số kỹ thuật giấu dữ liệu trong ảnh ứng dụng trong trao đổi thông tin. Viện công nghệ thông tin, 2005. [3]. Nguyễn Xuân Huy và Trần Quốc Dũng, “Giáo trình giấu tin và thuỷ vân ảnh”, Thông tin tư liệu, ĐHKHTN, 2003. [4] NGUYỄN XUÂN HUY, BÙI THUÝ HẰNG, Một số cải tiến của kĩ thuật giấu dữ liệu trong ảnh, Kỷ yếu Hội nghị Khoa học kỷ niệm 25 năm thành lập Viện Công nghệ Thông tin, 2001, 553-559. [5] VŨ BA ĐÌNH, ĐÀO THANH TĨNH, NGUYỄN XUÂN HUY, Kĩ thuật giấu thông tin trong bản đồ số, Tạp Bưu chính Viễn thông, Chuyên san “Các công trình nghiên cứu - triển khai VT và CNTT”, số 8, 11-2002, 85-92. [6] VŨ BA ĐÌNH, NGUYỄN XUÂN HUY, ĐÀO THANH TĨNH, Đánh giá khả năng giấu dữ liệu trong bản đồ số, TC Tin học và Điều khiển học, T.18, S.4 (2002), 347-353. 2. TIẾNG ANH [1]. A. Westfeld and A. Pfitzmann, “Attacks on steganographic systems,” in Proc. Information Hiding Workshop, Springer LNCS 1768, pp. 61–76, 1999. [2]. J. Fridrich, M. Goljan, and R. Du, “Reliable detection of LSB steganography in color and grayscale images,” Proc. ACM Workshop on Multimedia and Security, pp. 27–30, 2001. [3]. N. Provos and Peter Honeyman, “Detecting Steganographic Content on the Internet”, CITI Technical Report 01-11, August 2001, submitted for publication. [4]. A. Westfeld, “Detecting low embedding rates,” in Proc. Information Hiding Workshop, Springer LNCS 2578, pp. 324–339, 2002. [5]. J. Fridrich, M. Goljan, and R. Du, “Steganalysis based on JPEG compatability,” in Multimedia Systems and Applications IV, A. G. Tescher, B. Vasudev, and V. M. Bove, Jr, eds., Proc. SPIE 4518, pp. 275–280, 2002. [6]. Christy A.Stanley: “Pair of Values and the chi-Squared Attack”, Department of Mattematics, Iowa State University, may-2005. [7] Stefan Katzenbeisser and Fabien Petitcolas,“Information Hiding Techniques for Steganography andDigital Watermarking”, ISBN 1-58053-035-4, 2000. 3. CÁC TRANG WEB [1] Các bài viết, nhận xét và thông kê của Hiệp hội bảo vệ bản quyền thế giới [2] Bộ dữ liệu mẫu [3] Hiệp hội bảo vệ bản quyền tác giả, nhà sáng tác, và các nhà xuất bản Nhật [4] Hide4PGP: Hide4PGP [5] EZStego (Stego Online, Stego Shareware) [6] Steghide [7]. [8]. NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Đà Nẵng, ngày ….. tháng …..năm 2010 NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN Đà Nẵng, ngày ….. tháng …..năm 2010

Các file đính kèm theo tài liệu này:

  • docCác phương pháp giấu tin trong ảnh.doc