Welcome message from author

This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Basics of SteganographyCSM25 Secure Information Hiding

Dr Hans Georg Schaathun

University of Surrey

Spring 2009 – Week 1

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 1 / 54

The module

Outline

1 The module

2 Steganography models

3 Intro to Matlab

4 Image and Data representations

5 LSB – The Simplest Stegosystem

6 Readable and Reusable Code

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 2 / 54

The module

Free thinkers and free speech

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 3 / 54

The module

The other side

Both clips:The Independent, Friday 27 October 2006.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 4 / 54

The module

The Outcomes and Expectations

Pass (50+)Implement simple stego-systems and steganalysis techniquesBe able to interpret steganalytic dataUse the basic terminology correctly and unambiguously

Merit (60+) (additionally)Program cleanly and show good structure in any delivarables.Have some (limited) wider overview of steganography and itsrelations to other research areas.

Distinction (70+) (additionally)Be able to assess security properties in a communications system,and assess security needs in an application.Be able to discuss stego-systems in unambiguous terms, andchoose appropriate approaches for given application needs.Be able to generalise theories and techniques in steganography,and relate and contrast different approaches.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 5 / 54

The module

The Outcomes and Expectations

Pass (50+)Implement simple stego-systems and steganalysis techniquesBe able to interpret steganalytic dataUse the basic terminology correctly and unambiguously

Merit (60+) (additionally)Program cleanly and show good structure in any delivarables.Have some (limited) wider overview of steganography and itsrelations to other research areas.

Distinction (70+) (additionally)Be able to assess security properties in a communications system,and assess security needs in an application.Be able to discuss stego-systems in unambiguous terms, andchoose appropriate approaches for given application needs.Be able to generalise theories and techniques in steganography,and relate and contrast different approaches.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 5 / 54

The module

The Outcomes and Expectations

Pass (50+)Implement simple stego-systems and steganalysis techniquesBe able to interpret steganalytic dataUse the basic terminology correctly and unambiguously

Merit (60+) (additionally)Program cleanly and show good structure in any delivarables.Have some (limited) wider overview of steganography and itsrelations to other research areas.

Distinction (70+) (additionally)Be able to assess security properties in a communications system,and assess security needs in an application.Be able to discuss stego-systems in unambiguous terms, andchoose appropriate approaches for given application needs.Be able to generalise theories and techniques in steganography,and relate and contrast different approaches.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 5 / 54

The module

Exercises and Assessment

Weekly exercises One exercise sheet given after each lecture. This isto be done at home, and peer-assessed and/or discussedin the next session.

Portfolio (50%) To be handed in at the end of module, summarisingyour learning, including answers to some of the weeklyexercises. (As in csm27.)

Poster (20% collective mark) A poster on a chosen topic is to beprepared in groups of 3-5 and presented to the class inWeek 12.

Exam (30%) A short (112h) written exam at the end of term. This exam

will test your ability to interpret steganalytic data similar towhat you produce in the lab-based exercises. (It may alsotest other areas of the syllabus.)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 6 / 54

The module

Lesson Objectives

After the session, you shouldhave an initial understanding of what steganography is and how itcould be usedbe able to write readable and reusable Matlab code, usingcomments, inline help text, and functions.understand how any piece of information can be represented indifferent ways.

In particular, convert text to binary.have implemented LSB embedding using the principles above

(by the end of Week 2, using the lab session)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 7 / 54

Steganography models

Outline

1 The module

2 Steganography models

3 Intro to Matlab

4 Image and Data representations

5 LSB – The Simplest Stegosystem

6 Readable and Reusable Code

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 8 / 54

Steganography models The problem

The basic problemSimmons Crypto’83

Alice

.

................................

.............

..................................

..........

......................................

.....

..........................................

.........................................

........................................

....................................... ...................................... ..................................... ..................................... .............................................................................

........................................

.........................................

..........................................

...........................................

............................................

.............................................

Bob

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 9 / 54

Steganography models The problem

The basic problemSimmons Crypto’83

Alice

.

................................

.............

..................................

..........

......................................

.....

..........................................

.........................................

........................................

....................................... ...................................... ..................................... ..................................... .............................................................................

........................................

.........................................

..........................................

...........................................

............................................

.............................................

Bob

William theWarden

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 9 / 54

Steganography models The problem

The basic problemSimmons Crypto’83

Alice

.

................................

.............

..................................

..........

......................................

.....

..........................................

.........................................

........................................

....................................... ...................................... ..................................... ..................................... .............................................................................

........................................

.........................................

..........................................

...........................................

............................................

.............................................

Bob

William theWarden

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 9 / 54

Steganography models The problem

The basic problemSimmons Crypto’83

Alice

.

................................

.............

..................................

..........

......................................

.....

..........................................

.........................................

........................................

........................................

.........................................

..........................................

...........................................

............................................

.............................................

Bob

William theWarden

.

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

......

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 9 / 54

Steganography models The problem

The basic problemSimmons Crypto’83

Alice

.

................................

.............

..................................

..........

......................................

.....

..........................................

.........................................

........................................

........................................

.........................................

..........................................

...........................................

............................................

.............................................

Bob

William theWarden

.

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

......

I wonder what they areup to, Alice and Bob. . .

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 9 / 54

Steganography models The problem

The basic problemSimmons Crypto’83

Alice

.

................................

.............

..................................

..........

......................................

.....

..........................................

.........................................

........................................

........................................

.........................................

..........................................

...........................................

............................................

.............................................

Bob

William theWarden

.

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

......

About Uncle Charlie who isill.

Family matters. Noneof my business.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 9 / 54

Steganography models The problem

The basic problemSimmons Crypto’83

Alice

.

................................

.............

..................................

..........

......................................

.....

..........................................

.........................................

........................................

........................................

.........................................

..........................................

...........................................

............................................

.............................................

Bob

William theWarden

.

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

......

Discussing escape plans.

Oh dear. That’s maxi-mum security for Bob.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 9 / 54

Steganography models The problem

The basic problemSimmons Crypto’83

Alice

.

................................

.............

..................................

..........

......................................

.....

..........................................

