Dzisiejszy wpis dotyczy najbardziej popularnej i znanej formy steganografii. Steganografia cyfrowa opiera się na ukrywaniu danych w plikach multimedialnych. Zazwyczaj w tym celu stosowany jest najprostrzy rodzaj steganografii, gdzie bezpieczeństwo gwarantuje tajność algorytmu osadzania i wyodrębniania wiadomośći. Każda informacja zapisana cyfrowo może stanowić kontener na inne dane.
Procesowi ukrycia może być poddany nie tylko tekst, ale również inny plik. Stopień użyteczności nośnika bazowego, zależy od jego konstrukcji, a co za tym idzie formatu danych. Najczęściej jako nośnik sekretnych informacji wykorzystywane są pliki w popularnych formatach graficznych i dźwiękowych. Pliki multimedialne pozwalają na ukrycie względnie dużej ilości danych. Co więcej powszechność ich występowania w świecie internetowym ułatwia przekazanie ich obiorcynie wzbudzając przy tym podejrzeń.

Najważniejszym celem stosowania steganografii jest bezpieczeństwo ukrywanej wiadomości. W tym celu nośnik z osadzoną informacją nie powiniem znacząco różnić się od czystego pliku wejściowego. Innymi słowy, postronny obserwator nie powinien zauważyć różnicy, porównując te dwa pliki w sposób sensoryczny — za pomocą swoich zmysłów. Porównanie poprzez analizę statystycznych własności przesyłanych obiektów często umożliwia wykrycie pomiędzy nimi niezgodności. W metodzie bazującej na nieświadomości innych, że cokolwiek ukrywamy, sam cień podejrzenia, że obiekt zawiera ukryty przekaz jest równoznaczny ze zdemaskowaniem. Osobną dziedziną zajmującą się wykrywaniem steganografii jest steganoanaliza.

Steganoanaliza — dziedzina nauki, która bada czy dany obiekt może być nośnikiem ukrytych informacji [1].

Stegoanaliza nie zawsze jest skuteczna. Mogą istnieć takie algorytmy osadzania danych, które bedą na nią odporne. Kwalifikacja pliku jako wolnego od zastosowania steganografii nie potwierdza jednoznacznie, że rzeczywiście tak jest.

Skuteczny system steganograficzny powinien również stwarzać możliwość przekazania odpowienio dużej ilości danych. Nośnik wiadomości powinien być dobrany adekwatnie do jej długości. Bezpieczeństwo przekazu, możliwa potencjalna ilość danych do ukrycia w danym nośniku oraz odporność kontenera na wprowadzone modykacje stanowią główne cechy świadczące o jakości budowy systemu steganograficznego. Dlatego przy omawianiu konkretnych metod lub algorytmów będą podane informacje również o powyższych czynnikach.

Budowa pliku graficznego

Obrazy rastrowe są najpopularniejszym nośnikiem danych w steganografii cyfrowej. Plik graficzny w takiej postaci rozumiany jest jako macierz pikseli o rozmiarze odpowiadającym wymiarom obrazu. Każdemu pikselowi przypisany jest określony kolor, zapisany na określonej liczbie bitów, w zależności od użytego modelu przestrzeni barw.

W przypadku obrazów czarno-białych do określenia koloru wystarczy tylko jeden bit. Zasada w binarnej reprezentacji kolorów jest prosta: im mniejsza wartość, tym ciemniejszy kolor, wobec tego 0 oznacza kolor czarny a 1 biały. Tryb szarości dodatkowo powiązany jest z jasnością pikseli. Reprezentacja koloru piksela na ośmiu bitach pozwoli uzyskać 256 składową skalę szarości. Dla obrazów kolorowych najczęściej stosowany jest model RGB, którego nazwa pochodzi od pierwszysch liter angielskich nazw trzech barw składowych: Red, Green, Blue (czerwony, zielony, niebieski). Do zapisu barwy pojedynczego piksela w tym modelu zawyczaj używana jest przestrzeń 24 bitów, czyli 3 bajtów. Na każdą barwę składową przypada 1 bajt, czyli 8 bitów. Poszczególne bajty przyjmują wartości z zakresu 0-255. W modelu RGB wartość 0 wszystkich składowych daje kolor czarny, natomiast 255 kolor biały.

Jeśli piksel ma kolor biały to wszystkie jego składowe przyjmują wartość $255_{(10)}$, czyli $11111111_{(2)}$. Analogicznie kolor czarny reprezentowany jest jako RGB (0, 0, 0).

RGB (255, 255, 255)
R: 11111111
G: 11111111
B: 11111111

