You are on page 1of 61

STEGANOGRAPHY USING AES

A PROJECT REPORT

Submitted by

VIKRAM.M

in partial fulfillment for the award of the degree of BACHELOR OF ENGINEERING in COMPUTER SCIENCE AND ENGINEERING

S.R.M ENGINEERING COLLEGE, KATTANKULATHUR

ANNA UNIVERSITY :: CHENNAI 600 025

APRIL 2006

ANNA UNIVERSITY : CHENNAI 600 025

BONAFIDE CERTIFICATE

Certified that this project report .............................................................. ... is the bonafide work of ..... ....... who carried out the project work under my supervision.

SIGNATURE Mr. S.S. SRIDHAR, B.E.,M.S., HEAD OF THE DEPARTMENT

SIGNATURE Mrs. SELVARANI SUPERVISOR LECTURER

COMPUTER SCIENCE AND ENGINEERING SRM Engineering College, Kattankulathur 603 203.

COMPUTER SCIENCE AND ENGINEERING SRM Engineering College, Kattankulathur 603 203.

ACKNOWLEDGEMENT

I take this opportunity with utmost alacrity an enthusiasm to offer out most sincere and humble gratitude to our beloved Chairman Thiru T.R.Pachamuthu for providing me all the resources required for the timely completion of the project.

I express our heartfelt and sincere thanks to professor Dr.Venkataramani, Principal for giving me encouragement whenever needed.

I wish to place on record our profound gratitude to Mr.S.S.Sridhar, Head of the Department of Computer Science and Engineering, for giving me all facilities and the unique opportunity to indulge this project.

My vocabulary is insufficient to express our gratefulness to our project coordinators Mrs.C.Lakshmi and Mrs.D.Malathi for their valuable guidance and support.

Many thanks to Mrs.Selvarani, Lecturer, Department of Computer Science and Engineering for having extended her guidance in solving the problem I faced during the process of the project work.

Abstract

This project falls under the scope of INFORMATION HIDING. The objective of this project is to provide a secret and secured communication between people. This program simply encrypts the text file (that contains the secret message) using the AES

(Advanced Encryption Standards) algorithm and hides the cipher in an image file. So people on seeing the encrypted image also cannot predict that there is something hidden inside it. Thus the project mainly has two phases. The first phase is the Encrypting Phase, which deals with the process of converting the actual secret message into cipher text using the AES algorithm. The second phase is the Embedding Phase, where the cipher text is embedded into the image. This project uses the LSB (Least Significant Bit) technique. Here bits of the cipher text are replaced by the LSBs of the pixel values of the image. As the LSBs are alone changed, normal human eyes cannot predict the difference between the original image and the resulting image. Also the algorithm used in the encryption process is the AES Algorithm. The AES algorithm uses keys of higher sizes than its predecessor, DES (Data Encryption Standards) algorithm. So this will ensure higher security. Thus this project will ensure a more secured communication in unsecured networks. TABLE OF CONTENTS

CHAPTER TITLE NO. ACKNOWLEDGEMENT ABSTRACT LIST OF TABLES LIST OF FIGURES LIST OF ABBREVIATIONS

PAGE NO. iii iv viii ix x

1.

INTRODUCTION 1.1 1.2 1.3 OBJECTIVE EXISTING SYSTEM PROPOSED SYSTEM

1 1 1 1

1.4 1.5 1.6

SCOPE EXTENSION ORGANISATION OF REPORT

2 2 3

2.

BACKGROUND KNOWLEDGE 2.1 STEGANOGRAPHY 2.1.1 2.1.2 2.1.3 Steganography The History Steganography Overview Steganography Today

4 4 4 5 6 7 9 10 11 11 12 13 14 18 19 19 19 20 25

2.1.4 Concepts of Steganography 2.1.5 Other Steganography Techniques 2.1.6 2.1.7 2.1.8 2.1.9 2.2 Difference-Steganography and Cryptography The Possibilities are Endless Additional Terminology What is Steganalysis ?

ENCRYPTION ALGORITHM 2.2.1 2.2.2 DES, the Predecessor Algorithm AES Algorithm

2.3

IMAGE STRUCTURE 2.3.1 2.3.2 PNG Images An Overview Structure

2.4 2.5

TEXT FILE STRUCTURE CONVERSIONS

3.

PROPOSED SYSTEM AND SYSTEM DESCRIPTION 3.1 3.2 PROPOSED SYSTEM FEATURES OF THE SYSTEM 3.2.1 3.2.2 3.2.3 3.2.4 Text Editor Message Recovery Comparison of Original and Steg Images Zooming

24 24 24 25 26 27 27

3.2.5 3.2.6 3.3

Security Previously used System vs Proposed System

28 29 31 31 32 33 34 35 36 37 37 38 39 40 41 42 42 43

SYSTEM DESCRIPTION 3.3.1 Functional Flow of the System 3.3.1.1 3.3.1.2 3.3.1.3 3.3.1.4 3.3.1.5 Image_Load Phase Text_Load Phase Encryption Phase Hide_Cipher Display_Compare Phase

3.4

TECHNIQUES USED 3.4.1 AES Algorithm 3.4.1.1 3.4.1.2 3.4.1.3 SubBytes ShiftRows MixColumns

3.4.1.4 AddRoundKey 3.4.2 LSB Technique 3.4.2.1 Converting the Text into Binary

3.4.2.2 Replacing the bits

4.

IMPLEMENTATION 4.1 SOURCE CODE 4.1.1 Text_Load Module 4.1.2 Image_Load Module

45 45 45 53

5.

SCREEN CAPTURES 5.1 5.2 5.3 IMAGE LOAD SCREEN TEXT LOAD SCREEN COMBINED VIEW SCREEN

55 55 56 57

6.

REQUIREMENT SPEIFICATION 6.1 HARDWARE REQUIREMENTS

58 58

6.2 SOFTWARE REQUIREMENTS

58

7.

CONCLUSION APPENDIX REFERENCES LIST OF TABLES

59 61 64

TABLE NO.

TABLE NAME

PAGE NO.

2.1 3.1

AES vs TRIPLE DES AES PARAMETERS LIST OF FIGURES

18 34

FIGURE NO. 2.1 2.2 2.3 2.4 2.5 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 4.1

FIGURE NAME STEGANOGAPHY TECHNIQUE DES ALGORITHM TEXT FILE STRUCTURE CONVERSION OF CHARACTERS AND OPERATION PREVIOUSLY USED SYSTEM PROPOSED SYSTEM FUNCTIONAL FLOW OF SYSTEM AES PROCESS SUBBYTES AES ALGORITHM SHIFTROWS AES ALGORITHM MIXCOLUMNS AES ALGORITHM ADDROUNDKEY AES ALGORITHM MASKING TECHNIQUE LSB TECHNIQUE STEGANOGRAPHY LSB TECHNIQUE ILLUSTRATION IMAGE LOAD SCREEN

