|
Puff v1.01 Steganographer & Authoring
Data hiding and authoring made easy, safe and free!
Cosimo Oliboni, Italy, 2004
Blackvisionit@yahoo.it
FEATURES: WHY IS THIS PROGRAM DIFFERENT FROM THE OTHERS?
WHAT IS STEGANOGRAPHY? WHY SHOULD I NEED THIS TECHNIQUE?
WHAT IS AUTHORING? WHY SHOULD I NEED THIS TECHNIQUE?
ADVANCED OPTIONS: OUTPUT FORMAT & BITS SELECTION LEVEL
SUGGESTIONS FOR BETTER RESULTS
1st Release, Dec/2004: Download Puff v1.01 (.ZIP)
All reasonable security features have been implemented: password encryption, random encryption, low-level temp files erasure, etc...
Legal remarks:
Remember: this program was not written for illegal use.
Usage of this program that may violate your country's laws is severely forbidden.
The author declines all responsibilities for improper use of this program.
No patented code or format has been added to this program.
Special MP3 legal note:
This program doesn't encode or decode any audio data.
Ancillary bits only (unused MP3 stream bits) are processed. Anything else is simply skipped.
So, please don't ask/claim for any patent license/fee/royalty.
This is a registered program:
It is entirely freeware: the only things you are not allowed to do are
Send your suggestions, comments, bug reports, requests, etc... at blackvision@yahoo.it
Contact me also if you get a non working/manipulated copy of this program, telling me where you got it from. I'll send you an original working one for free.
FEATURES: WHY IS THIS PROGRAM DIFFERENT FROM THE OTHERS?
Obviously steganography is not a new idea, but the other programs I tested didn’t satisfy my minimum security requirements. I also thought that many of you could take advantage of a "new bomb-proof" steganography interface designed for people who know what they need.
Bits selection level:
You can process each kind of carrier in 7 different ways: unhiding complexity grows by 7 per kind of carrier used.
Encryption algorhythm:
16 different encryption algorhythms, with 16 subvariants, that makes 256. Exactly every possible byte value!
Moreover, algorhythms sequence is random-generated.
PASSWORD ENCRYPTION:
Password encryption algorhythm has been designed to produce a high amount of fixed redundant values. Obviously this increases unallowed unhiding attempts complexity.
CARRIERS CHAINS:
Hiding data is split among many carrier. Only the correct carrier sequence enables unhiding: unhiding complexity grows by n!, where n is carriers number. Moreover, up to 256Mb can be hidden, if you have enough carriers at disposal. Last carrier will be filled with random bits in order to make it undistinguishable from others.
etc...
Alphabetical processing:
At hiding time, carriers are processed in alphabetical order. No low-level physical mark of their logical order will hence be available.
GLOBAL SECURITY:
SUMMARY:
Someone could be able to debug this program and discover the cryptographic algorhythm (it would be a huge, not impossible, but enormous work). Even in this case a simple 20-carriers chain with 3 different kinds of carrier could need 4e+19 unhiding tries by unallowed people, password protection left out of count! High performances can be achieved only with full understanding of all the tricky options that are offered to you.
AUTHORING:
Simplified version of hiding process is available for authoring. One more chance to sign your work!
It's a smart way to hide data into other files, called carriers. Modified carriers will look like the original ones, without perceptible changes. Best carriers are images and audio files, since everybody can send/receive/download them without suspects. How is this possible?
Images or audio files need a lot of bits per data descriptors, so you can use at least 1 bit per data to represent your hidden data.
Examples:
11000011, 10110100, 01101110, 11101001 --> 1001
[Least significant bit technique]11000010, 10110101, 01101100, 11101011 --> 10010011
[Last 2 significant bits technique]etc…
WHY SHOULD I NEED THIS TECHNIQUE?
You don't need this technique if your data
You may be interested in this technique if your data
Authoring
is here stated as the action of signing a file with your copyright mark (best known as Watermarking). This program does it in a steganographic way, applied to graphic and audio files. Your copyright mark will be invisible, but accessible by everyone (using this program), since it won't be password protected.
WHY SHOULD I NEED THIS TECHNIQUE?
You
don't need this technique if your copyright mark
You
may be interested in this technique if your copyright mark
Typical use of this technique could be: insertion of an invisible copyright mark into registered files that have to be publicly shared. Illegally manipulated copies will maybe look like original ones, but will partially/totally loose the invisible copyright mark. Since this technique it's not bomb-proof, it has to be combined with others: registration, CRC, etc…
Images:
BMP, JPG, PCX, PNG, TGA.Audios:
AIFF, MP3, NEXT/SUN, WAV.Win PE Modules
.Carriers will keep their format:
etc...
Additional tags/chunks and extra bytes will be entirely copied unchanged.
Don't perform any further operation to modified carriers. Their carrier bits would very probably be altered!
Remarks:
Windows BITMAP Images (Microsoft)
JPG Images (Joint Photographic Experts Group)
Unsupported JPG formats:
PCX Images (ZSoft)
PNG Images (Portable Network Graphics)
TGA Images (Targa Truevision)
AIFF Audios (Audio Interchange File Format)
MP3 Audios (Fraunhofer Institut)
Unsupported MP3 formats:
NEXT/SUN Audios (Sun & Next Machines)
Windows WAV Audios (Microsoft)
Win PE ModuleS
Any recent windows executable/library/screen saver should have been compiled in PE (portable executable) format.
It is divided into subsections: .text, .bss., .data, .rsrc, etc...
We are interested in
.rsrc section, that can hold BMP and WAV files.*.386;*.3gr;8b*;*.98;*.acm;*.api;*.apl;*.ara;*.arx;*.asi;*.ax;*.awx;*.bmi;*.chs;
*.cht;*.cnv;*.cpl;*.csy;*.d01;*.dan;*.deu;*.dbx;*.dic;*.dl*;*.drv;*.ds;*.ell;
*.enu;*.esp;*.exe;*.fla;*.fln;*.flt;*.fon;*.fra;*.grm;*.gup;*.heb;*.hdi;*.hun;
*.hx*.ime;*.imp;*.ita;*.jpn;*.kor;*.mod;*.mpd;*.mst;*.nld;*.nls;*.nor;*.ocx;
*.olb;*.pci;*.pdr;*.pkg;*.plk;*.ptb;*.rll;*.rus;*.scr;*.se;*.sfx;*.src;*.str;
*.sve;*.sys;*.tas;*.tha;*.tlb;*.trk;*.tsk;*.tsp;*.vbx;*.wll;*.wpc;*.wpl;*.x32;
*.xfm;*.xh*;*.xpg
VXD libraries and other special modules are compiled in NE or LE format. They usually don’t hold any resource and have been discarded.
ADVANCED OPTIONS: OUTPUT FORMAT & BITS SELECTION LEVEL
[PCX,TGA]
(As original) Carriers will be processed according to their original format.
(Compressed) Carriers will be processed in compressed format.
(Uncompressed) Carriers will be processed in uncompressed format.
Only few graphic viewers/editors support PCX uncompressed format.
[PNG]
(As original) Carriers will be processed according to their original format.
(Interlaced) Carriers will be processed in interlaced format.
(Linear) Carriers will be processed in linear format.
PNG interlaced format is usually internet oriented.
PNG format is chunk based, image data are stored into a IDAT chunks chain.
(from 16Kb to 4Mb) Carriers will be split into selected size IDAT chunks.
64Kb can be stated as standard IDAT chunks size.
Bigger IDAT chunks ensure smaller total file size, nevertheless some graphic viewers/editors couldn't be able to read them.
(Minimum) Minimum compression with fastest processing time.
(Maximum) Maximum compression with slowest processing time.
Minimum size is ensured by Linear+4 Mb+Maximum.
Maximum Internet optimization is ensured by Interlaced+16Kb+Minimum.
[AIFF,BMP,JPG,MP3,NEXT/SUN,PCX,PNG,TGA,WAV]
(Minimum) Almost all pixels/samples will be used for hiding.
(Maximum) Only few suitable pixels/samples will be used for hiding.
When unhiding, remember to set bits selection level to its hiding value!
Example:
Carriers chains:
Hide your data into single/multiple carriers chains, adding carriers in unexpected order. Unhiding attempts by unallowed curious people will exponentially grow in complexity.
Single carrier example: (Simple, Fast unhiding time, Unsafe)
mypersonaldata >> John.mp3
Single chain example: (Medium complexity, Medium unhiding time, Safe)
mypersonaldata >> Bear.jpg | Zoo.tga | Arrow.png | John.bmp | Beep.wav | etc…
Multiple chains example: (Maximum complexity, Slow unhiding time, Bomb-proof)
+mypersonaldata (1/n) >> Bear.jpg | Arrow.png | John.bmp | etc…
+mypersonaldata (2/n) >> Zoo.tga | Arrow.png | Beep.wav | etc…
etc…
Password:
Make use of long (>16 chars) easy to remember passwords, changing them every time.
Carrier bits selection level:
Make always use of different levels for each hiding process. Unhiding attempts by unallowed curious people will grow in complexity.
Examples:
Hiding process 1:
Hiding process 2:
A full system could be:
Example:
+data1 (1/n) [carrier1 | ... | carrier100] [VeryLongPassword1] [BitsSelectionLevelSettings1]
+data2 (2/n) [carrier1 | ... | carrier100] [VeryLongPassword2] [BitsSelectionLevelSettings2]
etc...
+A very unsuspicious "index" carrier [FixedPassword] [FixedBitsSelectionLevel] holding a text file that summaries:
This could grow into a real user-defined secret transmission channel between people!
Variance:
Always check windows report!
Examples:
[BMP,PCX,PNG,TGA]
[JPG]
[AIFF,NEXT/SUN,WAV]
[MP3]
Puff v1.01 Steganografia & Authoring
Nascondere dati e authoring, semplice, sicuro e gratis!
Cosimo Oliboni, Italia, 2004
Blackvisionit@yahoo.it
CARATTERISTICHE: PERCHE’ QUESTO PRORGRAMMA E’ DIFFERENTE DAGLI ALTRI?
COSA E’ LA STEGANOGRAFIA? PERCHE’ DOVREI AVERNE BISOGNO?
COSA E’ L’AUTHORING? PERCHE’ DOVREI AVERNE BISOGNO?
FORMATI SUPPORTATI IN DETTAGLIO
OPZIONI AVANZATE: FORMATO DI OUTPUT & LIVELLO DI SELEZIONE BIT
SUGGERIMENTI PER RISULTATI MIGLIORI
1o Release Dic/2004: Download Puff v1.01 (.ZIP)
Tutte le necessarie precauzioni di sicurezza sono state implementate: crittografia a password, crittografia random, cancellazione a basso livello dei file temporanei, ecc...
Note legali:
Ricordate: questo programma non è stato scritto per uso illegale.
L’uso di questo programma in violazione delle leggi del vostro paese è assolutamente proibito.
L’autore declina qualsiasi responsabilità conseguente dall’uso improprio di questo programma.
Nè codice nè formati coperti da brevetto sono stati inseriti in questo programma.
Nota speciale MP3:
Questo programma non codifica o decodifica dati audio.
Esclusivamente i
bit ausiliari (bit inutilizzati dello stream MP3) vengono trattati. Ogni altro elemento viene semplicemente saltato.Quindi, per favore, non inviate richieste per contributi/tasse/royalty di brevetto.
Questo è un programma registrato:
è totalmente gratis: le uniche cose che non potete fare sono
Inviate i vostri suggerimenti, commenti, segnalazioni, richieste, ecc... a blackvision@yahoo.it
Contattatemi inoltre se doveste ricevere una copia manipolata/non funzionante di questo programma, indicando come ne siete entrati in possesso. Ve ne manderò gratis una originale e funzionante.
CARATTERISTICHE: PERCHE’ QUESTO PRORGRAMMA E’ DIFFERENTE DAGLI ALTRI?
Ovviamente la steganografia non è un’idea nuova, ma gli altri programmi che ho testato non rispondevano minimamente ai miei requisiti minimi di sicurezza. Ho inoltre pensato che anche voi avreste potuto trarre vantaggio da un programma di steganografia "nuovo e a prova di bomba". Un’interfaccia scritta appositamente per utenti esigenti e consapevoli.
LIVELLO DI SELEZIONE BIT:
Ogni tipo di carrier può venire trattato in 7 modi differenti: la complessità del recupero crescerà di 7 per tipo di carrier adoperato.
ALGORITMO DI CRITTOGRAFIA:
16 differenti algoritmi di crittografia, con 16 sottovarianti, per un totale di 256. Esattamente ogni possibile valore di un byte!
Inoltre, la sequenza degli algoritmi è random.
CRITTOGRAFIA A PASSWORD:
L’algoritmo di crittografia a password è stato progettato per produrre un numero elevato di valori fissi ridondanti. Ovviamente ciò aumenta la complessità del recupero.
CATENE DI CARRIER:
I dati vengono suddivisi fra i vari carrier. Solo la sequenza corretta di carrier ne permette il recupero: la complessità cresce di n!, dove n è il numero di carrier. Potrete inoltre nascondere fino a 256Mb di dati, avendo abbastanza carrier a disposizione. L’ultimo carrier verrà riempito con bit random per renderlo indistinguibile dagli altri.
ecc...
TRATTAMENTO ALFABETICO:
I carrier verranno trattati in ordine alfabetico. Non si potrà quindi cercare nemmeno a basso livello una traccia fisica del loro ordine logico.
SICUREZZA GLOBALE:
SOMMARIO:
Qualcuno potrà anche riuscere ad effettuare il debug del programma e a scoprire l’algoritmo di crittografia (sarebbe un lavoro enorme, non impossibilie, ma immenso). Anche in questo caso una semplice catena di 20 carrier di 3 differenti tipi potrebbe richiedere 4e+19 tentativi per violarne la protezione, tralasciando la protezione a password! Potrete ottenere risultati ottimali solo comprendendo a pieno tutte le opzioni e i trucchi che vi vengono offerti.
AUTHORING:
Una versione semplificata dello stesso meccanismo è disponibile per l’authoring, un metodo in più per firmare i vostri lavori!
È un metodo originale per nascondere dati all’interno di altri file, chiamati carrier. I carrier modificati avranno lo stesso aspetto degli originali, senza alcun cambiamento percettibile. I migliori carrier sono immagini e file audio, dato che chiunque può inviarli/riceverli/scaricarli senza destare sospetti. Come è possibile tutto ciò?
Le immagini e i file audio necessitano di molti bit per elemento, così se ne può usare almeno 1 per rappresentare i vostri dati nascosti.
Esempi:
11000011, 10110100, 01101110, 11101001 --> 1001
[Tecnica del bit meno significativo]11000010, 10110101, 01101100, 11101011 --> 10010011
[Tecnica dei 2 bit meno significativi]ecc…
PERCHE’ DOVREI AVERNE BISOGNO?
Non
avete bisogno di questo metodo se i vostri dati
Potreste
essere interessati a questo metodo se i vostri dati
Per
Authoring si intende l’azione di firmare un file con il vostro marchio di copyright (meglio noto come Watermarking). Questo programma lo fa in modo steganografico, all’interno di immagini e file audio. Il vostro marchio di copyright risulterà invisibile, ma accessibile da parte di chiunque (usando questo programma), dal momento che non sarà protetto da password.
PERCHE’ DOVREI AVERNE BISOGNO?
Non
avete bisogno di questo metodo se il vostro marchio di copyright
Potreste essere interessati
a questo metodo se il vostro marchio di copyright
Un uso tipico di questo metodo potrebbe essere: inserimento di un marchio di copyright invisibile all’interno di file registrati che devono essere pubblicamente condivisi. Le copie manipolate illegalmente potranno forse somigliare agli originali, ma perderanno totalmente/parzialmente il marchio invisibile. Poichè questo metodo non è singolarmente a prova di bomba, deve essere combinato con altri: registrazione, CRC, ecc...
FORMATI SUPPORTATI IN DETTAGLIO
Immagini:
BMP, JPG, PCX, PNG, TGA.Audio:
AIFF, MP3, NEXT/SUN, WAV.Moduli Win PE
.I carrier manterranno il loro formato:
ecc...
I tag/chunk addizionali e i byte extra saranno integralmente copiati senza modifiche.
Non eseguite nessuna nuova operazione sui carrier modificati. I loro carrier bit verrebbero molto probabilmente alterati!
Note:
Immagini BITMAP di WINDOWS (Microsoft)
Immagini JPG (Joint Photographic Experts Group)
Formati JPG non supportati:
Immagini PCX (ZSoft)
Immagini PNG (Portable Network Graphics)
Immagini TGA (Targa Truevision)
File audio AIFF (Audio Interchange File Format)
File audio MP3 (Fraunhofer Institut)
Formati MP3 non supportati:
File audio NEXT/SUN (Macchine Sun & Next)
File audio WAV (Microsoft)
Moduli Win PE
Ogni eseguibile/libreria/screen saver di windows prodotto di recente, dovrebbe essere stato compilato in formato PE (portable executable).
È diviso in sottosezioni: .text, .bss., .data, .rsrc, etc...
Ci interessa la sezione
.rsrc che può contenere file BMP e WAV.*.386;*.3gr;8b*;*.98;*.acm;*.api;*.apl;*.ara;*.arx;*.asi;*.ax;*.awx;*.bmi;*.chs;
*.cht;*.cnv;*.cpl;*.csy;*.d01;*.dan;*.deu;*.dbx;*.dic;*.dl*;*.drv;*.ds;*.ell;
*.enu;*.esp;*.exe;*.fla;*.fln;*.flt;*.fon;*.fra;*.grm;*.gup;*.heb;*.hdi;*.hun;
*.hx*.ime;*.imp;*.ita;*.jpn;*.kor;*.mod;*.mpd;*.mst;*.nld;*.nls;*.nor;*.ocx;
*.olb;*.pci;*.pdr;*.pkg;*.plk;*.ptb;*.rll;*.rus;*.scr;*.se;*.sfx;*.src;*.str;
*.sve;*.sys;*.tas;*.tha;*.tlb;*.trk;*.tsk;*.tsp;*.vbx;*.wll;*.wpc;*.wpl;*.x32;
*.xfm;*.xh*;*.xpg
Le librerie VXD e altri moduli speciali sono compilati in formato NE o LE. Solitamente non contengono risorse e sono stati esclusi.
OPZIONI AVANZATE: FORMATO DI OUTPUT & LIVELLO DI SELEZIONE BIT
[PCX,TGA]
(Originale) I carrier verranno scritti nel loro formato originale.
(Compresso) I carrier verranno scritti in formato compresso.
(Non compresso) I carrier verranno scritti in formato non compresso.
Solo pochi visualizzatori/editor supportano il formato PCX non compresso.
[PNG]
(Originale) I carrier verranno scritti nel loro formato originale.
(Interlacciato) I carrier verranno scritti in formato interlacciato.
(Lineare) I carrier verranno scritti in formato lineare.
Il formato PNG interlacciato è solitamente adoperato in internet.
Il formato PNG è diviso in chunk, i dati dell’immagine vengono salvati in una catena di chunck IDAT.
(da 16Kb a 4Mb) I carrier verranno suddivisi in chunk IDAT della dimensione selezionata.
64Kb può essere definita come la dimensione standard dei chunk IDAT.
Chunk IDAT più grandi assicurano una minore dimensione totale del file, tuttavia potrebbero risultare illeggibili da parte di alcuni visualizzatori/editor.
(Minimo) Compressione minima, veloce.
(Massimo) Compressione massima, lenta.
La dimensione minima viene assicurata da Lineare+4 Mb+Massimo.
La massima ottimizzazione per internet viene assicurata da Interlacciato+16Kb+Minimo.
[AIFF,BMP,JPG,MP3,NEXT/SUN,PCX,PNG,TGA,WAV]
(Minimo) Quasi tutti i pixel/campioni verranno trattati.
(Massimo) Solo alcuni pixel/campioni verranno trattati.
Per recuperare i dati, ricordate di impostare il livello di selezione bit allo stesso valore usato per nasconderli!
Esempio:
SUGGERIMENTI PER RISULTATI MIGLIORI
Catene di carrier:
Nascondete i vostri dati all’interno di catene singole o multiple di carrier, aggiungendo carrier in ordine imprevedibile. I tentativi di recupero da parte di estranei non autorizzati cresceranno esponenzialmente in complessità.
Esempio di carrier singolo: (Semplice, Recupero veloce, Non sicuro)
mieidatipersonali >> John.mp3
Esempio di catena singola: (Complessità media, Recupero medio, Sicuro)
mieidatipersonali >> Bear.jpg | Zoo.tga | Arrow.png | John.bmp | Beep.wav | ecc…
Esempio di catene multiple: (Complessità massima, Recupero lento, A prova di bomba)
+mieidatipersonali (1/n) >> Bear.jpg | Arrow.png | John.bmp | ecc…
+mieidatipersonali (2/n) >> Zoo.tga | Arrow.png | Beep.wav | ecc…
ecc…
Password:
Usate password lunghe (>16 caratteri) facili da ricordare, cambiandole di volta in volta.
Livello di selezione bit dei carrier:
Usate sempre livelli diversi per ogni operazione. I tentativi di recupero da parte di estranei non autorizzati cresceranno esponenzialmente in complessità.
Esempi:
Operazione 1:
Operazione 2:
Un sistema completo potrebbe essere:
Esempio:
+dati1 (1/n) [carrier1 | ... | carrier100] [PasswordMoltoLunga1] [ImpostazioniLivelloSelezioneBit1]
+dati2 (2/n) [carrier1 | ... | carrier100] [PasswordMoltoLunga2] [ImpostazioniLivelloSelezioneBit2]
ecc...
+Un carrier "indice" assolutamente non sospetto [PasswordFissa] [LivelloSelezioneBitFisso] contenente un file di testo che riassuma:
Questo potrebbe diventare un vero canale di comunicazione segreto e personalizzabile!
Varianza:
Controllate sempre il rapporto di fine processo!
Esempi:
[BMP,PCX,PNG,TGA]
[JPG]
[AIFF,NEXT/SUN,WAV]
[MP3]
Frame[]={ header() + error_check() + audio_data() + ancillary_bits() }
14/12/2004 all links tested and still up to date
TUTORIALS, LINKS
http://www.chrisneel.it/rubriche/steganografia/index.htm
http://www.watermarkingworld.org
http://www.tonycrypt.com/Crittografia/Stegano.htm
http://www.pc-facile.com/security.php?id=11
http://www.ilfronte.net/crittografia_trasmettere.asp
http://www.nigh7sky.net/tutorials.asp
http://bfi.freaknet.org/bfi-it.html
http://bfi.anomalistic.org/bfi-it.html
http://www.savoldelli.net/matematica/steganografia.html
http://www.ol-service.com/sikurezza/misterpici/Steganografia.htm
http://www.violettanet.it/links/STEGANOGRAFIA.htm
http://www.twurled-world.com/Infowar/Update3/URL_Details/URL_638.htm
http://niels.xtdnet.nl/stego/abc.html
http://it.wikipedia.org/wiki/Steganografia
http://db.accomazzi.net/TistituzionaleI21Mistituzionale.html
http://www.weblit.it/tuttogratis/privacy.shtml
http://www.petitcolas.net/fabien/steganography
http://www.mikiweb.org/informatica4.htm
http://www.electronetmodena.it/criptazione.htm
http://www.gnomixland.com/index.php?module=subjects&func=viewpage&pageid=19
http://www.gnomixland.com/index.php?module=subjects&func=viewpage&pageid=20
& DOWNLOADS
ftp://ftp.funet.fi/pub/crypt/steganography/
http://www.insicurezza.org/directory.asp?cat=8
http://www.psicopolis.com/synaptica/notiziari/avatar/cripto.htm
http://www.volalibero.it/gimp_steganografia.html
ftp://ftp.ntua.gr/pub/crypt/mirrors/idea.sec.dsi.unimi.it/code/s-tools4.zip
http://www.wbailer.com/wbstego
http://www.darkside.com.au/snow/index.html
http://www.compris.com/TextHide/en
http://web.tiscali.it/winzozz/programmi.htm
http://www.jjtc.com/stegoarchive/stego.html
Hiding:
Hide1.jpg Hide2.jpg Hide3.jpg Hide4.jpgAuthoring/Watermarking:
Auth.jpgAdvanced Options:
Opt.jpg