.........................................

........................................

........................................

.........................................

..........................................

...........................................

............................................

.............................................

Bob

William theWarden

.

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

......

Qvfphffvat rfpncr cynaf.

Encrypted?! They sureare up to no good.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 9 / 54

Steganography models The problem

The visionSimmons Crypto’83

Alice

.

................................

.............

..................................

..........

......................................

.....

..........................................

.........................................

........................................

........................................

.........................................

..........................................

...........................................

............................................

.............................................

Bob

William theWarden

.

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

......

Escape at midnight.

«Uncle Charlie is muchbetter now.»

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 9 / 54

Steganography models The problem

The basic crypto-problemEncryption

Alice

.

................................

.............

..................................

..........

......................................

.....

..........................................

.........................................

........................................

........................................

.........................................

..........................................

...........................................

............................................

.............................................

Bob theBanker

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 10 / 54

Steganography models The problem

The basic crypto-problemEncryption

Alice

.

................................

.............

..................................

..........

......................................

.....

..........................................

.........................................

........................................

........................................

.........................................

..........................................

...........................................

............................................

.............................................

Bob theBanker

Eve

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 10 / 54

Steganography models The problem

The basic crypto-problemEncryption

Alice

.

................................

.............

..................................

..........

......................................

.....

..........................................

.........................................

........................................

........................................

.........................................

..........................................

...........................................

............................................

.............................................

Bob theBanker

Eve

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 10 / 54

Steganography models The problem

The basic crypto-problemEncryption

Alice

.

................................

.............

..................................

..........

......................................

.....

..........................................

.........................................

........................................

........................................

.........................................

..........................................

...........................................

............................................

.............................................

Bob theBanker

Eve

.

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

......

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 10 / 54

Steganography models The problem

The basic crypto-problemEncryption

Alice

.

................................

.............

..................................

..........

......................................

.....

..........................................

.........................................

........................................

........................................

.........................................

..........................................

...........................................

............................................

.............................................

Bob theBanker

Eve

.

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

......

What is the password?

Transaction data.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 10 / 54

Steganography models The problem

The basic crypto-problemEncryption

Alice

.

................................

.............

..................................

..........

......................................

.....

..........................................

.........................................

........................................

........................................

.........................................

..........................................

...........................................

............................................

.............................................

Bob theBanker

Eve

.

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

......

Genafnpgvba qngn.

Sigh! Encrypted.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 10 / 54

Steganography models Threats and Controls

Threats and controlsCSM27 Re-cap – See Pfleeger&Pfleeger Ch. 1

Assets Resource and fascilities we value and don’t want to lose.Threat A potential damage or cause of damage to the assets.

Control Any security measures used to reduce the risk (eitherprobability or severity of damage) of damage fromexisting threats.

Vulnerabilities Weaknesses (bugs etc) in the system which increasesthe risk of damage from existing threats.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 11 / 54

Steganography models Threats and Controls

Discussion exercise

Groups of about 3-4.Discuss the steganography and encryption scenarioes presented,and identify

1 The assets we seek to protect2 Threats against these assets3 The threats controlled (respectively) by steganography and

encryption

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 12 / 54

Steganography models Threats and Controls

Combining Encryption and Steganography

You can increase security of a steganographic system byencrypting the message before hiding it. (common claim)

In what way is the claim true?In what way is the claim false?

Steganography and encryption control different threats.Combining the controls control more threatsCombining the controls does not reduce the risk of each threat.

Hence, encryption does not improve the security ofsteganography.

It adds controls outside the scope of steganography.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 13 / 54

Steganography models Threats and Controls

Combining Encryption and Steganography

You can increase security of a steganographic system byencrypting the message before hiding it. (common claim)

In what way is the claim true?In what way is the claim false?Steganography and encryption control different threats.

Combining the controls control more threatsCombining the controls does not reduce the risk of each threat.

Hence, encryption does not improve the security ofsteganography.

It adds controls outside the scope of steganography.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 13 / 54

Steganography models Threats and Controls

Lesson

Be wary of general claims of security.Address the protection of each asset separately.Address the control of each threat separately.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 14 / 54

Steganography models What steganography is

Information hiding

Information Hiding is a more general problemHide one file (message) in another file (host)Different subproblems – different purposes

Steganography – secret communicationsRobust Watermarking – e.g. copyright protectionFragile Watermarking – authentication

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 15 / 54

Steganography models What steganography is

The data hiding systemThe pure stego-system

Embedding Extractor

Message Recovered

Key

Cover

File

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 16 / 54

Steganography models What steganography is

The data hiding systemThe pure stego-system

Embedding Extractor

Message Recovered

Key

Cover

File

Security depends on the confidentiality of the algorithm.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 16 / 54

Steganography models What steganography is

The data hiding systemSecret-key stego-system

Embedding Extractor

Message RecoveredKey

Cover

File

The key k is shared confidentially by Alice and Bob.Gives Bob an edge over Eve.

Without the key, the stego-text is indistinguishable from any othercover textWe will return to this [Kerckhoffs principles]

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 16 / 54

Steganography models What steganography is

The data hiding systemSecret-key stego-system

Embedding Extractor

Message RecoveredKey

Cover

File

The key k is shared confidentially by Alice and Bob.Gives Bob an edge over Eve.

Without the key, the stego-text is indistinguishable from any othercover textWe will return to this [Kerckhoffs principles]

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 16 / 54

Steganography models What steganography is

The data hiding systemSecret-key stego-system

Embedding Extractor

Message RecoveredKey

Cover

File

The key k is shared confidentially by Alice and Bob.Gives Bob an edge over Eve.

Without the key, the stego-text is indistinguishable from any othercover textWe will return to this [Kerckhoffs principles]

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 16 / 54

Steganography models What steganography is

The data hiding systemSecret-key stego-system

Embedding Extractor

Message RecoveredKey

Cover

File

Why is the cover-text fed as input?It has no value at the receiver

Red herring.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 16 / 54

Steganography models What steganography is

The data hiding systemSignificance of the Cover Image

Embedding Extractor

Message RecoveredKey

File

Why is the cover-text fed as input?It has no value at the receiver