PAGE NO. 8 17 22 23 23 29 30 32 38 39 40 40 41 43 44 44 55

4.2 4.3

TEXT LOAD SCREEN COMBINED VIEW SCREEN

56 57

LIST OF ABBREVIATIONS

AES

Advanced Encryption Standard

LSB

Least Significant Bit

DES

Data Encryption Standard

MAC

Message Authentication Code

RSA

Rivest, Shamir, Adleman

RC4

Ron Rivest Ciper 4

FIPS

Federal Information Processing Standards

NIST

National Institute of Standards and Technology Initial Permutation

IP

PNG

Portable Network Graphics

ASCII

American Standard Code for Information Interchange Electronic Frontier Foundation

EFF

1. INTRODUCTION

1.1 Objective

The main objective of this project is to provide a highly secured communication between people using the Steganography technique and the AES Algorithm (Rijndael Algorithm). This project first encrypts the secret message into cipher text using the AES algorithm. Then the cipher text is embedded into the image using the LSB technique. This will ensure higher security.

1.2 Existing System

Though there exists several software that are used for information hiding, they face a lot of problems i.e., they either do not encrypt the message or use a very weak algorithm. In some other cases the technique used may not be very efficient that the original image and the resulting image will be easily distinguishable by human eyes. For example the previously used encryption algorithm, DES algorithm, used keys of smaller sizes (64 bit key). Algorithms using keys of these sizes are easily cracked nowadays. So it is better if one goes for algorithms using keys of larger size.

1.3 Proposed System

The proposed system uses the concept of Least Significant Bit

(LSB) Algorithm which will overcome the above disadvantages. As the LSB technique changes only the LSB of the pixel values of the image, the embedded image will practically resemble the original image, so that the difference in the image cannot be seen with human eyes. Also to ensure further security, this project uses the AES Algorithm for encryption. The AES Algorithm uses a key of size 128 bits to 256 bits. With a key size of 128 bits there are 10 rounds. This ensures further security. This project uses a key of size 128 bits.

1.4 Scope

This technique can be used for the following purposes,

Corporate and office environments where secure transmission of sensitive information is essential without being eavesdropped. Personal storage of information in an unsuspected but secured medium of images. Embedding copyright artist information within the image. Serial key and the CD key can be transmitted in a secured manner. The use of image (.png) file occupies only a less bandwidth while transmitting it along the unsecured network.

1.5 Extension

This project can be further developed using high security algorithms for encryption or the algorithm used for embedding may be upgraded. If possible instead of hiding the text files in the image, either an audio file or a video file or an image itself may be hidden inside an image.

1.6 Organization of Report

This report is organized into four sections namely Background Knowledge which features the basic concepts and terminologies about Steganography and AES Algorithm. The next section is the Proposed System and System Description which depicts the details about the proposed system and the various ideas used in the proposed system. The third section is the Screen Captures section. The various screen shots of the project are given here. Cost estimation is the next section. In this section the total cost of the project will be tabulated. The section five is Requirement Specification. In this section the various hardware and software requirements are given. The section six is the Future Developments section which features the developments that can be further added

up to the project. The last and the seventh section is the Source Code section where a sample of the source code is provided.

2. BACKGROUND KNOWLEDGE

2.1 Steganography

2.1.1 Steganography The History Steganography is the art and science of writing hidden messages in such a way that no one apart from the intended recipient knows of the existence of the message; this is in contrast to Cryptography, where the existence of the message itself is not disguised, but the meaning is obscured. "Steganography" is a Greek word and means covered or hidden writing. Its origins can be traced back to 440 BC. Steganography has been widely used in historical times, especially before crypto graphical systems were developed. Examples of historical usage include:

Hidden messages in Wax tablets: In ancient Greece, people wrote messages on the wood, then covered it with wax so that it looked like an ordinary, unused, tablet.

Hidden messages on messenger's body: Also in ancient Greece. Herodotus tells the story of a message tattooed on a slave's shaved head, covered by hair regrowth, and exposed by reshaving. The message, if the story is true, carried a warning to Greece about Persian invasion plans.

Hidden messages on paper written in secure inks under other messages or on the blank parts of other messages.

During and after World War II, Espionage agents used microdots to send information back and forth. Since the dots were typically extremely small -- the size of a period produced by a Typewriter (perhaps in a font with 10 or 12 characters per inch) or even smaller -- the stegotext was whatever the dot was hidden within. If a letter or an address, it was some alphabetic characters. If under a postage stamp, it was the presence of the stamp.

The one-time pad is a theoretically unbreakable cipher that produces cipher texts indistinguishable from random texts: only those who have the private key can distinguish these cipher texts from any other perfectly random texts. Thus, any perfectly random data can be used as a covertext for a theoretically unbreakable steganography.

2.1.2. Steganography Overview Steganography is by no means a modern practice. Literally meaning covered writing. It is the practice of hiding messages within other messages in order to conceal the existence of the original message. However, the digital medial formats in use for data exchange and communication today provide abundant hosts for Steganographic communication. Hence the interest in this practice has increased. Coupling this fact with the multitude of the freely available easy to use steganographic tools available on the internet, the ability to exchange secret information without detection is available to anyone who wants to do so. For the security professional this means data we pay to protect could be leaving our control without our knowledge. Conversely, one of the emerging uses of steganographic techniques is Digital Watermarking, which provides an organization with a way to ensure the integrity of data they wish to disseminate embedding copyright or other information in a digital file. Regardless of whether it is used for good or ill, an understanding of current methods of data hiding could be a part of security professionals knowledge base.

2.1.3 Steganography Today The high-tech forms of steganography today involve hiding secret messages in images or sound files on the internet. Special steganography software is needed in

order to insert the message into a compiler file graphics, audio, text, html, or even floppy disks. The software is easily available as a freeware or as a shareware on any download sites. The software scrambles the clandestine information into existing, yet insignificant bits of images or sound files, which are not remarkable enough for human eyes or ears to detect. The message may only consist of a bit of undetectable sound or a few changed pixels in an image. To the casual observer, the image or sound byte looks and looks innocent. Little do they know that there is a hidden message lurking on the webpage? The images can only be unlocked using a Private Key, or code, selected by the recipient. Otherwise, the messages are impossible to see, read or hear.

Some of the recently used steganographic techniques:


Chaffing and Winnowing Invisible ink Null ciphers Concealed messages in tampered executable files, exploiting redundancy in the i386 instruction set

2.1.4 Concept behind Steganography The art and science of hiding information by embedding messages within other, preferably harmless messages is Steganography. Steganography works by replacing bits of useless or unused data in regular computer files (such as graphics, sound, text, html, or even floppy disks) with bits of different, invisible information. This hidden information can be plain text, cipher text or even images itself. Unlike encryption, steganography cannot be detected. Therefore, it may be used when encryption is not permitted. More commonly, steganography is used to supplement encryption. An encrypted file may still hide information using

