====== Fingerprinting ====== ===== Sažetak ===== //Fingerprinting// algoritmi niz su algoritama i postupaka pomoću kojih se velike količine podataka preslikavaju u manje tekstualne zapise. Ti zapisi specifični su za svaku pojedinu datoteku te se zbog svoje jedinstvenosti nazivaju i otiskom (//eng. fingerprint//) datoteke. Algoritmi preslikavanja razlikuju se ovisno o vrsti datoteke i samim podacima za koje su namijenjeni. Osim algoritama koji preslikavaju podatke i stvaraju otiske datoteka, postoje skripte koje prikupljaju korisničke podatke za vrijeme web pretraživanja i tako kreiraju jedinstveni otisak samog korisnika i njegovog računala. Ovaj postupak stvaranja otiska za vrijeme web pretraživanja naziva se //browser fingerprinting//. U okviru ovog članka objasnit će se postupci stvaranja otisaka iz audio i video podataka. Objasnit će se kako aplikacija //Shazam// prepoznaje audio sadržaj. Ukazat će se i na važnost otiska za uspješnu identifikaciju datoteka. Osim toga, prikazat će se neki podaci iz otiska računala prikupljeni za vrijeme web pretraživanja. Ključne riječi: fingerprinting; otisak; //acoustic//; video; //browser//; //Shazam//; jedinstvenost; identifikacija ===== Uvod ===== Otisak prsta (eng. //fingerpint//) je trag koji zbog svoje strukture, sile trenja i pritiska na površinu ostavljaju ljudski prsti. Za jednog čovjeka otisak predstavlja jedinstvenu oznaku prilikom identifikacije. Upravo zbog svoje jedinstvenosti, otisci imaju veliku važnost i primjene u forenzici. Kako čovjeku jedinstvenu oznaku daje otisak prsta, tako u računarstvu susrećemo niz algoritama koji veliku količinu podataka preslikavaju u manji tekstualni zapis specifičan za svaku datoteku. Ti algoritmi izvorno se nazivaju //fingerprinting algorithms// (algoritmi otiska prsta) i razlikuju se ovisno o tipu podataka. Tako će se na audio zapisima primijeniti //acoustic fingerprint// postupci, za video podatke koristit će se //digial video fingerprint//, a za ostale datoteke digitalnog sadržaja upotrijebit će se neka općenita //digital fingerpirnt// tehnika. Najčešći razlog kreiranja i korištenja otiska datoteke uklanjanje je nepotrebnih kopija i ponovljivosti u podacima. Kako je za identifikaciju datoteke potreban samo njezin otisak, usporedbe i prijenos velikih količina podataka može se implementirati puno jednostavnije i brže. Osim toga, za računalnu je forenziku izrazito važna usporedba otisaka kojom se može potvrditi izmjena i ukazati na trenutke pojedinih modifikacija datoteka.[1]\\ Glavna značajka digitalnog otiska je njegova jedinstvenost, tj. sa velikom sigurnošću treba osigurati da nema preklapanja otisaka bilo koje dvije različite datoteke. Poželjno je da vjerojatnost poklapanja otisaka dva različita izvora bude manja od 10-20. Kako povećavamo broj bita potrebnih za prikaz otisaka, tako se vjerojatnost preklapanja smanjuje. Za usporedbu, vjerojatnost da čovjeka pogodi grom (približno 10-6) ili da strada u napadu morskog psa (približno 10-9) puno su manje od kolizije dva otiska. Te vjerojatnosti su na razini uništenja nekog sustava od pada meteora (približno 10-28).\\ U većim arhivama ili skupovima podataka često dolazi do povezivanja ili spajanja datoteka, stoga je poželjno da se digitalni otisak može lagano izvesti iz kombinacije otisaka pojedinačnih datoteka. To je drugo važno svojstvo digitalnih otisaka.[4] ===== Algoritmi preslikavanja ===== [[wp>Michael O. Rabin]] kreirao je ideju za implementiranje digitalnih otisaka korištenjem polinoma koji se preslikavaju preko konačnog broja elemenata. Otisak je rezultat dijeljenja dva polinoma. Vjerojatnost da dva niza, //a// i //b//, rezultiraju istim otiskom duljine //w// bita ne prelazi max(|a|, |b|)/2w-1. Gdje su |a| i |b| duljine nizova. Problem je što ova metoda nije sigurna protiv napada: uz poznati ključ, lagano se može mijenjati sadržaj datoteke a da se pritom ne mijenja njezin otisak.[2] Brojne aplikacije koriste ovaj algoritam i ideju za usporedbu nizova pod nazivom [[wp>Rabin–Karp algorithm]]. Za implementaciju se koristi pomični //hash// prozor. Prednost prema drugim funkcijama mapiranja je mogućnost izračuna otiska jednog bloka korištenjem izračunatog otiska drugog bloka ako se ta dva bloka preklapaju.\\ Osim Rabinovog algoritma koriste se i kriptografske funkcije mapiranja za stvaranje otisaka. Veliki podaci pretvaraju se u manje zapise. Postupak određivanja otiska bez ključa zahtijevao bi //brute force// pretraživanje. Svojstva koja moraju vrijediti prilikom svakog preslikavanja ovim postupkom su: ista datoteka uvijek rezultira istim preslikavanjem, preslikana vrijednost brzo se može odredi, postupak je ireverzibilan i preslikavanje je jedinstveno. Osim toga, preslikana vrijednost dodijeljena izmijenjenoj datoteci nepovezana je s veličinom promjene datoteke. Sporije su od Rabinovog algoritma.[3] ===== Acoustic fingerprinting ===== //Acoustic fingerprint// digitalni je otisak generiran iz audio signala. Otisak je kreiran deterministički i može se koristiti u identifikaciji sličnih značajki u audio bazi podataka. Praktična uporaba akustičnog otiska prisutna je u prepoznavanju pjesama, melodija, reklama, zvučnih efekata, itd. Mogu se pratiti podaci sa radija, CD-a, mrežnog prometa i glazbenih albuma.\\ Ukoliko dva audio signala jako slično zvuče, njihov otisci bi trebali biti isti. Drugim riječima, dva zvuka su slična ukoliko su signali koji ih opisuju slični. Zvuk do mikrofona ili uha putuje kroz neki medij, npr. vodu ili zrak, a da bi se mogao obrađivati i analizirati, potrebno ga je u računalu pretvoriti u diskretni signal postupkom uzorkovanja. Postoji niz značajki koje se koriste u kreiranju otiska promatranjem tako dobivenog signala. U nastavku su nabrojane neke najpopularnije.[8]\\ * //Zero crossing rate// praćenje je kako signal, prikazan kao funkcija u vremenu, mijenja predznak (pozitivno-negativno/negativno-pozitivno). Oznake se postavljaju na mjestima promijene. * Estimacija tempa brzina je ili korak pojedine skladbe mjerena u jedinici otkucaja u minuti (eng. //bits per minute (bpm)//) * Usrednjavanje i izravnavanje spektra promatranjem frekvencijskih komponenti signala. * Analiza dominantnih tonova u određenoj širini frekvencijskog pojasa\\ Postupci i algoritmi mogu se kombinirati i povezivati, ali u jednom trenutku signal će se sigurno pretvoriti u spektralnu domenu gdje će se iz odnosa pojedinih frekvencijskih komponenti generirati otisak. Dosta popularna metoda za kreiranje jedinstvenog potpisa audio signala je korištenje spektrograma, tj. prikaz frekvencijskog spektra signala i njegove promijene u vremenu. Rezultat je graf u kojem je prikazan vremensko/frekvencijski odnos amplituda (intenziteta signala). Slika u nastavku prikazuje 2D i 3D spektrogram audio isječka iz snimke gitare korištene na laboratorijskim vježbama predmeta [[https://www.fer.unizg.hr/predmet/nmdos_a|Napredne metode digitalne obrade signala]] na [[https://www.fer.unizg.hr|FER-u]]. {{ :racfor_wiki:gitara.wav |Snimka gitare}} {{ :racfor_wiki:racfor_wiki:spectrogram.jpg?700 |Spektrogram snimke gitare}} Za proučavanje karakteristika audio signala nije potreban cijeli spektar. Niske harmonike obilježuje pozadinska buka i šum, npr. let aviona u prolazu, a visoki harmonici značajni su za zvukovni doživljaj, ne toliko bitan za prepoznavanje i izvlačenje značajki iz spektra. Prema tome, signali se propuštaju kroz pojasni propust odbacujući visoke i niske frekvencije. Pojas koji ostaje otprilike je u intervalu: [300, 2000] Hz. Prilikom mapiranja vrhova može se koristiti [[wp>Locality-sensitive hashing]] algoritam čija je glavna ideja da se bliske točke koje se ne razlikuju previše mapiraju u istu lokaciju. Cilj je da i nakon što audio signali prođu kroz određene postupke i korake kompresije, podaci budu i dalje prepoznatljivi i da se može prepoznati originalni zapis. Brojne aplikacije na mobilnim uređajima implementiraju postupak pretraživanja po zvuku, tj. na dani audio signal daju povratnu informaciju o sadržaju i identificiraju signal. Postupak se dijeli u nekoliko koraka: mikrofonom na uređaju snima se audio signal, kreira se reprezentativan uzorak iz pjesme ili melodije te se provjerava njegovo postojanje u bazi pjesama/biblioteci. Ukoliko je signal prepoznat, korisniku se prikazuju informacije. Uspješne aplikacije su [[wp>Shazam]], [[wp>SoundHound]] i [[wp>ACRCloud]]. Neke aplikacije omogućuju prihvaćenje korisnički generiranih zvukova i audio signala (npr. osoba pjeva neku pjesmu) i na temelju njih vraćaju popis najsličnijih originalnih pjesama.[8] ==== Shazam ==== Snimanjem 20 sekundi bilo kojeg dijela pjesme, aplikacija //Shazam// stvara otisak, provjerava bazu i na temelju algoritma prepoznavanja vraća točne podatke o pjesmi koja se snimila. Kontinuirani val zvuka snima se mikrofonom u analogni oblik. Za daljnju obradu provodi se diskretizacija i računa spektar signala. Za transformaciju iz vremenske u frekvencijsku domenu koristi se diskretna Fourierova transformacija ([[wp>Discrete Fourier transform|Discrete Fourier transform (DFT)]]), implementiranjem brzog i učinkovitog algoritma [[wp>Fast Fourier transform|Fast Fourier transform (FFT)]]. Promatranjem spektra, lagano je filtrirati nepotrebne frekvencije i zaključivati koje su komponente prisutne a koje nisu. Osim toga, potrebno je odlučiti koje su komponente bitne za stvaranje otiska i kojim kriterijem će se one birati. Iznos amplitude pojedine frekvencijske komponente odabire se kao metoda odabira. Kako u samo jednoj pjesmi mogu postojati i visoke i niske frekvencije izražajne amplitude, frekvencijski raspon se dijeli na manje intervale prema važnosti glazbenih komponenti. Svaki se interval analizira zasebno i neovisno od drugih intervala. Slijedi detekcija, izvlačenje i zapisivanje podataka o frekvencijama najvećih amplituda. Ti zapisi su oznaka za taj dio pjesme i predstavljat će jedan dio u cijelom otisku audio signala. Danas postoji veliki broj pjesama i glazbenih djela, a neka od njih nastala su samo manjim izmjenama ili posudbama iz već postojećih pjesama ili njihovih dijelova. Posljedično, čest je slučaj da će prilikom mapiranja iz frekvencijskog spektra doći do poklapanja identifikacije s više pjesama. Samo promatranje frekvencijskog spektra nije dovoljno za sužavanje izbora. Prema tome, uz spektar, promatra se i relativni vremenski odnos uzoraka i rezultata mapiranja. Snimljeni signal nikada neće biti savršen i neće se u potpunosti (bez greške) poklapati s otiscima u bazi. Iz toga razloga, sve pjesme s kojima je došlo do podudaranja, sortiraju se prema vjerojatnosti, a aplikacija vrati onu pjesmu koja je prva na sortiranoj listi prijedloga.[7]\\ Osim pjesama, //Shazam// može prepoznati i audio isječke iz video zapisa, kao što su televizijske serije i reklame. Manjim promjenama u načinu prikaza rezultata, ovim postupkom mogu se tražiti sličnosti u pjesmama ili čak plagijati.\\ Slike u nastavku prikazuju neke od rezultata //Shazam// pretraživanja, a poveznice pokraj njih preusmjeruju na audio/video zapise. Mobilna aplikacija je prepoznala sljedeće: isječak iz kantate [[wp>Carmina Burana (Orff)|Carmina Burana]] skladatelja [[wp>Carl Orff|Carla Orffa]], pozadinsku skladbu iz reklame za grah [[wp>Heinz Baked Beans]], uvodnu pjesmu iz televizijske serije [[wp>Friends]] i pjesmu hrvatskog pop sastava [[wp>Magazin]]. Nakon puštanja audio zapisa, svi rezultati prepoznati su unutar dvije sekunde osim primjera s reklamom gdje je trebalo par sekundi dulje za dobivanje povratne informacije.\\ ^ Audio/video primjer ^ //Shazam// rezultat ^ Audio/video primjer ^ //Shazam// rezultat ^ | [[wp>File:Carl Orff-Carmina Burana-O Fortuna.ogg|Carl Orff: Carmina Burana, O Fortuna]] |{{:racfor_wiki:carmina_burana.png?150|Carl Orff: Carmina Burana}}| [[https://www.youtube.com/watch?v=f3AQlKFua3U|Magazin: Minut' srca tvog]] |{{:racfor_wiki:magazin.png?150|Magazin: Minut' srca tvog}}| | [[https://www.youtube.com/watch?v=9WoM2bHfr48&feature=youtu.be|Sons of war]] |{{:racfor_wiki:sons_of_war.png?150|Sons of war}}| [[https://www.youtube.com/watch?v=Xs-HbHCcK58|I'll Be There for You (Theme from "Friends')]] |{{:racfor_wiki:friends.png?150|I'll Be There for You (Friends)}}| ===== Digital video fingerprinting ===== //Video fingerprinting// postupak je u kojem program iz ulaznog videa ili filma izvlači, prepoznaje i na kraju kombinira i grupira pojedine komponente u otisak. Kao što je slučaj i kod ljudskog otiska prsta te audio otiska, dodijeljena oznaka je jedinstvena jer se temelji na specifičnim optičkim značajkama videa i može poslužiti prilikom usporedbe digitalnih video sadržaja. Različite verzije istog video materijala imat će različite otiske pomoću kojih ih možemo klasificirati. Za razliku od postavljanja digitalnog vodenog žiga ( eng. //digital watermarking//), koji nakon postavljanja može identificirati kopije videa nastale tek nakon umetanja, referentni video otisak može se kreirati od bilo koje kopije ili verzije. Postupak kreiranja i korištenja sličan je onome akustičnog otiska.[9]\\ Primjena digitalnog video otiska prisutna je kod [[wp>Digital rights management|DRM-a]], i to naročito na području distribucije nedopuštenih sadržaja na internetu. Ukoliko objavljivači ili poslužitelji sadržaja (filmski studio ili korisnički stvorene stranice) primijete da neki od objavljenih videa sadrži registriran otisak, mogu provesti neku od radnji: ukloniti video sa stranice, ispraviti neke od značajki, zatražiti odštetu. Osim toga, može se pratiti učestalost prikazivanja pojedinog videa i koliko je često pristupano istom. Postupak se često kombinira s audio otiskom, naročito kada se kombinira i spaja više jedinstvenih video ili audio materijala. Samo jedan postupak određivanja otiska ne bi možda primijetio postojanje kombinacije sadržaja ili bi dao krivu informaciju. Kada bi audio i video otisak bili iz različitih izvora, prikazani sadržaj smatrao bi se sumnjivim. Prilikom prevođenja filma na druge jezike, audio otisak bi bio kompliciran jer bi se morao stvarati za svaki prijevod i verziju, s druge strane, sinkronizacija nema utjecaj na sam video sadržaj tako da se slobodno može zadržati samo jedan video otisak koji vrijedi za sve prijevode. Osim u filmske, video otisak koristi se i u forenzičke svrhe u kriminalistici prilikom distribucije videozapisa snimljenih od strane terorista, krađi, javnih eksperimenata, silovanja, zlostavljanja, itd. Postupci prepoznavanja, vađenja i kombiniranja značajki iz videa razlikuju se, neka od rješenja poznatih firmi:\\ * //ivitec (intelligent video technologies)//\\ Razvoj sustava pod nazivom //Adaptive Video Fingerprinting// na platformi //MediaSeeker Core Platform// s kojim se naglašava da sadržaj videa prilikom stvaranja i izvlačenja značajki uvelike utječe na otisak, i da bi se stvaranje otiska trebalo prilagoditi tome. Tako se razlikuje količina detalja ovisno o svrsi: za internet videozapise gdje do izražaja ne dolaze toliko detalji nije potreban detaljni pregled i traženje otiska, dok s druge strane postoji analiza na razini slika, gdje svaka slika videa ima ulogu u otisku zbog potrebe za detaljima.[10]\\ * //Comexp//\\ Razvoj tehnologije koja otiske čini otpornima na distorziju, neovisno o formatu ulaznog videa. Osigurana velika preciznost pretraživanja baze otisaka uz veliku brzinu. Osim toga, sustav je robustan na svakakve smetnje ili distorzije koje bi se mogle pojaviti u videu i imati utjecaj na generiranje i pretraživanje otisaka. U tu skupinu spada otpornost na razne šumove, promijene svjetline i boje, kontrasta, osvjetljenja, itd.[12]\\ * //Visioforge//\\ U svojem rješenju kombinira postupke analize scene, praćenja objekata i estimacije pokreta kako bi se identificirala kopija videa neovisno o rezoluciji, tipu enkodiranja ili formatu datoteke. Tehnologiju se može primijeniti na videozapise s //Youtube-a// u cilju zaštite prava, arhive videa smanjile bi količinu podataka i izbacile duplikate, piratski sadržaj, praćenje i prepoznavanje sadržaja reklama, itd.[13] ===== Browser fingerprinting ===== Postupak prikupljanja informacija o računalu i korisnicima korištenjem web preglednika i praćenjem //online// aktivnosti korisnika naziva se otisak web preglednika (eng. //browser/device/online fingerprinting//). Neki od podataka koji se mogu saznati ovim načinom praćenja su: korišteni tip web preglednika, vremenska zona, najčešće korišteni ili postavljeni jezik, rezolucija zaslona, font, itd. Kombiniranjem svih tih podataka jednoznačno se može identificirati korisnika i računalo.\\ Podaci se prikupljaju korištenjem skripti koje se stalno vrte u pozadini web preglednika i govore mu što da radi. Te skripte mogu izvući dosta informacija o uređaju i pregledniku, njihovim povezivanjem dobivamo jedinstveni otisak tog uređaja. Skripte su zadužene za renderiranje videozapisa i slika na pojedinim stranicama, ukoliko bi se isključile, pojedine stranice ne bi ispravno radile ili im se ne bi moglo pristupiti. Drugim riječima, ne znamo kada se prikupljaju podaci o našem otisku. Osim toga, brojne reklamne stranice koriste online otisak prsta kako bi pratile korisnike na više stranica i promatrale njihovu aktivnost. Na taj način dobiva se povratna informacija o povijesti pretraživanja, interesima pri kupovini, politici i vijestima koje korisnika zanimaju. Ističu se sljedeće tehnike prikupljanja podataka:\\ * //Canvas fingerprinting//: digitalne i grafičke značajke računala * //WebGL// i //Rendering fingerpint//: prikupljanje informacija o hardware-u i grafičkom sustavu * //Device fingerprinting//: infomarcije o medijskim uređajima na računalu * //Audio fingerprinting//: zvučne značajke računala Kombiniranjem svih tih podataka, korisnicima se mogu točnije i preciznije nuditi pojedini sadržaji za koje se smatra da će mu privući pažnju i personalizirati //online// doživljaj. Osim toga, podaci mogu koristiti u sprečavanju [[wp>Denial-of-service attack|Denial-of-service attack (DDoS)]] napada ili pokušaja krađe identiteta. Na ovaj način, u istragama, potajno se prati ljude bez njihovog znanja o tome.[15]\\ Zbog ispravnog rada web stranica, nije moguće poništiti skripte koje se vrte u pozadini i stalno prikupljaju podatke, ali se te iste skripte mogu zbuniti i pokušati prevariti tehnikama generalizacije i nasumičnosti. //AvastAntiTrack// alat je koji generira navedena svojstva i na taj način skriva prave privatne informacije.[14] Osim toga, mogu se koristiti preglednici koji imaju ugrađene //anti-fingerprinting// postupke: [[wp>Tor (anonymity network)|Tor Browser]] koristi generalizaciju, [[wp>Brave (web browser)|Brave Browser]] nasumičnost, a [[wp>Firefox]] neke specifične skripte. Kao jedno od najsigurnijih rješenja koje kombinira generaliziranje i nasumičnost ističe se [[wp>Avast Secure Browser]]. Nabrojani načini zaštite:\\ * tajni (eng. //incognito//) način rada * instalacija sigurnosnih //plug-in-ova// * onemogućenje //javascript// i //Flash// (nemogućnost ili neispravan rad) * //anti-malware// alati * posebni web preglednici\\ Od 2017 godine, web preglednik koji ostavlja najviše otisaka je [[wp>Microsoft Edge]]. Ostali preglednici su Firefox, [[wp>Google Chrome]], [[wp>Internet Explorer]] i [[wp>Safari (web browser)|Safari]]. Na mobilnim uređajima ističu se Google Chrome, [[wp>Opera Mini]], Firefox, Edge i Safari.[16]\\ [[https://amiunique.org|AmIUnique]] stranice je koja prikupi i vrati podatke o otisku računala i korištenog web preglednika. Slike u tablici u nastavku pokazuju rezultate otiska različitih web preglednika i dva različita računala. Ističe se podatak o web pregledniku, vremenskoj zoni, operacijskom sustavu i korištenom jeziku.\\ ^ Web preglednik ^ Prijenosno računalo ^ Jedinstvenost ^ | //Google Chrome// |{{:racfor_wiki:laptop_chrome.png?490|Prijenosno računalo, Chrome}}| 1 u 3027560 | | //Firefox// |{{:racfor_wiki:laptop_firefox.png?490|Prijenosno računalo, Firefox}}| 1 u 3027574 | | //MIcrosoft Edge// |{{:racfor_wiki:laptop_edge.png?490|Prijenosno računalo, Microsoft Edge}}| 1 u 3027578 | ^ Web preglednik ^ Prijenosno računalo ^ Jedinstvenost ^ | //Google Chrome// |{{:racfor_wiki:racunalo_chrome.png|Računalo, Chrome}}| 1 u 3027546 | | //Firefox// |{{:racfor_wiki:racunalo_firefox.png|Firefox}}| 1 u 3027533 | Tablica u uspoređuje prikazuje neke od osnovnih podataka o računalima prikupljenih korištenjem web preglednika. Naveden je postavljeni jezik, dimenzije zaslona, dubina boja i podatak o korištenju baterije. Podaci su kopirani iz JSON datoteka generiranih prilikom vraćanja podataka o web otisku.\\ | ^ Računalo ^ Prijenosno računalo ^ ^ //accept-language// | en-US,en;q=0.5 | hr-HR,hr;q=0.9,en-US;q=0.8,en;q=0.7,bs;q=0.6 | ^ //timezone// | -60 | -60 | ^ //screen_width// | 1920 | 1366 | ^ //screen_height// | 1080 | 768 | ^ //screen_depth// | 16 | 24 | ^ //battery// | - | charging: true, chargingTime: 0, dischargingTime: true | ===== Zaključak ===== Stvaranjem otiska digitalne datoteke dobivamo njezinu jedinstvenu oznaku. Ta oznaka može nam poslužiti za brže usporedbe i prijenos podataka kao i za uklanjanje kopija i ponovljivosti. Postupak kreiranja i praćenja otiska primjenu pronalazi u očuvanju autorskih prava video i audio sadržaja te u otkrivanju plagijata. U računalnoj forenzici otisak ukazuje na izmjene i modifikacije datoteke, a otiskom web preglednika mogu se pratiti "sumnjive" aktivnosti na računalima. ===== Literatura ===== [1] [[https://en.wikipedia.org/wiki/Fingerprint_(computing)|Wikipedia: Fingerprint (computing), prosinac 2020.]] [2] [[https://en.wikipedia.org/wiki/Rabin_fingerprint|Wikipedia: Rabin fingerprint, prosinac 2020.]] [3] [[https://en.wikipedia.org/wiki/Cryptographic_hash_function|Wikipedia: Cryptographic hash function, prosinac 2020.]] [4] [[https://en.wikipedia.org/wiki/Comparison_of_cryptographic_hash_functions|Wikipedia: Comparison of cryptographic hash functions, prosinac 2020.]] [5] [[https://moinakg.wordpress.com/tag/rabin-fingerprint/|High Performance Content Defined Chunking, prosinac 2020.]] [6] [[https://preshing.com/20110504/hash-collision-probabilities/|Preshing on Programming: Hash Collision Probabilities, prosinac 2020.]] [7] [[https://www.toptal.com/algorithms/shazam-it-music-processing-fingerprinting-and-recognition| Jovanovic J., How does Shazam work? Music Recognition Algorithms, Fingerprinting, and Processing, prosinac 2020.]] [8] [[https://en.wikipedia.org/wiki/Acoustic_fingerprint|Wikipedia: Acoustic fingerprint, prosinac 2020.]] [9] [[https://en.wikipedia.org/wiki/Digital_video_fingerprinting|Wikipedia: Digital video fingerprinting, prosinac 2020.]] [10] [[https://ivitec.com/What-is-Digital-Video-Fingerprinting.html|ivitec's Adaptive Video Fingerprinting Technology, prosinac 2020.]] [11] [[https://ivitec.com/mediaseeker-core-platform.html|MediaSeeker Core Platform, prosinac 2020.]] [12] [[https://comexp.net|Comexp: What is a Digital Fingerprint of the Video?, prosinac 2020.]] [13] [[https://www.visioforge.com/video-fingerprinting-sdk|Visioforge: Video Fingerprinting SDK .Net / C++, prosinac 2020.]] [14] [[https://www.avast.com/c-what-is-browser-fingerprinting|avast: What Is Browser Fingerprinting and How Can You Prevent It?, prosinac 2020.]] [15] [[https://pixelprivacy.com/resources/browser-fingerprinting/|Hauk C., Browser Fingerprinting: What Is It And What Should You Do About It?, prosinac 2020.]] [16] [[https://en.wikipedia.org/wiki/Device_fingerprint|Wikipedia: Device fingerprint, prosinac 2020.]]