Red herring.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 16 / 54

Steganography models What steganography is

The data hiding systemSignificance of the Cover Image

Embedding Extractor

Message RecoveredKey

File

Why is the cover-text fed as input?It has no value at the receiver

Red herring.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 16 / 54

Steganography models What steganography is

The data hiding systemWatermarking System

Embedding Extractor

Message RecoveredKey

Cover File

The cover image is a legacy from watermarking.Watermarking ties the message to the cover.

The cover image is essential at the receiver.

In Steganography, the cover image may be chosen or generatedinternally at the encoder.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 16 / 54

Steganography models What steganography is

The data hiding systemWatermarking System

Embedding Extractor

Message RecoveredKey

Cover File

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 16 / 54

Steganography models What steganography is

Watermarking vs. Steganography

Watermarking: the cover-image is essentialTwo receivers:

One observes the cover-imageOne extracts the hidden message

Minimum distortion is importantSteganography: What is the use of cover-image at receiver?

Bob wants the messageThe image is a red herringDistortion (relative the original cover) is irrelevant

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 17 / 54

Steganography models What steganography is

Two key differencesWatermarking vs. Steganography

1 Cover-imageimportant in watermarkingmeaningless in steganography

2 AttackerSteganography: determine whether secret information exists or notWatermarking: various other goals

Change cover-textRemove watermarkChange watermark

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 18 / 54

Steganography models What steganography is

SteganographyCryptographic view

A Secret-Key stego-system (by synthesis) is S = (C, M, K , E , D)where

C : set of cover textsM : set of messagesK : key space (set of possible keys)E is an encoding function, E : K ×M → CD is a decoding function, D : K × C → M

such thatPr(D(k , E(k , m)) = m) ≈ 1.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 19 / 54

Steganography models What steganography is

Steganography from Information Hiding

Secret-Key Stego-system by modificationThe encoding function takes a cover text from C as input

E : K × C ×M → C

Pure stego-system (by modification)The encoding function takes a cover text from C as input, and nokey is used

E :C ×M → CD :C → M

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 20 / 54

Steganography models What steganography is

On Pure Stegosystems

Bob has no advantage over Evehe has no information which Eve does not have

What prevents Eve from breaking the system?Evidently the algorithm must be secret.Once it is broken, it cannot be reused.Keyed systems can be reused with a new key

if they are properly designed

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 21 / 54

Steganography models What steganography is

On Pure Stegosystems

Bob has no advantage over Evehe has no information which Eve does not have

What prevents Eve from breaking the system?Evidently the algorithm must be secret.Once it is broken, it cannot be reused.Keyed systems can be reused with a new key

if they are properly designed

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 21 / 54

Steganography models What steganography is

On Pure Stegosystems

Bob has no advantage over Evehe has no information which Eve does not have

What prevents Eve from breaking the system?Evidently the algorithm must be secret.Once it is broken, it cannot be reused.Keyed systems can be reused with a new key

if they are properly designed

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 21 / 54

Steganography models What steganography is

To remember

The cover-text is a red herring in steganography.The standard definitions of pure steganography and secret-keysteganography apply to a very limited class of steganography,based on data hiding.Cover-text irrelevant ⇒ distortion irrelevant.

PSNR used to measure distortion in Watermarking.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 22 / 54

Steganography models Definitions

DefinitionsThe tools

Definition (Cipher)A system which allows Alice and Bob to communicate secretly withoutEve being able to learn the contents of the communication.

Encryption refers to the process of applying a cipher.

Definition (Stego-system)A system which allows Alice and Bob to communicate secretly withoutEve knowing that any secret communication is taking place.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 23 / 54

Steganography models Definitions

DefinitionsThe tools

Definition (Cipher)A system which allows Alice and Bob to communicate secretly withoutEve being able to learn the contents of the communication.

Encryption refers to the process of applying a cipher.

Definition (Stego-system)A system which allows Alice and Bob to communicate secretly withoutEve knowing that any secret communication is taking place.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 23 / 54

Steganography models Definitions

DefinitionsThe tools

Definition (Cipher)A system which allows Alice and Bob to communicate secretly withoutEve being able to learn the contents of the communication.

Encryption refers to the process of applying a cipher.

Definition (Stego-system)A system which allows Alice and Bob to communicate secretly withoutEve knowing that any secret communication is taking place.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 23 / 54

Steganography models Definitions

DefinitionsThe tools

Encryption refers to the process of applying a cipher.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 23 / 54

Steganography models Definitions

DefinitionsThe disciplines

Definition (Steganography)

The study of (and art of developing) stego-systems.

Definition (Cryptography)

A general term encompassing the study of ciphers and othertechnology for secure communications.

Cryptography is more than ciphersDigital signaturesAuthorisation protocolsSteganography

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 24 / 54

Steganography models Definitions

DefinitionsThe disciplines

Definition (Steganography)

The study of (and art of developing) stego-systems.

Definition (Cryptography)

A general term encompassing the study of ciphers and othertechnology for secure communications.

Cryptography is more than ciphersDigital signaturesAuthorisation protocolsSteganography

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 24 / 54

Steganography models Definitions

DefinitionsThe disciplines

Definition (Steganography)

The study of (and art of developing) stego-systems.

Definition (Cryptography)

A general term encompassing the study of ciphers and othertechnology for secure communications.

Cryptography is more than ciphersDigital signaturesAuthorisation protocolsSteganography

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 24 / 54

Steganography models Definitions

DefinitionsThe disciplines

Definition (Steganography)

The study of (and art of developing) stego-systems.

Definition (Cryptography)

A general term encompassing the study of ciphers and othertechnology for secure communications.

Cryptography is more than ciphersDigital signaturesAuthorisation protocolsSteganography

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 24 / 54

Steganography models Definitions

DefinitionsThe disciplines

Definition (Steganography)

The study of (and art of developing) stego-systems.

Definition (Cryptography)

A general term encompassing the study of ciphers and othertechnology for secure communications.

Cryptography is more than ciphersDigital signaturesAuthorisation protocolsSteganography

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 24 / 54

Steganography models Definitions