Może się zdarzyć, że obraz będzie reprezentowany przez paletę kolorów 32-bitową. W takim wypadku oprócz trzech składowych barw, występuje jeszcze kanał Alpha, który odpowiada za przezroczystość piksela. Kanał Alpha również przyjmuje wartości z zakresu 0-255. Jeśli stopień widzialności danego piksela wynosi 255 to taki punkt jest niewidoczny. Zmniejszenie tej liczby spowoduje częściowe pojawienie się danego punktu. Model przestrzeni barw z kanałem Alpha nosi nazwę RGBA.

Na sposób przechowywania informacji o pikselach wpływ ma również format danych. Popularne rozszerzenie .jpg odnosi się do obrazów nieindeksowanych, co oznacza, że bezpośrednio w każdym pikselu jest przechowywana informacja o barwach poszczególnych składowych. Format PNG jako następca GIF może opierać się na 24-bitowej głębii kolorów lub tablicy indeksowanej. Grafika indeksowana składa się z dwóch części: tablicy kolorów oraz obrazu, w którym każdy piksel jest indeksem do koloru w tablicy. Taki sposób przechowywania danych o kolorach występuje również w formacie GIF [2].

Budowa pliku audio

Dźwięk jako sygnał cyfrowy to zapis kolejnych wartości amplitudy fali dźwiękowej w poszczególnych odcinkach czasu za pomocą próbek (ang. sample). W zależności od liczby bitów przeznaczonych na zapisanie wartości amplitudy, określana jest rozdzielczość bitowa próbki. Pojedyncza próbka to jeden zapis wartości amplitudy dźwięku w określonym momencie czasu. W czasie przekształcania dźwięku analogowego w cyfrowy określa się częstotliwość próbkowania, czyli liczbę próbek zapisywanych w ciągu jednej sekundy. Im więcej próbek tym lepsza jakość dźwięku.

Standardowy plik audio na płycie CD ma rozdzielczość 44,1 kHz, czyli w ciągu jednej sekundy zapisanych zostało 44100 próbek dźwięku. Typowa rozdzielczość bitowa próbki dźwięku to 16 bitów. Oznacza to, że każda z próbek może przyjmować jedną z $2^{16} = 65536$ wartości. W praktyce do cyfrowego zapisu dźwięku używany jest zakres wartości < −1, 1 >. Na podstawie wartości próbek reprezentujących sygnał audio aproksymowany jest rzeczywisty przebieg sygnału podczas jego odtwarzania. Im więcej próbek tym dokładniejsze odwzorowanie sygnału. Niewielkie błędy w zapisie wartości próbek nie wpływają znacząco na jakość dźwięku, więc można ich użyć do zapisu dodatkowych danych.

Próbka dźwięku

Próbka dźwięku [4].

W steganografii dźwięku należy uważać na zjawisko białego szumu (ang. Additive White Gaussian Noise), które jest łatwo wychwytywane przez ludzki słuch. Biały szum jest zakłóceniem o równomiernym rozłożeniu natężenia składowych dźwięku na każdy herc szerokości pasma, czyli modelowy biały szum posiada płaskie widmo sygnału. Przy takim samym natężeniu dźwięku dla tonów sinusoidalnych i szumu, ludzkie ucho odbiera szum jako głośniejszy. Tym samym zbyt wysoki poziom zaszumienia może prowadzić do wytłumienia niektórych dźwięków w pliku audio. Własność słuchu do ignorowania słabiej słyszalnych sygnałów jest wykorzystywana przy kompresji plików audio do formatu MP3. Sytuacja wygląda analogicznie przy nałożeniu na siebie dźwięków o różnym natężeniu, ale zbliżonych częstotliwościach – wychwycone zostaną tylko głośne dźwięki. Podobnie, gdy cichy dźwięk nieznacznie wyprzedza głośny sygnał lub występuje bezpośrednio po nim. Ciche dźwięki będą zignorowane i pozostaną niesłyszalne dla odbiorcy. Występuje tu tak zwane zjawisko maskowania, które daje doskonałe pole manewru dla technik steganograficznych [3]. Steganografii dźwiękowej najłatwiej poddać pliki WAVE, ponieważ dane nie są skompresowane i łatwo je edytować.


Bibliografia

  1. V. Mosorov, Steganografia cyfrowa. Sztuka ukrywania informacji. Wydawnictwo Uniwersytetu Łódzkiego, 1th edition, 2013
  2. J. Tarasiuk. Formaty plików. http://home.agh.edu.pl/~tarasiuk/dydaktyka/doc/GFK/W/09%20Formaty%20plikow.pdf
  3. N. Cvejic, Algorithms for audio watermarking and steganography.http://jultika.oulu.fi/files/isbn9514273842.pdf, June 2004
  4. G. Kozieł, Możliwości wykorzystania transformaty Fouriera w steganografii dźwięku.PRACE INSTYTUTU ELEKTROTECHNIKI, (zeszyt 247), 2010.