2009-08-01 37 views
21

Come posso scrivere alcune informazioni all'interno di un file di foto come jpg o gif senza distruggere l'immagine? e ovviamente senza mostrarlo sulla foto poiché l'idea è quella di inviare informazioni nel file di foto non rilevate da nessuno (per fornire una certa sicurezza/privacy)!Come puoi nascondere le informazioni all'interno di una foto jpg o gif?

+1

Si prega di non contrassegnare le parole composte. "informazioni" da solo è un tag completamente inutile per questa domanda; e il termine tecnico per questo è "steganografia". Per favore non rimuovilo. http://en.wikipedia.org/wiki/Steganography –

+1

Grazie per il suggerimento, non lo sapevo prima! :) –

+1

Memorizza le informazioni nei dati EXIF. – geoff

risposta

2

È possibile memorizzare alcune informazioni nei metadati dell'immagine. In effetti è così che le fotocamere digitali uomo "taggano" le foto che fanno (modello di fotocamera, data e ora, coordinate GPS ecc.).

Questo formato dati è denominato EXIF (Formato file immagine intercambiabile). Ci sono molti esempi su come usarlo nei linguaggi di programmazione. Here's l'esempio in Java.

Se si vuole impedire agli utenti di lettura di questi dati è possibile cifrare in qualche modo, ma saranno sempre in grado di rimuoverlo dalla tua foto (aprendo in Photoshop e utilizzando Salva con nome, per esempio).

+0

Quindi "Salva con nome" in PhotoShop rimuoverebbe i metadati? Conoscete un software che consentirebbe di modificarlo? –

+1

Penso che Photoshop riscriverà questi dati con i propri dati. Penso che ci siano molti editor EXIF, ad esempio ho trovato l'editor Quick EXIF ​​gratuito http://www.photo-freeware.net/quick-exif-editor.php – RaYell

+0

Great! Qualcosa per Mac? –

40

È possibile concatenare una gif e una zip (le informazioni che si desidera nascondere) in un unico file. Le GIF vengono lette dall'inizio del file, mentre le zip vengono lette dalla fine del file.

Per creare questo tipo di file in Linux:

$ cat file1.gif >> outfile.gif 
$ cat file2.zip >> outfile.gif 

Il file risultante dovrebbe avere le dimensioni di file1.gif e file2.zip insieme e dovrebbe essere apribile da qualsiasi visualizzatore di GIF e gestore di file zip.

+0

Probabilmente il modo più semplice per nascondere le informazioni :) Ma come lo si recupera? – Burkhard

+2

come ho detto, è possibile aprire il file risultante (file di estensione) con qualsiasi archiviatore standard in grado di gestire i file zip ed estrarre le informazioni. – crazymaik

+0

Ups. Leggo solo la prima parte. Proverò la parte zip più tardi. – Burkhard

25

Sono sicuro che ci sono molti modi. Eccone uno:

In una fotografia, piccole variazioni di colore sono spesso impercettibili a occhio nudo, o anche se notate, potrebbero facilmente essere scambiate per difetti nella qualità dell'immagine.

Quindi, per fare un semplice esempio, si supponga di avere un'immagine GIF in scala di grigi in cui il pallet è disposto in ordine dal bianco al nero con una gamma regolare di grigi in mezzo. Non sono sicuro di quanto sai sui formati di file grafici, ma in GIF hai un byte per pixel, con ogni possibile mappatura del valore di byte per un determinato colore. Quindi in questo caso potremmo dire pallette # 0 = RGB (0,0,0), pallette # 1 = RGB (1,1,1), ... palette # 255 = RGB (255,255,255).

Quindi si prende una normale, vera fotografia. Rompi il tuo messaggio segreto in singoli bit. Imposta l'ultimo bit di ciascun numero indice pallette in bit successivi del tuo messaggio.

Ad esempio, supponiamo che i primi otto pixel della foto originale siano, ad esempio, 01 00 C9 FF FF C8 42 43. Il tuo messaggio inizia con la lettera "C", codice ASCII 0110 0111. Quindi cambi l'ultimo bit del primo byte a 0, cambiando il byte da 01 a 00. Si cambia l'ultimo bit del secondo byte a 1, cambiando il byte da 00 a 01. Si modifica l'ultimo bit del terzo byte a 1. È già 1 , quindi non fa differenza. Ecc. Si finisce con 8 byte codificati 00 01 C9 FE FF C9 43 43.

Le modifiche ai colori sarebbero così sottili che è improbabile che qualcuno osservi l'immagine. Anche se avessero notato, a meno che non avessero un motivo per essere sospettosi, probabilmente concluderebbero che l'immagine era di qualità non perfetta.

Ovviamente nulla dice che è necessario utilizzare 1 bit per byte per il messaggio segreto. A seconda di quanto degrado in termini di qualità pensi di poter fare a meno, potresti usare 2 bit per byte o semplicemente cambiare 1 bit in ogni altro byte, ecc.

Naturalmente la stessa tecnica può essere utilizzata con foto a colori: cambiare l'ultimo bit in ciascuna delle componenti RGB per codificare i 3 bit per pixel, ecc

