Informacja w nośniku cyfrowym może być ukryta za pomocą różnych algorytmów, które są wybierane na podstawie szczególnych właściwości nośnika.

Ze względu na wprowadzone modyfikacje w pliku wejściowym można wyróżnić następujące metody [1]:

  • Substytucji — z nośnika zostają wydzielone dane nadmiarowe, których modyfikacja nie wpłynie znacząco na plik wynikowy. Wybrana część danych jest podmieniana na sekretną wiadomość. Przykładowymi algorytmami są LSB, metody modyfikacji kolorów indeksowanych lub metoda Patchwork. Przekształceniu mogą ulec na przykład wysokie częstotliwości w pliku dźwiękowym lub najmniej znaczące bity w pikselach obrazu.
  • Transformacji — sygnał dźwięku lub obrazu zostaje przekształcony do przestrzeni falowej, czyli przyjmuje reprezentację częstotliwościową. Informacje zostają dołączane poprzez modyfikacje współczynników transformacji. Próbki dźwięku lub wartości kolorów pikseli obrazu zostają poddane transformacji na przykład Fouriera, kosinusowej albo falkowej. W ten sposób uzyskiwana jest aproksymacja funkcyjna zbioru cyfrowych danych.
  • Statystyczne — modyfikowane są właściwości statystyczne nośnika na przykład wartości średniej lub odchylenia standardowego. Odczytanie tak ukrytej informacji odbywa się poprzez zastosowanie testów hipotez statystycznych.
  • Zniekształceniowe – ukryte dane zostają umieszczone poprzez wprowadzanie zniekształceń do kontenera danych. Odczyt poufnej wiadomości polega na porównaniu nośnika oryginalnego i zniekształconego. Tego typu metody sprawdzają w plikach tekstowych. Komunikat może zostać dodany poprzez zmianę układu treści dokumentu na stronie, modyfikację odległości między wyrazami lub wprowadzenie nieznacznych zmian w czcionce.
  • Generacji nośnika — osadzenie tajnej informacji występuje już podczas tworzenia samego nośnika, przykładowo generowanie fraktali z ukrytą informacją.

Najczęściej stosowanymi metodami są metody substytucji i transformacji. Metody substytucji wykorzystują najmniej znaczące części danych lub puste miejsce w nośniku, natomiast metody transformacyjne ukrywają dane na przestrzeni całego kontenera, również w znaczących jego częściach. Znaczące obszary danych nośnika nie są eliminowane przez kompresję i proste zniekształcenia, więc odporność danych ukrytych metodami transformacyjnymi jest dużo większa niż danych ukrytych poprzez metody substytucji. Równomierne rozłożenie ukrytych danych powoduje również trudniejsze wykrycie dodatkowych informacji. Odczyt informacji polega na porównaniu nośnika przed i po przetworzeniu lub użycia stegoklucza określającego obszar lub sposób ukrycia danych. Poniżej zostały zaprezentowane wybrane algorytmy ukrywania danych w plikach graficznych i dźwiękowych.

LSB

Metoda najmniej znaczącego bitu – LSB (ang. Least Significant Bit) polega na podmianie najmniej znaczącego bitu cyfrowej próbki sygnału, bitem ukrywanej informacji.

Najmniej znaczący bit bywa również nazywany najmłodszym bitem. W kodzie binarnym jest to bit o najmniejszej wadze. W przykładzie obok zaznaczony najmłodszy bit ma wagę $2^0$, czyli 1.

Binarna reprezentacja liczby

Binarna reprezentacja liczby $76_{(10)}$ na 8 bitach

Algorytm LSB może być z powodzeniem stosowany na zbiorze próbek zarówno obrazów rastrowych, jak i plików dźwiękowych. Dodatkowo może być łączony z innymi metodami ukrywania danych. Swoją popularność zawdzięcza szybkości i prostocie działania. Często jednak już analiza histogramów lub użycie testów statystycznych pozwala na sklasyfikowanie pliku jako podejrzanego. Ponadto zastąpienie niewłaściwych bitów lub zbyt dużej ich ilości może wprowadzić znaczne zmiany w pliku i spowodować wykrycie tajnego przekazu. Metodę LSB można próbować udoskonalać w taki sposób, aby edytowany plik był bardziej odporny na stegoanalizę oraz mniej podatny na zniszczenie spowodowane modyfikacją nośnika, na przykład poprzez dodanie kompresji i permutacji danych tajnej wiadomości.

Więcej o praktycznym zastosowaniu algorytmu LSB >>tutaj<<

Metoda modyfikacji kolorów indeksowanych

