Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
1Activity
0 of .
Results for:
No results containing your search query
P. 1
Steganography and Error-Correcting Codes

Steganography and Error-Correcting Codes

Ratings: (0)|Views: 80 |Likes:
Published by ijcsis
In this work, We study how we used the error correcting codes in steganographic protocols (sometimes also called the “matrix encoding”), which uses a linear code as an ingredient. Among all codes of a fixed block length and fixed dimension (and thus of a fixed information rate), an optimal code is one that makes most of the maximum length embeddable (MLE). the steganographic protocols are close in error-correcting codes. We will clarify this link, which will lead us to a bound on the maximum capacity that can have a steganographic protocol and give us a way to build up optimal steganographic protocols .
In this work, We study how we used the error correcting codes in steganographic protocols (sometimes also called the “matrix encoding”), which uses a linear code as an ingredient. Among all codes of a fixed block length and fixed dimension (and thus of a fixed information rate), an optimal code is one that makes most of the maximum length embeddable (MLE). the steganographic protocols are close in error-correcting codes. We will clarify this link, which will lead us to a bound on the maximum capacity that can have a steganographic protocol and give us a way to build up optimal steganographic protocols .

More info:

Published by: ijcsis on Dec 04, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

12/04/2010

pdf

text

original

 
Steganography and Error-Correcting Codes
M.B. Ould MEDENI and El Mamoun SOUIDI
Laboratory of Mathematic Informatics and ApplicationsUniversity Mohammed V-Agdal, Faculty of SciencesRabat ,BP 1014, MoroccoEmail : sbaimedeni@yahoo.fr, souidi@fsr.ac.ma
 Abstract
—In this work, We study how we used the error-correcting codes in steganographic protocols (sometimes alsocalled the ”matrix encoding”), which uses a linear code as aningredient. Among all codes of a fixed block length and fixeddimension (and thus of a fixed information rate), an optimalcode is one that makes most of the maximum length embeddable(MLE). the steganographic protocols are close in error-correctingcodes. We will clarify this link, which will lead us to a bound onthe maximum capacity that can have a steganographic protocoland give us a way to build up optimal steganographic protocols
Keywords:
Steganography, Error-correcting code, averagedistortion, matrix encoding, embeding efficient.I. I
NTRODUCTION
The goal of digital steganography is to modify a digitalobject (cover) to encode and conceal a sequence of bits(message) to facilitate covert communication. This processis fundamentally different from cryptography, where theexistence of a secret message may be suspected by anyonewho can observe the scrambled ciphertext while it iscommunicated.A common technique in steganography is to embed thehidden message into a larger cover object (such as a digitalimage, for example) by slightly distorting the cover object ina way that on one hand makes it possible for the intendedrecipient to extract the hidden message, but on the otherhand makes it very hard for everybody else to detect thedistortion of the cover object (i.e., to detect the existence of the hidden message). The amount of noise that is naturally(inherently) present in the cover object determines the amountof distortion that can be introduced into the cover objectbefore the distortion becomes detectable.An interesting steganographic method is known as matrixencoding, introduced by Crandall [2]. Matrix encodingrequires the sender and the recipient to agree in advanceon a parity check matrix
, and the secret message is thenextracted by the recipient as the syndrome (with respect to
)of the received cover object. This method was made popularby Westfeld [1], who incorporated a specific implementationusing Hamming codes in his F5 algorithm, which can embed tbits of message in
2
t
1
cover symbols by changing, at most,one of them. Matrix encoding using linear codes (syndromecoding) is a general approach to improving embeddingefficiency of steganographic schemes. The covering radius of the code corresponds to the maximal number of embeddingchanges needed to embed any message [8]. Steganographers,however, are more interested in the average number of embedding changes rather than the worst case. In fact, theconcept of embedding efficiency-the average number of bitsembedded per embedding change-has been frequently usedin steganography to compare and evaluate performance of steganographic schemes.There are two parameters which help to evaluate theperformance of a steganographic protocol
[
n,k,ρ
]
over acover message of 
symbols : the average distortion
D
=
R
a
,where
R
a
is the expected number of changes over uniformlydistributed messages; and the embedding rate
=
t
, whichis the amount of bits that can be hidden in a cover message.In general, for the same embedding rate a method is betterwhen the average distortion is smaller.The remainder of the paper is organized as follows. Section2 gives a brief introduction to Error-correcting Codes. InSection 3 we introduces the relations between error-correctingcodes and steganography.We construct our approach and re-port on experimental results in section 4. Section 5 gives aconclusion.II. B
ASICS
O
F
C
ODING
T
HEORY
We now review some elementary concepts from codingtheory that are relevant for our study. A good introductorytext to this subject is, for example, [7]. Throughout the text,boldface symbols denote vectors or matrices. A binary code
is any subset of the space of all
n
-bit column vectors
x
= (
x
1
,...,x
n
)
{
0
,
1
}
n
. The vectors in
are calledcodewords. The set
{
0
,
1
}
n
forms a linear vector space if we define the sum of two vectors and a multiplication of avector by scalar using the usual arithmetics in the finite field
GF 
(2)
; we will denote this field by
2
. For any
C,D
n
2
and vector
x
,
+
D
=
{
y
n
2
|
y
=
c
+
d,c
C,d
D
}
;
x
+
=
{
y
n
2
|
y
=
x
+
c,c
}
. The Hamming weight
w
of a vector
x
is defined as the number of ones in
x
. Thedistance between two vectors
x
and
y
is the Hamming weightof their difference
d
(
x,y
) =
w
(
x
y
)
. For any
x
and apositive real number
r
, we denote as
B
(
x,r
)
the ball withcenter
x
and radius
r
,
B
(
x,r
) =
{
y
n
2
|
d
(
x,y
)
r
}
.We also define the distance between
x
and set
n
2
as
d
(
x,
) =
min
c
d
(
x,c
)
. The covering radius
R
of 
isdefined as
R
=
max
x
n
2
d
(
x,
)
. The average distance tocode
, defined as
R
a
= 2
n
x
n
2
d
(
x,
)
, is the average
(IJCSIS) International Journal of Computer Science and Information Security,Vol. 8, No. 8, November 2010147http://sites.google.com/site/ijcsis/ISSN 1947-5500
 