DefinitionsThe disciplines

Definition (Steganography)

The study of (and art of developing) stego-systems.

Definition (Cryptography)

A general term encompassing the study of ciphers and othertechnology for secure communications.

Cryptography is more than ciphersDigital signaturesAuthorisation protocolsSteganography

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 24 / 54

Steganography models Definitions

DefinitionsThe countermeasures

Definition (Steganalysis)

The art of detecting whether secret communications is taking place ornot.

Definition (Cryptoanalysis)The art of breaking any cryptographic system, most often referring tobreaking ciphers, i.e. to find the contents of secret communications.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 25 / 54

Steganography models Definitions

DefinitionsThe countermeasures

Definition (Steganalysis)

The art of detecting whether secret communications is taking place ornot.

Definition (Cryptoanalysis)The art of breaking any cryptographic system, most often referring tobreaking ciphers, i.e. to find the contents of secret communications.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 25 / 54

Steganography models Definitions

Steganography versus Cryptography

We define Steganography by its objective (control a specificthreat).

We don’t make any assumptions on how it works.

Cryptography includes SteganographyModern cryptography does assume certain principles andmethods

not all Steganography qualifies as modern Cryptography.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 26 / 54

Intro to Matlab

Outline

1 The module

2 Steganography models

3 Intro to Matlab

4 Image and Data representations

5 LSB – The Simplest Stegosystem

6 Readable and Reusable Code

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 27 / 54

Intro to Matlab

Matlab

Matlab (Matrix Laboratory)interpreted programming languageinteractive numerical tool

Particular strengthsGood matrix processing (efficient and syntactically simple)Good libraries for many areas, including image processingRelatively simple for prototyping

(Brief Demo)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 28 / 54

Image and Data representations

Outline

1 The module

2 Steganography models

3 Intro to Matlab

4 Image and Data representations

5 LSB – The Simplest Stegosystem

6 Readable and Reusable Code

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 29 / 54

Image and Data representations The image in the spatial domain

A tiny grayscale example

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 30 / 54

Image and Data representations The image in the spatial domain

A tiny grayscale example

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 30 / 54

Image and Data representations The image in the spatial domain

The image file: pgm/pnm (spatial domain)

P224 242550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 49 97 86 26 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 171 85 54 35 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 22 0 0 52 260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 146 0 0 0 52 260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 146 0 0 0 52 260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 146 0 0 0 12 77 260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 146 0 0 0 49 139 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 146 132 0 0 0 32 94 150 0 0 0 0 0 0 0 0 0 0 0 12 111 122 65 79 99 0 0 0 0 47 230 0 0 0 0 0 0 0 0 0 0 73 111 128 88 22 0 79 0 0 0 0 97 490 0 0 0 0 0 0 0 0 36 146 132 102 26 17 0 0 19 59 0 0 0 97 490 0 0 0 0 0 12 111 122 65 79 19 0 0 0 0 0 0 66 13 0 77 81 00 0 0 0 0 73 111 128 88 22 0 0 0 0 0 0 0 0 26 101 97 103 15 00 0 0 36 146 132 102 26 17 0 0 0 0 0 0 0 0 0 6 37 49 11 0 012 49 142 149 79 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 049 173 77 47 41 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 012 37 6 57 99 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 128 137 70 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 171 49 0 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 33 36 0 0 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 31 / 54

Image and Data representations The image in the spatial domain

Image formats

Distinguish betweenImage format e.g. pixmap (spatial domain)

How the image is represented.File format

How the image data are stored on disk.A file format may contain metadata + image datapnm (netpbm), png, and Microsoft-BMP containpixmap images.TIFF can carry different image formats

JPEG is an image format and a compression algorithmThe JPEG standard does not define a file formatJFIF, EXIF, and TIFF all support JPEG data

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 32 / 54

Image and Data representations The image in the spatial domain

Images in Matlab

Load pixmap image: I = imread (filename)The pixmap is stored as a matrix.

If the file is not a pixmap,then the image is converted (by imread)possible rounding errormetadata are lost (always, also for pixmap formats)

Some stego-systems based on JPEG are vulnerableA JPEG file is converted (decompressed) and recompressed beforeembeddingThe double compression leads to artifacts which can be exploited

You should know which image format you work with

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 33 / 54

Image and Data representations The image in the spatial domain

Data types

A Matlab image are usually eitheruint8: Integers [0, 255]double: Floating point [0, 1]