steganography. So even if the encrypted file is deciphered, the hidden message is not seen. The main advantage of this kind of steganography used in this project is that, even though if the hacker is able to retrieve the message hidden in the image, he would not get the actual message because he would be able to retrieve only the cipher text. It is highly impossible for the attacker to get the actual message from the cipher text because, the AES Algorithm more resistant to attacks that its predecessor, the DES Algorithm.

Fig 2.1 Steganography Technique The block diagram in Fig 2.1 will give a clear knowledge about what steganography is. As we can see the plain text is first converted into the cipher text using the AES Algorithm. Then the converted cipher text is embedded into the image using the LSB Algorithm. So even if the hacker retrieves the text from the steg-image, he would be able to get only the cipher. So it makes the hacker impossible to get the secret message, thus ensuring secured communication over even insecure networks.

2.1.5 Other Steganography techniques Similar other techniques used for information hiding are listed below, Chaffing and Winnowing - Chaffing and winnowing is a cryptographic technique to achieve confidentiality without using encryption when sending data over an insecure channel; it was conceived by Ron Rivest. It can be viewed as a form of steganography. The sender (Alice) sends several messages to the receiver (Bob); each message is unencrypted but authenticated with a message authentication code (MAC) whose secret key Alice shares with Bob. Only one of the messages is authentic, the other ones are bogus (called "chaff"). An eavesdropper will be unable to tell which messages are bogus and which are real (i.e. to "separate the grain from the chaff") since he cannot determine which messages are authentic. Bob uses the MAC to find the authentic messages and drops the "chaff" messages. This process is called "winnowing". Invisible Inks - Invisible ink is a substance used for writing, which is either invisible on application, or soon thereafter, and which later on can be made visible by some means. The use of invisible ink is a form of Steganography, and has been used in espionage. Invisible ink is applied to a writing surface with a fountain pen, toothpick or even a finger dipped in the liquid. Once dry, the paper should appear blank or the ink is not an invisible ink. The ink is later developed (made visible) by different methods according to the type of invisible ink used. This can be by heat, by viewing under ultraviolet light, or by applying a chemical appropriate for the ink used. Null Cipher - A null cipher is an ancient form of encryption where the plaintext is mixed with a large amount of non-cipher material. It would today be regarded as a simple form of steganography. Null ciphers can also be used to hide cipher text, as part of a more complex system. In classical cryptography a null is intended to confuse the cryptanalyst.

Typically, a null will be a character which decrypts to obvious nonsense at the end of an otherwise intelligible phrase. In a null cipher, most of the characters may be nulls.

2.1.6 Difference Steganography and Cryptography Cryptography and steganography are two ways to hide messages and although they complement each other, they are not the same. Cryptography - Cryptography changes the contents of a file or message so that it is unreadable by everyone except the intended recipient. The intended recipient has a key that allows the encrypted file to be invoked and viewed as planned by the sender. Encrypted messages are not hidden, and their comings and goings can be detected and monitored. Once the means of encryption have been revealed, it is still up to the code breaker to uncover the key to decrypt the message. Steganography We could think of steganography as a form of robust encryption. It attempts to hide the message in such a way that the observer may not even realize that the message is being exchanged. Unlike encryption, steganography cannot be detected. Often, steganography is used to supplement encryption. Through its combination of encryption and invisibility of the encrypted data it keeps the message completely protected form data espionage.

2.1.7 The Possibilities are endless Many corporations and governments have banned or restricted encryption. This has only caused steganography and other information hiding techniques to flourish on the internet. Steganography software is relatively easy to obtain and use, and there are millions of new audio and image files posted on the internet every day. So many different types of files can hold all sorts of hidden information, and tracking or finding these files can be an almost impossible task. We may have viewed a page on the web containing

hidden messages, and never know it. Discovering and unlocking steganography is really akin to finding the proverbial needle in the haystack that is the World Wide Web.

2.1.8 Additional terminology In general, terminology analogous to (and consistent with) more conventional radio and communications technology is used; however, a brief description of some terms which show up in software specifically, and are easily confused, is appropriate. These are most relevant to digital steganographic systems. The payload is the data it is desirable to transport (and, therefore, to hide). The carrier is the signal, stream, or data file into which the payload is hidden; contrast "channel" (typically used to refer to the type of input, such as "a PNG image"). The resulting signal, stream, or data file which has the payload encoded into it is sometimes referred to as the package. The percentage of bytes, samples, or other signal elements which are modified to encode the payload is referred to as the encoding density and is typically expressed as a floating-point number between 0 and 1. In a set of files, those files considered likely to contain a payload are called suspects. If the suspect was identified through some type of statistical analysis, it may be referred to as a candidate.

2.1.9 What is Steganalysis ? The detection of steganographically encoded packages is called

Steganalysis. The simplest method to detect modified files, however, is to compare them to the originals. To detect information being moved through the graphics on a website, for example, an analyst can maintain known-clean copies of these materials and compare them against the current contents of the site. The differences (assuming the carrier is the same) will compose the payload.

In general, using an extremely high compression rate makes steganography difficult, but not impossible; while compression errors provide a good place to hide data, high compression reduces the amount of data available to hide the payload in, raising the encoding density and facilitating easier detection (in the extreme case, even by casual observation). To make steganalysis easier, several softwares are readily available on the internet as freeware or as a shareware. These softwares are capable of determining the irregularity of RGB patterns in the image, thus alerting the user that the particular image is a steg-image. A good method to detect the availability of secret messages in an image is the Cellular Automata. Using Cellular Automata one can define certain rules which will define the pixel values of image. So if there is a violation of any one of the rules, then the receiver (may be anonymous receiver or an interpreter in the case) may be sure that there is a hidden message in the image. Cellular Automata has made steganalysis easier that the only thing the user must do is define the rules according to the color patterns in the image. For this purpose i.e., determining the color pattern, there are several softwares that will automatically determine the patterns without any human work needed.

2.2 Encryption Algorithm Several cryptographic algorithms have been clubbed with Steganography to make information hiding more efficient. But most of them failed because of the either the weakness of the encryption algorithm used or the steganographic technique used. For example the steganography technique can be used with algorithms such as the RSA (Rivest, Shamir, Adleman), DES (Data Encryption Standards), RC4 (Ron Rivest), etc. Several other user defined algorithms have also been tried. But they were not proved to be effective as desired. The RC4 has been overcome by its future version, the RC5 with some addition security features. The RSA and the DES have proved to be efficient in many instances. But it is not wise to stay back with the same algorithms. We must keep

in mind that as the algorithms are made complex, the hackers will also become more efficient that they will crack these algorithms within a short period of time. So this project uses a more secured algorithm, AES (Advanced Encryption Standards) algorithm.

