JSteg and Outguess Biswapati Jana Introduction l The
JSteg and Outguess Biswapati Jana
Introduction l The JSteg algorithm was developed by Derek Upham and is essentially a carbon copy of the Hide & Seek algorithm because it employs sequential least significant bit embedding. l JSteg algorithm only differs from the Hide & Seek algorithm because it embeds the message data within the LSBs of the DCT coefficients of c, rather than its pixel values.
Overview Before the embedding process begins, the image is converted to the DCT domain in 8 x 8 blocks such that the values of ci switch from pixel values to DCT coefficients. l In order for the values to be presented as whole numbers, each 8 x 8 block is quantised according to a Quantisation Table Q. l The result is where the embedding algorithm operates. l
DCT l An example of an 8 x 8 DCT block is shown in Figure.
DCT We should also note the two types of coefficient that we see in every 8 x 8 block: DC, and AC. l The value at the top left of each 8 x 8 block is known as the DC coefficient. l It contains the mean value of all the other coefficients in the block, referred to as the AC coefficients. l
JSTEG ALGORITHM The DC coefficients are highly important to each block as they give a good estimate as to the level of detail in the block. l Changing the value of the DC coefficient will also change many of the values of the AC coefficients, and this will create a visual discrepancy when the image is converted back to the spatial domain and viewed normally. l For this reason, the JSteg algorithm does not embed message data over any of the DC coefficients for every block. In addition to this, the algorithm also does not permit embedding on any AC coefficient equal to 0 or 1. l
Encoding JSTEG ALGORITHM • Line 4 shows that the algorithm avoids embedding on the DC coefficients, and also any AC coefficient equal to 0 or 1. • Line 8 shows an alternative method for calculating the LSB value of the coefficient by using mod 2. The result is replaced with the value in mi.
Encoding JSTEG ALGORITHM Again, no key is used for this algorithm. l The security of the JSteg algorithm lies in the algorithm itself. l The main difficulty of not using a key is when we try to determine l(s) when extracting the message. l So the loop is typically run for the entire duration of the image to ensure that all of the message is extracted. This is certainly the case for the Jsteg algorithm as we will see in the decoding process. l
JSTEG ALGORITHM Fig 3 a: Histogram of JPEG coefficients after quantization Fig 3 b: JSTEG equalises pairs of coefficients
Decoding (JSTEG ALGORITHM) l The decoding process functions by converting the stegogramme s to the DCT domain. l It then avoids the same coefficient values that the encoding algorithm avoids, and retrieves the hidden message from the LSBs of all the other coefficients sequentially (line 7).
Out Guess 0. 1 l The first version of Out. Guess, designed by Neils Provos, improved the JSteg algorithm by scattering the embedding locations over the entire image according to a PRNG on image c derived using seed k. l This is very similar to the way that the randomised embedding approach improved the Hide & Seek algorithm.
Encoding Out Guess 0. 1 The encoding process of the Out. Guess 0. 1 algorithm is essentially a combination of both the randomised Hide & Seek algorithm and the JSteg algorithm. l The coefficients are shuffled into a seemingly random order using a PRNG according to a seed. The message data is then embedding using the same technique as for JSteg before finally inversing the shuffle such that the coefficients are back in the correct positions. l The image is then converted back to the spatial domain and thus the stegogramme s is produced. l
Encoding Out Guess 0. 1 The algorithm still avoids embedding within the DC coefficient, and any AC coefficient equal to either 1 or 0. This is exactly the same methodology that we saw with the Jsteg algorithm.
Decoding Out Guess 0. 1 The stegogramme s is converted to the DCT domain, before being shuffled using the same k that was used in the encoding process. l We then retrieve the message data by extracting the LSBs from all the coefficients whose values are neither a DC value, nor a 0 or a 1. Algorithm shows the pseudocode for the decoding process of the Out. Guess 0. 1 algorithm. l
Decoding Out Guess 0. 1
Out Guess 0. 2 • When the Out. Guess 0. 1 algorithm was developed, it was considered much more secure than the Hide & Seek and JSteg algorithms because it not only embedded the information in a more discrete area of the image (DCT coefficients), it also scattered the locations of embedding by using a PRNG to shuffle the ordering of the coefficients. • But steganalysts were able to find a fatal flaw in the technique that left statistical artifacts in the stegogrammes.
Out Guess 0. 2 As a result, Neils Provos created a revised version of the Out. Guess 0. 1 algorithm, called Out. Guess 0. 2. l It was written in an attempt to ensure that the statistical properties of the cover image c were maintained after embedding, such that stegogramme s looks statistically similar to a clean image. l In Out. Guess 0. 2, corrections are made to the coefficients such that they appear similar to that of a clean image in terms of frequencies of the values. This is known as statistics-aware steganography. l
The End Thanks for Coming!
- Slides: 18