Gandhi Viraj

Embed Size (px)

Citation preview

  • 7/31/2019 Gandhi Viraj

    1/51

    STEGANOGRAPHY USING CONE INSERTION ALGORITHM AND

    MOBILE BASED STEALTH STEGANOGRAPHY

    _______________

    A Thesis

    Presented to the

    Faculty of

    San Diego State University

    _______________

    In Partial Fulfillment

    Of the Requirements for the Degree

    Master of Science

    in

    Computer Science

    _______________

    by

    Viraj Sharadbhai Gandhi

    Fall 2010

  • 7/31/2019 Gandhi Viraj

    2/51

  • 7/31/2019 Gandhi Viraj

    3/51

    iii

    Copyright 2010

    by

    Viraj Sharadbhai Gandhi

    All Rights Reserved

  • 7/31/2019 Gandhi Viraj

    4/51

    iv

    ABSTRACT OF THE THESIS

    Steganography Using Cone Insertion Algorithm amd MobileBased Stealth Steganography

    by

    Viraj Sharadbhai Gandhi

    Master of Science in Computer Science

    San Diego State University, 2010

    To achieve secure communications, the cousins cryptography and steganography

    are used. The former scrambles secret messages in such way that only the intended

    recipient is capable of unscrambling them. The latter seeks to hide a secret message inside

    an innocuous message, audio, image, or video file (called the cover medium), in such a way

    that eavesdroppers will not suspect the very existence of the secret message. Combined,

    cryptography and steganography provide a secure form of communication: The former will

    encode the secret message in such a way that even if it intercepted, it is hard decrypt it; the

    latter will hide the encoded secret message. Images are the most popular cover medium

    used in steganography. Many different image file formats exist, most of them for specific

    applications. There are different steganographic algorithms for different image formats.

    In this work, using the idea of splitting the cover image into several bit planes, I

    propose to hide secret messages in the intersection points of those planes with certain

    geometric objects. The resulting image containing the message is called stego-image. The

    latter should be such that a third party intercepting it will not have any indication that a

    secret message is present in the image. The geometric objects I have used are the cone and

    the hexagonal prism, and our technique has been implemented in both Matlab and Google

    Android.

  • 7/31/2019 Gandhi Viraj

    5/51

    v

    TABLE OF CONTENTS

    PAGE

    ABSTRACT ............................................................................................................................. iv

    LIST OF FIGURES ............................................................................................................... viii

    ACKNOWLEDGEMENTS .......................................................................................................x

    CHAPTER

    1 INTRODUCTION .........................................................................................................11.1 History of Steganography ........................................................................................1

    1.2 Detailed Look on Steganography .............................................................................2

    1.2.1 Encoding Secret Messages in Images ..........................................................3

    1.2.2 Encoding Secret Messages in Text ..............................................................3

    1.2.3 Encoding Secret Messages in Audio............................................................3

    1.3 Contribution .............................................................................................................4

    1.4 Book Overview ........................................................................................................4

    2 REQUIREMENTS .........................................................................................................52.1 Platform Requirements ............................................................................................5

    2.2 Functional Requirements .........................................................................................5

    2.3 Development Tools ..................................................................................................6

    3 TECHNOLOGY ............................................................................................................93.1 Matlab. .....................................................................................................................9

    3.2 Google Android .......................................................................................................9

    3.2.1 Android Architecture .................................................................................10

  • 7/31/2019 Gandhi Viraj

    6/51

    vi

    3.2.2 Android Runtime .......................................................................................13

    3.2.3 Application Behavior .................................................................................14

    3.2.4 Android Limitation ....................................................................................14

    4 STEGANOGRAPHY USING VARIOUS GEOMETRIC OBJECTS ........................154.1 Image Definition ....................................................................................................15

    4.2 Bit-Plane Slicing ....................................................................................................16

    4.3 Cone-Insertion Algorithm ......................................................................................17

    4.4 Hexagon-Insertion Algorithm ................................................................................19

    5

    ENCODING OF STEGANOGRAPHY MESSAGES ................................................21

    5.1 Flow of Encoding Mechanism for Matlab .............................................................21

    5.1.1 CONE Insertion Algorithm ........................................................................22

    5.1.2 Code for Inserting Eclipse .........................................................................22

    5.2 Flow of Encoding Mechanism for Android ...........................................................24

    5.2.1 AES Algorithm ..........................................................................................26

    5.2.2 Bytes ..........................................................................................................26

    5.2.3 Bit Conversion ...........................................................................................27

    5.3 Encoding Text ........................................................................................................27

    5.3.1 GetInstance Method ...................................................................................27

    5.3.2 Hexagon Insertion Algorithm ....................................................................28

    5.4 Email ..................................................................................................................30

    6 DECODING OF STEGANOGRAPHY MESSAGES ................................................336.1 Decoding Text in Android Module ........................................................................33

    6.2 Decoding Text in Matlab Module ..........................................................................35

  • 7/31/2019 Gandhi Viraj

    7/51

    vii

    7 CONCLUSION ............................................................................................................387.1 Limitations .............................................................................................................38

    7.2 Future Enhancements .............................................................................................39

    REFERENCES. ...................................................................................................................40

  • 7/31/2019 Gandhi Viraj

    8/51

    viii

    LIST OF FIGURES

    PAGE

    Figure 2.1. Davlik debug monitor. .............................................................................................7

    Figure 2.2. Log cat view. ...........................................................................................................8

    Figure 2.3. Android SDK and AVD manager ............................................................................8

    Figure 3.1. Android architecture ..............................................................................................10

    Figure 3.2. Activity ..................................................................................................................11

    Figure 3.3. Life cycle of activity ..............................................................................................12

    Figure 3.4. Conversion from .java to .dex file .........................................................................13

    Figure 4.1. Gray-color palette ..................................................................................................16

    Figure 4.2. Bit-plane representation of 8-bit digital images ....................................................17

    Figure 4.3. 3D representation of a cone ...................................................................................18

    Figure 4.4. Top view of cone on 8-bit planes ..........................................................................19

    Figure 4.5. Graphical representation of hexagon .....................................................................20

    Figure 5.1. Flow of encoding image steganographic process in matlab ..................................22

    Figure 5.2. Bit-planes of original image ..................................................................................23

    Figure 5.3. Original image and steno image with hidden image .............................................23

    Figure 5.4. Flow of encoding image steganographic process in android .................................25

    Figure 5.5. Displaying message of text file and images from gallery .....................................30

    Figure 5.6. Sending stego image via email ..............................................................................32

    Figure 5.7. UI of emailing stego image ...................................................................................32

    Figure 6.1. Flow of decoding image steganographic process in android .................................34

  • 7/31/2019 Gandhi Viraj

    9/51

    ix

    Figure 6.2. Message after decoding image file ........................................................................36

  • 7/31/2019 Gandhi Viraj

    10/51

    x

    ACKNOWLEDGEMENTS

    I owe great many thanks to a great many people who helped and supported me during

    writing of this book. I express my thanks to Professor Carmelo Interlando, Department of

    Mathematics and Statistics, San Diego State University for guiding me throughout my thesis

    term. His support and encouragement were instrumental in achieving the optimum results in

    this thesis. I also thank Prof. Alan Riggins, and Prof. Joseph Lewis for being a part of my

    thesis committee and for their kind co-operation. I offer my regards to all of those who

    supported me in any respect during the completion of the thesis and I also extend my

    heartfelt thanks to my family and well wishers.

  • 7/31/2019 Gandhi Viraj

    11/51

    1

    chapter 1

    introduction

    Data transmissions are vital and became a necessity nowadays. Whether you share

    your private messages with your close friends, or business secrets with your partners, you

    must protect your condential information from hackers, your boss, or your competitors. But

    we live in an insecure world where unwanted people can access your personal information

    (like e-mails or personal documents) and often use it against you. The word steganography

    is derived from the Greek words stegos meaning cover and grafa meaning writing

    dening it as covered writing [1].

    We all know the purpose of steganography: to hide data into other data. In contrast

    to cryptography, where the enemy is allowed to intercept and do modication in messages

    without being able to violate certain security guaranteed by a cryptosystem, the goal of

    steganography is to hide messages inside other messages in a way that does not allow

    any enemy to even detect the presence of the intended message. In a digital world,

    steganography and cryptography are both intended to protect information from unwanted

    parties. Both steganography and cryptography are excellent means to accomplish this but

    neither technology alone is perfect and both can be broken. It is for this reason that most

    experts would suggest to add multiple layers of security by using both. When steganography

    and cryptography are combined, it becomes much more secure way of communication. A

    message sent secretly in an encrypted form is much more secure than a plain text message

    sent by secret means or a clearly sent encrypted message; there are some cases in which

    steganography can take the place of cryptography [2].

    1.1 Historyof steganograpHy

    The rst noted use of this technology dates back to Greek times when messages were

    carved into walls or tablets, which were then covered in wax to hide the original carving.

  • 7/31/2019 Gandhi Viraj

    12/51

    2

    This process would effectively hide the underlying message, thus protecting the data from

    the casual observer. Even during World War II invisible ink was used to write information on

    pieces of paper so that just being blank pieces of paper appeared to normal person.

    Another method used in Greece was to select messengers and shave their head.

    They would then write a message on their head. Once the message had been written the

    hair was allowed to grow back. After the hair grew back the messenger was sent to deliver

    the message, The recipient would shave off the messengers hair to see the secret. Now that

    some 2000+ years have passed, people have turned to digital technologies to help them hide

    sensitive data. Radio and TV messages, from World War II to today, can be used to hide

    coded or hidden messages. Some government sources suspect that Osama bin Ladens pre-

    recorded videos that are re-played on TV stations around the world contain hidden messages

    [3].

    1.2 DetaileD lookon steganograpHy

    To start, lets look at what a theoretically perfect secret communication

    Steganography would consist of. To illustrate, we will use three characters named Alice,

    Bob and Eve. Alice wants to send a secret message (M) to Bob using a random (R) harmless

    message to create a cover (C) which can be sent to Bob without raising suspicion. Alice

    then changes the cover message (C) to a stego-object (S) by embedding the secret message

    (M) into the cover message (C) by using a stego-key (K). Alice should then be able to send

    the stego object (S) to Bob without being detected by Eve. Bob will then be able to read

    the secret message (M) because he knows the stego-key (K) used to embed it into the cover

    message (C). As Fabien A.P. Petitcolas points out, In a perfect system, a normal cover

    should not be distinguishable from a stego-object, neither by a human nor by a computer

    looking for statistical patterns. In practice, however, this is not always the case. In order

    to embed secret data into a cover message, the cover must contain a sufcient amount of

    redundant data or noise. There are numerous methods used to hide information inside of

    image, audio and video les. A few of them are explained briey incoming subsection [4].

  • 7/31/2019 Gandhi Viraj

    13/51

    3

    1.2.1 e S Msss ims

    Steganography can be used in a large amount of data formats in the digital world of

    today. The most popular data formats used are .gif, .jpeg, .mp3, .txt are .bmp, .doc and .wav.

    Almost any plain text, cipher text, image and any other media that can be encoded into a

    bit stream can be hidden in a digital image. The following formula (Equation 1.1) provides

    description of the pieces of the steganographic process:

    cover medium + hidden data + stego_key = stego_medium

    In this context, the cover medium is the le in which we will hide the hidden data,

    which may also be encrypted using thestego_key. The resultant le is thestego_medium

    which is typically an image/audio/video le [3].

    1.2.2 e S Msss tx

    Encoding secret messages in text can be a very challenging task. This is because text

    les have a very small amount of redundant data to replace with a secret message. Another

    drawback is the ease of which text based Steganography can be altered by an unwanted

    parties by just changing the text itself or reformatting the text to some other form (from .txt

    to .pdf, etc.) Line-shift encoding involves actually shifting each line of text vertically up or

    down by few centimeters. Word-shift encoding works in much the same way that line-shift

    encoding works, only we use the horizontal spaces between words to equate a value for the

    hidden message. This method of encoding is less visible than line-shift encoding but requires

    that the text format support variable spacing [3].

    1.2.3 e S Msss aEncoding secret messages in audio is the most challenging technique to use when

    dealing with Steganography. Spread Spectrum is method used to hide information inside of

    an audio le. This method works by adding random noises to the signal the information is

    hidden inside a carrier and spread across the frequency spectrum. Low-bit encoding embeds

    (1.1)

  • 7/31/2019 Gandhi Viraj

    14/51

    4

    secret data into the least signicant bit (LSB) of the audio le. This method is easy to

    incorporate but is very susceptible to data loss due to channel noise and resampling [3].

    1.3 Contribution

    The main purpose of my work is to show how steganography is used to hide the

    occurrence of communication. I have come with new concept of using geometric object

    intersection point to hide message in image. The Android module that I have developed can

    be used to store personal password, information securely on individual phones. This Android

    application can be used in business/military to exchange private data using android cell

    phones.

    1.4 bookoverview

    As we move forward, Chapter 2 will cover the functional requirements like memory-

    card, images in gallery should be present for android application and platform requirement

    like matlab, android SDK integrated with eclipse IDE for proper working of application.

    Chapter 3 will contain information about the technologies used in both modules and

    reason to choose this technology in developing this application. Chapter 4 tells more about

    steganography using various geometric objects like cone and hexagon and more about

    various image formats and bitplanes. Chapters 5 and 6 explain the encoding and decoding

    mechanisms in both modules in detail, and Chapter 7 concludes with future enhancements

    and limitations.

  • 7/31/2019 Gandhi Viraj

    15/51

    5

    chapter 2

    requireMentS

    The primary aim behind developing this tool is to understand how steganography

    can be achieved using various geometric object with cover media being an image le. Upon

    completion, this tool will help the students from mathematics as well as computer science

    in learning more about geometric objects use in steganography. This software can also be

    integrated into different application such as email client, http server etc. for creating images

    with secret messages embedded. The requirements gathered have been further classied into

    platform requirements and functional requirements.

    2.1 platform requirements

    The main objective in choosing the software development kit was that it should

    be platform independent. So that the nal product will have the capability to run on any

    environment irrespective of the operating system either hardware or software.

    The software should run as a stand-alone application/mobile application rather than a

    web based software. Hence Java SDK with Google android instead of Java Enterprise Edition

    has been chosen to be the appropriate language for writing the code. One of the module

    was implement in Matlab. Matlab is useful in image processing when we require to extract

    information from image.

    2.2 funCtional requirements

    The software should be able to read any image le as a cover media so that secret

    message can be embedded into it. The intersection of geometric object with an image

    should not induce additional complexity to the existing bit stream. The core principle of

    steganography should be achieved. That is, message as well as its existence should be

  • 7/31/2019 Gandhi Viraj

    16/51

  • 7/31/2019 Gandhi Viraj

    17/51

    7

    Dalvik Debug Monitor Service (ddms): Dalvik debug monitor service act as a middle

    layer and it connect eclipse IDE with the user application. Every application running on

    android emulator is running in as a separate process (See Figure 2.1).

    The DDMS perspective can be chosen from the upper right or if not already opened

    from the menu Window -> Open Perspective -> DDMS.

    Log Cat (Import Package -android.util.Log) is basically the output window of all

    messages from the Emulator. For example, if you add a System.out.println () to your source

    code, it will appear here (see Figure 2.2).

    Android Debug Bridge (ADB): By unpacking SDK, you can get ADB in tools folder.

    It allows you to control and interface with your Android device.

    F 2.1. dvlk b m.

  • 7/31/2019 Gandhi Viraj

    18/51

    8

    Android SD Card: In Google android emulator sdcard is known as a storage space

    for les, images, music les. When user download any le from browser or email, when user

    receive an image or music le in MMS , the default location where he can save all these les

    is inside emulators memory. But when ever user runs emulator this sdcard is disabled. If you

    want to load MP3 les on a real Android phone, you will probably insert an SD card into the

    phone. The emulator can emulate this. So, if user wants to use storage space provided by the

    emulator, he needs to enable sdcard when making AVD for emulator.

    To create an sdcard go to WindowsAndroid SDK and AVD Manager (see

    Figure 2.3).

    F 2.2. L vw.

    F 2.3. a SdK aVd m.

  • 7/31/2019 Gandhi Viraj

    19/51

  • 7/31/2019 Gandhi Viraj

    20/51

    10

    signed/unsigned APKs to distribute your application. Developing in Eclipse with ADT is the

    fastest way to get started [5, 6].

    Android applications written in Java, compiled Java code that is packaged into

    an Android package known as an .apk le. Bundling application data in this way allows

    applications to be easily distributed for installation on mobile devices. Indeed, the .apk le

    is the le that users are required to download and all the code in an .apk is essentially one

    application.

    3.2.1 a a

    Below is a brief explanation of components of android architecture [7] (see Figure 3.1).

    3.2.1.1 appliCations

    It makes the top most layer of android architecture. Built in applications like sms,

    mms, contacts, browser are part of this layer. Also all the user application-code lies in this

    F 3.1. a . S: Zksk,a a. Zksk, 2010, ://bl.zsk.m/2010/11/11/- ssnvmb 2010.

  • 7/31/2019 Gandhi Viraj

    21/51

    11

    section. These user applications, data and resource les make an android package. One of

    the main features of Android is that the basic elements of applications can be shared. If

    permissions are granted for these elements, it is possible to use already developed features

    of other applications. For example, on application might make use of a great scrolling list of

    images that you want to use for your application. If that scroller is made available to others

    you can utilize that scroller rather than developing your own. Interestingly, your application

    doesnt use the code from the other application or even link to it. Instead, that piece of code

    is started in the other application whenever the need should arise.

    This means that Android has been designed to allow application processes to be

    started when any part of it is needed. In other words, while most systems and applications

    have a single entry point, or main function, Android applications rely on central components

    that are instantiated and run when they are needed. There are 4 major types of Android

    components: Activities, Services, Broadcast receivers, and Content providers. Applications

    are comprised of components. Components interact using Intentmessages. Recipient

    components assert their desire to receive Intent messages by dening Intent lters [8] (see

    Figure 3.2).

    There are four types of components used to construct applications.

    Firstly, activities in the system are managed in an activity stack .When a new activity

    is launched it becomes on the top of the stack. Any previous activity will be below it and

    wont come to the top until the new one exists. Android runs each activity in a separate

    process each of which hosts a separate virtual machine. As shown in Figure 3.3, the activity

    can be in one of four states [9]:

    Activity Activity

    Intent

    F 3.2. av.

  • 7/31/2019 Gandhi Viraj

    22/51

    12

    Active: the activity started, is running and is in the foreground.

    Paused: the activity is running and visible but another activity is running on the top.A paused activity is maintains state and member information but can be killed by thesystem in low memory situations.

    Stopped: similar to paused but invisible.

    Dead: either the activity is not started or it was in pause or stop state and wasterminated by the system to free some memory or by asking the user to do so.

    Second, service components provide for background processing when an applications

    activity leaves focus and another GUI application comes in the foreground.

    Third, broadcast receiver components provide a general mechanism for asynchronous

    events.

    Fourth, content provider is for sharing of data between Applications [10].

    3.2.1.2 appliCations framework

    Main component of application framework is activity manager, resource manager,

    package manager, notication manager. Activity manager manages the entire life cycle of

    application and processes. Resource manager handles resources like binary les, layout-xml

    les. Notication manager handles any notication when certain event occurs. For example

    F 3.3. Lf l f v. S: L. d S. c, hw Bl a al, S b S. ComputerWorld, as 30, 2010. ://www.mwl.m/s/l//9181925/hw__bl__a_l_s_b_s?xmnm=a%20dvlm& , ss nvmb 2010.

  • 7/31/2019 Gandhi Viraj

    23/51

    13

    user gets SMS, alarm notication, low battery. All this event can be notify to the user either

    by ashing screen or by vibrating or by certain ringtone.

    3.2.1.3 libraries

    This library provides basic common tasks which are used frequently in user

    application. This library includes functions to handle date/time manipulation, functions

    for string and number conversion, message passing, interprocess communication, database

    handling, graphics classes, and media libraries. Android runtime consist of core libraries and

    dalvik virtual machine.

    3.2.1.4 linux kernel

    This is the bottom layer of android architecture. It is used for memory management,

    process management. You will never have access to this layer. This provides better

    performance, better scalability, improved threading support, networking features.

    3.2.2 a rm

    Every Android application runs in its own process, with its own instance of the Dalvik

    virtual machine. Dalvik has been written so that a device can run multiple VMs efciently.

    The Dalvik VM executes les in the Dalvik Executable (.dex) format. It was designed

    specically for Android running in limited environment, where the limited battery, CPU,

    memory and data storage are the main issues. Android gives an integrated tool dx, which

    converts generated byte code from .jar to .dex le, after this byte code becomes much more

    efcient to run on the small processors (see Figure 3.4).

    .java .class .jar .dex

    Figure 3.4. Conversion from .java to .dex le.

  • 7/31/2019 Gandhi Viraj

    24/51

    14

    3.2.3 al Bv

    Every application in Android runs as a separate process with a unique UID. The

    UID of an application in Android protects its data. Programs cannot typically read or write

    each others data, and sharing between applications must be done explicitly. Developers

    can generate self-signed certicates to update their own applications without creat.ing

    complicated interfaces and permissions to run an application on the Android phone.

    3.2.4 a Lm

    The current security policy of Android works on a static level only during installation

    to identify whether the application is permitted all the requested permissions from the user.

    Thus we can say that Android applications built with the set of permissions that protect the

    system from malicious applications [8].

  • 7/31/2019 Gandhi Viraj

    25/51

    15

    chapter 4

    Steganography uSing VariouS

    geoMetric oBjectS

    The goal of steganography is to hide the message into some other le in such a way

    that an intruder is not capable to detect the actual data of exchange between the sender and

    receiver. RGB (Red - Green - Blue) is the most famous color format used to store images in

    computer world. Computers generally display RGB using 24-bit color. In the 24-bit RGB

    color model there are 256 variations for each of the additive colors of red, green and blue.

    Therefore there are 16,777,216 possible colors (256 reds x 256 greens x 256 blues) in the

    24-bit RGB color model. If you were to change a few of these color numbers the resulting

    picture would probably look a lot like the original image in fact, most people probably

    couldnt tell that you had changed the image at all. Of course, the resulting image will still

    look mostly like the original one.

    4.1image Definition

    In a computer, an image is an array of numbers that represent light intensities at

    various points (pixels) in the image. A common image size is 640 by 480 and 256 colors (or

    8 bits per pixel). Such an image could contain about 300 kilobits of data. Most images on the

    Internet consists of a rectangular map of the images pixels where each pixel is located and

    its color. These pixels are displayed horizontally row by row. Each bit represents two colors

    because it has a value of 0 or 1. The more bits per pixel, the more colors can be displayed

    Monochrome and Gray scale images use 8 bits for each pixel and are able to display 256

    different colors or shades of grey. Gray-scale images are very good because the shades

    gradually change from byte to byte. Many argue that gray-scale images render the best

    results for steganography. Figure 4.1 is a palette containing 256 shades of gray [11].

  • 7/31/2019 Gandhi Viraj

    26/51

    16

    Digital color images are typically stored in 24-bit les and it uses the RGB color

    model, also known as true color. Let us say that we have a 24-bit image 1024 x 768. This

    may produce a le over 2 megabytes in size (1024x768x24/8 = 2,359,296 bytes). 24-bit

    images use 3 bytes per pixel. If information is stored in the least signicant bit (LSB) of

    each byte, 3 bits can be a stored in each pixel. The stego image will lookidenticalto the

    human eye, even if viewing the picture side by side with the original. Unfortunately, 24-bit

    images are quite large. They would draw would draw attention when being transmitted across

    a network. At that time compression would be benecial but le compression may interfere

    with the storage of information.

    Lossless compression is preferred when there is a requirement that the originalinformation remain intact. The original message can be reconstructed exactly. Thistype of compression is mainly for GIF and BMP images.

    Lossy compression-does not maintain the integrity of the original image while savingspace. This method is is mainly for JPG images [11].

    4.2 bit-plane sliCing

    Image enhancement is the process of making images more useful for example of

    removing noise from images which makes images more visually appealing. Digital image

    consists of pixel which can be represented by bits depending on the image type. Dividing an

    F 4.1. g-l l. S:e. hll, Computer Image Processingand Recognition, nw yk c:am pss, 1979.

  • 7/31/2019 Gandhi Viraj

    27/51

    17

    image into bit plane is known as bit plane slicing. For example we have a gray scale image

    where each pixel is of 8 bits. Dividing this image into 8 bit planes means plane 0 contains all

    the least signicant bits, plane 1 contain all the second least signicant bits, plane 7 contain

    all the most signicant bits. This is a very important method in Image Processing. Plane

    7 contains the majority of visually signicant data. Other planes contribute to more subtle

    details in an image. Incrementing a bit plane by 1 gives the nal result half of a value of a

    previous bit-plane. If the difference between the bits value between two bit planes is more

    than there is more distortion in the image. In lossy media compression that uses bit-planes it

    gives more freedom to encode less signicant bit-planes and it is more critical to preserve the

    more signicant ones [1]. Adding up all the bit planes builds original image (Figure 4.2).

    4.3 Cone-insertion algoritHm

    A cone is pyramid with circular cross section. A solid shape with round base which

    narrows to a point. The conics were rst dened as the intersection of a right circular cone of

    varying vertex angle; a plane perpendicular to an element of the cone. An element of a cone

    is any line that makes up the cone [12] (see Figure 4.3).

    In at least d positions, where d is the Hamming distance between the two codewords

    and addition of any these codewords, e.g., c0

    and c1,

    fetch a result say c2

    which also is a

    F 4.2. B-l s f 8-b l ms.

  • 7/31/2019 Gandhi Viraj

    28/51

    18

    codeword belonging to the same set C. In mathematical terms, Hamming distance is the

    number of co-ordinates I which c0

    and c1

    disagree.

    Depending the angle is less than, equal to, or greater than 90 degrees, we get ellipse,

    parabola, or hyperbola respectively. Conics can be dened as follows. As shown in

    Equation 4.1, given a line d and a point F not on d, conics is the locus of points P such that:

    distance[P,F]/distance[P,d] = e, where e is a given constant

    F is called the focus of the conic, d the directrix, and e the eccentricity. If 0 < e < 1,

    the conics is an ellipse [13] (see Figure 4.4).

    Assume that we are inserting the cone through all the 8 planes of the image,

    Message is stored at the intersection of the cone and the image planes.1.

    To increase the complexity cone is inclined, so the surface of intersection between2.cone and the image planes is ellipse.

    F 4.3. 3d s f . S:

    a. M, S. rm, a. Sms, Blkhls. gl gs asss,jbs uvs, 2010. ://www.fl.-bm./s/fll02/210101/ss/Blkhls/Blk%20ls%20%20Swzsl%20m.m, ssnvmb 2010.

    (4.1)

  • 7/31/2019 Gandhi Viraj

    29/51

    19

    Message is stored along the planes to make it difcult to detect.3.

    Also pixels are shifted along each row of the image plane.4.

    4.4 Hexagon-insertion algoritHm

    A regular polygon is a polygon whose sides are all the same length, having all angles

    same. The sum of the angles of a polygon with n sides, where n is 3 or more, is 180 (n - 2)

    degrees. In geometry, a hexagon is a one among polygon with six edges and six vertices. A

    regular hexagon has all sides of the same length, and all internal angles are 120. The longest

    diagonals of a regular hexagon, connecting diametrically opposite vertices, are twice the

    length of one side. The top view of hexagon looks like Figure 4.5 [14]. Message is stored at

    the intersection of the hexagon and the image planes [15].

    F 4.4. t vw f 8-b ls.

  • 7/31/2019 Gandhi Viraj

    30/51

    20

    F 4.5. gl s f x.S: tx, ps f pls.tx, 2010. ://www.x.m/s-ls-x/1017,ss nvm 2010.

  • 7/31/2019 Gandhi Viraj

    31/51

  • 7/31/2019 Gandhi Viraj

    32/51

    22

    Figure 5.1 is ow chart of MATLAB module how stego image is formed.

    5.1.1 cone is alm

    In Matlab at the sender end, I have used cone as geometric object to hide message

    into image. At the sender side user has already one image which he will use as cover

    image. Original message is stored inside a text le. This plain text is feed as an input to the

    steganography algorithm along with the cover image. Geometric object cone is used in

    algorithm. Image is divided into bit planes. And then the intersection points of the cone and

    the image is found to hide the plain text (see Figures 5.2 and 5.3).

    5.1.2 c f is els

    Below is the code used for inserting eclipse on images in matlab.

    % at each intersection point of cone and image the binary form oftext will be inserted

    Converting into Gray Scale Image

    Reading Text File

    Dividing Image into Bit Planes

    Cone Insertion Algorithm for Hiding message

    Stego File with

    Hidden Message

    F 5.1. Flw f m sss mlb.

  • 7/31/2019 Gandhi Viraj

    33/51

    23

    Loops=2;k=1;for i=1:4

    [x,y]=Ellipse (128+((i-1)*128/16), 128, 128-((i-1)*128/8),100-((i-1)*100/8));

    x=double(uint8(x+1))y=double(uint8(y+1))

    [a,b]=Ellipse (128+(((4+i)-1)*128/16), 128, 128-(((4+i)-1)*128/8),100-(((4+i)-1)*100/8));

    a=double(uint8(a+1));b=double(uint8(b+1));

    for j=1:length(x)if k >= length(val)break;

    elseh(x(j),y(j))=val(k);

    k=k+1;h(a(j),b(j))=val(k);

    k=k+1;

    F 5.2. B-ls f l m.

    F 5.3. ol m s m w m.

  • 7/31/2019 Gandhi Viraj

    34/51

    24

    h(x(j),((256*4)/(2*Loops))+y(j))=val(k);k=k+1;

    h(a(j),((256*4)/(2*Loops))+b(j))=val(k);k=k+1;

    h(x(j),2*((256*4)/(2*Loops))+y(j))=val(k);

    k=k+1;h(a(j),2*((256*4)/(2*Loops))+b(j))=val(k);k=k+1;

    h(x(j),3*((256*4)/(2*Loops))+y(j))=val(k);k=k+1;

    h(a(j),3*((256*4)/(2*Loops))+b(j))=val(k);k=k+1;

    end

    endend

    gure,imshow(h),title(h);;

    for i=1:256for j=1:256*4

    if mod((i-1)*shift+j,256*4) == 0;he(i,j)=h(i,256*4);

    elsehe(i,j)=h(i,mod((i-1)*shift+j,256*4));

    endend

    endgure,imshow(he),title(he);

    for i=1:4;for j=1:256;

    for k=1:256;bitplane1{i}(j,k)=he(j,256*(i-1)+k);

    endend

    endfor i=5:8

    bitplane1{i}=bitplane{i};endfor i=1:4gure,imshow(bitplane1{i}),title(Stego images);end

    5.2 flowof enCoDing meCHanismforanDroiD

    I have used 64 MB SD memory card in my android emulator to store images. In

    my Android module, text le is read from resource folder and he can pick images from

  • 7/31/2019 Gandhi Viraj

    35/51

    25

    image gallery of emulator as cover object to hide message (see Figure 5.4). The message

    is encrypted using AES algorithm. Encryption is the process of changing data into a form

    that can be read only by the intended receiver. To decipher the message, the receiver of the

    encrypted data must have the proper decryption key.

    Reading text file from resource

    folder and displaying contents in

    textbox

    Select Image from Image

    Gallery as cover object

    Encypt text using AES Algorithm

    with Random key generator

    Hexagon Insertion Algorithm for

    Hiding message in image

    Stego File with Hidden

    Message send via Email

    F 5.4. Flw f ms ss .

  • 7/31/2019 Gandhi Viraj

    36/51

    26

    5.2.1 aeS alm

    Traditionally, the sender and the receiver use the same key to encrypt and decrypt

    data. Also known as Advance Encryption Standard. It is a symmetric key algorithm. When

    using symmetric algorithms, both parties share the same key for encryption and decryption.

    To provide privacy, this key needs to be kept secret. It is not safe anymore when once

    somebody else gets to know the key, A few well-known examples are: DES, Triple-DES,

    BLOWFISH. AES has a xed block size of 128 bits and uses one of three cipher key

    strengths: a 128, 192, or 256-bit key. Depending on the key length the no of iterating round

    are decided. No of round are 10 rounds if it is 128 bits, 12 rounds if it is 192 bits, 14 rounds

    if it is 256 bits. The input and output of AES is sequence of 128 bit blocks. AES steps consist

    of Substitution permutation network. The AES cipher is specied as a number of repetitions

    of transformation rounds that convert the input plaintext into the nal output of cipher text.

    Each round consists of several processing steps, including one that depends on the encryption

    key. Below is code for how key is generated to encrypt message using AES Algorithm and

    how actually AES algorithm is used to encrypt plaintext [16].

    // Get the Key GeneratorKey Generator kgen = KeyGenerator.getInstance (AES);Secure Random sr = SecureRandom.getInstance (SHA1PRNG);sr.setSeed (seed);

    kgen.init (128, sr);Secret Key skey = kgen.generateKey ();Byte [] raw = skey.getEncoded ();Return raw;

    This code is written using Java/Android SDK, and the following topics will need to

    be understood, before properly understanding how this method works.

    5.2.2 BsA 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).

    Example:00000000 = 0,00000010 = 2

  • 7/31/2019 Gandhi Viraj

    37/51

    27

    5.2.3 B cvs

    private byte[] bit_conversion(int i){

    byte byte3 = (byte)((i & 0xFF000000) >>> 24);

    byte byte2 = (byte)((i & 0x00FF0000) >>> 16);

    byte byte1 = (byte)((i & 0x0000FF00) >>> 8 );

    byte byte0 = (byte)((i & 0x000000FF) );return(new byte[]{byte3,byte2,byte1,byte0});

    }

    Because a byte holds a max value of 127, all shifts of 8 and greater than 8, will

    replace them with zeros. Example:0000000100011111 = 287,0000000011111111 = 255 or

    0x00FF. The result has the last 8 bits matching 1, but the rst 8 bits were all removed to 0s

    due to being AND with 0s in all positions, but the last 8. The thing to take from this, is we

    can force a value to 0, by ANDing with 0, and leave a value alone, by ANDing with 1.

    5.3 enCoDing text

    Android phones are ubiquitous today, having access to sensitive personal information

    they are a prime target for attackers. In this project, we address some security issues relevant

    to the current Android framework. Specically, we demonstrate an exploit that targets the

    Android telephony service. In addition, as a defense against the loss of personal information,

    we provide a means to encrypt data stored on the external media card. While phones remain

    vulnerable to a variety of security threats, this encryption provides an additional level of

    security.

    This Cipher class provides the functionality of a cryptographic cipher for encryption

    and decryption. It forms the core of the Java Cryptographic Extension (JCE) framework. In

    order to create a Cipher object, the application calls the Ciphers getInstance method.

    5.3.1 gis M

    getInstance() is a static method and passes the name of the requested transformation

    to it which returned a Cipher object of the specied transformation from the implementation

    of the specied provider. If provider is not specied, the default implementation is used.

  • 7/31/2019 Gandhi Viraj

    38/51

    28

    A transformation is a string that describes set of operations to be performed on the

    given input, to produce some output. For example (Equation 5.1), the

    Cipher c = Cipher.getInstance(DES/CBC/PKCS5Padding);

    When requesting a block cipher in stream cipher mode (e.g., AES in CFB or OFB

    mode), the user may optionally specify the number of bits to be processed at a time, by

    appending this number to the mode name as shown in the DES/CFB8/NoPadding.

    init():Initializes this cipher for the specied operation mode like Cipher.ENCRYPT_

    MODE and Cipher.DECRYPT_MODE with the specied key or public key certicate.

    public static nal int ENCRYPT_MODE: It initialize cipher to encryption mode.

    doFinal(): Performs the last step of a multi-step encryption/decryption operation

    by processing any remaining buffered data. If necessary, padding is performed. Returned

    number of bytes stored in the output byte array are returned.

    public static byte[] encrypt(byte[] raw,byte[] message)throwsException {

    SecretKeySpec skeySpec = new SecretKeySpec(raw, AES);Cipher cipher = Cipher.getInstance(AES);cipher.init(Cipher.ENCRYPT_MODE, skeySpec);byte[] encrypted = cipher.doFinal(message);

    return encrypted;}

    5.3.2 hx is alm

    In Android at sender end, I have used hexagon as geometric object to hide message

    into image.

    private byte[] encode_text1(byte[] image, byte[] addition, int

    offset){int tx=1,ty=1;

    int tx1=57,ty1=1; // End point 1

    int tx2=170,ty2=1; // End point 2int tx3=225,ty3=113; // End point 3int tx4=170,ty4=225; // End point 4int tx5=57,ty5=225; // End point 5int tx6=1,ty6=113; // End point 6

    (5.1)

  • 7/31/2019 Gandhi Viraj

    39/51

    29

    for(ty=1;ty0) &&(fCD(tx,ty,tx3,ty3,tx4,ty4)*fDE(tx,ty,tx4,ty4,tx5,ty5)>0) &&(fDE(tx,ty,tx4,ty4,tx5,ty5)*fEF(tx,ty,tx5,ty5,tx6,ty6)>0) &&(fEF(tx,ty,tx5,ty5,tx6,ty6)*fFA(tx,ty,tx6,ty6,tx1,ty1)>0))

    {break;

    }}//int add = addition[ty-1];int pt = (ty-1)*225+tx;image[pt] = addition[ty-1];

    for(tx=170;tx0) &&(fBC(tx,ty,tx2,ty2,tx3,ty3)*fCD(tx,ty,tx3,ty3,tx4,ty4)>0) &&(fCD(tx,ty,tx3,ty3,tx4,ty4)*fDE(tx,ty,tx4,ty4,tx5,ty5)>0) &&(fDE(tx,ty,tx4,ty4,tx5,ty5)*fEF(tx,ty,tx5,ty5,tx6,ty6)>0) &&(fEF(tx,ty,tx5,ty5,tx6,ty6)*fFA(tx,ty,tx6,ty6,tx1,ty1)>0)))

    {break;

    }}int pt1 = (ty-1)*225+tx;

    image[pt1] = addition[ty];

    ty=ty+2;}String st = new String(addition);return image;

    }

    public static oat fAB(int x,int y,int x1,int y1,int x2,int y2){

    return ((y-y1)*(x2-x1) - (x-x1)*(y2-y1));}public static oat fBC(int x,int y,int x2,int y2,int x3,int y3){

    return ((y-y2)*(x3-x2) - (x-x2)*(y3-y2));}public static oat fCD(int x,int y,int x3,int y3,int x4,int y4){

    return ((y-y4)*(x3-x4) - (x-x4)*(y3-y4));}public static oat fDE(int x,int y,int x4,int y4,int x5,int y5){

  • 7/31/2019 Gandhi Viraj

    40/51

    30

    return ((y-y4)*(x5-x4) - (x-x4)*(y5-y4));}public static oat fEF(int x,int y,int x5,int y5,int x6,int y6){

    return ((y-y5)*(x6-x5) - (x-x5)*(y6-y5));}

    public static oat fFA(int x,int y,int x6,int y6,int x1,int y1){return ((y-y6)*(x1-x6) - (x-x6)*(y1-y6));

    }

    After hiding message at intersection point of hexagon and image, stego image formed

    is store in database and also another copy of stego image to SD Card then automatically

    image is attached and we can send hidden message in form of stego image to receiver

    via email in more secure way as encryption and steganography is used to provide more

    complexity (see Figure 5.5).

    5.4 email

    The Android platform introduces many new and exciting features for users and

    developers. For example, a user can tap a contact photo and select to call, SMS, or email

    the person. Other applications are Email, Messaging, etc. Here is the code to start email

    Figure 5.5. Displaying message of text le and imagesfm ll.

  • 7/31/2019 Gandhi Viraj

    41/51

    31

    intent from android emulator. To send email in android we should provide permission in its

    manifest le.

    //permission

    // Email

    Uri attached_Uri = Uri.parse(content://media/external/images/media/4);Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND,attached_Uri);String[] recipients = new String[]{[email protected],};emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, recipients);emailIntent.putExtra(android.content.Intent.EXTRA_STREAM,attached_Uri);

    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, Test);emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, This isemails message);emailIntent.setType(image/jpeg);startActivity(Intent.createChooser(emailIntent, Send mail...));nish();

    ACTION_ SEND:this intent is used to send email from emulator. Basically, it tells

    the Android system that your application wants to send some sort of message.

    EmailIntent.setType: set the type of data sender wants to send. Once you have set the

    type data for the Intent, you can call the startActivity() method, passing in your Intent.

    Figures 5.6 and 5.7 illustrate sending stego image via email and UI of emailing stego

    image, respectively.

  • 7/31/2019 Gandhi Viraj

    42/51

    32

    F 5.7. ui f ml s m.

    F 5.6. S s m v ml.

  • 7/31/2019 Gandhi Viraj

    43/51

    33

    chapter 6

    decoding oF Steganography MeSSageS

    I have used 64 MB SD memory card in my android emulator to store images. In my

    Android module, whenever user get stego image in email, he can download stego image

    from email. The downloaded image will be stored by default in sdcard/ folder. The message

    is decrypted using AES algorithm. Decryption is the reverse process of encryption that is

    getting original data back from encrypted message. To decipher the message, the receiver of

    the encrypted data must have the proper decryption key (password) as AES is symmetric key

    or private key cryptography.

    6.1 DeCoDing textin anDroiD moDule

    Once the stego image is sent in an email, the recipient of the image can download

    this image into his emulators memory that is also known as sdcard. User can use this image

    in order to get hidden message back. Here I have selected Hexagon as a geometric object.

    Above code explain how to nd the intersection points of Hexagon and image. Once this

    intersection points are found we can get the message hidden into these points. To receive

    email in android we should provide permission in its manifest le of android application (see

    Figure 6.1).

    The code for decrypting text follows:

    private static byte[] decrypt(byte[] raw, byte[] encrypted) throwsException{

    SecretKeySpec skeySpec = new SecretKeySpec(raw, AES);Cipher cipher = Cipher.getInstance(AES);cipher.init(Cipher.DECRYPT_MODE, skeySpec);byte[] decrypted = cipher.doFinal(encrypted);return decrypted;

    The code for getting text from images in android follows:

    privatebyte[] decode_text1(byte[] image)

  • 7/31/2019 Gandhi Viraj

    44/51

    34

    { int tx=1,ty=1; int tx1=57,ty1=1; // End point 1 int tx2=170,ty2=1; // End point 2 int tx3=225,ty3=113; // End point 3 int tx4=170,ty4=225; // End point 4 int tx5=57,ty5=225; // End point 5 int tx6=1,ty6=113; // End point 6

    int lenmsg1 = Integer.parseInt(lenmsg);byte[] result = newbyte[lenmsg1]; for(ty=1;ty0) && (fCD(tx,ty,tx3,ty3,tx4,ty4)*fDE(tx,ty,tx4,ty4,tx5,ty5)>0)&& (fDE(tx,ty,tx4,ty4,tx5,ty5)*fEF(tx,ty,tx5,ty5,tx6,ty6)>0) && (fEF(tx,ty,tx5,ty5,tx6,ty6)*fFA(tx,ty,tx6,ty6,tx1,ty1)>0))

    { break;

    }}

    int pt = (ty-1)*225+tx;result[ty-1] = image[pt];

    for(tx=170;tx0) && (fBC(tx,ty,tx2,ty2,tx3,ty3)*fCD(tx,ty,tx3,ty3,tx4,ty4)>0) && (fCD(tx,ty,tx3,ty3,tx4,ty4)*fDE(tx,ty,tx4,ty4,tx5,ty5)>0)&& (fDE(tx,ty,tx4,ty4,tx5,ty5)*fEF(tx,ty,tx5,ty5,tx6,ty6)>0) && (fEF(tx,ty,tx5,ty5,tx6,ty6)*fFA(tx,ty,tx6,ty6,tx1,ty1)>0)))

    Download The Stego Image With Hidden Message From Email

    Apply The Hexagon Insertion Algorithm

    Find Out The Encrypted Message And The Decrypt It

    Ori inal Messa e

    F 6.1. Flw f m s ss .

  • 7/31/2019 Gandhi Viraj

    45/51

    35

    { break;

    }}

    int pt1 = (ty-1)*225+tx;result[ty] = image[pt1];

    ty=ty+2;}String st = new String(result);

    return result;}

    publicstaticoat fAB(int x,int y,int x1,int y1,int x2,int y2){ return ((y-y1)*(x2-x1) - (x-x1)*(y2-y1));}

    publicstaticoat fBC(int x,int y,int x2,int y2,int x3,int y3){ return ((y-y2)*(x3-x2) - (x-x2)*(y3-y2));

    }publicstaticoat fCD(int x,int y,int x3,int y3,int x4,int y4){ return ((y-y4)*(x3-x4) - (x-x4)*(y3-y4));}

    publicstaticoat fDE(int x,int y,int x4,int y4,int x5,int y5){ return ((y-y4)*(x5-x4) - (x-x4)*(y5-y4));}

    publicstaticoat fEF(int x,int y,int x5,int y5,int x6,int y6){ return ((y-y5)*(x6-x5) - (x-x5)*(y6-y5));}

    publicstaticoat fFA(int x,int y,int x6,int y6,int x1,int y1){ return ((y-y6)*(x1-x6) - (x-x6)*(y1-y6));}

    Figure 6.2 illustrates the message after decoding an image le.

    6.2 DeCoDing textin matlab moDule

    A bit plane of a digital image is a set of bits having the same position in the

    respective binary numbers. For example, for 8-bit data representation there are 8 bit-planes:

    the rst bit-plane contains the set of the most signicant bit and the second bit-plane contains

    the second most signicant bit and so on. In the decoding process the gray scale image is

    converted into 8-bit planes. All these image bit planes are shifted by 1 bit and then cone is

    inserted into these 8 bit planes. Intersection point of cone and image are then considered as

  • 7/31/2019 Gandhi Viraj

    46/51

    36

    a place where sender has hide his secret message. So the recipient of message can nd the

    hidden message. The code for getting text from images in matlab follows:

    %get 8 bitplanes of image

    for i=1:8bitsd=bitget(image,i);bitsd = bitsd ~= 0;bitplaned{i}=bitsd;

    end

    for i=1:4for j=1:256

    for k=1:256helixd(j,256*(i-1)+k)=bitplaned{i}(j,k);

    endend

    end

    %performing shift operation on the imageshift=1;

    for i=1:256;for j=1:256*4;

    if mod((i-1)*shift+j,256*4) == 0;h1(i,256*4)=helixd(i,j);

    else

    h1(i,mod((i-1)*shift+j,256*4))=helixd(i,j);

    Figure 6.2. Message after decoding image le.

  • 7/31/2019 Gandhi Viraj

    47/51

    37

    endend

    end

    Loops=2;

    %gure,imshow(h);

    %getting back the inserted txt at the intersection point of image andcone back

    k=1;for i=4:4:256;

    for j=4:4:(256*4)/(2*Loops);if k >= length(val);

    break;elseval1(k)=h1(i,j);k=k+1;

    val1(k)=h1(i,((256*4)/(2*Loops))+((256*4)/(2*Loops))-j);k=k+1;val1(k)=h1(i,2*((256*4)/(2*Loops))+j);k=k+1;val1(k)=h1(i,3*((256*4)/(2*Loops))+((256*4)/(2*Loops))-j);k=k+1;end

    endend

    code=zeros(length(val1)/8,8);p=0;q=0;

    r=1;for i=1:length(val1)/8

    p=0;q=0;for j=1:8

    code(i,j)=val1((i-1)*8+j);p=p+((2^(j-1))*(double(val1((i-1)*8+j))));

    endstr(r) = mod(p,255);r=r+1;

    end

    str=char(str);

    %writing decoded text to le name unsecure.txt

    dlmwrite(unsecure.txt,str,);

  • 7/31/2019 Gandhi Viraj

    48/51

    38

    chapter 7

    concLuSion

    Steganography is powerful and effective for communication of secret data. In some

    countries, cryptography is not allowed to be applied in full application. They have put certain

    restrictions due to security reasons. Steganography is very important in such situations. On

    the other side, steganography alone is not secure entirely. Steganography when combined

    with cryptography indeed becomes a powerful method of secure of communication. If

    Steganography is broken then the attacker has to still break cryptography. One also needs to

    implement steganography keeping in mind the various possible attacks.

    The two modules showing the encoding and decoding techniques of storing the secret

    message in a cover media work very effectively. The techniques discussed here to achieve

    such kind of a covert communication is just an effort to show that practically any kind of

    secret communication is possible in information security.

    7.1 limitations

    To validate in Matlab Module, we have already mentioned name of cover image to

    be used in code and text le name to be read. In Android module , message from text le

    is made to read and cover image is selected from picture gallery available in that particular

    SD Card. In my application all images has to be jpeg le and for android application has

    to be of at least 1024x768.The memory card is basic requirement for Android otherwise

    application would not execute further. Sometimes Downloading Larger images from gmail

    forces android phones to stay in busy mode. So my suggestion is to attach embedded image

    manually with email.

  • 7/31/2019 Gandhi Viraj

    49/51

    39

    7.2 future enHanCements

    The existing application is a desktop application. The Java application runtime (.jar)

    that is created using the eclipse IDE which is nothing but an archive which can be moved to

    any workstation irrespective of the operating system that the workstation has and a single

    click can easily install the entire system on the respective machine.

    The result of Android module will be an .APK le which is the actual program binary

    of application. However, the .APK le your compiler creates can only be used with the

    emulator on your desktop PC/Mac. You cannot use the same .APK le to install and run your

    app on your Android phone.

    Google wants to protect its phone users from installing and running fraudulent

    software on their devices. Therefore, each and every application needs to be signed with a

    valid certicate that ensures where the application comes from. I am planning to signed the

    application with my certicate using suitable private key and upload on open source Android

    market to get feedback from Android phone user and see how many downloads occurs by

    users to use this application.

    Also the web support can be extended by adding MMS feature to the software where

    the encoded stream can be mms to the receiver to get it decoded. This feature can make the

    software really efcient. These kind of small additions can be tried for the software to make it

    more interactive, user friendly and technically more sound and secure in combination of one

    or the other. The results clearly show the considerable difference between the errors detected

    in Mode 1 and Mode 2. Also in both the modes, as more number of bits per codeword is

    encoded, the number of errors decreases at the receivers end. The numbers remain fairly

    consistent for all the three cases in Mode 1, but for Mode 2 the difference between 1 stega bit

    sent per codeword and 2 stega bits sent per codeword are large. This phenomenon is observed

    due to the fact that the detection mechanism in Mode 2 becomes much more stringent and

    expectation of erred bits is more accurate as we increase the bit frequency at the sender.

  • 7/31/2019 Gandhi Viraj

    50/51

    40

    reFerenceS

    T. Morkel , J.H.P. Eloff , and M.S. Olivier. An Overview of Image Steganography.[1]

    Department of Computer Science, University of Pretoria, South Africa, 2010. http://mo.co.za/open/stegoverview.pdf, accessed November 2010.

    N. Sharma, N. Gupta, and J.S. Bhatia. An Encrypto-Stegno Technique Based Secure[2]Data Transmission System. Chandigrah, 2010. http://www.infosecwriters.com/text_resources/pdf/encrypto.pdf, accessed November 2010.

    A. Mangarae. Steganography FAQ. Zone-H.org, March 18, 2006. http://[3]infosecwriters.com/text_resources/pdf/Steganography_AMangarae.pdf, accessedNovember 2010.

    R. Bergmair. Towards Linguistic Steganography: A Systematic Investigation of[4]Approaches, Systems, and Issues. Keplerstrasse 3. http://citeseerx.ist.psu.edu/

    viewdoc/download?doi=10.1.1.122.8569&rep=rep1&type=pdf, accessed November2010.

    J. Burns. Developing Secure Mobile Application. ISEC Parnters, October 2008.[5]https://www.isecpartners.com/les/iSEC_Securing_Android_Apps.pdf, accessedNovember 2010.

    Wikipedia. Android. Wikipedia, 2010. http://en.wikipedia.org/wiki/[6]Android(operating_system), accessed October 2010..

    Zeukstek, Android Architecture. Zeukstek, 2010, http://blog.zeustek.com/2010/11/11/[7]android-architecture accessed November 2010.

    R. Meier. Professional Android Application Development. New York: Wrox[8]Publication, 2008.

    L. Darcey and S. Conder. How to Build an Android Application, Step by[9]Step, ComputerWorld, August 30, 2010. http://www.computerworld.com/s/article/print/9181925/How_to_build_an_Android_application_step_by_step?taxonomyName=App%20Development& , accessed November 2010.

    M. Murphy. The Busys Coder Guide to Android Development. New York:[10]Commonware, 2009.

    E. L. Hall. Computer Image Processing and Recognition. New York: Academic Press,[11]

    1979.

    A. Mehta, S. Rampu, and A. Simionescu, Black Holes. General Geoscience and[12]Astrophysics, Jacobs University, 2010. http://www.faculty.iu-bremen.de/course/fall02/c210101/students/BlackHoles/Black%20holes%20and%20Schwartzschild%20geometry.htm, accessed November 2010.

    Wikipedia. Cone. http://en.wikipedia.org/wiki/Cone, accessed October 2010.[13]

  • 7/31/2019 Gandhi Viraj

    51/51

    41

    Wikipedia. Hexagon. Wikipedia, 2010. http://en.wikipedia.org/wiki/Hexagon,[14]accessed October 2010.

    Tutornext, Properties of Polygons. Tutornext, 2010. http://www.tutornext.com/[15]properties-polygonspentagon-hexagon/1017, accessed Novemer 2010.

    Wikipedia. AES. Wikipedia, 2010. http://en.wikipedia.org/wiki/Advanced_[16] Encryption_Standard, accessed October 2010.