occultamento di testi in immagini digitalizzate

Le pagine Web sono arricchite da disegni e fotografie, che sembrano proprio quello che sono: disegni e fotografie, appunto. Eppure, rispetto ai disegni ed alle fotografie presenti nelle opere cartacee, c'è una differenza fondamentale: sono immagini digitalizzate. Possono essere stampate, è vero; ed in tal caso tornano ad essere semplici disegni e fotografie, ma quando sono presenti sul monitor (ossia nel computer che le "vede" come una sequenza di numeri), possono essere qualcosa di più... memesi

Tutte le immagini computerizzate (digitali) sono basate su una successione di punti, chiamati pixels, che costituiscono una griglia molto fine in grado di disegnare un'immagine con notevole accuratezza. Ciascuno di questi pixels ha un proprio colore, rappresentato come quantità separate di rosso, verde e blu. All'interno del sistema Microsoft® Windows, per esempio, ciascun colore può variare tra 256 livelli compresi tra 0 (nessun colore e 255 un colore saturo). Un pixel con una terna RGB di 0, 0, 0 è nero; uno con una terna di 255, 255, 255 è bianco.

Un sistema a 24 bit (3 byte) divide questi in 3 gruppi di 8 bit (1 byte) per definire il rosso (Red), verde (Green) e blu (Blue). Il risultato è 28= 256 possibili variazioni (per saturazione e luminosità) di rosso ed altrettante di verde e blu. La loro combinazione fornisce 256x256x256=16.777.216 colori teorici differenti.
In realtà, la maggior parte delle immagini non necessita di un così elevato numero di colori e già 40.000 colori sono un valore considerevolmente alto. Questo significa che la stessa immagine a 24 bit potrebbe essere memorizzata con 16 bit (per ogni pixel) senza differenze percepibili. Gli 8 bit (24-16) che risparmiamo su ogni pixel (codificati in modo opportuno) possono essere utilizzati per qualcosa di differente: occultare un testo in un'immagine!

Per un'immagine a 24 bit, l'occultamento di un file è semplice perchè 24 bit sono immagazzinati internamente come terne RGB, le quali - come abbiamo visto - sono sovrabbondanti. Così, tutto ciò che è necessario è distribuire i nostri bit da occultare nell'immagine scelta e salvare il tutto in un nuovo file. Lo svantaggio di questo è che immagini a 24 bit sono attualmente poco comuni in INTERNET (ad eccezione delle immagini in formato JPG per le quali al momento non vi sono algoritmi di occultamento disponibili), e quindi catturerebbero l'attenzione proprio di quelle persone dai quali ci si vuole difendere. Queste immagini sono anche molto "pesanti" poiché contengono 3 bytes per ogni pixel (per una immagine 640x480 la dimensione è 640x480x3=921.600 bytes).

E' notevolmente più difficile nascondere qualche cosa in un'immagine a 256 colori (8 bit). Questo perchè l'immagine già di per sé può avere 200 colori, che la nostra intromissione porterebbe al di sopra del massimo assoluto di 256 colori rendendo impossibile un'operazione di occultamento. Tuttavia, si può verificare facilmente che la perdita di qualità conseguente alla riduzione di colori di un'immagine da 16,7 milioni di colori (24 bit) a 256 colori (8 bit) è molto maggiore di quanto sia lo scadimento da 256 (8 bit) a 32 (5 bit) colori.

nemesi : downloadCliccando sul dischetto, potete scaricare dirattamente da qui una copia del programma "S-Tools" (freeware - 272 Kb) che riduce il numero di colori dell'immagine in modo da conservare quanto più possibile il dettaglio dell'immagine originale. Di solito fa un lavoro molto buono, e spesso non si riconosce la differenza tra un'immagine a 256 colori e la stessa ridotta a 32. (La copia che otterrete è in formato compresso, per utilizzarla, dovete scaricare il programma "jzip" dopo aver raggiunto dalla sezione ARTICOLI la pagina relativa a "la compattazione dei dati numerici").

foto originale
questa è la fotografia originale (205 colori), nella quale vogliamo occultare questo logo

immagine da occultare
a destra è il risultato ottenuto: come si vede, non è molto buono e verrebbe voglia di controllare se il realizzatore del sito ha voluto risparmiare sui bytes dell'immagine, oppure vi ha occultato qualcosa. In questo caso, sarà bene provare altre immagini fino ad ottenere un risultato insospettabile.
foto con testo
foto con immagine
a sinistra, invece, è il risultato ottenuto occultando un breve messaggio di testo: è molto buono e difficilmente induce sospetti.

Sebbene in pratica spesso le immagini verranno ridotte al minimo di 32 colori, non c'è alcuna garanzia che questi siano sufficienti per restituire un'immagine immodificata in modo da occultarvi un file. In questo caso, si tratta semplicemente di effettuare varie prove con soggetti differenti in modo da scegliere l'immagine più adatta al nostro scopo.

nemesi

copyright Marcello Guidotti, 1999
Questo articolo può essere liberamente pubblicato su qualsiasi rivista interamente o in estratto, purché sia citata la fonte e l'indirizzo di questo sito.

(il programma S-tools è anche scaricabile dal sito dell'autore www.members.iquest.net/~mrmil/stego/s-tools4.html)