2.2.1 DES, the Predecessor Algorithm The Data Encryption Standard (DES) specifies a FIPS approved cryptographic algorithm as required by FIPS 140-1. This publication provides a complete description of a mathematical algorithm for encrypting (enciphering) and decrypting (deciphering) binary coded information. Encrypting data converts it to an unintelligible form called cipher. Decrypting cipher converts the data back to its original form called plaintext. The algorithm described in this standard specifies both enciphering and deciphering operations which are based on a binary number called a key.

A key consists of 64 binary digits ("O"s or "1"s) of which 56 bits are randomly generated and used directly by the algorithm. The other 8 bits, which are not used by the algorithm, are used for error detection. The 8 error detecting bits are set to make the parity of each 8-bit byte of the key odd, i.e., there is an odd number of "1"s in each 8-bit byte. Authorized users of encrypted computer data must have the key that was used to encipher the data in order to decrypt it. The encryption algorithm specified in this standard is commonly known among those using the standard. The unique key chosen for use in a particular application makes the results of encrypting data using the algorithm unique. Selection of a different key causes the cipher that is produced for any given set of inputs to be different. The cryptographic security of the data depends on the security provided for the key used to encipher and decipher the data.

Data can be recovered from cipher only by using exactly the same key used to encipher it. Unauthorized recipients of the cipher who know the algorithm but do not have the correct key cannot derive the original data algorithmically. However, anyone who does have the key and the algorithm can easily decipher the cipher and obtain the

original data. A standard algorithm based on a secure key thus provides a basis for exchanging encrypted computer data by issuing the key used to encipher it to those authorized to have the data.

Data that is considered sensitive by the responsible authority, data that has a high value, or data that represents a high value should be cryptographically protected if it is vulnerable to unauthorized disclosure or undetected modification during transmission or while in storage. A risk analysis should be performed under the direction of a responsible authority to determine potential threats. The costs of providing cryptographic protection using this standard as well as alternative method of providing this protection and their respective costs should be projected. A responsible authority then should make a decision, based on these analyses, whether or not to use cryptographic protection and this standard. The algorithm is designed to encipher and decipher blocks of data consisting of 64 bits under control of a 64-bit key. Deciphering must be accomplished by using the same key as for enciphering, but with the schedule of addressing the key bits altered so that the deciphering process is the reverse of the enciphering process. A block to be enciphered is subjected to an initial permutation IP, then to a complex key-dependent computation and finally to a permutation which is the inverse of the initial permutation IP. The key-dependent computation can be simply defined in terms of a function f, called the cipher function, and a function KS, called the key schedule. The DES process is shown in Fig 2.2.

Fig 2.2 DES Algorithm 2.2.2 AES vs Triple DES The difference between AES and Triple DES is clearly shown in Table 2.1

Table 2.1 AES vs Triple DES 2.2.2 AES Algorithm The Advanced Encryption Standard (AES Algorithm) is a computer security standard that became effective on May 26, 2002 by NIST to replace DES. The cryptography scheme is a symmetric block cipher that encrypts and decrypts 128-bit blocks of data. Lengths of 128, 192, and 256 bits are standard key lengths used by AES Algorithm. The algorithm consists of four stages that make up a round which is iterated 10 times for a 128-bit length key, 12 times for a 192-bit key, and 14 times for a 256-bit key. The first stage "SubBytes" transformation is a non-linear byte substitution for each byte of the block. The second stage "ShiftRows" transformation cyclically shifts (permutes) the bytes within the block. The third stage "MixColumns" transformation groups 4-bytes together forming 4-term polynomials and multiplies the polynomials with a fixed polynomial mod (x^4+1). The fourth stage "AddRoundKey" transformation adds the round key with the block of data. In most ciphers, the iterated transform (or round) usually has a Feistel Structure. Typically in this structure, some of the bits of the intermediate state are transposed unchanged to another position (permutation). AES

Algorithm does not have a Feistel structure but is composed of three distinct invertible transforms based on the Wide Trial Strategy design method.

2.3 Image Structure This project mainly involves images of the type .PNG (Portable Network Graphics). So this section will mainly concern about the file structure of .png images.

2.3.1 PNG images An overview A PNG file or DataStream is composed of a collection of explicitly typed "chunks". Chunks whose contents are defined by the specification could actually contain anything, including malicious code. But there is no known risk that such malicious code could be executed on the recipient's computer as a result of decoding the PNG image. The possible security risks associated with private chunk types and future chunk types cannot be specified at this time. There is no additional security risk associated with unknown or unimplemented chunk types, because such chunks will be ignored, or at most be copied into another PNG file. 2.3.2 Structure Any png file contains two sections namely, File Signature The first eight bytes of a PNG file always contain the following values: 137 80 78 71 13 10 26 10 This signature indicates that the remainder of the file contains a single PNG image, consisting of a series of chunks beginning with an IHDR chunk and ending with an IEND chunk.

Chunk layout Each chunk consists of four parts: Length Chunk Type Chunk Data CRC 2.4 Text File Structure A text file is simply stated as a stream of characters. They contain human readable text. The characters can represent numerals, alphabets or any special characters and symbols. People can edit these text files using a text editor. As far as Ada is concerned, there is no structure to text file. Though people consider text files to be structured based on their convenience like characters, lines or pages. For the convenience of the user, there are certain keywords that indicate specific positions of the text file. Some of them are EOL End Of Line EOP End Of Page EOF End Of File Any text file contains stream of characters. Each character in the file is of size 1 byte, i.e. 8 bits. So each character contains a corresponding ASCII (American Standard Code for Information Interchange). This ASCII code corresponds to its actual 8 bit binary value.

The structure of the text file is depicted in Fig 2.3. The last position of the file is called the EOF (end of file). Likewise the last bit position of a page is called the EOP (end of page) of that particular page. Similarly the last bit position of a line is called the EOL (end of line) of that particular line.

Fig 2.3 Text File Structure 2.5 Conversions As explained earlier, each character is first converted into its corresponding ASCII equivalent. The ASCII value is nothing but a number. Then, this ASCII value is

converted into its corresponding binary equivalent. As an example the conversion of the text Hi all is shown in Fig 2.4.

Fig 2.4 Conversion of Characters

Also there is an operation called the Bitwise AND operation. The operation of bitwise AND operation is depicted in Fig 2.5

Fig 2.5 AND Operation

The above figure depicts the use of Bitwise AND operation. 3. PROPOSED SYSTEM AND SYSTEM DESCRIPTION

