Code Monkey home page Code Monkey logo

diit's Introduction

Digital Invisible Ink Toolkit (diit)

The Digital Invisible Ink Toolkit is a Java steganography tool that can hide any sort of file inside a digital image (regarding that the message will fit, and the image is 24 bit colour). It will work on Windows, Linux and Mac OS because it is written in Java and thus platform independent.

There are four highly customisable algorithms in the tool, as well as an open-source implementation of RS Analysis (an extremely good steganalysis method). The tool has the additional advantage of being able to simulate hiding - so you can get an accurate map of where the information is hidden.

Pre-requisites

You will need a Java virtual machine installed. This is common software, free for personal use, and if you do not have it already installed you can download a copy from the Java website.

Running pre-compiled version

You can download the precompiled jar file directly from SourceForge or from the GitHub release or also the direct jar link on GitHub, and then double-click it to run the toolkit.

Screenshot of running program

Running from source

After cloning this git repository, you can run the GUI from source from this directory with:

java -Xmx1024m invisibleinktoolkit.Run

The -Xmx1024m tells the Java VM to use 1024MB of RAM - this is important because unfortunately the program is not wonderfully memory efficient and on large modern images it will quickly choke. Change 1024 for whatever is appropriate for your system.

Algorithm / hiding recommendations

For effective hiding, keep embedding rates <= 10%. Use FilterFirst with Sobel filter, and turn on LSB matching. The original research showed FilterFirst was undetectable up until embedding rates of 7%, using the most advanced published steganalysis techniques available at the time (2005).

Ideally use images for hiding that are busy and have a lot of edges - if there are large blocks of colour you risk the image being visibly degraded which may indicate something is hidden it in.

The transformations performed by this tool are fragile; image compression, cropping, and pixel modification destroy the steganography and make the hidden file impossible to retrieve. Image rotation should be okay provided the image is in its original state when attempting to retrieve the hidden data.

How it works

The idea behind the toolkit is that we take a picture, below we take cove.png, and insert into it a message by changing the colours of the pixels slightly. Because the changes made are so small, it's hard for the human eye to see the difference. Because of the way the algorithms hide it, it should be hard for a computer to tell the difference too. Benchmarking is provided in the tool to prove this is the case.

Shown below are examples of each algorithm run using the 4 least significant bits of the colour information, and embedding exactly the same file.

Algorithm Stego image Hiding Map
Untouched Image Untouched Image
BattleSteg (Laplace Filter) BattleSteg (Laplace Filter) Hiding map for BattleSteg (Laplace Filter)
BattleSteg (Sobel Filter) BattleSteg (Sobel Filter) Hiding map for BattleSteg (Sobel Filter)
Hide and Seek Hide and Seek Hiding map for Hide and Seek
BlindHide BlindHide Hiding map for BlindHide
FilterFirst (Laplace Filter) FilterFirst (Laplace Filter) Hiding map for FilterFirst (Laplace Filter)
FilterFirst (Sobel Filter) FilterFirst (Sobel Filter) Hiding map for FilterFirst (Sobel Filter)

Further documentation and changes

Further documentation can be found at the original SourceForge site.

This project is not actively developed, but forks and pull requests are welcome. This code is licensed with the GNU Public License V2.

diit's People

Contributors

drkatnz avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.