Hrvatski matematički elektronski časopis math.e

http://www.math.hr/~mathe/

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.

princip steganografije
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.

prikrivna slika
Slika 2: Prikrivna slika

stegoslika
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.

stegoslika
Slika 4: Prikrivna slika

stegoslika
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:

prikrivna slika
Slika 6: Prikrivna slika

tajna slika
Slika 7: Tajna slika

stegoslika
Slika 8: Stegoslika

izvucena tajna slika
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