plik


ÿþPOLITECHNIKA BIAAOSTOCKA WYDZIAA INFORMATYKI KATEDRA Systemów Komputerowych PRACA DYPLOMOWA MAGISTERSKA TEMAT: Analiza algorytmów ukrywania w dzwiku WYKONAWCA: Marcin Tomaszewski Imi i nazwisko PODPIS: ................................. PROMOTOR: dr in|. Eugenia BusBowska Imi i nazwisko BIAAYSTOK 2006 r. Spis tre[ci Wstp 1. Wprowadzenie do steganografii 1.1. Rys historyczny 1.2. Idea ukrywania danych 1.3. Systematyka steganografii 1.4. Wybór kontenera 2. Wybrane media 2.1. Tekst 2.2. Obrazy i multimedia 2.3. ProtokoBy sieciowe 3. Dzwik jako kontener 3.1. HAS (Human Auditory System) 3.2. ZaBo|enia bezpiecznego stego- systemu 3.3. Wybrane metody 3.3.1. LSB 3.3.2. DSSS 3.3.3. Dodawanie szumów 3.3.4. Modulacja fazy 3.3.5. Autokorelacja 3.4. Podsumowanie 4. Analiza metod ukrywania w dzwiku 4.1. Zrodowisko badaD 4.1.1. Borland c++ Builder 4.1.2. Aplikacja StegoSound 4.2. Badane algorytmy 4.3. Próbki danych 4.4. Wyniki poszczególnych analiz ZakoDczenie i wnioski Bibliografia 2 Wstp Celem niniejszej pracy jest zaprezentowanie istniejcych technik i metod steganograficznych ze szczególnym naciskiem na algorytmy wykorzystujce jako kontener dzwik cyfrowy. W pracy zostaBy przeprowadzone analizy porównawcze dwóch wybranych algorytmów steganograficznych, których celem byBo okre[lenie która z nich zapewnia wy|szy stopieD bezpieczeDstwa przy pomocy badania amplitudy dzwiku. Przeprowadzone badania miaBy równie| na celu sprawdzenie czy styl muzyczny kontenera ma znaczenie dla bezpieczeDstwa ukrywanych danych. 3 1. Wprowadzenie do steganografii Steganografia jest nauk, której celem jest opracowywanie mechanizmów ukrywania danych przed niepowoBanymi oczami. Najlepsz definicj wysnuB Duncan Sellars w "An Introduction To Steganography": "The goal of steganography is to hide messages inside other harmless messages in a way that does not allow any enemy to even detect that there is a second secret present" [1] Celem steganografii jest ukrycie wiadomo[ci wewntrz innej wiadomo[ci w taki sposób, aby przeciwnik nawet nie byB w stanie wykry, |e wystpuje druga, sekretna informacja. Problem steganograficzny zostaB precyzyjnie okre[lony przez Simmonsa na przykBadzie "problemu wizniów". Alice i Bob siedz w wizieniu, w oddzielnych celach, bez mo|liwo[ci prywatnej rozmowy. Aby uzgodni plan ucieczki musz wykorzysta otwarty kanaB komunikacyjny w postaci listów, które podlegaj cenzurze. Cenzor Wendy nie przepu[ci |adnej wiadomo[ci zaszyfrowanej lub te| wydajcej si niebezpieczn. W przypadku jednego, silnie monitorowanego kanaBu komunikacyjnego klasyczna kryptografia jest nieskuteczna, wiadomo[ musi by tak przemycona, aby sprawne oko Wendy nie zauwa|yBo nic niebezpiecznego. Tu do gry wchodzi steganografia, umo|liwiajca wizniom swobodn wymian informacji.[2] 1.1. Rys historyczny Termin steganografia pochodzi z jzyka greckiego. DosBownie znaczy "ukryte pismo" od sBów steganos - ukryty i graphos - pismo. Historia ukrywania informacji siga dalekich czasów przed Chrystusem, pierwszy udokumentowany przypadek u|ycia technik steganograficznych pojawia 4 si w pismach Herodota (484 - 425 p. n. e.), który opisuje histori Histiausa uwizionego przez perskiego wBadc Dariusa. Herodot dokBadnie opisuje sposób w jaki Histiaus przekazaB informacj o swoim poBo|eniu do swego szwagra. Wiadomo[ zostaBa ukryta pod wBosami niewolnika, który zostaB wysBany z nic nie znaczcym i nie wzbudzajcym jakichkolwiek podejrzeD listem ze strony stra|y Dariusa. Niewolnikowi zgolono wBosy, w nastpnej kolejno[ci na skórze gBowy Histiaus wytatuowaB mu prawdziw wiadmo[. Gdy wBosy odrosBy, niewolnik bez trudu przeszedB przez perskie stra|e, które nie wykryBy |adnych tajnych informacji w przewo|onym przez niewolnika li[cie.[1] Na przestrzeni wielu lat techniki steganograficzne rozprzestrzeniBy si znacznie, wzrosBa ró|norodno[ stosowanych metod tajnego przekazywania informacji. Do tego celu wykorzystywane byBy np. tabliczki drewniane pokryte warstw wosku sBu|ce do nauki pisania. Informacja byBa grawerowana na drewnie a nastpnie pokrywana równ warstw wosku, doskonale wygBadzajc powierzchni deszczóBki i skutecznie przykrywajc wiadomo[. ZdarzaBy si przypadki zwinicia listu w kulk i pokrycie jej woskiem, która w nastpnej kolejno[ci poBykana byBa przez posBaDca. W miar upBywu czasu, kiedy sztuka pisania staBa si bardziej powszechna, a jako materiaBy byBy wykorzystywane ju| papier i inkaust, techniki steganograficzne ewoluowaBy. PojawiBy si specjalnie spreparowane substancje, zwane atramentami symptaycznymi, którymi mo|na byBo napisa wiadomo[ w sposób niewidoczny. W dalekich Chinach lub Egipcie popularny staB si sok z cytryny. Napis wykonany sokiem z cytryny po wyschniciu caBkowicie znikaB. Jako atramenty sympatyczne wykorzystywano równie| mleko jak i w niektórych przypadkach uryn. Wiadomo[ci napisane powy|szymi substancjami odczytywano po uprzednim podgrzaniu papieru. Wysoka temperatura utleniaBa wgiel zawarty w substancjach organicznych u|ytych jako atrament, przez co litery ciemniaBy i stawaBy si widoczne. Organiczne atramenty sympatyczne miaBy dwie du|e wady - byBy Batwe do wykrycia oraz istniaBo du|e ryzyko uszkodzenia papieru podczas podgrzewania materiaBu. Znacznie bardziej zaawansowane techniki wykorzystywaBy substancje nieorganiczne. W ok. 250 roku przed Chrystusem Filon z Bizancjum zastosowaB kwas garbarski do napisania tajnej wiadomo[ci. Podgrzewanie materiaBu nic nie 5 dawaBo, informacja nadal pozostawaBa ukryta przed nieodpowiednimi osobami. Aby j odczyta, nale|aBo papier pokry solami |elaza, które wchodziBy w reakcj chemiczn z kwasem, przez co postawione znaki ciemniaBy uwidaczniajc pismo. Niestety technika ta te| byBa niedoskonaBa - czas pomidzy napisaniem wiadomo[ci a jej odczytaniem musiaB by stosunkowo krótki. Pierwsz prac opisujc metody ukrywania wiadomo[ci byBa Steganographica napisana w 1665 roku przez Gaspari Schotti, który oparB j na podstawie badaD niemieckiego mnicha Johannesa Trithemiusa. Praktycznie ka|de kolejne opracowanie odwoBywaBo si do Steganographici uzupeBniajc zawarte w niej wiadomo[ci. PowstaBa w 1883 roku Cryptographie militaire przedstawia wiele reguB, bdcych podwalinami dzisiejszej steganografii. Napisana 24 lata pózniej w 1907 roku Les Filigranes Charlesa Biqueta przez wiele lat byBa podstaw znaków wodnych. Najwikszy rozwój steganografii nastpiB w czasie Drugiej Wojny Zwiatowej, zwBaszcza ze strony niemieckiego wywiadu. PrzykBadem mo|e by przechwycona przez wywiad amerykaDski pozornie bezpieczna depesza: Apparently neutral's protest is thoroughly discounted and ignored. Isman hard hit. Blockade issue affects pretext for embargo on by-products, ejecting suets and vegetable oils.[3] Czytajc jedynie drug liter ka|dego sBowa otrzymano: Pershing sails form NY June 1.[3] Metoda zapisywania kluczowych dla wywiadu informacji polegajca na odczycie poszczególnych znaków wiadomo[ci byBa wielokrotnie wykorzystywana. Dopiero w momencie wynalezienia systemu mikrokropek technika ta poszBa do lamusa. Wg. J. Edgara Hoovera, dyrektora FBI byBo to "arcydzieBo wrogiego wywiadu". Technika ta zostaBa zdradzona przez byBego agenta niemieckiego aparatu szpiegowskiego, gdyby nie ten fakt, prawdopodobnie amerykanie nigdy nie dowiedzieliby si o tym systemie. 6 Mikrokropki byBy to zdjcia wykonane w bardzo wysokiej rozdzielczo[ci miniaturyzowane do rozmiarów zwykBej kropki umieszczanej np. w li[cie lub znaczkach pocztowych. Wyselekcjonowanie mikrokropki i jej wielokrotne powikszenie pozwalaBo odczyta tajny przekaz. Technika ta pozwalaBa na przesBanie bardzo du|ej ilo[ci danych, Bcznie z mapami, szkicami lub planami, bdcymi prawdziwym rarytasem dla wrogiego wywiadu. W czasie trwajcej wojny obowizujca cenzura staraBa si ograniczy nie tylko wydawane publikacje, ale równie| wszelkiego typu rebusy czy krzy|ówki, bdce doskonaBym medium dla technik ukrywania wiadomo[ci. W dobie II Wojny Zwiatowej, gdy w USA prasa codzienna docieraBa do niektórych obszarów kraju z opóznieniem nawet tygodniowym, bardzo popularne staBo si wysyBanie dzienników lub tygodników rodzinie zamieszkaBej w rejonach o trudnej dostpno[ci do prasy. OtworzyBo to kolejne mo|liwo[ci dla ukrywania informacji, zwBaszcza, |e poczta byBa wielokrotnie poddawana cenzurze. System ten zwany szyfrem ksi|kowym polegaB na dziurkowaniu cienk igB poszczególnych liter w sBowach zawartych w gazetach. Adresat wiadomo[ci odczytywaB wypunktowane litery skBadajc caBe sBowa i zdania. Steganografia analogowa jednak oddaBa pole na rzecz steganografii cyfrowej, która powstaBa w momencie upowszechnienia si liczcych maszyn cyfrowych. PowstaBy nowe, ogromne mo|liwo[ci, nowe mechanizmy niezwykle trudne do wykrycia bez przeprowadzenia szczegóBowych a zarazem czasochBonnych analiz. 1.2. Idea ukrywania Idea ukrywania jest jedna i podstawowa  potencjalny agresor nie mo|e dowiedzie si o istnieniu tajnej wiadomo[ci. Kryptografia nie dysponuje narzdziami umo|liwiajcymi to  wiadomo[ mimo |e bezpiecznie zaszyfrowana jest widoczna  a to ju| wystarczajco du|e zagro|enie. W przypadku opisanego przez Herodota zdarzenia steganografia byBa jedynym narzdziem umo|liwiajcym przekazanie wiadomo[ci. Tylko i wyBcznie wiadomo[ niewidoczna mogBa zosta przepuszczona przez stra|e Dariusa. Czasami jawne istnienie informacji, mimo |e bezpiecznie zaszyfrowanej ju| jest zagro|eniem dla niej. Po przechwyceniu zaszyfrowanych informacji mo|na je 7 zniszczy w sposób nieodwracalny uniemo|liwiajc dostarczenie ich do odbiorcy. Mimo faktu, |e szyfr nie zostaB zBamany transmisja zostaBa przerwana i wymiana danych nie doszBa do skutku. Ka|da wiadomo[ zaszyfrowana wzbudza podejrzenia  informacja musi by naprawd wa|na skoro zostaBa zamknita przed niepowoBanymi oczami, informacja skutecznie ukryta, która nie jest widoczna nie wzbudzi |adnego zainteresowania. Zdjcia z wakacji, zdjcia swojego psa lub kota nie zainteresuj nikogo poza ich wBa[cicielem, dlatego te| umieszczajc w nich dane mo|na zapewni im bardzo wysoki poziom bezpieczeDstwa faktem, |e nie wzbudzaj zainteresowania osób trzecich. Kolejn cech mechanizmów steganograficznych jest mo|liwo[  znakowania plików graficznych lub multimedialnych w celu zaznaczenia np. praw autorskich. Wkomponowanie tzw. Znaku wodnego (ang. Watermark) do sygnaBu kontenera w taki sposób, aby niemo|liwe byBo jego usunicie bez znacznej utraty jako[ci zapewnia ochron praw autorskich. Jest to wykorzystywane min. W systemach zarzdzania prawami DRM (ang. Digital Rights Management). 1.3. Systematyka steganografii Tajna wiadomo[ mo|e zosta osadzona praktycznie w ka|dym typie sygnaBu. Jednak|e w zale|no[ci od formatu sygnaBu stosowane s ró|ne techniki jej umieszczania. Wiele mediów charakteryzuje si ró|nymi cechami, wic nie mo|na sprecyzowa jednego  uniwersalnego algorytmu pasujcego do ka|dego medium. Ró|ne cechy sygnaBu przykrywajcego wpBywaj na dobór nie tylko algorytmu, ale równie| na wybór miejsca osadzenia danych. Ze wzgldu na t cech steganografi komputerow mo|na podzieli na sze[ gBównych klas: " substitution systems  zastpowanie nieistotnych elementów kontenera poszczególnymi tajnymi danymi. " transform domain techniques  osadzenie informacji w zmodyfikowanej przestrzeni sygnaBu, np. w dziedzinie czstotliwo[ciowej " spread spectrum techniques  rozszerzanie widma sygnaBu  czsto wykorzystywane w dzwikach 8 " statistical methods - ukrywanie informacji poprzez zmodyfikowanie z góry okre[lonych cech statystycznych kontenera. " disortion techniques  zanieczyszczanie sygnaBu poprzez dodanie biaBego szumu zawierajcego tajne informacje " cover generation methods  osadzania wiadomo[ci w momencie tworzenia kontenera. SygnaB przykrywajcy jest specjalnie tworzony w celach steganograficznych.[4] Aby zastosowanie technik steganograficznych zapewniaBo wysoki poziom bezpieczeDstwa nale|y odpowiednio przygotowa sygnaB bdcy kontenerem wiadomo[ci. U|ycie nieodpowiedniego sygnaBu mo|e nie zapewni bezpieczeDstwa, a wrcz narazi dane na wykrycie. PrzykBadem zle wybranego medium mo|e by doskonale biaBy obraz  umieszczenie w nim nawet najdoskonalsz technik porcji danych spowoduje zachwianie doskonaBo[ci bieli i modyfikacje mog by widoczne nawet goBym okiem  taka sytuacja jest niedopuszczalna. SiBa steganografii nie le|y jednak jedynie po stronie sygnaBu przykrywajcego. Bezpieczny stegosystem musi speBni nastpujce warunki: " kontener nie mo|e zosta zmodyfikowany w sposób na tyle znaczny, |e zmiany bd widoczne okiem nieuzbrojonym. " struktura kontenera musi pozosta nienaruszona przy jednoczesnym upakowaniu danych zewntrznych " osadzona informacja musi by odporna na uszkodzenia lub celowe przetwarzanie sygnaBu poprzez edycj, samplowanie, kompresj stratn " ukryta wiadomo[ (a przynajmniej jej fragment) musi by mo|liwa do wyodrbnienia nawet w przypadku utraty cz[ci kontenera.[1] Ka|dy stegosystem nara|ony jest na uszkodzenia jak i celowe ataki ze strony potencjalnych agresorów. PrzykBadem niecelowego uszkodzenia osadzonej informacji jest potraktowanie obrazu posiadajcego ukryty przekaz osadzony prost technik LSB dowolnym edytorem graficznym  np. zastosowanie opcji sharpen, ang. Wyostrzanie. Jest to jeden z cz[ciej wykorzystywanych filtrów, zwBaszcza przy obróbce grafiki dopiero co zmniejszonej. Przy prostych technikach 9 ukrywajcych mo|e to skutecznie zniszczy tajn informacj. Do ataku na stegosystem mo|e doj[ w dwóch przypadkach. W pierwszym gBówn rol zagraB przypadek  atakujcy sprawdzajc du| ilo[ danych przypadkiem natrafiB na kontener z danymi. Jest to przypadek bardzo rzadko spotykany i raczej nieprawdopodobny. Drugi przypadek jest bardziej realny. Atakujcy miaB podstawy sdzi, |e przechwycony sygnaB zawiera  co[ ukrytego, np niepokojce szumy i zakBócenia w sygnale dzwikowym. Je|eli to bdzie miaBo miejsce wówczas stegosystem mo|na uzna ju| za bliski kompromitacji. CaBkowita kompromitacja systemu steganograficznego nastpi wówczas, gdy atakujcy system skutecznie wyodrbni dane. Klasyczny atak na stegosystem przebiega trzyetapowo: " wykrycie (ang. Detection)  atakujcy mo|e znalez si w trzech stanach na etapie wykrywanie osadzonej informacji: o mo|e wykry osadzon informacj  oznacza to peBn kompromitacj systemu o mo|e nie wykry informacji popeBniajc bBd II typu  wówczas stegosystem nie zostaje skompromitowany i osadzone informacje pozostaj bezpieczne o mo|e niepoprawnie wykry osadzon informacj popeBniajc bBd I typu  stegosystem jest na granicy kompromitacji, jednak informacja jest nadal bezpieczna.[4] Konstruujc algorytm steganograficzny d|y si do osignicia prawdopodobieDstwa wystpienia bBdu II typu równego 1. PrawdopodobieDstwo wykrycia zale|y zarówno od u|ytej techniki osadzania danych jak i od jako[ci i typu medium przykrywajcego. Je|eli zostanie wybrany nieodpowiedni sygnaB, taki w którym Batwo jest zauwa|y  zanieczyszczenia wprowadzone przez funkcj steganograficzn to prawdopodobieDstwo wykrycia znacznie wzrasta. Dysponujc pewn baz wiedzy o statystyce danego typu sygnaBu mo|na przeprowadzi atak statystyczny, przynoszcy dobre efekty. Udowodniono równie|, |e niektóre aplikacje steganograficzne osadzajc informacj nara|aj j na Batwe wykrycie przez atakujcego. Aplikacje te dziaBaj w sposób 10 szablonowy i znajc sposób jej dziaBania wiadomo gdzie i czego szuka  niektóre wrcz zapisuj informacje o sobie w pliku wynikowym. Na etapie wykrywania osadzonej informacji mo|na posBu|y si nastpujcymi metodami ataku: " stego-only attack  metoda o bardzo niskiej skuteczno[ci ze wzgldu na du| ilo[ dostpnych metod stganograficznych. Posiadanie samego stegosystemu nie gwarantuje poprawno[ci wykrycia czegokolwiek " known cover attack  atakujcy ma dostp zarówno do stegosystemu jak i pierwotnej wersji kontenera nieposiadajcego ukrytych danych " known message attack  atakujcy dysponuje peBn tre[ci ukrytego przekazu  atak majcy na celu skompromitowanie algorytmu. " Chosen stego attack  algorytm jest znany dla agresora  |adna wiadomo[ nie jest bezpieczna, prawdopodobieDstwo skompromitowania równe 1. " chosen message attack  atak polegajcy na poddawaniu próbki wcze[niej przygotowanych informacji dziaBaniu ró|nych algorytmów steganograficznych w celu wykrycia podobieDstwa lub wzorca do znanej metody. Technika ataku przypominajca metod Bamania haseB brute-force. " known stego attack  atakujcy dysponuje kompletn wiedz na temat uzytego algorytmum, posiada przechwycony stegosystem jak i oryginalny sygnaB u|yty jako medium przykrywajce.[4] " Wyodrbnianie (ang. Extraction)  je|eli na etapie wykrywania nie zostaB popeBniony bBd I typu istnieje wysokie prawdopodobieDstwo wyodrbnienia i poprawnego odczytania ukrytych informacji z kontenera. 11 " Usuwanie (ang. Deletion)  mo|e zdarzy si, |e atakujcy po wyodrbnieniu informacji z kontenera bdzie staraB si zniszczy przekaz, nie wzbudzajc podejrzeD zarówno u nadawcy jak i odbiorcy przekazu, lub informacj t sfaBszowa. Atakujcy mo|e usiBowa zniszczy wiadomo[ w momencie gdy nie uda mu si poprawnie ich wyodrbni i odczyta. Przy wykorzystaniu wielu technik zniszczenie ukrytych danych jest procesem stosunkowo prostym i niezbyt czasochBonnym. W praktyce wystpuj trzy typy algorytmów steganograficznych, których podobieDstwo zasady dziaBania mo|na zauwa|y do algorytmów kryptograficznych: " Prosty algorytm steganograficzny (ang. Pure steganography). Definicja 1: " =< C, M , D, E > , gdzie C jest zbiorem mo|liwych kontenerów (ang. Covers), M jest zbiorem wiadomo[ci, przy czym musi zachodzi wBasno[ | C |e"| M |. E : CxM ’! C jest funkcj osadzajca wiadomo[ w kontenerze, D : C ’! M jest funkcj wyodrbniajc, przy zachowaniu wBasno[ci: D(C(m,c)) = m , gdzie dla ka|dego m " M i ka|dego c "C nazywamy prostym algorytmem steganograficznym.[4] Cech gBówn prostego algorytmu steganograficznego jest to, |e wcze[niej, pomidzy nadawc i odbiorc wiadomo[ci nie musi doj[ do wymiany lub uzgodnienia klucza  wystarczy znajomo[ algorytmu przez obie strony. Aby algorytm byB bezpieczny musi by utrzymany w [cisBej tajemnicy, ujawnienie jego zasady dziaBania spowoduje totaln kompromitacj. Formalnie osadzanie przebiega nastpujco: E : CxM ’! C Gdzie C jest zbiorem wszystkich mo|liwych kontenerów za[ M zbiorem wiadomo[ci. Proces wyodrbniania to: D : C ’! M . Przy czym konieczne jest speBnienie zale|no[ci | C |e"| M | 12 Zalet prostego algorytmu steganograficznego jest fakt, |e przed wysBaniem informacji nie musi nastpi przekazanie klucza otwartym kanaBem informacyjnym, gdzie mo|e by nara|ony na przechwycenie przez osoby trzecie. Jednak|e staBo[ algorytmu znaczco odbija si na jego bezpieczeDstwie. Dysponujc odpowiednio du| ilo[ci danych do analizy mo|na zrekonstruowa struktur algorytmu, jak to ma miejsce przy Bamaniu prostych szyfrów podstawieniowych lub przedstawieniowych. " Algorytm z kluczem prywatnym Definicja 2: " =< C, M , K, Dk, Ek > , gdzie C jest zbiorem mo|liwych kontenerów, M jest zbiorem tajnych wiadomo[ci, gdzie musi wystpi wBasno[ | C |e"| M |, K jest zbiorem kluczy prywatnych, Ek : CxMxK ’! C i Dk : CxK ’! M z zachowaniem zale|no[ci Dk(Ek(c, m, k)) = m dla ka|dego m " M , ka|dego c "C i ka|dego k " K nazywamy algorytmem steganograficznym z kluczem prywatnym.[4] Rys. 1. Osadzanie i wyodrbnianie z wykorzystaniem klucza prywatnego Aby uniezale|ni si od samego algorytmu, uwa|ajc aby nie zostaB zBamany lub odtajniony wprowadzono algorytmy steganograficzne bazujce na kluczu prywatnym. Wystpuje tu pewne podobieDstwo do algorytmów kryptograficznych symetrycznych, gdzie istniaB jeden klucz  zarówno do szyfrowania jak i deszyfrowania wiadomo[ci. Warunkiem koniecznym do speBnienia jest wcze[niejsza propagacja klucza  zarówno nadawca jak i odbiorca musz posiada identyczny. PrzesyBanie otwartym i niebezpiecznym kanaBem wi|e si z ryzykiem przechwycenia klucza. Aby 13 zminimalizowa te ryzyko mo|na posBu|y si algorytmami kryptograficznymi sBu|cymi do ustalania kluczy na odlegBo[. Algorytm Diffie-Hellmana:  publicznie znane s p, która jest wystarczajco du| liczb pierwsz, oraz generator alfa dla Zp. ProtokóB ma nastpujc posta: 1. Alice wybiera Za, Bob wybiera Zb, gdzie Za, Zb d" p - 2 . liczby Zai Zb s trzymane w tajemnicy. Za 2. Alice przesyBa Bobowi liczb Ca = ± mod p , Bob przesyBa Alice Zb liczb Cb = ± mod p . Za Zb 3. jako uzgodniony klucz przyjmowana jest liczba k = ± mod p . Alice oblicza k jako (Cb)Za mod p , Bob korzysta z równo[ci k = (Ca)Zb mod p Algorytm Diffie-Hellmana mimo |e nie korzysta z |adnego szyfrowania przy przekazywaniu warto[ci obliczonych przez Alice i Boba uznawany jest za metod wzgldnie bezpieczn. Agresor podsBuchujcy transmisj pomidzy Alice i Bobem nie jest w stanie obliczy klucza k mimo znajomo[ci danych publicznych. Aby obliczy klucz k, atakujcy musiaBby wyliczy logarytm dyskretny do wyznaczenia liczb Za i Zb z Ca i Cb, gdzie nie znany jest jeszcze efektywny algorytm wyznaczania logarytmu dyskretnego.[5] Algorytm Diffie-Hellmana nie jest jedynym algorytmem wymiany klucza. Istniej jego odmiany, równie dobrze nadajce si do ustalenia kluczy steganograficznych takie jak: protokóB STS (Stadion-To-Station) lub protokóB MTI (Matsumoto Takashima Imai).[5] StaBe u|ywanie jednego klucza wi|e si z niebezpieczeDstwem jego utraty lub odkrycia przez osoby niepowoBane. Lepszym rozwizaniem s klucze jednorazowe - ich bezpieczeDstwo jest znacznie wy|sze ni| jednego, staBego klucza, gdy| nawet w przypadku odkrycia klucza przez osoby trzecie, praktycznie nie istnieje prawdopodobieDstwo odszyfrowania danych zakodowanych innymi kluczami. Wad kluczy jednorazowych jest konieczno[ posiadania karty kodów lub ksi|ki kodowej (jak np. w przypadku Enigmy). W algorytmach steganograficznych istnieje mo|liwo[ zastosowania klucza jednorazowego poprzez 14 klucz sesji. Klucz sesji jest obliczany z funkcji: K = H ( feature) [4] Gdzie H jest niezmienn, z góry okre[lon funkcj, natomiast feature jest pewn niezmienn cech kontenera. Cecha ta musi by tak wybrana, aby osadzanie wiadomo[ci nie zaburzyBo jej  w tym przypadku wyodrbnienie informacji stanie si niemo|liwe, gdy| nie bdzie sposobu na obliczenie klucza sesji przez adresata. Cech t mo|e by np dBugo[ sygnaBu dzwikowego, rozmiar kontenera w bajtach, rozdzielczo[ u|ytego obrazu, lub kombinacja tych cech razem. Zastosowanie klucza sesji zapewnia bardzo wysoki poziom bezpieczeDstwa. Praktycznie ka|dy stegosystem tworzony jest na bazie innego klucza, nie ma potrzeby wcze[niejszego ustalania lub wymiany kluczy pomidzy adresatem i nadawc. Niezbdne natomiast jest ustalenie funkcji H() i cechy. " Algorytm z kluczem publicznym Istniej pewne sytuacje gdzie u|ycie jednego klucza do osadzania wiadomo[ci, jak i do wyodrbniania nie zapewnia odpowiedniego poziomu bezpieczeDstwa, lub w przypadku gdy rozpropagowanie klucza czy te| jego ustalenie jest zbyt niebezpieczne, stegosystem mo|e zosta przedwcze[nie skompromitowany. ZupeBnie jak w przypadku kryptografii symetrycznej posiadajc wiedz na temat u|ytego algorytmu i dysponujc odpowiedni ilo[ci danych wej[ciowych do analizy, atakujcy jest w stanie odtworzy klucz. W 1990 roku w ten sposób udaBo si zBama kryptograficzny algorytm symetryczny DES, przez wiele lat uznawany za nieBamliwy metodami innymi ni| brute-force. Eli Biham i Adi shamir opracowali metod kryptoanalizy ró|nicowej bazujcej na tym, |e znany byB algorytm i dysponowano du| ilo[ci danych wej[ciowych (w przypadku 16 rundowego DES wymagane byBy 255 znane teksty jawne) dla zBamania klucza. Trzy lata pózniej nastpiB kolejny przeBom, Matusi opracowaB metod kryptoanalizy liniowej, bazujcej na liniowej aproksymacji do  odgadnicia klucza.[5] U|ycie jednego klucza do szyfrowania a drugiego klucza do odszyfrowywania dostaBo miano kryptografii asymetrycznej. W steganografii 15 asymetrycznej jeden klucz przeznaczony jest do osadzania wiadomo[ci, natomiast drugi do jej wyodrbniania. Klucz za pomoc którego nastpuje osadzania informacji w kontenerze nosi miano klucza publicznego bdcego dostpnym ka|demu. Klucz sBu|cy do wyodrbniania danych jest kluczem prywatnym, znanym jedynie dla adresata wiadomo[ci. Par kluczy publiczny-prywatny nale|y wygenerowa przed rozpoczciem transmisji. Definicja 3: Stegosystem z kluczem publicznym jest potrójnym zBo|eniem probabilistycznych algorytmów S = (SG, SE, SD) , gdzie SG(1k ) generuje par kluczy ( pk , sk )" PKxSK . SG(1k ) ’!{pk , sk} SE bierze publiczny klucz pk nale|cy do PK oraz tekst jawny m nale|cy do {0,1}. Funkcja SE zwraca wiadomo[ ukryt s: SE( pk , m) = s SD wykorzystujc prywatny klucz sk nale|cy do SK i stegosystem s, zwraca wyodrbnion wiadomo[ m. SD(sk , s) = m [4] Standardowo klucz publiczny jest kluczem mocno rozpowszechnionym i znanym szerokiemu krgu ludzi. Wiadomo[ osadzona/zaszyfrowana za pomoc klucza publicznego danej osoby mo|e zosta wyodrbniona/odszyfrowana jedynie przez wBa[ciciela klucza publicznego, posiadajcego równie| klucz prywatny. Aby techniki steganograficznej byBy jeszcze skuteczniejsze i bardziej bezpieczne mo|na posiBkowa si algorytmami kryptograficznymi. Przed osadzeniem do kontenera wiadomo[ jest szyfrowana wybranym algorytmem i dopiero szyfrogram jest umieszczany w sygnale przykrywajcym i transmitowany do odbiorcy. Wcze[niejsze u|ycie kryptografii, oprócz zmniejszenia prawdopodobieDstwa prawidBowego odczytania osadzonego przekazu poprzez podwojenie siBy systemu, zwiksza równie| prawdopodobieDstwo popeBnienia bBdu II typu przy ataku na stegosystem. Agresor nie wiedzc o fakcie wykorzystania siBy szyfrowania, nawet po prawidBowym wyodrbnieniu danych otrzyma przypadkowo wygldajcy cig 16 znaków. PrawdopodobieDstwo domy[lenia si jakiego algorytmu szyfrujcego u|yto jest bliskie 0. 1.4. Wybór kontenera Od prawidBowego wyboru sygnaBu przeznaczonego na kontener w du|ej mierze zale|y skuteczno[ ukrywania danych. Idealny kontener to taki, który zostaB stworzony bezpo[rednio w celu ukrycia w nim danych i jest [ci[le prywatny dla jego wBa[ciciela. Nie istnienie |adnej innej kopii uniemo|liwi wykorzystanie ataku typu Known-Cover-Attack. Przygotowanie kontenera zale|y od typu i wielko[ci danych jakie ma przechowywa. Niedopuszczalne s sygnaBy maBo zró|nicowane  takie jak obraz jednolicie kolorowy lub o bardzo niskim kontra[cie i ró|norodno[ci barw, sygnaB dzwikowy posiadajcy prawie pBask amplitud, dzwik stworzony z niewielkiej ilo[ci maBo zró|nicowanych ampli. Wskazane jest, aby sygnaB kontenera jak i dane do ukrycia speBniaBy w jak najwikszym stopniu zale|no[ funkcji podobieDstwa (ang. Similarity function) Definicja 4: Niech C bdzie niepustym zbiorem, Funkcja sim : C2 ’! (-",1], jest nazywana funkcj podobieDstwa dla C, je|eli dla x,y nale|cego do C zachodzi: Sim(x,y)=1 x=y Dla x<>y sim(x,y)<1 Dla systemów steganograficznych: sim(C(E(c, m)) zbiega do 1, dla ka|dego c "C i m" M , gdzie C to zbiór wszystkich mo|liwych kontenerów, E(c, m) jest funkcj osadzajc wiadomo[ m w kontenerze c.[4] Im wiksze podobieDstwo stegosystemu i kontenera tym sygnaB kontenera zostaB mniej zmodyfikowany poprzez osadzanie i przeprowadzenie stegoanalizy bdzie znaczco utrudnione. Przy doborze medium nale|y pamita o speBnieniu zale|no[ci: | C |e"| M | W przeciwnym wypadku wiadomo[ nie zostanie prawidBowo ukryta lub mo|e ulec zniszczeniu caBo[ lub jej cz[. 17 2. Wybrane media Wraz z rozwojem technologii cyfrowej steganografia musiaBa ewoluowa. Opracowanie cyfrowych no[ników informacji stworzyBo olbrzymie mo|liwo[ci dla ukrywania informacji. Dane nie byBy ju| reprezentowane analogowo posiadajc znacznie mniejsze mo|liwo[ci, sposoby osadzania jak i wyodrbniania danych ulegBy peBnej automatyzacji, wymagany nakBad pracy zmniejszyB si do operacji kilkuminutowych. To co kiedy[ wymagaBo sporej dawki wiedzy, wyobrazni i niemaBej ilo[ci czasu zostaBo zredukowane do automatycznych programów wykonujcych wszystkie |mudne czynno[ci za czBowieka. Sam sygnaB cyfrowy stworzyB kolejne mo|liwo[ci - opracowywane techniki steganograficzne s co raz doskonalsze pod wzgldem bezpieczeDstwa i niezmienno[ci kontenera. Proste zasady oszukiwania ludzkich zmysBów zostaBy wzbogacone o skomplikowane reguBy matematyczne pozwalajce uzyska lepsze efekty w stosunku do ery przedkomputerowej. Ró|norodno[ cyfrowych formatów danych stworzyBo wrcz nieograniczone mo|liwo[ci dla steganografów. Ka|da informacja zapisana cyfrowo, niezale|nie od jej formatu nadaje si w mniejszym lub wikszym stopniu do bycia kontenerem na inn wiadomo[, zale|nie od jej konstrukcji. 2.1. Tekst Tekst jawny jest jednym z najstarszych mediów wykorzystywanych w steganografii. Pozornie nieskomplikowana wiadomo[ zapisana na skrawku papieru lub w formie elektronicznej mo|e nie[ pewn dawk informacji niejawnej. Podczas II Wojny Zwiatowej steganografia tekstowa wykorzystywaBa specjalnie preparowane wiadomo[ci, gdzie przy znajomo[ci algorytmu lub klucza mo|na byBo wyodrbni inna, niejawn wiadomo[. PrzykBadem historycznym mo|e by zapisywanie wiadomo[ci w [ci[le okre[lonych literach ka|dego sBowa. Tekst jako kontener posiada jednak spore ograniczenia: - jest w stanie pomie[ci niewielk ilo[ danych - wykrycie informacji transportowanej w tek[cie jawnym jest Batwe do wykonania, nawet bez specjalistycznego oprogramowania - bardzo Batwo uszkodzi lub caBkowicie zniszczy informacj w nim zapisan. 18 Algorytmy steganograficzne bazujce na kontenerach tekstowych mo|na zakwalifikowa do dwóch grup: 1. algorytmy osadzjce informacj w sposób dajcy mo|liwo[ przechowywanie stegosystemu w formie niecyfrowej (np. Jako wydrukowany arkusz papieru) 2. algorytmy wyBcznie cyfrowe. Do pierwszej kategorii zalicza si grup mechanizmów zaproponowanych przez J. T. Brassila okre[lanych jako line-shift-coding, word-shift-coding, feature-coding, metod semantyczn i syntaktyczn. Do grupy drugiej zalicza si algorytm biaBych znaków. 2.1.1. Line shift coding Algorytm line-shift-coding opiera si na precyzyjnym manipulowaniem poBo|enia wiersza tekstu w stosunku do wierszy nad i pod nim. Przesunicie powinno mie staB warto[ i wynosi ok. 1/300 cala. Zalet tego algorytmu jest fakt, |e ukryta informacja nie zostanie zniszczona nawet po wydrukowaniu dokumentu. Badania dowiodBy, |e mo|liwe jest poprawne wyodrbnienie osadzonej wiadomo[ci nawet z 10 pokolenia oryginaBu przy fotokopiowaniu dokumentu. Natomiast podstawow wad jest to, |e prawdopodobieDstwo wykrycia informacji przez niepowoBane osoby jest bardzo wysokie i nie wymaga specjalistycznych narzdzi. Algorytm zakBada, |e przesuniciu ulegaj tylko wybrane wiersze tekstu, wic dany wiersz mo|e znalez si w jednym z trzech stanów:[6] S = {0,-1,1} gdzie S=0  brak przesunicia wiersza S=1  przesunicie wybranego wiersza w gór S=-1  przesunicie wybranego wiersza w dóB. Aby umo|liwi prawidBowe wyodrbnienie danych z tekstu nale|y zaBo|y, |e poBo|enie nie wszystkich wierszy mo|e ulec zmianie. ZaBo|ono, |e wiersze parzyste pozostaj w stanie S=0, natomiast jedynie wiersze nieparzyste mog przyj stan S=1 lub S=-1. Nie zachowujc tej zasady nie bdzie mo|na okre[li punktu odniesienia do obliczenia przesunicia. PrzykBadowo bdce w ssiedztwie wiersze: wiersz 1 - stan S=-1 wiersz 2 - stan S=-1 19 wiersz 3 - stan S=-1 s niepoprawnie zakodowane. Niemo|liwe jest jasne okre[lenie ich stanu. Równie dobrze ka|dy z nich mo|e by w stanie S=0 jak i S=1. Je|eli jednak wiersz 1 i 3 bd w stanie S=0, wówczas analizujc dokument mo|na zauwa|y, |e wiersz 2 jest na pewno w stanie S=-1. Line-shift-coding bazuje na sBowach kodowych. SBowo kodowe jest zdefiniowanym zbiorem warto[ci przesunicia poszczególnych wierszy dokumentu, w ten sposób mo|na odda reprezentacj bitow, np.: S=-1  warto[ bitowa 1 S=1  warto[ bitowa 0 Oznaczanie sBów kodowych jest dowolne i zale|ne od implementacji algorytmu. Za pomoc 19 wierszy tekstu mo|na okre[li 219 sBów kodowych co daje warto[: 524588 wszystkich mo|liwych sBów kodowych. Systemy wyodrbniajce osadzon informacj mog opiera si na jednej z dwóch metod: " baseline detection decision rule Niech wiersze i-1 oraz i +1 nie bd przemieszczone w pionie (stan S=0), wiersz i bdzie w stanie S={-1,1}, niech l bdzie odlegBo[ci pomidzy wierszami i-1 oraz i, oraz odlegBo[ci pomidzy wierszami i oraz i+1 wówczas reguBa wykrywania przesunicia wiersza przyjmuje posta: je|eli l(i-1,i)>l(i,i+1) wówczas wiersz jest w stanie S=-1 je|eli l(i-1,i)<l(i,i+1) wówczas wiersz jest w stanie S=1 je|eli l(i-1,i)=l(i,i+1) wówczas wiersz jest w stanie S=0[6] " centroid detection decision rule Niech Si-1 oraz Si bd centroidami pomidzy wierszami i-1 oraz i, a tak|e wierszami i+1 oraz i w dokumencie kontenera. Niech ti-1 oraz ti bd odpowiednimi centroidami pomidzy wierszami w niezmodyfikowanym dokumencie kontenera, wówczas reguBa ma posta: je|eli si-1  ti-1 > si  ti wówczas wiersz jest w stanie S=-1 je|eli si-1  ti-1 < si  ti, wówczas wiersz jest w stanie S=1 w pozostaBym przypadku wiersz bdzie w stanie S=0. 20 Wykorzystujc reguB baseline detection decision rule istnieje pewne prawdopodobieDstwo nieprawidBowego zinterpretowania stanów badanego wiersza. Stan S=-1 mo|e zosta odczytany jako stan S=1 i odwrotnie, co mo|e spowodowa bBd I typu w procesie wykrywania osadzonej informacji. ReguBa bazujca na centroidzie jest niepodatna na tego typu bBd. Przeprowadzajc atak na stegosystem oparty na algorytmie line-shift-coding mo|na posBu|y si analiz profilu zale|no[ci pomidzy poBo|eniem wierszy w dokumencie. Posiadajc wykres z Batwo[ci mo|na zauwa|y odchylenia od normy. Rys. 2 przykBadowy profil zale|no[ci pomidzy wierszami 2.1.2. word-shift-coding W odró|nieniu od line-shift-coding ta metoda opiera si na manipulowaniu poBo|eniem nie caBego wiersza w pionie, ale poBo|eniem pojedynczych sBów lub bloków sBów w wierszu wzgldem osi X. Najlepiej do tego celu nadaj si dokumenty wyrównane do obu krawdzi strony, aczkolwiek gdy nie ma speBnionego tego warunku u|ycie word-shift-coding jest równie| mo|liwe. Sprecyzowano dwie odmiany: " w ka|dym wierszu dokumentu odnajdywana jest najwiksza i najmniejsza odlegBo[ pomidzy sBowami. Nastpnie najwiksza odlegBo[ jest pomniejszana o staB warto[, natomiast najmniejsza powikszana o warto[ identyczn. " Wiersz dokumentu dzielony jest na trzy bloki sBów. Przesuniciom podlega jedynie blok [rodkowy wzgldem bloku skrajnie lewego lub 21 skrajnie prawego. Rys. 3. przykBadowe przesunicie w lewo sBowa  for Metoda manipulowania pozycj sBów w wierszu równie| bazuje na sBowach kodowych. SBowo kodowe mo|e zatem by zapisane za pomoc 3 stanów. S=0 gdy sBowo nie ulegBo przesuniciu S=1 gdy sBowo ulegBo przesuniciu w lewo S=-1 gdy sBowo ulegBo przesuniciu w prawo Ilo[ sBów kodowych mo|liwych do zapisania w danym wierszu dokumentu jest [ci[le zwizana z rodzajem u|ytego algorytmu oraz dBugo[ci wiersza  nie w ka|dym mo|na zmodyfikowa poBo|enie takiej samej ilo[ci sBów. Word-shift-coding jest metod bezpieczniejsz od line-shift-coding. Istnieje mniejsze prawdopodobieDstwo wykrycia przesunicia pojedynczych sBów lub bloków sBów ni| caBego wiersza. Jednak|e wraz ze wzrostem bezpieczeDstwa osadzonej informacji wzrasta ryzyko jej uszkodzenia. Jak w przypadku line-shift- coding mo|liwe byBo poprawne wyodrbnienie wiadomo[ci z 10 pokolenia fotokopii dokumentu, tak w przypadku word-shift-coding niemo|liwe to ju| jest w przypadku drugiego pokolenia. Aby móc odczyta osadzon informacj nale|y posiada zarówno stegosystem jak i oryginalny dokument, który zostaB u|yty jako kontener. W przeciwnym wypadku nie sposób okre[li przesunicie których sBów zostaBo zmienione. Rozszerzajc ten klasyczny algorytm o mo|liwo[ wykorzystania klucza mo|na wyeliminowa konieczno[ posiadania dokumentu oryginalnego. W tym przypadku klucz mo|e opisywa, które sBowa lub bloki sBów mog ulec przesuniciu.[7] 22 2.1.3. Feature-coding Najpopularniejszym kodowaniem za pomoc wybranych cech jest wykorzystanie wysoko[ci liter nale|cych do zbioru: L = {b, d, f , h, k,l,t} Algorytm feature-coding w tym przypadku opiera si na zmianie wysoko[ci znaków nale|cych do zbioru L. SBowo kodowe mo|e zosta zapisane jako  wydBu|enie lub  skrócenie wysoko[ci poszczególnych znaków. Znak mog znajdowa si w stanach[6] S=0 je|eli wysoko[ pozostaje niezmieniona S=1 je|eli wysoko[ ulegBa zmianie. Dziki czemu mo|na sBowa kodowe zapisywa binarnie. Proces osadzania danych t metod przebiega dwuetapowo: 1. wysoko[ci wszystkich znaków ze zbioru L s zwikszane lub zmniejszane o losow warto[ w celu utrudnienia osobie niepowoBanej okre[lenia ich wysoko[ci w stanie S=0. 2. SBowo kodowe jest zapisywane poprzez modyfikacj wysoko[ci wybranych znaków ze zbioru L poprzez zwikszenie lub zmniejszenie. Metoda ta zapewnia do[ wysoki poziom bezpieczeDstwa ukrytych danych, gdy| niewielka zmiana wysoko[ci znaków jest ignorowana przez ludzki mózg. Jednak w celu prawidBowego wyodrbnienia informacji niezbdny jest dokument oryginalny. U|ycie klucza steganograficznego mo|e wyeliminowa konieczno[ posiadania niemodyfikowanego oryginaBu dokumentu  klucz mo|e [ci[le wskazywa na znaki w których zapisane jest sBowo kodowe. Rys. 4. DziaBanie algorytmu feature-coding. 23 2.1.4. Metoda biaBych znaków Jest to jedyna metoda ukrywania danych w tek[cie jawnym, która nie mo|e by wykorzystywana do dokumentów przeznaczonych do druku. Wystpowanie biaBych znaków w tek[cie jest widoczne dla czBowieka jedynie w tedy, gdy s one umieszczone pomidzy znakami lub sBowami oraz gdy wystpuj na pocztku wiersza. BiaBe znaki ulokowane na koDcu wiersza s dla czBowieka nie widoczne  wyjtkiem jest dokument, w którym tekst jest wyrównany do obu marginesów  w tym przypadku nie jest zalecane u|ywanie tej metody. Poprzez dodanie okre[lonej liczby biaBych znaków takich jak spacja na koniec wiersza mo|liwe jest osadzenie sBowa kodowego binarnie. Ilo[ spacji okre[la maksymaln ilo[ bitów mo|liw do osadzenia w jednym wierszu: 2 spacje reprezentuj 1 bit, gdzie 1 spacja oznacza 0 binarne, 2 spacje 1 binarne 4 spacje reprezentuj 2 bity 8 spacji reprezentuje 3 bity.[1] Wiersz 1 __ Wiersz 2 _ Wiersz 3 __ ZakBadajc, |e znak  _ reprezentuje spacj, na powy|szych 3 wierszach zakodowano binarnie 101. Im wicej znaków spacji zostanie u|yta, tym Batwiej jest wykry, lub uszkodzi skonstruowany w ten sposób stegosystem. Mo|liwa do osadzenia ilo[ danych jest mocno ograniczona, zakBadajc kodowanie tylko 2 znakami spacji na wiersz, w dokumencie zBo|onym z 80 wierszy mo|na osadzi jedynie 10 bajtów danych: il _ wierszy I = 8 Zamiast znaków spacji mo|na u|ywa dowolnych innych biaBych znaków, niewidocznych dla czBowieka. Przez swoj prostot mechanizm ukrywania danych posiada bardzo du|e ograniczenia: 24 1. jest Batwy do wykrycia 2. bardzo du|a podatno[ na uszkodzenia 3. niewielka mo|liwa ilo[ danych do ukrycia 4. wielko[ kontenera znacznie wzrasta 2.1.5. metoda syntaktyczna Metoda syntaktyczna bazuje na ludzkiej tendencji do popeBniania bBdów ortograficznych, gramatycznych i interpunkcyjnych. ZakBadajc, |e obie konstrukcje s gramatycznie poprawne: 1) chleb, masBo i mleko 2) chleb, masBo, i mleko mo|na zaBo|y, i| w dokumencie oryginalnym, zawsze u|ywana jest forma 1), w której nie wystpuje przecinek przed spójnikiem  i . Konstruujc stegosystem opartym na interpunkcji zakBada si, |e: binarne 0 okre[lone jest jako brak przecinka przed spójnikiem (konstrukcja 1)) binarne 1 okre[lane jest jako wystpowanie przecinka przed spójnikiem (konstrukcja 2)).[8] Zapisujc w kontener sBowo kodowe nale|y zmodyfikowa ustawienie przecinka przed spójnikiem  i w odpowiednich miejscach tekstu kontenera. Pewn odmian tej metody syntaktycznej jest technika bazujca na bBdach. Je|eli poprawn konstrukcj gramatyczn jest wystpowanie znaku przecinka przed sBowem  |e i przypiszemy jej warto[ binarn 1, to usuwajc znak  , popeBniajc przy tym bBd gramatyczny mo|na zapisa stan binarny 0. Obie odmiany algorytmu steganograficznego opartego na syntaktyce charakteryzuj si du|ym poziomem bezpieczeDstwa. W procesie detekcji istnieje bardzo wysokie prawdopodobieDstwo popeBnienia bBdu II typu. Je|eli u|yty jest pierwszy wariant, który bazuje jedynie na poprawnie gramatycznych konstrukcjach wykorzystanie programów do automatycznej korekty dokumentu nie uszkodzi osadzonej zawarto[ci. Problemem jest dobór kontenera, gdy| równie| w tym przypadku osadzenie du|ej ilo[ci danych jest niemo|liwe. Dokument kontenera mo|e zosta specjalnie stworzony w celu osadzenia w nim danych, lub te|, korzystajc z gotowego tekstu 25 nale|y zapewni jego wystarczajc du| objto[. Stegosystemy utworzone metod syntaktyczn doskonale nadaj si do przekazywania ich w formie zarówno drukowanej jak i elektronicznej. Poprzez wydrukowanie ich na papier nie ma mo|liwo[ci uszkodzenia informacji niejawnej, jak ma to miejsce w technikach line-shift-coding, word-shift-coding, feature-coding lub te| metody biaBych znaków. 2.2. Obrazy graficzne W erze szeroko rozpowszechnionej komputeryzacji obrazy graficzne staBy si Bakomym kskiem dla steganografów. GBówn cech stegosystemów opartych na grafice jest bardzo du|a ilo[ danych, jak mo|na ukry, oraz wysoki poziom ich bezpieczeDstwa. Ze wzgldu na budow formatu graficznego, mo|na je podzieli na dwie gBówne kategorie: " obrazy bez kompresji stratnej  s to formaty takie jak standardowy BMP opracowany pierwotnie dla systemu IBM OS/2, a nastpnie zaadoptowany na praktycznie wszystkie pozostaBe platformy. Charakteryzuje si tym, |e przechowuje obrazy jedynie jako kombinacj 3 skBadowych barw: 1. czerwony (ang. Red) 2. zielony (ang. Green) 3. niebieski (ang. Blue) posiada bardzo prost konstrukcj i skBada si z nagBówka, opcjonalnie z palety kolorów i danych obrazu, który jest zapisywany od doBu do góry, jako lustrzane odbicie w pionie. W przypadku obrazów zapisanych w wikszej ilo[ci kolorów ni| 256 paleta kolorów nie wystpuje, a ka|dy kolor liczony jest wg K = R + 256 G + 65535 B i ka|dy piksel obrazu reprezentowany jest przez 3 bajty odpowiedzialne za poszczególne skBadowe koloru. W przypadku obrazów w trybie 256 kolorów, ka|dy piksel reprezentowany jest przez jeden bajt zawierajcy indeks do palety kolorów.[9] 26 " obrazy z kompresj stratn  najpopularniejszym formatem jest jpeg. Standard zostaB opublikowany w 1991 roku i definiuje od 4 typy kompresji: " sekwencyjny, oparty na DCT " progresywny, oparty na DCT " sekwencyjny, bez stratny " hierarchiczny kompresja stratna znaczco wpBywa na jako[ obrazu, dlatego te|, format ten jest zalecany do stosowania w przypadku grafiki nie zawierajcej du|ej ilo[ci ostrych krawdzi i maBych detali, np. zdjcia pejza|y, portrety. Kompresja stratna to metoda zmniejszania ilo[ci bitów potrzebnych do wyra|enia danej informacji, która nie daje gwarancji, |e odtworzona informacja bdzie identyczna z oryginaBem. Dla niektórych informacji algorytm kompresji stratnej mo|e odtworzy informacj w sposób identyczny.[9] Kompresja stratna wykorzystuje fakt, |e ludzki zmysB wzroku eliminuje najmniej istotne elementy obrazu w celu znacznego zmniejszenia rozmiaru pliku. W zale|no[ci od u|ywanego formatu pliku kontenera istniej ró|ne metody steganograficzne. 2.2.1. Algorytm LSB Jedna z najprostszych technik steganograficznych, przeznaczona do ukrywania informacji niejawnej w obrazach bez kompresji stratnej, nieposiadajcych palety kolorów  czyli np. Plików zapisanych w standardzie BMP TrueColor 24bits. Algorytm LSB bazuje na modyfikacji najmBodszych bitów okre[lonych bajtów, LSB  najmniej znaczcy bit (ang. Least Significant Bit). Je|eli obraz zapisany jest z 24 bitow gBbi, wówczas ka|dy piksel reprezentowany jest przez 3 bajty, opisujce poszczególne skBadowe barwy. Do zapisania jednego bajta ukrywanych danych niezbdne s zatem 3 piksele = 9 bajtów. Kolor biaBy reprezentowany jako funkcja RGB(255,255,255) w zapisie binarnym 27 bdzie miaB posta: R G B 11111111 11111111 11111111 Poddajc modyfikacji najmBodszy bit ka|dego bajtu uzyska si kolor biaBy o jeden stopieD jasno[ci ciemniejszy R G B 11111110 11111110 11111110 czyli funkcj RGB(254,254,254). Dla niedoskonaBego oka ludzkiego taka zmiana koloru jest niezauwa|alna i caBkowicie ignorowana. Dziki tej zale|no[ci mo|na swobodnie modyfikowa najmBodsze bity w obrazie zapisujc w nich informacj niejawn bez nara|ania obrazu na znaczny spadek jako[ci, lub widoczne goBym okiem zmiany. PrzykBadowo dysponujc obrazem, którego fragment ma posta binarn: 00110110 11101001 01011000 11000011 10101000 00011010 00101011 11001011 i znakiem  K o reprezentacji ASCII 1001011, mo|na go zapisa w obrazie w nastpujcy sposób: 00110111 11101000 01011000 11000011 10101000 00011011 00101011 11001011 Do zakodowania litery  K niezbdne byBo zmodyfikowanie jedynie 3 bajtów oryginalnego obrazu, co nie wpBynie znaczco na dany fragment. W przypadku maksymalnie pesymistycznym wszystkie 8 bajtów wymagaByby zamiany. Ilo[ danych mo|liwych do osadzenia metod LSB w pliku bmp TrueColor mo|na wyliczy ze wzoru: K (x y) 8 {1} 8 gdzie X jest szeroko[ci obrazu w pikselach Y jest wysoko[ci obrazu w pikselach K jest gBbi koloru w bitach. Oznacza to, |e w niewielkim obrazku o rozdzielczo[ci 100px / 100px TrueColor mo|na osadzi 3750 bajtów danych, nie obni|ajc znaczco jako[ci obrazu kontenera.[4] Aby zwikszy ilo[ danych mo|liwych do ukrycia wykorzystano sBabo[ 28 ludzkich zmysBów do rozpoznawania zmian poszczególnych barw. ZmysB wzroku jest najmniej podatny na zmiany koloru niebieskiego, natomiast najbardziej podatny na zmiany barwy zielonej. Stosunek czuBo[ci dla poszczególnych barw ma posta 3:6:1 dla modelu RGB. Oznacza to, |e modyfikacja wikszej ilo[ci mBodszych bitów dla barwy niebieskiej nie wpBynie na jako[ obrazu. Dysponujc fragmentem obrazu: 00110110 11101001 01011000 11000011 10101000 00011010 00101011 11001011 oraz znakiem ASCII  K w postaci 01001011, mo|na zapisa go jedynie na 3 bajtach obrazu  nie na o[miu jak w poprzednim przypadku: 00101101 11010110 00101011 Umo|liwia to zapisanie wikszej ilo[ci danych w tym samym obrazie, jednak kosztem jego jako[ci. Proces ukrywania informacji metod LSB przebiega wg. Schematu: for i=1 to l(c) do si<-ci endfor for i=1 to l(m) do compute index ji where to storage message bit sji<-cji endfor natomiast proces wyodrbniania przyjmuje posta: for i=1 to l(M) do compute index ji where the ith message bit is stored mi<-LSB(cji) Endor[4] W procesie wyodrbniania mo|e pojawi si problem, |e wraz z poprawnie odczytan informacj niejawn zostan wycignite szumy. Wynika to z tego, |e standardowo algorytm nie ma informacji o dBugo[ci ukrytych danych. Aby unikn za[miecania wyniku wyodrbniania zalecane jest zapisanie przed danymi informacj i ich dBugo[ci na kilku pierwszych bajtach kontenera. Konstruujc system steganograficzny oparty na metodzie LSB nale|y dokBadnie wybra plik kontenera, jaki ma zosta u|yty. W pierwszej kolejno[ci 29 musi by speBniona zale|no[: | C |e"| M | gdzie C jest maksymaln pojemno[ci kontenera w bajtach liczon ze wzoru {1}, a M jest wielko[ci osadzanej wiadomo[ci w bajtach. W zale|no[ci od u|ywanego wariantu metody LSB nale|y odpowiednio dobra obraz. W przypadku 1 metody, praktycznie nadaje si ka|dy obraz speBniajcy zale|no[ | C |e"| M |. w przypadku 2 wariantu istotne jest, aby w obrazie nie wystpowaBy pBynne przej[cia midzy odcieniami jednej barwy (tzw. Gradient), gdy| modyfikacja najmBodszych bitów mo|e znacznie zaburzy pBynno[ przej[cia. 2.2.2. Obrazy z palet kolorów W plikach graficznych, w których wystpuje paleta kolorów zastosowanie metody zmiany najmBodszego bitu jest niemo|liwe. Kolor poszczególnego piksela nie jest reprezentowany przez 3 bajty lecz jedynie 1 bajtem, zawierajcym indeks do tablicy  palety kolorów. Zmodyfikowanie najmBodszego bajtu w indeksie spowoduje znaczne zniszczenie obrazu, gdy| indeksy zaczn wskazywa na zupeBnie inne kolory.[10] Rys.5. Paleta kolorów  indeksy Proces ukrywania danych w obrazach z palet przebiega nastpujco: 1. zredukowanie palety barw. Proces ten obni|a jako[ kontenera w stosunku do oryginaBu poprzez zmniejszenie ilo[ci wystpujcych w nim kolorów. Wykonuje si to poprzez zmian odwoBaD indeksów, tak, aby barwy zbli|one do siebie zastpowany byBy tylko jednym kolorem. Redukcja palety wykonywana jest o warto[ 30 n = k2 , gdzie k przyjmuje warto[ci od 1. zredukowanie palety 256 kolorów o n=3 spowoduje, |e obraz bdzie reprezentowany jedynie przez 32 kolory co spowoduje znaczn utrat jako[ci. Redukcja ma na celu zapewnienie okre[lonej nadmiarowo[ci danych w palecie, która nastpnie bdzie u|yta do osadzania danych. Najprostszym sposobem na zredukowanie palety jest zastosowanie metody histogramowej, gdzie redukowane s kolory najrzadziej wystpujce w obrazie  takie do których indeksu jest najmniej odwoBaD. Jest to metoda zawodna, gdy| niektóre obrazy charakteryzuj si tym, |e kolor, który nie jest czsto wykorzystywany mo|e mie znaczcy wpByw na jako[ obrazu. Doskonalsz metod jest redukcja kolorów podobnych:[11] niech w palecie wystpuj barwy o zapisie dziesitnym 145 144 i 147, wówczas redukcja kolorów podobnych mo|e wyeliminowa wskazania indeksów do kolorów 145 i 147 zastpujc je kolorem 144. Spowoduje to spadek jako[ci obrazu, jednak przy odpowiednim skonstruowaniu kontenera, strata mo|e by maBo zauwa|alna. 2. Zwielokrotnienie palety kolorów. Po zredukowaniu ilo[ci kolorów w palecie barw, tablic nale|y zwielokrotni w celu uzyskania identycznego rozmiaru w stosunku do oryginaBu. Je|eli paleta zredukowana byBa ze wspóBczynnikiem n=2 to zwielokrotnienie równie| musi by przeprowadzone n-razy. Wynikiem zwielokrotnienia jest n identycznych palet umieszczonych jedna pod drug, przez co dany kolor wystpuje n-razy. Rys. 6. Zwielokrotnione palety barw 31 3. Zmiana indeksów. W zwizku z tym, |e cz[ kolorów zostaBa usunita z obrazu, kontener nale|y przeindeksowa w taki sposób, aby  martwe indeksy odnosiBy si do istniejcych kolorów w palecie. Wykonuje si to poprzez obliczenie normy luminancji dla poszczególnych barw i wskazanie na indeks najbli|szy w palecie. Norm luminancji mo|na wyliczy z normy euklidesowej: |W |= ((L11 - L12)2 + (L21 - L22)2 + (L31 - L32)2) {2} natomiast luminancj jako sum warto[ci skBadowych RGB z uwzgldnieniem wag: L = L1 + L2 + L3 , gdzie: L1=3R; L2=6G; L3=1B; wspóBczynniki równania {2} L11, L12, i L13 s wspóBczynnikami dla pierwszej porównywalnej barwy, natomiast L12, L22 i L32 s wspóBczynnikami dla drugiej porównywalnej barwy. 4. WBa[ciwe osadzenie danych Informacja niejawna kodowana jest na indeksach odwoBujcych si do palety. Je|eli tablica kolorów zostaBa zredukowana ze wspóBczynnikiem n=2, wówczas jeden kolor wystpuje 2 razy w palecie. Modyfikujc indeksy w kontenerze, tak aby poszczególne piksele odwoBywaBy si zarówno do podstawowej palety jak i zarówno do jej kopii mo|na zakodowa, |e odwoBanie do pierwszej palety jest równoznaczne z binarn warto[ci 1, natomiast odwoBanie do drugiej palety jest równoznaczne z binarn warto[ci 0. Wówczas osiem pikseli obrazu mo|e przechowywa 1 bajt danych informacji niejawnej. Redukujc palet z wy|szym wspóBczynnikiem n mo|liwe jest zakodowanie 1 bajta niejawnych danych na mniejszej ilo[ci bajtów kontenera. 5. Wymieszanie palety W ostatnim kroku, ka|d kopi palety nale|y wymiesza, tak aby wizualnie nie byBo wida, |e wystpuje kilka identycznych kopii palety, zmieniajc 32 równocze[nie odwoBania indeksów. SiB algorytmu jest fakt, |e modyfikujc kolory w obrazie poprzez np. Zciemnianie lub rozja[nianie poszczególnych fragmentów obrazu nie spowoduje utraty osadzonych informacji. Zmianie ulegn jedynie poszczególne kolory w palecie kolorów, jednak indeksy do nich pozostan niezmienione, przez co nie nastpi utrata danych. W procesie detekcji istnieje wysokie prawdopodobieDstwo popeBnienia bBdu zarówno I jak i II typu. Stego-only attack jest praktycznie niemo|liwy do poprawnego przeprowadzenia  niezbdne jest posiadanie oryginalnego, niemodyfikowanego pliku z obrazem.[10] 2.2.3. DCT DCT (ang. Discreet Cosinus Transform)  dyskretna transformata cosinusowa to jedna z najpopularniejszych blokowych transformat danych. Jest szczególnie popularna w stratnej kompresji danych[9] Transformata DCT jest wykorzystywana min. w obrazach formatu jpeg, które dziki swojej popularno[ci w sieci web staBy si jednym z gBównych zainteresowaD steganografów. Algorytm kompresji stratnej w formacie jpeg przebiega nastpujco: 1. konwersja obrazu z kanaBów RGB na luminancj i 2 kanaBy chrominancji 2. wstpne odrzucenie cz[ci pikseli ze wzgldu na ni|sz rozdzielczo[ barwy oka ludzkiego ni| rozdzielczo[ci jasno[ci 3. kanaBy s dzielone na bloki 8x8 4. na wyszczególnionych blokach dokonywana jest dyskretna transformata cosinusowa, zamieniajc warto[ci poszczególnych pikseli na [redni warto[ wewntrz bloku oraz czstotliwo[ci zmian. 5. Zastpienie [rednich warto[ci wewntrz bloku przez ró|nice wobec warto[ci poprzedniej 6. zamiana warto[ci zmiennoprzecinkowych na warto[ci caBkowite powodujc utrat cz[ci danych  kwantyzacja 7. wspóBczynniki DCT umieszcza si tak, aby warto[ci zerowe wystpowaBy 33 obok siebie 8. wspóBczynniki niezerowe s kompresowane algorytmem Huffmana. Po dokonaniu kompresji obrazu za pomoc DCT mo|na zauwa|y pewne efekty blokowe mogce znacznie wpBywa na jako[ obrazu, w zale|no[ci od u|ytego stopnia kompresji: - Obraz niekompresowany o rozmiarze 196662 bajtów: rys. 7. PBynne przej[cia midzy barwami spirali - Obraz potraktowany bardzo siln kompresj DCT o rozmiarze 1741 bajtów: Rys. 8. Widoczne efekty blokowe W pierwszym etapie dziaBania algorytmu steganograficznego bazujcego na plikach w formacie jpeg nastpuje podziaB kontenera na bloki o rozmiarze 8x8 pikseli w identyczny sposób co przy dyskretnej transformacie cosinusowej. ZakBada si, |e ka|dy z bloków mo|e przechowywa jedynie 1 bit informacji niejawnej, poprzez zmodyfikowanie np. wspóBczynników kwantyzacji luminancji.[9] 34 Rys. 9. Tablica kwantyzacji luminancji wykorzystywana w formacie jpeg.[4] Osadzanie danych powinno przebiega, w odró|nieniu od metody LSB lub modyfikacji palety kolorów w najbardziej istotnych elementach obrazu  fakt ten zapewnia wysoki poziom bezpieczeDstwa i odporno[ci na uszkodzenia poprzez np. ponown kompresj, danych niejawnych. Ka|dy wybrany blok bi mo|e przechowywa tylko jeden i-ty bit osadzanych danych. Aby prawidBowo ukry, a nastpnie wyodrbni dane na pocztku nale|y ustali poBo|enie dwóch modyfikowanych wspóBczynników kwantyzacji (u1,v1) i (u2,v2). Je|eli Bi (u1,v1) > Bi (u2,v2) wówczas blok kontenera przechowuje binarn warto[ 1, w przeciwnym wypadku 0. funkcja Bi ma posta: Bi = D bi [12] ( ) Odpowiednio manipulujc wspóBczynnikami kwantyzacji dla poszczególnych bloków danych mo|na ukry du| ilo[ informacji w sposób bardzo bezpieczny  dane osadzone s w wa|nych punktach obrazu, oraz s odporne na stratn kompresj obrazu. 35 2.3. ProtokoBy sieciowe Powstanie protokoBów sieciowych z rodziny stosu TCP/IP stworzyBo nowe mo|liwo[ci dla steganografii cyfrowej. Du|a ilo[ danych przemierzajcych sie zarówno globaln jak i lokaln umo|liwiBa transmitowanie równie du|ej ilo[ci informacji niejawnych w bardzo bezpieczny sposób, bez konieczno[ci u|ywania jakiegokolwiek pliku zewntrznego jako kontenera na dane. Same protokoBy posiadajce budow blokow umo|liwiaj osadzenie pewnej ilo[ci danych. TCP/IP jest protokoBem otwartym, co oznacza mo|liwo[ komunikacji midzy dowoln kombinacj urzdzeD, bez wzgldu na ich fizyczn ró|norodno[. {wiki} Model stosu protokoBów TCP/IP posiada czterowarstwow struktur: 1. warstwa Bcza, obsBugujca transmisj pakietów 2. warstwa sieciowa 3. warstwa transportowa, odpowiedzialna za dostarczenie pakietów 4. warstwa aplikacji [13] Ka|da transmisja danych oparta o protokoBy TCP/IP bazuje na datagramach, strumieD danych przeznaczony do wysBania jest dzielony na sprecyzowane na poziomie specyfikacji protokoBu paczki danych, opatrzone odpowiednim nagBówkiem zawierajce informacje niezbdne do prawidBowego dostarczenia i odebrania ich przez adresata. Algorytmy steganograficzne wykorzystujce TCP/IP opieraj si w wikszo[ci na wystpowaniu pewnej nadmiarowo[ci danych w nagBówkach pakietów, dziki czemu sam datagram nie ulega uszkodzeniom lub zmianie. Bardzo du|a ilo[ transmitowanych pakietów w jednostce czasu umo|liwia przesBanie du|ej porcji danych niejawnych, bez konieczno[ci przygotowywania specjalnego pliku kontenera, co jest zalet takich systemów. Wad jest to, |e aby skutecznie przesBa osadzone steganograficznie dane do adresata musi nastpi bezpo[rednia transmisja danych pomidzy nadawc jak i odbiorc. Niemo|liwe jest przechowywanie sygnaBu w formie np. pliku, gdy| wszystkie niejawne dane ukrywane s w nagBówkach, które ulegaj utracie zaraz po ich odebraniu lub zakoDczeniu transmisji. 36 2.3.1. ProtokóB TCP Jest to strumieniowy protokóB obsBugi transmisji pomidzy dwoma hostami w sieci. Zapewnia wiarygodny sposób dostarczenia peBnego strumienia danych do odbiorcy poprzez kontrol bBdów oraz numery sekwencyjne, dziki którym mo|liwe jest ponowne poprawne zBo|enie danych w caBo[. PoBczenie TCP nastpuje w trzech krokach (ang. three-way handshake): 1. Nadawca wysyBa pakiet z ustawion flag SYN. 2. Je|eli odbiorca chce odebra poBczenie odsyBa pakiet z ustawionymi flagami SYN i ACK. 3. Nadawca wysyBa pierwszy pakiet danych z aktywn flag ACK i nieaktywn ju| flag SYN. Je|eli host odbiorcy nie mo|e obsBu|y poBczenia odsyBa pakiet z ustawion flag RST. W momencie zamknicia poBczenia wysyBany jest datagram z ustawion flag FIN. Rys. 10. Schemat budowy nagBówka TCP[13] Technika steganograficzna ukrywajca dane w nagBówkach TCP bazuje na 6 bitach przeznaczonych na flagi, odpowiedzialne za odpowiedni interpretacj pakietu przez transmitujce hosty. Ka|da z flag mo|e przyj warto[ci z zbioru {0,1}. istniej 64 kombinacje ustawienia flag, jednak w trakcie normalnej transmisji danych wykorzystywanych jest jedynie 29 kombinacji. Ustawienie flagi URG na warto[ 0 spowoduje, |e odbiorca bdzie ignorowaB 37 dane zapisane w polu nagBówka Urgent Pointer, co umo|liwia na zapisanie tam 16 bitów danych, nie majcych |adnego wpBywu na poprawno[ komunikacji danych. Odpowiednio skonstruowany program pozwoli na odczytanie pola Urgent Pointer i zBo|enie z nich osadzon wiadomo[. [14] 2.3.2. ProtokóB Ipv4 ProtokóB odpowiedzialny za przekazanie datagramów pomidzy dwoma hostami w sieci. Rozpoznawanie i adresowanie hostów polega na identyfikacji po unikatowych w obrbie danej sieci adresach IP. Cech charakterystyczn Ipv4 jest fragmentacja datagramów wynikajca z ró|norodnej konstrukcji sieci, dane pofragmentowane zostaj ponownie prawidBowo zBo|one, pomimo faktu, |e mog zosta odebrane w ró|nej kolejno[ci, niekoniecznie takiej w jakiej zostaBy wysBane. Wi|e si to z ustanowieniem Bcza wirtualnego przebiegajcego poprzez ró|ne wzBy sieciowe, tak, |e datagramy mog by transmitowane ró|nymi drogami. Rys. 11. Budowa nagBówka protokoBu IP Konstrukcja nagBówka protokoBu IP zakBada, |e wystpuj w nim trzy bity przeznaczone na flagi wymuszajce midzy innymi proces fragmentacji pakietu: 1. pierwszy bit zarezerwowany 2. drugi bit  flaga DF  je|eli DF=1 to nastpuje wymuszenie fragmentacji 3. trzeci bit  flaga MF ZakBadajc staB i niezmienn warto[ MTU sieci, czyli maksymaln wielko[ datagramu (ang. Maximum Transfer Unit) mo|na manipulowa bitem DF w taki sposób, aby mo|liwe byBo przesBanie informacji niejawnej bit po bicie w ka|dej 38 ramce IP. Mo|liwe jest to jednak, wyBcznie w sieciach lokalnych o staBej warto[ci MTU. W sieci globalnej Internet, metoda ta nie sprawdza si ze wzgldu na mogc wystpi ró|norodno[ warto[ci MTU na poszczególnych wzBach transmisyjnych. Do przesyBania przekazów steganograficznych poprzez sie Internet mo|na zastosowa inn wBasno[ protokoBu IP. Pole opcji jest zazwyczaj niewykorzystywane w sieci globalnej, sprawia to, |e do osadzenia danych mo|na przeznaczy 5 32 bitowych sBów danych. Modyfikujc pola version, internet header length oraz identification mo|na przygotowa struktur nagBówka odpowiedni dla osadzenia danych. Proces osadzania danych przebiega nastpujco: 1. dwa czterobitowe pola version i internet header length przyjmuj odpowiednie warto[ci po usuniciu pola opcji. Niech bity te bd oznaczone jako [h1...hs]. Stanowi one pierwsze 8 bitów pierwszego sBowa nagBówka. 2. Pole identification stanowi pierwsze 16 bitów drugiego sBowa nagBówka i niech bd oznaczone jako [i1...is]. Pierwsze 8 bitów pierwszego sBowa i drugiego sBowa nale|y traktowa indywidualnie. Pierwsze 8 bitów powinno da warto[ci [h1...hs]=01000101, natomiast 8 bitów drugiego sBowa warto[ci [c1...cs] mogce zawiera osadzane dane. 3. Pierwsze 8 bitów pierwszego i drugiego sBowa powinny by poddane funkcji XOR 4. pozostaBe 8 bitów pola identification mo|e zosta wygenerowana losowo i zosta poBczone z pierwszymi 8 bitami w celu uzyskania unikatowej warto[ci, niezbdnej do prawidBowej transmisji danych.[14] Utworzony w ten sposób datagram, zawierajcy ukryty przekaz mo|e by transmitowany w sieci Internet. Je|eli nastpi konieczno[ pofragmentowania danych, to przy ponownym jej zBo|eniu nie nastpi uszkodzenie zawartych informacji. ProtokoBy TCP oraz IP nie s jedynymi protokoBami mo|liwymi do u|ycia w steganografii, praktycznie dla ka|dego protokoBu mo|liwe jest opracowanie odpowiedniego algorytmu, jednak|e ich wykorzystanie mo|e by ograniczone. Metody steganograficzne oparte na transmisji sieciowej posiadaj wysoki poziom bezpieczeDstwa, jednak wykrycie ich jest mo|liwe poprzez dBugotrwaBe 39 analizowanie danego fragmentu sieci pod ktem budowy nagBówków. Ka|da modyfikacja nagBówka mo|e zosta odebrana jako anomalia, jednak momencie gdy powtarza si ona cyklicznie i tylko pomidzy okre[lonymi hostami w sieci, istnieje wysokie prawdopodobieDstwo, |e zostanie to odebrane jako celowe dziaBania steganograficzne. Wad protokoBów sieciowych jako kontenera jest fakt, |e niemo|liwe jest przechowywanie zabezpieczonych steganograficznie informacji. Mo|liwa jest jedynie ich transmisja w czasie rzeczywistym. 40 3. Dzwik jako kontener Dzwik mo|e wystpowa w dwóch postaciach  jako sygnaB analogowy oraz sygnaB cyfrowy. Aby sygnaB dzwikowy mógB by przetwarzany przez komputer musi on ulec zmianie z analogowego na cyfrowy. Wykonywane jest to poprzez próbkowanie sygnaBu analogowego i zapisywanie warto[ci próbek do pliku. Zsamplowany dzwik traci jednak na jako[ci w procesie próbkowania, gdy| analizowanie sygnaBu odbywa si z pewn szybko[ci, która nie jest w stanie wiernie odwzorowa sygnaBu analogowego. Rys. 12. Samplowanie dzwiku analogowego Czym ni|szy czas pomidzy pobieraniem kolejnych próbek (wy|sza czstotliwo[ samplowania) tym wierniejsze odwzorowanie sygnaBu. Odpowiednio przygotowany plik audio stanowi doskonaBy kontener dla ukrywanych informacji, dziki zastosowaniom zaawansowanych technik steganograficznych mo|liwe jest osadzenie du|ej ilo[ci danych niejawnych w stosunkowo krótkim pliku audio, przy zachowaniu wysokiego poziomu bezpieczeDstwa na wykrycie lub uszkodzenie. Przy zastosowaniu superdokBadnych przetworników analogowo - cyfrowych i cyfrowo  analogowych mo|liwe jest poprawne wyodrbnienie informacji z sygnaBu analogowego, powstaBego z sygnaBu cyfrowego zawierajcego dodatkowe informacje. Steganografia w dzwiku analogowym jest trudna do zrealizowania, gdy| wymaga realizacji bezpo[rednio na sprzcie o du|ej mocy obliczeniowej, bdcego w stanie dokona obliczeD transformaty Fouriera w czasie rzeczywistym. Wyodrbnienie tak osadzonej informacji wymaga porównywalnego sprztu. Zastosowanie sygnaBu cyfrowego, zapisanego na no[nikach w postaci plików jest znacznie prostsze i skuteczniejsze. Transmisja danych za pomoc sygnaBu 41 analogowego podlega tym samym ograniczeniom co w przypadku metod steganograficznych opartych na stosie protokoBów TCP/IP  niemo|liwe jest skBadowanie sygnaBu bez uszkodzenia osadzonej w nim zawarto[ci za pomoc no[ników analogowych, pomin tu mo|na urzdzenia doskonale czuBe, które nie s w u|ytku powszechnym. Informacja zapisana w cyfrowym pliku audio mo|e by przesyBana na ró|ne sposoby, nie jest konieczne odtworzenie pliku w celu wyodrbnienia informacji  wystarczy fakt jego posiadania. 3.1. HAS (ang. Human Auditory System) - ludzki ukBad sBuchu. Steganografia w plikach audio stanowi wiksze wyzwanie ni| jej odpowiednik w plikach graficznych. Ludzki system sBuchu jest bardziej czuBy na zakBócenia spowodowane przez biaBy szum AWGN (ang. Additive White Gaussian Noise). ZakBócenia te mog by wykrywalne nawet gdy wystpuj o 70db ciszej od poziomu normalnego dzwiku. Z drugiej strony, ukBad HAS charakteryzuje si nisk czuBo[ci na zmiany siBy tonu. Oznacza to, |e gBo[ne dzwiki przykrywaj dzwiki o ni|szej gBo[no[ci, przez co staj si one niesByszalne. Cecha ta jest wykorzystywana min. w kompresji sygnaBów dzwikowych mp3.[15] MP3 (ang. MPEG Audio Layer-3) jest przykBadem kompresji stratnej opracowanej do zmniejszania objto[ci plików muzycznych. Bazuje na odpowiednio zmodyfikowanej dyskretnej transformacie cosinusowej i modelu psychoakustycznym. Dzwik skompresowany z przepBywno[ci (ang. bitrate) 128kbps daje zazwyczaj jako[ niskiej klasy odtwarzaczom CD. Bitrate rzdu 192kbps jest dla wikszo[ci ludzi nieodró|nialny od oryginaBu.[9] Model psychoakustyczny jest matematycznym modelem, mówicym jakie informacje o dzwiku s rozpoznawalne dla ludzkiego zmysBu sBuchu, przykBadowo czuBo[ ludzkiego ucha na dzwiki o ró|nych czstotliwo[ciach (dzwiki bardzo niskie i bardzo wysokie s niesByszalne). Zakres czstotliwo[ci sByszalnego dzwiku szacuje si w przedziale od 20hz do 20khz i maksymaln czuBo[ w zakresie 2khz- 4khz. Badajc ludzki ukBad sBuchowy zaobserwowano zjawisko maskowania jednych dzwików przez drugie. Wyró|nia si 3 typy maskowania: " maskowanie jednoczesne - ciche dzwiki o czstotliwo[ciach zbli|onych do 42 czstotliwo[ci dzwiku gBo[nego nie s sByszalne " maskowanie pobodzcowe - gBo[ny dzwik potrafi zagBuszy cichsze dzwiki wystpujce bezpo[rednio po nim " maskowanie wsteczne - cichy dzwik, poprzedzajcy dzwik gBo[ny nie jest sByszalny.[15] Pewne niedoskonaBo[ci ukBadu HAS s podstaw dla konstruowania systemów steganograficznych. Jest to min. wspomniane wcze[niej zjawisko maskowania lub chocia|by przyzwyczajenie ludzkie do niskiej jako[ci dzwiku posiadajcego sByszalne zakBócenia. Przyzwyczajenie to mo|e wynika z niskiej jako[ci odbiorników radiowych lub telewizyjnych, gdzie wystpowanie szumów, trzasków lub innych zakBóceD jest rzecz normaln i ju| praktycznie nie dra|nic. Umo|liwia to dodanie odpowiednio skonstruowanych zanieczyszczeD do sygnaBu kontenera tak, aby jednocze[nie zawieraBy informacj niejawn, ale równie| nie obni|aBy znaczco jako[ci dzwiku. 3.2. ZaBo|enia bezpiecznego stegosystemu Konstruujc bezpieczny stegosystem oparty na sygnale audio nale|y speBni poni|sze warunki: " ka|da osadzona informacja powinna by odporna na przetwarzanie pliku kontenera poprzez jego kompresj/dekompresj w stopniu generujcym akceptowaln jako[ wynikow dzwiku. Niedopuszczalne jest, aby podziaBanie na stegosystem kompresj o niewielkim wspóBczynniku redukcji sygnaBu spowodowaBo uszkodzenie wiadomo[ci. " ka|da wiadomo[ powinna by odporna na ataki majce na celu jej wykrycie lub uszkodzenie. W celu uzyskania wikszego poziomu bezpieczeDstwa danych mo|na zastosowa zwielokrotnienie ukrywanych danych i ka|d z kopii umie[ci w innej cz[ci pliku kontenera. W przypadku uszkodzenia pliku lub strumienia w trakcie przesyBu danych istnieje wy|sze prawdopodobieDstwo prawidBowego wyodrbnienia osadzonych informacji, ni| w przypadku, gdy ukryta zostanie tylko 43 jedna kopia wiadomo[ci. Regulacja wykorzystania pasma w sieciach komputerowych mo|e spowodowa, |e sygnaB strumieniowy audio bdzie ulegaB uszkodzeniom w trakcie przesyBu w przypadku wysokiego obci|enia Bcza. Mechanizm ten jest powszechnie wykorzystywany przy dzieleniu pasma, gdy| u jego zaBo|eD le|y fakt, |e uszkodzenie strumienia multimedialnego jest dopuszczalne i nie wpBynie znaczco na odbiór informacji, czego nie mo|na powiedzie o zwykBych danych binarnych, które nie mog ulec uszkodzeniom. Oznacza to, |e w przypadku jednoczesnego dziaBania radia internetowego i pobierania np. archiwum, przeznaczane jest szersze pasmo dla pobierania pliku - |aden bajt danych nie mo|e zosta utracony. W przypadku utraty cz[ci pakietów z pasma wykorzystanego przez radio, wystpi jedynie sByszalne zakBócenia, jednak interpretacja sygnaBu bdzie mo|liwa. 3.3. Wybrane metody 3.3.1. LSB Zasada dziaBania techniki LSB (ang. Least Significant Bite) w plikach muzycznych jest zbli|ona do tej samej metody u|ywanej przy algorytmach bazujcych na grafice. W standardowym algorytmie LSB wybierany jest pewien zbiór danych reprezentujcych pojedyncze dzwiki  sampli za pomoc klucza lub okre[lonego z góry algorytmu. Ukrywanie informacji odbywa si poprzez zamian najmBodszych bitów poszczególnych bajtów wybranego zestawu sampli. Xj[i]->m[i]; Du|y rozmiar plików audio umo|liwia umieszczenie w nich du|ej ilo[ci danych poprzez manipulowanie najmBodszym bitem. Ze wzgldu na specyficzn cech ukBadu HAS, manipulowanie najmBodszymi bitami powinno by przeprowadzone ostro|nie, wysoka czuBo[ ludzkiego ucha na biaBy szum AWGN powoduje, |e ilo[ modyfikowanych bitów nie mo|e by zbyt du|a. PowstaBe w ten sposób znieksztaBcenia dzwiku mog by Batwo wykrywalne. Ogranicza to znacznie ilo[ mo|liwych do wykorzystania bitów. Badania [16] wykazaBy, |e wprowadzenie informacji na warstwy LSB powy|ej 4 spowoduje znaczn utrat 44 jako[ci kontenera i znaczce obni|enie poziomu bezpieczeDstwa  zmiany byBy ju| dobrze sByszalne. Wyodrbnienie osadzonych wcze[niej danych wykonywane jest poprzez odczyt okre[lonej ilo[ci najmBodszych bitów z zestawu danych opisanych kluczem lub algorytmem. Pomimo faktu, |e mo|liwe jest osadzenie du|ej ilo[ci danych algorytmem LSB, nie oferuje on wystarczajcego poziomu bezpieczeDstwa danych. Ich uszkodzenie lub caBkowite zniszczenie jest mo|liwe poprzez np. przypadkow zmian losowo wybranych najmBodszych bitów w caBym pliku kontenera  jest to jeden z najprostszych ataków prowadzonych na metod LSB. W pracy  Increasing Roustness of LSB Audio Steganography by Reduced Distortion LSB Coding przeprowadzonej na University of Oulu w Finlandii przez Cvejica i Sappanena zaproponowano zmodyfikowan wersj algorytmu LSB. Zaproponowany algorytm pozwala na przeniesienie ukrywanych danych z warstwy 4 na warstw 6. Podstawow ró|nic w dziaBaniu jest fakt, |e standardowy algorytm zastpuje odpowiedni bit sampla na odpowiedni bit tajnej wiadomo[ci, je|eli bity te si ró|ni. Dysponujc danymi: 16 bitowa próbka danych o warto[ci: 0000000000001000 fragment tajnej wiadomo[ci: 00000000 osadzanie danych w 4 warstwie LSB spowoduje, |e warto[ modyfikowanej próbki danych bdzie: 16 bitowa próbka danych po modyfikacji: 0000000000000000. spowoduje to znaczn zmian dzwiku, gdy| z warto[ci 8 spadB on nagle do warto[ci 0. Zmodyfikowana metoda LSB umo|liwia bezpieczne osadzenie danych nawet na 6 warstwie LSB, poprzez zamian warto[ci sampla na najbardziej zbli|ony do oryginaBu. 16 bitowa próbka danych o warto[ci: 0000000000001000 fragment tajnej wiadomo[ci: 00000000 Wynikiem dziaBania zaproponowanego w [16] algorytmu bdzie sygnaB: 16 bitowa próbka danych o warto[ci: 0000000000000111 45 Jak wida, zmiana dzwiku nastpiBa jedynie o 1 a nie warto[ 8 jak w przypadku standardowej techniki. Dziki temu, mo|na podnie[ próg bezpiecznej warstwy dla LSB z 4 na 6, a co za razem idzie podniesienie bezpieczeDstwa danych. Mimo przej[cia na drug warstw kontener nie straci jako[ciowo tyle, co w przypadku poprzedniej metody. Zamiana sampla na najbardziej zbli|ony mo|e zapewni mniejsz ilo[  niezgodno[ci pomidzy stegosystemem a oryginaBem. Zaproponowany w [16] algorytm ma posta: if host sample a>0 if bit 0 is to be embedded if a i-1 =0 then a i-1 a i-2 ...a 0 =11...1 if a i-1 =1 then a i-1 a i-2 ...a 0 =00...0 and if a i+1 =0 then a i+1 =1 else if a i+2 =0 then a i+2 =1 ... else if a 15 =0 then a 15 =1 else if bit 1 is to be embedded if a i-1 =1 then a i-1 a i-2 ...a 0 =00...0 if a i-1 =0 then a i-1 a i-2 ...a 0 =11...1 and if a i+1 =1 then a i+1 =0 else if a i+2 =1 then a i+2 =0 ... else if a 15 =1 then a 15 =0 if host sample a<0 if bit 0 is to be embedded if a i-1 =0 then a i-1 a i-2 ...a 0 =11...1 if a i-1 =1 then a i-1 a i-2 ...a 0 =00...0 and if a i+1 =1 then a i+1 =0 else if a i+2 =1 then a i+2 =0 ... else if a 15 =1 then a 15 =0 else if bit 1 is to be embedded 46 if a i-1 =1 then a i-1 a i-2 ...a 0 =00...0 if a i-1 =0 then a i-1 a i-2 ...a 0 =11...1 and if a i+1 =1 then a i+1 =0 else if a i+2 =1 then a i+2 =0 ... else if a 15 =1 then a 15 =0 {618} Je|eli algorytm osadzajcy informacj niejawn jest ró|ny w obu odmianach algorytmu LSB, tak mechanizm wyodrbniania jest jednakowy i nie ulegB zmianie i polega o odczytaniu bitu z i-tej warstwy LSB. Podsumowujc technik LSB mo|na stwierdzi |e jej pierwsza odmiana wprowadza wiksz ilo[ zanieczyszczeD do kontenera, poprzez niekontrolowan zmian bitów na okre[lonej warstwie. Wysoko[ warstwy nie powinna przekracza czwartej, gdy| spowoduje to znaczne obni|enie jako[ci kontenera. W przypadku metody zaproponowanej na Univeristy of Oulu wysoko[ warstwy mo|e zwikszy si do szóstej, osadzanie danych nie powoduje znacznej modyfikacji sampla, gdy| jego warto[ jest obni|ana do warto[ci mu najbli|szej przy zmodyfikowanym okre[lonym bicie  czyli próbka dzwiku wynikowa bdzie bardzo zbli|ona do oryginalnej. 3.3.2. DSSS Direct Sequence Spread Spectrum a dokBadniej directly carrier-modulated, code sequence modulation) czyli bezpo[rednie modulowanie no[nej sekwencj kodow. Jest to jedna z technik rozpraszania widma w systemach szerokopasmowych przy pomocy cigów kodowych. Jeden ze sposobów dziaBania tej techniki polega na tym, |e przy wysyBaniu, strumieD danych jest mno|ony przez odpowiedni cig kodowy o wikszej szybko[ci bitowej. W ten sposób wyj[ciowy strumieD informacji zajmuje znacznie szersze pasmo. Dobór cigu kodowego musi speBnia szereg wymagaD. WBa[ciwy jego dobór pozwala na zaszyfrowanie informacji [9] Technika osadzania danych bazujca na DSSS jest metod niedoskonaB o 47 niskim progu odporno[ci danych na uszkodzenia i ataki majce na celu zniszczenie osadzonej informacji. Przyspieszanie lub spowalnianie sygnaBu audio mo|e skutecznie uszkodzi dane niejawne. Wszelkiego typu konwersje z sygnaBu analogowego na cyfrowy i odwrotnie mog zniszczy osadzone dane. Spowodowane jest to niezgodno[ci zegarów w konwerterach D/A i A/D. 3.3.3. Dodawanie echa Wiele technik steganograficznych bazuje na kodowaniu informacji niejawnej poprzez dodawanie echa do sygnaBu kontenera. Pomimo wysokiej czuBo[ci ukBadu HAS na biaBy szum metoda ta jest skuteczna, gdy| zastosowanie bardzo krótkich odlegBo[ci pomidzy sygnaBem oryginalnym i echem powoduje traktowanie zakBóceD jako rezonansu. Po dodaniu echa do kontenera okazuje si, |e jego wBa[ciwo[ci statystyczne pozostaj niezmienione. Rys. 13. Echo hiding Stegosystem bazujcy na dodawaniu echa posiada 4 gBówne cechy - amplituda inicjacyjna - tempo - przesunicie  one (ang.  one offset) - przesunicie  zero (ang.  zero offset)[15] OdlegBo[ pomidzy oryginalnym sygnaBem kontenera a dodanym echem jest w peBni zale|na od u|ytego przesunicia  zero lub jeden. W procesie osadzania danych sygnaB kontenera jest dzielony na mniejsze porcje, 48 które s traktowane jako niezale|ne sygnaBy. Nastpnie do ka|dej porcji dodawane jest echo z okre[lonym bitem informacji. Informacja jest osadzana w kontenerze poprzez dodanie echa z przesuniciem 0 lub 1. Proces wyodrbniania informacji polega na wykryciu odlegBo[ci pomidzy sygnaBem a echem za pomoc transformaty Fouriera F i odwróconej transformaty Fouriera F-1. 2 -1 F {log( F(x) }. Je|eli wynik powy|szego równania (cepstrum) jest wy|szy na pozycji ´1 ni| na pozycji ´0 wówczas wyodrbniany bit ustawiany jest na warto[ 1, w przeciwnym przypadku ustawiany jest na warto[ 0.[15] 3.3.4. Modulacja fazy Algorytmy bazujce na modyfikacji fazy mo|na podzieli na dwie grupy: " algorytmy wykorzystujce kodowanie fazowe. Proste kodowanie fazowe polega na podzieleniu sygnaBu kontenera na bloki i osadzenie caBej informacji niejawnej w spektrum fazowym pierwszego bloku. Jest u|ywane min. przy znakach wodnych (ang. Watermarks) " algorytmy wykorzystujce modulowanie fazy Wykorzystywany jest mechanizm niezale|nego wielozakresowego modulowania fazy sygnaBu. W tym celu u|ywany jest stosunkowo dBugi blok danych o dBugo[ci N = 214 . Algorytm dokonuje powolnej zmiany fazy w przestrzeni czasowej. Ukrywana informacja, np. znak wodny osadzana jest poprzez dodanie jednej jednostki skali Bark do fazy bloku. Jedna jednostka skali Bark mo|e przechowywa jedynie jeden bit informacji niejawnej. Skala Bark jest psychoakustyczn skal z warto[ciami z zakresu 0-24 opisujcymi 24 sByszalnych zakresów dzwiku. Oblicza si j wg: f BARK =13arctan(0.00076 f ) + 3,5arctan(( )2) 7500 Gdzie f jest czstotliwo[ci wyra|on w hercach. Udowodniono, |e sensowny zakres dla osadzanych danych przedstawiony w skali Bark to 0-24 czyli zakres 0-15khz. Mechanizmy modulowania lub kodowania fazy s technikami niewykorzystujcymi 49 cechy ukBadu HAS, maskowania sBabych dzwików, dzwikami silniejszymi.[17] 3.3.5. Autokorelacja Autokorelacja - statystyka opisujca dla danego szeregu czasowego, w jakim stopniu dany wyraz szeregu zale|y od wyrazów poprzednich. {wiki}. Jest to funkcja która dla argumentu k przypisuje warto[ wspóBczynnika korelacji Pearsona pomidzy szeregiem czasowym a tym samym szeregiem cofnitym o k jednostek czasu. Korelacja Pearsona okre[la poziom zale|no[ci liniowej midzy zmiennymi losowymi. Niech x i y bd zmiennymi losowymi o cigBych rozkBadach xi, yi oznaczaj warto[ci prób losowych zmiennych (i=1,2& n), natomiast X i Y - warto[ci [rednie tych prób, tj. n n 1 x = yi "x oraz y = 1 " i n n i=1 i=1 Wówczas wspóBczynnik korelacji liniowej zdefiniowany jest nastpujco: n "(x - x)( yi - y) i i=1 r = xy n n "(x - x)2 "(y - y)2 i i i=1 i=1 Technika manipulowania wspóBczynnikami autokorelacji doskonale nadaje si do osadzania informacji w sygnale analogowym. Nale|y ona do rodziny modulacji cech statystycznych.[18] Rys. 14. Diagram blokowy osadzania danych metod manipulowania wspóBczynnikiem autokorelacji 50 Wej[ciowy sygnaB kontenera poddawany jest wstpnej filtracji majcej na celu poprawienie wBasno[ci kontenera. Nastpnie sygnaB ten u|ywany jest do utworzenia specjalnego sygnaBu zawierajcego zmodyfikowane wspóBczynniki autokorelacji. Wykonywane jest to w generatorze sygnaBu pokazanego na rysunku 13. sygnaB ten tworzony jest poprzez dodanie okre[lonej zmiennej opóznienia. Liczba dodawanych opóznieD jest równa wspóBczynnikowi autokorelacji modulowanego sygnaBu. Rys. 15. schemat blokowy generatora sygnaBu Krótkoterminowa autokorelacja przefiltrowanego sygnaBu mo|e przyjmowa posta: t R(t,Ä ) = s(x)s(x -Ä )dx +" t-T W wikszo[ci implementacji systemu utrzymuje si, |e zmienna g opisujca opóznienie przyjmuje niewielk warto[, aby opóznienia byBy transparentne. Oblicza si je z: R (t,Ä ) - R(t,Ä ) R (t,Ä ) - R(t,Ä ) m m g H" lub z g H" R(t, 2Ä ) + R(t -Ä ,0) R(t, 2Ä ) + R(t +Ä ,0) Ta technika steganograficzna bazuje na sBowach kodowych, które s reprezentowane przez odpowiednio zmodulowane zmiany wspóBczynników autokorelacji, takich jak [rednia warto[ opóznieD. Istnieje kilka metod reprezentacji sBowa kodowego: 51 1. kodowanie proste, w którym jeden symbol odpowiada dokBadnie jednej warto[ci wspóBczynnika autokorelacji 2. multi-level symbol mapping  ka|de osadzone sBowo kodowe opisane jest skoDczonym zbiorem warto[ci wspóBczynników autokorelacji. 3. Manchester symbol encoding  niech sygnaB bdzie dzielony na dwie równe cz[ci, dla ka|dej z nich zostanie obliczona warto[ wspóBczynnika autokorelacji. Nastpnie ró|nica pomidzy tymi dwoma wspóBczynnikami jest modulowana w celu zakodowania danych. 4. delay hoping  poszczególne elementy sygnaBu zmieniaj swoje warto[ci opóznienia w zale|no[ci od wcze[niej predefiniowanej tablicy, której istnienie musi pozosta tajne.[18] Metoda modulowania wspóBczynników autokorelacji przeznaczona jest przede wszystkim do osadzania niewielkiej porcji danych w transmitowanym sygnale analogowym. Najcz[ciej wykorzystywana jest do znakowania wodnego sygnaBu. Oznakowana w ten sposób informacja mo|e by swobodnie przechowywana na no[nikach bez utraty zapisanych niejawnych danych. W przypadku wykorzystania modulacji wspóBczynników autokorelacji w stosunku do sygnaBu cyfrowego uzyska si stegosystem o wysokim poziomie bezpieczeDstwa. Niejawne dane nie s podatne na kompresj, dodanie biaBego szumu Gaussa AWGN o sile nawet 36db nie spowoduje uszkodzenia danych, zmiana tempa o warto[ do 10% nie uszkodzi przekazu. 3.4. Podsumowanie Dzwik cyfrowy jest doskonaBym medium transmisyjnym dla ukrywania danych. Jego du|a pojemno[ steganograficzna i oferowane bezpieczeDstwo danych spowodowaBy, |e pliki dzwikowe staBy si celem zainteresowania steganografów. NiedoskonaBo[ci ludzkiego ukBadu sBuchowego HAS umo|liwiaj skuteczne ukrycie danych w dzwiku bez wprowadzania du|ych zmian w samym sygnale. Istniej techniki, których wynikiem dziaBania jest stegosystem o identycznych parametrach 52 statystycznych jak oryginalny sygnaB u|yty jako kontener. Istniej algorytmy pozwalajce ukrywa informacje w takich obszarach dzwiku, |e ich poziom bezpieczeDstwa na wykrycie lub uszkodzenie jest bardzo wysoki. Kompresja stratna nie jest ju| zagro|eniem dla steganografii. Cz[ algorytmów gwarantuje ochron osadzonych danych przy u|yciu kompresji. Ilo[ próbek dzwiku jaka mo|e zosta u|yta jako kontener jest bardzo du|a, mo|liwo[ci ró|nej parametryzacji dzwiku  jego czstotliwo[ci, przepBywno[ci czy nawet stylu muzycznego jaki reprezentuj umo|liwiaj bezpieczne ukrycie danych. 53 4. Analiza metod ukrywania w dzwiku W tej cz[ci pracy zostanie zaprezentowana aplikacja StegoSound, oraz wykonane za jej pomoc analizy. Analizie porównawczej zostaBy poddane dwa algorytmy osadzania danych w dzwiku, dziaBajce na szeregu próbek danych wej[ciowych. Celem przeprowadzonych badaD jest stwierdzenie która z metod gwarantuje wy|szy poziom bezpieczeDstwa, oraz sprawdzenie, czy na poziom bezpieczeDstwa wpBywa styl muzyczny reprezentowany przez poszczególne próbki. Analizie zostaBa poddana amplituda dzwiku. 4.1. Zrodowisko badaD 4.1.1. Borland c++ Builder Zrodowisko Borland C++ Builder w wersji Personal zostaBo u|yte do napisania aplikacji testujcej algorytmy na poszczególnych próbkach danych. CaBo[ projektu zostaBa wykonana za pomoc jedynie darmowych i powszechnie dostpnych komponentów do pakietu firmy Borland. Obiekty jakie zostaBy u|yte to: Image, pole edycyjne Edit, Pole tekstowe Label, Pole kombi ComboBox, pole tekstowe CSpinEdit, checkbox, pasek postpu CGauge oraz przyciski BitBtn. Projekt nie wykorzystuje |adnych zewntrznych bibliotek, i dziki kompilacji wraz z wymaganymi moduBami jest mo|liwy do uruchomienia na komputerach na których nie zainstalowano pakietu firmy Borland. 4.1.2. Aplikacja StegoSound Aplikacja StegoSound jest narzdziem umo|liwiajcym przeprowadzenie analiz porównawczych dwóch badanych algorytmów steganograficznych bazujcych na sygnale dzwikowym. 54 Rys. 16. Aplikacja testowa StegoSound Aplikacja umo|liwia wczytanie pliku kontenera oraz pliku zawierajcego tekst jawny przeznaczony do osadzenia. Na podstawie wyboru metody oraz warstwy bitowej na jakiej ma dziaBa program dokonuje wpisania tekstu do sygnaBu dzwikowego a nastpnie generuje wykresy obu sygnaBów: - oryginalnego przed osadzeniem danych tekstowych - zmodyfikowanego, zawierajcego ukryte dane Do operacji na poszczególnych bitach zostaBa u|yta prosta klasa napisana w C++ która ma posta: class bin { public: char *CharToBin(int); void SetChar(char*); char BinToChar(); char *SetBit(int); char *SetBit2(int,int); char GetBit(int); private: char *chars; //wartosc bitowa znaku }; //metoda zapisujaca wartosc binarna do obiektu //do dalszej obrobki void bin::SetChar(char *_liczba) 55 { chars=new char[strlen(_liczba)-1]; strcpy(chars,_liczba); } //metoda zamieniajacy znak na zapis binarny char *bin::CharToBin(int liczba) { chars=new char[9]; int tmp=0; for(int i=7;i>-1;i--) { tmp=liczba%2; if(tmp==1) chars[i]='1'; else chars[i]='0'; tmp=0; liczba=liczba/2; chars[8]='\0'; } return(chars); } //metoda zamieniajaca zapis binarny na znak char bin::BinToChar() { int tmp=0; int mnoznik=128; int liczba=0; for(int i=0;i<8;i++) { liczba=(chars[i]-48)*mnoznik; tmp=tmp+liczba; mnoznik=mnoznik/2; } return tmp; } //metoda ustawiajaca najmlodszy bit na bit przeciwny char *bin::SetBit(int n) { if(chars[n]=='1') chars[n]='0'; else chars[n]='1'; return chars; } char *bin::SetBit2(int n, int wart) { if((chars[n]=='1')&&(wart==1)); else if((chars[n]=='1')&&(wart==0)) 56 chars[n]='0'; else if((chars[n]=='0')&&(wart==1)) chars[n]='1'; else if((chars[n]=='0')&&(wart==0)); } //metoda zwracajaca najmlodszy bit char bin::GetBit(int n) {return chars[n];} Wykorzystanie metod zawartych w klasie bin mo|liwe byBo skuteczne manipulowanie poszczególnymi bitami zarówno dzwiku jak i tekstu, za pomoc których dane zostaBy osadzone do kontenera. Aplikacja po wczytaniu danych wej[ciowych dokonuje analizy pojemno[ci kontenera  je|eli informacji przeznaczonych do ukrycia jest wicej ni| maksymalna pojemno[ kontenera, program uniemo|liwi dalsze operacje. 4.2. Badane algorytmy Stworzony program StegoSound dokonuje analizy dwóch odmian algorytmu Least Significant Bit  LSB: " standardowa metoda LSB polegajca na zamianie warto[ci bitu kontenera na okre[lonej warstwie w zale|no[ci od warto[ci bitu ukrywanych danych " zmodyfikowana metoda LSB polegajca dodatkowo na zamianie bitów na ni|szych warstwach w celu mo|liwie jak najmniejszego zmodyfikowania warto[ci próbki dzwiku. Metoda opracowana na Univeristy of Oulu. W dalszej cz[ci pracy bd okre[lone odpowiednio jako: " Algorytm 1 " Algorytm 2 57 4.3. Próbki danych Analizie zostaBo poddanych 5 próbek dzwiku o maBej dBugo[ci (poni|ej sekundy) reprezentujce ró|ne style muzyczne. numer DBugo[ czstotliwo[ gBbia KanaBy Autor Styl muzyczny Utwór próbki próbkowania bitów 1 0,417 44,1 8 mono Saturnus Doom Metal I Long 2 0,509 44,1 8 mono Seven Main Sins Death Metal Kamienna Tablica Dziewczyna o 3 0,601 44,1 8 mono Omega Rock perBowych wBosach 4 0,546 44,1 8 mono Puff Dady Rap Godzilla Eugenia Vlasova & 5 0,493 44,1 8 mono Andru Donalds Nowoczesna Wind of hope Ka|da próbka dzwiku zostaBa pobrana z pierwszej sekundy ka|dego utworu. Jako danych podlegajcych osadzaniu u|yto jednej strony niniejszej pracy. Przeprowadzone analizy przebiegaBy: " Ka|da próbka dzwiku zostaBa poddana dziaBaniu dwóch algorytmów " Ka|dy algorytm zostaB przetestowany na dwóch warstwach bitowych  pierwszej i czwartej " Do ka|dej próbki danych zostaB wpisany ten sam tekst 4.4. Wyniki poszczególnych analiz Wyniki analiz prezentowane s wg schematu: " Numer badania " Numer próbki " Algorytm " Warstwa bitowa " Wykresy " komentarz 58 Numer Warstwa Badanie nr próbki Algorytm bitowa 1 1 1 1 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Widoczne niewielkie odksztaBcenia sygnaBu w pierwszej cz[ci wykresu amplitudy. ZnieksztaBcenia nieznaczne. 59 Numer Warstwa Badanie nr próbki Algorytm bitowa 2 1 2 1 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Niewielkie znieksztaBcenia widoczne w pocztkowej cz[ci sygnaBu. Dzwik wynikowy identyczny jak w przypadku algorytmu 1 dziaBajcego na tej samej warstwie. 60 Numer Warstwa Badanie nr próbki Algorytm bitowa 3 1 1 3 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Widoczne mocne znieksztaBcenia sygnaBu na caBej dBugo[ci. Bardzo du|e ró|nice midzy oryginaBem a sygnaBem wynikowym. 61 Numer Warstwa Badanie nr próbki Algorytm bitowa 4 1 2 3 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku po wpisaniu danych Komentarz: Du|e znieksztaBcenie sygnaBu dzwikowego. W stosunku do algorytmu 1 zmiany dokonane w procesie ukrywania danych s znacznie mniejsze. ZwBaszcza jest to widoczne w [rodkowej cz[ci sygnaBu. 62 Numer Warstwa Badanie nr próbki Algorytm bitowa 5 2 1 1 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Zmiany widoczne praktycznie tylko w pocztkowej cz[ci sygnaBu. Reszta sygnaBu z powodu du|ych skoków amplitudy jest utrudniona w analizie. 63 Numer Warstwa Badanie nr próbki Algorytm bitowa 6 2 2 1 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Zmiany widoczne jedynie w pocztkowej cz[ci sygnaBu. Zmiany dokonane przez algorytm identyczne jak w przypadku algorytmu 1. 64 Numer Warstwa Badanie nr próbki Algorytm bitowa 7 2 1 3 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Zmiany sygnaBu widoczne w pocztkowej cz[ci dzwiku. PozostaBa cz[ równie| zmodyfikowana, jednak analiza utrudniona przez czst zmian amplitudy. 65 Numer Warstwa Badanie nr próbki Algorytm bitowa 8 2 2 3 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Niewielkie zmiany sygnaBu na caBej dBugo[ci. 66 Numer Warstwa Badanie nr próbki Algorytm bitowa 9 3 1 1 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Zmiany sygnaBu widoczne na caBej dBugo[ci  spowodowane niewielk zmian amplitudy. 67 Numer Warstwa Badanie nr próbki Algorytm bitowa 10 3 2 1 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Modyfikacja identyczna jak w przypadku algorytmu 1. 68 Numer Warstwa Badanie nr próbki Algorytm bitowa 11 3 1 3 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Widoczne mocna modyfikacja sygnaBu. Ostatnia cz[ dzwiku niezmodyfikowana  spowodowane du| ró|nic midzy dBugo[ci osadzanych danych a maksymaln pojemno[ci kontenera. 69 Numer Warstwa Badanie nr próbki Algorytm bitowa 12 3 2 3 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Bardzo mocno zarysowane ró|nice w sygnale 70 Numer Warstwa Badanie nr próbki Algorytm bitowa 13 4 1 1 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Zmiany praktycznie niewidoczne 71 Numer Warstwa Badanie nr próbki Algorytm bitowa 14 4 2 1 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Zmiany praktycznie niewidoczne  zupeBnie jak w przypadku algorytmu 1. 72 Numer Warstwa Badanie nr próbki Algorytm bitowa 15 4 1 3 Amplituda przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Zmiany maBo widoczne, jednak w stosunku do warstwy 1 modyfikacje s wiksze. 73 Numer Warstwa Badanie nr próbki Algorytm bitowa 16 4 2 3 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Modyfikacje maBo widoczne  znacznie mniej zmian ni| w przypadku algorytmu 1. 74 Numer Warstwa Badanie nr próbki Algorytm bitowa 17 5 1 1 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Ze wzgldu na bardzo du|e skoki amplitudy modyfikacje sygnaBu niewidoczne zupeBnie. 75 Numer Warstwa Badanie nr próbki Algorytm bitowa 18 5 2 1 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Ze wzgldu na bardzo du|e skoki amplitudy zmiany niewidoczne 76 Numer Warstwa Badanie nr próbki Algorytm bitowa 19 5 1 3 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Zmiany minimalne, ale jednak widoczne 77 Numer Warstwa Badanie nr próbki Algorytm bitowa 20 5 2 3 Amplituda dzwiku przed wpisaniem danych Amplituda dzwiku z wpisanymi danymi Komentarz: Zmiany mniej widoczne w porównaniu do algorytmu 1 78 ZakoDczenie i wnioski Celem pracy byBo zaprezentowanie istniejcych technik steganograficznych, oraz dokonanie analizy porównawczej dwóch wybranych technik ukrywania danych w sygnale dzwikowym. Z przeprowadzonych badaD wynika, |e modyfikacja algorytmu LSB opracowana na University of Oulu generuje mniejsze zakBócenia sygnaBu, przez co zapisana w kontenerze informacja jest bezpieczniejsza. Algorytmy porównywane byBy za pomoc tych samych danych wej[ciowych i identycznych ustawieniach konfiguracyjnych programu testowego StegoSound. Kolejnym wnioskiem, jaki mo|na wysnu analizujc wyniki przeprowadzonych 20 badaD jest taki, |e niezale|nie od u|ytego algorytmu ani warstwy bitowej informacja jest bezpieczniejsza w dzwiku o du|ych skokach amplitudy ni| w dzwiku o maBej zmianie. Mo|na wic przypuszcza, |e osadzajc dane w muzyce, najdoskonalszym medium bd nagrania stylów muzycznych takich jak metal, jazz, czy muzyka elektroniczna. Ballady lub delikatna muzyka klasyczna mo|e nie sprosta wymaganiom stawianym bezpiecznemu kontenerowi. Ró|nica w amplitudzie Bagodnej muzyki jest o tyle maBa, |e wszelkiego typu zmiany mog by Batwiej zauwa|one. Wprowadzanie zakBóceD do nagrania wymienionego jako gatunek bezpieczny gwarantuje, |e akustycznie bardzo trudno bdzie rozró|ni oryginaB od stegosystemu, lub nawet nie zauwa|y wystpujcych zakBóceD. Ostatni przypadek mo|e zdarzy si przy muzyce metalowej. 79 Bibliografia [1] Duncan Sellars, An Introduction To Steganography, http://www.cs.uct.ac.za/courses/CS400W/NIS/papers99/dsellars/stego.html [2] Nicholas J. Copper, John Langford, Luis von Anh, Provably secure steganography, 2002 [3] Cristian Cachin, AnInformation-Theoretic Model for Steganography, MIT Labs, 1998 [4] Stefan Katzenbeisser, Fabien A. P. Petitcolas, Information Hiding  techiques for steganography and digital watermarking, wydawnictwo Artech House, Boston 1999 [5] Reinhard Wobst, Kryptologia. Budowa I Bamanie zabezpieczeD, wydawnictwo RM, Warszawa 2002 [6] J. T. Brassil, Electronic Marking and Identification Techniques to Discourage Document Copying, IEEE Journal on selected areas in communicatons, vol 13, no. 8, October 1995 [7] J. T. Brassil, Document Marking and Identification using Both Line and Word Sifting, AT&T Bell Laboratories, Murray Hill NJ 07974 [8] Luther Deyo, Steganography [9] http://pl.wikipedia.org [10] Niels Provos, Peter Honeyman, Hide and Seek  Introduction to Steganography, University of Michigan, IEEE Computer Society, 2003 [11] W. Bender, D. Gruhl, N. Morimoto, and A. Lu., Techniques for data hiding, IBM Systems Journal, vol 35, NOS 384, 1996 [12] M. Celik, G. Sharma, M. Teklap, Universal Image Steganalysis using rate- distortion curves, University Istanbul 2004 [13] autor anonimowy, Internet Agresja i Ochrona, wydawnictwo Robomatic, WrocBaw 1998 [14] Kamran Ahsan, Covert Channel Analysis and Data Hiding in TCP/IP [15] N.Cvejic, Algorhitms for audio watermaring and steganography, Oulu 2004 [16] N. Cvejic, T. Sappanen, Incerasing robustness of lsb audio by reduced distortion LSB Coding, Oulu University [17] C. Matthews, Behind the music: principles of audio steganography, 2003 [18] R. Petrovic, J. Winograd, K. Jemili, E. Metois, Data Hiding Whitin Audio Signal, 1999 Yugoslavia 80

Wyszukiwarka

Podobne podstrony:
analiza algorytmow
Zestawienie tematów objętych zakresem egzaminu z budowy i analizy algorytmów
Analiza algorytmow Z Czech PÅš [56]
Wyklad 6 Budowa i analiza algorytmów
Wyklad 4 Budowa i analiza algorytmów
Analiza Algorytmów Ćwiczenia
Wyklad 5 Budowa i analiza algorytmów
Projektowanie i analiza algorytmow
M6 M7 Analiza harmoniczna dzwieku
Megatutorial M B Analiza efektywności algorytmów
51 Rola komórek zmysłowych wewnętrznych i zewnętrznych w analizie dźwięku

więcej podobnych podstron