2. Project Description4
3. Analysis and Requirement Specification5
4. Software Design Specification
i. Execution Sequence19
ii. Data Flow Diagram22
5. Software and Hardware Required23
6. Code Snippets24
7. Screen Shots28
2. PROJECT DESCRIPTION
What Is Steganography?
Steganography applications conceal information in other, seemingly innocent media. Steganographic results may masquerade as other file for data types, be concealed within various media, or even hidden in network traffic or disk space. We are only limited by our imagination in the many ways information and data can be exploited to conceal additional information.
For many years Information Hiding has captured the imagination of researchers. Digital watermarking and steganography techniques are used to address digital rights management, protect information, and conceal secrets. Information hiding techniques provide an interesting challenge for digital forensic investigations. Information can easily traverse through firewalls undetected. Research into steganalysis techniques aids in the discovery of such hidden information as well as leads research toward improved methods for hiding information.
Related research themes include: anonymous communications, anonymous online transactions, covert channels in computer systems, covert/subliminal communications, detection of hidden information (steganalysis), digital forensics, information hiding aspects of privacy, steganography, subliminal channels in cryptographic protocols, watermarking for protection of intellectual property, and other applications
Steganography is a complex subject, please note that although it involves hiding messages, it is not cryptography. The definitions are as follows: Cryptography: “The discipline which embodies principles, means and methods for the transformation of data in order to hide its information content, prevent its undetected modification, or prevent its unauthorized use” Steganography: “A method of hiding a secret message inside of other data.” Essentially the difference is that, while both hide a message, steganography is meant to make the message invisible, while cryptography changes the message’s form, by means of replacement and/or algorithm.
3. ANALYSIS AND REQUIREMENT SPECIFICATION
This code is written in Java, and the following topics will need to be understood, before properly understanding how this method works: Bytes: individually as integers and as arrays
Bit Operations: Logical AND (&), OR(|) and how they work
Images: BufferedImage specifically
ImageIO: how image files are opened and saved
Graphics2D: accessing user space image properties
Raster: specifically WritableRaster allows access to the buffer DataBufferByte: Buffer used with BufferedImage
These are the major topics needed to understand Steganography, but there are others used and assumed to be understood, as this topic is not meant for those inexperienced with the Java language. Bytes:
Bytes are the elementary data source of most applications, and many programmers will [i]never[/i] use them in any source code, but that is beside the point. A byte is made of bits, 1s and 0s, 8 of them to be exact. And the 8 0s and 1s have a decimal value, it is simply a case of transforming the binary (base 2) into decimal (base 10). Value by position: 128 64 32 16 8 4 2 1 (and all positions with a 1 are added together) Examples:
00000000 = 0
00000010 = 2
00000111 = 7
00001011 = 11
And so on…
A byte can be transformed from an int in java by simple casting: [il]Byte b = (byte)7;[/il]
Most classes in java have a method for returning the byte of an object, either as a section of the object or the entire object....