MP3 Stegonography - Terminally Incoherent
Download
Report
Transcript MP3 Stegonography - Terminally Incoherent
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
It’s a compressed file format
It’s 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
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
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”, 1997–2005,
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