160 likes | 272 Views
A Novel steganographic method for JPEG images by Vasiliy Sachnev. Introduction JPEG compression Steganography Block based steganography method (F5) Improved matrix encoding Experimental results Conclusion. JPEG compression. Introduction. JPEG steganography:.
E N D
A Novel steganographic method for JPEG imagesby Vasiliy Sachnev Introduction JPEG compression Steganography Block based steganography method (F5) Improved matrix encoding Experimental results Conclusion
Introduction JPEG steganography:
Matrix Encoding (F5) Matrix encoding allows to hide n bits of data to stream of 2n-1 coefficients (S) by modifying one coefficient. ME schemes: (m, 2m-1), examples (2, 3) (3, 7) (4, 15) 1) Get stream of non-zero DCT coefficients: 1, -1, 2, 3, 1, -1, -3, 1, 8, 3, -1, -1, -1, 2, 1, 1, 1, 2, 3, 1, 12,…, N 2) Compute stream of corresponding informative bits b: 1, -1, 2, 3, 1, -1, -3, 1, 8, 3, -1, -1, -1, 2, 1, 1, 1, 2, 3, 1, 12, … 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, … 3) Define the matrix encoding scheme (n, 2n-1) such as, where C is the size of hidden message.
Matrix encoding(F5) Assume that the ME scheme is(3,7). Hidden message (M) is (0 0 1). Stream of DCT coefficients (D) and stream of informative bits (S) are (3, -1, 2, 1, 1, -1, -3) and (1, 0, 0, 1, 1, 0, 0) respectively. For embedding message M to S one coefficient from D has to be modified. Compute necessary position (P={p1, p2, p3}) : S = {a1, a2, a3, a4,a5,a6,a7} 1) Compute syndrome O = {o1, o2, o3} o1 = xor(a4,a5,a6,a7) o2 = xor(a2,a3,a6,a7) o3 = xor(a1,a3,a5,a7) 2) Position (P) in binary representation is computed as: P = xor(O,M)
Matrix Encoding (F5), example Hiding message M (0 0 1) to (3, -1, 2, 1, 1, -1, -3) or (1, 0, 0, 1, 1, 0, 0) • Get syndrome : o1 = xor(a4,a5,a6,a7)=xor(1,1,0,0) = 0 o2 = xor(a2,a3,a6,a7)=xor(0,0,0,0) = 0 o3 = xor(a1,a3,a5,a7)=xor(1,0,1,0) = 0 • Get position: P = xor(M,O) = {xor(0,0), xor(0,0), xor(1,0)} = {0, 0, 1}. P10 = 1 • Get stream of modified coefficients and informative bits (2(4), -1, 2, 1, 1, -1, -3) and (0, 0, 0, 1, 1, 0, 0) • Verification (get syndrome): (0, 0, 0, 1, 1, 0, 0) m1 = xor(a4,a5,a6,a7)=xor(1,1,0,0) = 0 m2 = xor(a2,a3,a6,a7)=xor(0,0,0,0) = 0 m3 = xor(a1,a3,a5,a7)=xor(0,0,1,0) = 1
Modified matrix encoding Each 1 flip solution P can be replaced to floor(n/2) 2 flips solutions P1, P2, such that P = xor(P1, P2). Example: P = 510 = 01012 P1P2 0100 0001 0110 0011 0111 0010 1000 1101 1100 1001 1111 1010 3 flips solution is also possible: P = xor(P1, P2, P3)
Overlapped matrix encoding Original ME: Overlapped ME: I
Overlapped matrix encoding Assume that A and B are the positions to flip for block 1 and 2. (a1, a2), (b1,b2), (a11,a12,a13) or (b11,b12,b13) are the numbers such that A = xor(a1,a2) = xor (a11,a12,a13) , and B = xor(b1,b2) = xor (b11,b12,b13) B’ is a position for block 2, if A, (a1 or a2), or (a11 or a12 or a13) belong to I . B’ = xor(b’1,b’2) = xor (b’11,b’12,b’13) 1 flip solution: A = B, (A,B) ϵ I 2 flips solution: (A,B), (a1,a2 = B) or (b’1 = A, b’2) 3 flips solution: (a1,a2,B) , (a1,a2 = b’1,b’2), (A, b1 , b2) or (a11,a12 = b’1,a13 = b’2) , (a1 = b’11,a2 = b’12 ,b’13) 4 flips solution: (a1,a2,b1,b2), (a11,a12,a13 = b’1,b’2) , (a11,a12 = b’11,a13 = b’12, b’13) , (a1,a2 = b’11,b’12,b’13)
Example: 1 2 3 4 5 6 7 8 9 10 11 Assume that A = 4 and B = 2: Possible solutions: (2, 6) 2 = 010, 6 = 110, xor(010,110) = 100 = 4. Coefficient 6 has index 2 for block 2. (B = 2) (4,9,11), A = 4, 9th and 11th coefficients have the indexes 5 and 7 correspondingly. Thus, 5 = 101, 7 = 111, xor(101,111) = 010 =2.
Insert - Remove (IR) approach The stream of non-rounded AC coefficients: 1.45,0.21, 0.35 , 1.02, -0.01, -0.28, -5.12, 9.87, -0.45,0.02, 1.89, -0.85, 4.01, -8.74, -6.04, 1.55, 3.11, -10.34, 5.04 Hidden data: m1=101, m2=100 Assume that the candidates for inserting are the AC coefficients belonging to the (0.25, 0.5) and (-0.5, -0.25). 0.35, -0.28, -0.45 are the candidates for inserting (cI). 1.45, 1.02, -0.85 are the candidates for removing (cR). The stream of non-rounded AC coefficients for hiding data. 1.45, 1.02, -5.12, 9.87, 1.89, -0.85, 4.01, -6.04, 1.55, 3.11, -10.34 Rounded: 1, 1, -5, 10, 2, -1, 4, -6, 2, 3, -10 Block 1: 1, 1, -5, 10, 2, -1, 4 Block 2: 2, -1, 4, -6, 2, 3, -10 Intersected area I: 2, -1, 4
Distortion impact Distortion impact due to modification: D = E2∙Q2 Distortion impact due to insertion or removing: DIR = |0.5-|C||2∙ Q2 Total distortion impact:
IR approach (without IR) AC: 1.45 0.21 0.351.02 -0.01 -0.28 -5.12 9.87 -0.45 0.02 1.89 -0.85 4.01 -8.74 Q : 10 7 7 40 35 14 12 25 40 35 10 7 17 21 D : 0.25 - - 368 - - 21 85 - - 15 21 69 25 DIR: 90 - 1.1 432 - 9.5 - - 4 - - 6 - - AC: -6.04 1.55 3.11 -10.34 5.05 Q : 35 12 10 7 7 D : 259 0.36 15 1.25 9.92 DIR: - - - - - Hidden data: m1=101, m2=100 Block 1: 1, 1, -5, 10, 2, -1, 4 Block 2: 2, -1, 4, -6, 2, 3, -10 Among one, two, and three flips solutions define A = (1,4), B = (6) Distortion for original approach is 100.2
IR approach (Insertion and removing) 1.45 0.21 0.351.02 -0.01 -0.28 -5.12 9.87 -0.45 0.02 1.89 -0.85 4.01 -8.74 -6.04 1.55 3.11 -10.34 5.04 Insert 0.35 (i.e 0.35 -> 1), then Block 1: 1, 1,1, -5, 10, 2, -1 Block 2: 10, 2, -1, 4, -6, 2, 3 Among one, two, and three flips solutions define A = (1 7), B = (6) Distortion after inserting is 21.6 + 1.1 = 22.7 Remove 1.45 (i.e. 1.45 -> 0), then Block 1: 1, -5, 10, 2, -1, 4 , -6 Block 2: -1, 4, -6, 2, 3, -10, 5 Among one, two, and three flips solutions define A = (2 4 6), B = (7) Distortion for original approach is 120.9 + 90 = 210.9
Experimental results The stego images have been tested by using 274 – features steganalysis method proposed by Pevny and Fridrich
Conclusion The proposed oimproved matrix encoding: - achieves higher capacity. • can improve any block based steganographic method • decrease detectability of steganalysis • can be improved further.