Upload
dharadipal
View
222
Download
0
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.asp7/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