33
MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

Embed Size (px)

Citation preview

Page 1: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

MP3 Stegonography

Lukasz Grzegorz MaciakMicheal Alexis Ponniah

Renu Sharma

Page 2: 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

Page 3: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

Why MP3 Files?

Open Standard (as opposed to proprietary WMA)

Very Popular Preferred by end users Easily Available

Page 4: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

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.

Page 5: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

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.

Page 6: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

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

Page 7: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

MP3 Encoding

Page 8: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

MP3 File Structure

Page 9: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

MP3 Frame Headers

Page 10: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

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

Page 11: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

MP3 Frame Length

Page 12: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

Embedding Text into MP3 Files

Non-Stegonographic methods

Encode time mp3 stegonography

Post encoding mp3 stegonography

Page 13: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

Non Stegonographic Methods

ID3v2 Comment Frame Lyrics3 Specification (ID3 extension)

Page 14: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

Flaws of Non-Stego Methods

Increase in File Size

Not applicable to this project

Page 15: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

Encode Time Stegonography

Low Bit Encoding

Phase Coding

Spread Spectrum Coding

Echo Data Hiding

Page 16: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

Flaws of Encode Time Stego

Difficult to implement

Tied to single implementation of mp3 encoder/decoder

Require access to source wav files

Page 17: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

Post Encoding Stegonography

Unused Header Bit Stuffing

Padding Byte Stuffing

Page 18: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

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

Page 19: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

Implementation Choices

Implemented in Java

Stegonographic Method: Padding Byte Stuffing

Stegonographic Module as stand alone application

Page 20: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

Stegonographic Module: Design

Page 21: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

Flow of Control

Page 22: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

LZW Compression

Page 23: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

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 framepop the byte from the queuewrite the popped byte into file

} }

Page 24: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

StegIO - Reading

length = integer > 4 counter = 0 while (counter < length) {

Header = read 4 bytes from the fileif(Header is_valid && contains padding byte){

if(counter == 4){ length = to_integer ( pop 4 bytes from queue)}seek to the end of frameread a byte from the filepush the read byte onto queue

} }

Page 25: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

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

Page 26: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

Stegonographic Module: Comments & Future Work

Padding Byte Stuffing – problematic

Data Corruption

Page 27: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

Java and MP3

Java Sound API

Java Media Framework

Page 28: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

MP3 Player Implementation

Used an open source java player called Java MP3 player.

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

Page 29: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

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

Page 30: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

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

#

Page 31: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

Future Work

Implementation using Unused Header Bit Stuffing

Automating Lyrics Markup and Synchronization

Page 32: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

Demo and Questions

Page 33: MP3 Stegonography Lukasz Grzegorz Maciak Micheal Alexis Ponniah Renu Sharma

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”, 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/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