Comments
Description
Transcript
Steganografia di Immagini Bitmap
Steganografia di Immagini Bitmap di Francesco Barchi La steganografia è una tecnica che permette di nascondere un'informazione all'interno di altri dati, lasciando questi ultimi “fenotipicamente” inalterati. La steganografia si applica efficientemente a file musicali o alle immagini. Nel nostro caso il programma qui allegato permette di nascondere un certo numero di dati all'interno di un file Bitmap. I file Bitmap sono file binari che rappresentano un'immagine raster ed hanno comunemente l'estensione .bmp. Il termine raster nella computer grafica, indica un'immagine definita tramite una matrice di punti che costituisce un'immagine e ad ogni elemento, chiamato pixel, viene associato uno specifico colore. Il colore può essere definito con due tecniche: 1. se l'immagine contiene pochi colori (massimo 256) si crea un elenco dei colori da utilizzare e nella scacchiera viene inserito l'indice che punta allo specifico colore del pixel. 2. Nel caso si vogliano utilizzare molti più colori il singolo pixel non definisce più l'indice a una tavolozza di colori ma definisce il colore direttamente. Il colore viene definito come un'unione delle componenti blu, rossa e verde secondo il sistema di codifica RGB. La profondità di colore invece è definita dalla memoria che si dedica ad ogni pixel, ovvero dal numero di bit dedicati ad ogni pixel per descrivere il colore, e si misura in BPP (Bit Per Pixel); maggiore è il numero di bit, maggiore è il numero di colori che è possibile descrivere. Per nascondere un file dentro un'immagine prima di tutto il programma controlla se il file bmp sia alla versione 3 (Esistono più versioni del formato, potrebbe funzionare anche con altri formati ma è stato limitato volontariamente) e che la profondità di colore sia di 24 bit (3 Byte per Pixel). Se il file corrisponde a queste caratteristiche viene calcolato il lato di una ipotetica matrice in cui ogni cella rappresenta 3 pixel nella quale verrà nascosto un Byte (Si nasconde 1Byte in 9Byte). Viene richiesta una password che viene usata per calcolare e memorizzare in una lista tante coordinate della matrice ipotetica quanti sono i Byte del file da nascondere (più 4 coordinate riservate per nascondere anche le dimensioni del file). Per nascondere un file si procede in questo modo: 1. Si estrae un Byte del file da nascondere 2. Lo si converte in binario 3. Si prendono le coordinate dalla lista e ci si posiziona all'inizio della sequenza dei tre pixel nel file Bitmap. 4. Si caricano i pixel ed i colori in una struttura. Un bit da nascondere è posto nel bit meno significativo di uno dei colori di un pixel. Lo si fa per tutti gli 8 bit. 5. Ci si riposiziona all'inizio della sequenza dei 3 pixel e si riscrive la struttura con i colori modificati. 6. Si ripete l'operazione fino alla fine del file. Le modifiche al colore dei pixel sono impercettibili all'occhio umano, in questo modo è molto difficile riconoscere un file stenografato da quello originale ad occhio nudo.