Upload
truongkiet
View
219
Download
0
Embed Size (px)
Citation preview
JYRKI HÄYRYNEN
TIEDON PIILOTTAMINEN KUVIIN
Kandidaatintyö
Tarkastaja: Lehtori Heikki Huttunen Työ jätetty tarkastettavaksi 10. toukokuuta 2009
II
TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO
Tietoliikenne-elektroniikan koulutusohjelma
Häyrynen, Jyrki: Tiedon piilottaminen kuviin
Kandidaatintyö, 27 sivua
Toukokuu 2009
Pääaine: Signaalinkäsittely ja multimedia
Tarkastaja: Lehtori Heikki Huttunen
Avainsanat: Tiedon piilotus, kuva, steganografia, digitaalinen vesileima, robusti,
taajuustaso
Tiedon piilottaminen tarjoaa työkaluja moneen digiajan ongelmaan. Yleensä tiedon
suojaaminen toteutetaan salaamalla se kryptografian avulla. Steganografiaa käyttämällä
tieto voidaan piilottaa siten, että hyökkääjä ei tiedä sen olemassaoloa. Digitaalisen
materiaalin tekijänoikeussuojaa voidaan myös parantaa tiedon piilottamisella lisäämällä
siihen digitaalisen vesileiman.
Tämän työn tavoitteena on esitellä tiedon piilotuksen teoriaa, yleistä toteutusta ja viime
aikoina kirjallisuudessa esitettyjä menetelmiä ja tutkimustuloksia. Teoriaosion pohjana
on käytetty muutamaa alan perusteosta ja toteutusmenetelmien esittelyn pohjana on
käytetty menetelmistä kertovia tieteellisiä julkaisuja.
Työssä on toteutettu myös erään julkaisun pohjalta yksinkertainen taajuustason
vesileimausmenetelmä. Tämän toteutuksen pohjalta saatuja tuloksia on verrattu
Photoshopin Digimarc-vesileimaan vastaavilla testikuvilla. Käytännön toteutuksessa
keskityttiin mahdollisimman robustin vesileiman luomiseen häviöllistä jpeg-pakkausta
vastaan. Testituloksista voidaan havaita, että tavoitteessa myös onnistuttiin ja toteutettu
menetelmä on robusti häviölliselle pakkaukselle.
III
ALKUSANAT
Tämä tekniikan kandidaatintyö on tehty osana signaalinkäsittelyn laitoksen
kandidaattiseminaaria keväällä 2009. Haluan kiittää työn ohjaajaa Heikki Huttusta
aiheen ehdottamisesta ja työn etenemisen avustamisesta erityisesti käytännön
toteutuksen osalta. Haluaisin kiittää myös seminaarin toista vetäjää Konsta Koppista
kirjoitustyön etenemistä edistäneistä neuvoista.
Lämpimät kiitokset myös avovaimolleni Katariinalle, joka on tarjonnut tukea ja
patistanut työhön läpi kevään.
Tampereella, 8. Toukokuuta 2009
Jyrki Häyrynen
IV
SISÄLLYS
1. Johdanto ................................................................................................................ 1
2. Tiedon piilottamisen teoriaa .................................................................................. 3
2.1. Tiedon piilottaminen ..................................................................................... 3
2.1.1. Tiedon piilottaminen valokuviin ..................................................... 4
2.1.2. Hyökkäykset .................................................................................. 6
2.2. Tilatason menetelmät tiedon piilotuksessa ..................................................... 7
2.2.1. Tilatason menetelmien esittelyä...................................................... 7
2.3. Taajuustason menetelmät tiedon piilotuksessa ............................................... 9
2.3.1. Muunnos taajuustasoon .................................................................. 9
2.3.2. Taajuustason menetelmien esittelyä.............................................. 12
3. Tiedon piilottaminen taajuustason menetelmällä.................................................. 14
3.1. Toteutus ...................................................................................................... 14
3.2. Testaus ........................................................................................................ 17
3.2.1. Kuvassa havaittavat muutokset ..................................................... 18
3.2.2. Pakkauksenkestävyys ................................................................... 21
3.3. Tulosten arviointi ........................................................................................ 23
4. Johtopäätökset ..................................................................................................... 24
5. Lähdeluettelo ...................................................................................................... 26
V
TERMIT JA LYHENTEET
BMP Bittikarttagrafiikan tallennusformaatti (bitmap)
DCT Diskreetti kosinimuunnos (discrete cosine transformation)
DFT Diskreetti Fourier-muunnos (discrete Fourier
transformation)
DWT Diskreetti aallokemuunnos (discrete wavelet
transformation)
GIF Häviötön bittikarttagrafiikan tallennusformaatti (Graphic
interchange format)
JPEG Häviöllinen kuvanpakkausformaatti (Joint Photographic
Experts Group)
Kryptografia Tiedon salaaminen (cryptography)
PNG Häviötön bittikarttagrafiikan tallennusformaatti (Portable
network graphics). Kehitettiin korvaamaan vanhentunut
Gif-formaatti
RGB Punaisen, vihreän ja sinisen komponentin muodostama
väriavaruus (Red, Green, Blue)
Robustisuus Järjestelmän häiriösietoisuus (robustness)
RS-analyysi Stegokuvasta määritettävien muuttujien R ja S arvoihin
perustuva steganalyysimenetelmä (RS steganalysis)
Steganalyysi Piilotetun tiedon etsintä (steganalysis)
Steganografia Tiedon piilottaminen kuviin (steganography)
1
1. JOHDANTO
Tietoverkkojen kautta kulkevan tiedon määrä on kasvanut valtavasti viime vuosien
aikana ja nykyisin valtaosa luottamuksellisesta kanssakäymisestä tapahtuu digitaalisessa
muodossa. Tällöin tietoturva on suuressa roolissa, etteivät sivulliset pääsisi käsiksi
vaihdettaviin tietoihin. Yleisin ratkaisu tietoturvaongelmiin on välitettävän viestin
salaaminen kryptografisia metodeja käyttäen. Tästä seuraa kuitenkin ongelmia mikäli
mahdollisella salakuuntelijalla on riittävästi tietotaitoa salauksen murtamiseksi.
Tietokoneiden laskentatehon kasvaessa salaukseen käytettävät algoritmit joutuvat
kovalle koetukselle ja heikoimmat niistä saadaankin murrettua varsin helposti.
Kryptografian ongelma onkin se, että salattu paketti kiinnittää helposti liikennettä
seuraavan tahon mielenkiinnon ja joutuu siten uhan alle. Steganografiassa tähän
ongelmaa on lähdetty hakemaan erilaista ratkaisua. Välitettävä salainen tieto pyritään
piilottamaan viattoman näköiseen kuoreen, jolloin salakuuntelija ei edes havaitse tiedon
olemassaoloa. Mahdollisimman tehokkaan suojauksen saavuttamiseksi tieto voidaan
salata kryptografisin menetelmin ennen sen piilottamista.
Sana steganografia tulee muinaisen kreikan kielen sanasta steganos (peitetty) ja latinan
kielen sanasta graphia (kirjoitus) [1]. Ensimmäiset kuvaukset tiedon
piilottamismenetelmien käytöstä ovat peräisin jo antiikin ajalta. Teoksessaan The
Histories, Kreikkalainen historioitsija Herodotus kertoo kuinka Kreikkalaisten ja
Persialaisten välisen sodan aikana vuonna 440 eKr. eräs mies ajoi hiukset palvelijansa
päästä ja tatuoi salaisen viestin tämän päänahkaan. Hiusten kasvettua takaisin viesti
katosi näkyvistä ja palvelija saattoi toimittaa sen perille kenenkään huomaamatta. Ennen
valokuvauksen kehittämistä steganografiset menetelmät perustuivat pitkälti tiedon
piilottamiseen tekstin sekaan erilaisia algoritmeja hyväksikäyttäen. 1800-luvulla
valokuvaustekniikan kehittyminen mahdollisti valokuvien hyödyntämisen tiedon
piilottamiseen. Ranskalainen valokuvaaja Drago kehitti menetelmän pienten,
mikroskoopilla luettavien valokuvien valmistamiseksi. Saksalaiset kehittivät
myöhemmin ensimmäisen ja toisen maailmansodan aikaan tämän menetelmän niin
hyväksi, että heidän vakoojansa saattoivat piilottaa tavallisessa tekstissä olevaan
pisteeseen kokonaisen valokuvan. [2] 1980-luvulla Ison-Britannian silloinen
pääministeri Margaret Thatcher kyllästyi siihen, että lehdistön haltuun päätyi hallituksen
salaisia dokumentteja. Tietovuodon paljastamiseksi käytettiin yksinkertaista, mutta
toimivaksi osoittautunutta tiedon piilotusmenetelmää. Ministereille jaetuissa
dokumenteissa oli yksilöllinen sananväli ja tämän perusteella tietojen vuotaja pystyttiin
tunnistamaan lehdessä julkaistun kopion myötä. [3]
2
Digitaalitekniikan leviämisen myötä steganografian käyttö on laajentunut
huomattavasti. Nykyisin myös alan tutkimustyö on lähtenyt voimakkaaseen kasvuun ja
julkaistujen tutkimustulosten määrä on kasvanut 1990-luvun alun muutamasta
vuosittaisesta julkaisusta nykyiseen useaan sataan vuosittaiseen julkaisuun. Suuri
vaikuttaja tähän kehitykseen on ollut digitaalisessa muodossa olevan tiedon heikko
tekijänoikeussuoja. Digitaalinen materiaali on mahdollista kopioida täydellisesti, jolloin
alkuperäisen erottaminen kopiosta on mahdotonta. Tällaisessa tilanteessa materiaaliin
piilotettu tekijänoikeusmerkintä on todella hyödyllinen.
Tiedon piilottaminen voidaan jakaa yleisellä tasolla kolmeen pääaihealueeseen: tiedon
piilottamiseen dataan (steganografia), olemassa olevan tiedon lisäämiseen digitaalisen
vesileiman (digital watermarking) avulla ja piilotetun tiedon etsintään (steganalyysi).
Tiedon piilottamisessa käytettävät menetelmät perustuvat digitaalisessa maailmassa
peitetiedon sisällön muokkaamiseen tila- tai taajuustasossa. Piilotetun tiedon etsintään
käytettävät menetelmät taas tutkivat tilastollisten testien avulla mahdollisia
peitetiedostoja.
Tiedon piilottamiseen käytettävät menetelmät vaihtelevat paljon käyttökohteen mukaan.
Steganografiassa päähuomio on siinä, kuinka hyvin tieto on piilossa, ja mahdollinen
häiriösieto on toissijaista. Tämä johtuu siitä, että jo pelkkä salaisten viestien vaihdon
paljastuminen voidaan tulkita tiedon piilottamisen epäonnistumiseksi. Steganografiassa
päähuomio siis kohdistuu piilotettavaan tietoon ja peitekuva on vain väline tavoitteen
saavuttamiseksi. Digitaalisessa vesileimauksessa taas päähuomio on itse tiedossa, johon
piilottamalla lisätään tietoa sen suojaamiseksi. Tällöin piilotetun tiedon olemassaolon
paljastuminen ei itsessään ole ongelma. Esimerkiksi tunnettujen valokuvien kohdalla on
oletettavaa, että ne on suojattu laittoman kopioinnin estämiseksi. Tällöin on tärkeää, että
tiedossa olevan merkinnän poistaminen on mahdollisimman vaikeaa, eli käytetyn
menetelmän tulee olla robusti.
Tässä työssä keskitytään ainoastaan tiedon piilottamisessa käytettäviin menetelmiin
digitaalisten kuvien tapauksessa. Päähuomio on tiedon piilottamisen toteutuksessa, ja
steganalyysimenetelmiä ja erilaisia hyökkäyksiä käydään läpi ainoastaan perusteiden
tasolla. Kappaleessa 2 käydään läpi tiedon piilottamisen teoriaa, menetelmien
toteutustapojen perusteita ja tutustutaan erilaisiin kirjallisuudessa ehdotettuihin
piilotustekniikoihin. Kappaleessa 3 toteutetaan tiedon piilottaminen kuvaan ja testataan
häviöllisen jpeg-pakkauksen vaikutusta piilotettuun tietoon. Toteutetulla menetelmällä
saatuja tuloksia verrataan myös Adoben Photoshop-kuvankäsittelyohjelmasta löytyvällä
Digimarc-ohjelmistolla piilotettuun vesileimaan. Lopuksi kappaleessa 4 vedetään
yhteen tekstin pohjalta saadut johtopäätökset.
3 3
2. TIEDON PIILOTTAMISEN TEORIAA
Tiedon piilottamisen teorian kautta perehdytään tieteenalan kehitykseen ja tutustutaan
nykyisin käytössä oleviin menetelmiin. Tiedon piilottamiseen liittyvät operaatiot
voidaan jakaa muiden kuvankäsittelymenetelmien tapaan kahteen osa-alueeseen: tila- ja
taajuustason operaatioihin. Kappaleessa 2.2 tutustutaan tiedon piilottamiseen näitä
menetelmiä hyödyntäen. Ensiksi kuitenkin kappaleessa 2.1 käydään läpi tiedon
piilottamisen teoriaa ja tutustutaan erilaisiin hyökkäysmenetelmiin.
2.1. Tiedon piilottaminen
Tiedon piilottamisen avulla käytävän kommunikaation mallin pohjana pidetään
Gustavus Simmons:n vuonna 1983 julkaistua artikkelia ”The prisoners’ problem and the
subliminal channel” [4]. Tässä artikkelissa esitetyssä tilanteessa kaksi henkilöä on
joutunut vankilaan ja heidän tavoitteena on kehittää suunnitelma sieltä paetakseen.
Heidän tulisi välittää viestejä toisilleen vartijan välityksellä. Tällöin he eivät voi salata
viestejä suoraan kryptograafisin menetelmin, etteivät he kiinnitä vartijan huomiota.
Näin ollen heidän tulee käyttää steganografisia menetelmiä viestien välittämiseen. [2]
Vartijan toiminta voi tilanteessa olla aktiivista tai passiivista [5]. Passiivisessa
tapauksessa vartija vain tarkkailee välitettäviä viestejä ja reagoi ainoastaan epäilyttäviin
tapauksiin. Aktiivisen vartijan tapauksessa taas vartija pyrkii tutkimaan ja paljastamaan
salaiset viestit kaikesta läpikulkevasta materiaalista. Käytännön esimerkkinä aktiivisesta
vartijasta on sellainen henkilö joka pyrkii poistamaan vesileiman käyttämästään kuvasta
hyökkäyksen avulla. Aktiivinen vartija voi myös soveltaa jotain hyökkäystä kaikkeen
läpikulkevaan tietoon tuhotakseen mahdolliset steganografiset viestit tutkimatta
liikenteen sisältöä tarkemmin.
Tieto piilotetaan tiettyä algoritmia käyttäen ja sen erottaminen jälkikäteen tapahtuu
yleensä käänteisenä prosessina. Piilotetun tiedon erottaminen voidaan jakaa kolmeen
osa-alueeseen prosessissa tarvittavan tiedon määrän mukaan [6].
Näkevä (non-blind) irrottaminen. Tässä tapauksessa joko tarkkailijalla tai viestin
vastaanottajalla on oltava alkuperäinen peitemateriaali käytössä. Piilotettu tieto saadaan
irrotettua vertaamalla alkuperäistä ja muokattua dataa toisiinsa.
4
Puolisokeassa (semi-blind) tiedon irrottamisessa ei tarvita alkuperäistä peitedataa.
Tiedon esille saamiseen tarvitaan kuitenkin ylimääräistä tietoa ja vesileiman
tapauksessa alkuperäinen vesileima vertailua varten.
Sokeassa (blind) tiedon irrotuksessa vastaanottaja tarvitsee ainoastaan piilotuksessa
käytetyn avaimen tiedon esiin saamiseksi. Tällainen järjestelmä on kaikkein hyödyllisin,
koska sitä käytettäessä osapuolten välinen liikenne voidaan pitää mahdollisimman
pienenä. Käytännön toteutuksen kannalta sokea järjestelmä on kuitenkin kaikista
vaikein toteuttaa.
2.1.1. Tiedon piilottaminen valokuviin
Tiedon piilottamisessa lähdetään liikkeelle salaisesta viestistä (secret message), joka
halutaan sijoittaa peitekuvaan (cover-image) salaista avainta käyttäen. Tuloksena tästä
prosessista (kuva 2.1) saadaan stegokuva (stego-image) sekä piilottamiseen käytetyn
tekniikan avain.
Kuva 2.1. Tiedon piilotusprosessi.
Tiedon piilottamisen toteutusmenetelmissä on kolme pääkohtaa, joiden perusteella
niiden toimivuutta voidaan arvioida. Seuraavaksi käydään nämä kriteerit läpi.
Havaitsemattomuus (imperceptibility). Havaitsemattomuudella tarkoitetaan sitä, että
kuvassa ei saisi olla ihmissilmällä havaittavia häiriöitä ja sen tulisi näyttää muutenkin
alkuperäisen kaltaiselta. Steganografiassa tämä ominaisuus on äärimmäisen tärkeä, sillä
mikäli stegokuvassa on selkeitä häiriötä havaittavissa, menettää koko piilottamisen idea
merkityksensä. Myös digitaalisessa vesileimauksessa tällä asialla on merkitystä, sillä
suojattavan kuvan laatu ja muut ominaisuudet halutaan säilyttää ennallaan. Menetelmän
toimivuutta tämän kriteerin suhteen voidaan tutkia kuvan kohinan avulla. Stegokuvaa
voidaan verrata alkuperäiseen kuvaan laskemalla keskimääräisen neliövirheen, MSE
(mean squared error). MSE lasketaan ottamalla keskiarvo kahden kuvan pikseliarvojen
erotuksen neliöstä:
5
(2.1)
Kaavassa 2.1 I1 ja I2 ovat vertailtavat kuvat ja M sekä N merkitsevät kuvien pysty- ja
vaakarivien määrää. [7] MSE-arvo tulkitaan siten, että pienempi arvo tarkoittaa
parempaa yhtäläisyyttä kuvien välillä ja suurempi huonompaa.
Keskimääräisen neliövirheen ongelmana on sen riippuvuus kuvan intensiteettitasojen
määrästä. Tällöin jos kuva on 8-bittinen, niin suuri keskimääräinen neliövirhe näkyy
siinä selkeästi, kun taas 16-bittisessä kuvassa samankokoinen virhe ei näy. Tämä
ongelma voidaan välttää käyttämällä laskentaan signaali-kohina suhdetta PSNR (peak
signal-to-noise ratio). PSNR lasketaan MSE:n avulla ja sen idea on skaalata MSE
kuvan intensiteettitasojen mukaan. PSNR lasketaan ottamalla kymmenkantainen
logaritmi kuvan suurimman intensiteettiarvon neliöstä jaettuna keskineliövirheellä ja
kertomalla tämä kymmenellä:
(2.2)
Kaavassa 2.2 R on kuvan suurin intensiteettiarvo. PSNR-arvo on desibeleinä ja sitä
tulkitaan siten, että suurempi arvo tarkoittaa parempaa yhtäläisyyttä muokatun ja
alkuperäisen kuvan välillä. [7]
Robustisuus (robustness). Tämä ominaisuus kuvastaa käytetyn menetelmän kykyä
vastustaa tahallisia ja tahattomia hyökkäyksiä. Erityisesti digitaalisessa
vesileimauksessa käytetyn menetelmän tulisi olla sellainen, että se kestää
mahdollisimman monia erilaisia hyökkäyksiä ilman, että piilotettu tieto tuhoutuu.
Digitaalisessa vesileimauksessa voidaan tinkiä kuvan laadusta robustisuuden hyväksi.
Tällöin robustimpaa vesileimaa poistaessaan hyökkääjä tuhoaa myös alkuperäisen
kuvan. Steganografiassa tiedon joutuminen tahallisen hyökkäyksen kohteeksi kertoo jo
osaltaan menetelmän epäonnistumisesta. Robustisuuden puutetta voidaan myös
hyödyntää joissain sovelluksissa, kun tarkoituksena on selvittää onko viestiä havaittu.
Tällöin särkyvä (fragile) tiedon piilotus estää vastaanottajaa saamasta väärää,
hyökkääjän muokkaamaa tietoa. Menetelmän robustisuutta voidaan tutkia altistamalla
luotu stegokuva erilaisille hyökkäyksille ja tämän jälkeen tutkimalla esimerkiksi
piilotetun tiedon korrelaatiota alkuperäisen kanssa. [3]
Kapasiteetti (capacity). Tämä ominaisuus on mielenkiinnon kohteena erityisesti
steganografiassa, jolloin salassa välitettävä tieto voi vaatia paljon tilaa. Digitaalisessa
vesileimauksessa tämä ominaisuus ei ole kovinkaan tärkeä, sillä yleensä leima on
kooltaan pieni.
6
Joissain tapauksissa myös tiedon salaus lasketaan kuuluvaksi näihin kriteereihin, mutta
tämän työn puitteissa keskitytään ainoastaan tiedon piilottamiseen ja mahdollisesti siinä
yhteydessä käytettäviin kryptografisiin menetelmiin ei puututa. Yllä lueteltujen
ominaisuuksien toteuttaminen yhtä aikaa on käytännössä mahdotonta ja nykyiset
menetelmät ovatkin kompromisseja sovelluskohteen tarpeiden mukaan.
2.1.2. Hyökkäykset
Erilaiset hyökkäykset steganografisia menetelmiä vastaan voidaan jakaa kahteen
luokkaan: tahalliset ja tahattomat hyökkäykset. Molemmissa hyökkäyksissä käytetyt
menetelmät ovat pitkälti samanlaisia. Tahattomissa hyökkäyksissä hyökkääjä ei vain
tiedä tekevänsä jotain haitallista. Hyökkäyksessä käytettävät metodit ovat varsin laajat
ja tässä työssä käsitellään niitä vain pintapuolisesti. Lisää aiheesta löytyy seuraavista
lähteistä [2], [3], [8] ja [9].
Tahallisen hyökkäyksen tapauksessa hyökkääjä tietää tai epäilee, että kohteena oleva
kuva sisältää piilotettua tietoa. Steganografiassa kyse on epäilystä, sillä mikäli
tarkkailija tietäisi kuvan sisältävän piilotettua tietoa, olisi menetelmä jo epäonnistunut.
Tällöin epäilyttävää kuvaa tutkitaan tilastollisilla menetelmillä, joista tunnetuimmat
ovat RS-analyysi [8] ja Chi-neliö [9] hyökkäys. Steganografian paljastuessa seuraukset
ovat parhaimmillaankin huonot. Tarkkailijan havaitessa viestin voi hän pelkän
viestinnän estämisen lisäksi saada aikaan suurempaakin vahinkoa. Esimerkiksi jos
tarkkailija pystyy steganalyysin avulla selvittämään käytetyn tiedon piilotustekniikan ja
sitä kautta saamaan selville viestin sisällön. Pahimmassa tapauksessa tarkkailija pystyy
myös muokkaamaan viestin sisältöä ja johtamaan vastaanottajaa harhaan.
Digitaalisessa vesileimauksessa tiedon piilottamisen paljastuminen ei yleensä ole suuri
ongelma, sillä piilottamisessa käytetyt menetelmät on valittu siten, että ne selviävät
mahdollisista hyökkäyksistä. Hyökättäessä digitaalista vesileimaa vastaan kohdekuvalle
suoritetaan erilaisia signaalinkäsittelyn perusoperaatioita. Tällaisia ovat esimerkiksi
suodatus, kohinan lisäys ja kuvan kääntäminen. Hyökkäyksessä käytetyn menetelmän
tulisi olla sellainen, että se tuhoaa leiman jättäen kuvan kuitenkin melko
muuttumattomaksi. Esimerkiksi kehittyneimmälläkin piilotusmenetelmällä lisätty
vesileima voidaan poistaa lisäämällä kuvaan tarpeeksi kohinaa ja suodattamalla sitä eri
tavoin. Tällaisen käsittelyn jäljiltä kuva ei kuitenkaan enää vastaa alkuperäistä ja siitä
saatava hyöty hyökkääjälle on olematon.
Tahattomat hyökkäykset käyttävät osittain samoja menetelmiä tahallisten hyökkäysten
kanssa, mutta tekijän päällimmäisenä tavoitteena ei ole poistaa piilotettua tietoa.
Tällaisesta toiminnasta esimerkkinä on vaikkapa kuvan leikkaus ja häviöllinen
pakkaaminen. Hyökkääjä ottaa esimerkiksi Internet-sivustolta mieluisan kuvan omalle
kotisivulleen ja tilaa säästääkseen pakkaa sen jpeg-pakkauksella, jolloin kuvassa ollut
tunnistetieto tuhoutuu.
7
2.2. Tilatason menetelmät tiedon piilotuksessa
Tilatason menetelmissä muokkaus kohdistuu suoraan kuvan sisältämien pikseleiden
väriarvoihin. Yksinkertaisin menetelmä toteuttaa tiedon piilottaminen kuvaan on
vähiten merkitsevän bitin (LSB) korvaaminen. LSB-menetelmä on yksinkertainen
toteuttaa ja piilotetun tiedon esiin saaminen on helppoa. Myös kapasiteetti on hyvä tätä
menetelmää käytettäessä. Menetelmän huonot puolet tekevät siitä kuitenkin heikon
työkalun todellisiin tilanteisiin. Perinteinen LSB-menetelmä ei kestä hyökkäyksiä ja
jopa kuvan tallentaminen uudelleen samaa formaattia käyttäen saattaa tuhota piilotetun
tiedon.
2.2.1. Tilatason menetelmien esittelyä
Tilatason menetelmät ovat edelleen mielenkiinnon kohteena, sillä niiden toteuttaminen
on laskennallisesti yksinkertaista ja niiden avulla saavutetaan korkea piilotettavan
tiedon kapasiteetti. Tästä hyötyvät erityisesti steganografiset toteutukset, joissa
tärkeimmät käytettävältä menetelmältä vaadittavat ominaisuudet ovat
huomaamattomuus ja kapasiteetti. Vähiten merkitsevän bitin muokkaamisen lisäksi
yleisesti käytettyjä menetelmiä ovat bittitasojen jakaminen osiin kompleksisuuden
mukaan (BPCS) ja piilotettavan tiedon sijoittaminen useaan kohtaan peitekuvaa.
LSB:n tapauksessa peitekuvan muokkaus kohdistuu ainoastaan vähiten merkitsevään
bittiin. Ihmissilmän havainnointikyky on kuitenkin niin heikko, että myös muita
bittitasoja on mahdollista käyttää tiedon piilottamiseen. Tietoa voidaan piilottaa suoraan
korvaamalla useampi alemmista bittitasoista [7], jolloin piilotettavan tiedon
kapasiteettia saadaan kasvatettua. Ongelmat ovat kuitenkin tässä tapauksessa samat kuin
pelkän vähiten merkitsevän bitin tapauksessa. BPCS-menetelmässä peitekuva jaetaan
myös bittitasoihin, mutta tämän jälkeen bittitasot jaetaan vielä 8x8 pikselin lohkoihin.
Näistä lohkoista määritetään kompleksisuusarvo laskemalla bittitason lohkon
mustavalkoisen reunan suhde reunan pituuteen ja verrataan sitä asetettuun
kynnysarvoon. Kompleksisuusarvo on suuri, mikäli mustat ja valkoiset pikselit
vaihtelevat paljon ja pieni jos lohko koostuu yhtenäisistä mustien ja valkoisten
pikseleiden alueista. Lohkon kompleksisuusarvon ollessa pienempi kuin kynnysarvo, on
lohko informatiivinen lohko. Tällöin sen sisältö jätetään ennalleen. Mikäli lohkon
kompleksisuus taas on suurempi kuin kynnysarvo, on kyseessä paljon kohinaa sisältävä
lohko, johon tietoa voidaan piilottaa. Bittitasojen kompleksisuuteen perustuva tiedon
piilotus on erityisen toimiva steganografisissa sovelluksissa. Sen avulla saavutetaan
korkea kapasiteetti piilotettavalle tiedolle ja muokkaus on vaikea havaita, koska tieto on
piilotettu kuvan kohinaa sisältäviin kohtiin. [10]
BPCS-menetelmästä edelleen kehittämällä on päädytty ABCDE (A Block Complexity-
based Data Embedding) menetelmään, jota on käytetty artikkelissa [11] potilastietojen
piilottamiseen potilaasta otettuihin kuviin. ABCDE-menetelmä eroaa BPCS-
8
menetelmästä siten, että kuvan pikselilohkoista lasketaan yhden kompleksisuusarvon
sijaan kaksi kompleksisuusarvoa. Näitä kahta kompleksisuusarvoa verrataan vastaaviin
kynnysarvoihin ja sen perusteella tehdään päätös voidaanko lohkoon piilottaa tietoa.
Tätä menetelmää käyttäen saadaan alkuperäistä BPCS-menetelmää parannettua sekä
kapasiteetin, että havaitsemattomuuden osalta.
Qi:n et al. artikkelissa [12] kuvatulla BCBS- (blind consistency-based steganography)
menetelmällä voidaan saavuttaa hyvä turvallisuus piilotetulle tiedolle, sillä vastaanottaja
huomaa viestiä purkaessaan onko sitä yritetty muokata välillä. Lisäksi menetelmä on
myös sokea, jolloin vastaanottaja saa salaisen tiedon esiin pelkällä piilottamiseen
käytetyllä avaimella. Myös tutkimuksessa [13] esitelty menetelmä tarjoaa työkalun
viestin sisällön ehjyyden tarkastamiseen. Tässä tapauksessa on yhdistetty tilatason ja
taajuustason menetelmiä, sillä aluksi salainen viesti muutetaan taajuustasoon DWT:n
avulla ja generoidaan tämän jälkeen bittivirraksi. Seuraavaksi bittivirta sijoitetaan
peitekuvaan tilatasossa.
Steganografian tapauksessa on tärkeää, että menetelmä toimii myös tilastollista
analyysia vastaan. Tähän ongelmaa on esitetty ratkaisuna muokattua LSB-algoritmia
[14]. Tässä algoritmissa yhdistetään kaksi peitekuvan vähiten merkitsevää bittiä modulo
2 laskennalla ja tämän jälkeen verrataan arvoa salaisen viestin osan arvoon. Mikäli arvot
ovat samat, ei peitekuvaan tehdä muutoksia. Jos taas arvot ovat erisuuret, lisätään tämä
erotus toiseen peitekuvan LSB:n arvoon. RS-analyysia vastaan kehitetty menetelmä on
esitelty artikkelissa [15]. Menetelmässä piilotettava tieto liitetään satunnaisiin
paikkoihin peitekuvan LSB-tasolle. Tämän jälkeen stegokuvaa muokataan siten, että
tilastollista analyysia saadaan hämättyä.
Edellä mainitut tilatason menetelmät soveltuvat käytännössä vain steganografisiin
tarkoituksiin niiden huonon robustisuuden vuoksi. Myös digitaalista vesileimausta
varten on kehitetty tilatason ratkaisuja. Tällöin voidaan esimerkiksi sijoittaa vesileima
useaan kohtaan kuvaa [16]. Vesileimana käytetään binäärikuvaa joka permutoidaan
Gray koodausta käyttäen. Tämän jälkeen vesileima sijoitetaan RGB-kuvan B-
komponenttiin nelinkertaisena siten, että kuvan ylä- ja alareunassa on yksi vesileima ja
kuvan keskiosassa kaksi. Tällä tavoin toteutettu tiedon piilotus on artikkelin mukaan
robusti kappaleessa 2.1.2 läpikäytyjä hyökkäyksiä vastaan.
9
2.3. Taajuustason menetelmät tiedon piilotuksessa
Tässä osiossa tarkastellaan diskreettiin Fourier-, kosini- ja aallokemuunnokseen
perustuvia menetelmiä. Aluksi kappaleessa 2.3.1 käydään lyhyesti läpi edellä
mainittujen taajuustason muunnosten toteutus. Tämän jälkeen kappaleessa 2.3.2
tutustutaan kirjallisuudessa esitettyihin taajuustason piilotusmenetelmiin.
2.3.1. Muunnos taajuustasoon
Taajuustason menetelmiä käyttäen voidaan hyödyntää ihmisen näköaistin heikkouksia
tiedon piilotukseen. Ihmissilmä havaitsee kuvista matalilla taajuuksilla olevaa
informaatiota korkeita taajuuksia herkemmin. Tällöin korkeita taajuuksia voidaan
muokata kuvan visuaalisen laadun kärsimättä. Tähän samaan teoriaan perustuu myös
kuvien häviöllinen pakkaus. Kuvan taajuussisältöön taas päästään käsiksi taajuustason
muunnoksilla joita esitellään seuraavasti lyhyesti.
Yleisesti käytetty taajuustason muunnos signaalinkäsittelyssä on diskreetti Fourier-
muunnos (DFT) [17]. Diskreetillä Fourier-muunnoksella signaali voidaan ilmaista
yhteenlaskettuina sini- ja kosiniaaltoina, eli nähdään signaalin taajuussisältö.
Digitaalisessa kuvankäsittelyssä käytetään DFT:n kaksiulotteista versiota. Käytännössä
tämä tarkoittaa sitä, että kuvalle lasketaan kahdesti yksiulotteinen DFT. Tilatason M*N
kokoiselle kuvalle f(x,y) muunnos taajuustasoon tehdään seuraavalla kaavalla:
, (2.3)
Taajuustasosta päästään takaisin tilatasoon käänteisellä Fourier-muunnoksella (IDFT).
Tästäkin käytetään kuvankäsittelyssä kaksiulotteista versiota:
, (2.4)
Toinen laajassa käytössä oleva taajuustason muunnos on diskreetti kosinimuunnos
(DCT) [17]. Muunnos on hyvin samantyylinen DFT:n kanssa ja erona on se, että
kosinimuunnos ilmaisee signaalin sisällön ainoastaan kosiniaaltoina. Tämän lisäksi
kosinimuunnoksen tulos on aina reaalinen. DCT:tä käytetään signaalinkäsittelyssä
erityisesti tiedon pakkaamiseen, koska sen avulla voidaan erotella vähemmän
merkitsevä tieto merkitsevästä. Yleisessä käytössä oleva jpeg-pakkausalgoritmi
perustuu diskreetin kosinimuunnoksen hyödyntämiseen [17]. Tästä johtuen
kosinimuunnosta käytetään laajalti myös tiedon piilottamiseen taajuustasossa. Diskreetti
kosinimuunnos M*N kokoiselle kuvalle lasketaan seuraavasti:
, (2.5)
10
(2.6)
(2.7)
Kaavoissa 2.5, 2.6, 2.7 ja 2.8 esiintyvät funktiot , , ja
ovat diskreetin kosinimuunnoksen kantafunktiot. Kosinimuunnoksen
käänteismuunnos lasketaan Fourier-muunnoksen tapaan käänteisenä operaationa:
, (2.8)
Kolmas tässä tekstissä esiteltävä taajuustason muunnos on diskreetti aallokemuunnos
(DWT). Aallokemuunnos poikkeaa merkittävästi aikaisemmin esitellyistä taajuustason
muunnoksista. Sini- ja kosiniaaltojen sijaan aallokemuunnoksen perusfunktiona ovat eri
taajuuksiset ja pituiset aallot, aallokkeet (kuva 2.2). Erilaisia aallokkeita on esitetty
kirjallisuudessa useita ja näistä tässä työssä käytetään Haar-aalloketta (ψ(x,y)).
Aallokemuunnoksen avulla signaalista saadaan DFT:hen ja DCT:hen verrattuna
laajemmin tietoa, sillä sen avulla saadaan tietoon signaalin sisältämien taajuuksien
lisäksi myös niiden sijaintipaikat.
Kuva 2.2. Aallokemuunnoksen ja DFT/DCT:n kantafunktiot.
Aallokemuunnoksen laskeminen on hieman monimutkaisempi operaatio edellä
esiteltyihin taajuustason muunnoksiin verrattuna. Operaation tuloksena saadaan yhden
taajuustason kuvan sijaan neljä kuvaa (kuva 2.3). Tuloskuvan vasemmassa yläkulmassa
on alkuperäisen kuvan skaalausfunktiolla kerrottu versio. Skaalausfunktiolla kertomisen
11
tuloksena saadaan alkuperäistä vastaava neljäsosaan skaalattu kuva. Kolme muuta
kuvaa koostuvat aallokefunktioilla horisontaalisesti, vertikaalisesti ja diagonaalisesti
kerrotusta alkuperäiskuvasta. Tämä operaatio mittaa intensiteettivaihteluja kuvassa
edellä mainituista suunnista.
Kuva 2.3. Aallokemuunnoksen periaate.
Kaksiulotteisen aallokemuunnoksen neljä osakomponenttia lasketaan M*N kokoiselle
kuvalle seuraavasti:
(2.9)
(2.10)
Kaavassa 2.9 φ(x,y) on kaksiulotteinen skaalausfunktio ja kaavassa 2.10 ψi(x,y) on
kaksiulotteinen Haar-aalloke, jossa H on horisontaalinen, V vertikaalinen ja D
diagonaalinen aalloke.
Aallokemuunnoksen tapauksessa on myös olemassa käänteismuunnos, jonka avulla
saadaan palautettua alkuperäinen kuva. Käänteismuunnoksen toteuttava kaava on
seuraava:
(2.11)
12
Aallokemuunnoksen käyttö tiedon piilotuksessa on lisääntynyt viime vuosina. Tätä
kehitystä on edesauttanut Dwt:tä hyödyntävien pakkausmenetelmien, esimerkiksi
jpeg2000 [18], käyttöönotto.
2.3.2. Taajuustason menetelmien esittelyä
Taajuustasossa toteutettava tiedon piilotus on toimiva ratkaisu digitaaliseen
vesileimaukseen, sillä tällöin saavutetaan hyvä kestävyys erilaisia hyökkäyksiä vastaan
kuvanlaadun kärsimättä liikaa. Steganografiassa taajuustason menetelmiä käytetään
vähemmän, sillä piilotettavan tiedon kapasiteetti on pienempi kuin tilatason
menetelmillä. Taajuustasossa tiedon piilottaminen toteutetaan muokkaamalla
taajuustasoon muunnetun signaalin kertoimia piilotettavan tiedon mukaan.
Artikkelissa [19] esitellään jpeg-pakkaukselle immuuni tiedonpiilotusmenetelmä, joka
on toteutettu DWT:n avulla. Menetelmässä peitekuvalle tehdään kolminkertainen
häviötön aallokemuunnos ja tämän jälkeen muunnostason kertoimiin lisätään salainen
viesti. Testitulosten perusteella käytetty menetelmä toimii hyvin häviöllistä pakkausta
vastaan. Tutkimuksessa [20] on myös sovellettu aallokemuunnosta, mutta tässä
tapauksessa tiedon piilotus on tehty käyttämällä LSB-menetelmää muunnostasossa.
Menetelmässä käytetään erityistä aallokemuunnostekniikkaa, jonka ansiosta kertoimien
arvot pysyvät kokonaislukuina. Tämän avulla bittitason operaatioita voidaan suorittaa
ilman haitallisia pyöristysvirheitä. Artikkelissa menetelmää on sovellettu
puhesignaaliin, mutta sama periaate pätee myös kuviin.
Taajuustason muunnoksetkin ovat havaittavissa tilatason muunnosten tapaan
tilastollisten testien avulla. Steganografiassa tiedon pitäisi olla piilotettu niin, ettei sitä
voida havaita ja tähän ongelmaan onkin kehitetty ratkaisuja. Salainen viesti voidaan
piilottaa esimerkiksi näennäissatunnaislukugeneraattorin avulla tai osaa muunnostason
kertoimista voidaan käyttää tiedon piilottamisen sijaan kuvan ominaisuuksien
muokkaamiseksi alkuperäisen kaltaiseksi. Fard et al. esittävät artikkelissaan [21]
geneettisen algoritmin tiedon piilotuksen kannalta parhaiden kertoimien määrittämiseksi
DCT-menetelmää käytettäessä. Tällä menetelmällä voidaan tieto piilottaa samaan
aikaan robustisti ja havaitsemattomasti.
Myös artikkelissa [22] on käytetty geneettistä algoritmia DCT-menetelmällä toteutetun
vesileiman luomiseen. Menetelmässä pyritään hakemaan geneettisen algoritmin avulla
optimaaliset ratkaisut tiedon piilottamisen kolmeen päävaatimukseen:
havaitsemattomuuteen, robustisuuteen ja kapasiteettiin. Edellä mainitut menetelmät [21]
ja [22] ovat perusidealtaan samanlaisia, mutta niissä on selkeästi havaittavissa
käyttötarkoituksesta johtuvia eroja toteutuksessa. Ensin mainittu menetelmä on
suunniteltu steganografiaa varten ja siinä pääpaino on kuvanlaadun optimoinnissa ja
havaitsemattomuudessa. Jälkimmäinen taas on menetelmä digitaaliseen
13
vesileimaukseen. Ehdotettujen menetelmien eroavaisuuden huomaa geneettisen
algoritmin sopivuusfunktion (fitness function) määrittelystä.
Taajuustasossa tehtävä tiedon piilotus tarjoaa toimivia ratkaisuja sekä steganografiaan ja
digitaaliseen vesileimaukseen. Geneettisten algoritmien avulla käytettävän menetelmän
ominaisuuksia voidaan optimoida sovelluskohteen mukaan ja näin saavuttaa parempi
tehokkuus tiedon piilotukseen.
14 14
3. TIEDON PIILOTTAMINEN TAAJUUSTASON
MENETELMÄLLÄ
Käytännön osuutena tässä työssä toteutettiin tiedon piilottaminen testikuvaan diskreettiä
aallokemuunnosta käyttäen. Toteutettua menetelmää verrattiin Adoben Photoshopista
löytyvään Digimarc-rutiiniin. Aikaansaaduista stegokuvista tutkittiin tiedon
piilottamisen havaittavuutta, menetelmän pakkauksenkestävyyttä ja piilotettavan tiedon
määrää. Pakkaukseen käytettiin häviöllistä jpeg-pakkausalgoritmia. Testikuvina
toimivat Matlabista löytyvät kahdeksanbittiset harmaasävykuvat Lena.jpg ja
Cameraman.jpg. Testit toteutettiin Matlabin (R2008b), Photoshopin (CS4 v.11) ja sen
mukana tulevan Digimarc:n ilmaisversion avulla.
3.1. Toteutus
Tiedon piilottamiseen aallokemuunnoksen avulla sovellettiin artikkelissa [19] esitettyä
ideaa aallokemuunnoksen ja diskreetin kosinimuunnoksen yhtäläisyyksistä. Tämä
toteutustapa valittiin, koska tavoitteena oli saavuttaa mahdollisimman hyvä häviöllisen
jpeg-pakkauksen kesto. Toteutuksen tarkoituksena oli rakentaa algoritmi, jolla voidaan
toteuttaa vesileiman piilotus kuvaan ja tämän jälkeen etsiä merkkejä vesileimasta
hyökkäyksen kohteeksi joutuneesta kuvasta.
Kuten aikaisemmin kappaleessa 2.3.1 mainittiin, ihmissilmä on herkin matalimmille
taajuuskomponenteille. Tiedon pakkauksessa tätä hyödynnetään karsimalla korkeita
taajuuksia pois kuvista. Jpeg-pakkauksessa suurinta kompressiota käytettäessä jäljelle
jäävät vain 8x8 lohkojen matalimmat taajuudet F(0,0) (kuva 3.1). Kolminkertaisella
aallokemuunnoksella päästään käsiksi tähän vastaavaan alueeseen cA3. [19]
Kuva 3.1. Kosinimuunnoksen ja kolminkertaisen aallokemuunnoksen yhtäläisyys.
15
Aluksi peitekuva luetaan tietokoneen muistiin ja kuvalle toteutetaan kolminkertainen
aallokemuunnos. Kuvassa 3.2 näkyvät alkuperäinen testikuva, sekä siitä otetun
kolminkertaisen aallokemuunnoksen vaihekuvat. Alun perin 512x512 testikuvasta jää
taajuustason muunnosten jälkeen jäljelle 64x64 alue vesileiman sijoitusta varten. Tämä
operaatio suoritetaan vesileimauksen kohteena olevalle kuvalle ja tämän jälkeen edetään
kuvassa 3.3 esitellyn algoritmin mukaiseen varsinaiseen vesileiman liittämiseen.
Kuva 3.2. Testikuvalle Lena.jpg suoritettu kolminkertainen aallokemuunnos.
Vesileimana toimii näennäissatunnaislukugeneraattorilla luotu matriisi W, joka
sijoitetaan kuvaan kertomalla sillä peitekuvan muunnostason kertoimia:
(3.1)
Kertolasku suoritetaan siten, että matriisien vastinalkiot kerrotaan keskenään. Tämä
operaatio on samankokoisten matriisien Hadamard tulo, jota merkitään tässä työssä
symbolilla . Kaavan 3.1 muut muuttujat ovat peitekuva I, operaation tuloksena
saatava stegokuva IW ja parametri α, jonka arvoa muuttamalla säädetään vesileiman
vahvuutta. Mikäli tavoitteena on luoda mahdollisimman robusti vesileima, asetetaan α:n
arvo suureksi. Tällöin kuitenkin kuvaan muodostuu kuvanlaatua heikentäviä artefakteja.
16
Kuvassa 3.4 olevista testikuvien suurennoksista voidaan havaita häiriöitä α:n arvoa
kasvatettaessa. Samalla huomataan myös, että vesileiman vahvuus riippuu käytettävästä
peitekuvasta. Tässä tapauksessa testikuva Lena.jpg toimii paremmin vahvemman
vesileiman kanssa.
Toteutettu menetelmä vaatii vesileiman irrottamiseen sekä stegokuvan että alkuperäisen
peitekuvan. Tämän lisäksi tarvitaan tieto käytetystä α:n arvosta ja vesileiman luontiin
käytetty avain. Tästä johtuen menetelmä on näkevä (non-blind). Piilotetun tiedon esille
saamiseen tarvittavan tiedon suuri määrä tekee siitä huonon menetelmän steganografiaa
varten. Tässä tapauksessa oli kuitenkin tarkoituksena luoda robusti vesileima, joten
tämä ei ole niin haitallinen vaatimus.
Kuva 3.3. Käytetyn vesileiman piilotus- ja lukualgoritmin pseudokoodit.
17
Digimarc-rutiini käyttää tiedon piilotuksessa sekä taajuus- että tilatason menetelmiä.
Ohjelman valmistajan sivuilla menetelmää kutsutaan sekatasotekniikaksi (mixed domain
technique). Tarkkaa algoritmia rutiinin toiminnasta ei ole saatavilla, koska ohjelma on
kaupallinen toteutus. Perusideana menetelmässä on jakaa kuva useaan lohkoon, joihin
jokaiseen asetetaan vesileima. Itse vesileiman sijoitus tehdään hajaspektritekniikalla.
Tällöin piilotetun tiedon peitekuvaan aiheuttamat häiriöt saadaan minimoitua. Digimarc
tarjoaa myös pelkkää digitaalista vesileimaa laajempia ominaisuuksia, kuten esimerkiksi
mahdollisuutta jäljittää vesileimattuja kuvia verkosta, mutta näihin ominaisuuksiin ei
tutustuta tarkemmin tässä työssä. [23]
Kuva 3.4. Vesileiman α-arvon vaikutus havaittavuuteen omassa toteutuksessa.
3.2. Testaus
Testausta varten molempiin testikuviin piilotettiin vesileima neljällä tavalla.
Kappaleessa 3.1 esitellyllä omalla toteutuksella asetettiin vesileima kahdella
vahvuudella ja saatuja tuloksia verrattiin Adoben Photoshop-kuvankäsittelyohjelmiston
mukana tulevan Digimarc-rutiinin vesileimaan. Digimarc:sta käytettiin testaukseen
myös kahta eri vahvuista vesileimaa.
18
Vesileiman sijoituksen jälkeen testikuvat pakattiin Matlabilla käyttäen häviöllistä jpeg-
pakkausalgoritmia. Pakkaus toteutettiin 11 eri laadulla siten, että paras laatu oli 100 ja
huonoin 0. Pakkauskestävyyden lisäksi menetelmistä testattiin havaittavuutta
visuaalisella tarkastelulla ja laskemalla MSE- ja PSNR-arvot.
3.2.1. Kuvassa havaittavat muutokset
Visuaalisessa tarkastelussa omalla toteutuksella ei havaittu muutoksia testikuvissa
heikompaa vesileimaa käytettäessä, mutta vahvempaa vesileimaa käytettäessä kuviin
muodostui havaittavia artefakteja. Digimarc:lla asetettu vesileima ei myöskään
aiheuttanut heikompana versiona testikuviin havaittavia muutoksia. Sen sijaan
Digimarc:n vahvempi vesileima muutti testikuvaa Cameraman.jpg huomattavasti.
Erityisesti muutos on havaittavissa kuvassa olevan miehen takin alareunasta, joka on
selkeästi vaaleampi kuin alkuperäisessä kuvassa (kuvat 3.5 ja 3.6).
Kuvatiedostoa tarkastellessa voidaan myös huomata Digimarc:lla asetetun vesileiman
lisäävän tiedoston kokoa alkuperäiseen verrattuna (taulukko 3.1). Omassa toteutuksessa
muutos kuvatiedoston koossa on lähes olematon. Tämä ero ei kuitenkaan johdu siitä,
että oma toteutus olisi parempi. Syynä tähän ovat todennäköisesti Digimarc:n
vesileiman lisäksi tarjoamat muut ominaisuudet, jotka kasvattavat stegokuvan kokoa.
Digimarc-rutiinilla luodut stegokuvat saivat omalla toteutuksella luotuja stegokuvia
heikompia tuloksia laskettaessa kuvien MSE- ja PSNR-arvoja (taulukko 3.1). Kuvien
visuaalisen laadun tarkastelu ei kuitenkaan tue näitä tuloksia, sillä esimerkiksi
testikuvassa Lena.jpg oman toteutuksen vahvempi vesileima aiheuttaa selkeästi
havaittavia muutoksia kuvaan (kuva 3.4), vaikka sen PSNR-arvo on suurempi kuin
Digimarc:n vahvemman vesileiman, joka ei aiheuta näkyviä virheitä testikuvaan.
Testikuvan Cameraman.jpg kohdalla on jälleen nähtävissä häiriötä omalla toteutuksella
vahvempaa vesileimaa käytettäessä. Samalla testikuvalla on nähtävissä muutoksia myös
Digimarc:n vahvemman vesileiman tapauksessa.
Stegokuvien häiriöt ovat erilaisia. Omalla toteutuksella ne näkyvät kuvan 3.4 kaltaisina
neliöinä ja Digimarc:n kohdalla taas stegokuvan tummien alueiden vaalentumisen
alkuperäiseen kuvan verrattuna. Tämä johtuu eroavaisuuksista vesileiman
piilotustavassa. Oman toteutuksen kohdalla kaikkia muunnostason kertoimia on
muokattu vesileimalla, jolloin osa arvoista saattaa muuttua paljon ja tällöin erottua
stegokuvasta. Digimarc:n algoritmi muokkaa hajaspektritekniikalla tilatasossa vain osaa
kuvan pikseliarvoista, ja tällöin stegokuvaan ei synny niin suuria eroavaisuuksia.
19
Kuva 3.5. Alkuperäinen testikuva Lena.jpg (a), omalla toteutuksella (α=0.05) tehty
stegokuva (b), omalla toteutuksella (α=0.025) tehty stegokuva (c), Digimarc:n
vahvempi vesileima (d) ja heikompi vesileima (e).
20
Kuva 3.6. Alkuperäinen testikuva Cameraman.jpg (a), omalla toteutuksella (α=0.025)
tehty stegokuva (b), omalla toteutuksella (α=0.015) tehty stegokuva (c), Digimarc:n
vahvempi vesileima (d) ja heikompi vesileima (e).
21
Taulukko 3.1. Toteutusmenetelmien kuvankoko, MSE ja PSNR.
Kuvan koko (Kt) MSE PSNR (dB)
Lena.jpg 158
Oma toteutus (α=0.025) 158 3,60 42,56
Oma toteutus (α=0.05) 159 14,12 36,63
Digimarc (heikko) 168 6,30 40,14
Digimarc (vahva) 182 21,96 34,71
Cameraman.jpg 109
Oma toteutus (α=0.015) 112 1,39 46,70
Oma toteutus (α=0.025) 112 3,72 42,43
Digimarc (heikko) 148 4,71 41,40
Digimarc (vahva) 166 16,15 36,05
3.2.2. Pakkauksenkestävyys
Piilotetun vesileiman kestävyyttä häviöllisen pakkauksen tapauksessa tutkittiin
pakkaamalla stegokuvat eri jpeg-laaduilla ja tämän jälkeen etsimällä vesileimaa
tuloskuvista.
Kuvassa 3.7a on oman toteutuksen vesileiman kunto pakkauksen jälkeen testikuvan
Lena.jpg kohdalla. Kuvaajasta voidaan nähdä leiman pysyneen hyvin sekä heikompana
että vahvempana versiona pakkauksesta huolimatta. Kuvassa 3.7b on vastaava kuvaaja
testikuvalle Cameraman.jpg. Tässä tapauksessa vesileiman laatu on huomattavasti
heikompi pakkauksen jälkeen.
Digimarc:n tapauksessa ohjelma ilmoittaa vesileiman vahvuuden näyttämällä käyttäjälle
graafisen palkin, jossa on vahvuusasteikko. Kuvassa 3.8a on tulokset testikuvalle
Lena.jpg ja kuvassa 3.8b testikuvalle Cameraman.jpg. Vahvuusasteikolla 0 tarkoittaa
sitä, että Digimarc ei kyennyt löytämään kuvasta vesileimaa. Muutoin arvot kuvaavat
vesileiman vahvuutta pakkauksen jälkeen. Testikuvassa Lena.jpg myös Digimarc toimii
hyvin ja selviää tuhoutumatta suurimmasta osasta pakkauksia. Toisessa testikuvassa
tulee kuitenkin ongelmia. Heikompi Digimarc:lla asetettu vesileima tuhoutuu jo, kun
jpeg-pakkauksen laatu on puolet alkuperäisestä. Vahvempi leima sen sijaan kestää
edelleen hyvin.
22
Kuva 3.7. Oman toteutuksen pakkauksenkestävyys (a) testikuvalla Lena.jpg ja (b)
testikuvalla Cameraman.jpg.
Kuva 3.8. Digimarc:n pakkauksenkestävyys (a) testikuvalla Lena.jpg ja (b) testikuvalla
Cameraman.jpg.
23
3.3. Tulosten arviointi
Oman toteutuksen osalta testiarvot vastasivat pitkälti odotuksia. Testikuvassa Lena.jpg
menetelmä osoittautui varsin robustiksi jpeg-pakkausta vastaan. Testikuvan tiedettiin
vaikuttavan menetelmän toimivuuteen, mutta siitä huolimatta oli pieni yllätys, kuinka
paljon testitulokset muuttuivat testikuvan Cameraman.jpg kohdalla. Digimarc-rutiini on
tarkoitettu ainoastaan kuvan vesileimaukseen ja tästä johtuen sen käyttö kasvattaa
tiedoston kokoa melko paljon alkuperäiseen verrattuna. Steganografiassa tämä olisi
huono ominaisuus, mutta digitaalisen vesileiman kohdalla sillä ei ole merkitystä mikäli
vesileima on robusti erilaisia hyökkäyksiä vastaan.
Sekä omalla menetelmällä että Digimarc-rutiinilla saadaan testikuva Lena.jpg suojattua
jpeg-pakkausta vastaan, sillä vesileiman poistamisen jälkeen tuloskuvan laatu on huono
verrattuna alkuperäiseen kuvaan. Toisen testikuvan kohdalla tulokset olivat huonommat.
Pakkaus-hyökkäyksellä saatiin tuhottua vesileimat Digimarc:n vahvempaa vesileimaa
lukuun ottamatta, tuloskuvan laadun pysyessä siedettävänä.
Tässä tutkimuksessa ei perehdytty häviöllisen pakkauksen lisäksi muihin mahdollisiin
hyökkäyksiin, joten testitulokset antavat varsin yksipuolisen kuvan menetelmien
todellisesta robustisuudesta hyökkäyksiä vastaan. Digimarc:n kohdalla muunlaisiin
hyökkäyksiin on varmasti varauduttu, mutta oma toteutus on suunniteltu vain häviöllistä
pakkausta ajatellen. Toteutuksen taustalla olevan teorian perusteella sen voi olettaa
olevan jossain määrin robusti myös muita hyökkäyksiä vastaan, mutta ilman käytännön
testausta tätä ei voi varmistaa.
24
4. JOHTOPÄÄTÖKSET
Nykytekniikalla toteutettu tiedon piilotus tarjoaa toimivia työkaluja moneen
tilanteeseen. Analogiset tiedon piilotusmenetelmät vaativat paljon erikoislaitteistoa
(microdot) tai olivat muutoin epäkäytännöllisiä yksinkertaistenkin viestien
piilottamisessa. Digitaalitekniikan kehityksen myötä tiedon piilotuksesta on tullut
yksinkertaisempaa ja nykyisin yksityishenkilöidenkin saatavilla on monenlaisia
ohjelmistoja tiedon piilotukseen.
Suurin kaupallinen mielenkiinto tiedon piilotuksessa on varmasti digitaalisen
materiaalin tekijänoikeuksien suojaamisessa. Viimeisimmistä tutkimusjulkaisuista
voidaan nähdä, että nykyisin on kehitetty menetelmiä jotka ovat erittäin robusteja
erilaisia hyökkäyksiä vastaan. Kun samaan aikaan piilotettavan tiedon kapasiteettia on
saatu kasvatettua, on tämä mahdollistanut monimuotoisempien ominaisuuksien
lisäämisen vesileimojen yhteyteen. Esimerkiksi käytännön toteutuksessa
vertailukohteena ollut Digimarc tarjoaa pelkän digitaalisen vesileimauksen lisäksi
laajempaa kokonaispalvelua, Digimarc Mediabridgeä [23]. Tämän kokonaisuuden
avulla digitaalisen vesileiman käyttötarkoitusta voidaan laajentaa pelkästä
tekijänoikeuksien valvonnasta laajempaan tunnistukseen. Palvelun avulla voi
esimerkiksi tunnistaa mainoskuvasta yrityksen ja saada tämän yhteystiedot tai siirtyä
yrityksen kotisivuille.
Työn kokeellisessa osiossa toteutettiin järjestelmä, jolla voidaan asettaa kuvaan
digitaalinen vesileima. Toteutetulla järjestelmällä saatiin onnistuneesti piilotettua
vesileima testikuviin ja myös tavoitteena ollut robustius häviöllistä pakkausta vastaan
saavutettiin osittain. Järjestelmä ei kuitenkaan sovi käytännön sovellutuksiin ilman
laajoja muokkauksia. Nykyisessä muodossa järjestelmä toimii vain testipenkkinä
suunnittelun takana olleelle teorialle. Tässä työssä käytetty testimateriaali on suppea ja
sen perusteella on vaikea tehdä johtopäätöksiä käytetyn menetelmän soveltuvuudesta eri
kuville. Tämä ongelma tosin on vaikea ratkaista, sillä myös Digimarc:lla piilotettu
vahvempi vesileima aiheutti havaittavia häiriöitä testikuvalla Cameraman.jpg.
Kehitettävää omassa menetelmässä olisi myös vesileiman havainnoinnissa. Siihen tulisi
määrittää tietyt arvot, joiden perusteella voitaisiin sanoa varmasti onko vesileima
paikalla vai ei. Nykyisellään menetelmä ilmoittaa vain korrelaation alkuperäisen ja
testikuvasta löydetyn vesileiman välillä, eikä ota kantaa siihen mikä arvon tulisi olla
jotta vesileiman voitaisiin tulkita olevan havaittavissa. Piilotetun vesileiman kestävyyttä
25
pitäisi myös testata häviöllisen pakkauksen lisäksi muita hyökkäyksiä vastaan. Tässä
työssä mielenkiinnon kohteena olleiden digitaalisten valokuvien lisäksi esitellyt teoriat
ja menetelmät soveltuvat pienin varauksin myös tiedon piilottamiseen muunlaiseen
digitaalisen peitemateriaaliin. Olisikin mielenkiintoista tutkia minkälaisia tuloksia
saavutettaisiin esimerkiksi äänisignaalin tapauksessa.
26
5. LÄHDELUETTELO
[1] (2009) Merriam-Webster Online Dictionary. [Online]. http://www.merriam-
webster.com/dictionary/steganography
[2] S. Katzenbeisser and F. A. P. Petitcolas, Information Hiding Techniques for
Steganography and Digital Watermarking. Boston: Artech house, 2000.
[3] I. J. Cox, M. L. Miller, J. A. Bloom, J. Fridrich, and T. Kalker, Digital
Watermarking and Steganography. Burlington: Morgan Kaufman Publishers,
2008.
[4] G. J. Simmons. (1984) Advances in Cryptology: Proceedings of Crypto.
[Online]. http://dsns.csie.nctu.edu.tw/research/crypto/HTML/PDF/C83/51.PDF
[5] R. J. Anderson and F. A. P. Petitcolas, "On the Limits of Steganography," IEEE
journal on selected areas in communication, vol. 16, no. 4, pp. 474-481, 1998.
[6] M. Carli, Perceptual Aspects in Data Hiding. Tampere: Tampereen teknillinen
yliopisto, 2008, Ph.d. Thesis.
[7] D. Neeta, K. Snehal, and D. Jacobs, "Implementation of LSB Steganography and
Its Evaluation for Various Bits," in 1st International Conference on Digital
Information Management, 2006, pp. 173-178.
[8] J. Fridrich, M. Goljan, and R. Du, "Detecting LSB steganography in color and
gray-scale images," Magazine of IEEE Multimedia and Security, vol. 8, no. 4,
2001.
[9] A. Westfield and A. Pfitzmann, "Attacks on Steganographic systems," in In
proceedings of information hiding - third international workshop, 1999.
[10] M. Chen, R. Zhang, X. Niu, and Y. Yang, "Analysis of current steganography
tools: classifications & features," in Intelligent information hiding and
multimedia signal processing, Beijing, 2006, pp. 384-387.
[11] Y. Srinivasan, B. Nutter, S. Mitra, B. Phillips, and D. Ferris, "Secure
transmission of medical records using high capacity steganography," in
Computer-Based Medical systems, 2004, pp. 122-127.
[12] H. Qi, W. E. Snyder, and W. A. Sander, "Blind consistency-based stganography
for information hiding in digital media," in Multimedia and Expo, vol. 1, 2002,
pp. 585-588.
[13] K. S. Babu, et al., "Authentication of Secret Information in Image
Steganoraphy," in TENCON, 2008, pp. 1-6.
[14] H.-J. Zhang and H.-J. Tang, "A Novel Image Steganography Algorithm Against
Statistical Analysis," in Machine learning and cybernetics, vol. 7, 2007, pp.
3884-3888.
27
[15] L. Xiangyang, L. Bin, and L. Fenlin, "A Dynamic Compensation LSB
Steganography Resisting RS steganalysis," in SoutheasatCon, 2005, pp. 244-
249.
[16] I. A. Nasir, Y. Weng, and J. Jiang, "A New Robust Watermarking Scheme for
Color Image in Spatial Domain," in Third international IEEE Conference on
Signal-Image Technologies and Internet-Based System, Bradford, 2007.
[17] R. C. Gonzalez and R. E. Woods, Digital image processing. New Jersey:
Pearson Prentice hall, 2008.
[18] A. Skodras, C. Christopoulos, and T. Ebrahimi, "The JPEG 2000 still image
compression standard," Signal Processing Magazine, vol. 18, no. 5, pp. 36-58,
Sep. 2001.
[19] J. Xu, A. H. Sung, P. Shi, and Q. Liu, "JPEG Comprerssion Immune
Steganography Using Wavelet Transform," in Information technology: coding
and computing, 2004.
[20] S. S. Shahreza and M. T. M. Shalmani, "High capacity error free wavelet
Domain Speech Steganography," in IEEE International Conference on
Acoustics, Speech and Signal Processing, 2008. ICASSP 2008., 2008, pp. 1729-
1732.
[21] A. M. Fard, M.-R. Akbarzadeh-T, and F. Varasteh-A, "A New Genetic
Algorithm Approach for Secure JPEG Steganography," in Engineering of
intelligent systems, Mashhad, 2006, pp. 1-6.
[22] C.-M. Chu, H.-C. Huang, and J.-S. Pan, "An Adaptive Implementation for DCT-
Based Robust Watermarking with Genetic Algorithm," in Innovative computing
information and control, 2008.
[23] A. M. Alattar. Digimarc kotisivu. [Online].
https://www.digimarc.com/resources/docs/tech_papers/dmrc_bridging_printed_
media.pdf