Any range is possible, but imshow makes assumptionsSuppose img is a uint8 image.Convert: dblimg = double ( img ) (does not change range.What does imshow(dblimg) display?Assumed range [0, 1]; anything > 1 is treated as 1.

imshow(dblimg,[0,255]) lets you define the rangeData hiding often requires type conversion

always remember the range

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 34 / 54

Image and Data representations The image in the spatial domain

Data types

A Matlab image are usually eitheruint8: Integers [0, 255]double: Floating point [0, 1]

Any range is possible, but imshow makes assumptionsSuppose img is a uint8 image.Convert: dblimg = double ( img ) (does not change range.What does imshow(dblimg) display?Assumed range [0, 1]; anything > 1 is treated as 1.

imshow(dblimg,[0,255]) lets you define the rangeData hiding often requires type conversion

always remember the range

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 34 / 54

Image and Data representations The image in the spatial domain

Data types

A Matlab image are usually eitheruint8: Integers [0, 255]double: Floating point [0, 1]

Any range is possible, but imshow makes assumptionsSuppose img is a uint8 image.Convert: dblimg = double ( img ) (does not change range.What does imshow(dblimg) display?Assumed range [0, 1]; anything > 1 is treated as 1.

imshow(dblimg,[0,255]) lets you define the rangeData hiding often requires type conversion

always remember the range

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 34 / 54

Image and Data representations The image in the spatial domain

Data types

A Matlab image are usually eitheruint8: Integers [0, 255]double: Floating point [0, 1]

imshow(dblimg,[0,255]) lets you define the rangeData hiding often requires type conversion

always remember the range

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 34 / 54

Image and Data representations Numbers in Bits

The coefficients in bits

Take a number 217.Written Base 10i.e. 217 = 7 · 100 + 1 · 101 + 2 · 102

Least significant digit: the last/the ones

Same number 21710 = 110110012

Written in Base 2110110012 = 1 ·20 +0 ·21 +0 ·22 +1 ·23 +1 ·24 +0 ·25 +1 ·26 +1 ·27

Least significant bit: the last/the ones

Any base could be used. (8 and 16 are common.)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 35 / 54

Image and Data representations Numbers in Bits

The coefficients in bits

Take a number 217.Written Base 10i.e. 217 = 7 · 100 + 1 · 101 + 2 · 102

Least significant digit: the last/the ones

Same number 21710 = 110110012

Written in Base 2110110012 = 1 ·20 +0 ·21 +0 ·22 +1 ·23 +1 ·24 +0 ·25 +1 ·26 +1 ·27

Least significant bit: the last/the ones

Any base could be used. (8 and 16 are common.)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 35 / 54

Image and Data representations Numbers in Bits

The coefficients in bits

Take a number 217.Written Base 10i.e. 217 = 7 · 100 + 1 · 101 + 2 · 102

Least significant digit: the last/the ones

Same number 21710 = 110110012

Written in Base 2110110012 = 1 ·20 +0 ·21 +0 ·22 +1 ·23 +1 ·24 +0 ·25 +1 ·26 +1 ·27

Least significant bit: the last/the ones

Any base could be used. (8 and 16 are common.)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 35 / 54

Image and Data representations Numbers in Bits

The coefficients in bits

Take a number 217.Written Base 10i.e. 217 = 7 · 100 + 1 · 101 + 2 · 102

Least significant digit: the last/the ones

Same number 21710 = 110110012

Written in Base 2110110012 = 1 ·20 +0 ·21 +0 ·22 +1 ·23 +1 ·24 +0 ·25 +1 ·26 +1 ·27

Least significant bit: the last/the ones

Any base could be used. (8 and 16 are common.)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 35 / 54

Image and Data representations Numbers in Bits

The coefficients in bits

Take a number 217.Written Base 10i.e. 217 = 7 · 100 + 1 · 101 + 2 · 102

Least significant digit: the last/the ones

Same number 21710 = 110110012

Written in Base 2110110012 = 1 ·20 +0 ·21 +0 ·22 +1 ·23 +1 ·24 +0 ·25 +1 ·26 +1 ·27

Least significant bit: the last/the ones

Any base could be used. (8 and 16 are common.)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 35 / 54

Image and Data representations Numbers in Bits

The coefficients in bits

Take a number 217.Written Base 10i.e. 217 = 7 · 100 + 1 · 101 + 2 · 102

Least significant digit: the last/the ones

Same number 21710 = 110110012

Written in Base 2110110012 = 1 ·20 +0 ·21 +0 ·22 +1 ·23 +1 ·24 +0 ·25 +1 ·26 +1 ·27

Least significant bit: the last/the ones

Any base could be used. (8 and 16 are common.)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 35 / 54

Image and Data representations Numbers in Bits

The coefficients in bits

Take a number 217.Written Base 10i.e. 217 = 7 · 100 + 1 · 101 + 2 · 102

Least significant digit: the last/the ones

Same number 21710 = 110110012

Written in Base 2110110012 = 1 ·20 +0 ·21 +0 ·22 +1 ·23 +1 ·24 +0 ·25 +1 ·26 +1 ·27

Least significant bit: the last/the ones

Any base could be used. (8 and 16 are common.)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 35 / 54

Image and Data representations Numbers in Bits

The coefficients in bits

Take a number 217.Written Base 10i.e. 217 = 7 · 100 + 1 · 101 + 2 · 102

Least significant digit: the last/the ones

Same number 21710 = 110110012

Written in Base 2110110012 = 1 ·20 +0 ·21 +0 ·22 +1 ·23 +1 ·24 +0 ·25 +1 ·26 +1 ·27

Least significant bit: the last/the ones

Any base could be used. (8 and 16 are common.)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 35 / 54

Image and Data representations Numbers in Bits

The coefficients in bits

Take a number 217.Written Base 10i.e. 217 = 7 · 100 + 1 · 101 + 2 · 102

Least significant digit: the last/the ones

Same number 21710 = 110110012

Written in Base 2110110012 = 1 ·20 +0 ·21 +0 ·22 +1 ·23 +1 ·24 +0 ·25 +1 ·26 +1 ·27

Least significant bit: the last/the ones

Any base could be used. (8 and 16 are common.)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 35 / 54

Image and Data representations Numbers in Bits

The coefficients in bits

Take a number 217.Written Base 10i.e. 217 = 7 · 100 + 1 · 101 + 2 · 102

Least significant digit: the last/the ones

Same number 21710 = 110110012

Written in Base 2110110012 = 1 ·20 +0 ·21 +0 ·22 +1 ·23 +1 ·24 +0 ·25 +1 ·26 +1 ·27

Least significant bit: the last/the ones

Any base could be used. (8 and 16 are common.)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 35 / 54

Image and Data representations Numbers in Bits

The coefficients in bits

Take a number 217.Written Base 10i.e. 217 = 7 · 100 + 1 · 101 + 2 · 102

Least significant digit: the last/the ones

Same number 21710 = 110110012

Written in Base 2110110012 = 1 ·20 +0 ·21 +0 ·22 +1 ·23 +1 ·24 +0 ·25 +1 ·26 +1 ·27

Least significant bit: the last/the ones

Any base could be used. (8 and 16 are common.)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 35 / 54

Image and Data representations Numbers in Bits

The coefficients in bits

Take a number 217.Written Base 10i.e. 217 = 7 · 100 + 1 · 101 + 2 · 102

Least significant digit: the last/the ones

Same number 21710 = 110110012

Written in Base 2110110012 = 1 ·20 +0 ·21 +0 ·22 +1 ·23 +1 ·24 +0 ·25 +1 ·26 +1 ·27

Least significant bit: the last/the ones

Any base could be used. (8 and 16 are common.)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 35 / 54

Image and Data representations Numbers in Bits

The coefficients in bits

Take a number 217.Written Base 10i.e. 217 = 7 · 100 + 1 · 101 + 2 · 102

Least significant digit: the last/the ones

Same number 21710 = 110110012

Written in Base 2110110012 = 1 ·20 +0 ·21 +0 ·22 +1 ·23 +1 ·24 +0 ·25 +1 ·26 +1 ·27

Least significant bit: the last/the ones

Any base could be used. (8 and 16 are common.)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 35 / 54

Image and Data representations Numbers in Bits

The mod operator

We write m = x mod Nwhen x = y · N + m for some y and 0 ≤ m < N.

i.e. m is the remainder of x when divided by N.

Matlab: m = mod ( x, N )

What does this have to with Least Significant bits?What is the remainder when you divide by 2 (your base)?

lsb = x mod 2

You can extract k bits if you want, y = x mod 2k .And x and y may be matrices (images).

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 36 / 54

Image and Data representations Numbers in Bits

The mod operator

We write m = x mod Nwhen x = y · N + m for some y and 0 ≤ m < N.

i.e. m is the remainder of x when divided by N.

Matlab: m = mod ( x, N )

What does this have to with Least Significant bits?What is the remainder when you divide by 2 (your base)?

lsb = x mod 2

You can extract k bits if you want, y = x mod 2k .And x and y may be matrices (images).

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 36 / 54

Image and Data representations Numbers in Bits

The mod operator

We write m = x mod Nwhen x = y · N + m for some y and 0 ≤ m < N.

i.e. m is the remainder of x when divided by N.

Matlab: m = mod ( x, N )

What does this have to with Least Significant bits?What is the remainder when you divide by 2 (your base)?

lsb = x mod 2

You can extract k bits if you want, y = x mod 2k .And x and y may be matrices (images).

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 36 / 54

Image and Data representations Numbers in Bits

The mod operator

We write m = x mod Nwhen x = y · N + m for some y and 0 ≤ m < N.

i.e. m is the remainder of x when divided by N.

Matlab: m = mod ( x, N )

lsb = x mod 2

You can extract k bits if you want, y = x mod 2k .And x and y may be matrices (images).

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 36 / 54

Image and Data representations Numbers in Bits

The mod operator

We write m = x mod Nwhen x = y · N + m for some y and 0 ≤ m < N.

i.e. m is the remainder of x when divided by N.

Matlab: m = mod ( x, N )

lsb = x mod 2

You can extract k bits if you want, y = x mod 2k .And x and y may be matrices (images).

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 36 / 54

Image and Data representations Numbers in Bits

The mod operator

We write m = x mod Nwhen x = y · N + m for some y and 0 ≤ m < N.

i.e. m is the remainder of x when divided by N.

Matlab: m = mod ( x, N )

lsb = x mod 2

You can extract k bits if you want, y = x mod 2k .And x and y may be matrices (images).

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 36 / 54

Image and Data representations Numbers in Bits

Matlab Demo: image

pic = imread ( ’picfile.pnm’ )

whos pic

imshow ( pic ) ;

lsbpic = mod ( pic, 2 ) ;

figure ; imshow ( lsbpic, [ 0 1 ] ) ;

pic7bit = pic - lsbpic

figure ; imshow ( pic7bit ) ;

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 37 / 54

Image and Data representations Numbers in Bits

Matlab Demo: image

pic = imread ( ’picfile.pnm’ )

whos pic

imshow ( pic ) ;

lsbpic = mod ( pic, 2 ) ;

figure ; imshow ( lsbpic, [ 0 1 ] ) ;

pic7bit = pic - lsbpic

figure ; imshow ( pic7bit ) ;

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 37 / 54

Image and Data representations Numbers in Bits

Matlab Demo: image

pic = imread ( ’picfile.pnm’ )

whos pic

imshow ( pic ) ;

lsbpic = mod ( pic, 2 ) ;

figure ; imshow ( lsbpic, [ 0 1 ] ) ;

pic7bit = pic - lsbpic

figure ; imshow ( pic7bit ) ;

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 37 / 54

Image and Data representations Characters in Numbers

The message

Message: Hello World!

0 1 2 3 4 5 6 7 8 9 A B C D E F0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US2 SP ! " # $ % & ’ ( ) * + , - . /3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?4 @ A B C D E F G H I J K L M N O5 P Q R S T U V W X Y Z [ \ ] ^ _6 ‘ a b c d e f g h i j k l m n o7 p q r s t u v w x y z { | } ~ DEL

H e l l o W o r l d !48 65 6C 6C 6F 20 57 6F 72 6C 64 21

100 1000 110 0101 110 1100 110 1100 110 1111 010 0000 101 0111 110 1111 111 0010 110 1100 110 0100 010 0001

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 38 / 54

Image and Data representations Characters in Numbers

Message as a binary image

H e l l o W o r l d !48 65 6C 6C 6F 20 57 6F 72 6C 64 21

100 1000 110 0101 110 1100 110 1100 110 1111 010 0000 101 0111 110 1111 111 0010 110 1100 110 0100 010 0001

hello.pnm

P112 71 1 1 1 1 0 1 1 1 1 1 00 1 1 1 1 1 0 1 1 1 1 10 0 0 0 0 0 1 0 1 0 0 01 0 1 1 1 0 0 1 0 1 0 00 1 1 1 1 0 1 1 0 1 1 00 0 0 0 1 0 1 1 1 0 0 00 1 0 0 1 0 1 1 0 0 0 1

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 39 / 54

Image and Data representations Characters in Numbers

Matlab Demo: message

msg = ’Hello World!’

nummsg = double ( msg )

binmsg = de2bi ( nummsg, 7 )

imshow ( binmsg, [0 1] )

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 40 / 54

LSB – The Simplest Stegosystem

Outline

1 The module

2 Steganography models

3 Intro to Matlab

4 Image and Data representations

5 LSB – The Simplest Stegosystem

6 Readable and Reusable Code

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 41 / 54

LSB – The Simplest Stegosystem Basic LSB

LSB Steganography

LSB Steganography replaces the LSB plane with message data.Using the first n pixels

Binary message: binmsgPixmap: piclsbpic = mod ( pic, 2 )

n = length ( binmsg(:) )

pic(1:n) = pic(1:n) - lsbpic(1:n) + binmsg(1:n)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 42 / 54

LSB – The Simplest Stegosystem Basic LSB

LSB Steganography

LSB Steganography replaces the LSB plane with message data.Using the first n pixels

Binary message: binmsgPixmap: piclsbpic = mod ( pic, 2 )

n = length ( binmsg(:) )

pic(1:n) = pic(1:n) - lsbpic(1:n) + binmsg(1:n)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 42 / 54

LSB – The Simplest Stegosystem Basic LSB

LSB Steganography

LSB Steganography replaces the LSB plane with message data.Using the first n pixels

Binary message: binmsgPixmap: piclsbpic = mod ( pic, 2 )

n = length ( binmsg(:) )

pic(1:n) = pic(1:n) - lsbpic(1:n) + binmsg(1:n)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 42 / 54

LSB – The Simplest Stegosystem Basic LSB

Matrix indexing

Dual representation in matlabExternal representation: two-dimensional n ×m

pic(i,j) refers to this representationInternal representation: one-dimensional

pic(i) refers to this representationpic(:) is all elements, in one dimension

Column vectorAll columns concatenated as one column

Matrices can be reshapedfoobar = reshape ( pic, [n/2,m*2] )One-dimensional representation does not change.

pic(1:n) = pic(1:n) - lsbpic(1:n) + binmsg(1:n)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 43 / 54

LSB – The Simplest Stegosystem Basic LSB

Matrix indexing

Dual representation in matlabExternal representation: two-dimensional n ×m

pic(i,j) refers to this representationInternal representation: one-dimensional

pic(i) refers to this representationpic(:) is all elements, in one dimension

Column vectorAll columns concatenated as one column

Matrices can be reshapedfoobar = reshape ( pic, [n/2,m*2] )One-dimensional representation does not change.

pic(1:n) = pic(1:n) - lsbpic(1:n) + binmsg(1:n)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 43 / 54

LSB – The Simplest Stegosystem Basic LSB

Matrix indexing

Dual representation in matlabExternal representation: two-dimensional n ×m

pic(i,j) refers to this representationInternal representation: one-dimensional

pic(i) refers to this representationpic(:) is all elements, in one dimension

Column vectorAll columns concatenated as one column

Matrices can be reshapedfoobar = reshape ( pic, [n/2,m*2] )One-dimensional representation does not change.

pic(1:n) = pic(1:n) - lsbpic(1:n) + binmsg(1:n)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 43 / 54

LSB – The Simplest Stegosystem Basic LSB

Matrix indexing

Dual representation in matlabExternal representation: two-dimensional n ×m

pic(i,j) refers to this representationInternal representation: one-dimensional

pic(i) refers to this representationpic(:) is all elements, in one dimension

Column vectorAll columns concatenated as one column

pic(1:n) = pic(1:n) - lsbpic(1:n) + binmsg(1:n)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 43 / 54

LSB – The Simplest Stegosystem Basic LSB

Matrix indexing

Dual representation in matlabExternal representation: two-dimensional n ×m

pic(i,j) refers to this representationInternal representation: one-dimensional

pic(i) refers to this representationpic(:) is all elements, in one dimension

Column vectorAll columns concatenated as one column

pic(1:n) = pic(1:n) - lsbpic(1:n) + binmsg(1:n)

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 43 / 54

LSB – The Simplest Stegosystem Basic LSB

Loops in Matlab

Avoid loops (for) in Matlab,There is almost always a faster way to do it.

Operations are defined on matrices

for i=1:M,for j=1:N,C(i,j) = A(i,j) + C(i,j) ;

endend

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 44 / 54

LSB – The Simplest Stegosystem Basic LSB

Loops in Matlab

Avoid loops (for) in Matlab,There is almost always a faster way to do it.

Operations are defined on matrices

C = A + B ;

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 44 / 54

LSB – The Simplest Stegosystem Merits and flaws

Is LSB a good idea?

Simple; easy to implementLittle distortion in the spatial domainSecurity: assumes that LSB-s are

RandomIndependent of higher-order bitsIndependent of other pixels

Several authors made this assumption independentlyIs it true?Too simple; easy to detect

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 45 / 54

LSB – The Simplest Stegosystem Merits and flaws

Is LSB a good idea?

Simple; easy to implementLittle distortion in the spatial domainSecurity: assumes that LSB-s are

RandomIndependent of higher-order bitsIndependent of other pixels

Several authors made this assumption independentlyIs it true?Too simple; easy to detect

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 45 / 54

LSB – The Simplest Stegosystem Merits and flaws

Is LSB a good idea?

Simple; easy to implementLittle distortion in the spatial domainSecurity: assumes that LSB-s are

RandomIndependent of higher-order bitsIndependent of other pixels

Several authors made this assumption independentlyIs it true?Too simple; easy to detect

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 45 / 54

LSB – The Simplest Stegosystem Merits and flaws

Is LSB a good idea?

Simple; easy to implementLittle distortion in the spatial domainSecurity: assumes that LSB-s are

RandomIndependent of higher-order bitsIndependent of other pixels

Several authors made this assumption independentlyIs it true?Too simple; easy to detect

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 45 / 54

LSB – The Simplest Stegosystem Merits and flaws

Is LSB a good idea?

Simple; easy to implementLittle distortion in the spatial domainSecurity: assumes that LSB-s are

RandomIndependent of higher-order bitsIndependent of other pixels

Several authors made this assumption independentlyIs it true?Too simple; easy to detect

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 45 / 54

LSB – The Simplest Stegosystem Merits and flaws

Is LSB a good idea?

Simple; easy to implementLittle distortion in the spatial domainSecurity: assumes that LSB-s are

RandomIndependent of higher-order bitsIndependent of other pixels

Several authors made this assumption independentlyIs it true?Too simple; easy to detect

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 45 / 54

LSB – The Simplest Stegosystem Merits and flaws

Is LSB a good idea?

Simple; easy to implementLittle distortion in the spatial domainSecurity: assumes that LSB-s are

RandomIndependent of higher-order bitsIndependent of other pixels

Several authors made this assumption independentlyIs it true?Too simple; easy to detect

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 45 / 54

LSB – The Simplest Stegosystem Merits and flaws

Is LSB a good idea?

Simple; easy to implementLittle distortion in the spatial domainSecurity: assumes that LSB-s are

RandomIndependent of higher-order bitsIndependent of other pixels

Several authors made this assumption independentlyIs it true?Too simple; easy to detect

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 45 / 54

LSB – The Simplest Stegosystem Merits and flaws

Is LSB a good idea?

Simple; easy to implementLittle distortion in the spatial domainSecurity: assumes that LSB-s are

RandomIndependent of higher-order bitsIndependent of other pixels

Several authors made this assumption independentlyIs it true?Too simple; easy to detect

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 45 / 54

LSB – The Simplest Stegosystem Merits and flaws

Random locations

Basic LSB uses first n pixelsA lot of structure to fixed (known) locations

Improvement: use n pseudo-random pixelsdetermined by secret key shared by sender and receiverno structure in the choice of bits

⇒ harder to steganalysestill some structure in the changes

⇒ steganalysis is still possible

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 46 / 54

LSB – The Simplest Stegosystem Merits and flaws

Random locations

Basic LSB uses first n pixelsA lot of structure to fixed (known) locations

Improvement: use n pseudo-random pixelsdetermined by secret key shared by sender and receiverno structure in the choice of bits

⇒ harder to steganalysestill some structure in the changes

⇒ steganalysis is still possible

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 46 / 54

LSB – The Simplest Stegosystem Merits and flaws

Random locations

Basic LSB uses first n pixelsA lot of structure to fixed (known) locations

Improvement: use n pseudo-random pixelsdetermined by secret key shared by sender and receiverno structure in the choice of bits

⇒ harder to steganalysestill some structure in the changes

⇒ steganalysis is still possible

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 46 / 54

LSB – The Simplest Stegosystem Merits and flaws

Random locations

Basic LSB uses first n pixelsA lot of structure to fixed (known) locations

⇒ harder to steganalysestill some structure in the changes

⇒ steganalysis is still possible

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 46 / 54

Readable and Reusable Code

Outline

1 The module

2 Steganography models

3 Intro to Matlab

4 Image and Data representations

5 LSB – The Simplest Stegosystem

6 Readable and Reusable Code

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 47 / 54

Readable and Reusable Code Functions

What are functions?

FunctionInput Output

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 48 / 54

Readable and Reusable Code Functions

What are functions?

FunctionInput Output

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 48 / 54

Readable and Reusable Code Functions

What are functions?

Function

Input 1 Output 1

Input 2 Output 2

......

Input n Output m

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 48 / 54

Readable and Reusable Code Functions

Why do we use functions?

Break down programs into smaller piecesEach piece

has a clear purposeis easy to understand

Black boxesOnce designed, we don’t care about the contentsAtomic piecesreusablecan be combined in many ways

Coursework should be made clean and tidyand that requires functions.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 49 / 54

Readable and Reusable Code Functions

Why do we use functions?

Break down programs into smaller piecesEach piece

has a clear purposeis easy to understand

Black boxesOnce designed, we don’t care about the contentsAtomic piecesreusablecan be combined in many ways

Coursework should be made clean and tidyand that requires functions.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 49 / 54

Readable and Reusable Code Functions

Why do we use functions?

Break down programs into smaller piecesEach piece

has a clear purposeis easy to understand

Black boxesOnce designed, we don’t care about the contentsAtomic piecesreusablecan be combined in many ways

Coursework should be made clean and tidyand that requires functions.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 49 / 54

Readable and Reusable Code Functions

Why do we use functions?

Break down programs into smaller piecesEach piece

has a clear purposeis easy to understand

Coursework should be made clean and tidyand that requires functions.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 49 / 54

Readable and Reusable Code Functions

Why do we use functions?

Break down programs into smaller piecesEach piece

has a clear purposeis easy to understand

Coursework should be made clean and tidyand that requires functions.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 49 / 54

Readable and Reusable Code Functions

How do we use functions?

X = imread ( ’picfile.pnm’ )imread is a function’picfile.pnm’ is an input parameterthe function outputs an image, which you store in X

The function is defined in a file imread.mYou can open it with edit imread.mYou needn’t know where the file is stored

You can create your own functions.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 50 / 54

Readable and Reusable Code Functions

How do we use functions?

X = imread ( ’picfile.pnm’ )imread is a function’picfile.pnm’ is an input parameterthe function outputs an image, which you store in X

The function is defined in a file imread.mYou can open it with edit imread.mYou needn’t know where the file is stored

You can create your own functions.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 50 / 54

Readable and Reusable Code Functions

How do we make functions?

use any text editor (e.g. vi(1)).Matlab has a built-in editor (which I have hardly used)

name: functionname.m (e.g. lsbget.m)put in current directoryRecognised by first line:

function [out1,out2] = functionname ( in1, in2 )

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 51 / 54

Readable and Reusable Code Functions

How do we make functions?What it looks like

function [ binmsg ] = lsbget ( X, L )

% Recover a message embedded by lsbhide.

S = size ( X ) ; % Image format

if ( nargin < 2 ),% If only one parameterL = prod ( S ) ; % then set L to size of X.

end

binmsg = mod ( X(1:L), 2 ) ; % Extract LSB layer

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 52 / 54

Readable and Reusable Code Comments and Documentation

Comments and Documentation

Percentage marks identify commentstext from % to the end of the line is ignored

First block of comments is a help textdisplayed by helpshould explain the usage

First comment line is a brief descriptionused by lookfor

Other comments explains your code.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 53 / 54

Readable and Reusable Code Comments and Documentation

Summary

Spend time to get used to MatlabDo the ExercisesMake your own implementation of LSB embedding

Core Reading

Digital Image Processing using Matlab by Gonzalez, Woods, Eddins.Chapter 2.10.

Dr Hans Georg Schaathun Basics of Steganography Spring 2009 – Week 1 54 / 54

Related Documents