Il crescente scambio di informazioni digitali ha reso oggigiorno necessario lo studio di tecnologie di protezione dati; mentre nell' era analogica sono state sviluppate tecniche di protezione basate sulla sicurezza fisica del dato, con l' avvento dei dati multimediali è drasticamente aumentata la facilità con la quale è possibile accedere o alterare informazioni. Queste motivazioni hanno inizialmente ostacolato la diffusione di servizi multimediali distribuiti sulla rete (ad esempio Pay-TV oppure Vide On Demand); le prime tecniche proposte per la protezione dei dati multimediali utilizzavano le classiche tecniche crittografiche applicandole ad un flusso multimediale: il flusso bidimensionale (immagine) o tridimensionale (video) di dati veniva considerato come flusso monodimensionale e su questo si applicava la cifratura (naive ciphering)

 

                                 

Le tradizionali tecniche di crittografia sono state raffinate effettuando una cifratura selettiva (solamente una parte delle informazioni cifrate) oppure sfruttando le caratteristiche del dato da cifrare. Ad esempio considerando lo standard JPEG è possibile modificare l' algoritmo di zig-zag scanning in modo che i coefficienti della DCT vengano permutati in base a delle liste di permutazioni.

Le tecniche di cifratura possono quindi essere utilizzate per la protezione del copyright, cifrando i dati da trasmettere all' utente autorizzato; rimane però il grave problema che la cifratura non protegge da copie illegali: una volta che l'utente legittimo ha decifrato il dato, chi mi garantisce che il dato non venga duplicato o distribuito in modo illecito ?

Innanzitutto voglio sottolineare come pur esistendo due grandi categorie di watermarking, visibile e invisibile mi concentrerò solo su quella invisibile in quanto quella visibile non può essere considerata tecnica di watermarking in quanto non inserisce un watermark (opera un semplice overlay del marchio sull'immagine)

E' stata proposta una nuova soluzione per la protezione del copyright e dell' integrità del dato che utilizza tecniche di Data Hiding ( molti staranno già pensando all' OOP ). Le tecniche di Data Hiding operano nascondendo una marca (watermark digitale) all' interno di un documento multimediale, permettendo così operazioni sia di protezione del copyright che di tracking; in definitiva il Data Hiding permette sia di introdurre un nuovo livello di protezione post decifratura sia la verifica dell' autenticità e integrità del dato. Il watermark digitale può essere paragonato alla filigrana presente sulle banconote: è un infatti un informazione che viene incapsulata all' interno del dato, è difficilmente clonabile, è abbastanza robusta ed è invisibile durante il normale utilizzo. Il watermark riesce quindi a veicolare informazioni sull' oggetto all' interno del quale viene nascosto. Le tecniche di Data Hiding permettono quindi di incapsulare in modo impercettibile un watermark all' interno di dati multimediali sfruttando le imperfezioni del sistema audio-visivo umano. L' occhio umano quindi non riesce a distinguere un' immagine a cui è stato applicato il watermark dall' immagine originale.

    Original           Watermarked

Premesso ciò, solitamente si effettua una prima classificazione delle tecniche di Watermark in base al dominio di inserimento del watermark: alcune tecniche infatti lavorano sul dominio dello spazio altre su quello della frequenza. Le tecniche che operano nel dominio spaziale considerano l' immagine come una matrice bidimensionale di pixel, ad ognuno dei quali viene associato un valore di luminosità (scala grigi:0-255); queste tecniche modificano quindi i pixel dell’immagine (agendo solitamente sui bit della luminosità) al fine di alterare l’immagine stessa in maniera impercettibile all’occhio umano, ma introducendo una sequenza pseudo-casuale di bit dipendente dalla chiave di inserimento (scelta dall' utente). Una delle prime tecniche di watermarking operante nel dominio dello spazio è la tecnica LSB (Least Significant Bit): questa tecnica, come dice il nome stesso, sfrutta il fatto che se ogni pixel dell' immagine viene rappresentato attraverso n bit, allora il bit  meno significativo di ogni pixel, non rappresentando un alto contenuto informativo per l' immagine, può essere sostituito da bit che rappresentano il watermark. La tecnica LSB è una tecnica fragile in quanto un semplice attacco, che ad esempio setta a zero o uno tutti i bit meno significativi dell' immagine, elimina il watermark senza alterare di molto la qualità dell' immagine. Come ulteriore esempio di tecniche che operano nel dominio dello spazio possiamo considerare l' insieme delle tecniche basate sulla correlazione: in queste tecniche si aggiunge alla luminanza dell' immagine originale un pattern di rumore pseudo-casuale generato attraverso una chiave segreta; per verificare che il watermark sia presente in fase di detection si verifica se sia presente o meno il pattern di rumore inserito in fase di embedding, valutando la correlazione fra l' immagine ed il watermark.

Le tecniche che operano nel dominio della frequenza (DFT, DCT, DWT) permettono di effettuare l' inserimento del watermark lavorando nel dominio trasformata per poi antitrasformare l' immagine ed ottenere l' immagine con il watermark embedded.

Da studi di teoria delle immagini è noto pixel che sono fra loro vicini hanno dei colori molto simili (alta correlazione). Lavorando in un dominio trasformato (DCT) permette sia di ridurre la correlazione fra pixel vicini che di concentrare l' energia dell' immagine originale in un numero basso di coefficienti energetici.

Vediamo come sia possibile inserire un watermark lavorando nel dominio trasformato. Supponiamo di voler inserire il watermark su di una immagine I; questa viene divisa in una matrice di blocchi 8x8 pixel. In maniera pseudo-casuale si scelgono un numero di blocchi (scelti usando una propria chiave) e si effettua una trasformata DCT ottenendo una matrice di coefficienti. A questo punto si inseririsce il watermark (sequenza di  bit) modificando i valori dei coefficienti DCT (agendo sui bit corrispondenti di ogni blocco). La fase di estrazione o rilevamento del watermark compie un confronto tra i coefficienti DCT dell’immagine originale e quelli dell’immagine protetta, al fine di determinare il watermark (verifica del coefficiente di correlazione).

 

Una delle primissime tecniche di watermarking operante nel dominio trasformato della frequenze è sicuramente la tecnica di Cox cui seguono le evoluzioni adottate anche all' interno dell' ateneo fiorentino definite da Barni,Piva et al. Per chi volesse approfondire le varie tecniche di watermarking è possibile reperire del codice c dove sono state implementate molte tecniche di Watermarking. Su CodeProject trovate inoltre un interessante articolo che implementa in C++ alcune tecniche sia nel dominio dello spazio che in quello trasformato. Per quanto riguarda .NET trovate un articolo sulla steganografia (scienza antichissima che molto ha contribuito al Data Hiding) su DevSource, dove viene mostrata la tecnica LSB, utilizzandola per nascondere un messaggio all' interno di una immagine.

Nunc quiescendum est....

Technorati Tag: ,