Data hiding and watermarking made easy, safe and free EmbeddedSW, 2013 Send your suggestions, comments, bug reports, requests to embedded@embeddedsw.net OPENPUFF O!EP"#E $E#"$ %E!"%&S FE"'U%ES( )* +S '+S S'E#"NO#%"P* 'OO$ D+FFE%EN' F%O! 'E O'E%S, FE"'U%ES( P%O#%"! "%-+'E-'U%E FE"'U%ES( "D"P'+.E EN-OD+N# "ND S'E#"N"$*S+S %ES+S'"N-E FE"'U%ES( !U$'+/-%*P'O#%"P* 0 D"'" O1FUS-"'+ON )"' +S S'E#"NO#%"P*, )"' +S DEN+"1$E S'E#"NO#%"P*, )"' +S !"%&+N#, SUPPO%'ED FO%!"'S +N DE'"+$ SU##ES'+ONS FO% 1E''E% %ESU$'S OP'+ONS( 1+'S SE$E-'+ON $E.E$ S'EP 1* S'EP D"'" +D+N# S'EP 1* S'EP D"'" UN+D+N# S'EP 1* S'EP !"%& SE''+N# S'EP 1* S'EP !"%& -E-&+N# S'EP 1* S'EP D"'" 0 !"%& E%"S+N# OPENPUFF V4.00 - ENGLISH - 7/7/2012 1 $E#"$ %E!"%&S %emember( this program was not written for i22ega2 use3 Usage of this program that may 4io2ate your country5s 2aws is se4ere2y forbidden3 'he author dec2ines a22 responsibi2ities for improper use of this program3 No patented code or format has been added to this program3 'his program, un2ike codecs 6encoder7decoder 2ibraries8, doesn5t process any 4ideo or audio data3 "nci22ary bits on2y 6unused stream bits8 are processed3 "nything e2se is simp2y copied untouched3 '+S +S " F%EE)"%E SOF')"%E 'his software is re2eased under -- 1*/ND 93: *ou;re free to copy, distribute, remi< and make commercia2 use of this software under the fo22owing conditions( *ou ha4e to cite the author 6and copyright owner8( EmbeddedSW *ou ha4e to pro4ide a 2ink to the author;s omepage( E!1EDDEDS)3NE' 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 2 Features: w! "s t"s ste#a$%#ra&! t%%' ("))ere$t )r%* te %ters+ OpenPuff is a professiona2 steganography too2, with unique features you won;t find among any other free or commercia2 software3 OpenPuff is =::> free and suitab2e for high2y sensiti4e data co4ert transmission3 )"' +S S'E#"NO#%"P*, $et;s take a 2ook at its features ?-"%%+E%S -"+NS@ Data is sp2it among many carriers3 On2y the correct carrier sequence enab2es unhiding3 !oreo4er, up to ABC!b can be hidden, if you ha4e enough carriers at disposa23 $ast carrier wi22 be fi22ed with random bits in order to make it undistinguishab2e from others3 ?SUPPO%'ED FO%!"'S@ +mages, audios, 4ideos, f2ash, adobe3 SUPPO%'ED FO%!"'S +N DE'"+$ ?$"*E%S OF SE-U%+'*@ Data, before carrier inDection, is encrypted 6=8, scramb2ed 6A8, whitened 698 and encoded 6E83 FE"'U%ES( P%O#%"! "%-+'E-'U%E ?$"*E% = / !ODE%N !U$'+/-%+P'O#%"P*@ " set of =C modern ABCbit open/source cryptography a2gorithms has been Doined into a doub2e/ password mu2ti/cryptography a2gorithm 6ABCbitFABCbit83 ?$"*E% A / -SP%N# 1"SED S-%"!1$+N#@ Encrypted data is a2ways scramb2ed to break any remaining stream pattern3 " new cryptographica22y secure pseudo random number generator 6-SP%N#8 is seeded with a third password 6ABCbit8 and data is g2oba22y shuff2ed with random inde<es3 ?$"*E% 9 / -SP%N# 1"SED )+'EN+N#@ Scramb2ed data is a2ways mi<ed with a high amount of noise, taken from an independent -SP%N# seeded with hardware entropy3 OP'+ONS( 1+'S SE$E-'+ON $E.E$ ?$"*E% E / "D"P'+.E NON/$+NE"% EN-OD+N#@ )hitened data is a2ways encoded using a non/2inear function that takes a2so origina2 carrier bits as input3 !odified carriers wi22 need much 2ess change and decei4e many stegana2ysis tests 6e3g3( A test83 FE"'U%ES( "D"P'+.E EN-OD+N# "ND S'E#"N"$*S+S %ES+S'"N-E ?EG'%" SE-U%+'* / DEN+"1$E S'E#"NO#%"P*@ 'op secret data can be protected using 2ess secret data as a decoy3 )"' +S DEN+"1$E S'E#"NO#%"P*, OPENPUFF V4.00 - ENGLISH - 7/7/2012 3 ?SOU%-E -ODE@ 'his program re2ies on the $+1O1FUS-"'E system/independent open/source 2ibrary3 Users and de4e2opers are abso2ute2y free to 2ink to the core 2ibrary 6=::> of the cryptography 0 obfuscation code8, read it and modify it3 Youre kindly asked to send me any libObfusate !ortin"#u!"rade#ustomi$in"#deri%ed sw, in order to analy$e t&em and add t&em to t&e !ro'et &ome!a"e. ( entral u!dated offiial re!ository will a%oid s!arseness and unrea&ability of t&e !ro'et deri%ed ode. 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 4 FEATURES: PROGRAM AR,HITE,TURE " high/2e4e2 g2oba2 description of OpenPuff;s architecture data is sp2it among carriers each carrier is associated to a random initia2iHation 4ector array 6+.S 8 te<t passwords 69A characters I ABCbit8 are associated 6&DFE 8 to he<adecima2 passwords data is first encrypted with two ABCbit &E*S 6A8 6-8, using mu2ti/cryptography encrypted data is then scramb2ed, with a third key 6,8, to break any remaining stream pattern scramb2ed data is then whitened 6I mi<ed with random noise8 whitened data is then encoded using a function that takes a2so origina2 carrier bits as input modified carriers recei4e the processed stream J J J OPENPUFF V4.00 - ENGLISH - 7/7/2012 5 %andom Engine 6-SP%N#8 +.s ?1)*@ ./N 6=AKbit8 +.s ?1)*@ 0/N 6=AKbit8 +.s ?1)*@ N/N 6=AKbit8 Data 0/N Data N/N " 1 Encryption 6-SP%N#8 - Scramb2ing 6-SP%N#8 -arrier 0/N +od,arrier 0/N +od,arrier ./N -arrier N/N +od,arrier N/N Data ./N )hitening 6-SP%N#8 -arrier ./N " Pssw &DF E "dapti4e Encoding -arrier Engine 1 Pssw - Pssw -ryptography is a mu2ti step process each carrier gets an independent setup ,arrierSetu!i I L -.si , ,S/012i , 3eysi M each cipher gets an independent setup ,i!&er' I L -.' , 3ey' M each data b2ock is processed with a different cipher, se2ected using the -SP%N# ,arrieri ,ry!ted4lokk I r 0and5i 68 N ,i!&err 6 -.r , 3eyr , ,arrieri 4lokk 8 J J !odified carriers recei4e an encrypted copy of 6"ES8 its initia2iHation 4ector array ,ry!ted-.sn I ,ry!t 6 -.sn , ,ry!ted-.sn51 8 processed data J OPENPUFF V4.00 - ENGLISH - 7/7/2012 6 -SP%N#/i -arrier i 6=AKbit IN1 12ock =7N -arrier i 6=AKbit IN1 12ock A7N -arrier i 6=AKbit IN1 12ock N7N -arrier i 6=AKbit OUT8 AES612ock =7N 8 -arrier i 6=AKbit OUT8 MARS612ock N7N 8 -arrier i 6=AKbit OUT8 R,2612ock A7N 8 %"ND/i 68 I MARS +.s ?1)*@ 0/N AES +od,arrier 0/N -arrier Engine +.s ?1)*@ ./N +.s ?1)*@ N/N8 AES AES +od,arrier ./N +od,arrier N/N %"ND/i 68 I AES %"ND/i 68 I R,2 +.s i ?1)*@ 6=AKbit8 OpenPuff imp2ements a cryptographica22y secure pseudo random number generator 6-SP%N# 8 using "ES/ABC encryption3 12ock/based secure a2gorithms running in -ounter/!ode 6-'%8 beha4e, by construction, as a random engine3 " good hardware source of starting entropy has been pro4ided, not depending on any third/party 2ibrary or system/"P+3 'hreads are a2ways schedu2ed by the OS in an unpredictab2e sequence 6due to an una4oidab2e 2ack of timing accuracy8, easi2y a22owing to get a significant amount of EGE-U'+ON %"-E -OND+'+ON 3 N threads run in para22e2, incrementing and decrementing shared 4a2ues that, after a whi2e, turn into random 4a2ues3 J OPENPUFF V4.00 - ENGLISH - 7/7/2012 7 -'% 6=AKbit8 Entropy &ey 6ABCbit8 %andom %andom Engine 6-SP%N#8 =AKbit 12ocks / ABCbit &ey / -'%
AES 'hread 0/N 'hread ./N 'hread N/N Shared 4a2ues Entropy %andom Engine 6-SP%N#8 'esting has been performed on the statistica2 resistance of the -SP%N# and the mu2ti/wrapper, using the we22 known PSEUDO%"NDO! NU!1E% SEOUEN-E 'ES' P%O#%"! / EN' 3 Pro4ided resu2ts are taken from CE&b, =AK&b, 333 ABC!b samp2es( bit entropy test resistance( PQ3RRRR<< 7 K3:::::: referene6 78.9 compression test resistance 6siHe reduction after compression8( :> referene6 :1; chi/squared distribution test resistance( A:> S de4iaHione S K:> referene6 710;, :90; mean 4a2ue test resistance( =AQ3E< 7 =AQ3B referene6 7128, :12< !onte -ar2o test resistance( errore S :3:=> referene6 : 1; seria2 corre2ation test resistance( S :3:::= referene6 : 0.01 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 8 FEATURES: A3APTIVE EN,O3ING AN3 STEGANA4YSIS RESISTAN,E Security, performance and stegana2ysis resistance are conf2icting trade/offs3 ?Security 4s3 Performance@( )hitening Pro( ensures higher data security Pro( a22ows deniab2e steganography ,%$0( re=uires a lot of e*tra arrier bits ?Security 4s3 Stegana2ysis@( -ryptography F )hitening Pro( ensure higher data security ,%$.( t&eir random5like statistial res!onse marks arriers as more >sus!iious? Shou2d we then be concerned about OpenPuff;s S'E#"N"$*S+S %ES+S'"N-E , Data, before carrier inDection, is encrypted 6=8, scramb2ed 6A8 and whitened 6983 Do these 9 steps turn a sma22 amount of hidden data into a big chunk of suspicious data, " new security 2ayer has been added at the bottom of the data process3 )hitened data is a2ways encoded using a non/2inear function that takes a2so origina2 carrier bits as input3 !odified carriers wi22 need much 2ess change 6,%$08 and, 2owering their random/2ike statistica2 response, decei4e many stegana2ysis tests 6,%$.83 TDEFEND+N# "#"+NS' S'"'+S'+-"$ S'E#"N"$*S+S T 6Nie2s Pro4os8 T-ONS'%U-'+N# #OOD -O.E%+N# -ODES FO% "PP$+-"'+ONS +N S'E#"NO#%"P* T 6Uessica Fridrich8 'he pro4ided coding imp2ementation is a no4e2 unpub2ished function 6bui2t from scratch8 that ensures output password dependence high 6B:>8 embedding efficiency 2ow 6SA:>8 change rate 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 9 +od,arrier -arrier Encrypt V Scramb2ing V )hitening Encoding Data : = = = : = = : : = : = : 0 = : : = 0 = FEATURES: MU4TI5,RYPTOGRAPHY & 3ATA O-FUS,ATION FA6 0: W! ("($7t !%u s"*&'! "*&'e*e$t a sta$(ar( AES5.82 %r RSA500.4+ !odern open/source cryptography has been thorough2y in4estigated and re4iewed by the scientific community it;s wide2y accepted as the safest way to secure your data fu2fi22s a2most e4ery standard need of security OpenPuff doesn;t support any -ONSP+%"-* 'EO%* against our pri4acy 6SE-%E' -%"-&+N# 1"-&DOO%S , intentiona22y weak cryptography designs, J83 'here;s rea22y no reason not to trust standard modern pub2ic2y a4ai2ab2e cryptography 6a2though some o2d ciphers ha4e been a2ready -%"-&ED 83 Steganography users, howe4er, are 4ery 2ike2y to be hiding 4ery sensiti4e data, with an unusually &i"& need of security3 'heir secrets need to go through a deep process of data O1FUS-"'+ON in order to be ab2e to lon"er sur4i4e forensic in4estigation and hardware aided brute force attacks3 FA6 .: Is *u't"59r!&t%#ra&! s"*"'ar t% *u't"&'e5e$9r!&t"%$+ !u2ti/cryptography is something rea22y different from !U$'+P$E/EN-%*P'+ON 6encrypting more than once83 'here;s rea22y no common agreement about mu2tip2e/encryption;s re2iabi2ity3 +t;s thought to be( 1E''E% than sing2e encryption )E"& as the weakest cipher in the encryption queue7process w%rse than sing2e encryption OpenPuff supports the 2ast thesis 6worse8 and ne4er encrypts a2ready encrypted data3 FA6 :: Is *u't"59r!&t%#ra&! s"*"'ar t% ra$(%*/&%'!*%r&"959r!&t%#ra&!+ %andom/cryptography, a3k3a3 PO$*!O%P+- -%*P'O#%"P* , is a we22/known SN"&E/O+$ -%*P'O#%"P* 3 !u2ti/cryptography is something comp2ete2y different and ne4er aims to bui2d some better, random or on/the/f2y cipher3 OpenPuff on2y re2ies on stab2e modern open/source cryptography3 FE"'U%ES( P%O#%"! "%-+'E-'U%E 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 10 WHAT IS STEGANOGRAPHY+ +t5s a S!"%' )"* to hide data into other fi2es, ca22ed 9arr"ers3 !odified carriers wi22 2ook 2ike the origina2 ones, without perceptib2e changes3 1est carriers are 4ideos, images and audio fi2es, since e4erybody can send7recei4e7down2oad them without suspects3 'he steganography process is high2y se2ecti4e and adapti4e, with a minimum pay2oad for each carrier3 -arriers with a ma<imum hidden data amount 2ess than the minimum pay2oad wi22 be discarded3 FABC1 +. F=C1 a cryptography b2ock FE"'U%ES( P%O#%"! "%-+'E-'U%E 'here;s no -"%%+E% bytes thresho2d during the marking process3 )"' +S !"%&+N#, )* SOU$D + NEED '+S 'E-N+OUE, *ou (%$;t $ee( this technique if your data can be e<p2icit2y sent or stored in a2tered suspicious format3 *ou *a! <e interested in this technique if your data needs hiding without turning into suspicious format3 ha4e to be easi2y accessib2e by e4eryone, but retrie4ab2e on2y by peop2e acquainted with your secret intent3 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 11 WHAT IS 3ENIA-4E STEGANOGRAPHY+ DEN+"1$E EN-%*P'+ON7S'E#"NO#%"P* is a decoy based technique that a22ows you to con4incing2y deny the fact that you;re hiding se$s"t"=e (ata, e4en if attackers are ab2e to state that you;re hiding some data3 *ou on2y ha4e to pro4ide some e<pendab2e decoy data that you wou2d &'aus"<'! want to keep confidentia23 +t wi22 be re4ea2ed to the attacker, c2aiming that this is a22 there is3 ow is it possib2e, Encrypted and scramb2ed data, before carrier inDection, is whitened 6FE"'U%ES( P%O#%"! "%-+'E-'U%E 8 with a high amount of noise 6OP'+ONS( 1+'S SE$E-'+ON $E.E$ 83 Decoy data can rep2ace some of this noise without 2oosing fina2 properties of -%*P'"N"$*S+S %ES+S'"N-E 3 Sensiti4e data and decoy data are encrypted using different passwords3 *ou ha4e to choose two different sets of different passwords3 E<amp2e( Sensibi2e data( Password 6"8 W@irstAata/ssw1X Password 618 WSeondAata/ssw2X Password 6-8 W(not&erAata/ssw3X 6A > -8 Q:>, 6A > ,8 CQ>, 6- > ,8 CK>, "!!+N# D+S'"N-E Y AB> Z Z Z Decoy data( Password 6";8 W@irstAeoy/ssw1X Password 61;8 WSeondAeoy/ssw2X Password 6-;8 W(not&erAeoy/ssw3X 6A7 > -78 QA>, 6A7 > ,78 C:>, 6-7 > ,78 Q:>, "!!+N# D+S'"N-E Y AB> OPENPUFF V4.00 - ENGLISH - 7/7/2012 12 N O % ! " $ " ' ' " - & )hitening Data Noise Data Data ise )hitening SecretData SecretPasswords DecoyData DecoyPasswords No ide DecoyPasswords DecoyData Unhide Unhide SecretData SecretPasswords Each password has to be different 6at bit 2e4e28 and at 2east K characters 2ong3 E<amp2e( WDataPssw=X 6"8 WDataPsswAX 618 WDataPssw9X 6-8 6"8 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 618 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 6-8 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 6A > -8 RK>, 6A > ,8 RR>, 6- > ,8 RR>, "!!+N# D+S'"N-E S AB> KO E<amp2e( WFirstDataPssw=X 6"8 WSecondDataPsswAX 618 W"notherDataPssw9X 6-8 6"8 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 J 618 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 J 6-8 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 J 6A > -8 Q:>, 6A > ,8 CQ>, 6- > ,8 CK>, "!!+N# D+S'"N-E Y AB> OK *ou wi22 be asked for two ("))ere$t sets of different passwords a stream of sensiti4e data a stream of decoy data 9%*&at"<'e 6by siHe8 with sensiti4e data B k { 1, N-1 } usedCarrierCbytesD arr k E : Si$eofD Aeoy E F B k { 1, N } usedCarrierCbytesD arr k E E<amp2e( ,arr"ers ,arr"er <!tes Se$s"t"=e3ata 3e9%!3ata ?,arr @0/N1 :. A Use( B .2CC A Use( ?,arr @N50/N1 4C A Use( ?,arr @N/N1 24 N%t use( T%ta' D .C:. T%ta' D .EF8 .E.0 G S"He I .E2C 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 13 WHAT IS MARKING+ !arking is here stated as the action of signing a fi2e with your copyright mark 6best known as )"'E%!"%&+N# 83 'his program does it in a steganographic way, app2ied to 4ideos, images and audio fi2es3 *our copyright mark wi22 be in4isib2e, but accessib2e by e4eryone 6using this program8, since it won5t be password protected3 )* SOU$D + NEED '+S 'E-N+OUE, *ou (%$;t $ee( this technique if your copyright mark needs to be c2ear2y 4isib2e has to be independent from graphic7audio data, therefore capab2e of sur4i4ing editing operations *ou *a! <e interested in this technique if your copyright mark needs to be in4isib2e has to be dependent from graphic7audio data, therefore incapab2e of sur4i4ing editing operations has to be accessib2e by e4eryone 6using this program8 " possib2e usage of this technique cou2d be( insertion of an in4isib2e copyright mark into registered fi2es that ha4e to be pub2ic2y shared3 +22ega22y manipu2ated copies wi22 maybe 2ook 2ike origina2 ones, but wi22 partia22y7tota22y 2oose the in4isib2e copyright mark3 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 14 SUPPORTE3 FORMATS IN 3ETAI4 +mages( 1!P , UP# , P-G , PN# , '#" "udios( "+FF , !P9 , NEG'7SUN , )". .ideos( 9#P , F$. , !PE , !P# , S)F , .O1 F2ash/"dobe( PDF -arriers wi22 keep their format ?in( 9A bits per p2ane '#", out( 9A bits per p2ane '#"@ ?in( Stereo )"., out( Stereo )".@ ?in( %#1F"2pha 1!P, out( %#1F"2pha 1!P@ etcJ "dditiona2 tags7chunks and e<tra bytes wi22 be entire2y copied unchanged3 Don5t perform any further operation to modified carriers3 'heir carrier bits wou2d 4ery probab2y be a2tered3 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 15 1!P +!"#ES 6!+-%OSOF'8 &nown e<tensions( G.4+/, G.A-4 AE79A bits per pi<e2 !ono7%#17%#1F"2pha Up to 4ersion B 1"-& UP# +!"#ES 6UO+N' PO'O#%"P+- EGPE%'S #%OUP8 &nown e<tensions( G.H/2, G.H/E, G.H/E2, G.H@-@ K bits per p2ane =/E p2anes per pi<e2, i3e3( !ono7%#17*-b-r7*-b-r&7-!*7-!*& 1ase2ine 2ossy D-'/Dfif with uffman compression hA4A 6E(E8, h=4A 6E(A8, hA4= 6E(A8, h=4= 6E(=8 p2anes independent a2ignment 1"-& P-G +!"#ES 6[SOF'8 &nown e<tensions( G./,I AE bits per pi<e2 !ono7%#1 -ompressed7Uncompressed 1"-& PN# +!"#ES 6PO%'"1$E NE')O%& #%"P+-S8 &nown e<tensions( G./12 K7=C bits per p2an !ono7%#17!onoF"2pha7%#1F"2pha +nter2aced7$inear 1"-& '#" +!"#ES 6'"%#" '%UE.+S+ON8 &nown e<tensions( G.J2(, G..A(, G.-,4, G..SJ !ono/K bits per pi<e2 or %#17%#1F"2pha/AE79A bits per pi<e2 -ompressed7Uncompressed 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 16 "+FF "UD+OS 6"UD+O +N'E%-"N#E F+$E FO%!"'8 &nown e<tensions( G.(-@, G.(-@@ =C bits per samp2e !ono7Stereo7!u2ti channe2s $inear, uncompressed 1"-& !P9 "UD+OS 6F%"UNOFE% +NS'+'U'8 &nown e<tensions( G.+/3 !P# =7!P# A7!P# A3B $ayer +++ Fi<ed7.ariab2e 1itrate !ono7Dua2 -hanne27Uoint Stereo7Stereo +D 'agged 1"-& NEG'7SUN "UD+OS 6SUN 0 NEG'8 &nown e<tensions( G.(K, G.S1A =C bits per samp2e !ono7Stereo7!u2ti channe2s $inear, uncompressed 1"-& )". "UD+OS 6!+-%OSOF'8 &nown e<tensions( G.W(., G.W(.E =C bits per samp2e !ono7Stereo7!u2ti channe2s P-!, uncompressed 1"-& 9#P .+DEOS 69%D #ENE%"'+ON P"%'NE%S+P P%O#%"!8 &nown e<tensions( G.32/, G.32//, G.322, G.32/2 Up to 4ersion =: -odec independent support Up to 9A tracks 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 17 "DO1E F$. .+DEOS 6F$"S .+DEO8 &nown e<tensions( G.@L., G.@M., G.@M/, G.@M(, G.@M4 Up to 4ersion =: -odec independent support "udio !P9 tracks ana2ysis 1"-& !PE .+DEOS 6!O'+ON P+-'U%E EGPE%'S #%OUP8 &nown e<tensions( G.+/M, G.+/2M, G.+/E2M, G.+M(, G.+M., G.+/M(, G.+/M. Up to specification +SO7+E- =EERC/=A(A::K -odec independent support Up to 9A tracks 1"-& !P# .+DEOS 6!O'+ON P+-'U%E EGPE%'S #%OUP8 &nown e<tensions( G.+/2, G.+/E2, G.+/(, G.+/., G.+/1, G.+/21, G.+1(, G.+1., G.+/1(, G.+/1., G.+/2, G.+/22, G.+2(, G.+2., G.+/2(, G.+/2. !peg + Systems / up to specification +SO7+E- ===QA/=(=RRR !peg ++ Systems / up to specification +SO7+E- =9K=K/=(A::Q -odec independent support 1"-& "DO1E S)F .+DEOS 6SO-&)".E F$"S8 &nown e<tensions( G.SW@ Up to 4ersion =: -odec independent support "udio !P9 tracks ana2ysis 1"-& .O1 .+DEOS 6D.D / .+DEO O1UE-'8 &nown e<tensions( G..O4 !peg ++ Systems / up to specification +SO7+E- =9K=K/=(A::Q -odec independent support 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 18 "DO1E PDF F+$ES 6PO%'"1$E DO-U!EN' FO%!"'8 &nown e<tensions( G./A@ Up to specification +SO7+E- 9A:::/=(A::K %e4ision independent support 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 19 SUGGESTIONS FOR -ETTER RESU4TS -"%%+E% -"+NS( ide your data into sing2e7mu2tip2e carrier chains, adding carriers in une<pected order3 Unhiding attempts by una22owed curious peop2e wi22 grow in comp2e<ity3 Sing2e carrier e<amp2e( 6Simp2e, Fast unhiding time, Unsafe8 ?M!3ata JJ K%$.*&: Sing2e chain e<amp2e( 6!edium comp2e<ity, !edium unhiding time, Safe8 ?M!3ata JJ -ear.L&# M N%%.t#a M Arr%w.&$# M K%$.<*& M B !u2tip2e chains e<amp2e( 6!a<imum comp2e<ity, S2ow unhiding time, Safer8 ?M!3ata @0/$1 JJ -ear.L&# M Arr%w.&$# M K%$.<*& M B B ?M!3ata @$/$1 JJ N%%.t#a M Arr%w.&$# M -ee&.wa= M B P"SS)O%D( !ake use of 2ong 6P=C chars8 easy to remember passwords, changing them e4ery time3 -"%%+E% 1+'S SE$E-'+ON $E.E$( !ake a2ways use of different 2e4e2s for each hiding process3 Unhiding attempts by una22owed curious peop2e wi22 grow in comp2e<ity3 E<amp2e( H"("$# &r%9ess 0: A")): 4%w -MP: Ver! '%w KPG: MaO"*u* B H"("$# &r%9ess .: AIFF: Me("u* -MP: 4%w KPG: M"$"*u* B OPENPUFF V4.00 - ENGLISH - 7/7/2012 20 " FU$$ S*S'E! -OU$D 1EJ iding your data into many comp2e< chains 6hundreds of carriers, with non a2phabetica2 random order8, each one with a comp2ete2y different set of 9A/chars/passwords Sa4ing a22 settings inside an Winde<X sing2e carrier E<amp2e( ?M!3ata @0/$1 P9arr"er0 M B M 9arr"er000Q PVer!4%$#Passw%r(s0Q P-"tsSe'e9t"%$4e=e'0Q B ?M!3ata @$/$1 P9arr"er0 M B M 9arr"er000Q PVer!4%$#Passw%r(sNQ P-"tsSe'e9t"%$4e=e'NQ " 4ery unsuspicious Winde<X carrier 6fi<ed password F fi<ed bits se2ection 2e4e28 ho2ding a te<t fi2e that summaries carriers name and order passwords bit se2ection 2e4e2s 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 21 OPTIONS: -ITS SE4E,TION 4EVE4 6+inimum8 =7K data, Q7K whitening3 6.ery Low8 =7Q data, C7Q whitening3 6Low8 =7C data, B7C whitening3 6+edium8 =7B data, E7B whitening3 6Ni"&8 =7E data, 97E whitening3 6.ery Ni"&8 =79 data, A79 whitening3 6+a*imum8 =7A data, =7A whitening3 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 22 3ATA HI3ING STEP -Y STEP 1E#+N( 6Nide8 #o to hiding pane2 Se2ect Nide3 S'EP =( 6,ry!to"ra!&y (8 First password 6cryptography keys8 6,ry!to"ra!&y 48 Second password 6cryptography -SP%N#8 6Sramblin" ,8 'hird password 6scramb2ing -SP%N#8 6Enable 48 Second password enab2e7disab2e 6Enable ,8 'hird password enab2e7disab2e +nsert three separate passwords3 Each password has to be different 6at bit 2e4e28 and at 2east K characters 2ong3 Password type and number can be easi2y customiHed disab2ing the second 618 and7or the third 6-8 password3 Disab2ed passwords wi22 be set as the first 6"8 password3 E<amp2e( WDataPssw=X 6"8 WDataPsswAX 618 WDataPssw9X 6-8 6"8 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 618 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 6-8 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 6A > -8 RK>, 6A > ,8 RR>, 6- > ,8 RR>, "!!+N# D+S'"N-E S AB> KO E<amp2e( WFirstDataPssw=X 6"8 WSecondDataPsswAX 618 W"notherDataPssw9X 6-8 6"8 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 J 618 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 J 6-8 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 J 6A > -8 Q:>, 6A > ,8 CQ>, 6- > ,8 CK>, "!!+N# D+S'"N-E Y AB> OK SU##ES'+ONS FO% 1E''E% %ESU$'S )"' +S DEN+"1$E S'E#"NO#%"P*, OPENPUFF V4.00 - ENGLISH - 7/7/2012 23 S'EP A( 64rowse8 Se2ect a fi2e -hoose the secret data you want to hide 6typica22y a Hip7rar7J archi4e83 S'EP 9( 6S&uffle8 %andom shuff2e a22 carriers 6,lear8 Discard a22 carriers 6(dd8 "dd new carriers to the 2ist 61ame87 64its8 Sort carriers by name7bits 6O87658 !o4e se2ected carriers up7down 6Ael8 De2ete se2ected carriers Unti2 seleted bytes S total bytes try adding new carriers increasing bit se2ection 2e4e2 6+8 6++8 Some carriers wi22 not be added because of steganography/process constraints 6+8 not enough carrier bytes 6carrier bytes carrier siHe8 )"' +S S'E#"NO#%"P*, 6++8 unsupported format SUPPO%'ED FO%!"'S +N DE'"+$ OPENPUFF V4.00 - ENGLISH - 7/7/2012 24 S'EP E( 60eset O!tions8 %eset a22 bits se2ection 2e4e2 to norma2 6(dd AeoyP8 "dd a decoy 6deniab2e steganography8 6NideP8 Start hiding "fter typing twice the same password, at 2east K chars se2ecting a non/empty fi2e to hide adding enough carrier bits adding a decoy 6optiona28 start the hiding task OP'+ONS( 1+'S SE$E-'+ON $E.E$ OPENPUFF V4.00 - ENGLISH - 7/7/2012 25 '"S& %EPO%'( End report summariHes a22 information needed for a successfu2 unhiding3 S'EP E \ 6OP'+ON"$8( 6,ry!to"ra!&y (8 First password 6cryptography keys8 6,ry!to"ra!&y 48 Second password 6cryptography -SP%N#8 6Sramblin" ,8 'hird password 6scramb2ing -SP%N#8 6Enable 48 Second password enab2e7disab2e 6Enable ,8 'hird password enab2e7disab2e 64rowse8 Se2ect a fi2e 60eset8 %eset password and fi2e 6,&ek Q (e!t8 -heck password corre2ation and fi2e siHe *ou can a2so add a decoy password and decoy data decoy passwords ha4e to be each other ("))ere$t, and different from data passwords decoy password type and number can be customiHed 2ike data passwords decoy data has to be 9%*&at"<'e 6by siHe8 with sensiti4e data B k { 1, N-1 } usedCarrierCbytesD arr k E : Si$eofD Aeoy E F B k { 1, N } usedCarrierCbytesD arr k E )"' +S DEN+"1$E S'E#"NO#%"P*, 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 26 3ATA UNHI3ING STEP -Y STEP 1E#+N( 6Kn&ide8 #o to unhiding pane2 Se2ect Kn&ide3 S'EP =( 6,ry!to"ra!&y (8 First password 6cryptography keys8 6,ry!to"ra!&y 48 Second password 6cryptography -SP%N#8 6Sramblin" ,8 'hird password 6scramb2ing -SP%N#8 6Enable 48 Second password enab2e7disab2e 6Enable ,8 'hird password enab2e7disab2e +nsert your passwords 6secret to get secret data, decoy to get decoy data8, enab2ing on2y those used at hiding time3 SU##ES'+ONS FO% 1E''E% %ESU$'S )"' +S DEN+"1$E S'E#"NO#%"P*, S'EP A( 6,lear8 Discard a22 carriers 6(dd8 "dd new carriers to the 2ist 61ame87 64its8 Sort carriers by name7bits 6O87658 !o4e se2ected carriers up7down 6Ael8 De2ete se2ected carriers "dd a22 the carriers that ha4e been processed during the hide task3 OPENPUFF V4.00 - ENGLISH - 7/7/2012 27 SUPPO%'ED FO%!"'S +N DE'"+$ S'EP 9( 60eset O!tions8 %eset a22 bits se2ection 2e4e2 6Kn&ideP8 Start unhiding "fter typing twice the same password adding a22 the carriers, in the right order setting a22 bits se2ection 2e4e2s to the origina2 4a2ue start the unhiding task OP'+ONS( 1+'S SE$E-'+ON $E.E$ OPENPUFF V4.00 - ENGLISH - 7/7/2012 28 '"S& %EPO%'( +f carriers ha4e been added in the right order, with the origina2 bits se2ection 2e4e2s, OpenPuff wi22 be ab2e to reconstruct the origina2 data3 For better security, data wi22 be reconstructed on2y after a successfu2 -%- check3 E%en t&e sli"&test &an"e in one of t&e arrier ould dama"e t&e data and !re%ent e%ery un&idin" try. 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 29 MARK SETTING STEP -Y STEP 1E#+N( 6Set +ark8 #o to mark setting pane2 Se2ect Set +ark3 S'EP =( 6-nsert mark8 *our mark 'ype once your mark3 S'EP A( 6,lear8 Discard a22 carriers 6(dd8 "dd new carriers to the 2ist 61ame8 Sort carriers by name 6Ael8 De2ete se2ected carriers 6Set +arkP8 Start mark setting "dd a22 the carriers that need to be marked3 Start the setting task3 SUPPO%'ED FO%!"'S +N DE'"+$ 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 30 MARK ,HE,KING STEP -Y STEP 1E#+N( 6,&ek +ark8 #o to mark checking pane2 Se2ect ,&ek +ark3 S'EP =( 6,lear8 Discard a22 carriers 6(dd8 "dd new carriers to the 2ist 61ame8 Sort carriers by name 6Ael8 De2ete se2ected carriers 6,&ek +arkP8 Start mark checking "dd a22 the carriers that need to be checked3 Start the checking task3 SUPPO%'ED FO%!"'S +N DE'"+$ '"S& %EPO%'( End report summariHes, for each carrier, integrity and mean integrity information3 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 31 3ATA & MARK ERASING STEP -Y STEP 1E#+N( 6,lean K!8 #o to data 0 mark erasing pane2 Se2ect ,lean K!3 S'EP =( 6,lear8 Discard a22 carriers 6(dd8 "dd new carriers to the 2ist 61ame8 Sort carriers by name 6Ael8 De2ete se2ected carriers 6,lean K!P8 Start data 0 mark erasing "dd a22 the carriers that need to be c2eaned and start the c2eaning task3 SUPPO%'ED FO%!"'S +N DE'"+$ 1"-& OPENPUFF V4.00 - ENGLISH - 7/7/2012 32