You are on page 1of 33

MP3 Stegonography

Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

Project Goal
Implement a method to embed textual data into audio files using stegonography
Embed lyrics into mp3 files Extract lyrics from an mp3 Display the lyrics while the song is playing

Why MP3 Files?


Open Standard (as opposed to proprietary WMA) Very Popular Preferred by end users Easily Available

FEATURES OF MP3
Designed to store audio data Its a compressed file format Its lossy data format meaning that original audio signal is not retained in its entirety. Aims to preserve the sound quality while minimizing storage space.

BASICS OF MP3 ENCODING


Takes into account the properties of HAS(Human auditory system) Discards any sounds with frequencies out of the audible scale. Mp3 stores only a single copy of group of similar sounding notes.

MP3 Encoding
Fragmentation: The size of the frame depends 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

MP3 Encoding

MP3 File Structure

MP3 Frame Headers

MP3 Frame Headers


Position A B C D E F G H Frame sync MPEG audio version (MPEG-1, 2, etc.) MPEG layer (Layer I, II, III, etc.) Protection (if on, then checksum follows header) Bitrate index (lookup table used to specify bitrate for this MPEG version and layer) Sampling rate frequency (44.1kHz, etc., determined by lookup table) Padding bit (on or off, compensates for unfilled frames) Private bit (on or off, allows for application-specific triggers) Purpose Length 11 2 2 1 4 2 1 1

I
J K L M

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


Mode extension (used only with joint stereo, to conjoin channel data) Copyright (on or off) Original (off if copy of original, on if original) Emphasis (respects emphasis bit in the original recording; now largely obsolete)

2
2 1 1 2

MP3 Frame Length

Embedding Text into MP3 Files


Non-Stegonographic methods

Encode time mp3 stegonography


Post encoding mp3 stegonography

Non Stegonographic Methods


ID3v2 Comment Frame Lyrics3 Specification (ID3 extension)

Flaws of Non-Stego Methods


Increase in File Size

Not applicable to this project

Encode Time Stegonography


Low Bit Encoding Phase Coding Spread Spectrum Coding Echo Data Hiding

Flaws of Encode Time Stego


Difficult to implement

Tied to single implementation of mp3 encoder/decoder Require access to source wav files

Post Encoding Stegonography


Unused Header Bit Stuffing

Padding Byte Stuffing

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

Implementation Choices
Implemented in Java
Stegonographic Method: Padding Byte Stuffing Stegonographic Module as stand alone application

Stegonographic Module: Design

Flow of Control

LZW Compression

StegIO - Writing
calculate the length of the message in bytes prepend the length to the message put the message on a byte queue
while(there are still bytes to be written) { Header = read 4 bytes from the file if(Header is_valid && contains padding byte) { seek to the end of frame pop the byte from the queue write the popped byte into file } }

StegIO - Reading
length = integer > 4 counter = 0 while (counter < length) { Header = read 4 bytes from the file if(Header is_valid && contains padding byte) { if(counter == 4) { length = to_integer ( pop 4 bytes from queue) } seek to the end of frame read a byte from the file push the read byte onto queue } }

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

Stegonographic Module: Comments & Future Work

Padding Byte Stuffing problematic Data Corruption

Java and MP3


Java Sound API

Java Media Framework

MP3 Player Implementation


Used an open source java player called Java MP3 player. http://www.codetoad.com/java_mp3 _player.asp

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 ( # )

Sample Lyrics File


19100|May the good Lord be with you 21250|Down every road you roam 28300|And may sunshine and happiness 31150|surround you when you're far from home 207790|Forever Young 217240|For, forever young 227050|Forever Young #

Future Work
Implementation using Unused Header Bit Stuffing Automating Lyrics Markup and Synchronization

Demo and Questions

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.0structure.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/ElectricalEngineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/ABF6E960-C29C48BB-95AE-AF9F79D9E20B/0/chapter3new.pdf Fraunhofer-Gesellschaft, http://www.iis.fraunhofer.de/amm/techinf/layer3/index.html

You might also like