3.1 Proposed System This program uses the LSB Steganography technique along with the AES or Rijndael Algorithm. The program first gets an image as input. This image is preferably a PNG image. The program works well with JPEG, BMP and TIFF formats also. Then the user gives a text file (.TXT) as input to the system. This is the actual cipher of the secret message that is to be sent over the network. The text can also be typed as it is in the text editor, that it is provided in the system itself. Note that the actual text message is already converted into the cipher using the AES cipher algorithm. Only the encrypted cipher is entered as input to the Steganography program. Then the encrypted image is compared with the original image to verify any visible differences 3.2 Features of the System The system offers several useful features which will enable the user to analyze the resulting image. Also there are certain features which will help the user to easily enter the input. For both the inputs (image and text), the system provides adequate convenience. The most important feature that this system provides is the security. For any project or system that deals with some sort of communication, the main concern would be security. Convenience takes the next place. So this project provides security by using the AES. It is said that the AES could be cracked only after 149 trillion years. Though hackers nowadays are efficient enough to crack algorithms within a short period of time, the Rijndael will not be cracked until a much better algorithm than the AES is developed. Though the steganography technique used, LSB, is an old technique, the chances for getting the text decrypted without the key is far difficult. The various features of the project are discussed in this chapter. The Text Editor helps in editing the text. The Message Recovery feature is nothing but getting the cipher from a steg image. The

Comparison tool helps in comparing the steg image and the original image. The Zoom facility helps in zooming the images and finding any color differences between the images.

3.2.1 Text Editor There is a text editor for the convenience of the user in case there are changes to be made in the enter cipher text. The text editor has three options. Load Data Edit Data Save Data The text editor also has a text area. The first option is the Load Data option. Using this option the text file that is to be entered i.e. cipher text, is loaded into the text area of the text editor. This option will be useful in cases where the input is a .txt file. If the input is to be enter as it is, then the user may simply click inside the text area and type the message on his own. The second option is the Edit Data option. Using this option the text file that has been loaded using the Load Data option is edited. Editing refers to all basic text editing features. Some of the basic text editing features that are possible with the text editor are type, delete, backspace, space, etc. The next option available is the Save Data option. Using this option, the edited text in the text area can be saved as a .txt file. This feature gives another security parameter. The change in the cipher text during the course of hiding will go unnoticed by the attacker. The save option can only be used to save the text as a .txt file. And note that only .txt files are accepted as inputs and brought into the text area.

3.2.2 Message Recovery

One more desired feature in the system is that, if an encrypted image alone is given as input without the text message then the text hidden the image will be retrieved and will be produced as output in the text area of the text editor. This feature will let the users check whether any image is a steg image or not. If the image is a steg image then the text that is being hidden in the image will be automatically be displayed in the text area. If the image that is checked is not a steg image then the text area will remain empty. Thus the software can also be used as a steganalysis software. Like any other steganalysis softwares this program does not determine the patterns but just gets the text from the steg image. Note that only the cipher that is hidden in the image can be retrieved. The actual text message cannot be obtained from the image directly. For this purpose on has to use the AES algorithm to decrypt the cipher to the original secret message. This is to ensure security. Since there is no security check for opening the system, this feature has been enabled. So though the interpreter is able to get the cipher text, he will not be able to get the plain text from the cipher text. It needs the key to decipher it.

3.2.3 Comparison of Original and Steg images The project allows the steganalyst or whoever be the user to compare the two images i.e. steg image an original image. This feature is made further easier by providing separate scrollable image areas for both the images. The scroll bars are used when the size of the image is large. Both the scroll bars are made to move together simultaneously. This is to make the user compare the various regions of the images without having to scroll the bars on both the images. Though these features are available, if the project works well, the analyst will not be able to see the differences with his eyes. He will need a steganalysis software for this purpose. If the program works well then the analyst must not be able to find any difference in the images. Even the slightest change in color will be easily noticed. But the program does not produce any output with visible differences. To make the steganalysis process further simpler we can use the Zoom option. This option is discussed in detail in the next section.

3.2.4 Zooming Another desirable feature is the Zoom option. As the name of the feature indicates this tools provides zooming facilities to the steganalyst. While using the zoom tool the main drawback is the zooming both the images and locating the same regions in both the images is difficult. So the analyst may find it difficult to locate the same regions in both the steg image and the original image. To overcome this difficulty, as one image is zoomed (either the steg image or the original image), both the images are zoomed simultaneously. This can be simply stated as a single tool for both the images. The zoom tool is provided as a slider in the system. So all the analyst has to do is, just scroll the slider until the image is zoomed to a desired dimension. There are situations where the analyst will be able to see color differences between the images on zooming the images to a higher degree. But if there is a difference then the algorithm may be declared inefficient.

3.2.5 Security Above all, security is the main feature. As stated in earlier chapters, the AES algorithm is considered as one of the secured algorithms. It could be cracked only after 149 trillion years (but practically the AES algorithm will also be cracked in a few years). But so far the AES has no been cracked. It uses a 256 bit key whereas its predecessor, the DES algorithm, uses a 128 bit key. Moreover, the DES has been cracked by the EFF (Electronic Frontier Foundation) in just 22 hours and 15 minutes. So the fact that the DES and the Triple DES can be cracked has been made public. So there is no point in using these algorithms knowing that these algorithms could be cracked easily. 3.2.6 Previously used System vs Proposed System

Previously used steganographic techniques did not show up much successful. They were mostly failure. One such technique is shown in Fig 3.1. As seen in the figure the portions of the image that is blurred clearly tells the attacker that there is some hidden message in the image. So this kind of technique will never be preferred. In these kinds of techniques instead of the LSBs some other bits in the pixel may be changed. So this will naturally show a visible difference.

Fig 3.1 Previously used System But the proposed system produces an output that would resemble the original image as it is. So the steg image would go unnoticed when this kind of technique is used. Also though if the user comes to know that the image is a steg image, it is highly impossible to get the original secret message because the steg image will only contain the cipher text. The result of a system which uses the proposed will look like the one shown in Fig 3.2. As shown in the figure there would be no color difference and may be transmitted through the networks without attacks.

Fig 3.2 Proposed System As shown in the figure the original image and the steg image resemble each other the difference in the pixel values are not visible to the human eyes. But the difference in the patterns may be easily determined using steganalysis softwares that are available.

3.3 System Description The proposed system works in the following way, First, it gets the image as input.

Then, get the cipher text of the secret message that has to be hidden in the image as another input. Choose the LSB algorithm from the menu. View and compare the steg image and the original image. The entire system can be explained using the functional flow of the system.