2

Se si desidera nascondere i dati (testo, un'altra immagine , qualunque sia) in un file jpeg, puoi semplicemente aggiungerlo alla fine del file. Quando l'immagine viene visualizzata, vedrai solo l'immagine originale e i tuoi dati aggiunti saranno ignorati.

Pur non essendo un modo super-mega di nascondere i dati, questo è un buon modo di nascondere un'altra jpeg, come se qualcuno apre il file in Blocco note o un editor esadecimale, che probabilmente non si accorgono che ci sono due file JPEG e non uno perché la fine della seconda immagine sembrerà comunque la prima.

9

Ehi, quel metodo è chiamato Steganografia. Con ciò possiamo nascondere i messaggi non solo nelle immagini ma anche nell'audio, nei vistio e in altri formati.

Ecco un software Steganography opensouce chiamato steganotool Questo progetto è uno strumento di steganografia open source che può essere utilizzato per nascondere ed estrarre il testo da/verso immagini Bitmap.

Chi steganografia medium

steganografia nelle immagini

Questo tipo di steganografia è molto efficace contro la scoperta e può servire una varietà di scopi. Questi scopi possono includere l'autenticazione, l'occultamento di messaggi e la trasmissione di chiavi di crittografia. Il metodo più efficace per questo tipo di steganografia è normalmente il metodo di bit meno significativo. Ciò significa semplicemente che il messaggio nascosto modificherà l'ultimo bit di un byte in un'immagine. Modificando quell'ultimo bit, non ci sarà alcun cambiamento relativamente al colore di quel pixel all'interno dell'immagine portante. Ciò impedisce al messaggio di essere facilmente rilevato. Il miglior tipo di file immagine per nascondere le informazioni all'interno è un bitmap a 24 bit. Ciò è dovuto alla grande dimensione del file e all'elevata qualità.

steganografia in Audio

Nel file audio, il metodo più importante per nascondere le informazioni è il metodo di codifica po 'bassa. Il metodo di codifica a bit bassi è in qualche modo simile al metodo di bit meno significativo utilizzato nei file di immagine. Le informazioni segrete sono allegate alla fine del file. Uno dei problemi con la codifica a bit basso è che può essere percepibile dall'orecchio umano. Se qualcuno sta cercando di nascondere le informazioni, questo potrebbe essere rischioso, poiché è facilmente rilevabile. Il metodo dello spettro esteso è un altro metodo che è stato utilizzato per nascondere le informazioni nei file audio. Che cosa fa questo metodo, aggiunge rumore casuale alla trasmissione audio. Questo metodo consente alle informazioni di essere diffuse attraverso lo spettro di frequenza e di rimanere hiddden sotto il rumore casuale. L'ultimo metodo visto nella steganografia audio è l'eco che nasconde i dati. Questo metodo cerca di nascondere le informazioni usando gli echos che si verificano naturalmente all'interno dei file audio. Quindi, è possibile aggiungere un suono extra a questi echi, mentre il suono extra è il messaggio nascosto. Questo è un modo sufficiente per nascondere le informazioni, soprattutto perché in alcuni casi migliora persino il suono del file audio originale.

steganografia Nel video

steganografia nei video è fondamentalmente nasconde delle informazioni in ogni fotogramma del video. Solo una piccola quantità di informazioni è nascosta all'interno del video, in genere non è affatto visibile, tuttavia più informazioni sono nascoste e più diventa evidente. Anche questo metodo è efficace, ma deve essere fatto bene oppure rivelare più informazioni invece di nascondersi.

Steganografia In Documenti

Questo è fondamentalmente Aggiunta di spazi e schede per le estremità delle linee di un documento. Questo tipo di stregoneria è estremamente efficace, in quanto l'uso dello spazio bianco e delle schede non è visibile all'occhio umano nella maggior parte degli editor di testo/documenti.

Si può anche riferirsi a questa open source project

Questo article può essere molto utile.

1

in Windows è possibile utilizzare il comando semplice per nascondere archivio in immagine: copy/b Documents.rar cat_new.jpg cat.jpg +. E quindi utilizzare ad esempio winrar per estrarre i dati da un'immagine ftom come da archivio.
Ma il modo migliore è usare la steganografia.
semplice programma per esso per Linux e Windows: http://linux01.gwdg.de/~alatham/stego.html
usando questo programma potrete utilizzare frase password, senza che nessuno si saprà, che si nascose alcuni dati in immagine))

1

dati compressi in file GIF è in pezzi di dimensioni variabili. ogni blocco inizia con un byte di lunghezza. Di solito questi pezzi sono di 255 byte di dati (e il byte di lunghezza dice 255) fatta eccezione per gli ultimi due pezzi (l'ultimo è 0)

Ma si potrebbe ri-codice gif con pezzi le cui dimensioni enuncia il messaggio ad esempio utilizzando caratteri per testo ASCII o byte 1234 rappresenta 00011011 dati binari,

analisi byte-frequenza sul gIF rivelerebbe meno attesi 255 byte. e la dimensione sarebbe più grande dell'originale, ma l'immagine sarebbe esattamente la stessa.