distance between a randomly selected vector from
n
2
andthe code
. Clearly
R
a
R
.Linear codes are codes for which
is a linear vectorsubspace of 
n
2
. If 
has dimension
k
, we call
a linearcode of length
n
and dimension
k
(and codimension
n
k
),or we say that
is an
[
n,k
]
code. Each linear code
of dimension
k
has a basis consisting of 
k
vectors. Writing thebasis vectors as rows of an
k
×
n
matrix
G
, we obtain agenerator matrix of 
. Each codeword can be written as alinear combination of rows from
G
. There are
2
k
codewordsin an
[
n,k
]
code. Given
x,y
n
2
, we define their dot product
x.y
=
x
1
y
1
+
x
2
y
2
+
...
+
x
n
y
n
, all operations in
GF 
(2)
. Wesay that
x
and
y
are orthogonal if 
x.y
= 0
. Given a code
,the dual code of 
, denoted as
, is the set of all vectors
x
that are orthogonal to all vectors in
. The dual code of a
[
n,k
]
code is a
[
n,n
k
]
code with an
(
n
k
)
×
n
generatormatrix
with the property that
Hx
= 0
x
C.
(1)The matrix
is called the parity check matrix of 
. For any
x
n
2
, the vector
s
=
Hx
is called the syndrome of 
x
. Foreach syndrome
s
n
k
2
, the set
(
s
) =
{
x
n
2
|
Hx
=
s
}
is called a coset. Note that
(0) =
. Obviously, cosetsassociated with different syndromes are disjoint. Also, fromelementary linear algebra we know that every coset can bewritten as
(
s
) =
x
+
, where
x
(
s
)
arbitrary. Thus,there are
2
n
k
disjoint cosets, each consisting of 
2
k
vectors.Any member of the coset
(
s
)
with the smallest Hammingweight is called a coset leader and will be denoted as
e
L
(
s
)
.
1) Lemma:
Given a coset
(
s
)
, for any
x
(
s
)
,
d
(
x,
) =
w
(
e
L
(
s
)
. Moreover, if 
d
(
x,
) =
d
(
x,c
)
for some
c
, the vector
x
c
is a coset leader.
Proof 
:
d
(
x,
) =
min
c
w
(
x
c
) =
min
y
(
s
)
w
(
y
) =
w
(
e
L
(
s
))
. The second equality follows from the fact that if 
c
goes through the code
,
x
c
goes through all members of the coset
(
s
)
.
2) Lemma:
If 
is an
[
n,k
]
code with a
(
n
k
)
×
n
paritycheck matrix
and covering radius
R
, then any syndrome
s
n
k
2
can be written as a sum of at most
R
columnsof 
and
R
is the smallest such number. Thus, we can alsodefine the covering radius as the maximal weight of all cosetleaders.
Proof 
: Any
x
n
2
belongs to exactly one coset
(
s
)
andfrom Lemma 1 we know that
d
(
x,
) =
w
(
e
L
(
s
))
. But theweight
w
(
e
L
(
s
))
is the smallest number of columns in
thatmust be added to obtain
s
.III. L
INEAR
C
ODES FOR
S
TEGANOGRAPHY
The behavior of a steganographic algorithm can be sketchedin the following way:1) a cover-medium is processed to extract a sequence of symbols
v
, sometimes called cover-data;2)
v
is modified into
s
to embed the message
m
;
s
issometimes called the stego-data;3) modifications on
s
are translated on the cover-mediumto obtain the stego-medium.Here, we assume that the detectability of the embeddingincreases with the number of symbols that must be changedto go from
v
to
s
( [5] for some examples of this framework).Syndrome coding deals with this number of changes. Thekey idea is to use some syndrome computation to embed themessage into the cover-data. In fact, such a scheme uses alinear code
, more precisely its cosets, to hide
m
. A word
s
hides the message
m
if 
s
lies in a particular coset of 
, relatedto
m
. Since cosets are uniquely identified by the so-calledsyndromes, embedding/hiding consists exactly in searching
s
with syndrome
m
, close enough to
v
.
 A. Matrix Encoding