3.3.1 Functional Flow of the System In this section the actual functional flow of the system are described. The first phase is the Image_Load phase. This phase functions as the input phase, i.e. gets the image that is to be sent as input. The image is preferably a PNG image. The second phase is the Text_Load phase which gets the text file that has been already encrypted as input. The text has already been ciphered using the AES algorithm in a separate thread. So the Encryption phase will be executed in a separate thread. So it uses the AES algorithm to encrypt the text message. The thread which involves the encryption joins the main thread at the Text_Load phase. The next phase is the Hide_Cipher phase, in which the cipher text that has been got as the input in the Text_Load phase will be hidden in the image that has been got as input in the Image_Load phase. The next phase is the Display_Compare phase. In this phase the two images i.e. the steg image and the original image. This additional feature will help the steganalyst to compare the two images. This feature is made further easier by the zoom tool, so that the analyst is able to zoom the images to the required degree. The functional flow of the system is shown in Fig 3.3.

Fig 3.3 Functional Flow of System 3.3.1.1 Image_Load Phase

In this phase the image that is actually sent to the receiver is obtained as input. It is preferable that the input image is a .png image. As soon as the image select option is selected an open file menu will pop up. From this menu the image is selected. As soon as the image is selected, the selected image will automatically be brought to the image area of the system. So if the image that is displayed in the image panel is not the desired image, then the file select menu is again selected and the intended image is selected. Separate tabs are provided to differentiate the loaded image and the encrypted image. So the chances for confusing the encrypted image with the loaded image are very less.

3.3.1.2 Text_Load Phase

The text_load phase deals with getting the cipher text as input. Note that the text file must contain the encrypted form of the original text file. There are two forms of giving input to the system. They are,

Input as a .txt file Input in the text editor itself

In the first case, the input is in the form of a .txt file. This file must contain the encrypted cipher of the secret message that is to be sent along with the image.

In the second case, the cipher is typed as it is in the text editor. But this option is not often used because the sender will not know what the cipher will look like and generally, the cipher text will not only consist of alphabets, but also some symbols and special characters. In this case there are two additional features. One is the Edit data option which can be used to edit the data that is being opened. The other feature is the save data feature. Using this feature the edited text is saved. Also, while saving the text, the text will be saved as a .txt file.

3.3.1.3 Encryption Phase

In this phase, the secret message is converted into the cipher text using the Rijndael or AES algorithm. The AES algorithm uses a key of size of 128 or 192 or 256 bits and will go through 10, 12 and 14 rounds respectively. The various parameters of the AES algorithm as designed are given in Table 3.2.

Table 3.1 AES Parameters

As mentioned above the number of rounds in the algorithm differs with the change in the size of the key. So if the key size is 128 bits then the number of rounds is 10. If the key size is 192 bits then the number of rounds will be 12. Likewise if the key size is 256 bits then the number of rounds will be 14.

3.3.1.4 Hide_Cipher Phase

In this phase the cipher text that is given as input in the text editor is actually hidden in the cipher. For hiding the cipher inside the image, the LSB steganographic algorithm is used. In this technique, each bit of the cipher text (that has been converted into its binary equivalent) is exchanged with the last bit of each pixel value. Similarly for each pixel the last bit is replaced with the consecutive bits of the cipher text i.e. its binary equivalent. So there are only four possibilities of swapping to take place. They are

A 0 replaced by a 0 A 0 replaced by a 1

A 1 replaced by a 0 A 1 replaced by a 1

So in cases two and three, only the last bit is going to be changed. So the difference in the resulting pixel value is not going to show much difference. Hence the resulting image will resemble the original image. This technique of replacing the bits is called the LSB technique in steganography. The LSB technique may be coupled with the masking technique to provide more security. Masking is nothing but before replacing the bits in the pixel, the binary equivalent of the character is binary ANDed with 254.

3.3.1.5 Display_Compare Phase

In this phase, the two images (the steg image and the original image) are compared with the help of image panels. This will help the steg analysts to compare the two images with ease. To enhance further convenience there is a zoom tool. Using this tool the two images can be viewed simultaneously. While using the zoom tool the main drawback is the zooming both the images and locating the same regions in both the images is difficult. So the analyst may find it difficult to locate the same regions in both the steg image and the original image. To overcome this difficulty, as one image is zoomed (either the steg image or the original image), both the images are zoomed simultaneously. This can be simply stated as a single tool for both the images. The zoom tool is provided as a slider in the system. So all the analyst has to do is, just scroll the slider until the image is zoomed to a desired dimension. There are situations where the analyst will be able to see color differences between the images on zooming the images to a higher degree.

3.4 Techniques Implemented

There are two major techniques implemented in this project. The first technique is the encryption algorithm that is being used for converting the plain text (secret message) into the cipher text. The second technique is the steganographic algorithm that is being used for embedding the text into the image. So we have two algorithms, namely,

AES Algorithm (for encryption) LSB Technique (for hiding the text)

3.4.1 AES Algorithm

The Advanced Encryption Standard (AES Algorithm) is a computer security standard that became effective on May 26, 2002 by NIST to replace DES. The cryptography scheme is a symmetric block cipher that encrypts and decrypts 128-bit blocks of data. Lengths of 128, 192, and 256 bits are standard key lengths used by AES Algorithm. The algorithm consists of four stages that make up a round which is iterated 10 times for a 128-bit length key, 12 times for a 192-bit key, and 14 times for a 256-bit key. The various stages are

SubBytes Shift Rows MixColumns AddRoundKey

Fig 3.4 AES Process

The first stage SubBytes transformation is a non-linear byte substitution for each byte of the block. The second stage ShiftRows transformation cyclically shifts (permutes) the bytes within the block. The third stage MixColumns transformation groups 4-bytes together forming 4-term polynomials and multiplies the polynomials with a fixed polynomial mod (x^4+1). The fourth stage AddRoundKey transformation adds the round key with the block of data. The entire AES algorithm is well understood using Fig 3.4

3.4.1.1 SubBytes In the SubBytes step, each byte in the array is updated using an 8-bit S-box. This operation provides the non-linearity in the cipher. The S-box used is derived from the inverse function over GF(28), known to have good non-linearity properties. To avoid attacks based on simple algebraic properties, the S-box is constructed by combining the inverse function with an invertible affine transformation. The S-box is also chosen to avoid any fixed points (and so is a derangement), and also any opposite fixed points. The SubBytes process is shown in Fig 3.5.

Fig 3.5 SubBytes AES Algorithm

3.4.1.2 ShiftRows The ShiftRows step operates on the rows of the state; it cyclically shifts the bytes in each row by a certain offset. For AES, the first row is left unchanged. Each byte of the second row is shifted one to the left. Similarly, the third and fourth rows are shifted by offsets of two and three respectively. In this way, each column of the output state of the ShiftRows step is composed of bytes from each column of the input state. (Rijndael variants with a larger block size have slightly different offsets). The ShiftRows process is shown in Fig 3.6.

Fig 3.6 ShiftRows AES Algorithm 3.4.1.3 MixColumns

