Steganografija
Sanja Zeljković
Sadržaj:
1. Uvod
2. Moderna steganografija
3. BMP format
4. LSB supstitucija
5. Skrivanje u slike
koje sadrže samo nijanse sive boje
6. Image downgrading
7. Napomene
8. Literatura
1. Uvod
Steganografija je znanstvena disciplina koja se bavi skrivanjem
informacija. Riječ steganografija dolazi od grčkih riječi steganos i
graphein, što u doslovnom prijevodu znači skriveno pisanje.
Steganografskim tehnikama tajna se poruka skriva unutar neke druge
bezazlene poruke tako da se postojanje tajne poruke ne može uočiti.
Ova znanstvena disciplina poznata je od davnina. Herodot je u svojim
"Pričama" spominje još 400. god. prije Krista. Iz tog vremena datira
jedna poznata steganografska metoda: nositelju poruke se
obrije glava, a onda se na nju utetovira poruka koju sakrije
narasla kosa. Primatelj jednostavno obrije glavu
nositelja da bi došao do poruke. Zanimljivo je da su se ovom tehnikom
koristili njemački špijuni početkom 20. stoljeća. Poznati primjeri
steganografije korištene u svjetskim ratovima su i nevidljive tinte, te
fotografije reducirane do veličine točkice. U spisateljskom svijetu
najraširenija je steganografska tehnika akrostih.
2. Moderna steganografija
Moderna se steganografija odnosi na skrivanje tajnih poruka u
redundantnim dijelovima prikrivne datoteke (datoteke nositelja poruke).
Digitalna tehnologija daje pregršt mogućnosti za primjenu
steganografije, uključujući i onu najrašireniju - metodu skrivanja
informacija u digitalnoj slici.
Digitalne datoteke pohranjene su u računalu kao nizovi bitova od kojih
su neki više, a neki manje važni. Redundantni bitovi ne nose
informacije važne za datoteku pa ih neprimjetno možemo zamijeniti bitovima
informacije koju želimo sakriti. Napomenimo da nisu sve digitalne
datoteke pogodne za skrivanje tajni. Na primjer, u izvršnim verzijama
programa važan je svaki bit pa promjena samo jednog bita može uzrokovati
neispravan rad programa.
Kod primjene steganografije najčešće se koristi sljedeći osnovni
princip. Pošiljatelj skrivene poruke m nasumice odabire
bezazlenu poruku c - prikrivnu datoteku (sliku, zvuk, tekst)
koju može nesmetano poslati primatelju. Nakon što je odabrao prikrivnu
datoteku, u nju umeće poruku nekom steganografskom metodom, a možda i
uporabom tajnog ključa k, te tako od prikrivne datoteke
c dobiva stegoobjekt s. Promatrač. koji vidi na prvi
pogled bezazlenu poruku s, ne smije otkriti postojanje tajne
poruke. Kako promjene na prikrivnoj datoteci ne bi smjele biti
vidljive nikome tko ne sudjeluje u procesu komunikacije, ona mora
sadržavati dovoljno redundantnih bitova koji mogu biti zamijenjeni
skrivenom porukom. U idealnom slučaju ni čovjek ni računalo ne bi
smjeli uočiti razliku između prekrivača i stegoobjekta.
|
Slika 1:
Princip steganografskog procesa
|
U ovom članku objasnit ćemo LSB supstitucijsku metodu, koja se
najčešće primjenjuje na slikovne datoteke u BMP formatu. Zato recimo
nešto o BMP formatu.
3. BMP format
BMP format je 16, 24 ili 32-bitni slikovni format te je uz GIF i JPEG
najčešći format. U steganografiji se najčešće koristi 24-bitni BMP
format. 24-bitne slike osiguravaju mnogo prostora za skrivanje
podataka, no nedostatak im je veličina. Jedna 24-bitna slika
standardne veličine 1024x768 piksela zauzima otprilike 2,25 Mb.
U 24-bitnom slikovnom formatu, kao što je BMP, boja je predstavljena
kao kombinacija crvene, zelene i plave. Svaku od ovih boja predstavlja
1 bajt. Kombinacija od po jednog bajta crvene, zelene i plave
daje 3 bajta (24 bita) koji predstavljaju 1 piksel. Svaki piksel može
poprimiti jednu od 224 (oko 16.7 milijuna) nijansi.
4. LSB supstitucija
LSB (least significant bit) supstitucija jedna je od najčešćih
steganografskih tehnika - najmanje značajni bitovi odabrane prikrivne
datoteke zamijene se bitovima tajne poruke. Ova tehnika se lako
primjenjuje na slikovne datoteke.
Velika količina
informacija može se sakriti malim ili potpuno neuočljivim utjecajem
na datoteku nositelja skrivene informacije. Na primjer, želimo li
sakriti poruku u svaki bajt 24-bitne slike, možemo spremiti 3 bita u
svaki piksel (1 bit u kanal svake boje). Slika dimenzija 1024x768
piksela može sakriti
1024 768 3 = 2359296 bitova informacija.
To je 294912 bajta ili 288 kilobajta informacija. To je velika
količina, no stegoslika ljudskom oku izgleda identično kao i
original. Pretpostavimo da želimo sakriti slovo A. Njegov ASCII
ekvivalent iznosi 65(10), što je binarno
01000001(2). Za skrivanje su nam dovoljna 3 piksela.
Neka su ti pikseli
(00100111, 11101001, 11001000)
(00100111, 11001000, 11101001)
(11001000, 00100111, 11101001).
Umetanje binarne vrijednosti slova A u tri piksela rezultira s
(00100110, 11101001, 11001000)
(00100110, 11001000, 11101000)
(11001000, 00100111, 11101001).
Samo su podebljani bitovi (3 bita od 9 najmanje značajnih)
promijenili vrijednost. U prosjeku se primjenom ove metode promijeni
samo polovica najmanje značajnih bitova. Piksel koji se najviše
promijenio, promijenio se za dvije nijanse, što je u odnosu na 16,7 milijuna
nijansi zanemarivo za ljudsko oko.
Dakle, ako želimo sakriti tajnu poruku unutar slikovne datoteke,
prvi korak je odabir prikrivne datoteke. Nakon što su prikrivna
datoteka i tajna poruka odabrane, bira se podskup najmanje značajnih
bitova prikrivne datoteke (skup prikrivnih bitova). Broj bitova u
odabranom skupu odgovara broju bitova tajne poruke. Tada se nekim
redoslijedom svaki prikrivni bit zamjenjuje bitom tajne poruke,
sve dok svi nisu zamijenjeni. U najjednostavnijem slučaju LSB supstitucije tajni se bitovi pohrane u najmanje značajni bit (LSB)
svakog piksela po redu.
Da bi rekonstruirao poruku, primatelj mora znati podskup najmanje
značajnih bitova u koje je poruka skrivena. Tehnikom obrnutom od
umetanja "izvlači" najmanje značajne bitove, slaže ih
pravim slijedom i dobiva poruku.
Kada bismo tajnu poruku ovom metodom skrivali u 2, 3 ili 4 najmanje
značajna bita elemenata prikrivne datoteke, još uvijek bi ljudsko oko
teško moglo primijetiti razliku u odnosu na original.
Primjer: Tajna poruka umetnuta je tako da su 3 bita crvenog i
zelenog kanala te 2 bita plavog kanala zamijenjena bitovima tajne
poruke.
|
Slika 2:
Prikrivna slika
|
|
Slika 3:
Stegoslika
|
Primjer: Tajna poruka umetnuta je tako da su 3 bita crvenog i
zelenog kanala te 2 bita plavog kanala zamijenjena bitovima tajne poruke.
|
Slika 4:
Prikrivna slika
|
|
Slika 5:
Stegoslika
|
5. Skrivanje u slike
koje sadrže samo nijanse sive boje
Evo jedne ideje kako sakriti poruku u sliku koja sadrži samo nijanse
sive boje. Svaki piksel takve slike poprima vrijednosti (0,0,0),
(1,1,1), ..., (255,255,255). Dakle, njegova boja je oblika
(X,X,X).
Kako svaki znak poprima vrijednost N između 0 i 255,
možemo ga prikazati u bazi 4 u obliku:
N = R1 43 +
G1 42 +
R2 4 + G2,
gdje R1, R2,
G1, G2
poprimaju vrijednosti od 0 do 3.
Kako je naš prvi piksel u sivoj boji, njegova je vrijednost oblika (X,X,X) za neki X od 0 do 255, pa možemo
napraviti zamjenu:
(X - R1, X - G1,
X)
(od crvenog kanala oduzmemo R1,
od zelenog oduzmemo G1, plavi ne diramo).
Sljedeći je piksel oblika (Y,Y,Y) pa i na njemu
obavimo zamjenu:
(Y - R2, Y - G2,
Y).
Naš je znak sad skriven, a za skrivanje su nam bila potrebna
2 piksela. Kako su se i crveni i zeleni kanal promijenili za
najviše 3, promjena boje je neprimjetna. Možemo primijetiti i to da
plavi kanal nije promijenjen pa je rekonstruiranje poruke trivijalno.
Napomenimo još samo to da iako stegoslika izgleda kao da sadrži
samo nijanse sive, vrijednosti piksela više nisu oblika
(X,X,X).
6. Image downgrading
Manipulacijom najmanje značajnih bitova možemo sakriti i
jednu slikovnu datoteku u drugu. Ova metoda naziva se image
downgrading. Pretpostavimo da pošiljatelj želi tajno prenijeti
slikovnu datoteku. U tom slučaju on odabire drugu bezazlenu
sliku istih dimenzija, koja će mu poslužiti kao prikrivna datoteka.
Kada odabere dvije slike istih dimenzija, zamjenjuje 4 najmanje
značajna bita u prikazu boje svakog piksela prikrivne datoteke
s 4 najviše značajna bita prikaza boje piksela tajne slike, koji se
nalaze na istom mjestu. Primatelj izvlači 4 najmanje značajna bita
svakog elementa stegodatoteke i tako dobiva najviše značajne bitove
tajne datoteke. Kada dobije po 4 najznačajnija bita svake vrijednosti
boje u svakom pikselu, ta 4 nadopuni s još 4 bita, npr. s nulama, i
dobije aproksimaciju tajne slike.
Primjer za image downgrading metodu:
|
Slika 6:
Prikrivna slika
|
|
Slika 7:
Tajna slika
|
|
Slika 8:
Stegoslika
|
|
Slika 9:
Aproksimacija tajne slike –
slika izvučena iz stegoslike
|
* slike koje prikazuju image
downgrading preuzete su sa stranice http://www.petitcolas.net
autora Fabiena A. P. Petitcolasa
7. Napomene
Navedene tehnike nisu otporne jer tajna poruka ovisi o najmanje
značajnim bitovima slike. Ti će bitovi najvjerojatnije biti
modificirani ako se koristimo bilo kojom lossy kompresijom,
kao što je JPEG. Dakle, ako stegosliku pretvorimo u
JPEG sliku i iz te verzije pokušamo izvući tajnu poruku, to nam neće
poći za rukom. Isto tako, na stegoslici ne treba primjenjivati bilo
kakve tehnike obrade.
Slike koje imaju velike površine istih boja (nijansi) "loša"
su podloga za stego-sliku jer će
se promjene na njoj lakše uočavati nego na slikama koje imaju manje,
nepravilne površine istih nijansi. Najveće promjene mogu se opaziti
na slikama koje su cijele u jednom tonu (npr. 100% bijela slika za
testove). Slika nekog krajolika, u raznim bojama koje se zbog
nepravilnosti oblika preklapaju i prelijevaju, može poslužiti kao
"dobra" podloga za prikrivnu sliku. Pažljiv odabir
slike za stegosliku vrlo je bitna stvar.
8. Literatura
[1] N. F. Johnson, S. Jajodia: Exploring Steganography:
Seeing the Unseen,
IEEE Computer 31(1998), 26-34.
[2] S. Katzenbeisser, F. A. P. Petitcolas:
Information Hiding Techniques for Steganography and Digital
Watermarking, Artech house, Boston, 2000.
[3] Fabien A.P. Petitcolas home page,
http://www.petitcolas.net/fabien/
[4] Paul Macklin: EasyBMP Project,
http://easybmp.sourceforge.net/
1. Uvod
2. Moderna steganografija
3. BMP format
4. LSB supstitucija
5. Skrivanje u slike
koje sadrže samo nijanse sive boje
6. Image downgrading
7. Napomene
8. Literatura