elementi di crittografia - dipartimento...
TRANSCRIPT
1
Elementi di crittografia
Aprile 2005
Autrici: Monia Lanni
Daniela Vittiglio
versione: 3.draft
Sommario
1 Elementi di
Crittografia…………………………………………
……………………………1
1.1 Introduzione…………………………………………………………………………………1
1.2 Motivazione per la cripto……………………………………………………………………3
1.3 Tecniche Crittografiche……………………………………………………………………..3
1.4 Algoritmi a chiave simmetrica………………………………………………………………8
1.5 Algoritmi a chiave asimmetrica……………………………………………………………..9
1.6 Funzioni Hash………………………………………………………………………………10
1.1 2 Elementi di
Steganografia……………………………………………………………………1
3
2.1 Introduzione……………………………………………………………………………….13
2.2 Tecniche Steganografiche ………………………………………………………………...14
2.2.1. Steganografia Selettiva………………………………………………………………….18
2.2.2. Steganografia Costruttiva……………………………………………………………….19
2.2.3. Principio di Kerckhoff …………………………………………………………………19
2.3 Watermark: diritti d’autore e commercio elettronico……………………………………...21
2.4 Il Sistema Steganografica …………………………………………………………………22
2.5 Fasi Steganografiche………………………………………………………………………22
2
2.6 La Stegoanalisi ………………………………………………………………………….22
2.6.1. Stegosistema esteso……………………………………………………………………..23
2.2 3 Steganografia
nell’Audio……………………………………………………………………..25
3.1 Introduzione……………………………………………………………………………….25
3.2 Tecniche utilizzate………………………………………………………………………...25
3.2.1 Phase encoding…………………………………………………………………………..25
3.2.2 Spread spectrum encoding………………………………………………………………26
3.2.3 LSB encoding……………………………………………………………………………26
3.2.4 Echo data heading……………………………………………………………………….26
3.2.5 S-Tools…………………………………………………………………………………..26
3.2.6 MP3 Stego……………………………………………………………………………….27
3.2.7 Filigrana Digitale Audio………………………………………………………………...28
3.2.7.1 COPYCODE: un esempio di audio filigranato………………………………………..29
3.2.7.2 Requisiti della Filigrana Digitale…………………………………………………….29
3.2.7.3 Il Watermarking ed il Digital Right Management (DRM) per la gestione
di diritti digitali ………………………………………………………………………..30
3.2.7.4 Efficacia ed applicabilità del Digital Watermarking …………………………………31
4 Steganografia nelle
Immagini………………………………………………………………..33
4.1 Introduzione……………………………………………………………………………….33
4.2 Formati di compressione delle immagini………………………………………………….34
4.2.1 Il formato GIF…………………………………………………………………………...34
4.2.2 Il formato JPEG………………………………………………………………………….34
4.2.3 Il formato BMP………………………………………………………………………….35
4.3 Altri programmi steganografici……………………………………………………………35
4.4 Attacchi alle Immagini…………………………………………………………………….36
4.5 Teoria e tecniche di watermarking nelle immagini fisse.…………………………………36
4.5.1 Autenticazione ………………………………………………………………………….3
7
3
4.5.2 Lo Spread
Spectrum………………………………………………………………….….38
4.5.3 La
Modulazione…………………………………………………………………………39
4.5.4 Recupero del
marchio…………………………………………………………………...42
4.5.5 Caratteristiche dei segnali di
Watermarks……………………………………………….42
4.5.6 Schema di inserzione e rivelazione della
firma………………………………………….43
4.5.6.1 L’inserzione……………………………………………………………………………
43
4.5.6.2 La
rivelazione………………………………………………………………………….44
4.5.7 Tecniche di
watermarking……………………………………………………………….45
4.5.7.1 Metodo del
LSB……………………………………………………………………….45
4.5.7.2 Watermarking nel dominio spaziale(metodo di
Kutter)………………………………45
4.5.7.3 Watermarking nel dominio delle frequenze(metodo di
Cox)…………………………46
4.5.8 Attacchi e
Robustezza…………………………………………………………………...47
4.5.8.1 Esempi di dead
lock…………………………………………………………………...48
3.3 5 Steganografia nel
Video………………………………………………………………………50
5.1 Introduzione……………………………………………………………………………….50
5.2 Video Editing in MPEG-4…………………………………………………………………51
5.3 Watermark Embedding……………………………………………………………………52
5.4 Recupero del Watermark…………………………………………………………………..55
5.5 Risultati Sperimentali……………………………………………………………………...56
4
5.5.1 Esperimenti sulla Visibilità...…………………………………………………………...57
5.5.2 Robustezza e Diminuzione del Bit-Rate………………………………………………...58
5.5.3 Robustezza e Frame Dropping…………………………………………………………..60
5.5.4 Confidence Measure……………………………………………………………………..62
6 Steganografia in JPEG2000………………………………………………………………….63
6.1 Codifica JPEG2000………………………………………………………………………..
6.2 Informazioni Nascoste in JPEG2000………………………………………………………
6.2.1 Challenges di Informazioni Nascoste…………………………………………………..
6.2.2 Embedding Progressivo di un‘Immagine Nascosta e suoi svantaggi…………………..
6.2.3 Informazioni Nascoste con codifica in modo Lazy…………………………………….
6.2.4 Selezione dei Passi di Raffinamento per l’Embedding………………………………….
6.2.5 Perdita nel Backward Embedding……………………………………………………….
6.2.6 Stegoanalisi di Informazioni Nascoste………………………………………………….
6.3 Risultati Sperimentali………………………………………………………………
5
1 Elementi di Crittografia
4.4 Introduzione
La criptografia è la scienza che consente di mantenere segrete le informazioni che non si vogliono
divulgare pubblicamente, in maniera tale che la possibilità di accedervi sia data soltanto ad uno o
ad un ristretto numero di persone autorizzate.
L'operazione tramite la quale si nascondono le informazioni è chiamata cifratura oppure
criptazione, ed è effettuata tramite un apposito algoritmo, che sfrutta come mezzo fondamentale
una chiave per convertire il testo chiaro in testo cifrato o criptogramma.
Naturalmente il processo di criptografia deve essere reversibile e consentire, quindi, di rendere
intelleggibile un documento precedentemente criptato. Con "decriptazione" si intende la
conversione da testo cifrato a testo chiaro e anch'essa sfrutta la chiave del cifrario.
Si supponga che qualcuno desideri inviare un messaggio ad un destinatario e voglia essere sicuro
che nessun altro possa leggerlo. Nella terminologia della crittografia, il messaggio è chiamato
testo in chiaro (plaintext o cleartext). Con il termine crittografare (vd fig) si intende codificare il
contenuto del messaggio in modo che risulti non comprensibile da estranei.
Il messaggio crittografato è quindi denominato testo cifrato (ciphertext). Il processo di recupero
del testo in chiaro dal testo cifrato è denominato decrittazione. I processi di codifica e decodifica
fanno normalmente uso di una chiave, e il metodo di codifica è costruito in modo che la decodifica
possa essere effettuata soltanto conoscendo la chiave appropriata. La moderna crittografia tratta
tutti gli aspetti della messaggistica sicura, dell'autenticazione, delle firme elettroniche, del denaro
Figura 1 – Schema di crittografia
6
elettronico e altre applicazioni. I moderni algoritmi non possono essere eseguiti da esseri umani,
ma solo da computer o dispositivi hardware specializzati: essi utilizzano una chiave che è
sottoposta ai due processi di codifica e decodifica in modo che un messaggio possa essere
decrittato solo se la chiave corrisponde a quella di criptazione.
Ci sono due classi di algoritmi basati su chiave:
• simmetrici (o a chiave segreta): utilizzano la stessa chiave per la codifica e la decodifica.
• asimmetrici (o a chiave pubblica): usano una chiave differente per i due processi di codifica e di
decodifica; inoltre la chiave per la decodifica non può essere derivata da quella di codifica. Gli
algoritmi asimmetrici permettono di rendere pubblica la chiave di codifica, cosicché chiunque può
essere in grado di codificarli, ma solo chi conosce la chiave di decodifica (chiave privata) può
interpretare il messaggio.
I sistemi a crittografia pubblica offrono alcuni vantaggi rispetto a quelli a chiave simmetrica. Per
esempio, la chiave pubblica può essere facilmente distribuita senza il timore di compromettere la
sicurezza; non è neanche necessario inviarne una copia a tutti i corrispondenti: essa può essere
prelevata da un server di chiavi pubblico mantenuto da un'autorità di certificazione. Un altro
vantaggio della crittografia a chiave pubblica è quella di permettere di autenticare il creatore del
messaggio. Nella pratica, come, per esempio, nell'implementazione di PGP, gli algoritmi a chiave
asimmetrica e quelli a chiave simmetrica sono spesso utilizzati insieme: con la chiave pubblica
viene codificata una chiave di crittografia generata casualmente, questa ultima è utilizzata per
crittografare il messaggio utilizzando un algoritmo simmetrico. Molti ottimi algoritmi di
crittografia sono disponibili pubblicamente attraverso libri, uffici brevetti o Internet: proprio per
questo motivo, l'algoritmo di pubblico dominio è soggetto alla revisione di centinaia di esperti che
ne scoprono e sistemano le eventuali debolezze.
La chiave è una funzione particolare opportunamente progettata e consiste di una stringa
relativamente corta. La caratteristica fondamentale è la possibilità di cambiare la chiave quando è
necessario o quando si desidera. La lunghezza della chiave è un parametro di progetto critico. È
infatti questa lunghezza che determina il tempo necessario per decifrare il testo in cifra. In base al
numero di cifre che compongono una chiave, varia il numero di chiavi disponibili con una data
tecnica. Se la stringa è formata da 2 cifre si possono individuare 100 possibili chiavi da (00 a 99);
se la stringa è formata da 3 cifre si hanno 1000 chiavi possibili e se la stringa è formata da 6 cifre
si hanno 1000000 di possibili chiavi. Quindi più lunga è la chiave e maggiore è il tempo
necessario (work factor) per un crittanalista per individuare la chiave. In genere il work factor è
proporzionale all'esponente della lunghezza della chiave. La segretezza consiste nell'avere un buon
algoritmo di dominio pubblico ed una chiave abbastanza lunga ma segreta.
7
1.2 Motivazioni per la crypto
Difendere la privacy individuale in un'era di crescente computerizzazione sta diventando un
problema cardine con il quale alla fine tutti avranno a che fare. Ci sono due casi generali in cui è
necessario avvalersi dell'appoggio della crittografia:
• quando l'informazione, una volta crittata, deve semplicemente essere conservata sul posto e
dunque confezionata in modo tale da renderla invulnerabile ad accessi non autorizzati
• quando l'informazione deve essere trasmessa in qualche luogo e dunque la crittazione è
necessaria, perché se qualcuno la intercettasse non potrebbe capirne il senso.
Riguardo al primo caso, un crittosistema a chiave segreta (simmetrica) è quello più consono, sia
perché è più veloce sia perché non esiste alcun problema connesso con lo scambio e la validazione
delle chiavi. Il secondo caso è quello che richiama l'attenzione della maggior parte delle
compagnie produttrici di software crittografico. In effetti, l'utilizzo sempre più esteso della
telematica sta introducendo nella tecnica delle comunicazioni quella che a pieno diritto può essere
definita una rivoluzione. Il punto cardine di questa rivoluzione è rappresentato dall'accesso di
massa alla posta elettronica, tramite la quale è consentita la libera espressione e la libera
circolazione di idee su scala mondiale, rendendo inoltre possibile questa circolazione nella
direzione dal singolo alla moltitudine e non solo nel verso opposto. Se si esamina dal punto di
vista tecnico uno dei mezzi principali attraverso cui questa libera circolazione d'idee avviene, ossia
Internet, appare chiaro che essa, così come si verifica per la rete telefonica e per il traffico di dati
su carta, costituisce un canale di comunicazione che di per se non garantisce la segretezza dei dati
che vi circolano.
Se si osserva l'intestazione di un qualunque messaggio è possibile rendersi conto di come prima di
arrivare a destinazione i messaggi transitino attraverso diversi nodi. Maggiore è il numero di nodi
attraverso cui il messaggio deve passare prima di giungere alla destinazione finale, maggiore è la
probabilità che tale messaggio possa essere intercettato e manomesso da qualcuno. Da qui,
l'esigenza di adoperare algoritmi, a chiave simmetrica, a chiave pubblica o una qualche
combinazione delle due che siano così potenti da resistere a tutti i tipi di attacchi oggi conosciuti,
che consentano, insomma, a tutti gli utilizzatori di Internet di poter comunicare con tranquillità.
1.3 Tecniche crittografiche
Le tecniche usate per ottenere un testo cifrato da un testo in chiaro sono:
•Sostituzione
•Trasposizione
8
•One-time pads
Nel progettare un algoritmo si considerano due principi basilari:
1. il messaggio crittato deve contenere della ridondanza in modo tale che gli intrusi non possano
mandare dei messaggi casuali che possono essere interpretati come messaggi validi;
2. i messaggi crittati devono raggiungere la destinazione entro un certo intervallo di tempo
altrimenti vengono rigettati. Questo secondo principio nasce dall'esigenza di impedire all'intruso di
trasmettere nuovamente il messaggio di inizio sessione presentandosi come il precedente
interlocutore.
Sostituzione
La sostituzione è una delle tecniche utilizzate per crittografare un'informazione.
Nel substitution cipher ogni lettera o gruppo di lettere del messaggio iniziale è sostituita da
un'altra lettera o da un altro gruppo di lettere. Per ottenere un alfabeto cifrato bisogna seguire la
seguente procedura: si considera l'alfabeto e si trasla l'origine dell'alfabeto stesso di k posizioni
successivamente si sostituisce ogni lettera del testo originale con la corrispondente lettera
dell'alfabeto cifrato.
In questo caso k è la chiave dell'algoritmo. Per esempio, dall'alfabeto anglosassone
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
si ottiene l'alfabeto cifrato
Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
dove k =16 è la chiave. La relazione matematica che descrive tale algoritmo è data da:
nkxy ii += (1)
dove yi è la lettera cifrata, xi è il carattere in chiaro dell'alfabeto, k il valore della chiave e n il
numero di lettere che costituiscono l'alfabeto.
Questo metodo è chiamato sostituzione mono alfabetica ed è molto semplice. Ipotizzando un
alfabeto si 26 caratteri, le possibili sostituzioni sono pari a 25 x (26!), cioè circa 9.7 x 1027 modi
differenti, dove 25 sono i possibili valori assegnabili a k e 26! è il numero di modi in cui si può
9
riscrivere l'alfabeto. Pur essendo abbastanza semplice, questo algoritmo è molto sicuro a fronte di
un attacco di tipo brute-force; ipotizzando che in ogni microsecondo possa essere effettuato un
tentativo, il tempo di analisi richiede 1014 anni. Tuttavia, a causa delle proprietà statistiche del
linguaggio parlato, con una piccola quantità di testo cifrato si è in grado di trovare la chiave.
Esistono ovviamente delle tecniche di sostituzione più sofisticate rispetto a quella presentata
nell'esempio.
Una variante del suddetto algoritmo consiste nella codifica poli-alfabetica. Partendo dalla tabella
del Vigenere (ved fig.) è possibile estrarne alcune colonne sulla base di una chiave di crittografia
(ad esempio: DANTE).
Figura 2:
Supponendo quindi che il testo in chiaro sia:
Lasciate ogni speranza
Il carattere viene codificato prendendo la riga indicizzata dalla lettera chiave attualmente utlizzata,
e la colonna corrispondente alla lettera che si vuole codificare:
Testo in chiaro:
L A S C I A T E O G N I S P E R A N Z A
10
Chiave:
D A N T E D A N T E D A N T E D A N T E
Testo cifrato:
O A F V M D T R H K Q I F I I U A A S E
Anche in questo caso, però, la frequenza di una lettera all'interno della frase può ancora essere
ottenuta dividendo il testo cifrato in blocchi di lunghezza pari alla lunghezza della chiave:
Tabella 3 – Tabella per la ricerca del testo in chiaro
O A F V M
D T R H K
Q I F I I
U A A S E
A questo punto ogni colonna viene analizzata poiché è ottenuta da alfabeti diversi. Si tenga
presente che la lunghezza della chiave non è nota, quindi la ricerca è una complicazione che
aumenta il grado di sicurezza.
I due metodi presentati sono comunque vulnerabili agli attacchi basati sull'analisi del testo alla
ricerca della frequenza di una lettera nel messaggio.
Trasposizione
La trasposizione è una delle tecniche utilizzate per crittografare un'informazione.
Il transposition cipher è un algoritmo che riordina le lettere del testo originale in modo da ottenere
il testo cifrato. Uno dei metodi è la trasposizione per colonna. La chiave è una parola oppure una
frase che non contiene lettere ripetute al suo interno. Si considerino come testo originale il
seguente:
please tranfer one million dollars to my swiss bank account six two two
Si sceglie come chiave la parola megabuck e si ordina il tutto nel seguente modo:
7 4 5 1 2 8 3 6
11
M E G A B U C K
p l e a s e t r
a n s f e r o n
e m i l l i o n
d o l l a r s t
o m y s w i s s
b a n k a c c o
u n t s i x t w
o t w o a b c d
In base alla parola chiave si enumerano le colonne in modo crescente e tale da fare corrispondere
il numero 1 alla lettera della chiave più vicina alla lettera A, origine dell'alfabeto. In questo caso
alla colonna individuata da M si associa 7, alla colonna individuata da E si associa 4, alla colonna
individuata da G si associa 5, alla colonna individuata da A si associa 1, alla colonna individuata
da B si associa 2, alla colonna individuata da U si associa 8, alla colonna individuata da C si
associa 3, alla colonna individuata da K si associa 6. Partendo dalla colonna corrispondente al
numero 1 si legge per colonna ottenendo il testo cifrato:
afllskso selawaia toossctc lnmomant esilyntw rnntsowd paedobuo eriricxb.
One-time pads
Il one-time pads è una delle tecniche utilizzate per crittografare un'informazione.
L'algoritmo è il seguente:
• si sceglie in modo casuale una stringa di bit come chiave
• si converte il testo originale in formato di stringa di bit
• successivamente si effettua l'operazione di EXCLUSIVE OR (XOR) tra la chiave e il testo da
crittare.
Questo metodo ha degli inconvenienti:
• la chiave non può essere memorizzata così che sia il mittente che il destinatario devono avere
una copia della chiave stessa
• la quantità di dati che può essere trasmessa è limitata dalle dimensioni della chiave
• il metodo è molto sensibile alla perdita o all'inserimento di caratteri
• il metodo è sensibile alla sincronizzazione tra la sorgente ed il destinatario.
12
1.4 Algoritmi a chiave simmetrica
Nei crittosistemi a chiave segreta (vd fig.) viene usata una sola chiave (secret key), detta appunto
segreta, utilizzata come parametro di una funzione (per la cifratura e la decifratura) unidirezionale
e invertibile, permettendo così di elaborare il testo del messaggio da trasmettere rendendolo
incomprensibile agli intercettatori (attacker). Essendo la funzione invertibile, il destinatario deve
soltanto elaborare nuovamente il testo cifrato richiamando l'inversa della funzione di cifratura
avente come parametro la stessa chiave utilizzata dal mittente.
Figura 2 – Cifratura con crittografia a chiave segreta
Ovviamente, la tecnica si basa sulla capacità del mittente e del destinatario di mantenere segreto il
codice di cifratura. Con il sistema a chiave segreta, il mittente e il destinatario devono raggiungere
un accordo sulla scelta della chiave. La cosa non è facile se essi si trovano agli estremi di un
canale di comunicazione insicuro di migliaia di chilometri. Un tempo coppie di chiavi identiche
erano inventate presso un mezzo centrale di generazione delle chiavi e poi trasmesse alla loro
destinazione da un corriere (canale sicuro?!). Naturalmente, un metodo di questo tipo si dimostrò
subito inadeguato. Nacque allora spontaneo pensare di trasmettere tali chiavi, precedentemente
cifrate, sulla rete stessa. Una soluzione a tale problema, di seguito esposta, fu ideata nel 1985
sfruttando una gestione gerarchica delle chiavi. Un'organizzazione sceglie una chiave principale e
la distribuisce mediante un corriere a ciascuno dei suoi uffici, raggruppati in regioni. Ogni
capoufficio regionale sceglie, a sua volta, una chiave regionale. Queste vengono cifrate usando la
chiave principale e distribuite su tutta la rete. Se due uffici della stessa regione vogliono
comunicare, uno di essi sceglie una chiave di sessione e la invia all'altro, cifrata mediante quella
regionale. Oppure può essere creata la chiave di sessione da un processo di gestione esterno,
13
inviata ad ambedue gli uffici e codificata con la chiave regionale. Si nota che è sempre necessario
un corriere esterno per la diffusione della chiave principale e nel caso di dubbia sicurezza di
questa, essa dovrà essere subito sostituita.
1.5 Algoritmi a chiave asimmetrica
La cifratura a chiave pubblica ha rivoluzionato il mondo della crittografia. La sua potenzialità è
legata al fatto che non è necessario che le parti in comunicazione si scambino alcuna chiave, così
come avviene per la crittografia a chiave segreta. Ogni parte possiede, infatti, due chiavi: una
pubblica e l'altra privata.
Il metodo si basa su due concetti fondamentali:
1. Un messaggio codificato con una delle due chiavi può essere decifrato solo con l'altra
2. Non è matematicamente possibile ricavare una chiave dall'altra.
Non è possibile, quindi, risalire alla chiave privata (tenuta segreta dal proprietario) partendo da
quella pubblica (resa disponibile a tutti).
I due scenari di impiego della crittografia a chiave pubblica sono i seguenti:
a) Il mittente cripta il messaggio con la propria chiave privata (K1); il destinatario, che conosce
l'identità di chi gli invia il messaggio, lo decripta utilizzando la chiave pubblica (K2) del mittente.
In questo contesto, si garantiscono l'autenticazione del mittente e l'integrità del messaggio. Non è
garantita la confidenzialità poiché la chiave pubblica del mittente è a disposizione di tutti, quindi
tutti possono decritittografare il messaggio;
b) Il mittente cripta il messaggio con la chiave pubblica del destinatario, che è nota a tutti; il
destinatario riconosce che il messaggio è per lui e lo decripta con la propria chiave privata, nota
solo a lui. Solo il destinatario, che conosce la chiave segreta corrispondente alla chiave pubblica
utilizzata dal mittente, sarà in grado di leggere il messaggio. Così si garantisce la confidenzialità.
È possibile autenticare oltre al mittente anche il contenuto del messaggio: il mittente potrebbe
effettuare un hashing del testo da inviare, cioè applicare una funzione unidirezionale che a partire
da un certo messaggio fornisce un valore di hash (di lunghezza fissa) e tale che se il messaggio
venisse alterato questo valore cambierebbe. Il mittente, una volta aggiunto tale valore in fondo al
suo messaggio, passa alla cifratura con la sua chiave personale. Chiunque può decodificare con la
chiave pubblica del mittente il testo inviato o solo il valore di hash per verificare che sia stata
proprio lui a scriverlo e che il valore di hash non sia modificato, ma corrisponda sempre a quel
messaggio. Questa modalità è alla base del concetto di Firma Elettronica.
14
Purtroppo gli algoritmi a chiave pubblica sono piuttosto lenti e quindi sono solitamente usati solo
per cifrare una chiave di sessione con la quale si codifica il messaggio nel modo tradizionale, cioè
con crittografia simmetrica.
Figura 3 – Cifratura con crittografia a chiave pubblica
1.6 Funzioni Hash
Una funzione one-way hash trasforma un testo normale di lunghezza arbitraria in una stringa di
lunghezza relativamente limitata. Questa stringa rappresenta un'impronta digitale unica del
messaggio e viene spesso definito valore di hash o checksum crittografico (o anche digest). Di
nessun valore di hash di lunghezza finita si può avere la certezza che provenga da un singolo
messaggio, anche se la funzione hash ideale dovrebbe essere univoca (senza collisioni). Inoltre
dato un valore di hash, dovrebbe essere impossibile risalire al suo testo originale (altrimenti la
funzione non sarebbe più one-way). Per una dimostrazione, si usano due valori di hash,
provenienti da input molto diversi in un sistema Unix, ottenuti tramite l'algoritmo MD5, che estrae
da input di qualunque dimensione valori di hash di 128 bit, che possono essere rappresentati con
16 cifre esadecimali:
15
"% echo "a" ¦ md5
valore di hash corrispondente:
60B725F10C9C85C70D97880DFE8191B3
"% cat congressional-minutes.txt ¦ md5
valore di hash corrispondente:
EDED6F6C520DEB812BA7154D093AD43.
Le funzioni one-way hash svolgono due funzioni molto importanti nella crittografia:
1. verifica dell'integrità: se il valore di hash di un certo messaggio è uguale prima e dopo la
trasmissione, allora vi sono ottime possibilità che il messaggio ricevuto sia rimasto invariato
2. concisione: nei calcoli matematici risulta più facile usare un'impronta a 128 bit quanto non lo
sia un testo normale.
La lunghezza dei valori di hash varia a seconda degli algoritmi. Quelli a 128 bit sono i più comuni
e i preferiti, per il maggiore numero dei bit. Si pensi che una funzione hash a 4 bit non è di alcuna
utilità per una verifica dell'integrità perché 1/16 dei possibili messaggi sono mappati su uno dei 16
possibili valori di hash. Un hacker che modifica un messaggio può farlo agevolmente in modo tale
da lasciare lo stesso valore di hash. Se invece si usa un valore di hash da 160 bit, l'hacker
dovrebbe modificare il messaggio in 2159 maniere diverse per ottenere il corretto valore di hash.
Le funzioni di hash possono essere usate per la creazione di firme digitali. Molti crittosistemi
richiedono calcoli molto lunghi e complessi per apporre la propria firma digitale su un file di
grosse dimensioni, mentre, grazie a queste funzioni, si può semplicemente calcolare e firmare il
valore di hash del file sicuramente di dimensioni molto ridotte, risparmiando risorse.
MD2 (Message Digest 2)
inventato da Ron Rivest della RSA Data Security, è una funzione nata per essere utilizzata con la
Privacy Enhaced Mail (PEM). Produce un valore di hash di 128 bit e richiede come input multipli
di 16 byte. MD2 esegue il pad (cioè aggiunge i bit mancanti) dei messaggi d'ingresso che non
16
hanno la lunghezza integrale. Questo algoritmo è stato violato dalla crittoanalisi e quindi ne è
ovviamente sconsigliato l'uso.
MD4
Inventato da Ron Rivest della RSA Data Security, MD4 crea anch'esso, come il precedente, valori
di hash di 128 bit ma i calcoli sono ottimizzati per i registri a 32 bit come quelli che si possono
trovare nella famiglia dei processori Intel 80x86. Sicuramente più veloce di MD2, MD4 richiede
pad (aggiunta di bit) a multipli di 512 bit. Inoltre il padding comprende sempre un valore di 64 bit
che indica la lunghezza del messaggio che non ha subito il pad. In questo modo MD4 è più sicuro
del suo antecedente, perché se già è difficile produrre due messaggi che abbiano stesso valore di
hash di 128 bit, è ancora più difficile fare lo stesso con due messaggi che abbiano la stessa
lunghezza con modulo 264.
MD5
MD5, come i precedenti, è stato ideato da Ron Rivest della RSA Data Security. È nato per
sostituire MD4 che sta per essere violato. Non cambia molto sulla struttura, ma è solo
un'estensione del suddetto anche se un pò più lento:
• il testo è diviso in blocchi lunghi 512 bit
• viene generato un hash di 128 bit (4x32)
• sono usate quattro variabili per l'inizio
• è basato su XOR e operazioni logiche
• le operazioni sono iterate.
SHA
SHA (Secure Hash Algorithm) è un algoritmo hash prodotto dal National Istitute of Standard and
Tecnology (NIST) e della National Security Agency (NSA) del governo degli Stati Uniti. Molto
simile a MD4, produce valori di 160 bit a partire da stringhe di lunghezza variabile. É ritenuto
abbastanza sicuro ed è relativamente nuovo.
nota: SHA-1 (ossia SHA-160) era stato pensato per Skipjack-80
Tiger
Tiger è un nuovo algoritmo sviluppato da Anderson e Biham.
17
2 Elementi di Steganografia
2.1 Introduzione
Negli ultimi anni il settore delle telecomunicazioni è stato caratterizzato da una fase di sviluppo
molto rapida (l’avvento di Internet,la trasmissione via satellite e la diffusione dei telefoni cellulari).
La trasmissione delle informazioni però se da un lato consente di comunicare con maggiore facilità
dall’altro rende i dati accessibili anche a chi non è autorizzato a riceverli. Per risolvere questo
problema viene chiamata in causa la crittografia che è una tecnica che altera i documenti originali e
permette di ripristinarli solo a chi è in possesso della chiave corretta.
La crittografia dunque nasconde il contenuto di un messaggio,mentre esiste un’altra tecnica detta
steganografia che nasconde le comunicazioni nell’interno di altri veicoli in modo che non sia
possibile la semplice scoperta del messaggio segreto.
Uno dei primi esempi di steganografia, utilizzato già nell'Evo Antico, prevedeva la rasatura della
testa di un messaggero e il tatuaggio del messaggio sul suo cuoio capelluto. Il messaggio non
poteva essere scoperto una volta che i capelli erano ricresciuti. Un'altra forma comune di
steganografia, in uso nella seconda guerra mondiale, era l'inchiostro invisibile: una lettera
apparentemente innocente poteva contenere tra le righe un messaggio molto diverso.
La steganografia o watermark (detta anche filigrana elettronica) è un sistema di marcatura
utilizzato per inserire all'interno di dati delle informazioni nascoste o poco visibili. La marcatura
può essere inserita per identificare in un secondo momento il dato come proprio e quindi
dimostrarne la proprietà verso terzi oppure per inserire delle informazioni generali come metadati
che possono essere utili per la classificazione o per mettere in relazione il contenuto digitale con
altri contenuti o con siti WWW o per dimostrarne l'autenticità.
Il watermark può essere più o meno invisibile, nell'eccezione odierna viene quasi sempre inteso
come invisibile o viene preteso che lo sia. Il watermark può essere utilizzato anche per comunicare
informazioni che vengono con tale tecnica nascoste in immagini, video, documenti o file audio. È
pertanto possibile con tale tecnica inserire attraverso opportuni algoritmi piccole modifiche
nell'informazione all'interno di informazioni da distribuire. Spesso, colui che riceve tali
informazioni non è a conoscenza del fatto che queste contengono una marcatura. Questo metodo
può essere utilizzato anche per l'invio di informazioni sensibili e segrete. Il watermark nascosto
può contenere informazioni delle più varie e può essere decomposto in varie parti e anche
codificato e criptato. In molti casi è possibile aggiungere vari marchi ad uno stesso dato (per
esempio immagine) e questi possono o meno danneggiarsi a vicenda.
18
In alcuni casi il watermark può essere rimosso per ottenere il dato nella sua forma originale. Nella
maggior parte dei casi gli algoritmi sono studiati per impedire questa possibilità rendendo il dato e
il marchio indivisibili senza il deterioramento della qualità del dato stesso. Ovviamente, vi sono
svariate tecniche che permettono di confondere il watermark presente su un'immagine o su un
audio rendendo la sua rilettura impossibile. Questo tipo di tecnica di attacco non riproduce il dato
in forma originale, ma produce un dato che non contiene di fatto il marchio e pertanto non può
essere rivendicato dal proprietario.
Il watermark è un campo di ricerca relativamente nuovo, praticamente la parte più importante è
stata sviluppata negli ultimi 4-5 anni sotto la pressione delle necessità del mercato. Negli Stati
Uniti il commercio elettronico ha avuto un'evoluzione molto accelerata però la stessa cosa non si
può dire sulla ricerca del metodi e meccanismi per la protezione dei dati trasmessi nella rete. Solo
nel campo musicale la Recording Industry Association of America (RIAA) ha affermato che
l'esistenza di siti pirata che offrono la possibilità di scaricare liberamente musica comporta un
danno di 2 miliardi di dollari all'industria del campo. Questo fatto crea una situazione non usuale
nel campo della ricerca e sviluppo. I possessori di copyright ed i distributori del materiale
proprietario mettono sotto pressione gli sviluppatori per la creazione di meccanismi che
garantiscano la protezione dei loro diritti nel caso di trasmissione o distribuzione via rete. Con
tutto ciò la ricerca e ancora lontana dal soddisfare le esigenze del mercato. Certe aree di ricerca
(watermark su immagini e sul video) sono in una fase più evoluta rispetto alle altre (watermark sul
testo o sul audio).
2.2 Tecniche Steganografiche
Secondo un sistema di classificazione le tecniche steganografiche possono essere ripartite in tre
classi: teganografia sostitutiva, steganografia selettiva e steganografia costruttiva.
Le tecniche del primo tipo sono di gran lunga le più diffuse, tanto che in genere con il termine
steganografia ci si riferisce implicitamente a esse. Tali tecniche si basano sulla seguente
osservazione: la maggior parte dei canali di comunicazione (linee telefoniche, trasmissioni radio,
ecc.) trasmettono segnali che sono sempre accompagnati da qualche tipo di rumore. Questo rumore
può essere sostituito da un segnale - il messaggio segreto - che è stato trasformato in modo tale che,
a meno di conoscere una chiave segreta, è indistinguibile dal rumore vero e proprio, e quindi può
essere trasmesso senza destare sospetti.
Quasi tutti i programmi che sono facilmente reperibili si basano su questa idea, sfruttando la grande
diffusione di file contenenti una codifica digitale di immagini, animazioni e suoni; spesso questi file
sono ottenuti da un processo di conversione analogico/digitale e contengono qualche tipo di rumore.
19
Per esempio, uno scanner può essere visto come uno strumento di misura più o meno preciso.
Un'immagine prodotta da uno scanner, da questo punto di vista, è il risultato di una specifica misura
e come tale è soggetta a essere affetta da errore.
La tecnica base impiegata dalla maggior parte dei programmi, consiste semplicemente nel sostituire
i "bit meno significativi" delle immagini digitalizzate con i bit che costituiscono il file segreto (i bit
meno significativi sono assimilabili ai valori meno significativi di una misura, cioè quelli che
tendono a essere affetti da errori.) Spesso l'immagine che ne risulta non è distinguibile a occhio
nudo da quella originale ed è comunque difficile dire se eventuali perdite di qualità siano dovute
alla presenza di informazioni nascoste oppure all'errore causato dall'impiego di uno scanner poco
preciso, o ancora alla effettiva qualità dell'immagine originale prima di essere digitalizzata. Per
fissare meglio le idee, ecco un esempio concreto. Uno dei modi in cui viene solitamente
rappresentata un'immagine prodotta da uno scanner è la codifica RGB a 24 bit: l'immagine consiste
di una matrice MxN di punti colorati (pixel) e ogni punto è rappresentato da 3 byte, che indicano
rispettivamente i livelli dei colori primari rosso (Red), verde (Green) e blu (Blue) che costituiscono
il colore. In questo modello i colori possibili sono 224 = 16777216; i cosiddetti grigi sono i colori in
cui i livelli di rosso, verde e blu sono coincidenti e quindi sono soltanto 256. Supponiamo che uno
specifico pixel di un'immagine prodotta da uno scanner sia rappresentato dalla tripla (12, 241, 19)
(si tratta di un colore tendente al verde, dato che la componente verde predomina fortemente sulle
altre due); in notazione binaria, le tre componenti sono:
===============
12 = 00001100
241 = 11110001
19 = 00010011
===============
quelli che in precedenza abbiamo chiamato i "bit meno significativi" dell'immagine sono gli ultimi a
destra, cioè 0-1-1, e sono proprio quelli che si utilizzano per nascondere il messaggio segreto. Se
volessimo nascondere in quel pixel l'informazione data dalla sequenza binaria 101, allora
bisognerebbe effettuare la seguente trasformazione:
20
==============================
00001100 --> 00001101 = 13
11110001 --> 11110000 = 240
00010011 --> 00010011 = 19
==============================
La tripla è così diventata (13, 240, 19); si noti che questo tipo di trasformazione consiste nel
sommare 1, sottrarre 1 o lasciare invariato ciascun livello di colore primario, quindi il colore
risultante differisce in misura minima da quello originale. Dato che un solo pixel può contenere
un'informazione di 3 bit, un'immagine di dimensioni MxN può contenere un messaggio segreto
lungo fino a (3*M*N)/8 byte, per esempio un'immagine 1024x768 può contenere 294912 byte.
La tecnica appena descritta rappresenta il cuore della steganografia sostitutiva, anche se di fatto ne
esistono numerose variazioni. Innanzitutto è ovvio che tutto quello che abbiamo detto vale non solo
per le immagini, ma anche per altri tipi di media, per esempio suoni e animazioni digitalizzati.
Inoltre - e questo è meno ovvio - lavorando con le immagini come file contenitori non sempre si
inietta l'informazione al livello dei pixel, ma si è costretti a operare su un livello di rappresentazione
intermedio; è questo il caso, per esempio, delle immagini in formato JPEG, nel quale le immagini
vengono memorizzate solo dopo essere state compresse con una tecnica che tende a preservare le
loro caratteristiche visive piuttosto che l'esatta informazione contenuta nella sequenza di pixel. Se
iniettassimo delle informazioni in una bitmap e poi la salvassimo in formato JPEG, le informazioni
andrebbero perdute, poiché non sarebbe possibile ricostruire la bitmap originale. Per poter utilizzare
anche le immagini JPEG come contenitori, è tuttavia possibile iniettare le informazioni nei
coefficienti di Fourier ottenuti dalla prima fase di compressione.
Esiste un altro caso interessante che merita di essere discusso, ed è quello dei formati di immagini
che fanno uso di palette. La palette (tavolozza) è un sottoinsieme prestabilito di colori. Nei formati
che ne fanno uso, i pixel della bitmap sono vincolati ad assumere come valore uno dei colori
presenti nella palette: in questo modo è possibile rappresentare i pixel con dei puntatori alla palette,
invece che con la terna esplicita RGB (red, green and blue). Ciò in genere permette di ottenere
dimensioni inferiori della bitmap, ma il reale vantaggio è dato dal fatto che le schede grafiche di
alcuni anni fa utilizzavano proprio questa tecnica e quindi non potevano visualizzare direttamente
immagini con un numero arbitrario di colori. Il caso più tipico è quello delle immagini in formato
GIF con palette di 256 colori, ma le palette possono avere anche altre dimensioni. Come è facile
immaginare, un'immagine appena prodotta da uno scanner a colori sarà tipicamente costituita da più
21
di 256 colori diversi, tuttavia esistono algoritmi capaci di ridurre il numero dei colori utilizzati
mantenendo il degrado della qualità entro limiti accettabili. Si può osservare che, allo stesso modo
in cui avviene con il formato JPEG, non è possibile iniettare informazioni sui pixel prima di
convertire l'immagine in formato GIF, perché durante il processo di conversione c'è perdita di
informazione (osserviamo anche che questo non vale per le immagini a livelli di grigi: tali immagini
infatti sono particolarmente adatte per usi steganografici.) La soluzione che viene di solito adottata
per usare immagini GIF come contenitori è dunque la seguente: si riduce il numero dei colori
utilizzati dall'immagine a un valore inferiore a 256 ma ancora sufficiente a mantenere una certa
qualità dell'immagine, dopodiché si finisce di riempire la palette con colori molto simili a quelli
rimasti. A questo punto, per ogni pixel dell'immagine, la palette contiene più di un colore che lo
possa rappresentare (uno è il colore originale, gli altri sono quelli simili ad esso che sono stati
aggiunti in seguito), quindi abbiamo una possibilità di scelta. Tutte le volte che abbiamo una
possibilità di scelta fra più alternative, abbiamo la possibilità di nascondere un'infor mazione:
questo è uno dei principi fondamentali della steganografia. Se le alternative sono due possiamo
nascondere un bit (se il bit è 0, scegliamo la prima, se è 1 la seconda); se le alternative sono quattro
possiamo nascondere due bit (00 -> la prima, 01 -> la seconda, 10 -> la terza, 11 -> la quarta) e così
via.
La soluzione appena discussa dell'utilizzo di GIF come contenitori è molto ingegnosa ma purtroppo
presenta un problema: è facile scrivere un programma che, presa una GIF in ingresso, analizzi i
colori utilizzati e scopra le relazioni che esistono tra di essi; se il programma scopre che l'insieme
dei colori utilizzati può essere ripartito in sottoinsiemi di colori simili, è molto probabile che la GIF
contenga infor mazione steganografata. Di fatto, questo semplice metodo di attacco è stato portato
avanti con pieno successo da diverse persone ai programmi che utilizzano immagini a palette come
contenitori, tanto che qualcuno ha finito per sostenere che non è possibile fare steganografia con
esse.
Per mostrare quanto sia ampia la gamma di tecniche steganografiche, accenniamo a un'altra
possibilità di nascondere informazioni dentro immagini GIF. Come abbiamo detto, in questo
formato viene prima memorizzata una palette e quindi la bitmap (compressa con un algoritmo che
preserva completamente le informazioni) consistente di una sequenza di puntatori alla palette. Se
scambiamo l'ordine di due colori della palette e corrispondentemente tutti i puntatori ad essi,
otteniamo un file diverso che corrisponde però alla stessa immagine, dal punto di vista
dell'immagine il contenuto informativo dei due file è identico. La rappresentazione di immagini con
palette è quindi intrinsecamente ridondante, dato che ci permette di scegliere un qualsiasi ordine dei
colori della palette (purché si riordinino corrispondentemente i puntatori a essi). Se i colori sono
22
256, esistono 256! modi diversi di scrivere la palette, quindi esistono 256! file diversi che
rappresentano la stessa immagine. Inoltre è abbastanza facile trovare un metodo per numerare
univocamente tutte le permutazioni di ogni data palette (basta, per esempio, considerare
l'ordinamento sulle componenti RGB dei colori). Dato che abbiamo 256! possibilità di scelta, è
possibile codificare log(256!) = 1683 bit, cioè 210 byte. Si noti che questo numero è indipendente
dalle dimensioni dell'immagine, in altre parole è possibile iniettare 210 bytes anche su piccole
immagini del tipo icone 16x16 semplicemente permutando in modo opportuno la palette.
Dopo avere esaminato alcune tecniche steganografiche di tipo sostitutivo, discutiamo adesso i
problemi relativi alla loro sicurezza. Innanzitutto premettiamo che le norme che valgono
generalmente per i programmi di crittografia dovrebbero essere osservate anche per l'utilizzo dei
programmi steganografici. Per ciò che riguarda le specifiche caratteristiche della steganografia, si
tengano presente i seguenti principi: in primo luogo si eviti di usare come contenitori file prelevati
da siti pubblici o comunque noti (per esempio, immagini incluse in pacchetti software, ecc.); in
secondo luogo si eviti di usare più di una volta lo stesso file contenitore (l'ideale sarebbe quello di
generarne ogni volta di nuovi, mediante scanner e convertitori da analogico a digitale, e distruggere
gli originali dopo averli usati).
Come si è visto, queste tecniche consistono nel sostituire un elemento di scarsa importanza (in certi
casi di importanza nulla) da file di vario tipo, con il messaggio segreto che vogliamo nascondere.
Quello che viene ritenuto il principale difetto di queste tecniche è che in genere la sostituzione
operata può alterare le caratteristiche statistiche del rumore presente nel media utilizzato. Lo
scenario è il seguente: si suppone che il nemico disponga di un modello del rumore e che utilizzi
tale modello per controllare i file che riesce a intercettare. Se il rumore presente in un file non è
conforme al modello, allora il file è da considerarsi sospetto. Si può osservare che questo tipo di
attacco non è per niente facile da realizzare, data l'impossibilità pratica di costruire un modello che
tenga conto di tutte le possibili sorgenti di errori/ rumori, tuttavia in proposito esistono degli studi
che in casi molto specifici hanno avuto qualche successo.
La steganografia selettiva e quella costruttiva hanno proprio lo scopo di eliminare questo difetto
della steganografia sostitutiva. Vediamo di cosa si tratta.
2.2.1 Steganografia Selettiva
La steganografia selettiva ha valore puramente teorico e, per quanto se ne sappia, non viene
realmente utilizzata nella pratica. L'idea su cui si basa è quella di procedere per tentativi, ripetendo
una stessa misura fintanto che il risultato non soddisfa una certa condizione. Facciamo un esempio
per chiarire meglio. Si fissi una funzione hash semplice da applicare a un'immagine in forma
23
digitale (una funzione hash è una qualsiasi funzione definita in modo da dare risultati ben distribuiti
nell'insieme dei valori possibili; tipicamente questo si ottiene decomponendo e mescolando in
qualche modo le componenti dell'argomento); per semplificare al massimo, diciamo che la funzione
vale 1 se il numero di bit uguali a 1 del file che rappresenta l'immagine è pari, altrimenti vale 0 (si
tratta di un esempio poco realistico ma, come dicevamo, questa discussione ha valore
esclusivamente teorico). Così, se vogliamo codificare il bit 0 procediamo a generare un'immagine
con uno scanner; se il numero di bit dell'immagine uguali a 1 è dispari ripetiamo di nuovo la
generazione, e continuiamo così finché non si verifica la condizione opposta. Il punto cruciale è che
l'immagine ottenuta con questo metodo contiene effettivamente l'informazione segreta, ma si tratta
di un'immagine "naturale", cioè generata dallo scanner senza essere rimanipolata successivamente.
L'immagine è semplicemente sopravvissuta a un processo di selezione (da cui il nome della
tecnica), quindi non si può dire in alcun modo che le caratteristiche statistiche del rumore
presentano una distorsione rispetto a un modello di riferimento. Come è evidente, il problema di
questa tecnica è che è troppo dispendiosa rispetto alla scarsa quantità di informazione che è
possibile nascondere. Ad ogni modo, alla fine del capitolo si proporrà un esempio di programma
che implementa una steganografia di tipo generativo, utilizzando con successo l'idea di base della
steganografia selettiva di nascondere le informazioni procedendo per tentativi.
2.2.2 Steganografia Costruttiva
La steganografia costruttiva affronta lo stesso problema nel modo più diretto, tentando di sostituire
il rumore presente nel medium utilizzato con l'informazione segreta opportunamente modificata in
modo da imitare le caratteristiche statistiche del rumore originale. Secondo questa concezione, un
buon sistema steganografico dovrebbe basarsi su un modello del rumore e adattare i parametri dei
suoi algoritmi di codifica in modo tale che il falso rumore contenente il messaggio segreto sia il più
possibile conforme al modello. Questo approccio è senza dubbio valido, ma presenta anche alcuni
svantaggi. Innanzitutto non è facile costruire un modello del rumore: la costruzione di un modello
del genere richiede grossi sforzi ed è probabile che qualcuno, in grado di disporre di maggior tempo
e di risorse migliori, riesca a costruire un modello più accurato, riuscendo ancora a distinguere tra il
rumore originale e un sostituto. Inoltre, se il modello del rumore utilizzato dal metodo
steganografico dovesse cadere nelle mani del nemico, egli lo potrebbe analizzare per cercarne
possibili difetti e quindi utilizzare proprio il modello stesso per controllare che un messaggio sia
conforme a esso. Così, il modello, che è parte integrante del sistema steganografico, fornirebbe
involontariamente un metodo di attacco particolarmente efficace proprio contro lo stesso sistema.
24
2.2.3 Il principio di Kerckhoff
A causa di questi problemi, la semplice tecnica iniettiva di base rimane quella più conveniente da
usare. Se si hanno particolari esigenze di sicurezza, esiste sempre una strategia molto semplice e
allo stesso tempo molto efficace: quella che consiste nell'utilizzare contenitori molto più ampi
rispetto alla quantità di informazioni da nascondere. Per esempio, invece di utilizzare i bit meno
significativi di tutti i pixel di un'immagine, si può giocare sul sicuro utilizzando solo un pixel ogni
10, o anche più, fino a rendere impossibile, a tutti gli effetti pratici, la rilevazione di una distorsione
delle caratteristiche statistiche del rumore. Su questo punto si tornerà in seguito.
Resta da affrontare un'ultima questione molto importante. Abbiamo accennato all'eventualità che i
dettagli di funzionamento di un sistema steganografico possano cadere nelle mani del nemico. In
ambito crittografico si danno le definizioni di vari livelli di robustezza di un sistema, a seconda
della capacità che esso ha di resistere ad attacchi basati su vari tipi di informazioni a proposito del
sistema stesso. In particolare, i sistemi più robusti sono quelli che soddisfano i requisiti posti dal
principio di Kerckhoff, che formulato in ambito steganografico suona più o meno così: la sicurezza
del sistema deve basarsi sull'ipotesi che il nemico abbia piena conoscenza dei dettagli di progetto e
implementazione del sistema stesso; la sola informazione di cui il nemico non può disporre è una
sequenza (corta) di numeri casuali - la chiave segreta - senza la quale, osservando un canale di
comunicazione, non deve avere neanche la più piccola possibilità di verificare che è in corso una
comunicazione nascosta.
Se si vuole aderire a questo principio, è evidente che le tecniche esposte fin qui non sono ancora
soddisfacenti per caratterizzare un sistema steganografico completo. Infatti, se i dettagli di
implementazione dell'algoritmo sono resi di dominio pubblico, chiunque è in grado di accedere a
eventuali informazioni nascoste, semplicemente applicando il procedimento inverso (nell'esempio
visto, ciò si ottiene "riaggregando" i bit meno significativi dell'immagine). Per affrontare questo
problema, è necessario introdurre una fase di pre-elaborazione del file segreto, che lo renda non
riconoscibile - da parte del nemico - come portatore di informazioni significative. La soluzione più
ovvia è quella di impiegare un sistema di crittografia convenzionale (per esempio, il PGP), il quale
garantisce appunto l'inaccessibilità da parte del nemico al messaggio vero e proprio.
La storia purtroppo non è finita qui, perché in questo meccanismo a due stadi il secondo processo è
reversibile; in altri termini, chiunque può estrarre il file costituito dalle informazioni che fluiscono
dal primo al secondo stadio. Poiché si presume che un crittoanalista esperto possa facilmente
riconoscere un file prodotto da un programma di crittografia convenzionale, questo schema è ancora
da considerarsi incompleto. Questo punto è di importanza fondamentale, perché rende
definitivamente non valido il sistema steganografico, indipendentemente dal fatto che il contenuto
25
dell'informazione segreta resti inaccessibile. Mentre il progettista di un algoritmo di crittografia
assume che il nemico impiegherà tutte le risorse possibili per decrittare il messaggio, il progettista
di un sistema steganografico deve supporre infatti che il nemico tenterà di rilevare la sola esistenza
del messaggio. In altre parole, la crittografia fallisce il suo scopo quando il nemico legge il
contenuto del messaggio: la steganografia invece fallisce quando il nemico si rende semplicemente
conto che esiste un messaggio segreto dentro il file contenitore, pur non potendolo leggere. È
opportuno quindi che il messaggio crittografato, prima di essere immerso nel contenitore, venga
"camuffato" in modo da diventare difficilmente distinguibile da semplice rumore. A questo scopo,
sono stati escogitati diversi metodi. Il più semplice è quello di eliminare dal file crittato da PGP
tutte le informazioni che lo identificano come tale: il PGP, infatti, genera un file che rispetta un
particolare formato, contenente, oltre al blocco di dati cifrati vero e proprio, informazioni piuttosto
ridondanti che facilitano la gestione del file da parte dello stesso PGP (o di shell in grado di trattare
con questo for mato). Esiste un piccolo programma, Stealth, capace di togliere - e di reinserire nella
fase di ricostruzione - tutte le infor mazioni diverse dal blocco di dati cifrati. Il file che esce da
Stealth appare come una sequenza di bit del tutto casuale, che è molto difficile distinguere da
rumore ad alta entropia. Naturalmente, chiunque può provare ad applicare il procedimento inverso
(prima Stealth per ricostruire l'intestazione, quindi il PGP), ma solo disponendo della chiave giusta
si potrà alla fine accedere al messaggio in chiaro. In caso contrario non si potrà neppure capire se il
fallimento sia dovuto al fatto di non disporre della chiave giusta oppure, verosimilmente, al fatto
che l'immagine non contiene alcun messaggio nascosto.
Un metodo alternativo all'uso congiunto di PGP e Stealth è dato dall'uso di programmi
espressamente progettati per trasfor mare un file in rumore apparente (per esempio, Wnstorm, White
Noise Storm). Riassumendo, un sistema steganografico completo deve comprendere due fasi
fondamentali: trasformazione del messaggio in chiaro in rumore apparente. Questa fase prevede
l'uso di un sistema di crittografia convenzionale e quindi di un qualche tipo di chiave; iniezione nel
(o generazione del) messaggio contenitore.
2.3 Watermark:diritti d’autore e commercio elettronico
L'uso delle tecniche di watermark possono essere utilizzate anche per dimostrare la proprietà di un
documento digitale (immagini, video, audio, testo, spartiti musicali, etc...) e quindi come forma di
protezione dei diritti di autore. Il meccanismo di controllo della proprietà di un documento avviene
attraverso un lettore di watermark il quale ha il compito di individuare all'interno del documento il
codice nascosto dall'autore stesso. Il watermarking, di fatto, non fa nulla per impedire che un CD o
un file audio compresso possa essere copiato: per questo motivo viene considerato un meccanismo
26
di protezione "passivo". Il suo scopo, a differenza delle tradizionali tecnologie anticopia oggi
adottate su numerosi CD audio, è identificare univocamente un contenuto digitale anche quando
questo viene copiato svariate volte e subisce molti processi di degradazione (derivanti, ad
esempio, dalla compressione a perdita di informazione): in questo modo è sempre possibile risalire
al legittimo proprietario. Il watermarking potrebbe divenire una tecnologia chiave per la
distribuzione di musica attraverso Internet: in questo caso, infatti, è possibile integrare "al volo"
un watermark personalizzato all'interno di un file compresso che tenga ad esempio conto dei dati,
come quelli ottenibili dalla carta di credito, utilizzati dall'utente per fare l'acquisto. Per quanto
riguarda i CD, l'uso dei watermark potrebbe essere limitato agli album in versione promo inviati a
persone o società facilmente identificabili, come radio, deejay, giornalisti, ecc.
2.4 Il Sistema Steganografico
Nel sistema steganografico il cover (contenitore) è un file che contiene e nasconde un messaggio
segreto (embedded). La funzione steganografica incapsula il messaggio segreto all’interno del
cover utilizzando una chiave K nota sia alla sorgente che al ricevente.Nella steganografia a chiave
pubblica vi è la codifica/decodifica del messaggio nascosto.Il vantaggio consiste nella difficoltà di
interpretare il messaggio nascosto,lo svantaggio è che cercare di decifrare tutti i potenziali file stego
è un’operazione difficile.A seconda degli approcci usati si distinguono due software steganografici:
• Iniettivi
• Generativi
Nel primo caso si nasconde il messaggio all’interno di un contenitore già esistente,nel secondo caso
si parte dal messaggio segreto e si costruisce un contenitore ad hoc.
2.5 Fasi Steganografiche
Le fasi steganografiche sono tre tipi:
• Trovare i bit ridondanti che sono bit del cover scelti per l’inserimento del messaggio
nascosto.In genere si tratta di bit meno significativi
• Scegliere i cover bit (sottoinsieme dei bit ridondanti per nascondere il messaggio segreto) in
modo equiprobabile tra i bit ridondanti per scongiurare gli attacchi.
• L’Embedding consiste nell’incapsulamento dei dati nascosti:si nascondono i bit segreti nei bit
meno significativi.
La Matrix-Encoding invece utilizza tre parametri che sono il numero di bit selezionati tra quelli
racchiusi nel cover bit,il numero di bit da incapsulare e il numero di bit che si possono al più
modificare.
27
2.6 La Stegoanalisi
Come con la crittoanalisi per la crittografia, la stegoanalisi è definita come la scienza (nonché l’arte)
del rompere la sicurezza di un sistema steganografico. Siccome lo scopo della steganografia è di
nascondere l’esistenza di un messaggio segreto, un attacco con successo ad uno stegosistema
consiste nello scoprire che un determinato file contiene dati nascosti anche senza conoscerne il loro
significato.
Come in crittoanalisi, si assume che il sistema steganografico sia conosciuto dall’attaccante e quindi
che la sicurezza dello stegosistema dipenda dal solo fatto che la chiave segreta non è nota
all’attaccante (principio di Kerckhoff).
2.6.1 Lo Stegosistema Esteso
Lo stegosistema visto in precedenza può essere esteso per includere situazioni di attacchi simili agli attacchi crittografici. Nel diagramma seguente un cerchio (rosso o blu) indica un punto in cui un attaccante può avere accesso: i punti in cui l’attaccante ha accesso definiscono il tipo di attacco.
Figura 1: Lo stegosistema esteso
C’è una distinzione da fare tra attacchi attivi e attacchi passivi: mentre nel primo tipo gli attaccanti
riescono solo ad intercettare i dati (nel diagramma, cerchio blu), nel secondo riescono anche a
manipolarli (cerchio rosso).
Ecco in cosa consistono gli attacchi:
28
• stego-only-attack: l’attaccante ha intercettato il frammento stego ed è in grado di
analizzarlo. È il più importante tipo di attacco contro il sistema steganografico perché è
quello che occorre più di frequente nella pratica;
• stego-attack: il mittente ha usato lo stesso cover ripetutamente per nascondere dati.
L’attaccante possiede un frammento stego diverso ma originato dallo stesso cover. In
ognuno di questi frammenti stego è nascosto un diverso messaggio segreto;
• cover-stego-attack: l’attaccante ha intercettato il frammento stego e sa quale cover è stato
usato per crearlo. Ciò fornisce abbastanza informazioni all'attaccante per poter risalire al
messaggio segreto;
• cover-emb-stego-attack: l’attaccante ha "tutto": ha intercettato il frammento stego, conosce
il cover usato e il messaggio segreto nascosto nel frammento stego;
• manipulating the stego data: l’attaccante è in grado di manipolare i frammenti stego. Il che
significa che l’attaccante può togliere il messaggio segreto dal frammento stego (inibendo la
comunicazione segreta);
• manipulating the cover data: l’attaccante può manipolare il cover e intercettare il
frammento stego. Questo può significare che con un processo più o meno complesso
l’attaccante può risalire al messaggio nascosto.
Lo stego-attack e il cover-stego-attack possono essere prevenuti se il mittente agisce con cautela.
Un utente non dovrebbe mai usare come cover più volte lo stesso file, né files facilmente reperibili
(es. logo di Yahoo) o di uso comune (es. file audio dell’avvio di Windows).
29
3 Steganografia nell’Audio
3.1 Introduzione
La musica è uno dei soggetti più popolari in Internet. Questo è uno dei motivi che ha portato allo
sviluppo dello standard MP3 che garantisce un'ottima compressione e qualità del file audio. Gli
studi di registrazione, gli artisti ed i compositori concordano quando richiedono la piena protezione
del copyright come condizione necessaria per la distribuzione dei loro prodotti via rete. Riuscire ad
inserire informazioni nascoste da la possibilità di rintracciare un'eventuale utilizzo non autorizzato
del materiale acquistato tramite rete o nei CD-ROM. Con l'evoluzione degli standard MPEG
(MPEG1, Audio Layer 3, MP3) questo è diventato de facto lo standard per i file audio vista la
dimensione piccola del file e l'alta qualità del suono. Ci sono già in rete server che offrono musica in
formato MP3 e che utilizzano varie tecniche per la protezione. Ci sono anche motori di ricerca che
offrono aree riservate per la ricerca di file MP3.
L'attenzione ai watermarks apposti su documenti audio è stata recentemente amplificata dal caso Napster. La coscienza
dell'illiceità dello scambio indiscriminato di files .mp3 protetti da copyright e della perdurante difficoltà di reprimere in
maniera definitiva il fenomeno, ha portato alla ricerca affannosa di soluzioni alternative. Tra queste è stata da più parti
ipotizzata la regolare vendita via internet di canzoni, accompagnata dalla loro marchiatura,onde impedirne l'illecita
diffusione.Non a caso sono molte le aziende impegnate nello sviluppo di watermarks che hanno studiato servizi ad hoc
per i documenti .mp3. In particolare, accanto alle classiche informazioni su autore/produttore/acquirente codificate
all'interno dei files, alcune companies offrono soluzioni che integrano la tecnologia di marchiatura con l'e-
commerce.Anche i watermarks apposti su documenti audio devono essere particolarmente robusti e resistenti alla
diffusione con tecnologia di streaming (ad esempio, tramite il Real Player).
3.2 Tecniche Utilizzate
I file audio digitali sono molto flessibili e pertanto adatti al ruolo di cover.Le tecniche più usate per
nascondere informazioni nei file audio sono LSB, Echo-data-hiding,S-Tools, mp3stego, filigrana
digitale audio.
3.2.1 Phase encoding
Lavora sostituendo la fase di un segmento di dati audio con una fase di riferimento in modo da
mantenere lo sfasamento relativo tra vari segmenti. Il problema è che se si introducono forti
alterazioni di fase il file con watermark non soddisfa più i requisiti di qualità.
3.2.2 Spread spectrum encoding
30
Lavora disperdendo il segnale sulla parte più grande possibile dello spettro di frequenza,
permettendo cosi il ritrovamento dell'informazione nascosta anche nel caso di disturbi su certe
frequenze.
3.2.3 LSB encoding
È il metodo più semplice per introdurre informazioni addizionali nelle strutture dati. Il metodo
consiste nel sostituire il bit meno significativo (LSB) per ogni punto di campionamento con il
valore del bit da codificare per ogni campione. Lo svantaggio è che l'informazione aggiunta è
facilmente rimovibile tramite aggiunta di rumore o ricampionamento.
3.2.4 Echo-data-hiding
Inserisce dati dentro ad un segnale audio introducendo un ecco. A seconda dell'area del segnale da
modificare l'inserimento è più o meno possibile.
Nel caso di inserimento di watermark nei file audio le tecniche adottate sono ancora in fase di
evoluzione e non riescono a soddisfare le richieste del mercato. In aggiunta, attualmente non ci
sono algoritmi validi in grado di operare con buoni risultati sui file audio compressi MPEG.
L'informazione nascosta viene diluita in svariati millisecondi di filmato. In questo caso, è possibile
nascondere grandi quantità di informazione. Questa informazioni viene ripetuta ad intervalli
regolari in modo da garantire il suo recupero anche da frammenti.
Quando si modifica il file aggiungendo un forte rumore di fondo facilmente avvertibile l’edh
elimina questo inconveniente.
3.2.5 S-Tools
E’ un software per audio e immagini S-Tools, scritto da Andy Brown, è tra i programmi
steganografici più diffusi, facilmente reperibile in rete presso i più comuni siti di software freeware.
L’uso del programma, infatti, è completamente gratuito ed illimitato nel tempo. La versione 4 è stata
rilasciata nel 1996 e da allora non sono state prodotte nuove versioni. Il programma gira su un
qualunque PC con sistema operativo Windows in tutte le versioni, lo spazio richiesto su hard disk è
trascurabile. Supporta i formati WAV, BMP e GIF come file contenitori. Per quanto riguarda
l'hiding dei file WAV, il software lavora su file WAV a 8 o 16 bits avviene secondo lo schema LSB
cioè vengono considerati ridondanti i bits meno significativi di ogni byte. I Cover Bits, ovvero il
sottoinsieme di bits che effettivamente verranno rimpiazzati vengono scelti in base alla passphrase
inserita in input. Infatti, S-tools usa un generatore di numeri pseudo-casuale che genera il suo output
a partire dalla passphrase e lo usa per scegliere la posizione del prossimo bit del cover da
31
rimpiazzare. Se, ad esempio, il file WAV ha 100 bits disponibili per l'embedding e si vogliono
nascondere solo 10 bits, S-Tools non sceglierà i bits da 0 a 9 perché risulterebbero facilmente
individuabili da un attaccante. Piuttosto, sceglierà i bits 63, 32, 89, 2, 53, 21, 35, 44, 99, 80 o altri
dieci, il tutto dipendente dalla passphrase inserita. In questo modo un attaccante si troverà in grossa
difficoltà. La particolarità di questo programma è un'interfaccia utente basata esclusivamente sul
drag & drop. I menu infatti si presentano molto scarni. Lo schema di utilizzo è il seguente:
1)Si trascina il file contenitore da una finestra di un file manager nella finestra principale di S-
Tools. Viene visualizzata l'onda che rappresenta il file WAV e in basso viene mostrata la sua
capacità;
2)Si trascina il file segreto sul file contenitore;
3)Si sceglie la passphrase e l'algoritmo di cifratura: si può scegliere tra IDEA, DES, Triple DES o
MDC, tutti utilizzati in modalità CFB. Ai files da nascondere viene applicata una compressione che
si può impostare nel menù FILE/PROPERTIES;
4)A questo punto viene generato il nuovo file contenente il messaggio segreto ed è possibile
salvarlo. Il risultato è osservabile nella figura in basso. Come si può notare, i due files, all'ascolto,
non presentano alcuna differenza.
Per estrarre il messaggio segreto dal contenitore si segue uno schema simile:
1)Si trascina il file contenitore da una finestra di un file manager nella finestra principale di S-
Tools;
2)Si seleziona Reveal cliccando col tasto destro del mouse sul file contenitore trascinato;
3)Si sceglie la passphrase e l'algoritmo di cifratura;
4)Se la passphrase è giusta compare un elenco dei file nascosti ed è possibile salvarli.
Analizziamo un esempio. Il file "ORIGINAL.wav" è un file audio mono a 8 bit campionato a 11025
Hz e dura circa 5,625 secondi. Quindi, la dimensione del cover = 8 x 11025 x 5,625 = 496125 bits
≈ 60,6 Kbyte. A questo punto, calcoliamoci la sua capacità. Sappiamo che, i bits ridondanti sono
costituiti dal bit meno significativo di ogni byte del file, quindi #bits ridondanti = dimensione del
file in byte = 496125 bits / 8 ≈ 62015. Quindi la capacità del cover (in bytes) = #bits ridondanti /
8;ovvero, capacità del cover (in bytes) = 62015 / 8 ≈ 7752 bytes.
3.2.6 MP3 Stego
E’un software che effettua l’embedding sfruttando la tecnica dell’Echo-data-hiding.
L’algoritmo di encoding Mp3 è lossy, ovvero comprime i dati in input con perdita di informazione
fornendo un output molto simile ma non identico all’input. Per questo motivo, l’embedding deve
essere necessariamente effettuato nel processo di trasformazione da wav ad Mp3.Mp3Stego è stato
32
rilasciato nell’agosto del 1998 ed è disponibile sia per i sistemi operativi Microsoft che per Linux.
Oltre all’eseguibile, l’autore Fabien Petitcolas (Computer Laboratori, Cambridge (UK)) distribuisce
anche il sorgente liberamente. Il programma si basa su un’interfaccia a linea di comando anche se è
possibile scaricare una interfaccia grafica ancora da migliorare. Esistono due comandi: encode e
decode. Questa tecnica, come già detto, è ottima dal punto di vista qualitativo (all'udito il suono di
input e quello di output sono identici) ma la capacità attribuita ai cover è modesta.In questo
esempio, il file in input ("in.wav") ha dimensioni di circa 1,73 MB e la sua capacità è di soli 1582
bits; "messaggio segreto.txt" è grande 71 bytes (568 bits) e può essere incapsulato senza problemi. Il
programma prende in input il file da nascondere in formato txt (nel nostro esempio "messaggio
segreto.txt"), il contenitore in formato wav (nel nostro esempio "in.wav") e una passphrase,
dopodiché provvede a comprimere il file wav iniettando, durante la fase di compressione, il file txt e
generando in output il file mp3 (nel nostro esempio "out.mp3"). Per estrarre il file nascosto si
utilizza il comando decode in questo modo: decode -X output.mp.Con questo comando si
decomprimerà il file out.mp3 in out.mp3.pcm, tentando di estrarre eventuali informazioni nascoste e
salvandole in out.mp3.txt.
3.2.7 Filigrana Digitale Audio
Il termine “filigrana digitale” e’ strettamente correlato alle scienze steganografiche. .In audio la
filigrana digitale e’ una tecnica per l’accorpamento di informazioni addizionali (si parla in questo
caso di metadata) che devono servire al monitoraggio dei dati audio attraverso gli esistenti canali di
distribuzione digitale. Studi recenti hanno portato all’elaborazione di meccanismi per l’annessione ai
file di informazioni relative all’identita’ dell’utente e del materiale audio trasferito in rete. Mentre i
sistemi più conosciuti operano nel cosiddetto “Linear Domain” (e’ il caso del PCM Watermarking
che opera sul formato audio lineare, ovvero non compresso ) ,alcuni sono capaci di aggiungere la
filigrana digitale nel materiale audio compresso, in questo caso si parlerà di tecnologia “Bitstream
Watermarking”L’idea di base del sistema si basa sull’accorpamento ad un dato file di ulteriori
informazioni, per l’appunto una sorta di audio-filigrana digitale. Queste informazioni sono
ovviamente “nascoste” e possono essere “lette” solo successivamente da uno speciale “estrattore”
opportunamente istruito per tale scopo. L’aggiunta dei dati relativi alla filigrana digitale viene
dunque effettuata secondo le caratteristiche di una chiave di lettura che deve quindi essere
“conosciuta” dall’apposito decoder al momento della sua estrazione.
3.2.7.1 COPYCODE: un esempio di audio filigranato
Con il declino dell'era analogica, la nuova era digitale vede l'introduzione sul mercato di nuovi
supporti audio già a partire dagli anni '80. Nel 1982 in risposta al proliferare di DAT e CD, il
33
RIAA chiese alla corte americana di imporre sui nuovi dispositivi di ascolto un sistema di filigrana
digitale, Copycopde, elaborato dalla CBS di allora (oggi Sony).
In realtà questo primo ed interessante esperimento si risolse presto in un gigantesco flop
ingegneristico, oltre che in un netto rifiuto della corte di giustizia americana. Questa ultima
intervenne nello stesso anno e, ribadendo il principio del "fair use" espresso nell’Audio Home
Recording Act (AHRA), respinse le richieste avanzate dalle principali industrie discografiche che
puntavano all’introduzione di questa tecnologia nella protezione dei loro cataloghi e dei loro artisti.
Il sistema si riproponeva di creare un segnale aggiuntivo da accorpare alle tracce audio, una sorta di
filigrana appunto, che contenesse ulteriori informazioni relative al brano, all'artista e ovviamente
alla protezione dei diritti, così da impedire gli utilizzi illeciti e la duplicazione seriale. Test
governativi dimostrarono che questo sistema, pur operando all'interno di uno spettro di frequenze
non percepibile dall'orecchio umano, finiva spesso per alterare la qualità dell' audio ed in più era
inaffidabile poiché poteva comunque essere raggirato da persone relativamente esperte. Così nel
1991 il RIAA commissionò alla BBN la creazione di un nuovo meccanismo di protezione,
compagnia del Massachussets leader in soluzioni acustiche. Ne derivò un sistema di filigrana
digitale analogo a Copycode, anche qui un segnale aggiuntivo a scopi di filigrana che doveva essere
di 19 decibels inferiore al livello generale della registrazione audio.
Oltre all'utilizzo di frequenze non percepibili dall'orecchio umano, il sistema utilizzava anche
un'avanzata tecnica di compressione dell'audio (analoga a quella dell'MP3).
Di sicuro quest’evoluzione rappresentava un reale progresso in termini di qualità della musica che si
generava con questo meccanismo di protezione, non certo però in termini di efficacia. Con la
successiva decompressione dell'audio il segnale di protezione aggiunto finiva infatti per svanire
permettendo, attraverso un nuovo encoding, la successiva riproduzione seriale.
3.2.7.2 Requisiti della filigrana digitale
Un sistema di filigranatura digitale ben progettato, sfrutta alcune proprietà che sono essenziali per la
sicurezza e la manipolazione dei files. La filigrana digitale al fine di assolvere il suo compito
primario dovrebbe essere:
1)Nascosta, quindi nel caso di materiale audio, questa non dovrebbe essere percepibile all’ascolto
dell’orecchio umano.
2)Statisticamente invisibile
3)Robusta contro gli attacchi e le operazioni di “processing” o manipolazione del segnale
4)Accorpata al materiale audio tout-court, dunque non ridotta ad una semplice intestazione tipo
“header” posta all’inizio di un determinato file audio.
34
5)Dipendente dalla successiva chiave di estrazione.
Questi requisiti vengono raggiunti tramite l’applicazione e la combinazione di due tecniche
fondamentali: la Psicoacustica e la Modulazione ad Ampio Spettro.
La prima assicura la non-udibilità delle informazioni aggiuntive di filigrana, tenendo in
considerazione le proprietà dell’apparato uditivo umano. La modulazione ad ampio spettro fornisce
al sistema una grande robustezza dagli attacchi e dalle manipolazioni del segnale, tramite la
diffusione delle informazioni di filigrana lungo l’intera durata della frequenza, non solamente
all’inizio o alla fine del file audio.
3.2.7.3 Il Watermarking ed il Digital Right Management (DRM) per la gestione dei diritti
digitali
Il DRM (Digital Rights Management) e’ spesso considerato come la principale ed a volte l’unica
applicazione della filigrana digitale. Nonostante i contrastanti dibattiti in merito e le continue
evoluzioni della tecnologia, la filigrana digitale può effettivamente fornire un valido sostegno per il
rispetto e la tutela dei diritti d’autore, dunque per la protezione dei contenuti digitali audio presenti
nella rete.
Le tre applicazioni principali cui il sistema di filigrana DRM da supporto sono:
1)La certificazione della proprietà, ovvero l’identificazione della “paternità della musica” che
costituirà un aspetto sempre più importante nel trasporto della cosiddetta Digital Music.
In quest’ottica si da per scontato che le copie senza Filigrana Digitale non possono essere
pubblicamente disponibili. Nella quasi totalità dei casi l’innesto delle informazioni di filigrana su un
determinato file audio avviene in ambiente lineare e non compresso, usando quindi un sistema
cosiddetto “ PCM Watermarking”.
2)Il controllo dell’Accesso: questa e’ un’altra applicazione che viene tutelata con il sistema di
Filigrana Digitale. Il principio e’ quello di aggiungere una filigrana che permetta di verificare se il
contenuto e’ effettivamente autorizzato ad essere riprodotto e/o scaricato su hard drive.
3)Il monitoraggio delle copie illegali :l’idea anche qui e’ quella di aggiungere una filigrana
personalizzata nel segnale audio compresso (Bitstream Watermarking), che sarà poi interpretata
secondo i meccanismi propri di una chiave di lettura appositamente conosciuta dal decoder in fase
di riproduzione.
Se il consumatore trasferisce il bitstream in un ambiente illegale (per esempio il suo sito web
personale o su di un qualsiasi supporto) deve dunque essere consapevole che esiste una Filigrana
Digitale contenente anche alcune sue informazioni personali e che esistono in tal modo gli estremi
35
per l’identificazione della sua violazione. In questo caso l’utente potrebbe quindi essere ritenuto
responsabile per l’utilizzo del materiale audio al di fuori dell’ambiente legalmente autorizzato.
Il beneficio della Filigrana Digitale rispetto ai tradizionali metodi di crittografia e’ che in questo
contesto, anche il segnale audio decompresso contiene delle informazioni di filigrana, perfino in
una sua rappresentazione analogica. Quindi, effettuando magari una decompressione del segnale ed
un nuovo encoding del file audio in ambiente digitale, non risulta possibile eliminare quelle
informazioni di identificazione. Di conseguenza queste risulteranno essere sempre presenti in tutti i
successivi trasferimenti del segnale audio, generando fastidiosi fruscii e rumori di fondo, ovvero
deteriorando la sua risoluzione al momento dell’ascolto.
3.2.7.4 Efficacia ed applicabilita’ del digital watermarking
Entrati ufficialmente nell’era post-Napster, risulta per molti ragionevole che gli artisti debbano e
forse meritino di essere pagati per l’utilizzo dei loro lavori. Nel tentativo di controllare questa
situazione , il gruppo del RIAA cerca ormai da tempo di sviluppare soluzioni capaci di arginare la
digital-piracy. L’industria discografica, assieme alle migliori compagnie dell’high tech si adoprano
già da tempo attraverso la Secure Digital Music Iniziative (SDMI) per lo sviluppo e l’impiego di
tecnologie che proteggano la digital music. Una tecnologia centrale e’ dunque rappresentata dal
DRM watermarking, ovvero da meccanismi di filigrana digitale per la gestione dei diritti digitali.
Come abbiamo potuto osservare in precedenza, questi consentono di proteggere e monitorare il
traffico non autorizzato dei file audio prevenendone in tal modo la duplicazione illecita.
Vohn Lohman dell’ Electronic Frontier Foundation, suggerisce come il Digital Watermarking possa
aiutare le case discografiche a mantenere le tracce di quale stazione radio stia trasmettendo le hits
dei loro artisti, fornendo quindi un supporto valido per la riscossione delle royalties.
Un esempio curioso di “Digital Watermarking” che merita di essere citato e’ costituito dalla
compagnia statunitense “Verance Confirmedia”. Questa offre una sorta di mega portale web,
collegato al broadcast nazionale sia radio che TV e ad un network capace di fornire informazioni 24
ore su 24 su dove e come un determinato contenuto audio sia stato usato. Mediante l’accorpamento
di cosiddetti “metadata” al flusso di bit audio, ovvero informazioni addizionali riguardanti alcune
caratteristiche del file stesso, si rende possibile con l’utilizzo di un’apposita chiave di lettura leggere
nuovamente il segnale audio che risulterà in tal modo protetto da una sorta di “involucro digitale”.
Una soluzione più recente e’ quella che prevede l’introduzione di un chip addizionale sui PC e sui
dispositivi di ogni utente, capace di riconoscere il segnale audio opportunamente protetto.
36
Diverse implicazioni testimoniano come però questi sistemi siano poco affidabili, oltre che
raggirabili in tempo breve da parte di mani relativamente esperte.
Si presentano anche una serie di questioni riguardo la leicita’ di tali misure e di rispetto per la
privacy degli utenti. Si rischierebbe di proibire il download e l’ascolto di un determinato brano da
due postazioni diverse, esempio dal PC o da un dispositivo portatile, nonostante il brano in
questione sia stato regolarmente acquistato in precedenza.
Impedendo il trasferimento su altro supporto o su altro dispositivo si viola apertamente il principio
del « fair use » sancito dal DMCA nel 1998, contravvenendo alla « first sale doctrine » ed
impedendo la libera circolazione di materiale audio già precedentemente acquistato ad esempio tra
gli amici (altro principio cardine regolato dalle 2 legislazioni principali in materia di copyright
audio,quali Audio Home Recording Act e Digital Millenium Copyright Act).
37
4 Steganografia nelle Immagini
4.1 Introduzione
Anche se la ricerca in questo campo e relativamente recente sono state proposte diverse tecniche sia
in campo accademico sia in campo industriale. Una possibile classificazione delle tecniche di
watermark può essere condotta sulla base della caratteristica del immagine che è sottoposta a
modifiche. In questo senso si possono distinguere tecniche nel dominio spaziale, tecniche nel
dominio della trasformata di Fourier e tecniche ibride. Tutte le tecniche sopracitate garantiscono la
permanenza dell'informazione nascosta durante modifiche dell'immagine fatte con o senza scopo di
rimozione del watermark. Il mercato è molto ricco di strumenti per l'elaborazione di immagini in
formato digitale e l'effetto sull'immagine può essere classificato come una modifica dell'immagine
considerata come segnale e distorsioni geometriche. La resistenza alle distorsioni geometriche è
molto importante in quanto esse non diminuiscono la qualità dell'immagine è possono essere fatte
proprio allo scopo di rendere il watermark illeggibile. Se un'immagine viene ruotata di 0.5 gradi o
viene scalata a 101% la differenza dall'originale non e rilevante però il lettore di watermark
potrebbe non essere più in grado di leggerlo. Oltre questo deve essere garantita la possibilità di
leggere le informazioni inserite anche dalla stampa dell'immagine (quindi da una sorgente con
distorsioni geometriche). Altre possibile modifiche sono nell'area del colore dell'immagine. Una
riduzione dei colori o una diversa mappatura di questi può portare facilmente alla perdita del
watermark.
L'applicazione più classica e diffusa della tecnologia di watermarking consiste nell'apposizione all'interno di un'immagine
di una serie di informazioni, invisibili all'occhio umano, riguardanti, ad esempio, il produttore, il titolare del copyright,
l'acquirente, il tipo di licenza, la data della transazione, un numero progressivo di identificazione, ecc. L'inserimento del
marchio digitale avviene tramite un software oppure un semplice plugin per i maggiori programmi di fotoritocco (ad
esempio: Photoshop), forniti dalla società proprietaria della tecnologia di watermarking, che in genere riconosce i formati
più diffusi di compressione delle immagini (gif, jpeg, tiff, bitmap) e crea un marchio resistente alle modifiche apportate
all'immagine stessa. Alcune società rendono la loro tecnologia disponibile non solo per i documenti digitali, ma anche per
quelli cartacei, per i quali è particolarmente importante certificare l'autenticità (documenti di riconoscimento, passaporti,
fotografie personali) o la provenienza (si pensi ai documenti provenienti dagli studi legali o dagli studi medici). La
tecnologia necessaria per l'implementazione e la successiva verifica del watermark sul documento cartaceo può essere
anche sorprendentemente economica: alcune aziende vendono infatti servizi e software che sfruttano una semplice
stampante a getto d'inchiostro a 600 dpi affiancata ad un comune scanner piano A4.All'inserimento di un watermark
nell'immagine digitale si accompagna frequentemente un servizio di monitoraggio e tracciamento della circolazione
abusiva del documento protetto da copyright su internet, con conseguente indicizzazione dei siti che contengono
immagini marchiate e reperimento dell'originale colpevole dell'illecita diffusione (la cui identità è registrata nel
watermark).
38
Le immagini per le loro dimensioni e il loro comune utilizzo sono molto usate per scopi
steganografici.
4.2 Formati di compressione delle immagini
4.2.1 Il formato GIF
Il formato GIF utilizza una palette di 256 colori che formano un ’immagine. I pixel sono dei
puntatori ad uno dei colori della palette. Ciò che viene fatta è l ’acquisizione dell’immagine;
si limita il numero di colori a 256; si effettua la conversione in GIF riempiendo la parte restante
della palette con dei colori molto simili a quelli rimasti. Ogni volta che si dovrà rappresentare un
colore si potrà scegliere di rappresentarlo o con il colore originale (0) oppure con il colore simile
all’originale (1).Siccome non conta l’ordine con cui i colori sono memorizzati nella
palette,un’immagine GIF può essere rappresentata in 256! Modi diversi, purché venga cambiata
opportunamente la sequenza dei puntatori. Quindi i bit che si possono nascondere sono log(256!) =
1683 bit,indipendentemente dalle dimensioni dell’immagine.
EzStego è un programma che lascia la palette inalterata (evita il problema precedente) e riesce a
nascondere un bit di dati in ogni pixel in una data immagine.
4.2.2 Il formato JPEG
JPEG è un algoritmo di compressione lossy mantiene le informazioni più importanti e scarta le
informazioni meno significative dal punto di vista visivo. L’embedding deve essere effettuato in
fase di compressione. La chiave della compressione è la DCT (Discrete Cosine Trasfom :operatore
matematico che cambia la natura della matrice fondamentale,convertendo un segnale dal dominio
spaziale al dominio delle frequenze).I programmi steganografici non fanno altro che inserire
informazioni laddove risiedono i coefficienti DCT meno importanti.
JSteg Shell è un programma che riesce a nascondere un bit di dati segreti in ogni coefficiente non-
zero. Tutti i possibili valori dei coefficienti sono accoppiati ai valori simili e ad ognuno viene
assegnato un 1 o uno 0.Il coefficiente di ogni blocco viene poi cambiato per fissare lo stego bit. I
messaggi nascosti con Jsteg non sono così vulnerabili come i file GIF agli attacchi visuali,ma, come
EzStego, Jsteg subisce il fatto che i coefficienti accoppiati tendono a bilanciarsi l’uno con l’altro,
favorendo attacchi statistici.
39
4.2.3 Il formato BMP
Nel formato BMP un’immagine,dal punto di vista digitale,è una matrice MxN di piccoli punti
colorati detti pixel. Un file BMP true color a 24 bit è formato da pixel RGB. Un pixel RGB è
formato da 3 byte ognuno dei quali rappresenta i livelli ( da 0 a 255 ) dei colori primari ( red, green,
blue) che costituiscono la tonalità di colore di quel determinato pixel. Un’operazione di
steganografia sostitutiva su questo tipo di file consiste nel sostituire i bit meno significativi dei
singoli byte con quelli dei messaggi segreti. Ad occhio nudo,le variazioni di colore risultano
praticamente impercettibili. Per inserire un byte del messaggio segreto occorrono 8 byte del
messaggio contenitore. In generale,per un file grafico MxN : Dimensione messaggio segreto (byte)
= (MxNx3) / 8 .
E’ possibile utilizzare i due ,tre o quattro bit meno significativo di ogni byte,aumentando
notevolmente la capacità del cover ma peggiorando la qualità dell’immagine stego che desterà più
sospetti nell’attaccante. Si può procedere per tentativi e trovare un ragionevole compromesso.
BPCS Steganography è una tecnica che invece di considerare solo i bit meno significativi sceglie
delle regioni dell’immagine nelle quali effettuare l’embedding senza alterare in modo significativo
l’immagine.
L’immagine viene divisa in blocchi 8x8 .Su ogni blocco viene effettuato un testo che ne determina
la complessità. Se la complessità è minore di una determinata soglia (parametro variabile dipendente
dall’immagine) l’embedding può essere effettuato .Un’immagine RBG P può essere vista come: P =
(PR1, PR2, …, PRn, PG1, PG2, …, PGn, PB1, PB2, …, PBn), dove PR1,PG1,PB1 è la bit-plan più
significativa ( immagine formata dai bit più significativa di tutti i pixel dell’immagine) e PRn, PGn,
PBn è la bit-plan meno significativa. Più ci si allontana dalla bit-plan più significativa più
l’immagine diventa complessa. Ogni bit-plan viene divisa in regioni. Le regioni shape-informative
(zone “semplici”) non possono essere modificate perché contengono informazioni significative per
l’immagine. Le regioni noise-looking (zone “complesse”) non contengono informazioni rilevanti e
possono essere rimpiazzate.
4.3 Altri programmi Steganografici
Digital Picture Envelop è un software che usa la BPCS Steganography. Riesce a nascondere dati
aventi dimensione fino al 50% di quella del cover (5-10 volte più degli altri software).Ha due
programmi :Encoder e Decoder.
Steganos Security Suite 5 è un programma che può essere scaricato gratuitamente in versione
shareware.La versione 5 è per piattaforme Intel con sistema operativo windows 95 ,98,ME,NT 4.0 e
2000. E’ una suite di strumenti per la sicurezza. Per effettuare il recupero di dati nascosti è
40
necessario il file contenitore e una opportuna password. Viene utilizzato l’algoritmo di AES per la
cifratura.
Gif-it-up 1.0 è un programma che supporta il formato GIF come contenitore. Funziona su tutte le
versioni di windows esclusa la 2000.
4.4 Attacchi alle immagini
Gli attacchi alle immagini sono di due tipi:
• Attacchi visuali :sono in correlazione con le capacità visive umane. Il file stego viene
filtrato con un algoritmo ( di filtering ) dipendente dalla funzione di embedding utilizzata per
nascondere il messaggio. L’immagine filtrata viene osservata per determinare se è stato
nascosto un messaggio o meno. L’operazione risulta lenta se la mole di immagini da
analizzare è considerevole.
• Attacchi statistici : effettuano test statistici sul file stego. L’idea dell’attacco statistico è di
confrontare la distribuzione di frequenza dei colori di un potenziale file stego con la
distribuzione di frequenza teoricamente attesa per un file stego. In questo caso dopo
l’embedding le frequenze si eguagliano a due a due.
4.5 Teoria e tecniche di watermarking nelle immagini fisse
Grazie alla larga diffusione di strumenti quali computer e stampanti, e allo sviluppo delle reti di
comunicazione, oggi molto economico trasmettere immagini e sequenze video usando le reti di dati
invece di spedire le copie tramite posta. Inoltre le immagini possono essere salvate in database in
forma digitale. Questo fenomeno ha avuto nuovi impulsi grazie all'avvento di Internet. Inizialmente
le applicazioni erano confinate alla distribuzione di lavori di pubblico accesso o a pubblicità
commerciale. In un secondo momento, col diffondersi della distribuzione elettronica, si è reso
necessario invece realizzare sistemi per garantire una sicura manipolazione, pubblicazione e
duplicazione di documenti, data la facilità di intercettazione, copia e ridistribuzione di documenti
nella loro forma originaria; dove per documento viene inteso un qualsiasi prodotto digitale che
possa venire trasferito su di una rete di comunicazione come: un testo scritto, un'immagine, uno
stream video o audio, ecc...
Esistono due diversi aspetti legati al problema della sicurezza:
1° Aspetto: garantire che un determinato prodotto digitale sia effettivamente mio e impedire che
qualcun altro sia in grado di manipolarlo e farlo passare per mio.
2° Aspetto: dimostrare che un determinato prodotto digitale sia effettivamente mio e impedire a
qualcun altro di farlo passare per proprio infrangendo così i miei diritti d'autore.
41
Il primo aspetto stato affrontato è risolto dall’autenticazione di un prodotto che consiste
nell'inserzione di una firma in grado di dimostrare l'autenticità di un mio documento.
Il secondo aspetto è invece stato risolto utilizzando una tecnica di watermarking che consiste
nell'inserimento di un marchio (o firma) indelebile all'interno del documento che non possa venire
alterato o rimosso. Le caratteristiche salienti del watermark possono essere così sintetizzate:
Non si devono introdurre nel documento artefatti che siano visibili ad un osservatore.
Non deve essere possibile la rimozione del watermark a meno di un sensibile degrado della qualità
del documento.
Sono necessari codici di controllo d'errore e tecniche di firma digitale per assicurare in modo
attendibile la presenza e l'autenticità del marchio presente nel documento.
Il marchio può essere scritto nella forma di una stringa di caratteri che, con opportune tecniche, si
tramutano in una grande quantità di informazioni ridondanti. Questo ha dirette implicazioni per
l'attendibilità della trasmissione del marchio perché più corto è il marchio, più grande è la
probabilità di rilevarlo senza errore. E' possibile accorciare il marchio usando appropriati metodi
di codifica.
4.5.1 Autenticazione
Un fondamentale problema di tutte le transazioni è di provare che chi firma i documenti sia in realtà
la persona che dice di essere. Le comunicazioni elettroniche tramite e-mail, fax ed internet sono
problematiche in quanto bisogna dimostrare l'autenticità dei documenti. E' quindi necessario un
metodo per autenticare con una firma digitale le informazioni spedite.
• Un metodo molto semplice di applicare una firma digitale è di usare un CRC (cyclic
redundancy check) o altre forme di checksum (letteralmente controlli sulle somme). I
checksum sono usati per rilevare errori sui canali di comunicazione, numeri ISBN, codici a
barre e numeri di carte di credito. La probabilità di scegliere con successo un numero a caso
che risponde alle semplici regole date dal checksum è molto bassa. Comunque i checksum
non sono particolarmente sicuri perché è spesso banale dedurre la regola usata per
implementare un checksum da un numero di esempi.
• Un altro metodo un po' più sicuro è stato proposto da Walton che ha opportunamente
combinato la tecnica dei checksum con sicure sequenze pseudo-casuali rendendo così più
difficile la decifrazione dell'algoritmo usato per produrre la firma.
• Un ultimo metodo molto più sicuro per autenticare un documento è l'utilizzo dell'algoritmo
RSA (Rivest Shamir Adelman) o algoritmo di criptaggio a chiave pubblica. Quest'ultimo è
42
un metodo molto elegante ed estremamente sicuro; può venire utilizzato sia per criptare le
informazioni che per l'autenticazione dei messaggi.
I principi su cui si basa l'RSA sono i seguenti:
• Criptaggio di informazioni: Un utente, chiamato X, ha due chiavi. Una chiave è tenuta
privata ed è conosciuta solo da X mentre l'altra è pubblica. Un altro utente chiamato Y può
spedire messaggi a X in segreto perché i messaggi criptati usando la chiave pubblica di X
possono solo essere decodificati usando la chiave privata di X.
• Autenticazione: Per fare questo X può mandare un messaggio criptato usando la sua chiave
privata e la chiave pubblica di Y, Y può solo decodificare questo messaggio usando la
chiave pubblica di X e la sua chiave privata avendo così una prova che il messaggio viene
da X.
4.5.2 Lo Spread Spectrum
Le comunicazioni attendibili sono state provate da Shannon essere teoricamente possibili se il tasso
di informazione non eccede una soglia conosciuta come capacità del canale. Uno delle maggiori
deduzioni che possono essere fatte dal teorema di Shannon sulla codifica su un canale rumoroso è
che in ogni canale di comunicazione c'è un fondamentale compromesso tra larghezza di banda e
rapporto segnale rumore. Nel watermark di immagini possiamo assumere che il trasferimento di
informazioni avviene sotto condizioni che implicano un basso rapporto segnale rumore. Quindi una
comunicazione attendibile può solo essere assicurata incrementando la larghezza di banda per
compensare il basso rapporto segnale rumore. Nel watermarking di immagini è desiderabile trovare
il massimo numero di posizioni per nascondere l'informazione nell'immagine. L'idea di base dello
spread spectrum consiste nel distribuire la firma su tutta l'immagine aumentando così la
robustezza e la sicurezza del watermark presente nell'immagine. La difficoltà nelle tecniche di
watermark non sta tanto nell'inserire una firma nell'immagine quanto ad essere poi in grado di
rivelarla in modo sicuro. La firma viene distribuita su tutta l'immagine mediante particolari
algoritmi di ''Spreading'' rendendone così più facile la rivelazione solo se si è a conoscenza
dell'algoritmo utilizzato. Se l'algoritmo di spreading utilizzato nella codifica non è noto, sarà
praticamente impossibile non solo leggere la firma all'interno dell'immagine ma addirittura
accorgersi della sua presenza. L'utilizzo dello spread spectrum è quindi praticamente essenziale se
si vuole raggiungere un certo livello di sicurezza. Gli algoritmi di spreading si basano su un set di
frequenze ortogonali non sovrapposte in grado di nascondere le informazioni b all'interno di un
segnale di watermark w(x,y).
43
∑=
Φα=N
1iii )y,x(b)y,x()y,x(w (2)
Questo metodo, largamente usato da Kutter verrà ripreso in seguito.
4.5.3 La Modulazione
La modulazione può essere definita in modo semplificativo come l'unione di due segnali. Nel
nostro contesto ci riferiamo al processo di inserimento di una sequenza di bit in un documento,
soggetto alla condizione che questa sia invisibile all'occhio umano ma che possa essere letta
attraverso strumenti elettronici. I fattori che determinano la scelta del metodo nel watermark
d'immagine sono piuttosto complessi. Il primo fattore è il requisito della robustezza. Ogni
operazione fatta sull'immagine del tipo tagli, compressioni, quantizzazione vettoriale o scanning
non deve degradare la trasmissione del watermarking. Il secondo fattore è la visibilità. E' intuitivo
che nelle regioni piatte dell'immagine prive di dettagli può essere nascosta meno informazione.
Dovrebbe essere possibile incorporare più informazione in quelle parti dell'immagine che
contengono più testo o nelle vicinanze dei contorni. Si deve inoltre tener conto nella trasmissione di
informazioni nascoste, dei fenomeni psicovisuali. Contributi allo sviluppo di una forma di
watermark che rispettasse i fattori sopra elencati sono venuti da diversi studiosi. Brassil ad esempio
ha elaborato diversi metodi per marcare testi all'interno di documenti con un'unica parola di codice
binaria che servisse ad identificare gli utenti legittimi del documento. La parola di codice è inserita
nel documento operando una lieve modifica alla struttura del documento come una modulazione
della larghezza della linea, degli spazi tra parole o la modifica del carattere di scrittura. La presenza
di una parola di codice non degrada visibilmente il documento, ma può essere rilevato facendo una
comparazione con l'originale. Kurak e McHugh partendo dallo studio della trasmissione di virus nel
basso ordine di bit di uno stream di dati, notarono che guardare soltanto un'immagine non è
sufficiente per rilevare la presenza di alcune forme di corruzione. Arrivarono alla conclusione che
sfruttando il limitato range dinamico dell'occhio umano si possono nascondere immagini di bassa
qualità all'interno di altri immagini.
Matsui e Tanaka hanno applicato algoritmi di predizione lineare per applicare i watermark a
parecchi diversi tipi di comunicazione quali video, facsimile, immagini a colori e grey scale. Tirkel
e van Schyndel hanno prodotto watermark resistenti al filtraggio, ai tagli nell'immagine e
ragionevolmente robusti agli attacchi. In più l'immagine originale non è richiesta per decodificare il
44
marchio.Recenti lavori hanno indicato progressi verso la produzione di watermark più robusti. Zhao
e Koch hanno lavorato sul watermarking basato sull'algoritmo di compressione del JPEG. Inoltre in
collaborazione con Caronni che marchia variando la media all'interno di blocchi dell'immagine,
hanno implementato il metodo di posizionare i blocchi in posizioni casuali dell'immagine in modo
da ottenere una protezione contro gli attacchi. Boland, O' Ruanaidh e Dautzenberg hanno descritto
un algoritmo che inserisce il watermark in una immagine digitale nel dominio trasformato. Il primo
passo è dividere un'immagine in blocchi rettangolari. Ciascun blocco è poi trasformato usando la
DCT, la trasformata di Walsh o la trasformata Wavelet. I bit sono sistemati incrementando un
coefficiente selezionato per codificare un ''1'', e decrementandolo per codificare uno ''0''. I
coefficienti sono selezionati rispettando il criterio basato sul contenuto di energia. Gli schemi di
modulazione del dominio trasformato posseggono diverse caratteristiche desiderabili; per prima
cosa uno può marcare in accordo con la distribuzione di energia che significa che uno può
adattativamente sistemare i watermark dove essi sono meno notabili all'interno della trama di
un'immagine. Come risultato nel dominio trasformato il watermark ha uno spettro molto simile a
quello dell'immagine originale. In secondo luogo il watermark è distribuito in modo irregolare sui
blocchi dell'intera immagine e ciò rende più difficile rilevarlo e per nemici in possesso di copie
indipendenti dell'immagine di decodificare e leggere il marchio.
Questo approccio di piazzare i bit dove questi sono meno visibili può essere una potenziale
debolezza. Gli algoritmi di compressione dell'immagine con perdita sono realizzati per ignorare le
informazioni ridondanti. I bit d'informazione piazzati dentro la trama dell'immagine sono quindi più
vulnerabili agli attacchi. C'è quindi un compromesso da trovare tra il nascondere una grande
quantità di bit d'informazione dove essi possono essere meno visibili, ma dove sono più vulnerabili
agli attacchi negli algoritmi di compressione con perdita, o piazzare meno bit su minore trama ma
su porzioni più sicure d'immagine. Di seguito viene presentato un esempio di un algoritmo di
watermarking sviluppato da O'Ruanaidh, Boland e Dowling che è basato sull'uso della
Trasformata discreta di Fourier. Questo metodo differisce fondamentalmente da quello delle
tecniche del dominio trasformato in quanto non sono i coefficienti trasformati che portano
l'informazione ma la fase della trasformata discreta di Fourier. La DFT di un'immagine reale è
generalmente di tipo complesso con una fase e un modulo. Lim ha studiato l'importanza della fase e
del modulo nell'intelligibilità di un immagine concludendo che la fase è molto più importante. Ciò è
molto interessante dal nostro punto di vista per parecchie ragioni. Per prima cosa, un watermark che
è inserito nella fase della DFT sarebbe più robusto alle manipolazioni. Il nocciolo dell'informazione
contenuta nei watermark è quasi sempre codificato con un alto grado di ridondanza. Quindi le
distorsioni di fase deliberatamente introdotte da un nemico per impedire la trasmissione di un
45
watermark dovrebbe essere notevolmente grandi per avere successo. Questo causerebbe
inaccettabili danni della qualità dell'immagine. Secondo, dalla teoria della comunicazione, è ben
noto che la modulazione d'angolo possiede immunità superiore al rumore comparata con la
modulazione d'ampiezza. Infine la fase è relativamente robusta ai cambiamenti nel contrasto
dell'immagine.
La figura 1 mostra un'immagine grey-scale di dimensioni 256x256 pixel. Su questa immagine è
stato posto un watermark usando la DFT. Un blocco 8x8 è stato usato per l'algoritmo di
watermarking. In Figura 2 è mostrata l'immagine con dentro il watermark. Solo la fase della DFT è
usata per inserire la parola di codice. Un totale di 9920 bit è stato inserito in Figura 2. Nonostante la
presenza del watermark, la figura non contiene nessun visibile artefatto.
La figura 3 mostra la differenza gamma assoluta tra l'immagine originale e quella marcata. E'
interessante notare che la più grande differenza si ha nelle regioni di testo e vicino ai contorni.
a) b) c)
Figura 1 a) ; b) c) .
4.5.4 Recupero del marchio
Ci sono parecchi distinti metodi per recuperare il watermark da un'immagine marchiata. Il primo,
che è anche il più ovvio, consiste semplicemente nel comparare l'immagine marchiata con quella
originale di partenza. Il secondo metodo che non richiede comparazione è meno ovvio. Se
l'informazione è quantizzata prima del marking allora la deviazione dai campioni quantizzati
potrebbe essere usata per trasportare informazione. Quantizzazioni grossolane permettono marking
più profondi al fine di dare maggiore robustezza al marchio. Comunque questo va a scapito della
riduzione dell'informazione dell'immagine degradata. La soluzione ottima tra questi fattori è
fortemente dipendente da considerazioni psicovisuali. Il terzo metodo, che non richiede anch'esso la
comparazione con l'originale, dipende dalle specifiche proprietà del segnale usato per inserire il
marchio. Esempi del metodo sono presentatati da Tirkel e van Schyndel.
46
4.5.5 Caratteristiche dei segnali di watermarks
• Invisibilità Inserire un segnale di watermark comporta necessariamente un seppur lieve
degrado dell'immagine; questo degrado deve essere il più lieve possibile in modo da non
alterare la percezione visiva dell'immagine. Il grado d'alterazione dell'immagine deve essere
decisa dal proprietario dell'immagine, il quale può scegliere tra forti alterazioni che danno
una garanzia di robustezza ad eventuali attacchi, e deboli alterazioni che non degradano il
prodotto.
• Complessità I segnali di watermark sono tutti caratterizzati da una grande complessità.
Questa è necessaria per impedire che qualcun'altro sia in grado di riprodurre lo stesso
segnale di watermark. Un altro vantaggio della complessità del watermark è che assicura
delle proprietà statistiche affidabili e la loro presenza può essere rivelata con grande certezza
statistica.
• Codifica a chiave.:ogni segnale di watermark è associato ad una particolare sequenza di bit
detta chiave (key). La chiave (che può essere rappresentata da un numero intero) serve sia
per produrre il segnale di watermark che per riconoscerlo all'interno di un'immagine. La
chiave è privata e caratterizza univocamente il legittimo proprietario dell'immagine. Solo chi
è in possesso della chiave (il proprietario o un ente autorizzato) è in grado di dimostrare la
presenza del watermark nel prodotto digitale. Il numero di chiavi possibili deve essere
enorme.
• Efficienza statistica:Un'immagine firmata con un segnale di watermark deve essere
facilmente riconoscibile se si conosce la giusta chiave. La probabilità che la chiave (nella
fase di riconoscimento) venga rifiutata pur essendo corretta deve essere sufficientemente
bassa. (Per ogni watermark la chiave corrispondente deve essere unica).
• Invisibilità statistica Il possesso di un gran numero di immagini digitali tutte firmate con la
stessa chiave non deve rendere riconoscibile (e quindi eliminabile) la firma. Diversi prodotti
firmati con la stessa chiave devono generare segnali di watermark differenti. Dobbiamo
essere sicuri che il riconoscimento della chiave all'interno dell'immagine da parte di terzi sia
impossibile.
• Watermark multiplo Deve essere possibile inserire un elevato numero di segnali di
watermark all'interno della stessa immagine; ognuno di questi segnali può essere
riconosciuto mediante la corrispondente chiave.
• Robustezza Sulle immagini digitali possono venir fatte numerose operazioni per migliorare
la loro qualità o per comprimere la loro dimensione. I segnali di watermark devono essere
47
tali da non venire eliminati da questo tipo di operazioni (filtraggio, taglio, JPEG-MPEG
compressione,...)
4.5.6 Schema di inserzione e rivelazione della firma
Lo schema del watermarking è divisibile in tre particolari algoritmi:
• Il Watermark Productoin Algorithm (WPA)
• Il Watermark Embedding Algorithm (WEA)
• Il Watermark Detection Algorithm (WDA)
Gli algoritmi di cui sopra sono pubblici e possono essere applicati da chiunque. La sicurezza del
watermark è basata esclusivamente sulla segretezza della chiave di watermark.
4.5.6.1 .L'inserzione
Il WPA è l' algoritmo di produzione della firma con cui autenticare il documento, è applicato
avendo come input la chiave privata e le informazioni del prodotto digitale, ciascuna coppia
(chiave, prodotto) è trasformata in segnale digitale di watermark. Passando le informazioni del
prodotto nell'algoritmo, riusciamo ad ottenere un watermark che abbia invisibilità statistica, perché
è presumibilmente diverso da quelli ottenuti su altri prodotti, e non lascia riconoscere la chiave. Gli
algoritmi WPA sono basati su generatori di numeri pseudocasuali o/e sistemi fortemente caotici. La
determinazione di una chiave che produce un segnale di watermark predefinito è impossibile, per
esempio la produzione del watermark è una procedure non invertibile per prevenire watermark
contraffatti.
Il WEA è l' algoritmo di applicazione del watermark, richiede come argomenti il prodotto digitale e
il watermark prodotto. Esso inserisce il watermark nell'immagine digitale o in un frame di un video
attraverso la produzione di alterazioni nella luminanza dei pixel. Per i segnali audio, le alterazioni
sono eseguite sull'ampiezza del segnale. Le alterazioni sono di bassa energia e sono progettate
tenendo conto delle principali caratteristiche del sistema visivo ed uditivo dell'uomo. L'inserimento
del watermark può essere fatto anche nel dominio trasformato (per esempio il dominio della DCT).
Dal momento che i segnali video ed audio richiedono larga quantità di memoria, le informazioni
sono inserite nel WEA e marchiate sequenzialmente. Per il watermark dei video, i vettori di
spostamento calcolati dall'algoritmo dell' MPEG dovrebbero essere usati per incrementare le
performance dell'algoritmo.
48
4.5.6.2 La rivelazione
La rivelazione è la parte più cruciale della struttura del watermark. Il WDA è l'algoritmo di
riconoscimento del watermark, dovrebbe essere attendibile e non produrre falsi errori. Quindi il
risultato del rivelatore dovrebbe essere un'indicazione indiscutibile della proprietà del prodotto
digitale. I WDA sono basati su test di ipotesi statistiche. Essi forniscono la certezza che caratterizza
una possibile decisione che accetta l'esistenza di un particolare watermark. Esperimenti numerici
indicano che la rivelazione del watermark è abbastanza attendibile e adatto a provare la proprietà
dei copyright. I WDA non dovrebbero richiedere il prodotto digitale originale per procedere alla
rivelazione del watermark. Questa caratteristica è un grande vantaggio in quanto esso fornisce una
veloce ed automatica implementazione.
4.5.7 .Tecniche di Watermarking
4.5.7.1 Metodo del LSB (Last Perceptible Bits)
La tecnica più semplice consiste nel sostituire il piano (o i piani) di bit meno significativi con la
firma, dato che cambiando i bit meno significativi non si altera visibilmente l'immagine. Questa
tecnica è semplice, ma insicura e poco robusta perché si conosce dove è posta la firma ed è
facilmente alterabile senza che i cambiamenti siano facilmente visibili.
49
Come si vede dall'immagine, l'informazione racchiusa nel bit plane 1 (quello meno significativo)
non porta informazioni essenziali all'immagine e la sua rimozione non comporterebbe una grossa
perdita di qualità.
4.5.7.2 Watermarking nel dominio spaziale (Metodo di Kutter)
Watermark 1D: La Firma spalmata sulla dimensione di una linea dell'immagine (ad esempio
ripetendo più volte ogni bit), viene codificata tramite una sequenza pseudocasuale PN (pseudo-
noise) che è la chiave segreta e sommata all'immagine linea per linea. Per riconoscere la firma le
linee dell'immagine firmata vengono moltiplicate per la sequenza PN, sommate e confrontate con
un valore di soglia.
Questo metodo non ha bisogno dell'immagine originale per il recupero ed è robusto perché la firma
è posta su tutta l'immagine.
Estensione 2D (di Kutter): In questo caso le chiavi segrete sono un set di sequenze ortogonali non
sovrapposte.
50
4.5.7.3 Watermarking in frequenza (Metodo di Cox)
La firma si somma alla DCT dell'immagine sul maggior numero possibile di coefficienti, i valori
della firma vengono scalati in modo da non essere percettibili dall'occhio umano, viene poi fatta la
IDCT della DCT firmata. Per controllare la firma si sottrae dalla DCT dell'immagine firmata la
DCT dell'originale e si verifica se questa firma estratta è simile alla firma originale. Questa tecnica
è robusta perché la firma è sull'intera immagine, la compressione elimina solo componenti
spettrali poco importanti e il restringimento elimina solo le componenti ad alta frequenza, ma
necessita dell'immagine e firma originale. Esistono poi anche tecniche di firme adattative; tecniche
mediante le quali l'algoritmo di spreading non è fisso ma si adatta a seconda della tipologia
d'immagine.
51
4.5.8 Attacchi e robustezza
Si sono presentati diversi problemi nel provare a screditare il watermarking, alcuni indicabili come
debolezze al processing che lo rendono inutilizzabile altri come attacchi per impedirne il
funzionamento detti deadlock (stallo) attack. Per non essere intaccato dal processing il
watermarking deve resistere a compressione, filtraggio lineare e non, distorsioni geometriche
(cambi di scala, rotazioni, ...).
Figura
Il modo più semplice per inserire la firma è il dominio spaziale; qui per non essere percepibile la
firma viene introdotta nei bit plane meno significativi, ma questo la rende poco sicura; per renderla
più sicura viene introdotta nel dominio delle frequenze. Per renderla robusta alla compressione e alla
decimazione, che generalmente elimina le componenti ad alta frequenza, la firma è replicata più
volte con delle tecniche di spreading, ad esempio ripetendo il singolo pixel o coefficiente DCT più
volte o ripetendo più volte la firma stessa. Per renderla robusta a traslazioni, cambiamenti di scala,
rotazioni si usano principalmente due tecniche: l'inserimento della firma in domini invarianti a
queste operazioni, e l'introduzione di griglie nascoste che permettono di determinare e invertire la
distorsione prima della verifica della firma.
4.5.8.1 Esempi di deadlock
Dato che anche un multiplo watermarking ha piccoli effetti percettivi l'attacco più semplice è porre
la propria firma su un'immagine già firmata.
52
In questo caso sembrerebbe che entrambi possano reclamare il diritto di proprietà, il riconoscimento
non è quindi sufficiente per reclamare i diritti di proprietà.Per risolvere la contesa viene richiesta ad
entrambi l'immagine originale, ipotizzandola non firmata, e si verificherà la firma di ognuno con
l'originale dell'altro, la firma del vero possessore sarà invece presente sulla falsa immagine darà un
risultato di firma vera, mentre la firma dell'impostore non sarà presente sulla immagine originale e
darà un risultato di firma falsa.
• Attacco SWICO (contraffazione dell'immagine originale con singola watermarked).
L'impostore può cercare di ottenere una falsa originale rimuovendo la firma dall'immagine
firmata dal vero proprietario e lasciando circolare un'immagine watermarked con la firma di
entrambi, in modo che quando si cercherà la firma dell'altro sulla sua immagine non sarà
presente, quindi la contesa non sarà possibile risolverla neanche con gli originali. La firma
può essere rimossa invertendo l'algoritmo di watermarking utilizzando una firma falsa che
usata al posto di quella del proprietario nel riconoscimento della proprietà venga
riconosciuta come firma originale. Per resistere agli attacchi SWICO è sufficiente che il
processo di watermarking sia non invertibile, è invertibile se si riesce a togliere
completamente la firma, è quasi invertibile se si riesce a togliere buona parte della firma in
modo da renderla irriconoscibile.
• Attacco TWICO (contraffazione dell'immagine originale con doppia watermarked) :In
questo caso a differenza dell'attacco SWICO, oltre a fare una falsa originale, l'impostore
53
produrrà come immagine firmata la sua falsa originale con la sua firma, a differenza del
SWICO saranno così presenti due immagini watermarked entrambe con una sola firma. Per
resistere agli attacchi TWICO invece deve essere anche non quasi invertibile. Per essere
robusto quindi il watermarking deve resistere al processing, deve essere non quasi
invertibile, non dovrebbe avere bisogno dell'immagine originale, dovrebbero esserne
standardizzati schemi e protocolli.
5 Steganografia nel Video
5.1 Introduzione
Anche per il segnale video si è fatto sentire il bisogno di protezione. Infatti,in applicazioni quali la
Pay TV e il Video on Demand si richiede che solo chi paga un regolare abbonamento riesca a
visualizzare ciò che viene trasmesso. Analogamente,nelle video conferenze è importante che solo gli
autorizzati condividano le informazioni scambiate. Tuttavia,andare ad alterare completamente il
segnale video con gli algoritmi di crittografia tradizionali (simmetrici e a chiave pubblica ) significa
perdere la possibilità di processare in tempo reale , dato che le sue elevate dimensioni impediscono
di elaborarlo velocemente. Ecco perché vengono studiate delle tecniche che agiscono solo su alcune
parti dello strema,principalmente su quelle che influenzano di più il processo di ricostruzione delle
immagini. Ad esempio ,nel caso del video codificato MPEG ,lo standard più diffuso ,è possibile
trovare la descrizione di numerosi algoritmi che operano sui coefficienti a bassa frequenza della
DCT,sui macroblocchi INTRA e sui vettori di movimento che sono le informazioni più rilevanti dal
lato della ricezione. Tali dati vengono alterati utilizzando o algoritmi già esistenti (ad esempio
DES) o semplici operazioni logiche ,soprattutto lo XOR, effettuate tra le informazioni e la chiave.
Inoltre ,per garantire un’adeguata velocità, le tecniche proposte sono simmetriche ,cioè vengono
applicate alla stessa maniera in trasmissione e in ricezione.
L’attività di ricerca è attualmente focalizzata sullo sviluppo di un nuovo algoritmo di crittografia per
il segnale video che, per crittare le informazioni ,utilizza informazioni caotiche. Quest’ultime
rappresentano una novità nel settore:frequentemente adottate per la crittografia del testo ,sono state
raramente impiegate per cifrare il segnale video e in alcuni casi il loro impiego pregiudicava la
possibilità di processare il segnale in tempo reale. L’algoritmo caotico proposto consente di
rispettare tale requisito e permette anche di raggiungere una buona sicurezza. Il livello di sicurezza
54
offerto dall’algoritmo necessita di una valutazione di tipo “oggettivo”. Risulta interessante anche
una valutazione “ soggettiva”,basata sul confronto tra l’immagine “in chiaro” e l’immagine crittata.
5.2 Video Editing in MPEG-4
La maggiorparte degli algoritmi di watermarking nelle applicazioni video si è sviluppata
velocemente negli ultimi anni. I metodi di watermarking video esistenti possono essere
classificati in due gruppi principali dipendenti dal tipo di lavoro che occorre eseguire:
• Raw-video watermarking :eseguito prima della compressione
• Bit-stream watermarking :eseguito dopo la compressione.
Hartung e Girod lavorano attualmente al primo metodo quello cioè riguardante la raw-video
watermarking. L’appoccio ,ispirato al metodo dello spread spectrum,consiste nel convertire i dati
rappresentandoli mediante una stringa binaria la cui lunghezza è adattata alla lunghezza del data
host .Tale stringa viene successivamente modulata da una sequenza di pseudo-noise e un
pixelwise viene aggiunto alla componente del video.
Il recupero è compiuto attraverso un metodo basato sulla correlazione.Questo approccio è molto
sensibile al frame tagliato e cambiato ed è possibile usare in alternativa una variante del metodo
modellando la sequenza video come bitplane ( pixel plane in due dimensioni).
Hsu e Wu si occupano dello stesso argomento utilizzando la trasformata DCT applicata blocco
dopo blocco al video.Infatti il watermarking viene eseguito imponendo particolari relazioni tra
frequenza e coefficienti DCT appartenenti a blocchi spazialmente vicini di “intracoded frames”o
blocchi temporalmente vicini di “intercoded frames”.Alla fine per ottenere la sequenza video
criptata si calcola la IDCT di ogni frame.
Anche Swanson si è occupato della raw-video watermarking.Il suo lavoro consiste in un metodo in
cui il watermak è inserito in componenti temporali statiche e dinamiche generate dalla trasformata
wavelet temporale del video.Le ditribuzioni nel tempo e in frequenza del watermark sono
controllate dalle caratteristiche di masking del segnale host video per ottenere un ragionevole
tradeoff tra visibilità e robustezza.I coefficienti wavelet dei frame sono convertiti nel dominio del
tempo usando la trasformata wavelet invera.
55
Il sistema proposto da Kalker per il raw_video watermarking considera il video come una
sequenza di immagini fisse.Nella sequenza video è inserito lo stesso watermark in tutti i frames.Il
processo di embedding è eseguito aggiungendo campioni di watermark ,i quali sono tracciati
indipendentementeda una distibuzione normale con valore medio e deviazione standard pari a 0 e
1,rispettivamente,per i valori del pixel del frame considerato.In altre parole il watermark è
semplice rumore bianco additivo.La rilevazione del watermark è eseguita dalla correlazione
spaziale.
Deguillaume ha proposto uno schema di watermarking 3_Dimensionale in cui il raw_video è
visto come un segnale 3_D con due dimensioni nello spazio e una nel tempo.Il video è prima
diviso in pezzi consecutivi di lunghezza fissata e poi è eseguita una 3_D DFT per ogni pezzo.
Due informazioni sono nascoste :watermark e template.Il watermark,che è lo stesso per ogni
pezzo,è un segnale spread_spectrum aggiunto al 3_D DFT.Template è una griglia 3_D che
determina e inverte le trasformazioni geometriche..
Hartung e Girod hanno proposto un algoritmo per il bit_stream watermarking.Il watermark,
consistente in un segnale spread_spectrum,è trasformato con la DCT.I coefficenti DCT sono poi
aggiunti ai coefficienti DCT nonzero del video bitstream codificato con MPEG-2 facendo
attenzione a non aumentare il bit_rate .
Anche Langelaar ha proposto un interessante metodo sul bit_stream watermarking.Ogni bit di
watermark (stringa binaria) è incastrato in una regione di 16 blocchi 8x8 intoducendo una
differenza di energia tra i coefficenti DCT ad alta frequenza della metà superiore ed inferiore
della regione di immagine.Il valore del bit di embedding è definito dal segno della differenza di
energia introdotta.Questa differenza è ottenuta scartando i coefficienti DCT che nella scansione a
zig_zag sono posti dopo un punto di cutoff e appartengono a una delle due regoni precedenti.
Piva ha proposto un algoritmo di watermarking video mediante l’utilizzo di MPEG_4.Un
algoritmo di watermarking basato su DWT ,originariamente sviluppato per immagini fisse,è
applicato al watermarking di singoli oggetti MPEG_4.L’algoritmo opera frame per frame
aggiungendo pseudo_random watermark alle bande ad alta risoluzione di ogni oggetto..Lo
svantaggio di questo sistema è che il rilevatore può svelare solo la presenza di un watermark noto.
5.3 Watermark Embedding
L’algoritmo di watermarking proposto nasconde un bit del codice di watermark in ogni blocco di
luminanza appartenente a un insieme di MBs (macroblocco) selezionato su base pseudo_random.
L’algoritmo è abilitato a lavorare quando un MPEG4 bit_stream è disponibile.
56
Se un MB è saltato anche un bit è saltato.Il codice di watermarking è ripetuto sul VOP (Video
Object Plane) completo.Il watermark embedding è eseguito su un frame base;cioè su ogni VOP
dello stesso VOL (Video Object Layer) il codice è incastrato di nuovo iniziando dal primo bit.
Ogni bit è cosi incastrato più di una volta durante una sequenza di VOPs,ma alcuni bit sono
incastrati meno frequentemente che altri.In figura è mostrato lo schema di watermak embedding.
L’embedding del watermark nel video è eseguito nei seguenti step:
1) Selezione dei MBs e dei coefficenti DCT quantizzati per essere modificati;
2) Per ciascun blocco appartenente al MB selezionato:
a) calcolo dell’intervallo di frequenza
b) uso dell’intervallo per calcolare l’ampiezza del watermark;
c) modifica ,secondo la regola dell’algoritmo,dei coefficenti selezionati creando il
blocco criptato.
All’inzio di ogni VOP una sequenza binaria pseudo_random è generata per scegliere gli MBs dove
il codice di watermarking è incastrato e i coefficenti sono stati modificati.Tale sequenza è basata
su una chiave segreta e sulle caratteristiche (numero di MBs) del suo VOP.
Se l’MB scelto non è saltato, un bit del codice di watermark è incastrato in esso imponendo una
particolare relazione tra le coppie dei coefficenti selezionate che appartengono a ogni blocco di
luminanza del MB.Se un MB è saltato, anche un bit è saltato .L’uso di una sequenza
pseudo_random permette di migliorare la sicurezza del watermark prevenendo la possibilità che
l’attaccante alteri il codice di watermarking dopo aver identificato le posizioni di embedding del
watermark.E’ noto che applicando uno stesso watermark a ogni frame di un video si ha il
57
problema di mantenere l’invisibilità statistica.Per prevenire gli attacchi statistici ,la sequenza
pseudo_random che lo genera è anche VOP dipendente .
Per ottenere un tradeoff tra l’esigenza di invisibilità e robustezza ,solo i coefficenti DCT
quantizzati appartenenti al centro banda sono considerati per watermark embedding (come
mostrato in figura)
.Il watermark è la differenza tra le grandezze:
W(u1,v1,u2,v2) = |QF(u1,v1)| - |QF(u2,v2)| (1)
Dove (u1,v1) e (u2,v2) sono le coordinate dei due coefficenti di una di queste coppie.
W(u1,v1,u2,v2) è un processo casuale non stazionario avente valore medio nullo e varianza media.
Se {QF(u1,v1),QF(u2,v2)} è una coppia selezionata casualmente la corrispondente coppia criptata
sarà indicata con {QF’(u1,v1),QF’(u2,v2)}.In particolare l’embedding è eseguita in modo che la
differenza in (1) è maggiore di 0 se un bit informativo 1 è stato trasmesso ,e minore di 0 se il bit
informativo è 0.Supponendo che il bit di embedding è 1 ,ci sono tre casi da analizzare:
58
• entrambi i coefficenti della coppia sono diverse da zero e la differenza delle loro grandezze
è ≥ n AF.
• entrambi i coefficenti della coppia sono diverse da zero e la differenza delle loro grandezze
è < n AF.
• uno o entrambi i coefficenti della coppia sono 0.
Nel primo caso non è eseguita nessuna modifica dei coefficienti .Nel secondo caso,il watermark è
inserito con massima resistenza:il segno dei coefficienti non è cambiato mentre le rispettive
grandezze diventano
2
An)v,u(QF)v,u(QF()u,u(QF F
22'
11'
11'
++=
e
>−
=altrove0
0)v,u(QFseAn)v,u(QF)v,u(QF 22
'F11
'
22'
mantenere il watermark invisibile perché l’effetto della maschera tra le componenti frequenziali
DCT è assente.In questo caso,i coefficienti della coppia sono cambiati meno pesantemente.
>
=altrove0
)v,u(QF)v,u(QFse)v,u(QF)v,u(QF 221111
11'
>
=altrove0
)v,u(QF)v,u(QFse)v,u(QF)v,u(QF 221122
11'
Per l’embedding di un bit 0 ,l’algoritmo è simile,ma i ruoli dei coefficienti sono cambiati ,e
così,per le coppie dove un bit 0 ha subito embedding, risulta W’(v1, u1, v2, u2) ≤ 0.
5.4 Recupero del Watermark
Il recupero del watermark è eseguito in due steps come mostrato nella fig.4.Il primo step è
analogo al primo step del processo di embedding e richiede la conoscenza dei parametri usati nella
fase di embedding (la chiave segreta e il numero di coppie modificate in ogni blocco
59
selezionato)per identificare correttamente gli MBs e le coppie di coefficienti dove il watermark era
nascosto.Nel secondo step sono analizzate le relazioni tra i coefficienti delle coppie selezionate.
La conoscenza della lunghezza del codice di watermarking per ricalcolare lo step del codice di
watermarking in ogni VOP. Per leggere il j-esimo bit del codice di watermarking si considera un
accumulatore, dove sono sommati i valori di W’(v1,u1,v2,u2) corrispondenti a tutte le coppie di
coefficienti dove è inserito il bit.
Chiamiamo ψ j l’insieme di tali coppie:
∑ψ
=j
j)v,u,v,u(WA 2211
'cc
Tale somma è poi confrontata con la soglia TD per valutare il valore dell’embedding del bit bj :
<
≤≤−
>
=
Dcc
DccD
Dcc
j
TAif0
TATifateminerdetin
TAif1
b
j
j
j
Per minimizzare la probabilità di errore totale il valore TD deve essere zero;infatti ci si aspetta che
A è positivo quando il bit di embedding è 1 e negativo in caso opposto.
Scegliendo TD = 0 induciamo la lettura del codice di watermark anche quando su nessun codice è
eseguito l’embedding.Per ovviare questo problema ,la misura dell’affidabilità del bit letto è
stabilita per ogni bit recuperato.Con questo fine notiamo che solo una delle seguenti situazioni è
possibile: • Hp.A:Il VOL non è marcato;
• Hp.B:Il VOL è marcato
Indichiamo con E[Acc|A] e σ2
Acc|A il valore medio e la varianza di Acc condizionato a
Hp.A,rispettivamente.
Per ciascun bit si ha
E[Acc|A] = 0
ed è data la stima di σ2
Acc|A basata sui valori dei coefficienti DCT che costituiscono blocchi di
nonwatermark (blocchi non selezionati da chiavi random).
Data σ2
Acc|A ,definiamo per ogni bit
Cj = Accj/ σ Acc|A
Più è piccolo questo valore e più è probabile che la sequenza sia di nonwatermark.
60
5.5 Risultati sperimentali
Discutiamo alcuni esperimenti per provare l’efficacia dell’algoritmo proposto.Il test del software è
stato implementato in modo che esso prende,nella fase di embedding,un VOL MPEG-4,una chiave
segreta (rappresentata da un intero) ,il numero di coppie che sarebbe modificato in un blocco,un
codice di watermarking binario,e un numero in virgola mobile che rappresenta la massima
lunghezza di AF , detta AMAX, del segnale di watermarking,come ingresso.Nella fase di
ricostruzione il software implementato prende il VOL,la lunghezza del codice di watermarking,
una chiave segreta e un numero di coppie che sono modificate in un blocco come ingresso e da il
codice di watermarking e il valore di Cj per ogni bit letto.
Due tipi di test sono condotti su tre differenti sequenze video per testare da un lato l’invisibilità del
watermark che ha subito l’embedding e dall’altro la robustezza contro tutti i processi che non
degradaano seriamente la qualità del video.
Tra le sequenze video testate, evidenziamo i risultati raggiunti dalle sequenze video standard
“News” e “Stefan”.
Questi sono codificati usando piani α binari e consistono di 300 frame in formato CIF con un rate
di 25 fr/sec.
”News” è composto di 4 Vos come mostrato in figura
“Stefan” è composto di 2 Vos come mostrato in figura.
61
5.5.1 Esperimenti sulla Visibilità
Sono stati eseguiti dei test per valutare la qualità dei video criptati, nei quali il video originale e un
video in cui ogni VO è criptato sono mostrati in sequenza all’osservatore. L’ordine in cui i video
originale e criptato sono mostrati è casuale. L’osservatore seleziona la sequenza con qualità
maggiore.
5.5.2 Robustezza e Diminuzione del Bit-Rate
La robustezza e la diminuzione del bit-rate sono molto importanti perché questi tipi di attacchi
possono essere entrambi di natura intenzionale o “accidentale” Infatti ,in molte applicazioni che
implicano immagazzinamento e trasmissione di video digitali,è necessario ridurre il bit-rate per
migliorare l’efficienza della codifica. Nel test proposto ogni sequenza video criptata è codificata e
decodificata contro la diminuzione del bit-rate,e la rilevazione del watermark è tentata. Questo test
è eseguito, in ogni video,per un insieme di diverse lunghezze del codice di watermarking.
62
5.5.3 Robustezza e Frame Dropping
L’algoritmo di watermarking inserisce il watermark senza modificare i coefficienti zero;per questa
ragione la lunghezza del watermark che ha subito embedding è più alta nei VOPs codificati con
INTRA rispetto ai VOPs codificati con INTER. I cambi nella struttura GOV sono critici. E’anche
ovvio che uno dei casi peggiori si ottiene quando il primo frame del video è abbassato. In questo
caso,ogni VOP codificato INTRA diventa l’ultimo VOP codificato INTER nella struttura GOV.
Nei test eseguiti ogni sequenza video crittata è codificata e decodificata di nuovo dopo aver
eliminato il primo frame e si tenta di rilevare il watermark.
63
Nelle tabelle III-V, il numero dei bit letti correttamente per ogni oggetto video è eseguito per due
valori di AMAX.
5.5.4 Confidence Measure
A proposito del parametro Cj in figura 7 i valori assoluti delle stime di Cj ottenute per VO0 della
sequenza di “Stefan” sono tracciate per ciascun bit nei tre casi “Watermarked”,”Non
Watermarked” e “Wrong Key”.E’ evidente che i valori di Cj sono sempre più alti quando la
chiave corretta è usata su una sequenza watermarked rispetto agli altri due casi .Per alcuni di
questi bit il valore di Cj è assai basso anche quando è usata la chiave corretta:questo è dovuto al
fatto che questi particolari bit sono stati ripetuti solo poche volte nella sequenza,e così la loro
lettura è assai inattendibile.Questi sono anche i bit che sono persi quando il primo frame della
sequenza è tagliato (tabella IV).
64
2 Steganografia in JPEG2000
6.1 Codifica JPEG2000
Il diagramma a blocchi di JPEG2000 è mostrato in Figura 1.Dal lato encoder
l’immagine originale prima subisce la trasformata wavelet.I coefficienti wavelet
risultanti sono poi quantizzati e codificati.Il modello di codifica di JPEG2000 può
essere visto come disposto su due file sovrapposte.Un controllo è applicato nei
passi di codifica e quantizzazione per ottenere il Bit Rate desiderato.Il lato decoder
inverte le operazioni decodificando e dequantizzando il Bit Stream e applicando la
trasformata inversa per ricostruire l’immagine.
Sulla prima fila della struttura gli indici di quantizzazione di ogni sottobanda sono
partizionati in blocchi di codice.Il blocco di codice è codificato un Bit Plane alla
volta iniziando dal più significativo al meno significativo.Ogni Bit Plane è
codificato con tre passi di codifica.Il primo passo di codifica è significance
propagation pass , che trasmette significato e informazione per campioni che non
hanno significato e devono averlo.Il secondo passo di codifica è magnitude
refinement pass . Tutti i bit diventati significativi in un precedente Bit Plane sono
portati in questo passo usando simboli binari.Il terzo passo è cleanup pass nel
quale tutti i bit che non sono stati codificati nei precedenti passi lo diventano.I
simboli generati dai primi due passi sono codificati grossolanamente o
entropicamente da un codificatore aritmetico binario adattativi e context_based
(codificatore MQ).L’uscita del processo di codifica sulla prima fila è quindi una
collezione di rappresentazioni compatte di passi di codifica dei blocchi di codice.
65
Tier-2 di codifica sulla seconda fila opera sulla informazione riassunta dei
blocchi di codice ,che determinano dei blocchi che contribuiscono al flusso dei
codici binari.Il bit-stream di ogni blocco di codice è troncato in modo da
dimezzare la distorsione.Fondamentalmente il troncamento può capitare solo alla
fine di un passo di codifica.Per minimizzare la distorsione l’esatto punto di
troncamento è scelto tra quelli possibili in ogni blocco.I passi di codifica sono poi
raggruppati in pacchetti a formare il flusso di codice finale.L’ordine dei pacchetti
nel flusso di codice facilita la trasmissione progressiva dell’immagine attraverso
fedeltà,risoluzione o componenti.Poiché l’algoritmo del tasso di distorsione del
Tier-2 di codifica è applicato dopo a tutti i campioni che sono stati compressi nel
Tier-1 di codifica,il meccanismo del tasso di controllo di JPEG2000 è chiamata
ottimizzazione Post-Compression Rate-Distorsion (PCRD).Inoltre alcuni passi di
codifica possono essere scartati da questa procedura di troncamento ottimizzata
cosicché il Tier-2 di codifica è un’altra sorgente primaria di perdita di
informazione nel percorso di codifica oltre la quantizzazione.
6.2 Informazioni Nascoste in JPEG2000
6.2.1 Challenges di Informazioni Nascoste
L’obbiettivo è sviluppare uno schema che nascondi le informazioni sotto la
struttura di JPEG2000 cosicchè un alto volume di dati può essre trasmesso
segretamente in modo più sicuro.Come prima cosa determiniamo una posizione
appropriata nel flusso di codifica di JPEG2000 per nascondere le
informazioni.Dalla struttura data dalla Figura1 ci sono tre posizioni da considerare
e ne esaminiamo di seguito la convenienza per nascondere informazioni.
• Trasformata dell’immagine: Dopo la trasformata intra dell’ immagine i dati
sono trasformati in coefficienti wavelet.Per il watermarking digitale il
payload è basso e può essere applicato un embedding multiplo con
rivelazione maggiore oppure un concetto di spread-spectrum
.L’informazione che ha subito l’embedding può così avere sufficiente
robustezza contro la compressione di un altro codec.L’embedding multiplo
non è conveniente nelle applicazioni che nascondono dati .
66
• Quantizzazione: è un importante step nella compressione delle immagini
che riduce la ridondanza visuale per codifica efficiente .La quantizzazione è
una sorgente primaria di perdita di informazione.
• Codifica: Se l’informazione ha subito embedding all’uscita di Tier-2 di
codifica allora si può garantire che questa sarà ricevuta senza errore e in
ordine corretto perché evitiamo le due maggiori sorgenti di perdita di
informazione,quantizzazione e troncamento del bit-stream.però abbiamo
difficoltà nella modifica dei pacchetti per eseguire l’embedding della
informazione poiché il bit-stream può essere stoto compresso da un
codificatore aritmetico.
6.2.2 Embedding Progressivo di un’Immagine Nascosta e suoi svantaggi