Nie dla wszystkich plików graficznych można bezpośrednio zastosować metodę LSB. Niektóre formaty obrazów posługują się indeksowaniem kolorów, jako przykład może służyć format GIF. Oznacza to, że dla obrazu jest dodatkowo tworzona paleta barw, zawierająca wszystkie kolory użyte w grafice, a pojedynczy piksel obrazu przechowuje informację o lokalizacji użytego koloru w palecie. Wszystkie piksele o jednakowej barwie będą wskazywać na ten sam element palety barw. Dzięki temu możliwa jest redukcja bitów potrzebnych do zapisania kolorów wszystkich pikseli.

Obraz z indeksowaną tablicą barw należy wstępnie przetworzyć poprzez zredukowanie liczby kolorów użytych w palecie obrazu. Bity poufnej informacji są ukrywane w zdublowanych i zmodyfikowanych parach. Nawet jeśli w obrazie o 24-bitowej głębi koloru zredukujemy liczbę kolorów o połowę, to jakość obrazu nie zostanie widocznie obniżona.

W przypadku redukcji ilości barw z 256 na 128 (8-bitowa głębia) w palecie kolorów dla danego obrazu pozostaje 128 zdublowanych próbek. W tak przetworzonym pliku dołączenie bitu poufnej wiadomości metodą LSB do wartości indeksu nie spowoduje zauważalnej zmiany barwy danego piksela, jeśli paleta kolorów będzie posortowana w taki sposób, że podobne kolory będą występowały obok siebie. Indeksowaną tablicę barw można posortować według podobieństwa kolorów lub innych cech na przykład jasności.

Więcej o steganografii obrazów z indeksowaną tablicą barw >>tutaj<<

Metoda Patchwork

Główna idea tego algorytmu polega na wybraniu par cyfrowo zapisanego dźwięku lub punktów obrazu z wykorzystaniem pseudolosowego generatora PRNG (ang. Pseudo Random Generator), inicjowanego ziarnem (wartością startową będąca kluczem). Próbki są wybierane w taki sposób, aby wartość oczekiwana różnicy wartości obu próbek wynosiła zero. Następnie pierwsza liczba zostaje zwiększona o 1 a druga o 1 zmniejszona. Zmiana jest na tyle subtelna, że pozostaje niezauważalna przez człowieka. Tajna informacja jest ukrywana za pomocą modyfikacji różnicy między pojedynczymi punktami lub grupami punktów.

Odmianą metody Patchwork stosowaną dla obrazów jest metoda BCBS (ang. Blind Consistency-Based Steganography). Algorytm umieszczania tajnej informacji w wybranej linii lub kolumnie obrazu przebiega następująco:

  • Najpierw każdy piksel $i$-tej kolumny jest zastępowany pikselem z kolumny $i − 1$ tego samego wiersza.
  • Następnie dodawany jest $j$-ty bit tajnej wiadomości do najmniej znaczącego bitu $j$-tego punktu kolumny.
  • Potem zachodzi proces rozproszenia informacji za pomocą operacji rozmycia ze skończonym jądrem przekształcenia, czyli macierzą określającą wagi sąsiednich wartości dla wybranego piksela. Na podstawie jądra operacji wyznaczana jest wartość średnia danego punktu.
  • Na końcu $i$-ta kolumna jest usuwana z obrazu i zastępowana losowo wybranymi punktami z sąsiedztwa.

Do odszyfrowania wiadomości wystarczy zmodyfikowany nośnik danych oraz dwa klucze steganograficzne: informacja o położeniu pikseli, w których ukryte są dane oraz jądro przekształcenia rozmywającego.

Metoda procentowa

Kolejną ciekawą metodą jest algorytm dla obrazów czarno-białych. Wcześniej przedstawione metody dla takiego obrazu nie sprawdzą się, ponieważ wprowadzą zbyt duże zniekształcenia. Piksel przyjmuje tylko wartość jednobitową — 0 (czarny) lub 1 (biały). Obraz dzielony jest na prostokątne obszary, których rozmiar jest zależny od klucza steganograficznego. Następnie są szeregowane pseudolosowo. Dla każdego kolejnego obszaru obliczana jest procentowa zawartość czarnych i białych pikseli. Przewaga pikseli w danym kolorze w wydzielonym fragmencie stanowi umówioną wartość binarną. Na przykład przewaga koloru białego może wskazywać na zakodowanie wartości binarnej 1, natomiast większość punktów czarnych będzie interpretowana jako wyznacznik 0.

Do każdego wydzielonego fragmentu dołączana jest binarna wartość z ukrytej wiadomości poprzez zmodyfikowanie liczby pikseli czarnych i białych na granicy obszarów. Jeżeli ukrycie informacji w danym fragmencie nie jest możliwe (na przykład zbyt duża liczba pikseli musiałaby ulec zmianie) fragment jest oznaczany jako nieużywany.