We first set up the notation and describe properly the matrixencoding framework and its inherent problems. Let
v
nq
denote the cover-data and
m
rq
the message. We arelooking for two mappings, embedding
Emb
and extraction
Ext
, such that
(
v,m
)
nq
×
rq
,Ext
(
Emb
(
v,m
)) =
m.
(2)
(
v,m
)
nq
×
rq
,d
(
v,Emb
(
v,m
))
T.
(3)Equation (2) means that we want to recover the message inall cases; (3) means that we authorize the modification of atmost
coordinates in the vector
v
.From Error Correcting Codes (Section 2), it is quite easy toshow that the scheme defined by
Emb
(
v,m
) =
v
+
D
(
m
(
v
))
(4)
Ext
(
y
) =
(
y
) =
y
×
t
.
(5)
D
and
mean respectively the decoding function and thefunction of the syndrome. enables to embed messages of length
r
=
n
k
in a cover-data of length
n
, while modifyingat most
=
R
elements of the cover-data.The parameter
n
kR
represents the embedding efficiency, thatis, the number of embedded symbols per embedding changes.Linking symbols with bits is not simple, as naive solutionslead to bad results in terms of efficiency. For example, if elements of 
q
are viewed as blocks of 
L
bits, modifying asymbol roughly leads to
L
2
bit flips on average and
L
for theworst case.A problem raised by the matrix encoding, as presentedabove, is that any position in the cover-data
v
can be changed.In some cases, it is more reasonable to keep some coordinatesunchanged because they would produce too big artifacts in thestego-data.
(IJCSIS) International Journal of Computer Science and Information Security,Vol. 8, No. 8, November 2010148http://sites.google.com/site/ijcsis/ISSN 1947-5500

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->