<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mind Unpacked &#187; Watermark</title>
	<atom:link href="http://mindunpacked.com/tag/watermark/feed/" rel="self" type="application/rss+xml" />
	<link>http://mindunpacked.com</link>
	<description>informatica.elettronica.chimica.new stuff</description>
	<lastBuildDate>Tue, 22 Dec 2009 17:35:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
<link>http://mindunpacked.com</link>
<url>http://mindunpacked.com/wp-content/plugins/maxblogpress-favicon/icons/favicon-2.ico</url>
<title>Mind Unpacked</title>
</image>
		<item>
		<title>Introduzione alla steganografia digitale</title>
		<link>http://mindunpacked.com/2008/introduzione-alla-steganografia-digitale/</link>
		<comments>http://mindunpacked.com/2008/introduzione-alla-steganografia-digitale/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 22:41:45 +0000</pubDate>
		<dc:creator>Marco</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[LSB]]></category>
		<category><![CDATA[Steganografia]]></category>
		<category><![CDATA[Watermark]]></category>

		<guid isPermaLink="false">http://mindunpacked.com/?p=30</guid>
		<description><![CDATA[Introduzione
La parola steganografia significa letteralmente – in greco &#8211; “scrittura nascosta”, e questo vi potrebbe far pensare subito alla crittografia in quanto anche questa, in un certo senso, ha lo scopo di occultare dei messaggi. Tuttavia fra le due c&#8217;è una differenza sostanziale: mentre la crittografia si preoccupa di rendere un messaggio illeggibile agli occhi [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0cm;"><strong>Introduzione</strong></p>
<p style="text-align: justify;">La parola steganografia significa letteralmente – in greco &#8211; “scrittura nascosta”, e questo vi potrebbe far pensare subito alla crittografia in quanto anche questa, in un certo senso, ha lo scopo di occultare dei messaggi. Tuttavia fra le due c&#8217;è una differenza sostanziale: mentre la crittografia si preoccupa di rendere un messaggio illeggibile agli occhi di una persona non autorizzata, la steganografia fa in modo che una persona non autorizzata non si renda nemmeno conto dell&#8217;esistenza del messaggio in questione, malgrado esso sia totalmente in chiaro. La fusione delle due tecniche, cioè steganografare un messaggio criptato, è un ottima soluzione per aumentare il livello di sicurezza.<span id="more-30"></span></p>
<p style="margin-bottom: 0cm; text-align: justify;">La steganografia è piuttosto antica come tecnica, e solo ultimamente è stata introdotta in campo digitale. Gli stessi geroglifici egiziani possono essere considerati una sorta di messaggi steganografati, in quanto potrebbero essere dei semplici disegni per chi non ne conosce il significato, ma al contrario fonte di molte informazioni per chi sa decifrarli. A parte questo esempio, i fautori di questa tecnica furono proprio i greci che incidevano il testo su delle tavolette per poi ricoprirle di cera, e quindi occultare il testo. Lo sviluppo concreto della tecnica, tuttavia, fu opera di <a href="http://it.wikipedia.org/wiki/Johannes_Trithemius" target="_blank">Johannes Trithemius</a> (pseudonimo di <em><span style="font-style: normal;">Johann</span></em><span style="font-style: normal;"> Heidenberg)</span> che inventò quello che oggi è conosciuto a tutti come <strong>acrostico</strong>, ovvero una frase che si forma mettendo insieme delle parole – in modo più o meno sensato &#8211; le cui iniziali vadano a comporre un ulteriore messaggio. Questa tecnica fu comunque perfezionata da Heidenberg stesso, seguendo alcuni piccoli accorgimenti. Più recentemente, ed in particolare durante la seconda guerra mondiale, i nazisti usavano la tecnica dei micropunti fotografici: sono delle particolari fotografie dalle dimensioni irrisorie che una volta sviluppate ed ingrandite svelano il messaggio nascosto.</p>
<p style="margin-bottom: 0cm;">Questo era un breve excursus storico, ma ora passiamo a cose più tecniche.</p>
<p><center><script type="text/javascript">
heyos_ad_user = 11334;
heyos_ad_type = "G";
heyos_ad_format = "1";
heyos_color_border = "23292b";
heyos_color_bg = "23292b";
heyos_color_link = "FFFFFF";
heyos_color_text = "21b8ca";
heyos_color_url = "21b8ca";
</script>
<script type="text/javascript" src="http://admaster.heyos.com/core/bnr.js"></script></center></p>
<p><strong>La steganogarfia digitale</strong></p>
<p style="margin-bottom: 0cm; text-align: justify;">In ambito digitale occultare una qualche informazione equivale a sostituire dei bit relativamente poco importanti (chiamati bit ridondanti) con bit che, rimessi insieme con un opportuno algoritmo, formino un&#8217;informazione diversa dal file che li contiene. I dati da nascondere vengono celati all&#8217;interno di contenitori (detti cover o medium), i quali possono essere dei file di diversa natura (immagini, video, testi etc). I metodi utilizzati per fare ciò sono sostanzialmente tre:</p>
<p style="margin-bottom: 0cm; text-align: justify;"><strong>Iniezione</strong>: questo metodo consiste nell&#8217;aggiungere &#8211; quindi qui non si parla di sostituzione &#8211; dei bit all&#8217;interno del cover. La pecca di questa tecnica è che la grandezza del file può aumentare anche considerevolmente, a seconda dei bit iniettati, ma ovviamente per dei piccoli dati può andare bene.</p>
<p style="margin-bottom: 0cm; text-align: justify;"><strong>Sostituzione</strong>: si tratta di sostituire i bit inutili, o meglio ridondanti, presenti nel file, con quelli da noi voluti. A seconda della percentuale di bit sostituiti l&#8217;aspetto del file può variare più o meno considerevolmente. In un&#8217;immagine, ad esempio, alcuni dettagli potrebbero svanire o degradarsi.</p>
<p style="text-align: justify;"><strong>Generazione di un nuovo file</strong>: in questo caso non è necessario nessun cover, ma ne viene creato uno che sia perfettamente adatto ad ospitare i dati da occultare. In questo modo eventuali artefatti non si dovrebbero notare.</p>
<p style="margin-bottom: 0cm;">Vorrei aprire una piccola parentesi riguardo ai <strong>watermark</strong> ed ai <strong>fingerprint</strong>.</p>
<p style="margin-bottom: 0cm; text-align: justify;">I watermark non sono altro che messaggi o semplicemente delle firme che vengono nascoste nelle immagini il più delle volte per identificarne l&#8217;autore, così da ridurre le violazioni del copyright. Molti programmi di grafica professionale includono questa funzione. Anche svariate macchine fotografiche digitali inseriscono nelle foto dati riguardanti l&#8217;esposizione i tempi e quant&#8217;altro, ed il tutto può essere all&#8217;occorrenza letto. Si tratta anche qui di algoritmi steganografici, che però vengono usati per scopi più pratici che per questioni di sicurezza o privacy.</p>
<p style="margin-bottom: 0cm; text-align: justify;">Il fingerprint, invece, è una sorta di watermark, ma applicato principalmente a dei prodotti software per prevenire la copia pirata degli stessi. In pratica per ogni copia venduta viene iniettato un codice univoco in qualche file del software, ed in caso di necessità questo viene usato per verificare l&#8217;autenticità dello stesso, ovvero che non esistano altri software con il medesimo codice.</p>
<p style="margin-bottom: 0cm; text-align: justify;">Ritornando ai suddetti metodi di occultaggio, quello di sostituzione è il più utilizzato, questo perché raggiunge un compromesso tra perdita di informazioni del cover ed informazioni iniettate. Inoltre si può adattare a moltissimi tipi di file.</p>
<p style="margin-bottom: 0cm; text-align: justify;">Per questa introduzione mi limiterò a descrivere uno degli algoritmi di base più diffusi, usato principalmente per occultare informazioni nelle immagini (in questo caso immagini senza compressione, come le bitmap). Si tratta dell&#8217;algoritmo LSB (Least Significant Bit, bit meno significativo) che in parole povere non fa altro che sostituire gli ultimi bit di una sequenza di byte, quindi riducendo al minimo gli <a href="http://it.wikipedia.org/wiki/Artefatto_(segnali)" target="_blank">artefatti</a>. Questo è possibile anche grazie ad alcune nozioni spiegate dalla teoria dell&#8217;informazione e dipende dall&#8217;<a href="http://it.wikipedia.org/wiki/Entropia_(teoria_dell%27informazione)" target="_blank">entropia</a> sempre minore del 100% che contraddistingue la maggior parte dei file non compressi. Comunque non approfondirò questo argomento in questa sede, anche perché andrei abbastanza fuori tema.</p>
<p><strong>L&#8217;algoritmo LSB</strong></p>
<p>Come già detto questo algoritmo non fa altro che cambiare il bit low-end dei vari byte, ad esempio:</p>
<p>1100101(1)</p>
<p style="text-align: justify;">in questo caso l&#8217;ultimo bit (1) è quello che possiamo modificare. Vediamo ora com&#8217;è possibile sostituire dei bit nelle immagini bitmap, o comunque prive di compressione.<br />
Queste immagini sono solitamente in modalità RGB, cioè ad ogni pixel corrisponde un determinato valore di rosso, verde e blu. 255, 255, 255 = pixel bianco 0, 0, 0 = pixel nero. E così per tutti gli altri colori. Ora, se voi provate a colorare un pixel con la sequenza 255, 253, 255 il risultato vi sembra forse diverso dal bianco? A meno che non abbiate una vista da superdotati, la risposta è no.</p>
<p style="margin-bottom: 0cm;">Per ogni pixel quindi sono necessari 3 byte per definirne il colore:</p>
<p style="margin-bottom: 0cm;">1111 1111<br />
1111 1111<br />
1111 1111</p>
<p style="margin-bottom: 0cm; text-align: justify;">in questo caso viene definito il colore bianco, ricordando comunque che il primo byte determina la percentuale di rosso, il secondo di verde, ed il terzo di blu. L&#8217;algoritmo sfrutta proprio questa particolarità della struttura delle immagini per inserire dati in bit che sono sostanzialmente irrilevanti.<br />
Quindi poniamo di voler occultare la lettera “a” (01100001) in una sequenza di byte, quale può essere un&#8217;immagine:<br />
&#8230;<br />
11011010<br />
10001011<br />
11001000<br />
01011010<br />
11001111<br />
11101010<br />
01011010<br />
11001011<br />
&#8230;</p>
<p>ecco come procedere:</p>
<p>&#8230;<br />
11011010<br />
10001011<br />
1100100(1) &lt;&#8211; bit modificato<br />
01011010<br />
1100111(0) &lt;&#8211; bit modificato<br />
11101010<br />
01011010<br />
11001011<br />
&#8230;</p>
<p style="text-align: justify;">Come avete visto è bastato modificare solo due bit perché gli altri corrispondevano già a quelli da nascondere. In questo caso è praticamente impossibile capire che il file è stato steganografato, ma ovviamente può capitare di dover nascondere molti più bit, e quindi mutarne di più. Per esempio anche una semplice frase che in totale occupa 20 byte necessiterà – nel peggiore dei casi &#8211; di una sequenza di 160 byte. Comunque nella quasi totalità dei casi, secondo statistiche, il numero di bit da alterare è circa la metà dei bit da occultare nel file.</p>
<p style="margin-bottom: 0cm; text-align: justify;">L&#8217;LSB sta alla base di molti altri algoritmi di sostituzione che riescono ad iniettare informazioni anche in immagini compresse come le jpeg o le gif, oppure in file audio o video. Tratterò questi algoritmi nello specifico in altri articoli, magari anche citando alcuni programmi che ne fanno uso.</p>
]]></content:encoded>
			<wfw:commentRss>http://mindunpacked.com/2008/introduzione-alla-steganografia-digitale/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- www.000webhost.com Analytics Code -->
<script type="text/javascript" src="http://analytics.hosting24.com/count.php"></script>
<noscript><a href="http://www.hosting24.com/"><img src="http://analytics.hosting24.com/count.php" alt="web hosting" /></a></noscript>
<!-- End Of Analytics Code -->