Modyfikacja obrazu poprzez umieszczenie bitu tajnej informacji może wprowadzić zniekształcenia w procentowych wynikach dla poszczególnych obszarów. Maksymalną procentową liczbę punktów, jakie mogą zostać zmienione wyznacza margines bezpieczeństwa oznaczony parametrem $\gamma$. Nadawca w celu dodania wiadomości modyfikuje liczbę pikseli $P$ w kolorze, który ma mieć więcej punktów w danym obszarze, tak by spełniała nierówność: $P<=X\gamma$, gdzie $X$ to całkowita liczba pikseli w danym fragmencie.

Więcej o zastosowaniu metody procentowej >>tutaj<<

Metoda dodawania echa

Efekt echa może być dodany do pliku dźwiękowego jako dodatkowy filtr opóźniający. Z matematycznego punktu widzenia echo jest dyskretną funkcją czasu $f(t)$ sumującą wartości funkcji w czasie $t$ z wartością poprzednią

$f'(t) = f(t) + \alpha f(t-\Delta t)$.

Ludzkie ucho nie jest w stanie wychwycić dołączonego echa sygnału, jeżeli występuje ono nie później niż 2 milisekundy po sygnale oraz jego amplituda nie przekracza połowy amplitudy sygnału oryginalnego.

Sygnał dźwiękowy dzielony jest na fragmenty. Do każdej próbki dodawany jest jeden bit tajnej informacji pod postacią echa o opóźnieniu odpowiadającym wartości, jaka ma zostać ukryta. Wartości kolejnych bitów ukrywanej wiadomości dodawane są więc do kolejnych fragmentów sygnału poprzez wybór odpowiedniego opóźnienia echa. Niewielkie opóźnienie jest niezauważalne dla człowieka. Co więcej, aby uniknąć zakłóceń pomiędzy kolejnymi fragmentami z różnym opóźnieniem, zmiana nie powinna być większa niż 0,05 milisekundy. Zapewni to efekt płynnego przejścia.

Proces wyodrębniania informacji polega na wykryciu odległości pomiędzy sygnałem a echem.

Metoda dołączania echa charakteryzuje się niewielką pojemnością steganograficzną, ale wysoką odpornością na uszkodzenia ukrytej informacji.

Metoda modyfikacji widma i kodowania fazy

Dyskretna transformacja Fouriera DFT (ang. Discrete Fourier Transform) przybliża wartości n próbek sygnału za pomocą złożenia wielu funkcji okresowych sinus i kosinus. Dla sygnału dźwiękowego funkcja dyskretna przekształcenia transformującego przyjmuje jedną zmienną, natomiast dla obrazu jest dwuargumentowa. Wynikiem jest zbiór liczb zespolonych. Na potrzeby przetwarzania obrazu wykorzystuje się zbiór modułów tych liczb w postaci amplitud funkcji sinus i cosinus — jest to tak zwane widmo sygnału. Modyfikacja składników widma może posłużyć ukryciu danych w obrazie bez wprowadzania do niego widocznych zniekształceń. Ze względu na swoje właściwości ta metoda sprawdza się w dodawaniu znaków wodnych. W plikach dźwiękowych, aby nie wprowadzać wyraźnych zakłóceń, należy transformację stosować na pasmach niesłyszalnych lub z zastosowaniem bardzo małej siły zmian. W przypadku plików audio modyfikacja widma amplitudowego skutkuje wprowadzeniem szumu, dlatego bardziej popularna jest technika przesunięcia fazy sygnału. Sygnał dzielony jest na określoną liczbę sekwencji, mieszczącą ukrywaną wiadomość. Dla każdego wyznaczonego fragmentu stosowana jest osobna transformacja DFT, której wynikiem są dwie macierze: amplitud oraz faz. Kodowanie fazy polega na zmianie wartości faz fal tylko pierwszego bloku. W kolejnych odcinkach następuje modyfikacja zachowująca pierwotne różnice między fazami fal poszczególnych fragmentów.

Przekształcenie Fouriera wykonywane jest na blokach (fragmentach) sygnału, co ogranicza pojemność steganograficzną metod bazujących na nim. Zaletą jest natomiast duża trwałość wprowadzonych zmian, a co za tym idzie odporność dołączonych danych na uszkodzenie.


Bibliografia

  1. W. Garbarczuk and P. Kopniak, Steganologia: współczesnie metody ochrony informacji (przegląd). Pomiary, Automatyka, Kontrola: miesięcznik naukowo-techniczny, (03):21–25, March 2005