Fig 3.7 MixColumns AES Algorithm In the MixColumns step, the four bytes of each column of the state are combined using an invertible linear transformation. The MixColumns function takes four bytes as input and outputs four bytes, where each input byte affects all four output bytes. Together with ShiftRows, MixColumns provides diffusion in the cipher. Each column is treated as a polynomial over GF(28) and is then multiplied modulo x4 + 1 with a fixed polynomial c(x) = 3x3 + x2 + x + 2. The MixColumns step can also be viewed as a matrix multiply in Rijndael's finite field. The MixColumns process is shown in Fig 3.7.

3.4.1.4 AddRoundKey

Fig 3.8 AddRoundKey AES Algorithm In the AddRoundKey step, the subkey is combined with the state. For each round, a subkey is derived from the main key using the key schedule; each subkey is the same size as the state. The subkey is added by combining each byte of the state with the corresponding byte of the subkey using bitwise XOR.

3.4.2 LSB Technique In the LSB technique involves the following steps,

Convert the text into its binary equivalent,

Get the pixel value of each pixel one by one, Replace each bit of the cipher text with the last bit of each pixel in the image.

3.4.2.1 Converting the Text into Binary The process of converting a text file into its binary equivalent was explained earlier in Chapter 2.5 (Conversions). So every contents of the text file are converted into its corresponding binary equivalent using the mentioned technique. Also the text file may be masked before replacing it in the pixels of the image. The Masking Technique is shown in Fig 3.9. In this technique the each byte of the text files binary equivalent is binary ANDed with the binary equivalent of 254. Then the bits are exchanged with the image pixels. This will provide additional security. The masking technique is shown below.

Fig 3.9 Masking Technique 3.4.2.2 Replacing the bits After masking has been done, each bit of the cipher text is replaced in the LSB position of the pixels in the image. Here LSB refers to the Least Significant Bit i.e.

the last bit of the pixel value. Since only the LSB is changed the difference between the original image and the encrypted image will be very small, that the difference cannot be detected by naked human eyes. Only softwares that are particularly determine the patterns in the images can detect the irregularities in the patterns. The Cellular Automata finds a wide application in Image Processing. Using cellular automata the design patterns in regular images like a shell, or a stone or any object that has a regular pattern of colors, can be determined. For this purpose rules are framed according to these patterns. So applying Cellular Automata in Steganography, one can detect the availability of secret messages in the images if there is an irregularity in the pattern of the images. The general steganographic LSB technique is illustrated in Fig 3.10.

Fig 3.10 LSB Technique Steganography

The LSB technique can also be briefly explained with the help of bits. In Fig 3.11 the LSB technique is explained with the help of binary values. As shown in the figure the last bits of the pixels are replaced with the bits of the cipher text. So the final image will resemble the original image.

Fig 3.11 LSB Technique Illustration 4. IMPLEMENTATION

4.1 Source Code

The following are some sample codes from the project.

4.1.1 Text_Load Module

package stegno.GUI;

import java.awt.BorderLayout; import java.awt.Container; import java.awt.event.*; import java.awt.event.ActionEvent; import java.io.*; import javax.swing.*; import javax.swing.text.JTextComponent; import stegno.StegData;

// Referenced classes of package stegno.GUI:

//

SimpleTextEditor

