Mp 3 Steg on Ography

Embed Size (px)

Citation preview

  • 7/29/2019 Mp 3 Steg on Ography

    1/33

    MP3 Stegonography

    Lukasz Grzegorz MaciakMicheal Alexis Ponniah

    Renu Sharma

  • 7/29/2019 Mp 3 Steg on Ography

    2/33

    Project Goal

    Implement a method to embedtextual data into audio files usingstegonography

    Embed lyrics into mp3 files

    Extract lyrics from an mp3

    Display the lyrics while the song isplaying

  • 7/29/2019 Mp 3 Steg on Ography

    3/33

    Why MP3 Files?

    Open Standard (as opposed to

    proprietary WMA) Very Popular

    Preferred by end users

    Easily Available

  • 7/29/2019 Mp 3 Steg on Ography

    4/33

    FEATURES OF MP3

    Designed to store audio data

    Its a compressed file format

    Its lossy data format meaning thatoriginal audio signal is not retained inits entirety.

    Aims to preserve the sound qualitywhile minimizing storage space.

  • 7/29/2019 Mp 3 Steg on Ography

    5/33

    BASICS OF MP3 ENCODING

    Takes into account the properties ofHAS(Human auditory system)

    Discards any sounds with frequenciesout of the audible scale.

    Mp3 stores only a single copy ofgroup of similar sounding notes.

  • 7/29/2019 Mp 3 Steg on Ography

    6/33

    MP3 Encoding

    Fragmentation: The size of the framedepends on the audio resolution or bit

    rate. Perceptual Optimization: Each frame

    is analyzed so that frequencies that

    are not audible are discarded. Huffman Compression

    Appending Header meta-data

  • 7/29/2019 Mp 3 Steg on Ography

    7/33

    MP3 Encoding

  • 7/29/2019 Mp 3 Steg on Ography

    8/33

    MP3 File Structure

  • 7/29/2019 Mp 3 Steg on Ography

    9/33

    MP3 Frame Headers

  • 7/29/2019 Mp 3 Steg on Ography

    10/33

    MP3 Frame Headers

    Position Purpose Length

    A Frame sync 11

    B MPEG audio version (MPEG-1, 2, etc.) 2

    C MPEG layer (Layer I, II, III, etc.) 2

    D Protection (if on, then checksum follows header) 1

    E Bitrate index (lookup table used to specify bitrate for this MPEG version and layer) 4

    F Sampling rate frequency (44.1kHz, etc., determined by lookup table) 2

    G Padding bit (on or off, compensates for unfilled frames) 1

    H Private bit (on or off, allows for application-specific triggers) 1

    I Channel mode (stereo, joint stereo, dual channel, single channel) 2

    J Mode extension (used only with joint stereo, to conjoin channel data) 2

    K Copyright (on or off) 1

    L Original (off if copy of original, on if original) 1

    M Emphasis (respects emphasis bit in the original recording; now largely obsolete) 2

  • 7/29/2019 Mp 3 Steg on Ography

    11/33

    MP3 Frame Length

  • 7/29/2019 Mp 3 Steg on Ography

    12/33

    Embedding Text into MP3 Files

    Non-Stegonographic methods

    Encode time mp3 stegonography

    Post encoding mp3 stegonography

  • 7/29/2019 Mp 3 Steg on Ography

    13/33

    Non Stegonographic Methods

    ID3v2 Comment Frame

    Lyrics3 Specification (ID3 extension)

  • 7/29/2019 Mp 3 Steg on Ography

    14/33

    Flaws of Non-Stego Methods

    Increase in File Size

    Not applicable to this project

  • 7/29/2019 Mp 3 Steg on Ography

    15/33

    Encode Time Stegonography

    Low Bit Encoding

    Phase Coding

    Spread Spectrum Coding

    Echo Data Hiding

  • 7/29/2019 Mp 3 Steg on Ography

    16/33

    Flaws of Encode Time Stego

    Difficult to implement

    Tied to single implementation of mp3encoder/decoder

    Require access to source wav files

  • 7/29/2019 Mp 3 Steg on Ography

    17/33

    Post Encoding Stegonography

    Unused Header Bit Stuffing

    Padding Byte Stuffing

  • 7/29/2019 Mp 3 Steg on Ography

    18/33

    Why Post Encode Stego?

    Easy to implement

    Do not require source WAV files Can be used with an of the shelf

    encoder

    No sound quality degradation

  • 7/29/2019 Mp 3 Steg on Ography

    19/33

    Implementation Choices

    Implemented in Java

    Stegonographic Method:Padding Byte Stuffing

    Stegonographic Module asstand alone application

  • 7/29/2019 Mp 3 Steg on Ography

    20/33

    Stegonographic Module: Design

  • 7/29/2019 Mp 3 Steg on Ography

    21/33

    Flow of Control

  • 7/29/2019 Mp 3 Steg on Ography

    22/33

    LZW Compression

  • 7/29/2019 Mp 3 Steg on Ography

    23/33

    StegIO - Writing

    calculate the length of themessage in bytes

    prepend the length to themessage

    put themessage on a byte queue

    while(there are still bytes to be written){

    Header = read4 bytes from the file

    if(Headeris_valid&&contains padding byte)

    {

    seek to the end of frame

    pop the byte from the queue

    write the popped byte into file

    }

    }

  • 7/29/2019 Mp 3 Steg on Ography

    24/33

    StegIO - Reading

    length = integer > 4

    counter = 0

    while (counter

  • 7/29/2019 Mp 3 Steg on Ography

    25/33

    Stegonographic Module: Usage

    To Embed text:

    java jar mp3stego.jar mp3_file.mp3 text_file.txt

    To Extract text:

    java

    jar mp3stego.jar mp3_file.mp3

  • 7/29/2019 Mp 3 Steg on Ography

    26/33

    Stegonographic Module: Comments& Future Work

    Padding Byte Stuffing problematic

    Data Corruption

  • 7/29/2019 Mp 3 Steg on Ography

    27/33

    Java and MP3

    Java Sound API

    Java Media Framework

  • 7/29/2019 Mp 3 Steg on Ography

    28/33

    MP3 Player Implementation

    Used an open source java playercalled Java MP3 player.

    http://www.codetoad.com/java_mp3_player.asp

    http://www.codetoad.com/java_mp3_player.asphttp://www.codetoad.com/java_mp3_player.asphttp://www.codetoad.com/java_mp3_player.asphttp://www.codetoad.com/java_mp3_player.asp
  • 7/29/2019 Mp 3 Steg on Ography

    29/33

    Text & Music Synchronization

    Line starts with time offset

    Followed pipe character | Followed by the lyric text

    Line ends with a new line ( \n)

    File terminates in hash mark ( #)

  • 7/29/2019 Mp 3 Steg on Ography

    30/33

    Sample Lyrics File

    19100|May the good Lord be with you21250|Down every road you roam28300|And may sunshine and happiness31150|surround you when you're far from home

    207790|Forever Young217240|For, forever young227050|Forever Young#

  • 7/29/2019 Mp 3 Steg on Ography

    31/33

    Future Work

    Implementation using Unused HeaderBit Stuffing

    Automating Lyrics Markup andSynchronization

  • 7/29/2019 Mp 3 Steg on Ography

    32/33

    Demo and Questions

  • 7/29/2019 Mp 3 Steg on Ography

    33/33

    References Hacker, Scot, MP3, The Definitive Guide, 1st Edition, March 2000, O'Reilly Publishing. Noto, Mark, MP3Stego: Hiding Text in MP3 Files, September 2001, SANS Institute. Koichi Takagi, Shigeyuki Sakazawa, Yashuiro Takishima, Light Weight MP3 Watermarking Method for

    Mobile Terminals, KDDI R&D Labs, MM'05 November 6-11, 2005 Singapore, ACM Huffman Code, Wikipedia, http://en.wikipedia.org/wiki/Huffman_code M. Nilsson, ID3 tag version 2.4.0 - Main Structure, November 2000, http://www.id3.org/id3v2.4.0-

    structure.txt Predrag Supurovic, MPEG Audio Frame Header, 1998 DataVoyage,

    http://www.dv.co.yu/mpgscript/mpeghdr.htm#MPEGTAG

    The Private Life of MP3 Frames, http://www.id3.org/mp3frame.html M. Nilsson, ID3 tag version 2.3.0, February 1999, http://www.id3.org/id3v2.3.0.html Strnad Peter, Gingold Peter, Lyrics3 Tag v2.00, Jun 1998, http://www.id3.org/lyrics3200.html Bender W., Gruhl D., Morimoto N., Lu A., Techniques for data hiding, 1996, IBM,

    http://www.research.ibm.com/journal/sj/353/sectiona/bender.txt Petitcolas Fabien A. P., mp3stego, 19972005,

    http://www.petitcolas.net/fabien/steganography/mp3stego/ Koso A., Turi A., and Obimbo C., Embedding Digital Signatures in MP3s, from proceedings 477

    Internet and Multimedia Systems, and Applications, 2005 Cheng Cheok Yan, Introduction On Text Compression Using Lempel, Ziv, Welch (LZW) method,

    http://www.geocities.com/yccheok/lzw/lzw.html LZW, Wikipedia, http://en.wikipedia.org/wiki/LZW Information-and-Entropy, MIT, Spring 2003, http://ocw.mit.edu/NR/rdonlyres/Electrical-

    Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdf

    Fraunhofer-Gesellschaft, http://www.iis.fraunhofer.de/amm/techinf/layer3/index.html

    http://en.wikipedia.org/wiki/Huffman_codehttp://www.id3.org/id3v2.4.0-structure.txthttp://www.id3.org/id3v2.4.0-structure.txthttp://www.id3.org/id3v2.4.0-structure.txthttp://www.id3.org/id3v2.4.0-structure.txthttp://www.dv.co.yu/mpgscript/mpeghdr.htmhttp://www.dv.co.yu/mpgscript/mpeghdr.htmhttp://www.dv.co.yu/mpgscript/mpeghdr.htmhttp://www.dv.co.yu/mpgscript/mpeghdr.htmhttp://www.id3.org/mp3frame.htmlhttp://www.id3.org/id3v2.3.0.htmlhttp://www.id3.org/lyrics3200.htmlhttp://www.research.ibm.com/journal/sj/353/sectiona/bender.txthttp://www.research.ibm.com/journal/sj/353/sectiona/bender.txthttp://www.petitcolas.net/fabien/steganography/mp3stego/http://www.petitcolas.net/fabien/steganography/mp3stego/http://www.petitcolas.net/fabien/steganography/mp3stego/http://www.geocities.com/yccheok/lzw/lzw.htmlhttp://www.geocities.com/yccheok/lzw/lzw.htmlhttp://en.wikipedia.org/wiki/LZWhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://www.iis.fraunhofer.de/amm/techinf/layer3/index.htmlhttp://www.iis.fraunhofer.de/amm/techinf/layer3/index.htmlhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://ocw.mit.edu/NR/rdonlyres/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C-48BB-95AE-AF9F79D9E20B/0/chapter3new.pdfhttp://en.wikipedia.org/wiki/LZWhttp://www.geocities.com/yccheok/lzw/lzw.htmlhttp://www.petitcolas.net/fabien/steganography/mp3stego/http://www.research.ibm.com/journal/sj/353/sectiona/bender.txthttp://www.id3.org/lyrics3200.htmlhttp://www.id3.org/id3v2.3.0.htmlhttp://www.id3.org/mp3frame.htmlhttp://www.dv.co.yu/mpgscript/mpeghdr.htmhttp://www.id3.org/id3v2.4.0-structure.txthttp://www.id3.org/id3v2.4.0-structure.txthttp://www.id3.org/id3v2.4.0-structure.txthttp://en.wikipedia.org/wiki/Huffman_code