FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA
DIPLOMSKI RAD br.1280
UPORABA VODENIH ŽIGOVA PRI ZAŠTITI MULTIMEDIJSKIH DOKUMENATA
Jovica Popović
Zagreb, rujan 2001.
Sadržaj 1. Uvod................................................................................................................................................................... 1 2. Osnovni pojmovi i postupci.............................................................................................................. 4 2.1. Postupci ubacivanja, detekcije i generiranja vodenih žigova............................. 5 3. Svojstva vodenih žigova................................................................................................................... 8 3.1. Poželjna svojstva otpornih žigova....................................................................................... 8 3.2. Svojstva lomljivih vodenih žigova....................................................................................... 11 4. Protokoli za dokazivanje vlasništva pomoću vodenog žiga............................. 13 4.1. Zaštita vlasništva pomoću infrastrukture................................................................ 13 4.1.1. Osobna zaštita vlasništva.............................................................................................................. 15 4.1.2. Zaštita vlasništva pomoću registriranih ključeva..................................................................... 16 4.1.3. Zaštita vlasništva sa Copyright centrom.................................................................................... 16 4.2. Zaštita vlasništva pomoću zero-knowledge protokola.................................... 17 4.2.1. Zero-knowledge protokoli............................................................................................................. 17 4.2.2. Primjena protokola u sustavu vodenog žiga.............................................................................. 20 5. Neke tehnike poboljšanja svojstava otpornih žigova........................................... 22 5.1. Skrivanje ključa............................................................................................................................... 22 5.2. Korištenje originala...................................................................................................................... 22 5.3. Odabir domene žiga........................................................................................................................ 23 5.4. Područje ubacivanja žiga.......................................................................................................... 23 5.5. Korištenje raspršenog spektra žiga................................................................................... 24 5.6. Prilagođavanje sadržaju.......................................................................................................... 24 5.7. Sinkronizacija žiga i detektora............................................................................................ 25 5.7.1. Sinkronizacija pomoću invarijantnosti....................................................................................... 26 5.7.2. Sinkronizacija pomoću obrasca................................................................................................... 28 5.7.3. Sinkronizacija pomoću redundancije.......................................................................................... 28 5.8. Kodiranje sa kontrolom grešaka........................................................................................ 29 5.9. Bayesov pristup detekciji žiga................................................................................................. 29 6. Sustavi zaštite vlasništva............................................................................................................ 32 6.1. Sustavi zaštite slika..................................................................................................................... 32 6.1.1. Označavanje u prostornoj domeni................................................................................................ 32 6.1.2. Označavanje u DFT domeni........................................................................................................... 33 6.1.3. Označavanje u DCT domeni.......................................................................................................... 35 6.1.4. Označavanje u domeni valića....................................................................................................... 36 6.1.5. Označavanje u drugim domenama............................................................................................... 39 6.2. Sustavi zaštite vlasništva video zapisa......................................................................... 41 6.3. Sustavi zaštite vlasništva zvučnih zapisa................................................................... 44 7. Sustavi zaštite integriteta............................................................................................................ 48 7.1. Označavanje u prostornoj domeni...................................................................................... 48 7.2. Označavanje u transformiranoj domeni....................................................................... 49 8. Napadi na sustave vodenih žigova............................................................................................ 50 8.1. Napadi na otporne žigove........................................................................................................... 50 8.1.1. Napadi eliminacijom žiga.............................................................................................................. 50 8.1.2. Sinkronizacijski napadi................................................................................................................. 51 8.1.3. Kriptografski napadi...................................................................................................................... 52 8.1.4. Napadi protokola............................................................................................................................ 54 8.1.5. Protumjere i obrane od napada.................................................................................................... 56 8.2. Napadi na lomljive žigove.......................................................................................................... 57 9. Ostvarenje programskog sustava vodenog žiga........................................................ 59 9.1. Prikaz korištenih algoritama i postupaka................................................................... 59 9.1.1. Generiranje žiga.............................................................................................................................. 59 9.1.2. Postupak ubacivanja žiga............................................................................................................. 60 9.1.3. Postupak testiranja prisutnosti žiga............................................................................................ 63 9.1.4. Algoritmi sustava lomljivog žiga.................................................................................................. 64 9.1.5. Implementacija sustava u programskom jeziku C++............................................................... 65 9.2. Korištenje programa..................................................................................................................... 67 10. Eksperimentalni rezultati........................................................................................................... 73 10.1. Ispitivanje sustava otpornog žiga..................................................................................... 73 10.1.1. Eksperiment 1: Jedinstvenost žiga............................................................................................. 74 10.1.2. Eksperiment 2: Skaliranje i rezanje slike................................................................................. 74 10.1.3. Eksperiment 3: JPEG sažimanje................................................................................................. 75 10.1.4. Eksperiment 4: Uobičajene transformacije signala................................................................ 76 10.1.5. Eksperiment 5: Višestruko označavanje................................................................................... 77 10.1.6. Eksperiment 6: Kombinirani napad.......................................................................................... 78 10.2. Ispitivanje sustava lomljivog žiga........................................................................... 78 11. Zaključak................................................................................................................................................. 79 Bibliografija................................................................................................................................................ 81 1. Uvod
U posljednjih nekoliko godina razvoj računala i digitalnih računalnih mreža je omogućio snažan razvoj i primjenu novih digitalnih medija. U raznim granama zabavne industrije ubrzano se prihvaćaju i implementiraju digitalni mediji. Eksplozivan razvoj WWW usluga, uspostava DVD-a kao novog medija za distribuciju filmova, opća prihvaćenost MP3 formata za glazbu te sve veća prisutnost interneta kao 'medija svih medija', predstavljaju ogromne nove mogućnosti za razvoj komercijalnih djelatnosti. Uzimajući u obzir da analize razvoja pokazuju kako se procesorska snaga udvostručuje svakih 18 mjeseci (poznati Mooreov zakon), kapaciteti pohrane svakih 12 mjeseci, a propusna moć optičkih mreža svakih 9 mjeseci jasno, je da će tendencija 'digitalizacije' svih vrsta i oblika definitivno biti trend budućnosti. No, digitalni oblik podataka nosi sa sobom i nove probleme koji nisu bili prisutni u 'klasičnim', analognim formatima. Pri tome prvenstveno mislimo na probleme zaštite intelektualnog vlasništva, ali i dokazivanje originalnosti ili autentičnosti digitalnog sadržaja. Jednom kada je signal digitaliziran, trivijalno je napraviti neograničeni broj savršenih kopija bez gubitka kvalitete. Pri tome svaka kopija može poslužiti kao predložak za daljnje kopiranje. Analogno tome, računalni programi za manipulaciju digitalnim sadržajem su toliko sofisticirani da je izuzetno teško odrediti autentičnost, tj. netaknutost nekog digitalnog sadržaja. Razvojem računalnih mreža (ilegalna) distribucija je značajno olakšana. Jedna web stranica ili FTP server može poslužiti kao (ilegalni) izvor sadržaja za korisnike s bilo koje točke na zemlji. Lakoća kopiranja, izmjene i distribucije digitalnih sadržaja predstavlja veliku prijetnju za vlasnike prava jer direktno utječe na zaradu i kontrolu nad vlasništvom. Dva su osnovna pristupa rješavanja problema neovlaštenog kopiranja i distribucije: zaštita od kopiranja i detekcija kopiranja (copy protection – copy detection). Zaštita od kopiranja koristi neki tehnički način za sprječavanje kopiranja, osim ako korisniku to eksplicitno nije dozvoljeno. Detekcija kopiranja prilazi problemu s druge strane: umjesto korištenja tehničkih sredstava za sprječavanje kopiranja, od korisnika se očekuje (i implicitno mu se vjeruje) da se pridržava zakona. Vlasnici intelektualnih prava tada traže nelegalne kopije njihovog vlasništva koje se ilegalno distribuiraju. Moglo bi se argumentirano ustvrditi da su tehnički pokušaji zaštite od kopiranja osuđeni na neuspjeh, pogotovo ako uzmemo u obzir da se za reprodukciju digitalnog sadržaja može iskoristiti kućno računalo opće namjene. Vješti korisnici mogu svoje računalo natjerati da radi gotovo sve. Čak ako se koristi neka vrsta enkripcije, prije ili kasnije sadržaj mora biti dekriptiran da bi se reproducirao. U najgorem slučaju, ako se za reprodukciju koristi poseban uređaj, uvijek se može iskoristiti i D/A – A/D put signala. Poznat je slučaj pokušaja zaštite sadržaja DVD-a pomoću CSS (Content Scrambling System) enkripcije. Sve što je bilo potrebno da se sustav pobijedi je jedan nepažljiv proizvođač programa za reprodukciju i jedan finski teenager. Također se možemo prisjetiti svih pokušaja proizvođača programske opreme u osamdesetima da zaštite svoje proizvode od kopiranja. Serijski brojevi, aktivacijski kodovi, hardverski ključevi, nestandardni načini snimanja na medije, sve je prije ili kasnije pokleknulo pred običnim debuggerima i dovoljnom količinom vremena, no prvenstveno pred zahtjevima frustriranih korisnika, koje je zaštita često ometala u normalnom korištenju proizvoda, a poglavito u pravljenju zaštitnih kopija (backup). Ako vjerujemo da je zaštita od kopiranja osuđena na neuspjeh, ili jednostavno nije vrijedna dodatnih komplikacija, onda detekcija kopiranja postaje privlačna alternativa. Detekcija kopiranja ne može napraviti puno kad je u pitanju piratiziranje na malo. Ako netko napravi kopiju filma i da je prijatelju, teško da će to ikad biti otkriveno (čak i kad bi bilo tehnički moguće). No, može se reći da to i nije bitan problem. Štoviše, postoji ekonomska teorija koja kaže da razmjena dobara u malom, zatvorenom krugu korisnika može dovesti do povećanih profita [1]. Logika iza tvrdnje kaže da kad prijatelji razmjenjuju glazbu, čuju sadržaje do kojih inače ne bi došli, što može dovesti do interesa (i kupovine) koji inače ne bi postojao. Ono što vlasnike prava zapravo zabrinjava je da će netko kupiti legalnu kopiju albuma ili filma te omogućiti svima da je nabave besplatno tako što će je staviti na internet. U tom slučaju, vlasnik prava može pretraživanjem interneta i sam vidjeti da je njegov sadržaj ilegalno distribuiran te može iskoristiti postojeći pravni sustav za borbu protiv takvog tipa piratiziranja na veliko. Detekcija kopiranja u tom slučaju može idealno poslužiti. Detekcija kopiranja se može postići ili na temelju samog sadržaja, ili korištenjem posebnog signala. Primjer detekcije kopiranja koja se bazira na samom sadržaju bilo bi računanje psihoakustičnih svojstava glazbe (količina harmonika, frekvencijska distribucija i slično) za formiranje 'potpisa'. Program tada može pretraživati raspoložive glazbene zapise i uspoređivati ih s bazom potpisa zaštićenih pjesama. Drugi pristup identificiranju sadržaja bilo bi ubacivanje dodatnog signala koji bi nosio informacije. Pri tome, da bi sustav bio siguran, ne smije se koristiti zapisivanje informacija u odvojeni signal (zaglavlja, dodaci i slično), jer je onda informacija podložna jednostavnom uklanjanju, što je protivno samoj ideji označavanja. Dakle, potrebno je informacije ubaciti u sam medij. Naravno, pri tome sam sadržaj ne smije biti perceptivno izmijenjen, tj. dodatni signal ne smije biti zamjetljiv pri upotrebi (gledanju, slušanju) sadržaja. Takav pristup označavanju sadržaja naziva se vodeni žig.
Tablica 1. Broj znanstvenih publikacija o vodenim žigovima
U zadnjih par godina područje vodenih žigova je predmet intenzivnog istraživanja i razvoja, kao što pokazuje Tablica 1. Od prve međunarodne konferencije posvećene vodenim žigovima 1996. do danas tehnologija vodenih žigova je značajno napredovala. Uzrok tome je, naravno, hitna potreba industrije za pouzdanim i praktičnim rješenjima za ranije navedene probleme. Vodeni žigovi se mogu koristiti za identifikaciju vlasnika sadržaja, identifikaciju kupca sadržaja, za nadgledanje distribucije, ovlaštenje korištenja, za utvrđivanje jesu li podaci izmijenjeni na bilo koji način. No, njihova upotreba ne mora biti ograničena na takve, očigledne primjene. Vodeni žigovi mogu biti iskorišteni za mnoge druge namjene. U medicini mogu biti korišteni za ubacivanje podataka o pacijentu u same nalaze, što bi ubrzalo pretraživanje i spriječilo zamjene nalaza s tuđima. U kartografiji, za nevidljivo ubacivanje zemljopisnih podataka u zemljovide. Površine identifikacijskih kartica mogu biti označene s podacima o vlasniku. Slike u časopisima, web stranicama ili televizijski signali, mogu biti označeni s komercijalnim porukama vlasnika (adrese, informacije, ponude i slično). Pjesme na radiju mogu biti označene s podacima za kupovinu, tako da slušatelj pjesmu može kupiti cijeli album pritiskom tipke. Teško je i naslutiti sve mogućnosti primjene tehnologije vodenih žigova. Namjera mi je u ovom diplomskom radu prikazati okvir nastanka i korijene vodenih žigova, definirati što su vodeni žigovi, njihova svojstva, kako se koriste i što se pomoću njih može postići. Zatim, želim prikazati presjek trenutnih rezultata u razvoju tehnike vodenih žigova za slike, video i zvuk, njihove mogućnosti, ograničenja, moguća poboljšanja te očekivani smjer razvoja. Namjeravam demonstrirati jednu konkretnu implementaciju sustava vodenog žiga, te ispitati kako se ponaša suočen s napadima koje bi mogao susresti u stvarnosti. 2. Osnovni pojmovi i postupci
Vodeni žig možemo definirati kao tehniku ubacivanja dodatnog signala direktno u postojeći signal, na način da ubačeni signal ne bude primjetan, sa ciljem označavanja signala. Označavanje vodenim žigovima je vrlo slično području kriptografije koje nazivamo steganografija, no od njega se razlikuje po ciljevima označavanja. Cilj steganografije (po grčkom – skriveno pisanje) je neprimjetan, tj. skriven, način prenošenja informacija, dok je svrha vodenih žigova da pruže dodatne informacije o samom sadržaju u kojem su ugniježđeni. Kod steganografije signal domaćin je samo komunikacijski kanal i kao takav je nebitan za postizanje cilja, kod vodenih žigova sam žig je u službi signala u koji je ubačen, bez obzira na konkretnu ulogu kojoj je namijenjen: za dokazivanje vlasništva, verifikaciju integriteta, informaciju o sadržaju, ili nešto drugo. U svakom slučaju, žig je vezan za sadržaj u koji je ubačen. Pri zaštiti multimedijalnih dokumenata, vodeni žigovi mogu biti uporabljeni u dvije svrhe: zaštita vlasništva i verifikacija integriteta sadržaja. Već prema namjeni, variraju i željena svojstva vodenih žigova.
Slika 1: Klasifikacija vodenih žigova
Vodeni žigovi namijenjeni za zaštitu vlasništva su predmet većine istraživanja i razvojnih napora na polju vodenih žigova, upravo zbog razloga koji su navedeni u uvodu. Dijele se u dvije bitne skupine: žigovi namijenjeni označavanju kopije (engl. fingerprinting) i žigovi namijenjeni označavanju sadržaja. Kod fingerprintinga, namjera nam je označiti svaku pojedinačnu kopiju sadržaja sa jedinstvenim serijskim brojem pomoću čega možemo označiti kome je sadržaj prodan, te kod pronađenih piratskih kopija otkriti odakle je sadržaj ‘procurio’. Kod označavanja sa ciljem identifikacije sadržaja sve kopije određenog sadržaja (ili više različitih sadržaja) označavaju se istim žigom, sa ciljem identifikacije sadržaja ili vlasnika sadržaja. Takav pristup omogućuje pretraživanje slobodno dostupnih sadržaja (npr. na Internetu) u potrazi za ilegalno kopiranim sadržajima. Naravno, moguće su i kombinacije oba tipa, tj. označavanje sa žigovima koji identificiraju i kopiju i sadržaj (ili sa dva posebna žiga) za postizanje kombinirane funkcionalnosti. Vodeni žigovi za zaštitu integriteta su namijenjeni dokazivanju originalnosti, očuvanosti sadržaja. Njih obično nazivamo 'lomljivi žigovi'. Oni se ubacuju da bi bili sigurni da dotični podaci nisu izmijenjeni u bilo kojem bitnom pogledu, tj. rade se tako da se pri svakom pokušaju manipulacije sa sadržajem 'slome', tj. oštete i time indiciraju da je sadržaj izmijenjen. No, pri tome je poželjno da sustav pruži i dodatne informacije, po mogućnosti otkrivajući i gdje je sadržaj promijenjen. Posebna podvrsta lomljivih žigova bi bilo polu-lomljivi žigovi. To su žigovi koji su oblikovani tako da detektiraju preveliku izmjenu sadržaja, dok preživljavaju manje izmjene kao što su sažimanje sa gubitkom ili neke manipulacije sa sadržajem koje su dozvoljene pri legitimnoj upotrebi sadržaja: poboljšanje kontrasta slike, naglašavanje baseva u glazbi, titlovanje filma. Prevelika izmjena može biti definirana kao ona izmjena u kojoj se gube značajne i za primjenu bitne karakteristike sadržaja (neprepoznatljivost materijala, izmjena dijela sadržaja sa novim sadržajem i slično). Lomljivi vodeni žigovi mogu biti iskorišteni za dokazivanje da je digitalni dokument originalan, recimo da se omogući korištenje digitalnih zapisa u sudskim procesima. Takvi vodeni žigovi bi bili osobito korisni kada bi bili inkorporirani u same uređaje koji proizvode digitalni sadržaj (takozvani ‘pouzdani’ digitalni fotoaparati ili kamere), tako da neoznačeni sadržaj nije ni moguće nabaviti. Lomljivi žigovi su primjenjivi u slučajevima kada je na temelju digitalnog sadržaja potrebno donijeti neku odluku.
2.1. Postupci ubacivanja, detekcije i generiranja vodenih žigova
Razlikujemo dva osnovna postupka pri upotrebi vodenih žigova: ubacivanje i detekcija. Pod pojmom ubacivanje žiga podrazumijevamo postupak označavanja originalnog sadržaja na način da u sadržaj pomoću definiranih operacija ubacimo vrijednosti žiga. Detekcija žiga podrazumijeva postupak kojim se iz označenog sadržaja izvlače vrijednosti žiga koje se zatim uspoređuju sa prethodno ubačenim žigom. Detekcija može biti diferencirana na detekciju postojanja žiga (jedan bit informacije) i izvlačenje sadržaja žiga (više bitova informacije). U slijedećim razmatranjima zbog jednostavnosti govorit ćemo o označavanju slika, mada se postupak na isti način primjenjuje i na bilo koji drugi sadržaj. Općenita shema postupaka je dana u Slici 2.
Slika 2: Postupci ubacivanja i detekcije žiga
Originalnu sliku smo označili sa I, žig sa S={s1,s2,...}, a označenu sliku sa Î. E je funkcija enkodera i uzima originalnu sliku I, žig S te generira novu sliku koju nazivamo označena slika Î:
Dijagram procesa enkodiranja je dan u Slici 2a. Funkcija dekodera D uzima sliku J (J može biti označena slika, neoznačena slika ili oštećena slika) za koju želimo utvrditi sadrži li žig, te izvlači žig S’. U tom procesu, dodatna slika može biti uključena. To je obično originalna (i neoznačena) verzija slike J. Ona se može koristiti za pružanje dodatne otpornosti na namjerne i nenamjerne poremećaje piksela.
Izvučeni žig S’ se zatim uspoređuje sa vlasnikovim žigom pomoću funkcije komparatora CD, i daje binarnu izlaznu odluku. Izlaz je 1 ako je odlučeno da je žig isti, ili 0 u suprotnom.
Pri tome, c je korelacija između dva žiga. Dijagram procesa dekodiranja je pokazan na Slici 2b, a komparator na Slici 2c. Bez gubitka općenitosti, sustavi vodenog žiga se mogu promatrati kao trojka (E,D,CD). Gore navedeni okvir opisuje što je sustav žigova i kako može biti potencijalno iskorišten za dokazivanje vlasništva. Ovo je generalizirana formulacija i služi isključivo kao generalni opis postupka. Konkretni postupci za ubacivanje i detekciju žigova će biti dani kasnije, no većina postupaka se svodi na slijedeće: vrijednosti žiga S={s1,s2,...} se ubacuju u neki skup izdvojenih vrijednosti D(I)={f1(I),f2(I),...}. Obično skup izdvojenih vrijednosti se odabire tako da mala promjena u pojedinačnim vrijednostima ne degradira sliku perceptualno. Pored toga, poželjno je da svaki element u tom skupu vrijednosti ne bude značajno izmijenjen kada slika nije perceptualno narušena. Primjer takvog skupa vrijednosti bi bili koeficijenti transformirane domene (kosinus transformacija, fourierova transformacije, valići ili slično) koji sadrže značajan dio energije. Postupak generiranja žiga (to jest, vrijednosti si koje čine žig) se obično svodi na generiranje niza pseudo-slučajnih realnih brojeva sa određenom distribucijom a operacija ubacivanja može biti jednostavno dodavanje vrijednosti si tim koeficijentima. No, vrijednosti žiga mogu biti i binarne (ili, češće, dualne: -1, 1), a i operacija ubacivanja može biti znatno složenija od običnog zbrajanja. Ponekad se niz pseudo-slučajnih brojeva koristi za definiranje lokacija na koje se ubacuju bitovi žiga, što predstavlja dodatni način zaštite žiga. 3. Svojstva vodenih žigova
U ovom poglavlju prikazat ćemo poželjna svojstva vodenih žigova te ukratko raspraviti o implikacijama i dodatnim okolnostima koje treba uzeti u obzir pri određivanju njihovih svojstava. Pri procjeni važnosti i kvalitete svojstava ključni parametar je namjena sustava vodenih žigova. Neka svojstva koja su jako poželjna za sustave žigova za zaštitu vlasništva su jako nepoželjna za sustave namijenjene zaštiti integriteta, i obratno.
3.1. Poželjna svojstva otpornih žigova
Da bi tehnika označavanja otpornim vodenim žigom bila efikasna, postoje mnogi parametri koji se moraju razmotriti pri procjenjivanju: neprimjetnost, otpornost na distorzije, otpornost na uklanjanje, veličina žiga, mogućnosti izmjene i višestrukog označavanja, kompleksnost žiga, sigurna detekcija, statistička nevidljivost. Svako svojstvo je bitno za postizanje određenog dijela funkcionalnosti žigova: · Neprimjetnost Žig ne smije biti primjetan korisniku, niti žig smije degradirati kvalitetu sadržaja. Potpuna neuočljivost je definitivno ideal u ovo pogledu. No, ako je signal istinski neuočljiv, onda će perceptualno bazirani algoritmi za sažimanje sa gubitkom u principu ukloniti takav signal. Trenutno tehnološki najnapredniji algoritmi vjerojatno još uvijek ostavljaju prostora za ubacivanje neprimjetnog signala, što istraživanja i pokazuju. No, to vjerojatno neće biti tako za iduću generaciju algoritama. Stoga, da bi opstali i nakon primjene slijedeće generacije algoritama za sažimanje, vjerojatno će biti neophodno da žig bude vidljiv pažljivom i obučenom promatraču. Naravno, jedva primjetna razlika se obično primjećuje kada se uspoređuju dva signala, na primjer, komprimirani i nekomprimirani signal, ili označeni i neoznačeni. No, tipični promatrač neće uspoređivati dva signala, pa iako pjesma ili slika može biti različita od originala, promatrač to ne može znati i vjerojatno će biti zadovoljan pod uvjetom da razlika nije neugodna. Raniji radovi na vodenim žigovima koncentrirali su se gotovo isključivo na pronalaženje žigova koji će biti neprimjetni i stoga su često signal ubacivali u perceptualno nebitna područja sadržaja. No, druga željena svojstva žigova su u suprotnosti sa takvim izborom. · Otpornost na distorzije Glazba, slike i video signali mogu biti podvrgnuti raznim vrstama distorzije. Sažimanje sa gubitkom je već spomenuto, no i mnoge druge transformacije signala su uobičajene. Na primjer, slici može biti pojačan kontrast, ili boje mogu biti donekle izmijenjene, ili audio signalu mogu biti pojačane bas frekvencije. Općenito, žig mora biti otporan na transformacije koje uključuju uobičajene distorzije signala, kao i digitalno/analogne i analogno/digitalne konverzije i sažimanje sa gubitkom. Štoviše, za slike i video, važno je da žig preživi i geometrijske distorzije kao što su translacija, rotacija, skaliranje i rezanje. Navedeno je da se otpornost može postići ako je žig postavljen u perceptualno bitna područja slike. To je stoga jer je kvaliteta slike (zvuka ili videa) očuvana samo ako su perceptualno bitna područja slike zadržana. Analogno tome, perceptualno nebitna područja slike mogu biti uklonjena bez utjecaja na kvalitetu slike. Kao posljedica, žigovi koji su postavljeni u perceptualno nebitna područja neće biti otporni i mogu se jednostavno ukloniti. Bitno je uočiti da je otpornost zapravo sastavljena od dva odvojena pitanja: (1) jeli ili nije žig prisutan u podacima nakon što signal pretrpi promjene, te (2) može li ga detektor žigova detektirati. Na primjer, žigovi koje mnogi algoritmi ubacuju ostaju u podacima nakon geometrijskih promjena kao što su skaliranje, ali odgovarajući algoritmi detekcije mogu detektirati žig samo ako se promjena prethodno ukloni. U tom slučaju, ako promjena ne može biti određena ili invertirana, detektor ne može detektirati žig. · Otpornost na napade Kao što žig mora biti otporan na uobičajene transformacije koje dotični signal prolazi, žig može biti povrgnut procesiranju signala koje je isključivo namijenjeno uklanjanju žiga. Osim toga, kada postoji više kopija sadržaja označenih različitim žigovima, kao što bi na primjer bio slučaj sa označavanjem koje služi za identifikaciju kupca (fingerprinting), mogući su dodatni napadi koji se baziraju na kombiniranju sadržaja nekoliko kupaca. Izuzetno je važno da žig bude otporan na zlonamjerne manipulacije. To se može postići na nekoliko načina: 1. Privatni žigovi: Privatni žig, tj. sustav gdje je ili potrebno znanje neoznačenog sadržaja za dekodiranje ili je pseudo-slučajni ključ koji generira žig poznat samo pošiljaocu i primaocu je sam po sebi otporniji na napade od javnih žigova gdje je bilo kome omogućeno dekodiranje žiga. Za slučaj kada je samo jedna označena kopija sadržaja dostupna, jedini izgledni napad je dodavanje šuma u sliku sa nadom da će uništiti žig. No, može se pokazati da je red veličine dodanog šuma potrebna za sigurno uništenje žiga toliko velika da je kvaliteta same slike značajno narušena. U slučaju više kopija istog sadržaja označenog različitim žigovima raspoloživi su drugi napadi, od kojih bi najjednostavniji bio računanje srednje vrijednosti svih kopija. U slučaju da je su raspoložive sve informacije potrebne za dekodiranje žiga, najjednostavniji napad je jednostavno invertiranje postupka označavanja. 2. Asimetrični koder/dekoder: Ako uklanjanje javnog žiga zahtjeva invertiranje procesa kodiranja, onda je jako poželjno da proces kodiranja bude što je moguće više kompleksan, osobito ako se žig unosi samo jednom. No, ako dekoder mora funkcionirati u stvarnom vremenu, onda je neophodno da proces dekodiranja bude značajno jednostavniji od kodiranja. 3. Neinvertibilni žigovi: Ako je proces unošenja žiga neinvertibilan, to jest, ako je sam žig generiran pomoću sadržaja koji se označava, onda reverzni proces brisanja žiga nije moguć bez posjedovanja originalnog, neoznačenog sadržaja. Time se sprječava da potencijalni napadač u našem označenom sadržaju potraži neki set vrijednosti i onda njih proglasi za svoj žig, stvarajući time konfuziju oko toga tko zapravo ima originalni, neoznačeni sadržaj i tko je prvi ubacio žig u sadržaj. · Veličina žiga Veličina žiga označava količinu informacija koje se mogu ubaciti u zadani signal. Ovaj parametar je osobito važan za javne žigove. Veličina žiga i njegova otpornost na manipulacije je obično obrnuto proporcionalna. Ako želimo u zadani signal ubaciti veću količinu podataka, pojedinačni bitovi će biti manje zaštićeni, jer će imati relativno manje originalnih bitova koji bi ih mogli maskirati. Stoga je obično potrebno odrediti kompromis između otpornosti i veličine žiga. · Modificiranje i višestruki žigovi U nekim okolnostima, poželjno je izmijeniti žig nakon unošenja. Na primjer, u slučaju digitalnih video diskova, diskovi mogu biti označeni tako da omogućuju jednu kopiju sadržaja. Nakon što je kopija napravljena, potrebno je izmijeniti žig na originalu tako da se onemoguće daljnje kopije. Promjena žiga se može postići tako da se prvobitni žig ukloni i ubaci novi, ili tako da se ubaci novi žig koji bi zabranio kopiranje. Prvi slučaj implicira da je žig moguće ukloniti, pa stoga takav sustav ne bi bio otporan na napade. Omogućavanje postojanja višestrukih žigova je poželjnije jer omogućuje praćenje sadržaja od mjesta proizvodnje preko distribucije do eventualne prodaje, jer se u svakoj točci distributivnog lanca može ubaciti novi jedinstveni žig u sadržaj. Dakle, poželjno je da su različiti žigovi međusobno ortogonalni. · Skalabilnost U komercijalnim aplikacijama, računska cijena enkodera i dekodera je jako bitna. U nekim primjenama, ubacivanje se obavlja samo jednom i može se provesti off-line. Kao posljedica, cijena kodiranja može biti manje važna od cijene dekodiranja, koje se možda treba obavljati u stvarnom vremenu. Računalni zahtjevi ograničavaju kompleksnost žiga, što može značajno smanjiti otpornost žiga na napade. No, kako je već poznato da ono što danas može biti računalno neprihvatljivo, već u bližoj budućnosti može biti izvedivo na prosječnim računalima, pri oblikovanju sustava treba uzeti u obzir i mogućnosti skaliranja, tj. prilagođavanja sustava jačim računalima. Tako na primjer prva generacija dekodera može biti računalno nezahtjevna, ali i ne toliko pouzdana, slijedeća generacija može dozvoliti dekoderima dodatnu kompleksnost koja bi se iskoristila recimo za rješavanje problema kao što su invertiranje geometrijskih promjena. · Sigurna detekcija Jako bitan parametar pri ocjenjivanju sustava označavanja je sigurnost detekcije prisutnosti žiga. Sigurnost detekcije se svodi na tri odvojena pitanja: (i) sa kolikom sigurnošću se može detektirati postojeći žig, (ii) sa kolikom sigurnošću se može spriječiti detekcija krivog žiga, (iii) sa kolikom sigurnošću se može spriječiti detekcija nepostojećeg žiga. Žigovi trebaju predstavljati dovoljan i pouzdan dokaz vlasništva nad određenim sadržajem. Pogrešne detekcije (bilo kojeg tipa) se trebaju pojavljivati jako rijetko, po mogućnosti nikad. Određeni vodeni žig je valjan dokaz vlasništva samo ako je njegova detekcija u digitalnom sadržaju popraćena sa zanemarivom mogućnošću pogreške. · Statistička nevidljivost Žig ne smije biti moguće detektirati statističkim metodama. Na primjer, posjedovanje većeg broja digitalnih proizvoda, označenih sa istim ključem, ne smije otkriti žig uz primjenu analize statističkim metodama. To se postiže tako da se koriste žigovi koji su ovisni o sadržaju, te maskiranje žiga pomoću pseudo-slučajnih sekvenci da bi se postiglo što veća sličnost žiga slučajnom šumu. Što je žig sličniji slučajnom šumu, to ga je teže otkriti, a samim time i ukloniti. · Kompleksnost Poželjno je da žig bude takav da omogućuje veliki broj valjanih, mogućih žigova. Što je broj mogućih žigova veći, veće su i mogućnosti primjene sustava. Također je poželjno da su žigovi što je moguće više međusobno različiti, jer to poboljšava vjerojatnost točne detekcije žiga u označenom materijalu.
3.2. Svojstva lomljivih vodenih žigova
Svojstva lomljivih vodenih žigova se donekle preklapaju sa poželjnim svojstvima otpornih žigova, no kako su oni namijenjenih različitim primjenama i njihova svojstva se razlikuju, kao i sami kriteriji po kojima se neko svojstvo procjenjuje. Relativna važnost tih svojstava je opet uvjetovana njihovom namjenom, a konkretne primjene mogu imati i druge, posebne zahtjeve.
· Detekcija izmjena Sustav lomljivog žiga bi trebao detektirati sa viskom vjerojatnošću bilo koje izmjene u označenom sadržaju. Ovo je fundamentalno svojstvo lomljivog žiga i neophodno je za pouzdano testiranje autentičnosti sadržaja. U nekim primjenama poželjno je i pružiti indikaciju količine izmjena koje su se dogodile. Kod polu-lomljivih žigova izvjesna količina ili vrsta izmjena (sažimanje, pooštrenje slike, naglašavanje dijela zvučnog spektra) se tolerira i ne generira uzbunu. · Perceptualna nevidljivost Ubačeni žig ne smije biti vidljiv u uobičajenim okolnostima, i ne smije ometati ili umanjivati funkcionalnost zaštićenog sadržaja. U većini slučajeva to se odnosi na estetsku kvalitetu sadržaja, no ako se sadržaj koristi i za namjene koje koriste neke druge karakteristike sadržaja, tada i one moraju biti očuvane · Detekcija ne bi smjela koristiti neoznačeni sadržaj Originalni sadržaj bi mogao biti nedostupan (recimo pri označavanju prije samog snimanja sadržaja), ili bi vlasnik imao razloge zbog kojih ne bi želio dati neoznačeni sadržaj trećoj osobi. · Poželjno je da detektor locira izmjene u označenom sadržaju To uključuje mogućnost lociranja prostornih područja u izmijenjenom sadržaju koja su izmijenjena. Dodatna mogućnosti bi bila detekcija vrste izmjene koju je sadržaj pretrpio. · Žig bi trebao preživjeti rezanje U nekim primjenama, mogućnost detektiranja žiga nakon uklanjanja dijela sadržaja može biti poželjan. Na primjer, korisnik može biti zainteresiran samo za dio (lica, zgrade) veće označene slike. No, u drugim primjenama rezanje dijela sadržaja može biti nepoželjno modificiranje sadržaja. · Različiti ključevi bi trebali biti ‘ortogonalni’ Žig ubačen u sadržaj smije biti detektiran samo pomoću pripadajućeg ključa. Svi drugi ključevi korišteni pri detekciji ne smiju dati pozitivnu identifikaciju. Prema tome, shema za generiranje žigova mora za različite ključeve dati međusobno neovisne (ortogonalne) žigove. · Ključ označavanja mora biti teško izračunati iz ključa detekcije Ovo svojstvo je osobito važno za sustave koji imaju različite ključeve označavanja i detekcije. Ako treće osobe mogu iz ključa detekcije deducirati ključ označavanja onda oni mogu ubaciti vlasnikov ključ u materijale koje vlasnik nikad nije namjeravao označiti (na primjer, u izmijenjene kopije originalnog sadržaja). Za ovo svojstvo se obično uzimaju razrađene tehnike iz područja kriptografije (asimetrični ključevi). · Ubacivanje oznake od strane neovlaštenih osoba treba biti teško Riječ je o karakterističnoj vrsti napada na lomljivi žig gdje se žig izvlači iz označenog sadržaja i ubacuje u drugi sadržaj · Žig bi trebalo biti moguće ubaciti u sažetoj domenu To ne znači isto kao i zahtjev da žig može preživjeti sažimanje, što može biti i vrsta oštećenja. U nekim primjenama mogućnost ubacivanja lomljivog žiga u sažetoj domenu može biti velika prednost. Na primjer označavanje sadržaja koji je već sažet i u takvom obliku se distribuira, a za koji želimo osigurati autentičnost. 4. Protokoli za dokazivanje vlasništva pomoću vodenog žiga
U većini istraživačkih izvještaja koji opisuju sustave vodenih žigova autori se koncentriraju na način ubacivanja i detekcije vodenih žigova, no ne i na svrhu. Istraživanja se uglavnom koncentriraju na postizanje otpornosti sustava na manipulacije i transformacije, i pri tome je demonstrirana iznenađujuća uspješnost, no u isto vrijeme predloženi sustavi se ne mogu praktično primijeniti jer im nedostaje infrastruktura koja bi osigurala svrhovitost primjene sustava vodenog žiga u realnim okolnostima. Zbog toga se ukazuje potreba za razvijanjem protokola koji bi korištenjem sustava vodenih žigova odgovorili na pitanje: Što sustavi vodenih žigova mogu učiniti za zaštitu vlasništva pored postojećih copyright zakona ili trenutnih načina razrješenja problema zaštite vlasništva nad digitalnim sadržajima? Za odgovor na ovo pitanje možemo se okrenuti kriptografiji koja je, kao puno starija znanost od vodenih žigova razradila brojne modele koji mogu pomoći u postizanju željene funkcionalnosti vodenih žigova. Jedan od načina, prema Herrigel et al [2] je uspostava infrastrukture koja bi servisirala zainteresirane strane u otvorenom okružju kao što je Internet. Drugi način, prema Carver [3] je inkorporiranje zero-knowledge protokola u sustav vodenog žiga. Slijede kratki prikazi obiju protokola na visokom nivou.
4.1. Zaštita vlasništva pomoću infrastrukture
Sustav se bazira na otvorenom okružju kao što je Internet koje se sastoji od velikog broja međusobno povezanih računala. Korisnici mogu biti locirani bilo gdje i mogu prodavati i kupovati digitalne slike. Definiramo četiri entiteta: Vlasnik slike (V), Kupac slike (K), Copyright centar (CC) i Infrastruktura javnih ključeva (IJK). Na Slici 3 su prikazani njihovi odnosi. Vlasnik šalje informacije o vlasništvu i autentične informacije o slici Copyright centru. Nakon što primi certifikat o zaštiti, vlasnik može prodavati digitalne slike kupcima. IJK podržava distribuciju autentičnih javnih ključeva između svih uključenih strana. Ključevi su potrebni za međusobnu identifikaciju, povjerljivost i osiguranje komunikacija.
Slika 3: Odnosti entiteta u protokolu
Ovisno o potrebnom nivou za dokazivanje vlasništva nad materijalom navedena infrastruktura omogućuje tri nivoa zaštite: individualnu zaštitu vlasništva, zaštitu vlasništva sa registriranim kriptografskim ključevima i zaštitu koristeći CC na temelju registriranih kriptografskih ključeva. U svakom slučaju, sadržaj žiga su podaci o vlasniku materijala. Različiti ključevi se koriste za ubacivanje žiga u materijal. Ključ obično predstavlja početnu vrijednost (seed) generatora pseudo-slučajnih brojeva. Sadržaj žiga se dakle ubacuje koristeći pseudo-slučajne brojeve koji se generiraju pomoću ključa. Također, da bi se žig detektirao, potrebno je poznavati ključ sa kojim je ubačen. Prema tome, vodeni žig predstavlja sustav simetričnog kriptografskog ključa (za kodiranje i dekodiranje poruke, žiga, potrebno je znati korišteni ključ). Zbog zahtjeva za svojstvima žiga navedenih u poglavlju 3. ubačeni žigovi su međusobno statistički neovisni, što znači da u jednu sliku možemo ubaciti nekoliko žigova. To mogu biti privatni, detekcijski i javni žig. Detekcijski žig se ubacuje sa stalnim ključem (istom početnom vrijednosti generatora pseudo-slučajnih brojeva), što omogućuje vlasniku da efikasno pretražuje Internet u potrazi za svojim slikama. Javni žig indicira da je slika zaštićeni materijal i pruža informacije o vlasniku. U sliku je ubačen i privatni žig čija tajnost je garantirana privatnim ključem vlasnika. Kako je javni ključ V registriran, V može dokazati da je on jedina osoba koja posjeduje odgovarajući privatni ključ i da je prema tome on generirao ubačeni privatni žig. Sustav također pruža sigurnu registraciju označenih sadržaja u CC. U CC se registriraju podaci derivirani iz sadržaja slike. CC generira certifikat digitalne zaštite i šalje ga V. Ako neovlaštena treća osoba ubaci žig u istu sliku, konfliktne tvrdnje o vlasništvu nad slikom se mogu razriješiti, jer samo jedna strana ima certifikat zaštićene slike koja sadrži samo njegov žig. Druga strana može imati certifikat samo za sliku koja sadrži dva žiga i na taj način će biti identificirana kao prevarant. Zaštita pomoću kriptografskih ključeva i Centra se bazira na IJK. IJK na zahtjev izdaje certifikat javnog ključa koji sadrži javni ključ sudionika, njegovo jedinstveno ime i vremensku oznaku. Svaki certifikat se potpisuje sa privatnim ključem IJKa i povjerenje se bazira na valjanosti autentične kopije javnog ključa IJKa (pretpostavlja se da je javni ključ IJKa dostupan, pouzdano distribuiran i da ga svaka strana može provjeriti). U opisu postupaka zaštite koriste se slijedeći kriptografski mehanizmi: · Probabilistička shema digitalnog potpisa (G,P,V), gdje je G algoritam generiranja, P algoritam potpisa i V algoritam verifikacije. Algoritam generiranja G daje asimetrični par ključeva (xz,yz), gdje je xz tajni, a yz javni ključ. Algoritam P za zadanu poruku m i ključ xz daje potpis: p=P(xz,m). Verifikacija tog potpisa koristi drugi ključ yz, poruku m i potpis p: V(yz,m,p)Î{0,1}. · Protokol dogovaranja pomoću asimetričnih ključeva pomoću kojeg se entitet A i entitet B koristeći svoje parove asimetričnih ključeva (xa,ya) i (xbb,yb) da bi se dogovorili za simetrični ključ Kab. · Algoritam ubacivanja nevidljivog žiga koji koristi ključ X (kao početnu vrijednost generatora slučajnih brojeva), sadržaj žiga Y, neoznačenu sliku NS te daje označenu sliku OS. · Detekcijski algoritam nevidljivog žiga koji koristi ključ X, označenu sliku OS i rezultirajući sadržaj žiga Y. · Dvije hash funkcije h1,h2 koje daju međusobno disjunktne skupove vrijednosti.
4.1.1. Osobna zaštita vlasništva
Primjenom osobne zaštite vlasništva u proces je uključen samo vlasnik materijala (V) sa pripadajućim asimetričnim parom ključeva (xv,yv). On izvodi slijedeće korake: · H generira jedinstveni identifikator slike IDS združujući hash vrijednost svog identificirajućeg imena i serijski broj slike · H generira označenu sliku OS tako da koristeći algoritam ubacivanja nevidljivog žiga, u neoznačenu sliku NS ubacuje IDS slike, a h1 hash vrijednost potpisa p koristi kao seed generatora slučajnih brojeva. Ubačeni žig postaje privatni žig. · H sprema potpis p i neoznačenu sliku NS u zaštićenu bazu. · H ubacuje detekcijski žig. To čini tako da u označenu sliku OS ubaci serijski broj slike koristeći h2 hash vrijednost svog tajnog ključa xv kao seed generatora slučajnih brojeva. · Ubacivanje javnog žiga. H generira javnu identifikacijsku poruku kao na primjer “Copyright V, sva prava zadržana, 2001.”. Poruku ubaci kao seriju žigova (ubačenih sekvencijalno u označenu sliku OS), dijeleći poruku na neophodan broj žigova i koristeći pri označavanju h2 hash svog javnog ključa yv kao seed generatora slučajnih brojeva, uvećan za redni broj dijela poruke (inače bi svi dijelovi poruke bili zbrojeni u jedan žig). · H dobiva označenu sliku OS i može je koristiti u trgovini digitalnim slikama.
Treba uočiti neka kriptografska svojstva ubačenih žigova. Ako privatni ključ u jednoj slici bude kompromitiran, to znanje se neće moći iskoristiti za otkrivanje privatnog ključa u drugim slikama. Privatni ključ je kombiniran sa individualnim serijskim brojem slike, tako da iz njihove združene vrijednosti hash funkcija ne daje nikakve informacije o vrijednosti samog privatnog ključa. Kompromitirani IDs slike ne omogućuje označavanje bilo koje druge slike, jer ona ima svoj individualni serijski broj, i pripadajući IDs. Privatni žig pruža sigurnu identifikaciju jer samo vlasnik slike poznate privatni ključ pomoću kojeg je generiran. Privatni žig može biti korišten na sudu za dokazivanje vlasništva. Sadržaj ubačenih žigova je prilično mali, jer se prihvatljiv IDs može napraviti koristeći samo 12 byteova. Dakle, vlasnik (V) ima označenu sliku OS i kontaktirao ga je kupac (K) sa željom da je kupi. Pretpostavlja se da su obojica razmijenili javne ključeve yv i yk. Prodaja slike koristeći osobnu zaštitu se obavlja u slijedećim koracima: · Kupac K i vlasnik V se dogovaraju o zajedničkom simetričnom ključu Kkv pomoću protokola o dogovaranju. Daljnja komunikacija se odvija enkriptirano koristeći simetrični ključ Kkv. · K generira zahtjev za trgovinu koji specificira kupca, vlasnika, IDS slike, kao i vremensku oznaku zahtjeva. Zahtjevu dodaje potpis generiran privatnim ključem i šalje ga vlasniku V. · V provjerava potpis koristeći javni ključ kupca. · Ako je provjera uspješna, V generira odgovor na zahtjev tako da šalje označenu sliku OS i doda joj potpis generiran koristeći svoj privatni ključ. · K provjerava potpis koristeći javni ključ vlasnika. Ako je provjera uspješna, kupac provjerava identifikaciju slike da se uvjeri da je V stvarno vlasnik slike, te da je dobio traženu sliku.
U slučaju potrebe za pravnim dokazivanjem vlasništva, iz slike se izvlači jedinstveni identifikacijski broj slike IDS u kojem je i javni ključ, te vlasnik demonstrira da ima odgovarajući privatni ključ detektiranjem privatnog žiga. Kako je vjerojatnost da dva tajna ključa imaju iste javne ključeve mala, vlasništvo je dokazano sa visokom vjerojatnošću. No, u slučaju zaštite registriranim ključevima, takav slučaj se može u potpunosti izbjeći.
4.1.2. Zaštita vlasništva pomoću registriranih ključeva
Zaštita pomoću registriranih ključeva se provodi pomoći tri sudionika: kupac (K), vlasnik (V) i inftrastruktura javnih ključeva (IJK). Kod IJK se registriraju javni ključevi. On je odgovoran da ne postoje duplicirani javni ključevi, te da svima osigura mogućnosti pristupa bazi važećih certifikata, iz kojih se mogu izvaditi jedinstvena imena te javni ključevi svih sudionika. Nakon što V i K od IJK dobiju važeće javne ključeve, mogu pristupiti istim koracima pri kupnji kao kad individualne zaštite. Kako su generirani asimetrični parovi ključeva jedinstveni, V se može jedinstveno identificirati za bilo koju sliku, osim ako u sliku nisu ubačeni dodatni žigovi od strane neovlaštenih osoba. Sustav baziran na Copyright centru pruža potrebne protumjere da spriječi tu prijetnju.
4.1.3. Zaštita vlasništva sa Copyright centrom
U sustavu zaštite pomoću Copyright centra sudjeluju četiri sudionika: kupac (K), vlasnik (V), infrastruktura javnih ključeva (IJK) i copyright centar (CC). Pretpostavlja se da su imaju IJK certifikate ostalih sudionika, pa time i njihove javne ključeve. Postupak se izvodi na slijedeći način: · Provode se koraci individualne zaštite sa V i CC kao sudionicima. Jedinstvena identifikacija slike se generira tako da se h1 hashu imena V i CC pridoda serijski broj slike. H generira malu sliku (thumbnail) označene slike OS i pohranjuje je zajedno sa označenom slikom. · Za generiranje odgovarajućeg certifikata o vlasništvu H i CC vrše slijedeću komunikaciju: · H šalje zahtjev za zaštitom koji se sastoji od h1 hash vrijednosti slike, umanjene slike i njezinog IDS. Zahtjevu se pridodaje identifikacija V, CC, vremenski zapis i potpis koji V generira privatnim ključem. · C provjerava zahtjev pomoću javnog ključa xv. Ako je provjera uspješna, CC generira certifikat vlasništva koji sadrži identifikaciju vlasnika V, IDS označene slike, h2 hash vrijednosti OS i male slike, poruku koja se ubacuje kao javni žig. Certifikat se pohranjuje u bazu CC, te šalje V zajedno sa potpisom generiranim tajnim ključem xcc. · V prima certifikat te provjerava ga koristeći javni ključ ycc. Ako je provjera uspješna V pohranjuje u svoju bazu. · V i B koristeći CC i IJK za razmjenu javnih ključeva i dokazivanje vlasništva nad slikom mogu pristupiti protokolu koji se opisan za trgovinu pri individualnoj zaštiti.
B može provjeriti certifikat o vlasništvu kod CC tako što zatraži certifikat pohranjen za odgovarajući IDS slike. Protokol koji bi se koristio je sličan gornjem za registraciju certifikata.
4.2. Zaštita vlasništva pomoću zero-knowledge protokola
Carver [3] primjećuje da je slaba točka većine predloženih sustava zaštite vodenim žigom potreba da se prije ili kasnije u životnom ciklusu žiga mora otkriti tajni ključ kojim je žig ubačen, te tako trećim osobama omogućiti zloupotrebu. U najboljem slučaju, privatni ključ se mora otkriti na sudu pri dokazivanju vlasništva. Carver to smatra neprihvatljivim sa sigurnosne strane, te predlaže korištenje tehnike iz kriptografije poznate kao zero-knowledge protokol. Zero-knowlegde dokazi su metoda da se dokaže poznavanje činjenice bez otkrivanja te činjenice drugim sudionicima, dakle pomoću njega bi bilo moguće provjeriti postojanje žiga ali bez otkrivanja potrebnih informacija za uklanjanje žiga.
4.2.1. Zero-knowledge protokoli
Definirajmo prvo opći problem dokazivanja poznavanja činjenice preko komunikacijskog kanala, ilustriran na Slici 4. Koristiti ćemo uobičajene 'osobe' koje se pojavljuju u ovakvim opisima: Alice, vlasnica informacije, Bob kao verifikator, Carl kao osoba koja pruža uslugu i Eve, osoba koja želi neovlašteno doći do podataka koje Alice čuva.
Slika 4: Odnos entiteta u protokolu
Dakle, Alice posjeduje neku identifikacijsku informaciju, kao što je broj, zaporka, PIN ili slično, čije poznavanje je neophodno da bi dobili neku uslugu (pristup bankovnom računu, rezervacija karte ili slično). Bob posjeduje bazu identifikacijskih informacija. Alice želi uvjeriti Boba da ona poznaje identifikacijske informacije, ili osigurati Bobovu pomoć u uvjeravanju Carla, trećeg sudionika. Carl može biti trgovac koji provjerava kreditnu karticu. Carl direktno sudjeluje u protokolu identifikacije, ali nije neophodno pod Bobovom kontrolom. Posljednji lik, Eve, je promatrač i po pretpostavci nadgleda sav promet koji se odvija među sudionicima. Čak i ako protokol sprječava dokazivanje identiteta bez poznavanja tajne informacije, moguće je najmanje pet različitih načina prevare: · Eve može priskrbiti sve potrebne informacije za predstavljanje kao Alice. · Hakeri mogu kompromitirati identifikacijske baze podataka, koji se nakon toga mogu predstavljati kao bilo koji od Bobovih klijenata. Za razliku od prisluškivača, hacker iskorištava činjenicu da se identifikacijski podaci nalaze na lokacijama koje nisu pod direktnom kontrolom vlasnika (Alice). · Carl tokom učestvovanja u protokolu može primiti dovoljno informacija da se uspješno predstavi kao Alice. · Bob može biti prevarant, ili imati zaposlenika koji je prevarant. · Alice može iskoristiti neku od prije navedenih mogućnosti tako da izvede transakciju i kasnije tvrdi da je transakciju izveo prevarant.
Rješenje gore navedenih problema bi bilo postojanje identifikacijskog protokola u kojem se nikakvi potencijalno kompromitirajući podaci ne šalju preko komunikacijskih kanala, pohranjuju u bazu ili otkrivaju bilo kome osim Alice. Na prvi pogled to može izgledati nemoguće, jer neka vrsta informacije se mora poslati Bobu na verifikaciju. No, moderna kriptografija je pokazala bitnu razliku između informacije i znanja: znanje je korisna informacija, ali informacija nije korisna osim ako se ne može dobiti u razumnom vremenskom roku. Najpoznatiji primjer je posjedovanje vrijednosti velikog broja koji je generiran množenjem velikih prim brojeva. Sve potrebne informacije o faktorima koji sačinjavaju broj su sadržane u samom broju, ali sa računalne perspektive te faktore je praktično nemoguće izračunati. Na sličan način zero-knowledge protokoli se oslanjaju na računsku odvojenost informacije od korisne informacije u sprječavanju bilo koga osim Alice da sazna njezine identifikacijske informacije. Ideju ćemo ilustrirati opisom konkretnog protokola, koji se oslanja na težinu izračunavanja diskretnog logaritma. Detaljnija diskusija se može pronaći u [4]. U ovom protokolu, javno su poznati veliki prim broj p i generirajući element a. Alice objavljuje broj sa tajnim diskretnim logaritmom modula p i bazom a. To jest, ona odabire slučajni broj x i izračunava M=ax(mod p), objavljuje M i sadržava x kao tajnu. Određivanje vrijednosti x iz poznate vrijednosti M je teško, i Alice treba dokazati poznavanje x da bi potvrdila svoj identitet. Koraci u protkolu su slijedeći: · Alice generira drugi slučajni broj y, te izračunava N=ay(mod p), te šalje N Bobu. · Bob sad poznaje M i N, te ovisno o ishodu bacanja novčića zahtjeva od Alice da ili: · Otkrije y, logaritam od N. · Otkrije y+x(mod p –1), logaritam od MN. · Alice otkriva traženi logaritam, koristeći svoje poznavanje logaritma od M. · Broj N se odbacuje. Za svaku slijedeću iteraciju konstruira se nova vrijednost N. Do sada, Alice nije otkrila nikakve informacije o x. Da je otkrila i y i y+x(mod p–1) odala bi vrijednost x. S druge strane, osoba koja se pokušava predstaviti kao Alice može u najboljem slučaju biti uspješna sa vjerojatnošću 0.5. Prevarant može konstruirati valjani N=ay i proći prvi test ali ne i drugi, ili može konstruirati lažni N=M-1ax(mod p) takav da poznaje logaritam od MN, ali ne može odrediti logaritam od N. Sa fer novčićem i potrebnim sigurnosnim mjerama, Alice i Bob mogu provesti ovaj protokol n puta, što bi dalo vjerojatnost 2-n da Alice vara. Jednom kada je proizvoljno mala zadana vjerojatnost postignuta, Bob se može složiti da je Alice zaista Alice. Uočavamo da dokaz nije apsolutan, nego sa određenom vjerojatnosti, no granica dokazivanja može biti proizvoljna. Algoritam koristi zasljepljivanje (blinding), tehniku kojom se problem transformira u drugi problem koji zadržava bitne karakteristike originalnog problema, dok u isto vrijeme skriva osjetljive informacije o njemu. U konkretnom slučaju, problem poznavanja logaritma od M se transformira u problem poznavanja logaritma od MN. Cilj je dokazati da osoba zna rješenje originalnog problema tako da pokaže poznavanje rješenja transformiranog problema, koji je nemoguće riješiti bez poznavanja rješenja originalnog problema. Druga karakteristika protokola je da je to izazov-odgovor (challenge-response) protokol. To je obično neophodno da bi se izvelo zasljepljivanje, jer osigurava da je osoba koja dokazuje poštena tako što zahtjeva da pruži dovoljno informacija koje svode vjerojatnost prevare ispod zadane granice. Od Alice se zahtjeva ili da riješi transformirani problem, ili da pokaže da je zasljepljivanje fer, to jest da je transformirani problem stvarno deriviran iz originalnog problema. Bitno je uočiti da ako Alice učini oboje, onda odaje sve potrebne informacije koje Bob treba za rješavanje originalnog problema.
4.2.2. Primjena protokola u sustavu vodenog žiga
Za primjenu zero-knowledge protokola u sustavu vodenog žiga moramo razmotriti svojstvo invertibilnosti žiga. Kao što će kasnije biti detaljnije pokazano, invertibilnost žiga može biti iskorištena za napad na sustav koji bi onemogućio dokazivanje vlasništva na način da se stvori konfuzija oko toga tko je prvi u sliku ubacio žig, pravi vlasnik ili napadač. Napad pomoću invertibilnosti se provodi na način da napadač u slici 'nalazi' žig koji onda proglasi za svoj. Nakon toga napadač proizvede lažni original tako da iz slike izvuče lažni žig (koji je u biti šum otprije prisutan u slici). Napadi se sprječavaju tako da se definira određena klasa valjanih žigova, ili tako da žig bude neinvertibilan, tj. generira se u ovisnosti o originalnoj slici. No, mi možemo svojstvo invertibilnosti žiga iskoristiti upravo za dokazivanje vlasništva. Ta činjenica je posljedica svojstva da određivanje valjanosti nekog žiga može biti teško bez poznavanja vrijednosti ključa koji kontrolira proces, što omogućuje žigu da se sakrije unutar skupa lažnih žigova. Prvo, moramo definirati valjane žigove. Koristeći gore opisani zero-knowledge protokol, definiramo žig kao cijeli broj u rasponu od 0 do određenog velikog prim broja, te valjani žig kao žig u obliku ax(mod p), za određeni a. Vrijednost žiga može biti uporabljena za parametriziranje metode ubacivanja, obično kao početna vrijednost (seed) generatora slučajnih brojeva. Bitno je primijetiti, da ako je a generator Z/pZ, onda su svi žigovi valjani. No, žig se može koristiti samo ako je poznat njegov diskretni logaritam, a s obzirom da je to računski težak problem, poznavanje logaritma žiga se može uzeti kao dokaz da je žig namjerno konstruiran na takav način. Definiramo početne postavke: · Alice konstruira valjani žig M=ax(mod p) pomoću tajnog x. · Alice ubacuje M u neoznačenu sliku NS i dobiva označenu sliku OS. · Alice zatim provodi napad invertibilnosti i u OS nalazi druge, lažne žigove F0, F1, F2, … Fn-1. Nijedan od ovih lažnih žigova nema poznati diskretni logaritam. · Alice objavljuje skup { F1, F2, … Fn-1, Fn=M} kao svoj javni žig, ne otkrivajući koji je žig pravi. Za n se odabire dovoljno velika vrijednost da bi brisanje n žigova previše degradiralo kvalitetu slike (ili da bi vjerojatnost uklanjanja M bila dovoljno mala). Nijedan lažni žig ne smije biti u takvoj relaciji sa OS da bi otkrio pravi žig. Nije neophodno za žigovi budu potpuno ortogonalni, ali broj neortogonalnih žigova mora biti dovoljno velik da spriječe oštećenje M. Alice sada može otkriti skup žigova, te vrijednost funkcije detekcije za svaki žig. Sa dobrim izborom n, Bob je efektivno spriječen da ukloni pravi žig. Alice sada mora dokazati da je najmanje jedan žig valjan. Protokol je slijedeći: · Bob i Alice odabiru žigove koje detektor uspješno nalazi u OS. · Alice skriva svaki žig sa različitom diskretnom potencijom Wi=Fiayi. · Alice permutira skup žigova {Wi} i šalje ga Bobu. · Bob sad zna skup {Wi}, te vrijednosti a i p. Ovisno o ishodu bacanja novčića on od Alice zahtjeva da ili: · Otkrije sve skrivajuće eksponente {yi}, čime dokazuje da je svaki skriveni žig Wi zapravo valjano skriveni član skupa {Fi}. · Otkrije Wk, skrivenu verziju pravog žiga koji je stoga oblika ax+yk(mod p-1), i otkrije njegov logaritam. · Alice otkriva traženu vrijednost. · Skrivajuće vrijednosti yi se odbacuju. Nove vrijednosti se generiraju za svaku slijedeću iteraciju protokola.
Alice ne može ispuniti drugi zahtjev bez poznavanja diskretnog logaritma bar jedne vrijednosti žiga. Skrivanje sprječava Boba da otkrije koji je od žigova pravi žig. Naravno, zapravo je samo jedan žig ubačen u sliku. Sigurnost ovog sustava leži u činjenici da je broj žigova za koje se tvrdi da su u slici toliko veliki da oni svi i nisu mogli biti ubačeni u sliku, i također ne mogu svi biti odstranjeni iz slike inverznim procesom. Ovaj sustav radi na principu da se podaci ubace u sliku, te kombiniraju sa podacima koji su već prisutni u slici. Objavljivanje žigova je sigurno dokle god se ne otkrije koji je žig ubačen u sliku. Drugi način za promatranje ovo sustava je da se uoči da je informacija potrebna za detekciju žiga – kompletan skup žigova – odvojen od informacije potrebne da bi se dokazalo da je skup žigova valjan – pravi žig M i logaritam x pravog žiga. Ta informacija bi omogućila napadaču da odstrani žig iz slike, a to je ujedno informacija čije se znanje demonstrira u zero-knowledge protokolu. Zapravo, odvojili smo detekciju od verifikacije, i time odvojili detekciju žiga od odstranjivanja žiga. Uspješnost sustava ovisi o izboru broja lažnih žigova n, tj. o mogućnosti pronalaženja n dovoljno različitih žigova koje detektor prepoznaje. Sigurnosno pitanje je mogućnost korištenja otkrivenih žigova kao upute za manipuliranje slike da bi se izbacio dovoljan broj žigova dok se ne izbaci pravi, ubačeni žig. Nije jasno koliko bi takav napad bio uspješan, no u svakom slučaju bilo bi potrebno izbaciti puno više žigova nego što je ubačeno. Još jedan problem je što se ne može koristiti isti žig za označavanje različitih slika. To svojstvo je prepreka za razvijanje softwarea koji bi neovisno pretraživao baze u potrazi za označenim slikama. 5. Neke tehnike poboljšanja svojstava otpornih žigova
S obzirom na relativnu mladost cjelokupne grane znanosti, svakodnevno se pojavljuju novi načini implementacije žigova i novi pristupi starim problemima. Poboljšanja koja su njima uvedena predstavljaju unaprjeđenja postojećih ideja, ali i potpuno nove tehnike koje su nastale kao rezultat promišljanja i ponovne procjene nekih pretpostavki na kojima su se temeljili postojeći sustavi. Neka rješenja predstavljaju poboljšanje svojstava žigova, neka nastaju kao odgovor na određenu vrstu napada na žigove, a neka nastaju kao pokušaj da se vodenim žigovima daju sasvim nova svojstva. U ovom poglavlju bit će prikazan tehnike koje predstavljaju trenutni state-of-the-art tehnologije vodenih žigova, ali i različite mogućnosti pristupa pojedinim pitanjima koja se postavljaju u primjeni vodenih žigova.
5.1. Skrivanje ključa
Po svojoj osnovnoj namjeni, sustav vodenog žiga može biti implementiran korištenjem javnih ili tajnih žigova. · Javni žigovi namijenjeni su identifikaciji vlasnika sadržaja bez potrebe za poznavanjem tajnog ključa ili samog žiga. Takvi žigovi obično nisu jako otporni na napade, no trenutno su predmet intenzivnog istraživanja. Njihova privlačnost je u tome što bi detektori za takav tip žigova mogli biti ugrađeni u web tražilice i crawlere koji bi odmah mogli procijeniti legalnost pregledavanog sadržaja, bez potrebe za čuvanjem potencijalno velike baze ključeva. · Tajni žigovi su trenutno najrasprostranjeniji tip vodenih žigova. Za detekciju prisutnosti tajnog žiga u nekom materijalu potrebno je poznavanje tajnog ključa koji je korišten za ubacivanje žiga. Takvi žigovi su jako otporni na manipulacije, jer je za njihovo uklanjanje potrebno znati točnu lokaciju žiga, ili promijeniti sve moguće lokacije žiga, što obično dovodi do degradacije materijala ispod granice prihvatljivosti. No, problem pri njihovoj upotrebi je što se pri postupku dokazivanja vlasništva tajni ključ ipak mora prezentirati. Problem se rješava tako da se primjene neki od sustava i protokola navedenih u poglavlju 4.
5.2. Korištenje originala
Neki sustavi vodenog žiga pri detekciji zahtijevaju prisutnost originalnog, neoznačenog materijala da bi izvršili detekciju prisutnosti žiga u označenom materijalu. Takvi sustavi su obično puno otporniji, jer usporedbom sa originalom lako mogu detektirati i otkloniti dodatni šum ili druge transformacije koje je sadržaj pretrpio. No, takvi sustavi su sa sigurnosne strane očigledno i puno osjetljiviji, te ne mogu biti iskorišteni za sustav koji bi koristio javne žigove. Sustavi koji zahtijevaju prisutnost originala mogu funkcionirati samo u sklopu većeg sustava koji bi uključivao povjerljive treće strane za arbitražu i prosudbu, te eventualno i pohranu zaštićenih materijala. Sustavi koji ne trebaju prisutnost originala u detektoru moraju biti kompleksniji jer da bi postigli istu razinu pouzdanosti detekcije moraju analitički utvrditi sve transformacije koje je signal prošao te provesti sinkronizaciju detektora i sadržaja pomoću invertiranja ili neutraliziranja njihovog utjecaja prije same detekcije žiga. Kako ćemo pokazati kasnije, postoje različiti načini postizanja tog cilja, a općenito se svode na korištenje tranformacija koje su invarijantne na manipulacije, ili raznih načina za postizanje sinkronizacije detektora i manipuliranog sadržaja. Velika većina modernih sustava ne zahtjeva korištenje originala pri detekciji žiga.
5.3. Odabir domene žiga
O izboru domene žiga uvelike ovise bitne karakteristike žiga kao što su otpornost, veličina, neprimjetnost i slično. Same vrijednosti koje predstavljaju vodeni žig mogu se ubacivati u razne domene, bilo direktne, bilo transformirane. Kada se upotrebljava direktno ubacivanje, onda su domena sami digitalizirani uzorci signala, točke slike (prostorna domena), vrijednosti amplitude zvuka (amplitudna domena) i slično. Korištenje direktne domene je najjednostavnije i računalno najmanje zahtjevno, no obično pruža i najmanju zaštitu i otpornost žiga. Kod korištenja transformiranih domena nastoji se iskoristiti svojstva funkcija transformacije za poboljšanje svojstava žiga. To može biti invarijantnost za razne manipulacije (translacije, rotacije), raspršivanje energije žiga na veću površinu signala domaćina ili neka slična povoljna svojstva. Ponekad se koriste i kombinacije nekoliko transformacija sa ciljem akumuliranja povoljnih svojstava. Neke od obično korištenih funkcija transformacija su: - diskretna kosinus transformacija (DCT) - diskretna fourierova transformacija (DFT) - Fourier-Melin transformacija - dekompozicija na valiće (wavelet) - preklapajuća ortogonalna transformacija (lapped orthogonal transform – LOT) Svojstva pojedinih transformacija i njihova implementacija biti će opširnije obrađena kasnije. Ubacivanje žiga u transformiranu domenu se provodi tako što se prvo originalni signal transformira korištenjem željene transformacije, zatim se žig ubacuje modificiranjem dobivenih koeficijenta transformirane domene vrijednostima žiga, te se izvrši inverzna transformacija za vraćanje podataka u originalni oblik. Analogni postupak se koristi pri detekciji postojanja žiga.
5.4. Područje ubacivanja žiga
Pri ubacivanju žiga u sadržaj bitno pitanje je u koje perceptualno područje ubaciti vrijednosti žiga: perceptualno bitno, perceptualno nebitno ili negdje između? Pionirski pokušaji kreiranja sustava vodenih žigova su kao centralni zahtjev imali perceptualnu nevidljivost vodenog žiga. To je kao logičnu posljedicu imalo ubacivanje žiga u perceptualno nebitne dijelove sadržaja, obično najmanje značajne bitove (least significant bits – LSB). Kasnije je uočena činjenica da ako žig ubacimo u perceptualno nebitne dijelove sadržaja žig neće biti otporan, jer napadač može sebi dozvoliti da perceptualno nebitne dijelove sadržaja mijenja po želji, i tako eliminira žig. Isto tako, mnoge transformacije koje sadržaj uobičajeno pretrpi mijenjaju perceptualno nebitne dijelove sadržaja, najočiglednija od kojih je sažimanje sa gubitkom. Dakle, zbog zahtjeva za otpornošću žiga, perceptualno nebitno područje nije dobro mjesto za ubacivanje žiga. No, ubacivanje žiga u perceptualno bitno područje ima za posljedicu degradaciju kvalitete sadržaja. Taj problem je riješen tako da se za ubacivanje žiga odabere područje koje daje odgovarajući balans između otpornosti te perceptualne neprimjetnosti žiga. Kasnije je uočeno da je ubacivanje u perceptualno bitno područje omogućeno korištenjem tehnike raspršenog spektra.
5.5. Korištenje raspršenog spektra žiga
Žig se može direktno ubacivati, tako da se jedna vrijednost vektora koji čini žig ubacuje u jednu vrijednost označenog sadržaja, ili se može koristiti tehnika raspršenog spektra, gdje se energija jedne vrijednosti žiga raspršuje u nekoliko energetskih pretinaca označenog signala. To je tehnika koja je originalno razvijena za telekomunikacijske sustave. Pri tome, signal nosilac se promatra kao komunikacijski kanal, a žig se promatra kao signal koji želimo prenijeti kroz taj kanal. Pri tome uskopojasni signal (zapravo, žig) prenosimo kroz širokopojasni nosilac (označeni sadržaj) tako da energija signala prisutna u bilo kojem danom pretincu (obično frekvenciji) bude neprimjetna. No, kako proces provjere žiga zna točan položaj i sadržaj žiga, moguće je koncentrirati puno tih slabih signala u jedan signal velikog odnosa signal/šum. S druge strane, da bi pouzdano uništili taj žig trebali bi šum velike amplitude dodati na sve frekvencijske pretince. Raspršivanjem žiga kroz cijeli spektar osigurava veliku mjeru sigurnosti protiv nenamjernog i namjernog napada: prvo, prostorna lokacija žiga nije očigledna. Nadalje, frekvencijska područja trebaju biti odabrana tako da osiguraju značajnu degradaciju originalnih podataka tokom napada na žig. Očigledno, tehnika raspršenog spektra je puno otpornija od direktnog ubacivanja žiga. Kao posljedica, gotovo svi danas prisutni sustavi označavanja koriste tehniku raspršenog žiga za postizanje otpornosti žiga.
5.6. Prilagođavanje sadržaju
Ovisno o funkciji modificiranja originalnih vrijednosti sa vrijednostima žiga razlikujemo perceptualno adaptivne i linearne sustave. Linearni sustavi ubacuju žig bez obzira na vrijednosti originalnog sadržaja, dok perceptualno adaptivni sustavi nastoje iskoristiti lokalna svojstva sadržaja da bi poboljšala svojstva žiga, obično u pokušaju da iskoriste original za maskiranje žiga. Pri tome se koriste razvijeni modeli ljudskih osjetilnih sustava (vizualni i auditivni) i u odnosu na njih se modificira jačina ubacivanja žiga. Na primjer, promjene na velikim monotonim površinama ili jako kontrastnim područjima (rubovi) su vrlo primjetne, dok se na jako teksturiranim područjima mogu izvesti relativno velike promjene a da to bude neprimjetno. Slično tome, ljudski sluh je neosjetljiv na jeku vrlo kratkog kašnjenja, što neki sustavi iskorištavaju za kodiranje žiga. Prilagođavanja sadržaju generalno daje bolje rezultate, i po pitanju izdržljivosti žiga, i po pitanju količine informacija koje žig može sadržavati. Najnovija tehnika prilagođavanja sadržaju je modeliranje spektra snage žiga prema spektru snage sadržaja u koji se žig ubacuje [5]. Ubačeni signal žiga treba imati jake spektralne komponente na frekvencijama na kojima ih ima i signal domaćin. Spektar snage idealnog žiga bi bio skalirana verzija spektra snage sadržaja koji se označava:
gdje je fw(w) i fs(w) spektar snage signala žiga i signala označivanog sadržaja, a sw2 i ss2 varijance signala. Prednost modeliranja spektra snage žiga prema gornjoj formuli je u tome što je za tako oblikovani signal najteže procijeniti žig pomoću Wiener filtera. Tada se varijanca greške filtera serr2 približava varijanci signala žiga:
U praksi, uvjet spektra snage za žig prikazan u prvoj formuli treba adaptirati prema lokalnim statistikama signala domaćina. To je moguće izvesti eksplicitno, to jest procjenom spektra snage, ili implicitno, na primjer ubacivanjem žiga u domenu sažimanja slike ili video signala koja vrši automatsku adaptaciju na lokalni spektar snage. Za žigove koji se prilagođavaju spektru snage signala domaćina kažemo da su energetski efikasni, a može se dokazati da takav žig ima optimalnu otpornost prema napadima. Logika iza te tvrdnje se vodi činjenicom da napadač ima najveću slobodu manipulacije u područjima spektra u kojima je snaga sadržaja mala, a najmanju tamo gdje je veći dio energije sadržaja (jer tamo manipulacije proizvode neželjenu degradaciju sadržaja). Prema tome, ako se žig modelira tako da i on u područjima male energije sadržaja ima mali dio svoje ukupne energije, tada se manipulacijama u tom području može ukloniti mali dio energije žiga, jer veći dio energije 'štiti' signal domaćin.
5.7. Sinkronizacija žiga i detektora
Da bi detektirali moguću prisutnost žiga u nekom sadržaju potrebno je znati gdje se mogući žig nalazi, to jest, potrebno je sinkronizirati detektor sa sadržajem. To znači da na neki način treba neutralizirati moguće transformacije koje je signal pretrpio nakon ubacivanja žiga. Ako se detekcija izvodi uz pomoć originalnog sadržaja, sinkronizacija je relativno trivijalna. Problem sinkronizacije signala žiga je puno teže rješiti kada se originalni sadržaj ne koristi. Kada je sadržaj slika ili video zapis koji je rotiran, translatiran, skaliran tada sinkronizacija zahtjeva pretraživanje četvero-dimenzionalnog prostrora (x pomak, y pomak, kut rotacije, faktor skaliranja), ili peterodimenzionalnog ako kod videa uzimamo u obzir vrijeme. Prostor pretraživanja se dodatno povećava ako uzimamo u obzir mogućnost da je slika zakošena ili ima promijenjen odnos stranica (aspect ratio). Pored somenutog korištenja originala (što se izbjegava zbog sigurnosnih razloga), sinkronizacija se može postići na nekoliko načina, od kojih su uobičajeni postizanje invarijajntnosti na transformacije, sinkronizacija pomoću obrasca i sinkronizacija pomoću redundancije.
5.7.1. Sinkronizacija pomoću invarijantnosti
Invarijantnost na transformacije se može postići preslikavanjem domene žiga u odgovarajuću domenu u kojoj je željena transformacija eliminirana. Invarijantnost na translaciju se može postići korištenjem diskretne Fourierove transformacije (DFT):
DFT preslikava signal iz prostorne domene u kompleksnu frekvencijsku domenu. To omogućuje prikaz vrijednosti kroz komponente magnitude i faze.
A(k1,k2)=|F(k1,k2)| (7)
F(k1,k2)=ÐF(k1,k2) (8)
Lako se pokaže da linearni pomak u prostornoj domeni uzrokuje linearni pomak u faznoj komponenti preslikane domene, dok magnituda ostaje nepromijenjena.
F(k1,k2)exp[-j(ak1+bk2)] Û f(x1+a, x2+b) (9)
Prema tome, ako žig ubacujemo samo u DFT komponentu maginutde, postigli smo invarijantnost na translaciju. Invarijantnost na rotaciju i skaliranje se može postići korištenjem već pokazane invarijantnosti na translaciju. Kartezijev koordinantni sustav možemo preslikati u logaritamsko-polarni koordinantni sustav. Vrijedi:
x=em cosq (10) y= em sinq (11)
gdje je mÎR i 0 £ q £ 2p. Jasno je da za svaku točku (x,y) postoji jedinstvena točka (m,q). Novi koordinatni sustav ima slijedeća svojstva: Skaliranje je pretvoreno u translaciju:
(px,py) Û (m + log p, q) (12)
Rotacija je pretvorena u translaciju:
(x cos(q+d) – y sin(q+d), x sin(q+d) + y cos(q+d)) Û (m,q+d) (13)
Sada možemo implementirati invarijantnost na skaliranje i rotaciju tako što primijenimo invarijantnost na translaciju. DFT na logaritamsko-polarnom koordinatnom sustavu je u biti ekvivalentno izračunavanju Fourier-Mellin transformacije:
Modul Fourier-Melin transformacije je invarijantan na rotaciju i skaliranje, pa njegovim korištenjem kao domene ubacivanja žiga postižemo invarijantnost žiga na rotaciju i skaliranje. Invarijantnost na rotaciju, skaliranje i translaciju postižemo kombiniranjem gore navedenih invarijantnosti. Definiramo dva invarijantna operatora: F, koji izlučuje modul Fourierove transformacije i FM koji izlučuje modul Fourier-Mellin transformacije. Primjenjujući hibridni operator FM ° F na sliku f(x,y) dobivamo:
I1= [ FM ° F ] f(x,y) (15)
Primijenimo ovaj operator na sliku koja je translatirana, rotirana i skalirana:
I2 = [ FM ° F ° R(q) ° S(r) ° T(a,b) ] f(x,y) (16) = [ FM ° R(q) ° S(1/r) ° F ° T(a,b) ] f(x,y) (17) = [ FM ° F ] f(x,y) (18) = I1
Dakle, I2=I1 i operacije translacije, rotacije i skaliranja su invarijantne. Koraci (16) i (17) slijede zbog poznatog svojstva da skaliranje osi u prostornoj domeni uzrokuje inverzno skaliranje u frekvencijskoj domeni, i da rotacija za kut q u prostornoj domeni uzrokuje rotaciju Fourierove domene za isti kut. Korak (18) slijedi iz svojstava invarijantnosti operatora F i FM.
5.7.2. Sinkronizacija pomoću obrasca
Kao što smo pokazali, kompenzacija geometrijskih transformacija koje signal pretrpi može se postići korištenjem transformacija koje su invarijantne na njih. Drugi način kompenzacije je da pored žiga u signal ubacimo i obrazac koji služi isključivo za detekciju i uklanjanje pretrpljenih transformacija. Obrazac je obično nekoliko vrijednosti koje se ubacuju na predefinirane pozicije u signal. Pri detekciji prvo se potraže vrijednosti obrasca. To se obično obavlja numeričkim pretraživanjem. Ako koristimo DFT domenu za ubacivanje žiga, koraci u pretraživanju bi mogli biti slijedeći: · Izračunavanje magnitudnog DFT spektra slike (on je invarijantan na translaciju, tako da nju ne moramo kompenzirati). · Transformiranje magnitudnog spektra koristeći logaritamsko-polarno mapiranje. Kao što je pokazano u pristupu pomoću invarijantnosti, promjene u slici zbog rotacija i skaliranja postaju translacije, što je vrlo pogodno za pretraživanje. · Izračunavanje logaritamsko-polarnog prikaza obrasca. · Koristeći normaliziranu funkciju međusobne korelacije, ili neku drugu tehniku uspoređivanja, određujemo pomak duž transformirane osi. · Resinkroniziramo prikaz magnitudnog spektra sa obrascem. Kada nađemo vrijednosti transformacija možemo pristupiti detekciji žiga, tako da izvršimo inverzne transformacije, ili potražimo vrijednosti žiga uzimajući u obzir njegovu translatiranu poziciju unutar slike. Tehnika obrasca omogućuje sustavu veliku otpornost na geometrijske transformacije kao što su translacija, rotacija i skaliranje, što je osobito važno za označavanje slika. Sam obrazac bi mogao biti meta napada, jer ako se uništi obrazac, izgubili smo vezu sa žigom, pa je i žig efektivno uklonjen. No, kako je obrazac nosilac znatno manje informacija od samog žiga, on može po svojstvima biti puno otporniji. Ako želimo postići preciznost određivanja faktora transformacije sa 99.9% točnosti, potrebno nam je log2(1000) » 9 bitova. Za obije koordinate, kut i faktor skaliranja, potrebno nam je 18 bitova, što je značajno manje od veličine tipičnog žiga (100 ili više bitova).
5.7.3. Sinkronizacija pomoću redundancije
Sinkronizacija pomoću redundancije se postiže tako da vrijednosti žiga preslikamo nekoliko puta preko veće površine. Primjer sinkronizacije pomoću redundancije daju Solachidis i Pitas [6] predlažući ubacivanje žiga u DFT magnitudni spektar u obliku cirkularnog pojasa koji je podijeljen u S sektora. Svaki sektor sadrži kompletan žig, tako da je detekcija moguća pretraživanjem kuta od [-p/S, p/S], što značajno olakšava pronalaženje žiga. Kirovski i Malvar [7] u opisu sustava za označavanje zvučnih zapisa također koriste redundanciju kao sredstvo protiv desinkronizacije. Kako je zvučni zapis jednodimenzionalan, i postupak je jednostavniji. Oni predlažu širenje svakog parametra žiga u R uzastopnih uzoraka. Prilikom detekcije, koristi se samo centralni uzorak svakog područja. Postupak je ilustriran na Slici 5. Korištenjem takvog načina kodiranja žiga postiže se otpornost na linearni pomak za R/2 uzoraka. Za otpornost prema skaliranju zvučnog signala (što kod zvučnog signala znači promjenu frekvencije) koristi se redundancija u frekvencijskom području, te se pri traženju žiga vrši serija korelacija, svaka sa odgovarajućim parametrima frekvencijskog i vremenskog pomaka. Za statičku vremensku varijancu od ±10%, lokalnu vremensku varijancu od ±1%, statičku frekvencijsku varijancu od ±5% i lokalnu od ±1% potrebno je izvršiti 105 korelacija. Autori smatraju da vremenski i frekvencijski pomaci veći od 10% predstavljaju preveliku degradaciju signala, kao i lokalne varijacije veće od 1% (zbog svojstava ljudskog slušnog sustava).
5.8. Kodiranje sa kontrolom grešaka
Za postizanje dodatne otpornosti žiga na izobličenja i manipulacije, u strukturu žiga je moguće ugraditi kontrolu grešaka, pomoću kontrolnih kodova. Ruanaidh et al. [8] u tu svrhu predlažu korištenje Reed-Solomon (RS) kodova. Predloženi sustav za strukturu žiga koristi zapis na nivou simbola, umjesto na nivou bitova, što je upravo i način kodiranja pomoću RS korekcije grešaka. RS kodovi mogu ispravljati greške (čije lokacije nisu poznate), ali i brisanje simbola (čije lokacije su poznate). Vjerojatnost pogrešne detekcije je jako mala. Izbrisani simboli se jednostavno isključuju iz ključne jednažbe što znači da mogu jednostavno biti ignorirani. Oni ne igraju ulogu u mehanizmu ispravljanja grešaka – tretiraju se kao nepotrebna redundancija. To svojstvo se može iskoristiti u dvije svrhe: ako je vjerojatnost ispravnosti primljenog simbola mala, on se može ignorirati. Ostim toga, ignoriranje izbrisanih simbola se može koristiti za smanjenje veličine zapisa. RS kodovi imaju standardne veličine. Na primjer, 255x8 bitova je standardna veličina. No, takva veličina je prevelika za upotrebu u vodenim žigovima. No, upravo zbog navedenog svojstva brisanih simbola moguće je prilagodii RS kodove bilo kojoj veličini, jednostavno odabirom simbola koji se neće koristiti te proglašavanjem istih za 'izbrisane', te izbacivanjem njihove upotrebe u dekoderu.
5.9. Bayesov pristup detekciji žiga
Razmatramo binarni niz koji je izvučen iz sadržaja, za koji se skoro svi bitovi poklapaju sa poznatom binarnom sekvencom poruke koja je ubačena u sadržaj. Općenito, možemo očekivati da će se oko 50% bitova slučajnog niza bitova slagati sa zadanim binarnim nizom. Ruanaidh i Scurka [9] pokazuju da pomoću Bayesovog pristupa možemo dati odgovor na slijedeće pitanje: · Koja je vjerojatnost da se skoro savršeno poklapanje dogodi slučajno? Ili, kako pitanje glasi u našem slučaju: · Uzimajući u obzir samo ključ koji je možda korišten za generiranje žiga, koja je vjerojatnost da je žig generiran baš tim ključem? Drugo pitanje je osobito interesantno jer sugerira da se algoritam detekcije može koristiti ili za ekstrakciju binarnog sadržaja žiga, ili za vezivanje žiga uz odgovarajući ključ. Biti u mogućnosti detektirati žig iako možda nismo u mogućnosti dekodirati ga je vrlo korisno, jer se može iskoristiti za dokazivanje vlasništva (zapravo vlasništvo ključa kojim se žig moduliran) čak i u slučaju kada je žig nemoguće ispravno pročitati zbog unesenog šuma ili namjernih manipulacija. Realno je očekivati da je detekcija žiga uvijek otpornija od dekodiranja žiga, jer tokom detekcije se zapravo traži samo jedan bit informacije, koji nam govori jeli žig prisutan ili nije. Da bi odgovorili na prvo pitanje, moramo izračunati vjerojatnost da neki slučajni niz bitova ima određeni broj bitova koji se poklapaju sa zadanim nizom. Lako je pokazati da je ta vjerojatnost dana Bernoullijevom distribucijom:
gdje je N broj bitova, a i broj bitova koji se poklapaju. Ova spoznaja je vrlo vrijedna. Naime, ona nam govori da ako dekodiramo 100 bitova, i nađemo da je 80% bitova zajedničko sa zadanom sekvencom našeg žiga, možemo biti prilično sigurni da je žig prisutan. Vjerojatnost slučajnog pogađanja 80% bitova u sekvenci od 100 bitova je 2.17x10-9. To je ujedno vjerojatnost lažne uzbune – pronalaženja žiga iako on u sadržaju zapravo nije prisutan. Da bi odgovorili na drugo pitanje, moramo prvo definirati oblik žiga. Ako poruku sadržanu u žigu prikažemo kao niz od M bitova (vrijednosti ±1), i definiramo skup slučajnih nizova vi tako da za svaki bit imamo jedan slučajni niz, tada možemo definirati kodirani oblik poruke koja će predstavljati naš žig:
gdje je b niz bitova, a G matrica čiji je i-ti stupac pseudo-slučajni niz vi. Nakon manipulacija sa sadržajem, izmijenjeni žig w’ prikazujemo kao linearnu kombinaciju originalnog žiga i vektora e koji prikazuje šum:
w’ = Gb + e (21)
Ako pretpostavimo da je šum distribuiran po Gaussovoj distribuciji, možemo primijeniti Bayesov pristup koji je detaljno opisan u [10], dobijamo vjerojatnost da signal raspršenog spektra w’ izvučen iz slike I sadrži poruku duljine M kodirane sa ključem k:
gdje su
b’=(GTG)-1GTw’ (23) i f=GTb (24)
redom procjena najmanjeg kvadrata za bitove, i najmanji kvadrat u koji stane žig. Rd i Rs su konstante uvedene kao normalizacijski faktori. Na sličan način dobija se vjerojatnost da nikakva poruka (zapravo, poruka duljine 0) nije ubačena sa tim ključem:
Na kraju, da bi donijeli odluku jeli zadani ključ korišten pri generiranju žiga ili ne, računamo relativnu logaritamsku vjerojatnost:
i usporedimo je sa nulom.
S obzirom na brzinu razvoja i često objavljivanje novih publikacija iz područja vodenih žigova, ovaj pregled tehnika sasvim sigurno nije kompletan, no barem daje prikaz evolucije tehnologije i generalne smjernice budućeg razvoja znanosti.
6. Sustavi zaštite vlasništva
Sustavi zaštite vlasništva pomoću vodenih žigova su namijenjeni dokazivanju vlasništva nad određenim sadržajem pomoću vodenih žigova koji su ubačeni u sadržaj. Kako je to zasad primarno područje primjene vodenih žigova, postoje mnogi sustavi, namijenjeni različitim tipovima dokumenata.
6.1. Sustavi zaštite slika
Zaštita vlasništva slika je u zapravo originalno područje primjene otpornih vodenih žigova, što indicira i njihov naziv. Prikaz različitih sustava označavanja slika vodenim žigom je podijeljen s obzirom na domenu ubacivanja žiga, jer je to zapravo parametar koji najviše određuje konkretnu implementaciju sustava. U opisima će biti iznesene samo razlike u pristupu koje su karakteristične za pojedinačne sustave, dok su uobičajene tehnike i općeniti postupci zajednički za sve sustave izneseni u ranijim poglavljima. Prostorna, DFT, DCT i DWT domena su predmet ogromne većine sustava i istraživanja, pa je njima i posvećeno najviše prostora.
6.1.1. Označavanje u prostornoj domeni
Kao što je označavanje slika pionirsko područje vodenih žigova, tako je i označavanje u prostornoj domeni mahom bilo domena tih početnih pokušaja oblikovanja sustava vodenih žigova. Prvi pokušaji su se uglavnom svodili na neki oblik iskorištavanja najmanje značajnih bitova za ubacivanje žiga. U jednom od prvih objavljenih radova (1994.) [11] autori predlažu sustav označavanja glazbe na kompakt diskovima korištenjem dva najmanje značajna bita za ubacivanje žiga na pseudo-slučajnim pozicijima. Naravno, po današnjim mjerilima takav sustav ne zadovoljava osnovne zahtjeve koje postavljamo sustavima vodenih žigova. Bender et al [12] predlažu sustav popularno nazvan Patchwork (vez). Algoritam odabire slučajne parove piksela. U svakom paru jednom pikselu se pojača intenzitet, a drugom se smanji. Promjena u kontrastu predstavlja jedan zakodirani bit žiga. Metoda nije efektivna u slikama kojima pikseli nisu uniformno distribuirani. Pitas et al. [13] predlažu metodu koja je u osnovi razrada prethodne metode. Autori umjesto parova piksela predlažu upotrebu parova blokova. Blokovi su veličine 8x8, što je preuzeto iz specifikacije JPEG algoritma sažimanja. Kao rezultat metoda je prilično otporna na JPEG sažimanje. No, da označavanje u prostornoj domeni nije neophodno stvar prošlosti, pokazuje recentni (1999.) rad koji su objavili Voloshynovskiy et al. [14]. Njihov pristup koristi perceptualno adaptiranje i bazira se na izračunavanju funkcije vidljivosti šuma (noise visibility function – NVF) koja opisuje lokalna svojstva slike, identificirajući teksturirana područja, kao i područja oko rubova te iskorištava njihove maskirajuće efekte za snažnije ubacivanje žiga. Funkcija je dana kao:
NVF(i,j)=1/(1+sx2(i,j)), (27)
gdje sx2(i,j) označava lokalnu varijancu slike u prozoru centriranom oko točke (i,j), 1 £ i,j £ M. Prema tome, NVF je inverzno proporcionalan sa lokalnom energijom slike koju definira lokalna varijanca. Koristeći definiranu funkciju za prilagođavanje sadržaju može se formulirati konačna funkcija ubacivanja:
y = x + (1-NVF) * n * S, (28)
gdje y predstavlja označeni piksel, x originalni piksel, n vrijednost žiga, a S snagu ubacivanja. U vrlo ravnim površinama NVF se približava 1, što znači da se u tim područjima žig gotovo i ne ubacuje. Slično, za jako teksturirana područja, NVF se približava 0, pa je tu snaga žiga najveća. Istraživanja koja su proveli autori pokazuju da se korištenje perceptualnog adaptiranja pomoću NVF funkcije postiže u prosjeku dva puta veća snaga ubacivanja žiga, što samim time znači i dva puta otporniji sustav. Voyatzis et al. [15] predlažu sustav koji bi ubacivao malu sliku (logo vlasnika). Na logo se iterativno primjenjuje transformacija nazvana toralni automorfizam, koja proizvodi žig predstavljen kao kaotično izmiještanje piksela logoa. Žig se ubacuje repetitivno u označivanu sliku izmjenom intenziteta. Pri detekciji, manja slika se izlučuje iz testirane slike, te se računa procjena kaotičnog binarnog žiga. Na njoj se primjenjuje inverzna toralna automorfna transformacija da se dobije eventualno ubačeni logo. Općenito, slaba točka ubacivanja u prostornu domenu je slabost prema afinim transformacijama slike: rotacije, translacije i skaliranja, što se uspješno rješava korištenjem raznih transformacija prostorne domene.
6.1.2. Označavanje u DFT domeni
Korištenje diskretne fourierove transformacije (DFT) kao osnove za sustav vodenog žiga je trenutno najčešće rješenje. Razlog tomu je velika brzina kojom se fourierove transformacije mogu izvesti na računalu, ali i svojstva koja ta transformacija ima. Najbitnija svojstva su preslikavanje prostornih koordinata u magnitudnu i faznu komponentu, kao i povoljna svojstva transformacije s obzirom na geometrijske transformacije u prostornoj domeni (vidi poglavlje 5.7). DFT metode mogu generalno biti klasificirane u dvije skupine, one koje se baziraju na invarijantnosti, i one koje se baziraju na obrascu. Obije metode su detaljno objašnjene u prethodnom poglavlju. Pereira i Pun u [16] predlažu žig kodiran BCH kodovima, što za 60 bitova sadržaja daje 72 bita kodiranog žiga. Bitovi se kodiraju bipolarno, to jest, kao –1 i 1, zbog pogodnijeg načina ubacivanja. Žig se u bacuje u srednje frekvencijsko područje, kao balans između područja niskih frekvencija (koje je osjetljivo na promjene) i područja visokih frekvencija (koje obično predstavljaju šum). Za ubacivanje vrijednosti se koristi diferencijalno kodiranje: za svaki bit žiga modificiraju se točke (xi,yi) i (yi,-xi) na način da je km=(xi,yi) - (yi,-xi), gdje je . Drugim riječima, dvije točke međusobno pod kutem od 90° se modificiraju tako da razlika među njima bude jednaka željenoj vrijednosti bita žiga. Kako je poznata i lokacija i vrijednost bitova žiga, originalna slika nije potrebna pri detekciji. Za kompenzaciju geometrijskih transformacija koje slika može pretrpiti, koristi se ubačeni obrazac. Za njegovu detekciju se ne koriste logaritamsko-polarne koordinate ni svojstva invarijantnosti, nego pretraživanje mogućih transformacija. Kako bi slijepo pretraživanje bilo prezahtjevno, koristi se heuristika u eliminaciji nepotrebniih pretraživanja, na primjer, pretpostavlja se da visoke i niske frekvencije neće zamijeniti mjesta, kao i da kutevi među točkama vjerojatno neće biti promijenjeni za više od ±20°. Eksperimenti su pokazali da je sustav otporan na opće afine transformacije. Za razliku od većine DFT sustava koji koriste magnitudni dio transformacije, Ruanaidh et al. u [17] predlažu označavanje fazne komponente DFT transformacije. Motivacija za to je činjenica da je informacija sadržana u faznoj komponenti bitnija od magnitudne u pogledu kvalitete prikaza. Također, u komunikacijskoj tehnologiji je pokazano da je kutna modulacija po mnogim svojstvima superiornija amplitudnoj modulaciji. Žig se ubacuje tako da se izračunatim faznim vrijednostima faze doda slučajni niz generiran po gaussovoj distribuciji. Pokazano je da se negativni efekti promjene faze minimiziraju tako da se za označavanje koriste samo one vrijednosti koje imaju veliku magnitudnu komponentu. Pri detekciji potreno je imati originalnu neoznačenu sliku. Solachidis i Pitas u [6] predlažu DFT bazirani sustav vodenog žiga koji za ubacivanje žiga koristi prsten u srednjem frekvencijskom području, podijeljen u nekoliko sektora, od kojih svaki sadrži kompletan žig. Time se postiže dodatna otpornost, ali i jednostavnije pronalaženje žiga nakon transformacija (pogledaj poglavlje 5.7). Za detekciju žiga koristi se formula korelacije:
gdje je c mjera korelacije između možda označenih koeficijenata M’ i žiga W. Ako je slika označena sa žigom W’, različitim od W, funkcija korelacije će biti:
Ako je u slici stvarno žig W, funkcija će biti:
Pod pretpostavkom da su W i M neovisne i jednako distribuirane slučajne varijable i W ima srednju vrijednost nula, srednja vrijednost c će biti:
Autori primjećuju da za svaki žig postoji izvjestan broj sličnih žigova koji bi mogli dati pozitivan odziv detektora. Da bi se taj problem izbjegao, potrebno je generirati skup sekvenci žigova, takav da bi skupovi međusobno imali slabu korelaciju.
Ruanaidh i Csurka u [9] opisuju DFT sustav koji koristi Bayesov pristup za statističko računanje vjerojatnosti da je žig prisutan u slici generiran određenim ključem. Za ubacivanje žiga pomoću raspršenog spektra predlaže se korištenje m-sekvenci i takozvanih Zlatnih kodova. M-sekvence su najveći kodovi koji se mogu generirati pomoću posmičnog (shift) registra zadane duljine. Oni postoje za sve cjelobrojne vrijednosti n sa periodom N=2n-1 i jednostavno se generiraju povezivanjem puteva povratne veze u posmičnom registru duljine n. Međusobna korelacija između pomaknutih vrijezija m-sekvenci daje –1, dok auto-korelacija daje duljinu m-sekvence. To svojstvo se koristi pri detekciji ubačenog žiga. Zlatni kodovi se dobijaju q-decimacijom m-sekvenci. Decimacija m-sekvence se dobija tako da se uzme svaki q-ti element slijeda. Zlatne sekvence imaju prednost u tome što za zadanu duljinu registra n postoji više izbora za ključ (generator) nego za m-sekvence. Dok za duljinu registra n postoji 2n-1 mogućih ključeva (početna vrijednost sadržaja registra koja generira cijeli niz) m-sekvenci, za zlatne kodove postoji 22n-1 mogućih sekvenci zlatnih kodova. To je posljedica dodatne mogućnosti odabira druge decimacije (zapravo, drugi linearni shift registar povratne sprege veličine n). Eksperimentalni rezultati pokazuju jako dobra svojstva predloženog sustava u ispravnom detektiranju žiga, kao i njegove duljine kada je dan samo ključ.
6.1.3. Označavanje u DCT domeni
Primjena diskretne kosinus transformacije (DCT) u sustavima vodenih žigova posljedica je činjenice da se ona koristi kao osnova JPEGa, kao i sustava sažimanja proizašlih iz njega. DCT je također pogodan za primjenu zbog svojstva da većinu energije transformiranog bloka koncentrira u nižim frekvencijskim područjima, koji su zbog perceptualne važnosti pogodni kao područje ubacivanja žiga. Odlučivanjem za DCT domenu, odmah smo osigurali da sustav bude otporan na JPEG sažimanje, što je jako bitno, s obzirom da je to trenutno najpopularniji format sažimanja digitalnih slika. Cox et al. [18] su prvi autori koji predlažu ubacivanje žiga u perceptualno bitno područje slike. U njihovom sustavu, žig se ubacuje u 1000 nisko-frekventnih DCT koeficijenata koji su dobiveni 2D DCT transformacijom kompletne slike. Pri ubacivanju se koristi jednostavan oblik prilagođavanja sadržaju na način da se vrijednosti žiga ubacuju proporcionalno veličini koeficijenta u koji se ubacuju. Za žig se koristi slučajni niz Gaussove razdiobe. Za ekstrakciju žiga se koristi originalna slika. Nakon ekstrakcije eventualno izobličenog žiga (X’) vrši se korelacija sa originalnim žigom X:
Prikazani eksperimentalni rezultati pokazuju da je sustav izuzetno otporan na testirane transformacije. Ovaj sustav je praktično primijenjen u poglavlju 9. U [19] koristi se DCT transformacija bazirana na 8x8 blokovima, umjesto DCT transformacije cijele slike. Prednost je kompatibilnost sa JPEG sažimanjem, a DCT transformacija je i računski zahtjevna za velike slike. Autori koriste odabir blokova sa visokom aktivnošću, kao oblik adaptacije na sadržaj. Žig izmjenjuje samo koeficijente srednjeg frekvencijskog pojasa, jer je u tako malim blokovima nisko-frekventno područje previše osjetljivo na izmjene. Swanson et al. [20] razrađuju koncept korištenjem prostornog maskiranja žiga da postignu nevidljivost. Prostorna maska se koristi za izračunavanje najveće dozvoljene promjene za DCT koeficijente za svaki blok. Teo et al. [21] predstavljaju adaptivnu tehniku koja iskorištava karakteristike ljudskog vizualnog sustava (HVS). Algoritam svakom prostornom području dodijeljuje oznaku osjetljivosti na šum i ubacuje žig u svaki DCT blok sukladno njegovoj oznaci. Svaki blok je klasificiran u jednu od šest različitih klasa osjetljivosti na šum, te se u njega ubacuju signali različitih energija. Algoritam klasifikacije koristi karakteristike kao što su luminancija, rub i efekte maskiranja teksturiranih područja u HVSu. Da bi bio otporan na šum, žig se ubacuje u n AC koeficijenata koji imaju najmanji kvantizacijski korak prema standardnoj JPEG kvantizacijskoj tablici, kao u slijedećem pravilu:
vi’=vi+max[vi ´ am, sgn(vi) ´ Di/k] (34)
gdje je vi i-ti DCT koeficijent, vi’ označeni koeficijent, am koeficijent otpornosti na šum klase m kojoj pripada dotični DCT blok. Di je i-ti kvantizacijski korak u JPEG tablici, a k zadovoljava 5<k<6. Pri detekciji se koristi originalna slika, a detekcija žiga se promatra kao problem testiranja hipoteze.
6.1.4. Označavanje u domeni valića
Sa standardizacijom JPEG2000 i prelaskom sa DCT na sažimanje bazirano na valićima (wavelet) sustavi vodenih žigova koji koriste domenu valića postaju sve interesantniji. Wavelet transformacija ima izvjestan broj prednosti u usporedbi sa drugim transformacijama koje mogu biti iskorištene i za primjenu u vodenim žigovima. Neke od tih prednosti su: · Prostorno-frekvencijska lokalizacija. Domena valića pruža dobru prostorno-frekvencijsku lokalizaciju za analiziranje pojava kao što su rubovi ili teksturirana područja. · Multi-rezolucijski prikaz. Zbog multirezolucijskog prikaza slike hijerarhijska obrada je jednostavno izvediva. Ovo je važno za postupnu i skalabilnu transmisiju ali i za slijedno dekodiranje žigova. Moguće je uštedjeti značajnu količinu računalnog vremena prethodnom detekcijom žiga u niskorezolucijskim podpojasevima. Tek ako to ne uspije algoritam može pristupiti detekciji u pojasevima više rezolucije gdje se za detekciju upotrebljava detaljniji prikaz podataka. · Bolje HVS modeliranje. Označavanje može iskoristiti dobar model ljudskog vizualnog sustava (human visual system - HVS) koji upotrebljava wavelet algoritam. To omogućuje prilagođavanje izobličenja koja uvodi ubacivanje žiga maskirajućim svojstvima ljudskog vida. · Linearna kompleksnost. Transformacija valića ima linearnu računalnu kompleksnost O(n) za razliku od O(n*log n) kompleksnosti DCTa (n predstavlja duljinu signala koji se transformira). To može biti bitno u sustavima koji transformiraju cijelu sliku. No u usporedbi sa DCTom koji se bazira na blokovima wavelet transformacija je računalno skuplja operacija. · Adaptiranje. Transformacija valića je dovoljno fleksibilna da se prilagodi zadanom skupu slika ili željenoj primjeni. Dekompozicijski filter i dekompozicijska struktura mogu biti odabrani na takav način da dobro odražavaju bitne karakteristike slike. Opet treba ukazati na suprotstavljene ciljeve sustava sažimanja i sustava vodenog žiga: sažimanje nastoji odbaciti suvišne i perceptualno nevažne informacije u procesu kodiranja, a sustavi vodenog žiga pokušavaju sakriti nevidljive podatke u sliku. Prema tome optimalni koder slike bi po definiciji uklonio bilo kakav sadržaj žiga. No čak i trenutno najnapredniji sustavi kodiranja kao što je JPEG2000 ostavljaju procjep izobličenja koji se može iskoristiti za ubacivanje žiga. Istraživanja pokazuju da kodiranje sa sažimanjem ostavlja dovoljno prostora za ubacivanje žiga sve do granice od 0.2 bita informacije po pikselu slike. Velik broj sustava baziranih na wavelet transformaciji ukazuje na potrebu klasifikacije prema svojstvima karakterističnim za konkretne algoritme. Zbog intenziteta istraživanja i brzine objavljivanja novih radova nije moguće prikazati sve predložene sustave. Sustave možemo podijeliti s obzirom na slijedeće karakeristike: · Strategija dekompozicije. Većina sustava sugerira tri ili četiri koraka dekompozicije, ovisno o veličini slike, koristeći pri tome neki od poznatih filtera kao što su Haar, Daubechies-4, Daubechies-6 ili 7/9 biortogonalni filter. Neki su prikladniji za određene vrste slika od drugih. Izbor filtera obično znači i izbor frekvencijskog područja označavanja jer, na primjer, filteri koji koncentriraju većinu energije slike u najnižim rezolucijama nisu dobar izbor za sustave koji ubacuju žig u podpojasevima detalja. · Odabir koeficijenata. Odabir koeficijenata koji se manipuliraju pri označavanju određuje tehniku označavanja kao i primjenu. Glavna podjela je između odabira aproksimacijske slike, koja koristi niskofrekventne komponente signala i podpojasa detalja, koji predstavljaju visokofrekvencijsku informaciju u horizontalnoj, vertikalnoj i dijagonalnoj orijentaciji. · HVS modeliranje. Maskirajuća svojstva ljudskog vidnog sustava se uzimaju u obzir implicitno ili eksplicitno. · Tehnika označavanja. Žig može biti ubačen u odabrane koeficijente dodavajući pseudoslučajni niz raspršenog spektra ili kvantiziraj i zamijeni strategijom. Fuzija slika je proces pri kojem se manja slika (logo) kodira u označavanu sliku. · Metoda ekstrakcije. Glede zahtjeva ekstrakcije možemo razlikovati javne polu-javne i tajne sustave. Tajni sustavi zahtjevaju pristup originalnoj, neoznačenoj slici, polu-javni za detekciju koriste ključ kojim je žig kodiran, a javni sustavi mogu detektiraju prisustvo žiga bez ikakvih dodatnih informacija. Kao i kod ostalih domena, sustavi bazirani na valićima uglavnom koriste polu-javne metode ekstrakcije. Slijedi prikaz nekih tehnika otpornih vodenih žigova koji koriste transformaciju valića kao domenu ubacivanja žiga. U prvoj skupini su metode koje koriste aproksimacijsku sliku. Aproksimacijska slika se može dobiti na razne načine. Na primjer, aproksimacjiska slika izračunata pomoću dekompozicije na tri nivoa detaljnih pojaseva je ekvivalentna podpojasu koji čine DC koeficijenti 8x8 DCT blokova slike. Sustave koji koriste niskofrekvencijski pojasu bez ovisnosti o karakteristikama dekompozicije predlažu Liang [22], Ohnishi [23] i Tzovaras [24]. Liang i Ohnishi primjenjuju DFT na aproksimacijskoj slici. Ohnishi je segmentira i primjenjuje DFT na blokove. Za svaki blok DC koeficijent je kvantiziran tako da kodira jedan bit informacije žiga. S druge strane, Liang dodaje pseudo-slučajan gaussov niz. Pereira et al. [25] opisuju metodu baziranu na dekompoziciji na jedan nivo nepreklapajućih 16x16 blokova slike koristeći Haar wavelet filtere. Algoritam koristi linearno programiranje za optimizaciju otpornosti žiga unutar ograničenja vidljivog izobličenja danog sa JND mapama (JND - just noticeable difference, jedva primjenta razlika). Za svaki ubačeni bit 2x2 blok susjednih koeficijenata se odabire iz LL podpojasa veličine 8x8. Informacije se ubacuju koristeći diferencijalno kodiranje. Susjedni koeficijenti se odabiru zbog pretpostavke da je njihova razlika u prosjeku nula. Označavanje u aproksimacijskoj slici je prilično jednostavno te je moguće koristiti algoritme ubacivanja koji se primjenjuju u prostornim ili DCT domenama. Označavanje je moguće i u podpojasevima detalja. Dok je magnituda aproksimacijske slike koeficijenata uglavnom uniformna, distribucija koeficijenata u detaljnim podpojasevima uglavnom slijedi Laplaceovu distribuciju. Većina koeficijenata je blizu nule osim nekoliko većih vrhova koji odgovaraju informacijama o rubovima i teksturama pa sadržavaju veću energiju. Ove pojave su lokalizirane prostorno i predstavljene su na različitim mjerilima kako se smanjuje rezolucija. To svojstvo omogućuje multirezolucijsku analizu i prikaz malih i velikih pojava u slici. Da bi se žig pouzdano ubacio u detaljne podpojaseve potrebno je odabrati ili dovojno velike koeficijente ili snagu žiga treba prilagoditi veličini koeficijenata. Intenzitet ubacivanja se može prilagođavati prema energiji podpojasa, nivou dekompozicije ili orijentaciji podpojasa. U nekoliko sustava važnost koeficijenata se određuje usporedbom sa zadanom granicom. Kim [26] koristi DWT koeficijente svih podpojaseva uključujući aproksimacijsku sliku za ravnomjerno ubacivanje žiga po gaussovoj distribuciji. Energija žiga ovisi o nivou dekompozicije da bi se izbjegla vidljiva izobličenja. Tsekeridou et al. [27] iskorištavaju multirezolucijsko svojstvo wavelet transformirane domene i ubacuju kružni samosličan žig u prvi i drugi nivo detalja. Samosličnost je korisna za detekciju žiga bez originalne slike jer se prostor pretraživanja ubačenog žiga drastično reducira. Kundur [28] ubacuje binarni žig modificirajući amplitudne odnose tri koeficijenta iz odvojenih podpojasa istog rezolucijskog nivoa. Svaka trojka odabranih koeficijenata je sortirana i srednji koeficijent se kvantizira tako da kodira nulu ili jedinicu. Za ojačavanje slijepog procesa ekstrakcije koristi se ponavljanje i obrazac. Postoje slični pristupi koji koriste blokove koeficijenata umjesto tri koeficijenta, što predstavlja fleksibilniji algoritam jer se veličina bloka može prilagoditi željenim zahtjevima za neprimjetnost ili otpornost na manipulacije. Neki sustavi označavanja pomoću domene valića iskorištavaju samo kodiranje slika za ubacivanje žigova. Jayawardena et al. [29] primjenjuju niz binarnih filtera bi dobili multirezolucijsku domenu. Algoritam odabire značajanu bit ravninu detaljnog podpojasa. Prvo svi se bitovi postave na nulu i izračuna inverzna transformacija. Zatim se isto ponovi sa svim bitovima postavljenim na jedan. Nakon toga traže se lokacije u odabranoj ravnini koje su stabilne kada se slika podvrgne sažimanju sa gubicima. Skup stabilnih lokacija se koristi za direktno ubacivanje žiga uzimajući u obzir zadanu granicu vizualnih izobličenja. Zerotree metoda bazira se na pretpostavci da u slučaju kada je koeficijent na gruboj aproksimaciji dovoljno mali u odnosu na zadani prag, tada su i svi ostali koeficijenti iste orijentacije u istoj prostornoj lokaciji na većem nivou detalja takoer mali u odnosu na zadani prag. U korijenu zerotree stabla se koriste posebni simboli za označavanje grana koje se smatraju za vizualno nebitne. Ta činjenica se iskorišatava za ubacivanje žiga kao male pozitivne ili negativne vrijednosti u detaljnim podpojasevima. Neki sustavi koriste zerotree za identificiranje ‘potomaka’ značajnijih koeficijenata koje koder sigurno neće odbaciti, pa se u njih žig ubacuje sa većom snagom.
6.1.5. Označavanje u drugim domenama
Osim obređenih domena, neki sustavi koriste 'egzotičnije' transformacije kao što su preklapajuća ortogonalna transformacija (lapped orthogonal transform), Fresnel transformacija, fraktalna transformacija, kompleksna transformacija valića ili Fourier-Mellin transformacija. Motivacija za njihovo korištenje je obično rješavanje nekih problema koja druge transformacije ne mogu rješiti, ili postizanje svojstava sustava koja su pogodna za specifična područja primjene. Slijede prikazi nekih sustava koji koriste takve transformacije. Fraktalna transformacija je osnov za nova istraživanja u području sažimanja, no moguća je primjena i za sustave sažimanja. Fraktalna transformacija se zasniva na traženju sličnosti između cijele slike i njenih djelova, tj. na samo-sličnosti. Osnovna ideja fraktalnog kodera je određivanja skupa transformacija koje aproksimiraju svaki blok slike sa većim blokom. Transformacije se primjenjuju iterativno dok se ne postigne željeni stupanj sažimanja. Transformacije kojima se vrši sažimanje čine iterativni sustav funkcija (iterated function systems – IFS). Postupak označavanja pomoću fraktalne transformacije predstavljaju Puate i Jordan u [30]. Postupak se vrši tako da se slika podijeli na nxn blokove, te se pokušavaju naći transformacije koje te blokove preslikavaju u 2n×2n blokove iste slike. Transformacije koje se primjenjuju uključuju skupljanje, izometrijske transformacije, skaliranje luminancije, te pomak luminancije. Pretraživanje i uspoređivanje bloka se vrši sa susjednim blokovima unutar lokalnog radijusa pretraživanja. Početna vrijednost generatora pseudo-slučajnih brojeva se koristi kao ključ kodiranja. Slučajni niz se koristi za odabir blokova u koje se ubacuje žig. Kodiranje bitova žiga se obavlja tako da se u ovisnosti o njihovim vrijednostima odabire područje pretraživanja sličnih blokova. Ako je vrijednost bita žiga jedan, koristi se jedno područje pretraživanja, a ako je vrijednosti 0, drugo područje. Sažeta slika se zatim vrati u puni oblik, sa vrijdnostima žiga zakodiranim u postupku fraktalnog sažimanja. Pri dekodiranju žiga koristi se tajni ključ za odabir blokova te prema pronađenom mjestu sličnog bloka dobijamo vrijednosti pojedinih bitova žiga. Pereira et al [31] uočavaju da korištenje manjih blokova slike za transformiranje u domenu označavanja uzrokuje vidljivost blokova u slici vraćenoj u prostornu domenu kada je jačina ubacivanja žiga relativno velika. Da bi izbjegli tu neprihvatljivu pojavu oni predlažu korištenje domene preklapajuće ortogonalne transformacije (lapped orthogonal transform – LOT) za adaptivno ubacivanje žiga. Zbog neotpornosti LOT transformacije na rezanje, rotaciju i skaliranje autori predlažu korisštenje obrasca ubačenog u DFT domenu koja uspješno rješava probleme sa afinim transformacijama slike. Prikazana metoda ne koristi originalnu sliku pri detekciji. LOT transformacija se koristi u sažimanju, kodiranju govora i telekomunikacijskim primjenama. Njezina prednost pred drugim transfromacijama je uspješno izbjegavanje pojave naglašenih blokova koji su na primjer vrlo uočljivi pri velikom JPEG sažimanju. Blokovi se pojavljuju zbog toga što se slika prije transformacije dijeli na blokove koji se neovisno kodiraju. Zbog toga nastaju velike razlike na rubovima blokova, što je za čovjekov vizualni sustav jako primjetno, te samim time neprihvatljivo. Osnovna ideja LOT transformacije je mapiranje dva ili više prostornih blokova u jedan blok transformirane domene. Pri transformaciji se koristi kombiniranje DCT transformacija pojedinih blokova u jedan LOT blok, čime se izbjegava razvijanje blokova jer se blokovi ne kodiraju neovisno. Žig se ubacuje u LOT koeficijente odabrane pseudo-slučajno po tajnom ključu vlasnika koristeći tehniku raspršenog spektra. Prema istraživanju autora, algoritam se dobro nosi sa promjenama u veličini te rotaciji slike. Otpornost na JPEG kompresiju je prikazana do faktora kvalitete 30. O’Ruanaidh i Pun u [08] predlažu korištenje Fourier-Mellin transformacije zbog njenih pogodnih svojstava:
Modul Fourier-Mellin transformacije je invarijantan na rotaciju i skaliranje, što je pogodno svojstvo za postizanje otpornosti žigova na afine transformacije. Autori opisuju sustav koji koristi navedenu transformaciju, zajedno sa CDMA (code division multiple access) kodiranjem žiga u raspršeni spektar. Sami bitovi žiga se dodatno kodiraju sa Reed-Solomon kodovima za postizanje dodatne otpornosti na greške. Opisani sustav primjenjuje mnoge napredne tehnike i predstavlja sintezu raznih pravaca istraživanja sustava vodenih žigova.
6.2. Sustavi zaštite vlasništva video zapisa
Sustavi zaštite vlasništva video zapisa predstavljaju logičan nastavak istraživanja sustava za zaštitu slike. Gotovo svi sustavi za zaštitu vlasništva slika prikazani u prethodnom poglavlju mogu se primijeniti i za zaštitu video zapisa. No, pri označavanju video zapisa treba uzeti u obzir i neke bitne karakteristike koje čine označavanje video zapisa različitim od označavanja slika. Obično, čak i sama namjena označavanja video zapisa je različita od označavanja slika. Kod video zapisa vlasništvo, to jest autorstvo zapisa obično nije u pitanju. Umjesto toga, obično je pod pitanjem pravo korištenja određenog video zapisa. To se rješava individualnim označavanjem kopija video zapisa. No, razlike su i sa tehničke strane. Promatranje video zapisa isključivo kao slijed pojedinačnih slika propušta prednosti koje se mogu iskoristiti za poboljšanje sustava vodenog žiga. U prvom redu, to je činjenica da pri označavanju video zapisa na raspolaganju imamo puno veću količinu podataka. U video zapisima se obično smatra da je najmanja brzina potrebna za dobijanje iluzije kontinuiranog pokreta 25 slika u sekundi. Prema tome, količina podataka koju sadrži jedan film prosječnog trajanja je nekoliko redova veličine veća od jedne slike. To se može iskoristiti na razne načine. Neki od njih bi bili korištenje velike količine podataka za ubacivanje puno veće količine informacije u žig, ili za poboljšanje otpornosti žiga vremenskim raspršivanjem. No, velika količina podataka može biti i slabost sustava vodenog žiga. Velik broj slika se može iskoristiti za nove napade koji nisu mogući kod običnih slika. Većina takvih napada koristi činjenicu da je na raspolaganju velik broj slika koja se relativno malo razlikuju, a sve u sebi imaju žig istog vlasnika. Video zapisi obično dolaze u visoko-sažetom obliku. Najčešće je to MPEG, MPEG2, ili u novije vrijeme MPEG4 format. Dekodiranje i ponovno kodiranje cjelokupnog zapisa bi moglo biti neprihvatljivo zbog računskih, vremenskih, ali i distributivnih ograničenja. Ako je potrebno izvesti fingerprinting video zapisa, tj. individualno označiti svaku distribuiranu kopiju (sa oznakom kupca, na primjer), onda je bitno da se označavanje može izvesti u sažetoj domeni. Zbog toga su razvijeni sustavi koji mogu ubacivati žigove direktno u sažetoj formi zapisa. Zbog veličine zapisa pri oblikovanju sustava vodenog žiga za video zapise bitno razmatranje je i brzina samog ubacivanja žiga. Ako je za ubacivanje u jednu sliku potrebno relativno puno vremena, sustav može biti praktično neupotrebljiv za video zapise, pogotovo za fingerprinting namjene. Slijedi prikaz nekih tehnika označavanja video zapisa koje uzimaju u obzir specifičnosti i razlike između video zapisa i nepokretnih slika. Swanson et al. [32] primjećuju da primjena istog žiga za sve slike čini žig statistički ranjivim. Štoviše, takav žig bi bio neovisan o sadržaju, tj. ne primjenjuje se prilagođavanje sadržaju, što također negativno djeluje na otpornost žiga. No, s druge strane, nije dobro ni ubacivanje neovisnih žigova u sve slike. Područja u svakoj video slici u kojima nema pokreta ostaju ista kroz niz slika, što bi omogućilo napad statističkim uspoređivanjem ili računanjem srednje vrijednosti što bi eliminiralo žig. Stoga autori predlažu korištenje žiga koji bi imao stalnu i promjenjivu komponentu. Komponente se generiraju pomoću vremenske transformacije valića svake video scene. Transformacija valića primijenjena uz vremensku os video zapisa daje multirezolucijski vremenski prikaz zapisa. Ona se sastoji od visokopropusnih i niskopropusnih slika. Niskopropusne slike daju statičke komponente slike, dok visokopropusne daju pokretne komponente slike. Žig se ubacuje u obije komponente, tako da niskopropusna slika ima konstantni žig kroz cijelu scenu, a visokopropusna slika daje vremenski vrlo lokaliziran žig koji se mijenja iz slike u sliku. Kombinacija ta dva pristupa rezultira u rješavanju uočenih problema. Pri generiranju žiga se koriste maskirajuća svojstva za oblikovanje pseudo-slučajnih sekvenci koje čine žig. Opsežna istraživanja koja su autori proveli pokazuju da su pretpostavke o otpornosti i mogućnostima detekcije žiga stvarno ostvarive. U [33] Zhou prikazuje sustav namijenjen fingerprintingu (označavanju individualnih kopija) MPEG zaisa koristeći jednostavan sustav raspršenog spektra, no uz slijedeće bitne karakteristike: · Autorov potpis se ubacuje koristeći tajni ključ, no informacije o zaštiti se ubacuju koristeći autorov javni ključ, tako da ih bilo tko može detektirati. · Sa ciljem smanjivanja količine ubačenih podataka, uznačavaju se samo I-slike video sekvence. No, pri dekodiranju žig se replicira i u P i B-slikama. · Svaki biti žiga se redundantno ubacuje u područja niske frekvencije koja su perceptualno najbitnija. Detekcija ubačenog žiga ne zahtjeva prisutnost neoznačenog sadržaja, te se za pouzdanu detekciju oslanja na redundantnog ubačenog žiga. Hartung i Girod [34] predlažu sustav koji rješava problem javne detekcije i verifikacije žiga, ali u isto vrijeme ne omogućujući brisanje žiga. to se postiže na način da se samo djelovi žiga učine javnim. Sustav se kombinira sa brzim ubacivanjem žiga u sažetu domenu što omogućuje ubacivanje žiga u stvarnom vremenu u sustavima distribucije. Žig se oblikuje kao niz redundantnih binarnih vrijednosti raspršenog spektra diretkno ubačenih u MPEG sažeti (DCT) video zapis. Za potpuno dekodiranje žiga potrebno je poznavanje tajnog ključa koji je korišten za odabir vrijednosti u koje je ubačen. No, za javno dekodiranje dijela žiga predlaže se pronalaženje takvog ključa za generiranje vrijednosti koji pogađa svaku n-tu vrijedsnost žiga, kod su ostale vrijednosti slučajne. Hartung et al. [35] koriste svojstva MPEG-4 sustava kodiranja za ubacivanje vodenog žiga. Točnije, koriste se skupovi podataka animacije lica. MPEG-4 standard uključuje definiciju općenitog lica koje može biti animirano pmoću parametara animacije lica (facial animation parameters – FAPs). Konkretno lice se može opisati korištenjem parametara definicije lice. To omogućuje sažimanje scena sa prikazom lica (glumca koji govori, recimo) na nekoliko kilobita po sekundi, što je značajno manje od maksimalnog sažimanja algoritama baziranih na valnim oblicima. Postoji 66 FAP-ova. Oni uključuju globalne parametre kretanja glave (nagib, nakošenje i slično) i parametre lokalnih facijalnih pokreta (položaj očnih kapaka, otvaranje usta i slično). Moguće je definiranje i novih, makro-FAPova koji su kombinacija postojećih. Također je moguće kodiranje samo podskupa svih FAPova pri animaciji glave. Algoritam se koristi procjenama vrijednosti FAP parametara pomoću modela glave. Trodimenzionalna scena korištena za procjenu parametara se sastoji od modela kamere i modela galve. Sustav koristi iterativni postupak za definiranje parametara. Parametri se pretpostave, napravi se model prema tim parametrima i zatim se model uspoređuje sa stvarnom slikom. Usporedba se profinjuje u idućoj iteraciji. Za ubacivanje žiga u FAP podatke koristi se pristup raspršenog spektra, tako da se jedan bit žiga ubacuje u nekoliko FAP vrijednosti. Eksperimentalno je utvrđeno da je bez primjetnih smetnji moguće izmijeniti parametre za nekoliko postotaka. Brzina protoka podataka ovisi o količini prenesenih FAP vrijednosti. Za detekciju žiga se koriste originalni podaci. Moguće je detektirati žig čak i u nesažetoj verziji video zapisa, no prije detekcije je potrebno izračunati vrijednosti parametara, što se svodi na MPEG-4 sažimanje video zapisa. Hartun i Girod [36] su razvili sustav i za označavanje MPEG-2 sažetog video zapisa. Princip iza MPEG-2 kodiranja je hibridno kodiranje sa kompenzacijom pokreta. Označavanje se obavlja u izlučenim DCT 8x8 blokovima koji se nalaze u sažetom video zapisu. Potencijalni kandidati za označavanje se dekodiraju, označavaju te ponovo DCT kodiraju. Blok ostaje kodiran ako je broj bitova koji zauzima manji ili jednak broju bitova neoznačenog bloka. U suprotnom, odustaje se od označavanja tog bloka. Testiranje pokazuje da je moguće označiti 15 do 30% DCT koeficijenata, ovisno o strukturi scene, te jačini sažimanja. Problem u označavanju direktno u sažetom signalu je degradacija predviđanja pokreta. Male promjene u vrijednosti DCT koeficijenata se s vremenom akumuliraju i uzrokuju nepoželjne pomake u slici. Zbog toga se dodaje signal redukcije pomaka koji kompenzira ubacivanje podataka vodenog žiga i spriječava vremensku degradaciju slike. Istraživači su predstavili i druge sustave označavanja video signala, no oni se uglavnom svode na primjene ideja i postupaka razvijenih za nepokretne slike. Predstavljene metode obično uključuju proširenje korištenih transformacija sa 2D na 3D transformacije, gdje se vremenska os promatra kao treća prostorna koordinata. Tada je moguće primijeniti metode za postizanje invarijantnosti, bayesov pristup detekciji, raspršenje spektra i slično. No, ovakve metode koje ne uzimaju u obzir specifičnosti video signala (količina podataka, redundantnost slijednih slika) obično su vrlo ranjive na napade oblikovane tako da te specifičnosti iskoriste za poboljšanje napada.
6.3. Sustavi zaštite vlasništva zvučnih zapisa
Područje zaštite vlasništva audio zapisa se počelo razvijati relativno kasno, no eksplozija popularnosti digitalnih zvučnih zapisa, prvenstveno MP3 formata, u zadnjih par godina je učinila zaštitu vlasništva audio zapisa pomoću vodenih žigova područjem trenutno najvećih istraživačkih napora. Uzrok tome je jasna i hitna potreba glazbene industrije za sustavima koji bi omogućili sigurnu distribuciju i reprodukciju zvučnih zapisa. Nekoliko komercijalnih sustava je u pripremi ili su već predstavljeni javnosti, a najpoznatiji je SDMI (Secure Digital Music Initiative) iza kojeg stoji konzorcij kompanija iz glazbene, računalne i elektroničke industrije, predvođeni sa Recording Industry Association od America (RIAA). Druge sustave su predložili IBM (Madison project, Cryptolope), Sony (MagicGate, OpenMG) i drugi. No, gotovo svi ti predloženi sustavi još ne pružaju zaštitu i lakoću korištenja koja bi bila potrebna za svakodnevnu primjenu. Slijedi prikaz nekoliko predloženih sustava zaštite zvučnih zapisa pomoću vodenog žiga. Bassia i Pitas [37] opisuju sustav koji koristi prostornu (amplitudnu) domenu za ubacivanje žiga. Funkcija ubacivanja žiga u pojedinačne uzorke je oblika:
y(i) = x(i) + f(x(i), w(i)) (36)
gdje je x(i) uzorak originalne slike, f(x(i), w(i)) jednostavna funkcija za prilagođavanje jačine ubacivanja vrijednosti žiga w(i), a y(i) označeni uzorak. Detekcija ubačenog žiga se obavlja na slijedeći način. Sa S označimo slijedeću sumu:
Kombiniranjem dvije prethodne jednadžbe dobijamo:
Prva suma u jednadžbi je nula ako generator slučajnih brojeva koji se koristi za generiranje vrijednosti žiga daje jednak broj diskretnih izlaznih vrijednosti i ako je srednja vrijednost žiga nula. U slučaju da se neke vrijednosti pojavljuju češće od ostalih, uzima se u obzir ta razlika, označena kao Dw. Jednadžba tada glasi:
Prva suma se aproksimira kao nula, iz razloga navedenih ranije. Ako u signal nije ubačen nikakav žig, tada je S:
S druge strane, ako je signal označen, S je tada:
No, x(i) predstavlja originalni signal koji pri detekciji ne možemo koristiti. Njega u zadnje dvije jednadžbe možemo zamijeniti sa y(i) bez unošenja velike greške. Ta zamjena dovodi do zamjene
Stoga ako tu vrijednost oduzmemo od korelacijske jednadžbe i podijelimo je sa ostatkom, dobijamo normaliziranu korelacijsku jednadžbu:
Detekcijska vrijednost se kreće od 0 do 1, no aproksimacija x(i) sa y(i) unosi određenu pogrešku koja proširuje taj interval na malo veći, [0-e,1+e]. Eksperimentalno je utvrđena granica od 0.5 kao granica odluke o postojanju žiga u signalu. Eksperimentalnim provjeravanjem otpornosti sustava je utvrđeno da je sustav otporan na MPEG audio sažimanje, kao i filtriranje za raznim filterima. Žig također preživljava smanjivanje frekvencije uzorkovanja na pola, kao i konverziju zapisa iz 16-bitnog u 8-bitni zapis, što je vrlo bitno jer je to tip transformacije kojima se zvučni zapisi često podvrgavaju. Swanson et al. [38] predlažu sustav koji koristi perceptualno prilagodiv algoritam koji koristi dualni žig. Žig predlažu žig dualnep prirode, to jest, ubacivanje dva odvojena žiga u zapis. Ključ za prvi žig je ovisan o autoru, te predstavlja njegov tajni potpis. Drugi ključ je ovisan o samom sadržaju i izračunava se pomoću jednosmjerne hash funkcije. Ključ ovisan o sadržaju čini krivotvorenje teško izvedivim. Kako je računalno teško invertirati hash funkciju, napadač nije u mogućnosti generirati lažni original koji sadrži željeni predodređeni žig. Sustav koristi zvučno maskiranje za adaptaciju pri ubacivanju žiga. Zvučno maskiranje je svojstvo ljudskog slušnog sustava da kada se zvučni signal čuje u prisutnosti drugog zvučnog signala slične frekvencije, ali veće glasnoće, ljudski slušni sustav ignorira tiši signal. Granica maskiranja ovisi o karakteristikama obiju signala, njihovoj frekvenciji, obliku (šum ili ton) i slično. Takav sustav maskiranja se primjenjuje u ISO-MPEG modelima što omogućuje njegovo korištenje u sustavima vodenog žiga. Označavanje zvučnog zapisa se vrši u četiri koraka: 1. Računanje frekvencijskog spektra. 2. Identificiranje tonalnih komponenti. To je potrebno jer su svojstva maskiranja različita za tonalne i ne-tonalne (šumne) komponente. 3. Eliminiranje maksiranih komponenti. Uklanjaju se komponente koje su ispod alspolutnog slušnog praga. 4. Pojedinačni i ukupni pragovi maskiranja. U ovom koraku se uzimaju u obzir maskirajući efekti slušnog sustava. Maskirajući prag za pojedinačnu frekvenciju se računa kao minimum lokalnog praga i apsolutnog praga čujnosti za svaki od 32 jednaka podpojasa spektra. Maskirajući efekti su dvojne prirode, frekvencijske i vremenske lokalizacije. Maskiranje koje uzima u obzir samo frekvencijske karakteristike ne može garantirati nečujnost ubačenog signala. Točnije, žig izračunat pomoću frekvencijskog maskiranja se vremenski širi preko cijelog analiziranog bloka. Ako je energija signala koncentrirana u kratkom vremenskom intervalu analiziranog bloka, tada žig neće bti maskiran van tog intervala. To dovodi do čujnog izobličenja, točnije pred-jeke. Vremensko maskiranje uklanja takve efekte. Za ubacivanje žiga se koristi FFT transformacija. Testiranja koja su proveli autori na nekoliko signala različite prirode pokazuju da je sustav otporan na razne manipulacije sa signalom. Testirane manipulacije uključuju dodavanje šuma oblikovanog prema samom žigu, MPEG sažimanje te razni zvučni filteri. U sustavu koji predlažu Kirovski i Malvar [07] koristi se tehnika raspršenog spektra poznata iz sustava zaštite drugih tipova multimedijalnih zapisa. Sustav kao domenu označavanje koristi moduliranu kompleksno preklapajuću transformaciju (modulated complex lapped transform – MCLT), koja je u biti dvostruko uzorkovani DFT skup filtera, koji se koriste zajedno sa prozorima analize i sinteze koji garantiraju dobru rekonstrukciju signala. Za označavanje se koristi samo fekvencijsi pojas od 2 do 7kHz kako bi se minimiziralo efekte signala nosioca kao i osjetljivost na sažimanje i smanjenje frekvencije uzorkovanja. Autori također predviđaju korištenje perceptualnog maskiranja. Za svaki MCLT koeficijent vjerojatnost da će biti čujan izbosi 0.6 upravo u korištenom opsegu od 2-7kHz. Autori uočavaju problem promjene čujnosti koeficijenata nakon označavanja. Koeficijenti koji su ispod praga čujnosti, ali blizu njega, mogu biti povećani preko praga čujnosti ako se ubaci pozitivna vrijednost žiga. Slično je i sa koeficijentima koji su za malu vrijednosti poviše praga čujnosti. To može dovesti do grešaka pri korelaciji vrijednosti žiga jer se može dogoditi pogrešna procjena čujnosti koeficijenta. Autori predstavljaju korelator koji uzima u obzir moguće promjene u čujnosti koeficijenata. Velika pažnja se poklanja oblikovanju sustava tako da pokazuje visoku razinu otpornosti prema desinkronizacijskim napadima. To se postiže redundantnim ubacivanjem bitova žiga, i to dvostrukom redundancijom, i frekvencijskom i vremenskom. Prema ispitivanjima koji su proveli autori, sustav je otporan na velik broj manipulaciju, uključujući sve testove koje je definirao SDMI konzorcij. Xu et al. [39] su razvili sustav za označavanje zvučnih zapisa kodiranih u MP3 formatu. S obzirom da bi označavanje direktno u sažetoj domeni bilo neotporno na jednostavan postupak re-sažimanje, a potpuno dekodiranje, označavanje pa ponovno sažimanje sadržaja računalno neprihvatljivo autori predlažu kompromisno rješenje. Prema njihovom sustavu žig se ubacuje u djelomično dekodiranu domenu sa visokim stupnjem prilagođavanja žiga sadržaju. Sažeti zvuk se prvo dijeli na okvire sukladno algoritmu sažimanja. Svi ovkiri se dekodiraju nakon čega se vrši izlučivanje karakteristika prema psihoakustičnim modelima sa ciljem određivanja svojstava i praga maskiranja. Prema svojstvima i pragu maskiranja koristi se unaprijed određena banka filtera kako bi se odredili okviri koji su pogodni za ubacivanje žiga. U odabrane okvire se ubacuju bitovi žiga. Nakon označavanja, izmijenjeni okviri se ponovo kodiraju te ubacuju u originalni zapis umjesto neoznačenih okvira. Postupak dekodiranje žiga je ostvaren na sličan način. Ovim načinom kodiranja žiga postiže se otpornost kao i kod modela sa potpunim dekodiranjem i kodiranjem signala, kao i dobar dio brzine (postupak kodiranja znatno jednostavniji i brži od postupka kodiranja). Označavanje pomoću korištenja jeke [57] de bazira na slijedećoj ideji: dodaje se ponovljeni signal komponente zvuka sa dovoljno malim pomakom, početnom amplitudom i brzinom stišavanja da bude neprimjetan. Bit žiga se kodira variranjem pomaka ponovljenog signala. Tehnika kodiranja pomoću jeke funkcionira za neke vrste signala jer jeka jako malog kašnjenja (reda veličine 1ms) se ili uopće ne čuje ili se čuje kao rezonancija koja može biti prihvatljiva za neke vrste zvučnih signala (ali i potpuno neprihvatljiva za druge). Prijelaz između jednog pomaka na drugi (to jest, sa nule na jedinicu i obratno) se izvodi pomoću miješala signala. Izvedba tog miješala je kritična za izbjegavanje prekida signala koje bi dovele do čujnih poremećaja u zvuku (klikovi i pucketanja). Označavanje zvučnih signala je moguće i pomoću modulacije faze signala. Funkcionira na način da se zamijeni faza početnog zvučnog segmenta sa jednom od dvije referentne vrijednosti, koje predstavljaju nulu i jedinicu. Da bi promjena u fazi bila što neprimjetnija, faze predthodnih i slijedećih segmenata se prilagođavaju tako da se posotjeći fazni odnosi zadrže. To je stoga što je ljudski sluh jako osjetljiv na relativne fazne pomake, ali prilično neosjetljiv na apsolutne fazne vrijednosti.
7. Sustavi zaštite integriteta
Kako je zaštita integriteta pomoću sustava lomljivih žigova predmet relativno manjeg obima istraživanja od otpornih žigova, tako je i broj predloženih sustava relativno mali. No, klasifikacija s obzirom na domenu ubacivanja žiga i dalje predstavlja logičan način prikaza razlika među sustavima lomljivih žigova. Za razliku od otpornih žigova, prilično velik broj tehnika se oslanja na ubacivanje u prostornu domenu, dok samo rijetki upotrebljavaju transformiranu domenu. Ako uzmemo u obzir različitost namjena otpornih i lomljivih žigova, razlog postaje jasan: prostorna domena je najosjetljivija na promjene, a promjene u prostornoj domeni su upravo ono što i želimo detektirati. Kao što će biti pokazano, sustavi koji koriste transformirane domene gotovo u pravilu pripadaju klasi polu-lomljivih žigova.
7.1. Označavanje u prostornoj domeni
Rani sustavi koriste tehnike označavanja u najmanje značajnim bitovima sadržaja. Primjer takvog sustava je dan u [40]. Bitne slabosti sustava su lakoća kojom se zaobilazi sigurnost koju sustav pruža, kao i nemogućnost korištenja sažimanja sa gubitkom bez oštećenja žiga. Wolfgang i Delp [41]. proširuju prethodnu ideju i postižu otpornost na sažimanje i lokalizaciju izmjena koristeći VW2D tehniku. Žig se ubacuje dodavanjem bipolarne m-sekvence u prostornoj domeni. M-sekvence su najveći kodovi koji se mogu generirati pomoću posmičnog (shift) registra zadane duljine. Oni postoje za sve cjelobrojne vrijednosti n sa periodom N=2n-1 i jednostavno se generiraju povezivanjem puteva povratne veze u posmičnom registru duljine n. Međusobna korelacija između pomaknutih vrijezija m-sekvenci daje –1, dok auto-korelacija daje duljinu m-sekvence. To svojstvo se koristi pri detekciji ubačenog žiga. Wong [42] opisuje lomljivu tehniku koja koristi zapis karakteristika pomoću hash funkcije. Koristi se hash vrijednost slike, dimenzija i ključa označavanja tokom označavanja u ravni najmanje značajnog bita. To se radi na način da kada se detektoru zadaju točan ključ i neizmijenjena označena slika on prikaže jednobitni logo ili poruku. Ova tehnika ima lokalizacijska svojstva i može identificirati područja gdje su pikseli modificirani. Yeung i Mintzer [43] predlažu tehniku koja također koristi jednobitni logo za verifikaciju slike. No, tehnika je složenija od običnog ubacivanja u ravninu najmanje značajnog bita. Ključ označavanja se koristi za generiranje pseudo-slučajne tablice (jedna za svaki kanal ili komponentu boje) koja kontrolira kako će se mijenjati podaci u sadržaju. Nakon što je proces ubacivanja završen, proces difuzije greške se koristi za širenje efekata izmjene piksela, što žig čini teško primjetnim. Sigurnost ove tehnike ovisi o težini pogađanja tablica. Pretraživanje prostora mogućih tablica može biti drastično ubrzano ako se zna logo koji je korišten za označavanje.
7.2. Označavanje u transformiranoj domeni
Korištenje transformirane domene (DCT, FFT, wavelet i slično) za ubacivanje žiga je uobičajen postupak u sustavima otpornih žigova, jer se time značajno poboljšavaju njihova svojstva. Transformirane domene se također upotrebljavaju u algoritmima za sažimanje sa gubitkom. No, postoje izvjesne prednosti za korištenje transformirane domene i za lomljive žigove, prvenstveno za polu-lomljive žigove. Mnogi sustavi polu-lomljivih žigova se adaptiraju iz sustava sažimanja, pa je moguće ubacivanje žiga u sažetu domenu. Svojsva transformacije se mogu iskoristiti za karakteriziranje način na koji je sadržaj oštećen ili izmijenjen. Također, neke primjene mogu zahtijevati da žig bude otporan prema nekim vrstama izmjena (na primjer promjene u kontrastu ili svjetlini), a da druge detektira (lokalne izmjene piskela). Wu i Liu [44] opisuju tehniku koja se bazira na izmijenjenom JPEG koderu. Žig se ubacuje modificiranjem kvantiziranih DCT koeficijenata prije entropijskog kodiranja. Koristi se specijalna tablica binarnih vrijednosti (koje su odabrane tako da osiguraju nevidljivost) za podjelu prostora svih mogućih vrijednosti DCT koeficijenata u dva skupa. Ti skupovi se koriste za modificiranje vrijednosti koeficijenata tako da se zakodira jednobitna slika (logo vlasnika, na primjer). Da se smanje efekti naglašenih blokova predlaže se izbjegavanje DC koeficijenta, kao i previše malih vrijednosti. Kundur i Hatzinakos [45], te Xie i Arce [46] predlažu tehnike koje se baziraju na transformaciji valića. Kundur i Hatzinakos ubacuju žig modificiranjem kvantizacijskog procesa Haar wavelet transformacije, dok Xie i Arce selektivno ubacuju bitove žiga nakon sažimanja koristeći SPIHT algoritam. Dekompozicija slike na valiće sadrži i frekvencijske i prostorne informacije o slici, te stoga žigovi ubačeni u domeni valića imaju prednost mogućnosti lociranja i karakteriziranja izmjena u označenoj slici.
8. Napadi na sustave vodenih žigova
Paralelno sa naporima za razvijanje boljih i otpornijih žigova, vrše se istraživanja raznih metoda napada, falsificiranja i uklanjanja vodenih žigova. Slično kao i u kriptografiji, da bi neka tehnologija vodenih žigova bila priznata kao upotrebljiva u praktičnoj primjeni, potrebno je istražiti sve načine koji bi mogli biti iskorišteni za zloupotrebu ili zaobilaženje zaštite koju oni pružaju. Istraživanje mogućih napada na sustave i definiranje slabih točaka predloženih sustava ima pozitivnu stranu u tome što uzrokuje istraživanje sustava koji bi bili otporni na njih.
8.1. Napadi na otporne žigove
Proučavajući moguće napade na sustave otpornog vodenog žiga uočava se da oni pripadaju u četiri međusobno različite skupine: napadi eliminacije, sinkronizacijski napadi, kriptografski napadi te napadi na protkol. Na slici 6 je prikazana klasifikacija napada.
SLika 6: Klasifikacija napada
8.1.1. Napadi eliminacijom žiga
Napadi eliminacije za cilj imaju potpuno uklanjanje žiga iz označenog sadržaja. Jednostavni tipovi napada eliminacijom pokušavaju onesposobiti žig manipulacijom kompletnog sadržaja, bez pokušaja da se identificira ili izolira sami žig. Napadi uključuju općenite linearno i nelinearno filtriranje, sažimanje sa gubitkom, dodavanje šuma, kvantizacija u prostornoj domeni, digitalno-analogne konverzije, gamma korekcije i slično. Naprednija klasa napada eliminacijom promatra ubačeni žig kao šum sa određenom statističkom distribucijom i pokušava procijeniti kakav je bio originalni, neoznačeni sadržaj. Efikasni napadi eliminacije modelirani prema tehnikama uklanjanja šuma uključuju filtriranje srednjim vrijednostima (median filtering), visokopropusno filtriranje i neliarno rezanje. Voloshynovskiy et al. [47] predlažu prostorno predviđanje žiga kroz proces filtriranja koji se bazira na maksimalnom a posteriori (maximum a posteriori – MAP) predviđanju žiga kojem slijedi remodulacija koja treba dodati nejnepovoljniji oblik distribucije šuma za određeni detektor žiga. MAP predviđanje pokušava odrediti kolika je najveća moguća količina šuma koja se može ubaciti u zadani sadržaj a bez da se poremeti kvaliteta sadržaja. Neki napadi eliminacije uzimaju u obzir tehniku ubacivanja te nastoje razviti protu-tehniku koja bi ubačeni žig efikasno izbacila, bez obzira na njegov sadržaj. Primjer takvog napada je dan u [48]. Autori izlažu napad na sustav označavanja audio zapisa pomoću dodane jeke (sustav je opisan u poglavlju 6.3.). Napad se sastoji od uklanjanja jeke pomoću cepstrum analize, iste metode koja se koristi u detekciji žiga.
8.1.2. Sinkronizacijski napadi
Za razliku od napada eliminacije, sinkronizacijski napadi se ne vrše sa namjerom uklanjanja žiga, nego njegovim izobličenjem preko prostornih i vremenskih izmjena u označenom sadržaju. Napadi pokušavaju prouzročiti gubitak sinkronizacije detektora sa ubačenim žigom. To rezultira nemogućnošću detekcije žiga, iako je on još uvijek prisutan u sadržaju. Geometrijski napadi su plod početnih istraživanja ranjivosti sustava vodenih žigova. Napadi se izvode primjenom raznih vrsta lokalnih i globalnih izmjena u označenom sadržaju. Postoje brojni napadi koji se mogu svrstati u ovu kategoriju a uključuju: rotacije, translacije, skaliranje, nagib i slične operacije kod slika, ubrzavanje ili usporavanje kod audio i video zapisa i slično. Prva dva programa za testiranje otpornosti žigova, Unzign i Stirmark koriste upravo geometrijske napade. Unzign [49] ubacuje lokalne desinkronizacije (jitter) piksela, što je vrlo efikasan način napada na sustave koji koriste označavanje u prostornoj domeni. Desinkronizacija se ostvaruje dupliranjem i brisanjem redova piksela. Stirmark [50] ubacuje lokalne geometrijske poremećaje pored globalnih geometrijskih transformacija. Primjeri rada sustava StirMark je dan na Slici 7. Za slike koje prikazuju prirodne motive Stirmark je vrlo efektan alat jer ubacuje gotovo neprimjetna izobličenja u sliku, ali ipak jako efikasno remeti sinkronizaciju detektora sa slikom. Tek odnedavno su predstavljeni sustavi koji su otporni na ovakav tip napada.
Slika 7: Slika prije i poslije napada StirMark sustavom
Još jedna efikasna vrsta sinkronizacijskog napada je takozvani 'mozaik' napad. Napad je namijenjen onesposobljavanju web tražilica da identificiraju postojanje žiga u slici. Izvodi se tako da se slika koja sadrži žig podijeli na određeni, dovoljno veliki broj pod-sličica potreban da detektor ne može otkriti žig u slici. Na web stranici ti djelovi se pomoću HTMLa iscrtavaju tako da se priljube pa slika izgleda cijela. Iako je slika prikazana u cjelosti, detektor je ne može identificirati. Obrana od sinkronizacijskih napada se uglavnom svodi na razvijanje detektora povećane složenosti koji analitički, heuristički ili invarijantnošću nastoje otkriti, invertirati ili neutralizirati provedene transformacije. Nekoliko tehnika za obranu od ovakvih napada su opisane u poglavlju 5.7.
8.1.3. Kriptografski napadi
Kriptografski napadi su vrlo slični napadima korištenima za napade na kriptografske sustave. Postoji nekoliko tipova kriptografskih napada: traženje ključa sirovim pretraživanjem, collusion napad, stapanje slika i Oracle napad. Traženje ključa sirovim pretraživanjem iskorištava činjenicu da većina sustava sigurnost polaže u skrivanje tajnog ključa. Napad se izvodi tako što se sustavno pretražuje prostor ključeva uzastopnim pokušajima dekodiranja sa svakim od mogućih ključeva. Zaštita od takvog napada je korištenje algoritma za generiranje ključa koji pruža najveći prostor za izbor ključa. To obično znači odabir ključa najveće moguće dužine. Kalker [51] analizira ranjivost prema procjeni ubačenog žiga pomoću detektora za sustave vodenog žiga koji pružaju javno dostupne detektore po principu crne kutije. Pretpostavlja se da je izlaz detektora binarna odluka – "žig prisutan" ili "žig nije prisutan". Za dani označeni sadržaj i detektor, predlaže se metoda koja omogućuje procjenu tajnog žiga i to sa kompleksnošću koja je kvadratična u odnosu na broj uzoraka, što je čini računalno prihvatljivom. Osnovna ideja je da se postupno degradiraju označeni podaci X0, na primjer kompresijom, dok detektor ne uspije pronaći žig W u oštećenoj verziji X1. Ta verzija je onda pouzdano na rubu prepoznatljivosti detektora. Ovo verziji signala X1 dodaju se različiti slučajni signali Vi. Ako detektor pronalazi žig u verziji X1 + Vi, Vi se uzima kao hipoteza žiga W. Ako detektor ne može detektirati žig u sadržaju X1 + Vi, onda se –Vi uzima kao hipoteza žiga W. Postupak se ponavlja N puta. Na kraju, iz pohranjenih mogućih verzija žiga Vi, i=1...N računa se srednja vrijednost i tako se dobija procjena žiga W. Prema prikazanim rezultatima, ova procjena je obično vrlo bliska stvarnom žigu. Autori zaključuju da tehnike vodenog žiga koje daju javni detektor prema njihovim istraživanjima nisu sigurne. Slična vrsta napada je takozvani Oracle napad [52]. Napad je moguć ako je dostupan detektor ciljanog sustava. Napad se sastoji od dva dijela. Prvo se u sliku postupno, u malim koracima, ubacuju razna izobličenja sve dok se ne nađe granica nakon koje detektor više ne prepoznaje žig u slici. Nakon toga se izobličenja variraju sa namjerom da se pronađu izobličenja koja najviše utječu na sposobnost detektora da prepozna žig, tj. ona koja uzrokuju detektor da prelazi granicu prepoznavanja ubačenog žiga. Sustavnim analitičkim ispitivanjem raznih vrsta izobličenja mogu se identificirati ona na koje je sustav najosjetljiviji, te tako konstruirati napad koji bi bio najefikasniji, a u isto vrijeme najmanje štetan po kvalitetu sadržaja. Ovakva vrsta napada vrlo efikasno identificira slabe točke u otpornosti određenog sustava. Obrana od ovakvog napada se svodi na podizanje otpornosti sustava do te točke da ubacivanje izobličenja prije uzorkuje neprihvatljivu degradaciju kvalitete sadržaja nego onemogućavanje detektora da prepozna žig. Napadi pomoću stapanja više kopija pokušavaju onesposobiti žig na način da se iskoristi više kopija istog sadržaja označenog različitim žigovima (koji identificiraju kupca, na primjer) i pomoću njih računanjem srednje vrijednosti svih kopija. Kako su zapravo jedine razlike među kopijama različiti žigovi, njihova energija se umanjuje stapanjem u jednu kopiju. Ako je broj dostupnih kopija dovoljan, vrijednosti žigova se gube. Posljednja vrsta napada, napad udruživanjem, također koristi nekoliko kopija sadržaja, no pristup je drugačiji: iz svake pojedinačne kopije se uzima dio podataka koji se koristi za izgradnju nove kopije sadržaja koja bi bila sačinjena od malog dijela svake od kopija. Otpornost na ovu vrstu napada ovisi o otpornosti sustava na rezanje sadržaja. Istraživanja su pokazala da je većina sustava podložna toj vrsti napada kada je na raspolaganju 10 do 20 različito označenih kopija sadržaja. U slučaju distribucije video signala na zahtjev (video on demand) gdje bi se koristio fingerprinting za svaki pojedinačni zapis, vjerojatno bi bilo moguće dobaviti 10 do 20 različitih kopija istog video zapisa.
8.1.4. Napadi protokola
Napadi u posljednjoj grupi, napadi na protokol, ne pokušavaju niti uništiti ubačene podatke, niti onesposobiti detekciju ubačenog žiga pomoću lokalnih ili globalnih manipulacija sa sadržajem. Umjesto toga, cilj ovih napada je iskoristiti nedostatke u samom konceptu zaštite na način da se prouzroči nesigurnost ili nemogućnost odlučivanja tko je pravi vlasnik označenog materijala. U ovu skupinu pripadaju napadi pomoću invertibilnosti i napadi pomoću kopiranja. Prvi napad na protokol je predstavili su Carver et al. [52]. Predstavljeni koncept iskorištava invertibilnost žigova da bi pokazao nemogućnosti dokazivanja vlasništva pomoću takvih žigova, a izvodi se tako što se konstruira lažni originalni sadržaj. Postupak je slijedeći. Neka Alice svoju originalnu sliku I koristeći invertibilni sustav označi svojim žigom w:
I + w = I' (44)
i time dobije označeni sliku I'. Simbol '+' označava funkciju ubacivanja. Alice označenu sliku pusti u komercijalnu distribuciju putem interneta, gdje je dobije i Bob. Ako Bob označi sliku sa svojim žigom, Alice uvijek kao dokaz vlasništva može dati svoju originalnu sliku koja ne sadrži Bobov žig (jer Bob do nje ne moće doći). No, vlasništvo ne može biti dokazano ako Bob može prevarom pokazati da postoje dvije originalne slike: njegova (lažna) originalna slika koja ne sadrži njegov žig, ali sadrži žig od Alice, te njena originalna slika koja ne sadrži njezin žig, ali sadrži njegov. Naizgled, to je nemoguće, jer Bob nema pristupa do stvarnog originala, koji je sigurno pohranjen kod Alice. Ali, Bob to može izvesti na način da u označenoj slici pronađe skup vrijednosti koje sačinjavaju jedan valjani žig. Bob korištenjem inverzne funkcije ubacivanja '-' iz slike izlučuje pronađeni žig i proizvodi svoj, lažni, original:
I' - ŵ = Î' (45)
Ako je sustav dovoljno otporan, time je dobio sliku Î' koja sadrži Alicein žig w, ali ne i njegov žig ŵ. S druge strane, original koji posjeduje Alice, I, ne sadrži njezin žig, ali sadrži Bobov lažni žig, jer je on uvijek i bio prisutan u slici. Time je stvorena dvojba oko vlasništva i Alice više ne može dokazati da je slika stvarno njena. Iz navedenog je jasno da imunitet na ovakav napad ima samo sustav kod kojega nije moguće pronaći valjan žig u neoznačenom sadržaju. To se postiže tako da se žig modulira sa vrijednostima koje su karakteristične samo za konkretni sadržaj, na primjer rezultat neke hash funkcije originalnog sadržaja. Autori predlažu moduliranje tako da se bitovi hash funkcije koriste kao predznak za vrijednosti žiga. Funkcija ubacivanja bi tada bila:
I + (w | h(I)) = I', (46)
a inverzna funkcija:
I' - (ŵ | h(Î')) = Î' (47)
Time se pronalaženje lažnog žiga značajno otežava jer je jako teško pronaći skup izlučenih vrijednosti žiga ŵ|h(Î') koje bi po predznacima davale točnu vrijednost hash funkcije slike nakon uklanjanja mogućih vrijednosti žiga.
Druga vrsta napada protokola je prikazana u [53]. Cilj napada je kopiranje žiga iz označenog sadržaja u ciljni, neoznačeni sadržaj bez posjedovanja nekog specifičnog znanja o tehnologiji ubacivanja žiga. Ta tehnika može biti zlouporabljena na način opisan u slijedećem scenariju. Recimo da je sustav vodenog žiga uporabljen za označavanje slike u putovnici. U sliku se ubacuje informacija o vlasniku putovnice, na primjer ime i JMBG. Cilj označavanja je jedinstveno povezivanje vlasnika putovnice sa njegovom slikom. Ako netko promijeni sliku u putovnici, nova slika nebi sadržavala potrebne informacije, te bi tako bila omogućena detekcija falsifikata. No, ako se pokaze da tehnologija ubacivanja žiga nije otporna na napad kopiranjem, onda je žig beskoristan jer se pri zamjeni slika može prekopirati i žig sadržan u originalnoj slici. Napad se sastoji od tri glavna koraka. U prvom koraku se računa predviđanje sadržaja žiga u označenom sadržaju. Umjesto direktnog predviđanja ubačenog žiga, predlaže se računanje procjene žiga pomoću algoritama za uklanjanje šuma. Drugim riječima, predviđanje žiga se provodi uzimanjem razlike između označenog sadržaja i sadržaja koji je prošao proces uklanjanja šuma. Za uklanjanje šuma se koristi ML (maksimum likelihood – najveća vjerojatnost) procjena ako nemamo nikakvog prethodnog znanja o distribuciji žiga, ili MAP (maximum a posteriori) procjena ako je poznata distribucija vrijednosti žiga. Drugi korak je procesiranje označena slika na osnovu procijenjene vrijednosti žiga. Cilj koraka procesiranja je maksimizacija energije žiga uz uvjet neprimjetnosti. Proces je sličan napadu sa ciljem eliminacije žiga, no u ovom slučaju eliminirani žig se koristi za ubacivanje u drugi sadržaj. Pri ubacivanju žiga u ciljani neoznačeni sadržaj koristi se adaptacija prema ciljnom sadržaju pomoću NVF (noise visibility function – funkcija vidljivosti šuma), koja je detaljnije opisana u poglavlju 6.1.1. Nakon adaptacije obavlja se posljednji korak – ubacivanje žiga u neoznačeni ciljani sadržaj. Napad kopiranjem je uspješno primijenjen na dvije komercijalno raspoložive aplikacije za ubacivanje vodenih žigova. U oba slučaja je žig uspješno prekopiran iz označenog u neoznačeni sadržaj. Nove tehnologije bi trebale uzimati u obzir mogućnost napada kopiranjem, jer njegova uspješnost značajno umanjuje moguće područje primjene dotičnog sustava vodenog žiga.
Granice između ovih klasa napada ponekad su prilično nejasne, a neke vrste napada bi mogle pripadati u više grupa. Vjerojatno bi se moglo napraviti i nekoliko drugačijih podjela.
8.1.5. Protumjere i obrane od napada
Da bi sustavi vodenih žigova bili otporniji na napade, moguće je poduzeti razne mjere, od samog odabira parametara žiga, eliminiranja kriptografskih slabosti do oblikovanja žiga sa namjerom onemogućavanja napada. U ovom poglavlju navodimo neke protumjere i obrane od napada na sustave vodenog žiga. Sustavi vodenog žiga koji koriste tehniku raspršenog spektra (a to je velika većina modernih rješenja) su inherentno prilično otporni na jednostavne napade eliminacije žiga koje ne pokušavaju napasti direktno sam žig, nego cijeli označeni sadržaj. Stoga, filtriranje, sažimanje i slične operacije nisu opasnost ako su parametri sustava raspršenog žiga pažljivo odabrani. Preciznije, broj bitova unutarkojeg je jedan bit žiga raspršen ne smije biti premali, to jest mora biti dovoljno velik da prenese žig sa prihvatljivim vrojem grešaka čak i nakon primjene jakih niskopropusnih filtera. Na primjer, 7×7 kvadratni filter, koji smanjuje korelacijsku sumu na otprilike 2% za slučaj žiga distribuiranog kao bijeli šum. Za video dokumente to je prilično jednostavno postići, jer video signal sadrži veliku količinu podataka u kojoj se žig može raspršiti. Kod slika ili zvuka to može biti problem jer je tu riječ o signalu koji ima relativno manju količinu podataka. Izbjegavanje kriptoloških slabosti i ranjivosti je jako bitno da bi sustav bilo moguće primijeniti u realnim uvjetima za komerijcijalne primjene. Sustavi vodenog žiga moraju biti kriptološki sigurni, što znači da korišteni ključevi moraju biti sigurni. Na primjer, ako se koriste pseudo-slučajni generatori brojeva, ne smije biti moguće odrediti ili pogoditi strukturu ili početnu vrijednost generatora čak i od strane iskusnih napadača. Isto vrijedi i za bilo koji ključ koji sudjeluje u ubacivanju ili detekciji žiga. Postoje primjeri čak i komercijalnih sustava koji ne zadovoljavaju ovo osnovno pravilo. Jedan predstavljeni komercijalni sustav koristi dvoznamenkasti ključ pri ubacivanju i detekciji žiga. Očigledno, takav sustav je izuzetno ranjiv na najjednostavniji oblik napada, sirovim pretraživanjem svih mogućih ključeva. Oblikovanje signala žiga je najvažniji oblik obrane od mogućih napada, jer su najefikasniji napadi upravo oni koji iskorištavaju slabosti u oblikovanju signala kojim se žig ubacuje u sadržaj. Napadi udruživanjem su prijetnja gdje god se pojavljuju različito označene kopije istih podataka, tj. kada se koristi fingerprinting. Ako žigovi nemaju istu srednju vrijednost, onda je čak i sa umjerenim brojem udruženih napadača (od koji svaki daje svoj jedinstveno označeni sadržaj) moguće uništiti žig. No, kao što je demonstrirano u [54], moguće je konstruirati vodeni žig koji bi bio otporan na napada udruživanja. Ideja u osnovi je da se žig sastoji od statičke i dinamičke komponente. Statičke komponente ne nestaju računanjem srednje vrijednosti različito označenih kopija. Kodovi su oblikovani tako da za svaku moguću kombinaciju udruženih napadača postoje djelovi koda koji ne daju srednju vrijednos nula. Štoviše, iz združenih verzija moguće identificirate sve udružene napadače. Praktična loša strana ovo sustava je što se duljina predloženih kodova otpornih na združivanje eksponencijalno povećava sa brojem različitih kodova. Kompromisno rješenje je korištenje hijerarhijskih kodova koji identificiraju barem grupe korisnika. No, za video zapise, prihvatljiva duljina koda je i tako prilično velika, zbog veličine samih podataka u koje se žigovi ubacuju. Na kraju, uz sve predložene načine poboljšanja otpornosti sustava vodenih žigova na napade, za sada se ne može reći da bilo koji sustav garantira apsolutnu sigurnost, a nije ni jasno jeli takav sustav uopće moguće napraviti. Jedino što je sigurno jeste da će i napadi na vodene žigove, kao i obrane na nove napade postajati sve sofisticiraniji i kompleksniji.
8.2. Napadi na lomljive žigove
Kao i na sustave otpornih žigova, vrše se istraživanja o mogućim napadima na sustave lomljivih žigova. No, kako su njihove namjene različite, tako su i ciljevi napada različiti. Kod otpornih žigova cilj je ukloniti, onesposobiti ili na neki drugi način onemogućiti dokazivanje vlasništva pomoću otpornog vodenog žiga. Analogno tome, obrana od napada se kod otpornih žigova svodi na preživljavanje napada, dok je kod lomljivih žigova cilj samo detektiranje napada. S tim na umu, jasno je da se napadi na lomljive žigove svode na pronalaženje načina da se sadržaj izmijeni a da to sustav žiga ne detektira. Moguća je klasifikacija napada na lomljive žigove u četiri općenite skupine: napadi na sadržaj, napadi na žig, kriptografski napadi, napadi protokola. Na Slici 9 su prikazane vrste napada.
Slika 9: Klasifikacija napada na lomljive žigove
Napadi na sadržaj nastoje izmijeniti sadržaj, ali na taj način da žig i dalje potvrđuje autentičnost. Najjednostavniji napad je slijepa modifikacija označenog sadržaja, to jest, izmjena sadržaja kao da žig nije ni ubačen. Ovakav oblik napada bi svaki žig trebao lako detektirati, no uvršten je zbog toga što je to i najčešći oblik napada koji žig treba detektirati. Varijacije ovog napada uključuju rezanje i lokalizirana izmjena (na primjer zamjena jednog lica na slici sa drugim). Upravo je ta vrsta napada razlog zbog kojeg je poželjno da žig detektira ne samo oštećenost sadržaja, nego i mjesto gdje je sadržaj izmijenjen. Sofisticiranija vrsta napada na sadržaj bi bio pokušaj da se izmijeni sadržaj, ali na način da žig ostane netaknut. Neki slabiji sustavi lako detektiraju slučajne promjene u sadržaju, no mogu ne primjetiti pažljivo konstruirane promjene. Primjer bi bio sustav koji ubacuje žig neovisan o sadržaju u najmanje značajne bitove sadržaja. Pokušaj izmjene bez poznavanja pozicije žiga će vrlo vjerojatno biti otkriven. No, napadač može pokušati izmijeniti sadržaj na način da sačuva sve najmanje značajne bitove. Takav napad bi prošao neprimijećeno. Napadi na žig nastoje iskoristiti poznati valjani žig iz označenog sadržaja kao žig za drugi, proizvoljni sadržaj. Napad kopiranjem žiga je olakšan ako je moguće deducirati kako je žig ubačen. Ovakav napad može biti izveden na istom sadržaju. Prvo se žig izvuče, sadržaj izmijeni, te žig vrati natrag na isto mjesto. Još jedan tip napada na žig je pokušaj u potpunosti uništavanja žiga (možda zato da napadač može tvrditi da je sadržaj takav i dobio, te da nije nikad ni bio označivan). Da bi to postigao, napadač može pokušati dodati slučajni šum, ili primijeniti neku od tehnika za napade na otporne žigove (statistička analiza, udruživanje ili slično). Kriptografski napadi na lomljive žigove su identični kriptografskim napadima na otporne žigove. Napadač želi otkriti koji je tajni ključ korišten za ubacivanje žiga, bilo putem sirovog pretraživanja svih mogućih ključeva, bilo analizom rada funkcije ubacivanja ili njenog izlaza. Također su poznati i napadi koji uključuju sam model kojim se čuva autentičnost, za razliku od koncentriranja na konkretni žig u sadržaju. Većina napada na autentifikacijske sustave u telekomunikacijama se mogu primijeniti i na sustave vodenog žiga. Obrana od napada na lomljive žigove se općenito izvodi jačim vezivanjem na sadržaj, to jest, ugrađivanjem informacija o tome kakav je označeni sadržaj. U tom slučaju da ako napadač i uspije promijeniti sadržaj bez da promijeni žig, ili ako uspješno prekopira žig iz jednog sadržaja u drugi detektor nakon dekodiranja žiga koristi informacije koje su u njemu pohranjene da provjeri jeli sadržaj stvarno netaknut. Drugim riječima, samo postojanje netaknutog žiga ne smije biti indikacija da sadržaj nije izmijenjen. Najveća prijetnja sustavima lomljivih žigova su upravo napadi na protokol autentifikacije. Pri promišljanju optimalne obrane od takvih napada, to jest, pri samom oblikovanju sustava treba proučiti tehnike autentifikacije u telekomunikacijama i kriptografiji, gdje se problemi sa napadima i napori za obranu od njih proučavaju već desecima godina.
9. Ostvarenje programskog sustava vodenog žiga
Za praktičnu implementaciju sustava otpornog žiga sam odabrao sustav opisan u [55]. Implementiran je i sustav lomljivog vodenog žiga za zvučne zapise.
9.1. Prikaz korištenih algoritama i postupaka
Sustav robusnog žiga koji su razvili Cox et al. jedan je od prvih objavljenih znanstvenih radova na području vodanih žigova koji izričito naglašava činjenicu da je potrebno vrijednosti žiga ubaciti u perceptualno najvažnije dijelove spektra da bi žig bio otporan na manipulacije, te zbog toga posjeduje dotad nedostižan nivo otpornosti na manipulacije. Sustav je baziran na diskretnoj kosinus transformaciji. Sustav čine tri glavna procesa: generiranje žiga, ubacivanje žiga i detekcija žiga. Slijedi prikaz algoritama svakog postupka.
9.1.1. Generiranje žiga
Žig otpornog sustava je niz slučajnih realnih brojeva generiran po normalnoj distribuciji, sa zadanom varijancom i srednjom vrijednošću, te ključem koji se koristi kao početna vrijednost generatora slučajnih brojeva. Algoritam za generiranje žiga koristi polarni algoritam za normalnu distribuciju dan u [56] i izvodi se kao:
srand(iGenSeed); //postavljanje seeda za generator iGenSize>>=1; //generiramo po dvije vrijednosti odjednom i=0; while (iGenSize>0) { double dfX, dfX1, dfX2;
do //glavna petlja { dfX1=2.0*(rand()&RAND_MAX)/(RAND_MAX+1.0)-1.0; dfX2=2.0*(rand()&RAND_MAX)/(RAND_MAX+1.0)-1.0; dfX=dfX1*dfX1+dfX2*dfX2; } while (dfX>=1.0); //vrtimo dok ne dobijemo dobre vrijednosti
dfX1*=sqrt((-2.0)*log(dfX)/dfX); dfX2*=sqrt((-2.0)*log(dfX)/dfX);
dfZig[i]=dfGenMean+dfGenVar*dfX1; //distribuiranje i++; //i pozicioniranje dfZig[i]=dfGenMean+dfGenVar*dfX2); //vrijednosti žiga i++; iGenSize--; }
gdje su varijable:
- iGenSeed početna vrijednost generatora slučajnih brojeva - iGenSize broj vrijednosti (veličina) žiga - dfGenMean srednja vrijednost - dfGenVar željena varijanca - dfZig[] vektor sa generiranim vrijednostima žiga.
Pri generiranju žiga odmah se definira i vrijednosti jačine ubacivanja žiga. Žig se snima u tekstualnu datoteku slijedećeg formata:
CXSG //potpis za identifikaciju formata <veličina_žiga> <jačina_ubacivanja> <srednja_vrijednost> <varijanca> <1._vrijednost_žiga> <2._vrijednost_žiga> ... <n._vrijednost_žiga>
Datkoteka se može mijenjati u bilo kojem tesktualnom editoru, tako da je moguće naknadno mijenjati parametre ili ručno namiještati pojedinačne vrijednosti žiga.
9.1.2. Postupak ubacivanja žiga
Postupak ubacivanja žiga se odvija po slijedećim koracima: 1. Učitavanje neoznačene slike 2. Učitavanje žiga 3. Inicijalizacija matrica i prekalkulacija kosinus tablice 4. Konverzija vrijednosti piksela iz RGB prostora u YCrCb prostor 5. Računanje DCT transformacije ili učivanja snimljenih vrijednosti 6. Sortiranje koeficijenata 7. Ubacivanje vrijednosti žiga 8. Računanje inverzne DCT transformacije i snimanje označenih koeficijenata 9. Konverzija vrijednosti piksela iz YCrCb u RGB prostor
Pri učitavanju slika i žiga provjerava se odgovara li format zadanom. Slika mora biti u windows bitmap (.bmp) formatu. Alokacija i inicijalizacija potrebnih matrica (za vrijednosti DCT koeficijenata, kosinus tablica, vrijednosti piksela) se obavljaju dinamički, ovisno o veličini slike koja se označava. Prije DCT transformacije se vrši transformacija vrijednosti piksela slike iz RGB (po osam bita sa crvenu, zelenu i plavu boju) prostora u YCrCb (po osam bitova za luminanciju, te razlike luminancije crvene i plave boje), te se DCT transformacija vrši. Ovom konverzjiom postiže se dodatna otpornost žiga jer luminancija nosi veću količinu informacije od pojedinačnih komponenti boje, a osim toga dobijamo otpotnost slike na prebacivanje u monokromatsku. Konverzija se vrši prema ITU-T preporuci na slijedeći način:
Y = 0.299R + 0.587G + 0.114B + 0.5 Cb = -0.16874R - 0.33126G + 0.5B + 128.5 Cr = 0.5R - 0.41869G - 0.08131B + 128.5
gdje su R, G i B vrijednosti komponenti boja u RGB prikazu, a Y, Cr i Cb vrijednosti boja u YCrCb sustavu. Nakon pripreme vrijednosti luminancije slike pristupa se diskretnoj kosinus transformaciji. Za zadano ulazno polje podataka (u našem slučaju, pikseli slike) XMxN=[xi,j], dimenzija MxN, 2-D DCT izlazna matrica YMxN=[ym,n] istih dimenzija se definira kao:
gdje je
i k = m ili n. Navedeni oblik transformacije predstavlja jednostavno proširenje jednodimenzionalnog oblika transformacije po princpu red-pa-kolona. Sa računalnog stajališta postoje i puno efikasnije implementacije DCT transformacije, no one sa sobom obično nose ograničenja na dimenzije matrice (kvadratna, dimenzija 2x, ili oboje), što kod slika obično nije slučaj. Transformacija je računalno prilično zahtjevna, jer je za sliku dimenzija MxN uz optimalizaciju potrebno red veličine M2×N2 operacija množenja. Optimalizacija je izvršena prekalkuliranjem vrijednosti kosinus funkcije i izbacivanjem maksimalnog broja operacija iz unutrašnje petlje, pri čemu je unutrašnja petlja svedena sa 8 množenja, dva računanja kosinusa i dva zbrajanja svedena na jedno množenje i jedno zbrajanje. No, i uz takvo smanjenje potrebnog broja operacija transformacija slike dimenzija 256×192 na Duron procesoru na 600MHz traje desetak minuta, jer je ipak potrebno izvesti preko 2.4 milijarde operacija množenja. Zbog relativno velike količine vremena potrebne za računanje DCT koeficijenata, u programu postoji mogućnost snimanja izračunatih koeficijenata, tako da se pri svakom slijedećem označavanju iste slike mogu koristi već izračunati koeficijenti, što smanjuje vrijeme potrebno za označavanje na pola. Nakon konverzije slike u frekvencijsku domenu dobijamo matricu frekvencijskih koeficijenata istih dimenzija kao i slike u prostornoj domeni. Za označavanje koristimo koeficijente najvećih vrijednosti, uz isključenje DC komponenti (početni koeficijenti redova i stupaca), jer su ostali (AC) koeficijenti kodirani diferencijalno u odnosu na njih, pa je bilo kakva promjena u njihovim vrijednostima jako primjetna. Traženje najvećih vrijednosti se obavlja sortiranjem indeksa pripadajućih koeficijenata prema veličini. S obzirom da se traži n najvećih od m koeficijenata, gdje je n redovno puno manji od m, za sortiranje sam koristio modificirani bubble-sort algoritam (brži algoritmi ne daju značajno bolje rezultate pri takvom sortiranju), što daje sasvim zadovoljavajuće rezultate (vrijeme potrebno za sortiranje je zanemarivo malo). Sam čin ubacivanja vrijednosti žiga u DCT koeficijente se obavlja po formuli:
vi’ = vi(1+axi) (50)
gdje je vi’ označeni, vi i-ti neoznačeni koeficijent, a faktor jakosti ubacivanja žiga, a xi i-ta vrijednost žiga. Količina izmjene vrijednosti koeficijenta je proporcionalna veličini samog koeficijenta, što predstavlja neku vrstu adaptacije na sadržaj, po pretpostavci da se veći koeficijenti mogu više izmijeniti, i obratno. Faktor a se koristi za namiještanje jakosti ubacivanja žiga. Eksperimentalno je utvrđeno da, ovisno o slici, vrijednosti od 0.3 do 0.2 predstavljaju dobar kompromis između otpornosti i neprimjetnosti žiga. Moguće je snimiti DCT koeficijente označene slike što može biti korisno pri ispitivanju korelacije ubačenog žiga sa drugim žigovima. Time se također izbjegavaju i greške pri kvantizaciji koja se događa pri inverznoj transformaciji slike. Nakon ubacivanja žiga u DCT koeficijente, vrši se inverzna DCT transformacija. Za zadano ulazno polje frekvencijskih koeficijenata YMxN=[yi,j], dimenzija M×N, 2-D DCT izlazna matrica XMxN=[xm,n] istih dimenzija se definira kao:
pri čemu su e isti parametri kao i pri početnoj transformaciji. Sva prethodna razmatranja glede efikasnosti algoritma i optimalizaciji DCT transformacije vrijede i ovdje. Nakon inverzne DCT transformacije dobijamo označene vrijednosti luminancije slike. Potrebno je izvršiti konverziju natrag u RGB prikaz, koji se koristi za snimanje slike. Postupak konverzije je obrnut konverziji u YCrCb prikaz:
R = Y + 1.402 (Cr - 128) + 0.5 G = Y - 0.34414 (Cb - 128) - 0.71414 (Cr - 128) + 0.5 B = Y + 1.772 (Cb - 128) + 0.5
pri čemu su varijable identične kao i pri početnoj konverziji. Pri konverziji je potrebno paziti da individualne vrijednosti boja ne pređu granicu nepredznačenog osmobitnog podatka, što se može dogoditi s obzirom da su DCT koeficijenti promijenjeni, pa nam rezultantne vrijednosti nisu garantirano u dozvoljenom intervalu. Ako vrijednost piskela izađe van intervala [0,255] postavlja se na vrijednost najbliže granice. Time se gubi na preciznosti, ali je taj kvantizacijski gubitak neizbježan. Zbog toga vrijednost korelacije žiga u slici koja nije pretrpjela nimalo izmjena ipak nije jednaka 1, kao što bi očekivali, nego se kreće između 0.8 i 0.9, ovisno o jačini ubacivanja i vrijednostima žiga.
9.1.3. Postupak testiranja prisutnosti žiga
Postupak testiranja prisutnosti žiga se obavlja po slijedećim koracima: 1. Učitavanje originalne i potencijalno označene slike 2. Učitavanje žiga 3. Inicijalizacija matrica i prekalkulacija kosinus tablice 4. Konverzija originalne slike iz RGB u YCrCb prostor 5. DCT transformacija originalne slike ili učitavanje snimljenih vrijednosti 6. Sortiranje koeficijenata originalne slike 7. Konverzija označene slike iz RGB u YCrCb prostor 8. DCT transformacija označene slike ili učitavanje snimljenih vrijednosti 9. Izlučivanje vrijednosti žiga iz označene slike i njihovo snimanje 10. Računanje normalizirane korelacije izlučenog i testiranog žiga
Pri testiranju potencijalno označene slike, prvih 8 koraka se izvodi na identičan način kao i pri označavanju slike. Nakon konverzije označene slike ne vrši se sortiranje koeficijenata, jer se upotrebljavaju isti koeficijenti kao i kod neoznačene slike. Time se postiže da eventualne greške pri kvantizaciji, izobličenja pri manipulacijama sa slikom i slično ne uzrokuju uspoređivanje različitih koeficijenata, što bi sigurno rezultiralo u neprepoznavanju žiga. Ovakav pristup je uzrok velikog dijela otpornosti ovog sustava na manipulacije. Utvrđivanje mjere sličnosti između žiga koji je izvučen iz potencijalno označene slike i žiga čiju prisutnost želimo testirati se obavlja pomoću normalizirane korelacije:
gdje su ti i si individualne vrijednosti testiranog i izvučenog žiga. Vrijednost korelacije se kreće od 0.0 za potpuno različite žigove do 1.0 za identične žigove. Eksperimentalno je utvrđeno da je za žigove koji se ne nalaze u slici mjera korelacije obično ispod 0.03. Za žigove koji se stvarno nalaze u slici korelacija je obično veća od 0.5, što ovisi o vrsti manipulacije i izobličenja koje je slika pretrpjela.
9.1.4. Algoritmi sustava lomljivog žiga
Sustav lomljivog žiga je implementiran kao sustav za verificiranje zvučnih zapisa. Namijenjen je detekciji bilo kakvih izmjena u zvučnom zapisu. Sadržaj žiga je CRC32 vrijednost zapisa, uz proizvoljnu tekstualnu poruku. Žig se ubacuje u najmanje značajne bitove zapisa. Postupak ubacivanja se obavlja u slijedećim koracima: 1. Učitavanje neoznačenog zvuka, te verifikacija formata 2. Brisanje korištenih najmanje značajnih bitova 3. CRC32 kalkulacija 4. Ubacivanje vrijednosti žiga 5. Snimanje označenog zvuka
U programu se koriste standardni Windows zvukovi PCM (pulse-code modulation) formata. Zvučni zapisi mogu biti 8 ili 16-bitni, mono ili stereo, program se prilagođava formatu. Nakon učitavanja zvuka, izračunava se potreban broj bitova za ubacivanje kontrolne CRC vrijednosti i poruke koju želimo ubaciti. Ako je broj bitova nedovoljan, duljina poruke se smanjuje. Minimalna duljina zapisa je 40 uzoraka, što je gotovo u pravilu zadovoljeno. Nakon što je broj bitova (tj. broj uzoraka) poznat, brišu se najmanje značajni bitovi na potrebnom broju uzoraka. Nakon toga računa se CRC32 vrijednost. CRC32 je kontrolna suma (checksum) bazirana na provjeri cikličke redundancije (cyclic redundancy check), poznata iz telekomunikacijskih tehnologija (koristi se u osiguravanju ispravnog prijenosa u modemskim i ethernet protokolima). Rezultirajuća suma je duga 32 bita. Iako CRC32 nije kriptološki siguran kao MD4, MD5 ili slični algortimi za računanje kontrolne sume, jednostavnost i brzina izvođenja algoritma te sama primjena opravdavaju njegovo korištenje. Algoritam je opisan u ISO 3309 dokumentu, a svodi se na računanje ostatka pri dijeljenju vrijednosti ulaznih podataka sa karakterističnim polinomom. Nakon izračunavanja kontrolne vrijednosti pristupamo ubacivanju žiga. U prva 32 uzorka ubacuju se bitovi kontrolne vrijednosti. Nakon toga, u slijedećih 8 uzoraka ubacuje se broj znakova koji čine poruku, te u slijedećih Nx8 uzoraka N znakova poruke. Time je ubacivanje žiga izvršeno, te se snima rezultirajući zvučni zapis. Pri testiranju žiga originalni zapis nije potreban, jer točno znamo lokaciju bitova žiga, te se postupak testiranja svodi na obrnuti postupak ubavicanja žiga. Prvo se konstruira zapisana kontrolna suma čitanjem najmanje značajnih bitova prva 32 uzorka. Nakon toga čite se duljina poruke, zapisana u slijedećih 8 uzoraka, te nakon toga poruka pročitane duljine. Nakon što je potencijalni žig pročitan računa se kontrolna suma zvučnog zapisa. Da bi suma bila ista, potrebno je prvo iz zapisa izbrisati bitove žiga zapisivanjem nule u potreban broj prvih uzoraka. Nakon tog aizračunava se CRC32 suma zapisa te uspoređuje sa pročitanom vrijednošću. Ako se sume podudataju, možemo zaključiti da je zvučni zapis nepromijenjen. Testiranja pokazuju da je CRC32 suma osjetljiva na promjenu i jednog bita u zvučnom zapisu. Naravno, sa sigurnosne strane sustav nije posebno kvalitetan, jer napadač koji poznaje algoritam ubacivanja lako može krivotvoriti poruku ili ubacivanjem novog žiga izbrisati stari, no sustav je zamišljen samo kao demonstracija sustava lomljivog žiga, a za komercijalnu upotrebu zahtjevao bi drugačije oblikovanje, u prvom redu skrivanje lokacije žiga pomoću pseudo-slučajnog odabira korištenih uzoraka.
9.1.5. Implementacija sustava u programskom jeziku C++
Pri ostvarenju navedenih algoritama i postupaka koristio sam se programskim jezikom C++, Windows platformom i Visual C++ 6.0 razvojnom okolinom. Sam program je napisan kao višedretvena win32 aplikacija da bi se osigurala interakcija i mogućnost upravljanja tokom dugotrajnih operacija ubacivanja i detekcije otpornog žiga. Kao osnova programa koristi se CWMark klasa koja sadrži funkcije koje implementiraju sustav vodenog žiga. Prvi par funkcija služi za ubacivanje žiga:
BOOL EmbedWatermark(HWND hWnd, int iFlags, BITMAP bmSource, BITMAP bmDestination, BITMAP bmDiff, char* szSrcDCT, char* szDstDCT, char* szWMKfilename); BOOL EmbedWatermark(HWND hWnd, void* pSource, DWORD dwSize, char* szZig);
VIšestruke (overloaded) funkcije EmbedWatermark() služe za ubacivanje žiga. Funkcija ubacivanja otpornog žiga kao ulazne parametre koristi bitmape za neoznačenu, označenu te sliku izmjene u označenoj slici, pokazivače na datoteke za snimanje DCT koeficjienata, datoteku koja sadrži žig te varijablu sa zastavicama koje kontroliraju snimanje koeficijenata. Za označavanje zvučnog zapisa lomljivim žigom kao parametri su potrebni pokazivač na zapis, njegovu duljinu te pokazivač na niz znakova koji se ubacuju u zapis. Slično je ostvaren i par funkcija za testiranje žigova:
double TestWatermark(HWND hWnd, int iFlags, BITMAP bmSource, BITMAP bmDestination, char* szSrcDCT, char* szDstDCT, char* szWMKfilename); BOOL TestWatermark(HWND hWnd, void* pSource, char* szZig);
Funkcija za testiranje otpornog žiga kao parametre ima pokazivače na originalnu i označenu slike, imena datoteka sa snimljenim koeficijentima, ime datoteke sa žigom, te varijblu sa kontrolnim zastavicama. Sustav otpornog žiga ima i funkciju za generiranje žigova:
BOOL GenerateMark(HWND hWnd, char* szWMKFilename, double dfAplha, int iSize, UINT iSeed, double dfMean, double dfVar);
koja u datoteku na koju pokazuje szWMKFilename snima žig definiran sa ostalim parametrima (jačina žiga, veličina, početna vrjiednost generatora, srednja vrijednost i varijanca žiga). Sve navedene funkcije sučelja traže kao parametar rukovatelj prozorom za prikazivanje poruka o greškama i slično. Osim navedenih, u javne funkcije sučelja klase pripadaju i tri dodatne funkcije:
void ZaustaviRad(void); void OmoguciRad(void); void GetMarkParam(double* pfAlpha, int* piSize, double* pfMean, double* pfDev);
Prve dvije služe sa pokretanje i zaustavljanje dretve koja vrši ubacivanje žiga (tako da se proces ubacivanja može prekinuti), a treća služi za čitanje vrijednosti privatnih varijbli ubacivanja otpornog žiga (tako da se mogu prikazati u prozoru pri ubacivanju/testiranju). Konstruktor klase samo vrši inicijalizaciju pokazivača na matrice, tako da se ne dogodi da slučajno oslobađamo memoriju koja nije zauzeta. U privatnom (implementacijskom) dijelu klase, nalaze se varijable koje sustav koristi:
BYTE **pcYCbCr; double **pfPixeli; double **pfDCTCoef; double **pfDCTCoefZig; double **pfCosX; double **pfCosY;
koje predstavljaju pokazivače na korištene matrice,
double dfZig[2048]; double dfZigNadjen[2048]; double dfAlpha; double dfMean; double dfDev; int iMarkSize; int iIndeksi[2048];
varijable koje definiraju parametre žiga,
BOOL bTerminateWork;
zastavica koja kontrolira zaustavljanje rada funkcije ubacivanja i testiranja žiga. Osim tih varijabli, u privatnom dijelu klase nalaze se i pomoćne funkcije klase:
double **AllocArray(double, int x, int y); BYTE **AllocArray(BYTE, int x, int y); void FreeArray(double **Array); void FreeArray(BYTE **Array); void CleanUp(void); BOOL Precalc(double **pfCosX, double **pfCosY, int iImageX, int iImageY);
pomoćne fukcije za alociranje i oslobađanje matrica koje sadržavaju koeficijente transformacija i obrađene piksele slike, te prekalkuliranje kosinus tablice,
void RGB2YCbCr(BITMAP bmSource); void YCbCr2RGB(BITMAP bmDestination);
funkcije za konverziju između RGB i YCrCb formata slike, te
ULONG CRC32(char* pData, DWORD dwSize); BOOL ForwardDCT(double** pfDCT, int iImageX, int iImageY); BOOL InverseDCT(double** pfDCT, int iImageX, int iImageY); void SortDCT(double **pfDCTUnsorted, int iImageX, int iImageY);
funkcije za računanje CRC32 kontrolne sume, DCT transformacije i sortiranje koeficijenata. Klasa i pripadajuće funkcije su oblikovane tako da imaju što manje Windows specifičnih poziva funkcija, tako da se uz krajnje jednostavne izmjene (izmjena poruka o greškama, kao i dojavljivanje napredovanja funkcija ubacivanja i testiranja) klasa može prilagoditi za druge primjene (označavanje bez grafičkog korisničkog sučelja, izrada nove aplikacije, prebacivanje na druge platforme). 9.2. Korištenje programa
Program za upravljanje koristi uobičajene elemente Windows korisničkog sučelja: padajuće izbornike te dijaloge sa standardnim Windows kontrolama. Rad u programu se započinje odabirom željene funkcije u padajućem izborniku. U izborniku ‘Datoteka’ nalaze se dva produžena izbornika, ‘Slika’ i ‘Zvuk’ sa kojima se pristupa naredbama za rad sa datotekama toga tipa. Za rad sa slikama izbornik nudi tri opcije:
Slika 10: Izbornik za operacije sa slikama
Odabirom prve opcije prikazuje se dijalog za određivanje parametara ubacivanja žiga.
Slika 11: Dijalog za ubacivanje žiga
U okviru ‘Izvorna slika’ nalaze se naziv izvorne slike, te naziv datoteke koja sadrži snimljene DCT koeficijente, ako je ta mogućnost uključena. Okvir ‘Označena slika’ sadrži ekvivalentne podatke za ciljnu sliku, sa ubačenim žigom. U okviru ‘Korišteni žig’ se nalazi naziv datoteke koja sadrži žig koji ubacujemo, kao i mogućnost generiranja žiga. Odabirom bilo koje od tipki označene ‘Odaberi’ pojavljuje je standardni Windows dijalog za odabir datoteke:
Slika 12: Dijalog za odabir datoteke
Svaki dijalog je inicjializiran sa filterima za odgovarajuće datoteke, tako da se prikazuje samo onaj tip datoteke koji se traži. Odabirom tipke označene ‘Generiraj!’ pojavljuje se dijalog za generiranje žigova:
Slika 13: Odabir parametara žiga
Pri generiranju žiga je moguće zadati početnu vrijednost za generator slučajnih brojeva, ili koristiti slučajni broj. Ista početna vrijednost će uvijek generirati isti niz vrijednosti žiga. Odabirom tipke ‘Generiraj!’ na disk će biti snimljen žig sa zadanim vrijednostima. Dijalog se zatvara te u dijalogu za odabir parametara ubacivanja se ispunja polje sa nazivom novog žiga. Odabirom opcije ‘Ubaci’ započinje proces ubacivanja žiga. Proces ubacivanja se prati pomoću novog dijaloga:
Slika 14: Ubacivanje žiga u sliku
U dijalogu se prikazuju podaci o žigu, trenutni dio postupka koji se izvodi, te napredak obrade. Postupak se može prekinuti pritiskom na tipku osznačenu ‘Zaustavi!’. Zaustavljanje se ne odvija trenutno, zbog višedretvenosti programa. Nakon uspješnog ubacivanja žiga u sliku prikazuju se tri prozora, sa originalnom, označenom te slikom koja prikazuej razliku između originalne i označene slike. Slika razlike nastala ubacivanjem žiga od 1000 vrijednosti, jačine 0.2, srednje vrijednosti 0 i varijance 1 izgleda ovako:
Slika 15: Izgled tipičnog žiga
a računa se po formuli:
pDiff = 128 + 5*(pOrig – pOzn) (52)
gdje je pDiff vrijednost piksela razlike dobivena pojačavanjem razlike originala i označene slke pet puta i pomakom za +128 tako da se razlika bolje vidi. Odabir testiranja označene otvara dijalog za unos potrebnih parametara testiranja:
Slika 16: Izbornik testiranja slike
gdje su pojedine vrijednosti jednake kao i pri ubacivanju. Pokretanjem testiranja otvara se sličan dijalog kao pri ubacivanju. I testiranje je moguće prekinuti. Nakon što je su sve faze testiranja gotove, u prozoru se prikazuje rezultat korelacije originalnog i izlučenog žiga:
SLika 17: Rezultat korelacije
Sustav lomljivog žiga se koristi odabirom željene funkcije u padajućem izborniku: Slika 18: Izgled izbornika za označavanje zvučnih zapisa
Odabirom ubacivanja lomljivog žiga u zvučni zapis se otvara dijalog za unošenje potrebnih parametara:
Slika 19: Dijalog za označavanje zvučnog zapisa
Tu možemo odabrati nazive originalnog i označenog zapisa, kao i čuti ih pritiskom na tipku ‘Sviraj’. Odabirom tipke ‘Ubaci!’ obavlja se proces ubacivanja. Nakon ubacivanja moguće je testirati označeni zapis odabirom odgovarajuće mogućnosti u padajućem izborniku. Dobijamo dijalog za upravljanje procesom testiranja:
Slika 20: Testiranje zvučnog zapisa
Ako je testiranje uspješno provedeno i zvučni zapis sadrži žig koji se može pročitati prikazuje se prozor sa potvrdom neoštećenosti zapisa te se u dijalogu prikazuje tekst ubačen u zapis.
10. Eksperimentalni rezultati
Razvijeni sustav sam ispitivao na način da pokušam utvrditi koliko sustav zadovoljava zahtjeve i svojstva navedena u Poglavlju 3. Slijede rezultati istraživanja.
10.1. Ispitivanje sustava otpornog žiga
Za testiranje rada sustava uporabljena je slika veličine 256×192 koju je sinimio NASA-in svemirski teleskop Hubble, a prikazuje par galaksija, NGC 4038 i NGC 4039, poznatije kao Antene, ili Galaksije prstenastog repa. Slika je odabrana jer je prilično dinamična te ima područja ravnomjerno gradijentno obojana, kao i područja veće aktivnosti sa teskturiranim mjestima. Slika je prvo označena sa testnim žigom od 100 realnih vrijednosti, jačine ubacivanja 0.3 te srednje vrijednosti 0 i varijance 1.
Slika 20: originalna slika Slika 21: označena slika
10.1.1. Eksperiment 1: Jedinstvenost žiga
Jedinstvenost žiga je provjerena testiranjem označene slike za žigovima koji nisu u nju ubačeni, kao i sa žigom koji je stvarno ubačen. Prikaz rezultantnih korelacija je dan u Tablici 2.
Tablica 2: Testiranje jedinstvenosti žiga
Kao što tablica pokazuje vrijednosti korelatora su dvadesetak ili više puta veće za žig koji je stvarno prisutan u slici od korelacija sa nepostojećim žigovima. Zbog količine vremena potrebne za testiranje nije obavljena provjera na većem broju žigova, no Cox et al., autori sustava, su obavili testiranje na 1000 različitih žigova sa ekvivalentnim rezultatima.
10.1.2. Eksperiment 2: Skaliranje i rezanje slike
Označena slika je smanjena na 50%, te povećana na originalnu veličinu. Pri smanjivanju i povećavanju slika je zaglađena (antialias). Očevidan je gubitak finijih detalja u slici, jer je povećavanje i smanjivanje uzrokovalo niskopropusno filtriranje. Slika 22: Slika smanjena na 50% veličine
Korelator daje odziv od 0.461, što je upola manje od odziva na netaknutu sliku, ali je ipak nekoliko puta veći od odziva na slučajne žigove, tako da možemo reći da je žig detektiran. Pri tome treba imati na umu da je 75% informacija sadržano u originalnoj slici uklonjeno procesom skaliranja. Iz označene slike je izrezana četvrtina iz sredine, te zalijepljena u originalnu, neoznačenu sliku.
Slika 23: Četvrtina označene slike
Iako je u slici samo četvrtine označene slike, korelator daje rezultat od 0.15. Rezultat je slabiji nego kod skaliranja, jer niskofrekventne komponente u koje je žig ubačen ostaju bolje očuvane pri skaliranju (koje reže uglavnom visokofrekventne komponente). No, odziv korelatora je još uvijek dovoljno visok da bi mogli reći da je u pitanju pozitivna identifikacija.
10.1.3. Eksperiment 3: JPEG sažimanje
Slika je podvrgnuta JPEG sažimanju sa raznim stupnjevima kvalitete. U tablici 3 su dani rezultati odziva za razne stupnjeve kvalitete.
Tablica 3: Testovi JPEG sažimanja
Slika 24: sažimanje kvalitete 20
Kao što se vidi, slika je izgubila veliku količinu oštrine te su vrlo uočljivi blokovi u slici karakteristični za veliki stupanj JPEG sažimanja. No, odziv korelatora je jos uvijek četiri puta veći nego za bilo koji nepostojeći žig, i to u slučaju najvećeg stupnja sažimanja slike, tako da možemo reći da je u slici prisutan baš taj žig.
10.1.4. Eksperiment 4: Uobičajene transformacije signala
Na sliku smo primijenili neke od transformacija koje se obično primjenjuju na digitalne slike.
Slika 25: Monokromatsko filtriranje Slika 26: Pojačavanje svjetline za 10%
Slika 27: Povećanje kontrasta za 30% Slika 28: Povećanje intenziteta za 45%
Odziv korelatora na slikama sa provednim filtriranjima je dan u tablici 4.
Tablica 4: Ispitivanje otpornosti na filtriranja
Kao što tablica pokazuje, odziv korelatora je za sve slučajeve još uvijek značajno veći od odziva na slučajni žig.
10.1.5. Eksperiment 5: Višestruko označavanje
U označenu sliku je redom ubačeno još 4 žiga. Testiranje korelacije za originalni žig uz pristustvo dodatnih žigova je prikazan u tablici 5.
Tablica 5: Višestruko označavanje
Na slici 29 je prikazana slika sa 5 ubačenih žigova. Izobličenja uzrokovana višestrukim označavnjima su primjetna, no korelator još uvijek uspješno prepoznaje originalni žig. Također je neovisno moguće detektirati i naknadno ubačene žigove.
Slika 29: Slika sa 5 ubačenih žigova
10.1.6. Eksperiment 6: Kombinirani napad
Na sliku u koju je ubačeno 5 različitih žigova smo primijenili filtere za pojačavanje svjetline i kontrasta, filter za pikselizaciju (efektivno smanjivanje razlučivosti na pola), te povećali oštrinu slike.
Slika 30: Kombinirani napadi
I uz vidljive i vjerojatno neprihvatljive poremećaje u kvaliteti slike nastale kombiniranjem nekoliko prethodnih napada, odziv korelatora je relativno visokih 0.167. Ovakve izmjene koje su kombinacija nekoliko napada predstavljaju izazov sa kojim bi se sustav trebao suočiti u stvarnoj, komercijalnoj primjeni.
10.2. Ispitivanje sustava lomljivog žiga
Sustav lomljivog žiga ne pruža tolike mogućnosti za eksperimentiranje. Eksperimentalno je utvrđeno da je sustav u stanju otkriti promjenu u samo jednom bitu sadržaja, zahvaljujući CRC32 kontrolnoj sumi pohranjenoj u žigu. Sustav nije otporan na napade brisanja žiga novim žigom jer je lokacija žiga poznata i jednaka za sve žigove. Sustav bi mogao biti unaprijeđen korištenjem ključa kojim bi se genrirao pseudo-slučajni niz vrijednosti koje bi određivale u koje uzorke bi se spremali bitovi žiga. Isto tako, žig je trivijalno lako ukloniti u potpunosti brisanjem svih najmanje značajnih bitova zvučnog zapisa. Sustav je prikladan za korištenje samo u slučajevima kada nije očekivano zlonamjerno manipuliranje označenog sadržaja. Na primjer, za verifikaciju ispravne transmisije datoteke, ili za ubacivanje dodatnih informacija o sadržaju u zvuk (datum i mjesto snimanja, izvođač materijala i slično). 11. Zaključak
Tehnologija vodenih žigova ima potencijal ispunjenja mnogih potreba za zaštitom digitalnih dokumenata, potreba koje su svakim danom sve očitije. Pomoću vodenih žigova moguće je dokazati vlasništvo nad materijalom, ali i originalnost nekog sadržaja. Da bi vodeni žig funkcionirao kao sredstvo za dokazivanje vlasništva, on mora zadovoljiti brojne uvjete i iskazivati željena svojstva. Eksperimantima nad implementiranim sustavom otpornog žiga, baziranim na diskretnoj kosinus transformaciji (DCT), testirana su ta svojstva i uvjeti. Utvrđeno je da sustav generira jedinstveni žig i da je otporan na razne vrste manipulacija koje uključuju: skaliranje, rezanje, filtriranje (promjena svjetline, kontrasta, oštrine i slično). Sustav se također dobro ponaša pri ubacivanju nekoliko žigova: iako je u sliku ubačeno 5 žigova, sustav je u stanju razlučiti svaki od njih, što znači da su žigovi neovisni. Također je utvrđeno da je sustav otporan i na kombinaciju manipulacija, koje bi vjerojatno slika pretrpjela u realnim uvjetima. Možemo zaključiti da sustav posjeduje većinu poželjnih svojstava navedenih u poglavlju 3. Podsustav za lomljive žigove također zadovoljava osnovne uvjete koji se očekuju, no, zbog jednostavnosti implementacije ne pokazuje toliko otpornosti na zlouporabe. Ipak, sustav bi mogao biti uporabljen u slučajevima kada se zloupotrebe ne očekuju, to jest, kada bi zloupotrebe bile bespredmetne (potvrda neoštećenosti, ubacivanje dodatnih podataka u zvučni zapis i slično). Zbog rada u amplitudnoj domeni i jednostavnom algoritmu kontrolne sume (CRC32) podsustav lomljivog žiga izvodi operacije u stvarnom vremenu, što znači da bi bio primjenjiv i u slučajevima kada se traži on-line označavanje zapisa. No, ispitivanjem je utvrđeno da sustav otpornog žiga ima i slabih strana. Na primjer, geometrijske transformacije kao što su rotacija, translacija, iskrivljavanje ili slično, onemogućuju sustav da detektira žig. Problem je uočen pri pokušaju detekcije žiga u slici koja je otisnuta na štampaču i nakon toga digitalizirana. Detektor nije uspio prepoznati žig. Problem je u nedostatku sinkronizacije između korelatora i slike. Naime, žig se i dalje nalazi u slici (s obzirom da je ubačen u perceptualno bitne komponente slike teško ga je ukloniti bez velike degradacije u njenoj kvaliteti), ali ga detektor zbog geometrijskih transformacija ne može naći. Iako D/A-A/D transformacija ne unosi više izobličenja nego druge uspješno testirane transformacije, relativno nekvalitetna oprema korištena pri testiranju unosi male nelinearnosti u otiskivanju, zakošenje i nelinearnost pri digitalizaciji te onemogućuje detekciju. Problem bi se mogao rješiti složenijim detektorom koji bi pokušao invertirati pretrpljene transformacije. Postupak bi bio znatno olakšan ako bi u sliku pored žiga ubacivali i obrazac koji bi lako prepoznali, pa tako i utvrdili pretrpljene transformacije koje bi onda bilo lako neutralizirati. Na primjer, mogli bi u magnitudne komponente diskretne Fourierove transformacije ubaciti obrazac u obliku nekoliko lokalnih maksimuma. Drugi problem ostvarenog sustava je relativna sporost ubacivanja i detekcije žiga. Na Duron procesoru na 600MHz za ubacivanje ili detekciju je potrebno desetak minuta. Vrijeme se može efektivno prepoloviti korištenjem snimljenih DCT koeficijenata, no količina vremena je i dalje prepreka mnogim primjenama sustava. Ubacivanje bi se moglo ubrzati primjenom optimiranih algoritama transformacije, no oni postavljaju specijalne zahtjeve prema slici, tako da bi njihova primjena zahtijevala veće preinake u sustavu. Podsustav za lomljive žigove bi mogao biti dodatno poboljšan uvođenjem slučajnih pozicija za ubačene bitove (za razliku od početnih bitova u trenutnoj implementaciji), što bi onemogućilo velik broj zlouporaba. Također bi se mogla promijeniti domena ubacivanja žiga, što bi moglo sustav unaprijediti u klasu polu-lomljivih žigova, tako da postoji određena količina izmjena koja se tolerira (sažimanje sa gubitkom, na primjer). Također bi umjesto kriptološki relativno nesigurne kontrolne sume (CRC32) mogao biti uporabljen neki od sigurnijih algoritama kao što su MD4 ili MD5. Trenutna slaba raširenost sustava vodenih žigova se uglavnom može pripisati nedostatku potrebne infrastrukture koja bi omogućavala njihovo jednostavno korištenje i nedostatku standardiziranih testova za sustave. No, bitno je uočiti i da je za njihovu uspješnu implementaciju potrebna suradnja mnogih područja ljudske djelatnosti, od kriptogtafije, računarstva, obrade signala, preko arhitekture sklopova i programske opreme, do pravnog sustava i zakonodavstva. Ipak, iz uočenih trendova razvoja može se zaključiti da će potreba industrije za pouzdanom zaštitom multimedijskih digitalnih dokumenata sve više rasti. Razmatranja i eksperimentalni rezultati demonstrirani u ovom radu pokazuju da tehnologija vodenih žigova može poslužiti za zaštitu multimedijskih dokumenata, omogućujući pri tome veću sigurnost za vlasnike sadržaja i pružajući dodatni alat za ostvarivanje njihovih prava. No, vodeni žigovi imaju potencijal i za brojne druge namjene koje se u budućnosti mogu pokazati kao korisne i potrebne, a vjerujem da će s vremenom i tehnologija dovoljno sazrijeti da bi te primjene mogle biti ostvarene.
Bibliografija
[01] Bakos, Y., Brynjlofsson, E., Licthman, D., Shared Information Goods, Journal of Law and Economics, December 1998. [02] A.Herrigel, J.O’Ruanaidh, H.Petersen, S.Pereiera, T.Pun, “Secure copyright protection techniques for digital images”, Workshop on information hiding, LNCS, 1998. [03] S.Carver, “Zero knowledge watermark detection”, Princeton unversity [04] A. Salomaa, “Public-key cryptography”, 2nd ed. Berlin, Springer-Verlag, 1996. [05] J. K. Su, B. Girod, "Power-specrum condition for energy-efficient watermarking", International conference on image processing, 1999. [06] V.Solachidis, I.Pitas, “Circularly symmetric watermark embeding in 2-D DFT domain”, University of Thessaloniki [07] D. Kirovski, H.Malvar, “Robust covert communication over a public audio channel using spread spectrum”, Microsoft research [08] J.J.K.O’Ruanaidh, T.Pun, “Rotation, scale and translation invariant digital image watermarking”, Signal Processing, 1997. [09] J.J.K.O’Ruanaidh, G.Csurka, “A Bayesian approach to spread spectrum watermark detection and secure copyright protection for digital image libraries”, IEEE Conference on coputer vision and pattern recognition, 1999. [10] J.J.K.O’Ruanaidh, W.J.Fitzgerald, “Numerical Bayesian mathods applied to signal processing”, Series on statistics and computing, 1996. [11] R.G. van Shyndel, A.Z. Tirkel, C.F. Osborne, “A digital watermark”, IEEE International conference on image processing, vol 2, pp 86-90, 1994. [12] W.Bender, D. Gruhl, N. Morimoto, “Techniques for data hiding”, Proceedings of SPIE, vol 2420, pp 40-50, 1995. [13] I. Pitas, T.H. Kaskalis, “Applying signature to digital images”, IEEE workshop on nonlinear image and signal processing, 1995. [14] S. Voloshynovskiy, A.Herrigel, N.Baumgaertner, T.Pun, “A stohastic approach to content adaptive digital image watermarking”,1999. [15] G.Voyatzis, I.Pitas, “Applications of toral automorphisms in image watermarking”, IEEE international conference on image processing, vol.2, pp.237-240, 1996. [16] S.Pereira, T.Pun, “Fast robust template matching for affine resistant image watermarks”, University of Geneva, 1999. [17] J.J.K.O’Ruanaidh, W.J.Dowling, F.M.Boland, “Phase watermarking of digital images”, University of Dublin [18] I.J. Cox, J. Kilian, F.T. Leighton, T.G. Shamoon, “Secure spread spectrum watermarking for multimedia”, IEEE Transactions on image processing, vol. 6, no. 12, pp 1673-1687, 1997 [19] J.J.K. O’Ruanaidh, W.J. Dowling, F.M. Boland, “Watermarking digital images for copyright protection”, IEEE Proceedings on signal and image processing, vol 143, No.4, pp 250-256, 1996. [20] M.D. Swanson, B. Zhu, A.H. Tewfik, “Robust data hiding for images”, IEEE Digital signal processing workshop, pp 37-40, 1996. [21] B.Tao, B.Dickinson, “Adaptive watermarking in the DCT domain”, IEEE ICASS9, 1997. [22] J.Liang, P.Xu, T.D.Tran, "A universal robust low frequency watermarking scheme", IEEE Transactions on image processing, 2000 [23] J.Ohnishi, K.Matsui, "A method of watermarking with multiresolution analysis and pseudo noise sequences", Systems and computers in Japan vol.29, pp.11-19, 1998. [24] D.Tzovaras, N.Karagiannis, M.G.Strintzis, "Robust image watermarking in the subband or discrete cosine transform", Proceedings of 9th EUSIPCO’98 pp.2285-2288, 1998. [25] S.Pereira, S. Voloshynovskiy, T.Pun "Optimized wavelet domain watermark embedding strategy using linear programming", SPIE AeroSense 2000: Wavelet applications VII, 2000. [26] J.R.Kim, Y.S.Moon, "A robust waveletbased digital watermark using level-adaptive thresholding", Proceedings of the 6th IEEE ICIP, p202, 1999. [27] S.Tsekeridou, I.Pitas, "Embedding self-similar watermarks in the wavelet domain", Proceedings of IEEE ICASSP, 2000. [28] D. Kundur, "Improved digital watermarking through diversity and attack characterisation", Proceedings of ACM workshop on multimedia secutiy, pp.53-58, 1999. [29] A.Jayawardena, B.Murrison, P.Lenders, "Embedding multiresolution binary images into multiresolution watermark channels in wavelet domain", Proceedings of IEEE ICASSP, 2000. [30] J.Puante, F.Jordan, “Using fractal compression scheme to embed a digital signature into an image”, 1996. [31] S.Pereira, J.J.K.O’Ruanaidh, T.Pun, “Secure robust digital watermarking using the lapped orthogonal transform”. EISWMC, 1999. [32] M.D.Swanson, B.Zhu, A.H.Tewfik, “Multiresolution scene-based video watermarking using perceptual models”, IEEE journal on selected areas in communications, Vol.16, no.4, 1998. [33] Y.Zhou, “Copyright protection of compressed video using DCT-based watermarking technology”, HUT TML, 2000. [34] F.Hartung, B.Girod, “Fast public-key watermarking of compressed video”, 1997. [35] F.Hartung, P.Eisert, B.Girod, “Digital watermarking of MPEG-4 facial animation parameters”, Computer & graphics, vol.22, 1998. [36] F.Hartung, B.Girod, “Copyright protection in video delivery networks by watermarking of pre-compressed video”, Multimedia applications, services and techniques, Vol.1242,pp.423-436, 1997. [37] P.Bassia, I.Pitas, “Robust audio watermark in the time domain” [38] M.D.Swanson, B.Zhu, A.H.Tewfik, L.Boney, “Robust audio watermarking using perceptual masking”, Signal processing vol.66. pp.337-355, 1998. [39] C.Xu, J.Wu, D.D.Feng, “Content-based digital watermarking for compressed audio” [40] R. Schyndel, A. Tirkel, C. Osborne, "A digital watermark", Proceedings of IEEE International conference on image processing, vol.2, pp.86-90, 1994 [41] R. Wolfgang, E. Delp, "Fragile watermarking using the VW2D watermark", Proceedings of IS&T/SPIE Conference on security and watermarking of multimedia contents", pp.204-213, 1999. [42] P. Wong, "A watermark for image integrity and ownership verification", Final program and proceedings of the IS&T PICS, pp374-379, 1999 [43] M. Yeung, F. Mintzer, "Invisible watermarking for image verification", Journal of electronic imaging, vol.7, no.3, pp.578-591, 1998 [44] M. Wu, B. Liu, “Watermarking for image authentication”, Proceedings of the IEEE International Conference on image processing, vol.2, pp.437-441, 1998. [45] D. Kundur, D. Hatzinakos, “Towards a telltale watermarking technique for tamper-proofing”, Proceedings of IEEE ICIP, vol.2, pp.409-413, 1998. [46] L. Xie, G. Arce, “Joint wavelet compression and authentication watermarking”, Proceedings of IEEE ICIP, vol.2, pp.427-431, 1998. [47] S. Voloshynovskiy, S. Pereira, A. Herrigel, N. Baumgartner, T. Pun, "Generalized watermark attack based on estimation and perceptual remodulation", Processdings of SPIE: Security and watermarking of multimedia content II, 2000. [48] M. Yeung, F. Mintzer, "Techniques for data hiding", MIT media lab, 1996. [49] http://altern.org/watermark/ [50] http://www.cl.cam.ac.uk/~fapp2/watermarking/stirmark [51] T. Kalker, "Watermark estimation through detector analysis", Proceedings of second international workshop on information hiding, 1998. [52] S. Carver, N. Memon, B. Yeo, M. Young, "Can invisible watermarks resolve rightful ownerships?", IBM research report, 1996. [53] M. Kutter, S. Voloshynovskiy, A. Herrigel, "The watermark copy attack", Proceedings of SPIE: Security and watermarking of multimedia content II, Vol.3971, 2000. [54] D. Boneh, J. Shaw, "Collusion-secure fingerprinting for digital data", IEEE Transactions on information theory 44, pp. 1897-1905, 1998. [55] I.J.Cox, J.Killian, T.Leighton, T.Shamoon, “A secure, robust watermark for multimedia”, Workshop on information hiding, 1999. [56] D. Knuth, "The Art of Computer Programming", Vol. 2, 3rd Edition, p. 122 [57]
D.Gruhl, A. Lu, W. Bender, “Echo hiding”, Information hiding first
international workshop proceedings, pp.295-315, 1996. ©Zavod za
Elektroniku, Mikroelektroniku, Računalne i Inteligente Sustave
|