public class DataPanel extends JPanel {

BorderLayout borderLayout1; JToolBar jToolBarDataView; JButton jButtonLoadData; JButton jButtonEditData; StegData myData; JFrame parent; JButton jButtonSaveData; JScrollPane jScrollPaneData; JTextArea jTextAreaDataView;

public void setText(String s) { jTextAreaDataView.setText(s); jScrollPaneData.getHorizontalScrollBar().setValue(0); jScrollPaneData.getVerticalScrollBar().setValue(0); }

private final void jbInit() throws Exception { setLayout(borderLayout1); jToolBarDataView.setAlignmentY(0.5F); jButtonLoadData.setText("Load Data"); jButtonLoadData.addActionListener(new _cls1()); jButtonEditData.setText("Edit Data"); jButtonEditData.addActionListener(new _cls2());

jButtonSaveData.setText("Save Data"); jButtonSaveData.addActionListener(new _cls3()); jTextAreaDataView.setEditable(false); add(jToolBarDataView, "North"); add(jScrollPaneData, "Center"); jScrollPaneData.getViewport().add(jTextAreaDataView, null); jToolBarDataView.add(jButtonLoadData, null); jToolBarDataView.add(jButtonEditData, null); jToolBarDataView.add(jButtonSaveData, null); }

public void loadData(File file) { String s = new String(); BufferedReader bufferedreader; try { bufferedreader = new BufferedReader(new FileReader(file)); } catch(FileNotFoundException filenotfoundexception) { JOptionPane.showMessageDialog(parent, "Error reading file", "Error", 0); return; } boolean flag = false; try { while(!flag) { String s1 = bufferedreader.readLine(); if(s1 == null)

{ flag = true; } else { s = s + s1 + "\n"; } } } catch(Exception exception) { flag = true; } myData.setData(s); setText(s); }

void jButtonLoadData_actionPerformed(ActionEvent actionevent) { JFileChooser jfilechooser = new JFileChooser(); int i = jfilechooser.showOpenDialog(this); if(i == 0) { loadData(jfilechooser.getSelectedFile()); } }

void jButtonEditData_actionPerformed(ActionEvent actionevent) { setText(SimpleTextEditor.modifyText(parent, jTextAreaDataView.getText())); myData.setData(jTextAreaDataView.getText()); }

void jButtonSaveData_actionPerformed(ActionEvent actionevent) { JFileChooser jfilechooser = new JFileChooser(); int i = jfilechooser.showSaveDialog(this); if(i == 0) { File file = jfilechooser.getSelectedFile(); String s = myData.getData(); try { BufferedWriter bufferedwriter = new BufferedWriter(new FileWriter(file)); bufferedwriter.write(s); bufferedwriter.close(); } catch(Exception exception) { JOptionPane.showMessageDialog(parent, "Error", "Error writing file", 0); return; } } }

public DataPanel(JFrame jframe, StegData stegdata) { borderLayout1 = new BorderLayout(); jToolBarDataView = new JToolBar(); jButtonLoadData = new JButton(); jButtonEditData = new JButton(); jButtonSaveData = new JButton(); jScrollPaneData = new JScrollPane();

jTextAreaDataView = new JTextArea(); myData = stegdata; parent = jframe; try { jbInit(); } catch(Exception exception) { exception.printStackTrace(); } setText(stegdata.getData()); }

private class _cls1 implements ActionListener {

public final void actionPerformed(ActionEvent actionevent) { jButtonLoadData_actionPerformed(actionevent); }

private final void constructor$0(DataPanel datapanel) { }

_cls1() { constructor$0(DataPanel.this); }

private class _cls2 implements ActionListener {

public final void actionPerformed(ActionEvent actionevent) { jButtonEditData_actionPerformed(actionevent); }

private final void constructor$0(DataPanel datapanel) { }

_cls2() { constructor$0(DataPanel.this); } }

private class _cls3 implements ActionListener {

public final void actionPerformed(ActionEvent actionevent) { jButtonSaveData_actionPerformed(actionevent); }

private final void constructor$0(DataPanel datapanel) { }

_cls3() { constructor$0(DataPanel.this); } }

4.1.2 Image_Load Module

package stegno.GUI.ImageChooser;

import java.io.File;

public class ImageChooserUtils {

public static final String jpeg = "jpeg"; public static final String jpg = "jpg"; public static final String gif = "gif"; public static final String png = "png";

public static String getExtension(File file) { String s = null; String s1 = file.getName();

int i = s1.lastIndexOf('.'); if(i > 0 && i < s1.length() - 1) { s = s1.substring(i + 1).toLowerCase(); } return s; }

public ImageChooserUtils() { } }

5. SCREEN CAPTURES

Here are some screen shots from the system.

5.1 Image Load Screen

Fig 4.1 Image Load Screen The Fig 4.1 screen describes how the image is given as input to the system

5.2 Text Load Screen

Fig 4.2 Text Load Screen

The screen in Fig 4.2 shows how the cipher text file is given as input to the system.

5.3 Combined View Screen

Fig 4.3 Combined View Screen

The screen in Fig 4.3 shows the combined view of the original image and the Steg image.

6. REQUIREMENT SPECIFICATION

6.1 Hardware Requirements

The minimum hardware requirements for the project are,

Pentium III 1.4 GHz Processor Minimum of 128 MB RAM Minimum of 20 GB HDD VGA Display with 640 x 480 screen in High/True color Display mode 1.44 MB FDD 52X CD ROM Drive 15 Color Monitor Keyboard Mouse

6.2 Software Requirements

The minimum software requirements for the project are,

Microsoft Windows XP Java ( j2sdk 1.4.0 ) Adobe Photoshop 6.0

7. CONCLUSION

Steganography has its place in security. It is not intended to replace cryptography but to supplement it. Hiding message with steganography methods reduces the chance of a message being detected. However, if that message is also encrypted, if discovered, it must be cracked (yet another layer of protection). There are an infinite number of steganography applications. This project explores a tiny fraction of that art of steganography. It goes well beyond simply embedding text in an image. Steganography does not simply pertain to digital images but also to other medial (files such as voice, other text and binaries; other media such as communication channels, the list can go on and on). Consider the following example:

A person has a cassette tape of Pink Floyds The Wall. The plans of a Top Secret Project (e.g. device, aircraft, covert operation) are embedded, using some steganographic method, on that tape. Since the alterations of the expected contents cannot be detected, (especially by human ears and trade probably not easily so by digital means), these plan can cross borders and trade hands undetected. How do you detect which recording has the message? This is a trivial (and incomplete) example, but it goes far beyond simple image encoding in an image with homogeneous regions. Part of the secrecy is selecting the proper mechanism. Consider encoding using an image. In and of itself, steganography is not a good solution to secrecy, but either is simple substitution and short block permutation for encryption. But if these methods are combined, you have a much stronger encryption routines.

For example (again over simplified): if a message is encrypted using the Rijndael or AES algorithm. And the cipher text is embedded in an [image, voice, audio, video, etc] it is more secure. If an encrypted message is intercepted, the interceptor knows that the text is in an encrypted form. With steganography, the interceptor may not know that the object contains a secret message.

APPENDIX

Glossary

Steganography - Steganography is the art and science of writing hidden messages in such a way that no one apart from the intended recipient knows of the existence of the message.

Cryptography - Cryptography changes the contents of a file or message so that it is unreadable by everyone except the intended recipient. The intended recipient has a key that allows the encrypted file to be invoked and viewed as planned by the sender. Encrypted messages are not hidden, and their comings and goings can be detected and monitored.

Steganalysis - The detection of steganographically encoded packages is called Steganalysis. The simplest method to detect modified files, however, is to compare them to the originals. To detect information being moved through the graphics on a website, for example, an analyst can maintain known-clean copies of these materials and compare them against the current contents of the site.

Cellular Automata - The base of a cellular automata construction is a two-dimensional space divided into "cells", a sort of grid. Each of these cells could have two states : ON or OFF. Starting from a given pattern, the following generation is determined according to neighbourhood rules. For example, if a cell was in contact with two "ON" cells, it would switch on too ; otherwise it would switch off. Ulam, who used one of the first computers, quickly noticed that this mechanism permitted to generate complex and graceful figures and that these figures could, in some cases, self-reproduce. Extremely simple rules permitted to build very complex patterns.

Triple DES The Triple DES is the advanced version of the normal DES (Data Encryption Standards) algorithm. Here as the name indicates, there are multiple encryptions using multiple keys. So the algorithm gets much stronger and will be highly resistant to brutal attacks.

Rijndael Cipher - Rijndael cipher is the other name for the AES (Advanced Encryption Standards) algorithm. The AES algorithm takes this name because the algorithm was originally designed by Rijmen and Daemen. So it takes its name from its designers.

Watermarking - A watermark is a recognizable image or pattern in paper that appears lighter when viewed by transmitted light (or darker when viewed by reflected light, atop a dark background). A watermark is made by impressing a water-coated metal stamp or dandy roll onto the paper during manufacturing. Watermarks were first introduced in Bologna, Italy in 1282; they have been used by papermakers to identify their product, and also on postage stamps, currency, and other government documents to discourage counterfeiting.

NIST - Founded in 1901, National Institute of Standards and Technology (NIST) is a non-regulatory federal agency within the U.S. Commerce Department's Technology Administration. NIST's mission is to develop and promote measurement, standards, and technology to enhance productivity, facilitate trade, and improve the quality of life. NIST has an operating budget of about $858 million and operates in two locations: Gaithersburg, Md., (headquarters234-hectare/578-acre campus) and Boulder, Colo., (84-hectare/208-acre campus). NIST employs about 3,000 scientists, engineers, technicians, and support and administrative personnel. About 1,800 NIST associates complement the staff. In addition, NIST partners with 1,400 manufacturing specialists and staff at affiliated centers around the country.

REFERENCES

1.

Katzenbeisser, S., ed. Information Hiding Techniques for Steganography and Digital Watermarking. Boston: Artech House, 2000.

2.

William Stallings, Cryptography and Network Security, Third Edition, Pearson Prentice Hall, 2003.

3.

Daemen, J., and Rijmen, V., Rijndael : The Advanced Encryption Standard. Dr. Dobbs Journal, March 2001.

4.

Herbert Schildt, Java 2 : The Complete Reference, Fifth Edition, Tata Mc.Graw Hill, 2002.

WEBSITES

1. 2. 3. 4. 5.

www.nist.gov www.vocal.com www.sun.com www.wikipedia.com www.rijndael.com

You might also like