Steganografia cyfrowa: programy i inne metody wdrażania. Steganografia

Możliwość ukrycia niektórych danych wewnątrz innych może pozwolić osobie atakującej na ukradkową kradzież wielu poufnych informacji.

  • Steganografia: mała teoria
  • Steganografia w praktyce
  • Programy steganograficzne
    • ImageSpyer G2
    • StegoTC G2 TC
    • CzerwonyJPEG
    • DarkCryptTC ​​i Projekt Zarya
  • Steganografia DIY

Problem ukrywania danych niepokoi ludzkość od czasów starożytnych. Szyfry są zwykle używane do ochrony informacji. Ich wiarygodność może być różna, ale zanim wróg zdoła je zhakować, informacje będą już stare.

W dobie technologii cyfrowej sytuacja nieco się zmieniła: możliwości obliczeniowe komputerów stale rosną, a ponadto pojawiła się ogromna liczba kanałów komunikacyjnych, którymi można przesyłać informacje. Jednocześnie kradzież danych stała się znacznie łatwiejsza.

Jeśli wcześniej nie do końca uczciwy pracownik musiał chować papierową kopię, aby wyjąć jakiś tajny rysunek lub dokument, to w dobie technologii cyfrowej wydobycie tajemnicy stało się znacznie łatwiejsze. Zaszyfrowany plik można przesłać przez sieć lub upuścić na nośnik wymienny, dysk flash i schować do kieszeni.

W pierwszym przypadku wszystko jest stosunkowo proste, rozwiązań w zakresie sterowania ruchem jest wiele. Aby przeciwdziałać kopiowaniu na dyski flash, dostępne są również narzędzia zapobiegające włamaniom DLP (Data Leak Prevention). Ogólnie rzecz biorąc, większość rozwiązań DLP kontroluje wszystkie kanały wycieku danych na komputerze, zarówno sieciowym, jak i peryferyjnym. Zatem odpowiednio skonfigurowany system zapobiegania wyciekom danych może nie tylko sprawić kłopoty atakującemu podczas kradzieży informacji, ale także umożliwi administratorom kontrolę wszystkich jego działań, tym samym identyfikując, jakie tajemnice go interesują oraz jakich środków i metod używa do kradzieży informacji .

Kolejnym oczywistym krokiem w tej „konkurencji pancerza z pociskiem” byłoby przekazanie informacji i dalsza transmisja opisanymi powyżej kanałami. Jednak już sama próba przekazania na zewnątrz pliku, którego nie da się odczytać, powinna wzbudzić poważne podejrzenia wśród ochroniarzy i zostać zablokowana przez odpowiednią oprogramowanie. Możesz jednak spróbować ukryć zaszyfrowane dane w innych treściach. Teraz płynnie doszliśmy do głównego tematu tego artykułu – steganografii.

Steganografia, a nie stenografia

Artykuł w Wikipedii mówi nam, że steganografia (dosłownie przetłumaczona z greckiego jako „tajne pisanie”) to nauka o tajnym przekazywaniu informacji poprzez utrzymywanie w tajemnicy faktycznego przekazu. Natomiast kryptografia, która ukrywa treść tajnej wiadomości, ukrywa sam fakt jej istnienia. Chociaż zwykle te dwie technologie są używane razem.

Steganografia jest wykorzystywana do różnych celów. Często służy nie do kradzieży, ale do walki z porywaczami. Na przykład podczas ochrony praw autorskich, gdy w dokumencie ukryta jest pewna ukryta zakładka, co pozwala ustalić, kto jest jej właścicielem ten egzemplarz plik. Jeśli taki znak zostanie następnie znaleziony gdzieś na torrentach, właściciele praw autorskich będą mogli dowiedzieć się, kto dokładnie go umieścił i przedstawić mu odpowiednie roszczenia.

Jednak w artykule opiszę zastosowanie steganografii w szczególności jako środka kradzieży danych. Zacznijmy od omówienia kilku zagadnień teoretycznych. Od razu zastrzegam, że mówiąc o technicznych sposobach realizacji steganografii, dotknę jedynie steganografii cyfrowej, czyli ukrywania informacji wewnątrz innych danych cyfrowych. Jednocześnie nie będę poruszał metod opartych na zastosowaniu różnych systemy plików zarezerwowane partycje dysku twardego lub dyskietki lub techniki związane ze specyfiką funkcjonowania różnych platform sprzętowych i system operacyjny. W tym artykule interesują nas tylko pliki różne formaty i możliwości w nich zawarte.

Steganografia: mała teoria

Przede wszystkim proponuję rozważyć główne algorytmy używane w steganografii.

Metody takie jak LSB (najmniej znaczący bit, najmniej znaczący bit) i podobne. Ich istotą jest zastąpienie ostatnich znaczących bitów w kontenerze (obrazu, nagrania audio lub wideo) fragmentami ukrytego przekazu. Weźmy jako przykład plik graficzny. Wizualnie wygląda to tak: zmieniamy bity niższego rzędu w kodzie koloru piksela na obrazku. Jeśli przyjmiemy, że kod koloru ma wartość 32-bitową, to zastąpienie 0 przez 1 lub odwrotnie nie doprowadzi do istotnego zniekształcenia obrazu, zauważalnego dla ludzkich narządów zmysłów. Tymczasem w tych fragmentach szerszego obrazu można coś ukryć.

Spójrzmy na mały przykład. Załóżmy, że mamy 8-bitowy obraz w skali szarości. 00h (00000000b) oznacza kolor czarny, FFh (11111111b) oznacza kolor biały. W sumie jest 256 gradacji (). Załóżmy również, że wiadomość składa się z 1 bajtu - na przykład 01101011b. Używając najmniej znaczących dwóch bitów w opisach pikseli, potrzebujemy 4 pikseli. Powiedzmy, że są czarne. Wtedy piksele zawierające ukrytą wiadomość będą wyglądać tak: 00000001 00000010 00000010 00000011. Następnie zmieni się kolor pikseli: pierwszy - o 1/255, drugi i trzeci - o 2/255, a czwarty - o 3 /255. Takie gradacje są nie tylko niewidoczne dla człowieka, ale w przypadku korzystania z urządzeń wyjściowych niskiej jakości mogą w ogóle nie zostać wyświetlone.

Warto zaznaczyć, że metody LSB są niestabilne na różnego rodzaju „szumy”. Przykładowo, jeśli na przesyłaną treść nałożone zostaną „śmieciowe” bity, zniekształca to zarówno treść pierwotną, jak i (co jest dla nas szczególnie ważne) ukryty przekaz. Czasem nawet staje się nieczytelny. Podobną technikę stosuje się w przypadku innych formatów.

Inną metodą jest tzw. lutowanie ukrytych informacji. W tym przypadku ukryty obraz (dźwięk, czasem tekst) zostaje nałożony na oryginał. Najprostszym przykładem jest biały napis na białym tle w dokumencie PDF. Atakujący zwykle nie korzystają z tej metody ze względu na względną łatwość wykrycia metodami automatycznymi. Jednak tę metodę często stosuje się przy tworzeniu „znaków wodnych” w celu ochrony autorstwa treści. W tym przypadku znaki te z reguły nie są ukryte.

Trzecią metodą jest wykorzystanie funkcji formatów plików. Może to być na przykład zapisanie informacji w metadanych używanych przez dany format pliku lub w różnych innych, niewykorzystanych, zarezerwowanych polach. Może to być na przykład dokument Microsoft Word, wewnątrz którego ukryte zostaną informacje, które nie zostaną w żaden sposób wyświetlone przy otwieraniu tego dokumentu.

Steganografia audio

Inna metoda ukrywania informacji ma zastosowanie tylko do plików audio - jest to metoda echa. Wykorzystuje nieregularne odstępy pomiędzy echami do kodowania sekwencji wartości. Generalnie możliwe jest stworzenie warunków, w których sygnały te będą niewidoczne dla ludzkiej percepcji. Sygnał echa charakteryzuje się trzema parametrami: amplitudą początkową, stopniem tłumienia i opóźnieniem. Kiedy między sygnałem a echem zostanie osiągnięty określony próg, następuje ich mieszanie. W tym momencie ludzkie ucho nie jest już w stanie rozróżnić tych dwóch sygnałów. Do wskazania logicznego zera i jedynki używane są dwa różne opóźnienia. Obydwa powinny być mniejsze niż próg wrażliwości ucha słuchacza na odbierane echo.

Jednak w praktyce ta metoda również nie jest zbyt niezawodna, ponieważ nie zawsze można dokładnie określić, kiedy przesłano zero, a kiedy przesłano jedynkę, w wyniku czego istnieje duże prawdopodobieństwo zniekształcenia ukrytych danych.

Innym przypadkiem użycia steganografii w plikach audio jest kodowanie fazowe. Oryginalny element dźwiękowy zostaje zastąpiony fazą względną, która jest tajnym przesłaniem. Fazę kolejnych elementów należy dokładać w taki sposób, aby zachować względną fazę pomiędzy oryginalnymi elementami, w przeciwnym razie wystąpią zauważalne dla ludzkiego ucha zniekształcenia.

Obecnie kodowanie fazowe jest jednym z najbardziej popularnych skuteczne metody ukrywanie informacji.

Steganografia w praktyce

Myślę, że w tym miejscu możemy zakończyć teorię i przejść do praktycznych aspektów stosowania steganografii. Nie będę opisywał rozwiązań komercyjnych, ale ograniczę się do mówienia o małych bezpłatne narzędzia, z którego atakujący może łatwo skorzystać nawet bez uprawnień administracyjnych w systemie.

Programy steganograficzne

Jako plik do przechowywania danych użyłem obrazu o rozdzielczości 1680x1050 zapisanego w różnych formatach: BMP, PNG, JPEG. Ukrytym dokumentem był plik tekstowy rozmiar około 40 KB. Wszystkie opisane programy poradziły sobie z zadaniem: plik tekstowy został pomyślnie zapisany, a następnie wyodrębniony z pliku źródłowego. Jednocześnie nie wykryto zauważalnego zniekształcenia obrazu. Przedstawione poniżej narzędzia można pobrać ze strony internetowej.

ImageSpyer G2

Narzędzie do ukrywania informacji w plikach graficznych za pomocą kryptografii. Jednocześnie obsługiwanych jest około 30 algorytmów szyfrowania i 25 funkcji skrótu do szyfrowania kontenerów. Ukrywa objętość równą liczbie pikseli obrazu. Opcjonalnie dostępna jest kompresja ukrytych danych.


ImageSpyer G2

Narzędzie jest kompatybilne z systemem Windows 8. Jako źródłowe pliki graficzne można używać formatów BMP, JPEG, WMF, EMF, TIFF.

Możesz pobrać ImageSpyer G2 za darmo w formacie .

StegoTC G2 TC

Wtyczka archiwizatora steganograficznego (wcx) dla Total Comander pozwala ukryć dane na dowolnym obrazie, przy czym obsługiwane są formaty BMP, TIFF i PNG.

Możesz pobrać StegoTC G2 za darmo, korzystając z pliku .

CzerwonyJPEG

Interfejs tego programu, jak sama nazwa wskazuje, wykonany jest w stylu czerwonym. To łatwe w użyciu narzędzie służy do ukrywania wszelkich danych JPEG na obrazie (zdjęciu, obrazku) przy użyciu opatentowanej metody steganograficznej. Wykorzystuje otwarte algorytmy szyfrowania, szyfr strumieniowy AMPRNG i Cartman II DDP4 w trybie funkcji skrótu, kompresję LZMA.


CzerwonyJPEG

Uzupełnieniem profesjonalnej rozszerzonej wersji RedJPEG XT jest maskowanie faktu osadzania oraz ulepszona procedura inicjowania szyfru strumieniowego na podstawie charakterystyki obrazu. Obejmuje kompilacje x86 i x86-64.

Dostępna jest również wtyczka RedJPEG XT dla TC WCX Total Comander, która ma podobną funkcjonalność.

Możesz pobrać RedJPEG za darmo, używając .

DarkCryptTC ​​i Projekt Zarya

Program ten można nazwać najpotężniejszym rozwiązaniem steganograficznym. Obsługuje ponad sto różnych symetrycznych i asymetrycznych algorytmów kryptograficznych. Zawiera obsługę autorskiego systemu wtyczek przeznaczonych do szyfrów blokowych (BlockAPI), steganografii tekstowej, audio i obrazowej (w tym prawdziwej steganografii JPEG), potężnego generatora haseł oraz systemu niszczenia informacji i kluczy.


DarkCryptTC ​​i Projekt Zarya

Lista obsługiwanych formatów jest naprawdę imponująca: *.txt, *.html, *.xml, *.docx, *. odt, *.bmp, *jpg, *.tiff, *.png, *.jp2, *.psd, tga, *.mng, *.wav, *.exe, *.dll.

Zestaw programów do steganografii nie jest zbyt duży, ale w zupełności wystarczy, aby skutecznie ukryć informacje w plikach o różnych formatach.

Możesz pobrać DarkCryptTC ​​za darmo używając .

Na naszej stronie znajdują się także inne materiały związane ze steganografią. Aby znaleźć wszystkie programy i książki, wyszukaj słowo „Steganografia”

Steganografia DIY

Dla osób znających się na programowaniu, w szczególności z Studio wizualne i C#, mogę też polecić dość ciekawy, w którym można znaleźć teksty źródłowe narzędzia steganograficzne dla różnych formatów danych: do pracy z formaty graficzne oraz do ukrywania informacji np. w archiwach ZIP. Ogólną zasadą tej konwersji jest wykorzystanie nagłówków zarchiwizowanych plików. Fragment kodu źródłowego do pracy z archiwami ZIP wygląda następująco:

private void ZipFiles(string docelowyNazwaPliku, ↵
hasło ciąg)
{
Wyjście FileStreamFileStream = ↵
nowy FileStream(destinationFileName, ↵
FileMode.Create);
ZipOutputStream zipStream = ↵
nowy ZipOutputStream(outputFileStream);
bool isCrypted = fałsz;
if (hasło != null && hasło.Długość > 0)
( //zaszyfruj plik zip, jeśli podano hasło
zipStream.Password = hasło;
isCrypted = prawda;
}
foreach(ListViewItem viewItem w lvAll.Items)
{
inputStream = nowy FileStream(viewItem.Text, ↵ FileMode.Open);
zipEntry = nowy ICSharpCode.SharpZipLib.Zip.ZipEntry(↵ Path.GetFileName(viewItem.Text));
zipEntry.IsVisible = viewItem.Checked;
zipEntry.IsCrypted = isCrypted;
zipEntry.CompressionMethod = ↵ CompressionMethod.Deflated;
zipStream.PutNextEntry(zipEntry);
KopiujStream(Streamwejściowy, ZipStream);
strumień wejściowy.Close();
zipStream.CloseEntry();
}
zipStream.Zakończ();
zipStream.Close();
}

Na tej stronie można znaleźć wiele przykładów kodów źródłowych o dowolnej złożoności, więc przestudiowanie praktycznych wdrożeń nie będzie trudne dla zainteresowanych.

Myślę, że każdy choć raz słyszał o steganografii. Steganografia (τεγανός – ukryte + γράφω – piszę, dosłownie „pismo ukryte”) to interdyscyplinarny nauka i sztuka nadawania ukryty dane, wewnątrz innych, Nie ukryty dane. Ukryte dane są zwykle nazywane wiadomość stego i dane, które zawierają wiadomość stego zwany pojemnik.

Na Habrahabr było wiele różnych artykułów na temat konkretnych algorytmów steganografia informacji, na przykład DarkJPEG, „steganografia TCP” i oczywiście uwielbiany przez wszystkich studentów podczas projektowania kursu, „algorytm LSB” (na przykład steganografia LSB, Steganografia w formacie GIF, Cotfuscation kodu executable.net)

Metod steganograficznych jest niezliczona ilość. W chwili pisania tego tekstu w Stanach Zjednoczonych opublikowano już co najmniej 95 patentów na steganografię, a w Rosji co najmniej 29 patentów. Najbardziej podobał mi się patent Kursz K. I Lav R. Varchney „Steganografia żywności”(„Steganografia żywności”, PDF)

Zdjęcie z patentu na „żywność” dla przyciągnięcia uwagi:

Jednak po przeczytaniu pokaźnej liczby artykułów i prac poświęconych steganografii zapragnąłem usystematyzować swoje pomysły i wiedzę w tym zakresie. Ten artykuł jest czysto teoretyczny i chciałbym omówić następujące kwestie:

  1. Cele steganografii- właściwie jest ich trzech, a nie jeden.
  2. Praktyczne zastosowanie steganografii- Naliczyłem 15.
  3. Miejsce steganografii w XXI wieku- Uważam, że z technicznego punktu widzenia nowoczesny świat już przygotowane, ale "społecznie" Steganografia wciąż pozostaje w tyle.

Próbowałem podsumować moje badania na ten temat. (Oznacza to, że jest dużo tekstu)
Liczę na rozsądną krytykę i porady ze strony społeczności habro.

Cele steganografii

Cel jest zadaniem abstrakcyjnym, w związku z którym opracowuje się teorię naukową i metodologię osiągnięcia tego celu. Nie ma potrzeby się mylić cel I aplikacja. Cel niezwykle abstrakcyjne, w przeciwieństwie do Aplikacje.

Jak powiedziałem wcześniej, steganografia ma trzy cele.

Cyfrowe odciski palców (Cyfrowy odcisk palca)

Ten rodzaj steganografii implikuje obecność różny steganograficzne znaczniki wiadomości dla każdy egzemplarz pojemnik. Na przykład CO mogą mieć zastosowanie do ochrony wyłącznego prawa. Jeżeli przeciwnikowi przy pomocy jakiegoś algorytmu uda się wydobyć CO z pojemnika, wówczas identyfikacja wroga jest niemożliwa, jednak dopóki przeciwnik nie nauczy się sfałszować CO, nie będzie mógł rozprowadzić chronionego pojemnika bez wykrycia.

Zatem podczas wydobywania CO strona trzecia (tj. Przeciwnik) może realizować dwa cele:

  1. wyjęcie centrali CO z kontenera ( „słaby cel”);
  2. wymiana jednego węzła centralnego ogrzewania na inny ( „silny cel”).

Przykładem CO jest sprzedaż e-booki(na przykład w formacie *.PDF). Płacąc za książkę i wysyłając ją do odbiorcy, możesz *.pdf wstaw informację o e-mailu; adres IP; dane wprowadzone przez użytkownika itp. Oczywiście nie są to odciski palców ani analiza DNA, ale jak widać, lepsze to niż nic. Być może w Rosji, ze względu na odmienną kulturę i odmienne, ugruntowane historycznie podejście do praw wyłącznych, takie stosowanie steganografii jest nieistotne; ale np. w Japonii, gdzie pobieranie plików torrent może skutkować karą pozbawienia wolności, bardziej prawdopodobne jest korzystanie z ośrodków steganograficznych.

Steganograficzne znaki wodne (SVZ) (Stego Watermarking)

W przeciwieństwie do CO, SVZ implikuje obecność identyczny tagi dla każdy egzemplarz pojemnik. W szczególności SVZ można wykorzystać do potwierdzenia praw autorskich. Na przykład podczas nagrywania kamerą wideo można w każdej klatce przeplatać informacje o czasie nagrywania, modelu kamery wideo i/lub nazwisku operatora kamery wideo.
Jeśli materiał filmowy trafi w ręce konkurencyjnej firmy, możesz spróbować skorzystać z SVZ, aby potwierdzić autorstwo nagrania. Jeśli klucz jest utrzymywany w tajemnicy przed właścicielem aparatu, za pomocą SVZ możesz potwierdzić autentyczność zdjęć i/lub obrazów wideo. Swoją drogą, nasz kolega ze sklepu, Dmitrij Witalijewicz Sklyarow, skutecznie złamał steganografię w niektórych modelach aparatów Canon. Problem był tak naprawdę sprzętowy, Dmitrij Witalijewicz nie dotknął samej kołdry, niemniej jednak steganograficznie „udowodnił” autentyczność Stalina za pomocą iPhone'a.

Zdjęcie Stalina z iPhonem, wykonane przez D.V. Sklyarova (z poprawnym SVZ)


Ukryty transfer danych (SDT)

To „klasyczny” cel steganografii, znany od czasów Eneasza Tacticusa (Αινείας ο Τακτικός, zobacz jego dzieło zawierające proste techniki steganograficzne:). Zadaniem jest przesłanie danych tak, aby wróg nie zorientował się, że wiadomość się pojawiła.

We współczesnych rosyjskojęzycznych pracach poświęconych steganografii termin ten jest często używany DWW (cyfrowe znaki wodne). Termin ten oznacza SVZ lub centrum centralnego ogrzewania. (A czasami SVZ i DH jednocześnie, a nawet w jednym artykule!) Niemniej jednak przy wdrażaniu DH i SVZ pojawiające się problemy i zadania są zasadniczo różne! Rzeczywiście, SVZ na wszystkich egzemplarzach dokument elektroniczny jest taki sam, ale CO na wszystkich kopiach dokumentów jest inny. Z tego powodu np. atak spiskowy zasadniczo niemożliwe w SVZ! Przynajmniej z tego powodu konieczne jest rozróżnienie pomiędzy SVZ i CO. Zdecydowanie odradzam każdemu, kto zamierza pracować w dziedzinie steganografii, aby nie używał w swoim przemówieniu terminu podpis cyfrowy.

Ta pozornie oczywista idea wciąż powoduje zamieszanie wśród wielu osób. Podobny punkt widzenia na potrzebę rozróżnienia SVZ i CO wyrażali tak znani „steganografowie” w wąskich kręgach, jak Cachin, Petitcolas, Katzenbeisser.

Dla każdego z tych trzech celów należy opracować własne kryteria siły systemu steganograficznego i formalne informacyjno-teoretyczne modele ich osiągnięcia, ponieważ Znaczenie stosowania steganografii jest inne. Podstawowa różnica między SVZ i CO została napisana powyżej. Ale może warto połączyć SPD z centralą CO lub z SVZ? NIE! Rzecz w tym, że sens SPO jest sam ukryty transfer danych, a CO i SVZ mają na celu ochronę sam pojemnik. Co więcej, sam fakt istnienia CO lub SVZ nie może być tajemnicą, w przeciwieństwie do większości zadań SPD. W szczególności z tego powodu mówienie o możliwości zbudowania idealnego stegosystemu (według Cachena) do realizacji centralnego lub centralnego sterowania dla większości problemów praktycznych nie ma żadnego praktycznego sensu.

4. Ochrona prawa wyłącznego (PR)

Możliwym zastosowaniem jest holograficzny dysk uniwersalny (HVD). (To prawda, że ​​istnieje taki punkt widzenia tę technologię pierwotnie „martwe”) obecnie opracowywane dyski HVB mogą zawierać do 200 GB danych na kasetę. Technologie te mają być wykorzystywane przez nadawców telewizyjnych i radiowych do przechowywania informacji wideo i audio. Obecność CO w kodach korekcyjnych tych dysków może być wykorzystana jako podstawowy lub dodatkowy środek ochrony praw licencyjnych.

Innym przykładem, jak pisałem wcześniej, jest sprzedaż internetowa zasoby informacji. Mogą to być książki, filmy, muzyka itp. Każda kopia musi zawierać CO umożliwiający identyfikację osobistą (przynajmniej pośrednio) lub specjalny znak umożliwiający sprawdzenie, czy jest to kopia licencjonowana, czy nie.

Firma amazon.com próbowała zrealizować ten cel w latach 2007-2011. Cytat artty'ego z artykułu „Ochrona” plików mp3 na amazon.com:

W języku rosyjskim: pobrany plik będzie zawierał unikalny identyfikator zakupu, datę/godzinę zakupu i inne informacje (...).

Nie było możliwości bezpośredniego pobrania tych kompozycji (Amazon przysięga i twierdzi, że może je sprzedawać tylko w Stanach Zjednoczonych). Musiałem zapytać moich amerykańskich przyjaciół i po chwili miałem w rękach tę samą piosenkę, ale pobraną niezależnie przez dwie różne osoby z różnych kont Amazon. Pliki wyglądały dokładnie tak samo, rozmiar był taki sam co do bajtu.

Ale ponieważ Amazon napisał, że w każdym mp3 zawiera identyfikator pobrania i kilka innych danych. Postanowiłem sprawdzić po kolei oba istniejące pliki i od razu znalazłem różnice.

5. Ochrona praw autorskich (CPR)

W takim przypadku każda kopia treści zabezpieczona jest jednym znakiem. Może to być na przykład fotografia. Jeżeli fotografia zostanie opublikowana bez zgody fotografa, twierdzącego, że nie jest on autorem tej pracy, fotograf może podjąć próbę udowodnienia swojego autorstwa za pomocą steganografii. W takim przypadku każde zdjęcie powinno zawierać informację dot numer seryjny aparat i/lub inne dane umożliwiające „powiązanie” zdjęcia z jednym aparatem; a za pomocą aparatu fotograf może spróbować pośrednio udowodnić, że jest autorem zdjęcia.

6. Ochrona autentyczności dokumentów (POA)

Technologia może być taka sama jak w przypadku ochrona praw autorskich. Tylko w tym przypadku steganografia służy nie do potwierdzenia autorstwa, ale do potwierdzenia autentyczności dokumentu. Dokument niezawierający CVZ uznawany jest za „nieprawdziwy”, tj. podróbka. Wspomniany już Dmitrij Sklyarov rozwiązywał odwrotny problem. Znalazł lukę w aparacie Cannona i był w stanie sfałszować autentyczność zdjęcia Stalina za pomocą iPhone'a.

7. Indywidualny odcisk palca w EDMS (CO)

W elektroniczny system zarządzania dokumentacją(EDMS) możesz używać indywidualnego odcisku palca w plikach *.odt, *.docx i innych dokumentach, gdy użytkownik z nimi pracuje. Aby to zrobić, należy napisać specjalne aplikacje i/lub sterowniki, które zostaną zainstalowane i uruchomione w systemie. Jeśli to zadanie zostanie zakończone, użyj indywidualny odcisk palca możliwe będzie zidentyfikowanie, kto pracował z dokumentem, a kto nie. Oczywiście w tym przypadku stawianie steganografii jako jedynego kryterium jest głupotą, ale jako dodatkowy czynnik identyfikujący uczestników pracujących z dokumentem może się przydać.

8. Znak wodny w systemach DLP (SVZ)

Można zastosować steganografię zapobieganie wyciekom informacji(Zapobieganie wyciekom danych, DLP). w odróżnieniu indywidualny odcisk palca w EDMS, w tym zastosowaniu steganografii przy tworzeniu dokumentu o charakterze poufnym wstawia się pewien znak. W takim przypadku etykieta nie ulega zmianie, niezależnie od liczby kopii i/lub wersji dokumentu.

Do usunięcia tagu potrzebny jest klucz. Stegokey oczywiście jest utrzymywany w tajemnicy. System DLP przed zatwierdzeniem lub odmową wydania dokumentu na zewnątrz sprawdza obecność lub brak znaku wodnego. Jeżeli znak jest obecny, system nie pozwala na wysłanie dokumentu poza system.

9. Ukryta transmisja sygnału sterującego (SPT)

Załóżmy, że odbiorcą jest jakiś system (np. satelita); a nadawcą jest operator. W tym przypadku steganografię można wykorzystać do dostarczenia do systemu dowolnego sygnału sterującego. Jeśli system może znajdować się w różnych stanach i chcemy, aby wróg nawet nie zorientował się, że system przeszedł do innego stanu, możemy zastosować steganografię. Używanie wyłącznie kryptografii, bez steganografii, może dać wrogowi informację, że coś się zmieniło i sprowokować go do niepożądanych działań.

Myślę, że nikt nie będzie zaprzeczał, że w sferze wojskowej to zadanie jest niezwykle istotne. To zadanie mogą być również istotne dla organizacji przestępczych. W związku z tym organy ścigania powinny uzbroić się w pewną teorię na ten temat i promować rozwój programów, algorytmów i systemów przeciwdziałających temu wykorzystaniu steganografii.

10. Steganograficzne sieci botnetów (SBN)

Aby być pedantycznym, tę aplikację można uznać za przypadek szczególny ukryta transmisja sygnału sterującego. Postanowiłem jednak wyróżnić tę aplikację osobno. Mój kolega z TSU przesłał mi bardzo interesujący artykuł od kilku osób Shishir Nagaraja, Amira Houmansadra, Pratcha Piyawongwisala, Vijita Singha, Pragia Agarwal I Nikita Borysow„i„ Stegobot: ukryty botnet sieci społecznościowej ”. Nie jestem ekspertem od sieci botnetów. Nie mogę powiedzieć, czy to bzdura, czy interesująca funkcja. Po prostu usłyszę opinię społeczności Habra!

11. Potwierdzenie wiarygodności przekazanych informacji (CO).

Wiadomość stego w tym przypadku zawiera dane potwierdzające poprawność przesłanych danych kontenera. Może tak być na przykład suma kontrolna lub funkcja skrótu (streszczenie). Zadanie sprawdzenia ważności jest istotne, jeśli przeciwnik ma potrzebę sfałszowania danych kontenera; z tego powodu nie należy mylić tej aplikacji z ochroną autentyczności dokumentów! Przykładowo, jeśli mówimy o fotografii, to ochrona autentyczności jest dowodem na to, że jest to fotografia prawdziwa, a nie sfałszowana w Photoshopie. Wydaje się, że chronimy się przed samym nadawcą (w tym przypadku fotografem). Jeżeli autentyczność zostanie potwierdzona, konieczne jest zorganizowanie zabezpieczenia przed osobami trzecimi (człowiek w środek), który ma możliwość fałszowania danych pomiędzy nadawcą a odbiorcą.

Problem ten ma wiele klasycznych rozwiązań, w tym także kryptograficznych. Innym sposobem rozwiązania tego problemu jest steganografia.

12. Funkspiel („Gra radiowa”) (SPD)

Z Wikipedii:

Definicja Funkspiel

Gra radiowa (kopia śledząca z niemieckiego Funkspiel - „gra radiowa” lub „słuchowisko radiowe”) - w praktyce wywiadu XX wieku wykorzystanie łączności radiowej do dezinformowania agencji wywiadowczych wroga. W grze radiowej często wykorzystuje się radiooperatora lub podwójnego agenta schwytanego przez kontrwywiad i nawróconego. Gra radiowa pozwala symulować działania zniszczonej lub nigdy nieistniejącej sieci wywiadowczej (a tym samym ograniczyć aktywność wroga w wysyłaniu nowych oficerów wywiadu), przekazywać wrogowi dezinformację, pozyskiwać informacje o zamiarach jego agencji wywiadowczych i osiągać inne cele wywiadowcze i kontrwywiadowcze.

Przy planowaniu działań rozpoznawczych uwzględniono możliwość awarii i późniejszego odsłuchu radiowego. Na radiogramie z góry określono różne znaki, których obecność lub brak pozwalał zrozumieć, że radiooperator pracował pod kontrolą wroga.

Wiadomość Stego w tym przypadku zawiera dane wskazujące, czy informacja jest warta przyjęcia pojemnik poważnie. Może to być także jakiś rodzaj funkcji skrótu lub po prostu wstępnie ustawiona sekwencja bitów. Może to być także funkcja skrótu czasu rozpoczęcia przekazu (w tym przypadku, aby wyeliminować problem desynchronizacji czasu pomiędzy nadawcą a odbiorcą, czas należy mierzyć z dokładnością do minut lub nawet godzin, a nie z dokładnością do z dokładnością do sekund lub milisekund).

Jeśli wiadomość stego nie przejdzie weryfikacji, kontener powinien zostać zignorowany przez odbiorcę, niezależnie od jego zawartości. W takim przypadku steganografia może zostać wykorzystana do dezinformacji wroga. Kontenerem może być na przykład wiadomość kryptograficzna. W tym przypadku nadawca, chcąc wprowadzić wroga w błąd, szyfruje dane jakimś znanym wrogowi skompromitowanym kluczem kryptograficznym, a wiadomość stego służy do uniemożliwienia odbiorcy przyjęcia fałszywego kontenera.

Załóżmy, że wróg ma możliwość zniszczenia CO. W tym przypadku funkspiel mogą zostać wykorzystane wbrew interesom nadawcy. Odbiorca bez odnalezienia etykiety nie zignoruje otrzymanego pojemnika. Być może w niektórych praktycznych decyzjach jest to uzasadnione funkspiel używać z potwierdzenie autentyczności. W takim przypadku wszelkie informacje, które nie zawierają znaku wiarygodności, są ignorowane; w związku z tym w przypadku gry radiowej po prostu nie należy umieszczać znacznika w wiadomości.

13. Niezbywalność informacji (INI)

Istnieje wiele dokumentów, w przypadku których ważna jest integralność. Można to zrobić poprzez utworzenie kopii zapasowej danych. Co jednak zrobić, gdy istnieje potrzeba posiadania dokumentów w takiej formie, że nie da się oddzielić jednej informacji od drugiej? Przykładem są zdjęcia medyczne. Dla wiarygodności wielu autorów sugeruje umieszczanie na zdjęciach informacji o imieniu, nazwisku i innych danych pacjenta. Zobacz na przykład książkę „Information Hiding Techniques for Steganography and Digital Watermarking” autorstwa Stefana Katzenbeissera i Fabiena A. P. Petitcolasa:

Fragment dotyczący zastosowania steganografii w medycynie. z książki „Techniki ukrywania informacji w steganografii i cyfrowym znaku wodnym”

Branża opieki zdrowotnej, a zwłaszcza systemy obrazowania medycznego, mogą odnieść korzyści z technik ukrywania informacji. Stosują standardy takie jak DICOM (cyfrowe obrazowanie i komunikacja w medycynie), które oddzielają dane obrazu od podpisu, takie jak imię i nazwisko pacjenta, data i lekarz. Czasami traci się połączenie między obrazem a pacjentem, dlatego umieszczenie nazwiska pacjenta na obrazie może być użytecznym środkiem bezpieczeństwa. Nadal otwartym pytaniem jest, czy takie oznaczenie miałoby jakikolwiek wpływ na trafność diagnozy, ale ostatnie badania Cosmana i wsp. odkrywszy, że kompresja stratna ma niewielki wpływ, przyjmijmy, że może to być wykonalne. Inną pojawiającą się techniką związaną z branżą opieki zdrowotnej jest ukrywanie wiadomości w sekwencjach DNA. Można to wykorzystać do ochrony własności intelektualnej w medycynie, biologii molekularnej lub genetyce.

Podobne argumenty można wysunąć w odniesieniu do współczesnej astronomii. Oto cytat rosyjskiego astronoma Władimira Georgiewicza Surdina ( link do filmu):

Zazdroszczę tym, którzy teraz wkraczają w naukę. Przez ostatnie 20 lat my [astronomowie] generalnie odmierzaliśmy czas. Ale teraz sytuacja się zmieniła. Na świecie zbudowano kilka teleskopów o zupełnie unikalnych właściwościach. Każdej nocy widzą prawie całe niebo i otrzymują ogromne ilości informacji. Dość powiedzieć, że w ciągu ostatnich 200 lat astronomowie odkryli kilka tysięcy obiektów. (...) To już 200 lat! Dziś co wieczór otwieramy trzysta nowych obiektów Układ Słoneczny! To więcej, niż człowiek byłby w stanie zapisać w katalogu za pomocą pióra. [na dzień]

Pomyśl tylko, każdej nocy pojawia się 300 nowych obiektów. Jasne, że są to różne małe asteroidy kosmiczne, a nie odkrycie nowych planet, ale mimo to... Rzeczywiście, czy rozsądne byłoby osadzenie informacji o czasie wykonania zdjęcia, lokalizacji wykonania zdjęcia i innych danych bezpośrednio w obrazie ? Następnie, wymieniając zdjęcia między astronomami, naukowcy zawsze mogli zrozumieć, gdzie, kiedy i w jakich okolicznościach wykonano dane zdjęcie. Możesz nawet wprowadzić informacje bez klucza, wierząc, że nie ma wroga. Te. używaj steganografii tylko po to, aby „nie wyobcować” samych obrazów z dodatkowych informacji, mając nadzieję na uczciwość użytkowników; być może byłoby to znacznie wygodniejsze niż dołączanie informacji do każdego zdjęcia.

Ze świata gry komputerowe Możesz zacytować WoW-a. Jeśli zrobisz zrzut ekranu gry, automatycznie zostanie zaimplementowany SVZ zawierający nazwę użytkownika, godzinę zrobienia zrzutu ekranu (z dokładnością do minuty i adresu IP) oraz adres serwera.

14. Odwrócenie uwagi steganograficznej (?)

Jak sama nazwa zadania wskazuje - odwrócić uwagę wroga. To zadanie można postawić, jeśli istnieje inny powód stosowania steganografii. Dla odwracanie uwagi steganograficznej Konieczne jest, aby generowanie stegokontenerów było znacznie „tańsze” (pod względem zasobów maszynowych i czasowych) niż wykrywanie steganografii przez wroga.

Z grubsza mówiąc, odwracanie uwagi steganograficznej przypomina nieco DoS i Ataki DDoS. Odwracasz uwagę wroga od pojemników, w których faktycznie znajduje się coś wartościowego.

15. Śledzenie steganograficzne (STD)

Ta aplikacja jest nieco podobna do kroku 7 indywidualny odcisk palca w EDMS, tylko cel jest inny – złapać przestępcę, który „wycieka” informacje. Można podać przykład ze świata rzeczywistego oznaczone banknoty(„oznakowane pieniądze”). Wykorzystywane są przez organy ścigania, aby przestępca, który otrzymał pieniądze za jakąkolwiek nielegalną działalność, nie mógł później twierdzić, że miał te pieniądze przed transakcją.

Dlaczego nie przenieść doświadczenia „prawdziwych kolegów” do naszego wirtualnego świata? Zatem śledzenie steganograficzne Przypomina mi coś w rodzaju garnka z miodem.

Prognoza przyszłości steganografii w pierwszej ćwierci XXI wieku

Po przeczytaniu pięćdziesięciu różnych artykułów na temat pikowania i kilku książek pozwolę sobie wyrazić swoją opinię na temat steganografii. To zdanie jest tylko moją opinią i nikomu jej nie narzucam. Gotowy na konstruktywną krytykę i dialog.

Praca dyplomowa. Uważam, że świat jest technicznie gotowy na steganografię, ale kulturowo nowoczesne społeczeństwo informacyjne jeszcze nie dojrzało. Myślę, że w najbliższej przyszłości (2015-2025) wydarzy się coś, co w przyszłości będzie można nazwać „ rewolucja steganograficzna„…To może być trochę aroganckie stwierdzenie, ale spróbuję uzasadnić mój punkt widzenia czterema punktami.

Pierwszy. W tej chwili nie ma jednolitej teorii steganografii. Ściśle tajny stegosystem (według Cashena) jest oczywiście lepszy niż nic, ale moim zdaniem jest to czarno-biała fotografia ogona sferycznego wirtualnego konia w próżni... Mittelholzer próbował nieco poprawić wyniki Christiana Cashena, ale na razie jest to bardzo szeroka teoria.

Istotną przeszkodą jest brak jednolitej teorii. Zostało matematycznie udowodnione, że szyfru Vernama (= „jednorazowa podkładka”) nie da się złamać, dlatego też połączenie pomiędzy V.V. Putin i Barack Obama przeprowadzani są właśnie za pomocą tego algorytmu. Istnieje pewna teoria, która tworzy i bada abstrakcyjne (matematyczne) obiekty kryptograficzne (funkcje wygięte, LFSR, cykle Facestyle, zbiory SP itp.). W steganografii istnieje zoo terminów i modeli, ale większość z nich jest bezpodstawna, nie w pełni zbadana lub naciągana.

Niemniej jednak widać już pewne zmiany w tym kierunku. Podejmowane są już skromne próby wykorzystania steganografii, jeśli nie jako głównego lub wręcz jedynego rozwiązania, to jako narzędzia pomocniczego. Przez te piętnaście lat (2000-2015) nastąpiła ogromna zmiana w teorii, ale myślę, że to mógłby być osobny wpis, trudno to w skrócie określić.

Drugi. Steganografia - nauka interdyscyplinarny! To pierwsza rzecz, którą powinien zrozumieć każdy początkujący steganograf. Jeśli kryptografia może abstrahować od sprzętu i rozwiązywać wyłącznie problemy w świecie matematyki dyskretnej, steganograf musi badać środowisko. Chociaż oczywiście istnieje wiele problemów przy budowie kryptosystemów, na przykład ataki typu side-channel; ale to nie jest wina jakości szyfru. Myślę, że steganografia będzie ewoluować wraz z rozwojem badań nad środowiskiem, w którym przekazywane są ukryte komunikaty. Zatem uzasadnione jest oczekiwanie pojawienia się „steganografii chemicznej”, „steganografii w obrazach”, „steganografii w kodach korygujących błędy”, „steganografii żywności” itp.

Od około 2008 roku wszyscy zdawali sobie z tego sprawę. Steganografią zainteresowali się nie tylko matematycy-kryptografowie, ale także językoznawcy, filolodzy i chemicy. Myślę, że to pozytywna zmiana, która wiele mówi.

Trzeci. Współczesny wirtualny świat jest przesycony tekstami, zdjęciami kotów, filmami i tak dalej, i tak dalej... W jednej z witryn YouTube każda minuta Przesłano ponad 100 godzin filmów! Pomyśl każda minuta! Ile minut czytałeś to obszerne dzieło?.. Teraz pomnóż tę liczbę przez 100! Tylko tyle godzin różnych filmów pojawiło się w tym czasie na YouTube!!! Czy możesz to sobie wyobrazić? Ale to ogromny „podstawa” do ukrywania danych! Oznacza to, że „technicznie” świat był już dawno gotowy na steganografię. I szczerze mówiąc, jestem głęboko przekonany, że steganografia i przeciwdziałanie steganografii staną się w najbliższej przyszłości równie palącym problemem, jak problem BigData Colossus…

Ta informacja przestała być tajemnicą, jeśli mnie pamięć nie myli, dopiero w latach 2000. Innym historycznym przykładem jest algorytm RSA, który został wynaleziony pod koniec II wojny światowej przez brytyjskich kryptologów. Jednak z oczywistych powodów wojsko sklasyfikowało pierwszy na świecie algorytm szyfrowania asymetrycznego, a palma trafiła do Diffiego, Helmana, a następnie Rivesta, Shamira i Adlemana.

Dlaczego to mówię? Rzecz w tym, że w bezpieczeństwo informacji wszystko jest wymyślone minimum dwukrotnie: raz „zamknięte”, a drugi raz „otwarte”; a w niektórych przypadkach nawet więcej niż dwukrotnie. Jest okej. Myślę, że steganografia też czeka (nie jest to już możliwe).

Z jakiegoś powodu we współczesnej literaturze zachodniej wielu naukowców, którzy w latach 1998–2008 zaproponowali bardzo interesujące pomysły, „zniknęło” (to znaczy przestało publikować). (np. Peter Weiner, Michelle Elia). Z grubsza podobna sytuacja istniała przed wynalezieniem broni atomowej... Kto wie, może doskonałe stegosystemy zostały już wynalezione i są z powodzeniem wykorzystywane przez GRU i/lub NSA? A my, kończąc czytanie tego wpisu i patrząc na nasze zegarki, obliczamy, ile jeszcze godzin mruczących kotów wrzuciły miliony użytkowników na YouTube i czy są wśród nich koty z korespondencją od terrorystów; polecenia dla sieci botnet lub rysunki RT-2PM2 zaszyfrowane szyfrem Vernama.

Steganografia to nauka o ukrytym przekazywaniu informacji, polegająca na utrzymywaniu w tajemnicy samego faktu przekazania informacji. W przeciwieństwie do kryptografii, która ukrywa treść tajnej wiadomości, steganografia ukrywa sam fakt jej istnienia. Steganografię najczęściej wykorzystuje się w połączeniu z metodami kryptograficznymi, stanowiąc w ten sposób ich uzupełnienie.

Przewaga steganografii nad czystą kryptografią polega na tym, że wiadomości nie przyciągają uwagi. Wiadomości, które nie są ukryte przed zaszyfrowaniem, są podejrzane i mogą same w sobie stanowić obciążenie w krajach, w których kryptografia jest zabroniona. Zatem kryptografia chroni treść wiadomości, a steganografia chroni sam fakt obecności jakichkolwiek ukrytych wiadomości.

Aby nie obciążać czytelnika, ograniczę się do stosowania wzorów i innych ścisłych obliczeń matematycznych. Lista wykorzystanych źródeł zawiera linki do książek szczegółowo opisujących model matematyczny steganosystemy. Artykuł podzielony jest na dwie części:
1. Teoretyczne: schemat typowego steganosystemu;
2. Przykład konkretnego steganosystemu (na podstawie Obrazy JPEG) i schemat jego realizacji.

Opis steganosystemu

Rozważmy schemat blokowy typowego steganosystemu. Ogólnie rzecz biorąc, steganosystem można uznać za system komunikacyjny.

Główne pojęcia steganograficzne to wiadomość i kontener. Wiadomość jest informacją niejawną, której obecność należy ukryć. Kontener to niesklasyfikowana informacja, za pomocą której można ukryć wiadomość. Wiadomość i kontener mogą mieć postać zwykłego tekstu lub plików multimedialnych.

Pusty pojemnik (lub tzw. pojemnik oryginalny) to pojemnik, który nie zawiera ukrytych informacji. Wypełniony kontener (kontener wyników) to kontener zawierający ukryte informacje. Jednym z postawionych wymagań jest to, że powstały pojemnik nie powinien wizualnie odróżniać się od pojemnika oryginalnego. Istnieją dwa główne typy kontenerów: strumieniowe i stałe.

Kontener strumieniowy to sekwencja bitów, która zmienia się w sposób ciągły. Komunikat jest w nim osadzany w czasie rzeczywistym, dlatego koder nie wie z góry, czy kontener jest na tyle duży, aby przesłać cały komunikat. W jednym pojemniku duży rozmiar Można osadzić wiele wiadomości.

Głównym problemem jest wykonanie synchronizacji, ustalenie początku i końca sekwencji. Jeśli w danych kontenera znajdują się bity synchronizacji, nagłówki pakietów itp., wówczas ukryte informacje mogą natychmiast po nich podążać. Złożoność organizacji synchronizacji jest zaletą z punktu widzenia zapewnienia tajności transmisji.

W stałym pojemniku wymiary i właściwości tego ostatniego są znane z góry. Pozwala to na zagnieżdżanie danych w optymalny (w pewnym sensie) sposób. Następnie rozważymy kontenery stałe.

Przed dołączeniem wiadomości do kontenera należy ją przekonwertować na konkretną formę dogodną do pakowania. Dodatkowo przed zapakowaniem do pojemnika, aby zwiększyć bezpieczeństwo tajnych informacji, te ostatnie można zaszyfrować dość silnym kodem kryptograficznym. W wielu przypadkach pożądane jest również, aby powstały komunikat steg był odporny na zniekształcenia (w tym złośliwe).

Podczas transmisji dźwięk, obraz lub inna informacja będąca nośnikiem może podlegać różnym przekształceniom (w tym zastosowaniu algorytmów z utratą danych): zmianie głośności, konwersji do innego formatu itp. – dlatego też dla zachowania integralności osadzony komunikat, może być konieczne użycie kodu korygującego błędy (kodowanie korygujące szumy). Początkowe przetwarzanie ukrytych informacji odbywa się za pomocą prekodera pokazanego na rysunku.

Należy zaznaczyć, że aby zwiększyć tajność osadzania, Wstępna obróbka dość często odbywa się za pomocą klucza.

Pakowanie wiadomości do kontenera (z uwzględnieniem formatu danych reprezentujących kontener) odbywa się za pomocą kodera Stegan. Zagnieżdżanie następuje na przykład poprzez modyfikację najmniej znaczących bitów kontenera. Generalnie to algorytm (strategia) wprowadzania elementów wiadomości do kontenera determinuje metody steganografii, które z kolei dzielone są na pewne grupy, np. w zależności od formatu pliku, jaki został wybrany jako kontener.

Większość steganosystemów używa klucza do pakowania i pobierania wiadomości, co z góry określa tajny algorytm określający kolejność, w jakiej wiadomość jest wstawiana do kontenera. Analogicznie do kryptografii, rodzaj klucza determinuje istnienie dwóch typów steganosystemów:

  • z kluczem tajnym – stosuje się jeden klucz, który jest ustalany przed wymianą steganogramu lub przesłaniem bezpiecznym kanałem;
  • z kluczem publicznym - do pakowania i rozpakowywania wiadomości służą różne klucze, które różnią się w ten sposób, że nie da się uzyskać jednego klucza od drugiego za pomocą obliczeń, więc jeden z kluczy (publiczny) może być swobodnie przesyłany przez niebezpieczny kanał.

Generator sekwencji pseudolosowych (PSG) bitów może służyć jako tajny algorytm. Wysokiej jakości generator PSP, przeznaczony do stosowania w systemach bezpieczeństwa informacji, musi spełniać określone wymagania. Wymieńmy niektóre z nich:

  • Siła kryptograficzna to niemożność przewidzenia przez atakującego kolejnego bitu na podstawie znanych mu poprzednich z prawdopodobieństwem różnym od 1/2. W praktyce siłę kryptograficzną ocenia się metodami statystycznymi.
  • Dobre właściwości statystyczne - PSP w swoich właściwościach statystycznych nie powinien znacząco różnić się od sekwencji prawdziwie losowej.
  • Długi okres utworzonej sekwencji.
  • Efektywna implementacja sprzętu i oprogramowania.

Statystycznie (kryptograficznie) bezpieczny generator PSP musi spełniać następujące wymagania:

  • żaden pojedynczy test statystyczny nie wyznacza żadnych wzorców w PSP, czyli nie odróżnia tej sekwencji od prawdziwie losowej;
  • po zainicjowaniu wartościami losowymi generator generuje statystycznie niezależne sekwencje pseudolosowe.

Należy zauważyć, że metoda losowego wybierania odstępu pomiędzy osadzonymi bitami jest mało efektywna. Ukryte dane muszą być rozmieszczone w całym kontenerze, zatem równomierny rozkład długości interwałów (od najmniejszego do największego) można osiągnąć jedynie w przybliżeniu, ponieważ musi istnieć pewność, że cała wiadomość jest osadzona (tj. mieści się w kontenerze).

Ukryta informacja jest wprowadzana zgodnie z kluczem do tych bitów, których modyfikacja nie powoduje istotnego zniekształcenia pojemnika. Te bity tworzą tak zwaną ścieżkę kołdry. Przez „istotne” rozumiemy zniekształcenie, które zwiększa prawdopodobieństwo istnienia ukryta wiadomość po wykonaniu steganalizy.

Kanał steganograficzny to kanał służący do przesłania kontenera wynikowego (ogólnie rzecz biorąc, istnienie kanału jako, ściśle rzecz biorąc, odbiorcy jest przypadkiem najbardziej uogólnionym, gdyż wypełniony kontener może być np. przechowywany przez „nadawcę”, który postawił sobie za cel ograniczenie nieuprawnionego dostępu do niektórych informacji (w tym przypadku nadawca pełni rolę odbiorcy).

Steganodetektor wykrywa obecność ukrytych danych w kontenerze (prawdopodobnie już zmodyfikowanych). Istnieją steganodetektory przeznaczone wyłącznie do wykrywania obecności osadzonej wiadomości oraz urządzenia przeznaczone do wydobywania tej wiadomości z kontenera - steganodekodery.

Zatem w steganosystemie dwa rodzaje informacji są łączone w taki sposób, że są one postrzegane odmiennie przez zasadniczo różne detektory. Jednym z detektorów jest system izolowania ukrytej wiadomości, a drugim osoba.

Algorytm osadzania wiadomości w najprostszym przypadku składa się z dwóch głównych etapów:

  1. Osadzanie tajnej wiadomości w oryginalnym kontenerze w steganokoderze.
  2. Wykrywanie (ekstrakcja) ukrytej zaszyfrowanej wiadomości z kontenera wyników w steganodetektorze (dekoderze).

O JPEG-u

W naszej pracy będziemy wdrażać steganosystem oparty na formacie JPEG. JPEG to metoda kompresji stratnej obrazu. Doskonale radzi sobie z kompresją obrazów o ciągłych tonach, w których bliskie piksele mają zwykle podobne kolory, ale nie radzi sobie zbyt dobrze z dwupoziomowymi obrazami czarno-białymi.

Najpierw przyjrzyjmy się krótko algorytmowi JPEG, więcej szczegółowy opis a przykłady można znaleźć w książkach cytowanych w źródłach. Koder 8-bitowych obrazów RGB można opisać w siedmiu punktach (jako wejście dostarczana jest tablica komponentów obrazu):

  1. Konwersja przestrzeni barw. Kolorowy obraz jest konwertowany z RGB na reprezentację luminancji/chrominancji. Oko jest wrażliwe na niewielkie zmiany jasności pikseli, ale nie na nasycenie barwy, dlatego ze składowej chrominancji można usunąć znaczną ilość informacji, aby uzyskać wysoką kompresję bez zauważalnego wizualnego pogorszenia jakości obrazu. Ten krok jest opcjonalny, ale jest bardzo ważny, ponieważ reszta algorytmu będzie działać niezależnie na każdym składniku koloru. Bez konwersji przestrzeni kolorów nie można usunąć wielu informacji ze składowych RGB, co zapobiega znacznej kompresji.
  2. Podpróbkowanie. Aby uzyskać bardziej efektywną kompresję, kolorowy obraz jest dzielony na duże piksele. Powiększanie pikseli albo nie jest wykonywane w ogóle (powiększenie 1hv1 lub „4:4:4”), albo odbywa się albo w stosunku 2:1 w poziomie i w pionie (powiększenie 2h2v lub „4:1:1”), albo w proporcjach 2: 1 w poziomie i 1:1 w pionie (powiększenie 2h1v lub „4:2:2”).
  3. Połączenie w bloki. Piksele każdego składnika koloru są zbierane w bloki 8x8 zwane minimalnymi jednostkami kodowanymi. Jeśli liczba wierszy lub kolumn obrazu nie jest wielokrotnością 8, najniższy wiersz i kolumna znajdująca się najbardziej na prawo są powtarzane wymaganą liczbę razy.
  4. Dyskretna transformata kosinusowa. Do każdej jednostki danych stosowana jest dyskretna transformata kosinusowa (DCT), co daje w rezultacie 8x8 bloków częstotliwości jednostek danych. Zawierają średnią wartość pikseli jednostek danych i następujące poprawki wysokie częstotliwości. Pozwala to na prezentację danych w formie umożliwiającej bardziej efektywną kompresję.
  5. Kwantyzacja. Każdy z 64 składników częstotliwości jednostek danych jest podzielony przez specjalną liczbę zwaną współczynnikami kwantyzacji (QC), która jest zaokrąglana do najbliższej liczby całkowitej. Tutaj informacje są bezpowrotnie tracone. Jednak w naszym koderze pominięto ten krok, aby zwiększyć ilość rejestrowanej informacji (tzn. wszystkie współczynniki kwantyzacji są równe jeden, jakość JPEG wynosi 100%).
  6. Kompresja bezstratna. Wszystkie 64 skwantowane współczynniki częstotliwości każdej jednostki danych są kodowane przy użyciu kombinacji RLE i metody Huffmana.
  7. Dodawanie nagłówków i zapis do pliku. NA ostatni krok nagłówek jest dodawany z użytych parametrów JPEG, a wynik jest przesyłany do skompresowanego pliku.

Algorytm jest symetryczny, więc koder zrobi odwrotnie.

Steganografia w formacie JPEG

Zacznijmy przyglądać się steganosystemowi opartemu na obrazach JPEG. Opiera się na najprostszej metodzie LSB (ang. Least Significant Bit).

Istota metody LSB polega na tym, że w większości przypadków człowiek nie jest w stanie zauważyć zmian w ostatnim fragmencie składowych kolorystycznych obrazu. W rzeczywistości LSB to szum, więc można go wykorzystać do osadzania informacji poprzez zastąpienie mniej znaczących bitów pikseli obrazu fragmentami tajnej wiadomości. Metoda działa z obrazami rastrowymi prezentowanymi w formacie nieskompresowanym (na przykład BMP). Główną wadą tej metody jest jej duża wrażliwość na najmniejsze odkształcenie pojemnika.

W naszym steganosystemie będziemy wykorzystywać steganografię DCT LSB. Główna różnica polega na tym, że dane nie są zapisywane w składnikach koloru, ale w dyskretnych współczynnikach transformacji kosinusowej. Spójrzmy na obwód enkodera (dekoder robi wszystko tak samo, ale w odwrotnej kolejności).

Na wejściu: kolorowy obraz, ukryte dane, hasło.
Wyjście: obraz w formacie JPEG z ukrytymi danymi.

  1. Generacja klucza. Do działania kodera wymagane są 2 klucze: klucz do kołdry i klucz kryptograficzny. Weźmy skrót SHA-256 hasła wprowadzonego przez użytkownika. Pierwsze 16 bajtów użyjemy dla klucza steg, drugie dla klucza kryptograficznego.
  2. Wstępne przetwarzanie tekstu (prekoder). Ponownie bierzemy sumę skrótu klucza kryptograficznego i otrzymujemy nowe 32 bajty, które będą już używane do szyfrowania danych. Dane szyfrujemy przy użyciu algorytmu AES-256.
  3. Zacznijmy kodować obraz. Realizujemy pierwsze 4 kroki omówionego wcześniej algorytmu JPEG.
  4. Zamiast piątego kroku (kwantyzacji) algorytmu JPEG ukrywamy nasze dane.
    • Analizator formatu. Aby ingerencja w obraz była niezauważalna, przeprowadzimy analizę „wizualną”. Każdy ostatni bit współczynnika bloku jest odwracany i obliczana jest metryka PSNR dla bloków oryginalnych i zmodyfikowanych. Jeśli wartość metryczna jest mniejsza niż 55 dB, wówczas ten blok nie jest nagrywane. Ponieważ przy wartościach metrycznych większych niż 40 dB obrazy są uważane za prawie identyczne z ludzkim okiem, wówczas przy 55 dB różnica z pewnością będzie niewidoczna dla oka.
    • Ścieżka kołdry. Klucz Stegan pojawia się w dwójkowy, a każdemu blokowi przypisany jest odpowiedni bit sekwencji binarnej (modulo). Jeśli bit jest równy jeden, wówczas blok jest używany do zapisu, jeśli wynosi zero, to jest odrzucany.
    • Steganokoder. Dla każdego bloku 8x8 przeprowadzamy standardową procedurę LSB: zapisujemy dane do każdego elementu, którego wartość jest większa niż jeden.
  5. Kontynuujemy realizację algorytmu JPEG (bezstratna kompresja i zapis do pliku).

Wnioski i wnioski

Korzystając z podanego schematu steganosystemu, można łatwo napisać program. Kod źródłowy mojej implementacji można znaleźć na GitHubie. Programu nie można nazwać pełnoprawnym, raczej wersją alfa, ale główna funkcjonalność jest w nim zaimplementowana. Czwarty punkt jest realizowany dla kodera i dekodera. Podstawą są gotowe implementacje JPEG, SHA-256, AES-256.

Kodowanie-dekodowanie

Void jpeg_encoder::code_block(int numer_komponentu) ( DCT2D(m_sample_array); współczynniki obciążenia_kwantyzowanego (numer_komponentu); double psnr = 0; for (int i = 0; i< 64; i++) { if (m_coefficient_array[i] >1) ( krótki t = m_sample_array[i]; bit_stream::write_bit(t, bit_stream::read_bit(t) == 1 ? 0: 1); psnr += (t - m_sample_array[i]) * (t - m_sample_array [i]); ) ) psnr /= 64; if (psnr != 0) psnr = 20 * log10(255 / sqrt(psnr)); w przeciwnym razie psnr = 70; if (psnr > 55) ( for (int i = 0; tj< 8; i++) { for (int j = 0; j < 8; j++) { if (m_coefficient_array >1) ( int bits = bitstr->get_next_bit(); if (bits != -1) ( bit_stream::write_bit(m_cooperative_array, bits); ) bitr++; ) ) ) if (m_pass_num == 1) code_cooperatives_pass_one(component_num) ; else code_cooperatives_pass_two(component_num); ) void jpeg_decoder::transform_mcu(int mcu_row) ( jpgd_block_t* pSrc_ptr = m_pMCU_cooperatives; uint8* pDst_ptr = m_pSample_buf + mcu_row * m_blocks_per_mcu * 64; for (int mcu_block = 0; mcu_block< m_blocks_per_mcu; mcu_block++) { idct(pSrc_ptr, pDst_ptr, m_mcu_block_max_zag); double psnr = 0; for (int i = 0; i < 64; i++) { if (pSrc_ptr[i] >1) ( krótki t = pDst_ptr[i]; bit_stream::write_bit(t, bit_stream::read_bit(t) == 1 ? 0: 1); psnr += (t - pDst_ptr[i]) * (t - pDst_ptr [i]); ) ) psnr /= 64; if (psnr != 0) psnr = 20 * log10(255 / sqrt(psnr)); w przeciwnym razie psnr = 70; if (!done && psnr > 55) ( for (int i = 0; i< 8; i++) { for (int j = 0; j < 8; j++) { if (pSrc_ptr] >1) ( int bits = bit_stream::read_bit(pSrc_ptr]); if (bitstr->set_next_bit(bits) == -1) ( gotowe = prawda; int size = bitstr->get_readed_size(); char* str = nowy znak ; bitstr->get_data(str); str = ""; m_stparams->stego_data = str; ) ) ) ) pSrc_ptr += 64; pDst_ptr += 64; ) )

Podsumowując, oto cechy powstałego produktu:

  • steganografia JPEG (DCT LSB);
  • Dwupoziomowa ochrona informacji;
  • Używanie SHA-256 do generowania kluczy;
  • Symetryczne szyfrowanie tekstu AES-256;
  • Do 30% informacji ukrytych z wielkości kontenera, w zależności od rodzaju obrazu;
  • Brak odporności na zakłócenia.

Źródła i dodatkowe linki

  1. Kokhanovich G.F., Puzyrenko A.Yu. Steganografia komputerowa. Teoria i praktyka. – K.: „MK-Press”, 2006.
  2. D. Salomon. Kompresja danych, obrazów i dźwięku. Moskwa: Technosfera, 2004.
  3. Vatolin D., Ratushnyak A., Smirnov M., Yukin V. Metody kompresji danych. Urządzenie archiwizujące, kompresja obrazu i wideo. - M.: DIALOG-MEPhI, 2003.

Czym jeszcze jest steganografia?

W ciągu ostatnich kilku lat działalność wywiadowcza znacznie wzrosła. Zwiększyły się także ich uprawnienia w zakresie sposobów pozyskiwania informacji – teraz mają prawo zapoznać się z Twoją prywatną korespondencją.
Dobrze, jeśli komunikujesz się tylko z ciotkami lub przyjaciółmi z czatu. Co się stanie, gdy analizując Twoją korespondencję natkną się na hasło do
jakiś zagraniczny serwer, czy przeczytają, jak przechwalasz się znajomemu swoim ostatnim zniesławieniem? Listy te mogą stać się dowodem przestępstwa i służyć
doskonały powód do wszczęcia sprawy karnej... No i jak
perspektywiczny? Niezbyt... Dlatego powinno
starannie ukrywać treść takiej korespondencji. Tak właśnie robi steganografia i jeśli zostanie wykorzystana z elementami kryptografii, list będzie mógł odczytać jedynie adresat, który zna schemat wydobywania chronionych informacji.
tekst.

Nazwa steganografia pochodzi od dwóch greckich słów
- steganos (sekret) i graphy (zapis), więc można to nazwać pismem tajnym. Główne zadanie steganografii: ukrywanie samego faktu istnienia tajnej wiadomości. Nauka ta powstała w Egipcie. Służył do przesyłania różnych informacji rządowych. W tym celu ogolili głowę niewolnikowi i dali biedakowi tatuaż. Kiedy włosy
odrósł, posłaniec został wysłany w drogę :)

Ale obecnie nikt już nie używa tej metody (lub
nadal go używasz?), współcześni steganografowie używają niewidzialnego atramentu, co może być
widoczne dopiero po pewnej obróbce chemicznej, mikrofilmach, konwencjonalnym układzie znaków w liście, tajnych kanałach komunikacji i wielu innych.

Technologie komputerowe do ukrywania informacji również nie stoją w miejscu i aktywnie się rozwijają. Tekst lub nawet plik można ukryć w nieszkodliwej literze, obrazie, melodii lub ogólnie we wszystkich przesyłanych danych. Aby zrozumieć ten proces, zastanówmy się, jak ukryć informacje
informacje tak, że nawet ich nie widzą
dostępność.

Dokument tekstowy.txt

Używanie steganografii do przesyłania informacji za pomocą danych tekstowych jest dość trudne.
Można to zaimplementować na dwa sposoby (chociaż pomysł jest taki sam w obu przypadkach):

1. Użyj wielkości liter.
2. Używaj spacji.

W przypadku pierwszej opcji proces wygląda następująco: powiedzmy, że musimy ukryć literę „A” w tekście „stenografia”. Aby to zrobić, przyjmujemy binarną reprezentację kodu znaku „A” - „01000001”. Niech symbol małej litery będzie oznaczał bit zawierający jedynkę, a symbol wielkiej litery zero. Dlatego po zastosowaniu maski „01000001” do tekstu „stenografia” wynikiem będzie „sTenogrAphy”. Nie zastosowaliśmy końcówki „phy”, ponieważ 8 bajtów służy do ukrycia jednego znaku (po trochu na każdy znak), a długość linii wynosi 11 znaków, więc okazało się, że ostatnie 3 znaki są „dodatkowe”. Dzięki tej technologii możesz ukryć wiadomość składającą się z N/8 znaków w tekście o długości N. Ponieważ tego rozwiązania nie można nazwać najbardziej udanym, często stosuje się technologię transmisji danych przez luki. Faktem jest, że spację oznacza znak o kodzie 32, ale w tekście można ją też zastąpić znakiem o kodzie 255 lub w najgorszym przypadku TAB. Podobnie jak w poprzednim przykładzie, bity zaszyfrowanej wiadomości przesyłamy zwykłym tekstem. Ale tym razem 1 to spacja, a 0 to spacja z kodem 255.

Jak widać, ukrywanie informacji w dokumenty tekstowe niepewne, bo łatwo to zauważyć. Dlatego też stosowane są inne, bardziej zaawansowane technologie...

GIF, JPG i PNG

Możesz bezpieczniej ukrywać tekst na obrazie. Wszystko dzieje się na zasadzie zamiany koloru na obrazie na kolor zbliżony do niego. Program podmienia część pikseli, których położenie sam oblicza. To podejście jest bardzo dobre, ponieważ określenie technologii ukrywania tekstu jest trudniejsze niż w poprzednim przykładzie. To podejście działa nie tylko z informacje tekstowe, ale także z obrazami. Oznacza to, że możesz bez problemu umieścić plik nastya.gif na obrazku
pentagon_shema.gif oczywiście, jeśli pozwala na to ich rozmiar.

Najprostszym przykładem wykorzystania obrazów w steganografii jest trzecie zadanie z „”. Można to rozwiązać po prostu i
Możesz uzyskać ukrytą wiadomość bez większego wysiłku. Najpierw należy skopiować go do schowka, następnie ustawić kolor wypełnienia prawego klawisza na kolor tła obrazka
(niebieski). Następnym krokiem jest oczyszczenie rysunku i wypełnienie go czernią. Aby zakończyć tę operację w prosty sposób
wklej obrazek ze schowka, tylko niewidomy nie zobaczy napisu „BRAK!”

Technologia wykorzystania obrazów jako
kontener zapewnia znacznie szersze możliwości niż dokumenty tekstowe.
Jak powiedziałem, podczas używania
formatach graficznych możliwe staje się ukrywanie nie tylko wiadomości tekstowych,
ale także inne obrazy i pliki. Jedynym warunkiem jest to, że objętość ukrytego obrazu nie powinna przekraczać rozmiaru obrazu w pamięci. W tym celu każdy program wykorzystuje własną technologię, ale wszystkie sprowadzają się do zastąpienia określonych pikseli w obrazie.

Dobrym przykładem wykorzystania steganografii może być przeglądarka internetowa.
Kamera/Nieśmiała, od
słynny zespół hakerski Cult of Dead
Krowa. Z wyglądu przypomina zwykłą przeglądarkę internetową, lecz po wejściu na zasób sieciowy, automatyczne skanowanie wszyscy Obrazy GIF dla ukrytych wiadomości.

MP3 i wszystko, co słyszysz

Ale być może najpiękniejszym rozwiązaniem jest wykorzystanie formatów audio
(Do pracy polecam MP3Stego). Jest to spowodowane
coś, o czym większość ludzi nawet by nie pomyślała,
że muzyka może zawierać ukryte informacje. Do umieszczenia wiadomości/pliku w formacie MP3 wykorzystywana jest nadmiarowa informacja, której obecność
zależy od samego formatu. Za pomocą
inne pliki audio, w których należy wprowadzić zmiany
fala dźwiękowa, która może mieć bardzo niewielki wpływ na dźwięk.

Inne rozwiązania

Do steganografii możesz użyć Dokumenty Microsoftu Jako kontener wiadomości można także używać formatu Word w formacie RTF. Istnieje wiele narzędzi umożliwiających przesyłanie plików za pomocą pustych pakietów
te same skrótowe rozwiązania. Dzięki tej technologii jeden bit skopiowanego pliku jest przesyłany w jednym pakiecie, który jest przechowywany w nagłówku przesyłanego pakietu. Ta technologia nie zapewnia wysoka prędkość transmisji danych, ale ma numer
korzyści przy przesyłaniu plików przez zapory ogniowe.

Steganografia jest dość potężnym narzędziem pozwalającym zachować poufność danych. Jego użycie od dawna uznano za skuteczne w ochronie praw autorskich, a także wszelkich innych informacji, jakie mogą być
uważana za własność intelektualną. Ale szczególnie
efektywne wykorzystanie steganografii z elementami kryptografii. To podejście tworzy
dwupoziomowa ochrona, hakowanie, które jest bardzo trudne, jeśli
ogólnie jest to możliwe...

Kontynuacja cyklu opowiadań o steganografii i steganalizie. Pod wycięciem szczególnie zainteresowani obywatele będą mogli znaleźć formalne wprowadzenie do steganografii i steganalizy, a także informacje o istniejących obecnie algorytmach steganograficznych do pracy z obrazami, a także opis kilku programów steganograficznych. Oczywiście nie wszystkie programy są opisane. Ponadto nie opisano wszystkich metod ukrywania informacji na obrazach. No cóż, rok temu wiedziałam o tym mniej niż teraz. Moje bardziej aktualne notatki pojawią się później.

1 . PRZEGLĄD ISTNIEJĄCYCH PROGRAMÓW I ALGORYTMÓW UKRYCIA INFORMACJI W OBRAZACH KOMPUTEROWYCH

1.1 Algorytmy ukrywania informacji w obrazach komputerowych

w odróżnieniu ochrona kryptograficzna, mające na celu ukrycie treści informacji, ochrona steganograficzna ma na celu ukrycie faktu obecności informacji.

Metody i środki, za pomocą których można ukryć fakt obecności informacji, bada steganografia (z greckiego - tajne pisanie). Metody i techniki wprowadzania ukrytych informacji do obiektów elektronicznych należą do steganografii komputerowej /7/.

Główne pojęcia steganograficzne to wiadomość i kontener . Wiadomość M Î M, zwany tajne informacje, którego obecność musi być ukryta, gdzie M– zbiór wszystkich wiadomości. Pojemnik B Î Bzwane informacjami niesklasyfikowanymi, które służą do ukrywania wiadomości, gdzie B– komplet wszystkich pojemników. Pusty pojemnik (oryginalny pojemnik) to jest pojemnik B, niezawierający wiadomości, wypełniony kontener (kontener wynikowy) b m jest pojemnik B zawierający wiadomość M.

Transformację steganograficzną nazywa się zwykle zależnościamiF I F -1

F: M´ B´ K® B, F -1 : B´ K® M, (1)

które pasują do potrójnego (wiadomość, pusty pojemnik, klucz z zestawu K ) wynik-kontenera i parę (wypełniony pojemnik, klucz z zestawu K ) wiadomość oryginalna, tj.

F(m,b,k) = b m,k ,F -1 (b m,k) = m, gdzie m Î M, b, b mÎ B, kÎ K.(2)

System steganograficzny nazywa się (F, F-1, M, B, K)– zbiór komunikatów, kontenerów i łączących je transformacji.

Analiza stosowanych w praktyce metod steganografii komputerowej pozwala określićIstnieją następujące główne klasy:

1. Metody oparte na dostępności wolnych obszarów w prezentacji/przechowaniu danych.

2. Metody oparte na redundancji prezentacji/przechowywania danych.

3. Metody oparte na wykorzystaniu specjalnie opracowanych formatów prezentacji/przechowywania danych.

Podkreślamy, że metody wprowadzania ukrytych informacji do obiektów zależą przede wszystkim od przeznaczenia i rodzaju obiektu, a także od formatu, w jakim dane są prezentowane. Oznacza to, że dla dowolnego formatu reprezentacji danych komputerowych można zaproponować własne metody steganograficzne.

W tej pracy za kontenery uważa się wyłącznie surowe obrazy rastrowe tego formatu BMP lub formacie obrazu BMP z paletą. Przyjrzyjmy się najbardziej typowym algorytmom, które działają z tymi dwoma typami obrazów komputerowych.

BMP C24 lub 32 bity na piksel /5/.

Bardzo prosta metoda w tym przypadku jest to sekwencyjne zastępowanie bitów komunikatu najmniej znaczącymi bitami o określonej wartości koloru RGB lub bity parzystości pełnych wartości RGB . Podczas osadzania wiadomości w obrazie można użyć wszystkich 3 (lub 4, gdzie czwarty kanał jest kanałem przezroczystości) kanałów kolorów każdego piksela lub dowolnego jednego kanału. W tym drugim przypadku zwykle stosuje się kanał niebieski, ponieważ ludzkie oko jest na niego najmniej wrażliwe. Naturalnie, to mała zmiana Kolory są niemożliwe do dostrzeżenia przez ludzkie oko. Istnieją modyfikacje tej metody, które uzyskuje się poprzez zwiększenie liczby bitów osadzonych w jednym pikselu obrazu. Zaletą takich metod jest wzrost przepustowość łącza pojemnik, możliwość ukrycia większej wiadomości. Jednak jednocześnie rośnie dość szybkoOkreśla się prawdopodobieństwo wykrycia transmisji komunikatu poprzez steganalizę wizualną lub statystyczną.

Aby ulepszyć tę metodę, możesz użyć hasła zdefiniowanego przez użytkownika. Hasło to służy do inicjalizacji generatora liczb pseudolosowych, który generuje liczby pikseli, których URB mają zostać zastąpione bitami komunikatu. Ta metoda utrudnia zarówno wizualną, jak i statystyczną steganalizę. Dodatkowo, nawet jeśli wykryty zostanie sam fakt przesłania wiadomości, jej odzyskanie nie będzie tak proste, jak w przypadku osadzenia wiadomości bez użycia hasła.

Stegoalgorytmy wykorzystujące format obrazu BMP CPaleta 256 kolorów /3/.

Rozważmy najbardziej typowy algorytm w tym przypadku EzStego , który bierze swoją nazwę od programu o tej samej nazwie, w którym został zaimplementowany.

EzStego najpierw sortuje paletę tak, aby zminimalizować różnice pomiędzy sąsiednimi kolorami. Następnie bity komunikatu są osadzane w NZB indeksów kolorów posortowanej palety. Oryginalny algorytm EzStego osadza bity sekwencyjnie, ale można również zastosować wstrzykiwanie wzdłuż pseudolosowej ścieżki zależnej od hasła, generowanej przez generator liczb pseudolosowych. Opiszemy algorytm bardziej szczegółowo.

Oryginalnie EzStego sortuje kolory palety C0 , do 1 , . . . , do P- 1 , P ≤ 256 w pętli do π(0) , do π (1) , . . . , do π (P- 1) , π (P ) = π (0) tak, że suma odległości jest mała. W ostatnim wyrażeniu π – zmiana kolejności sortowania. Za zdobycieW końcowej permutacji można zastosować kilka opcji, np. sortowanie według wartości składowej jasności każdego piksela lub przybliżone rozwiązanie problemu komiwojażera na wykresie, którego wierzchołki będą elementami palety. Zestaw parmi, w którym w trakcie realizacji będą wymieniane między sobą kolory, nie będzie

mi= ( (c π (0) , do π (1)), (c π (2) , do π (3)), ... , (c π (P- 2) , do π (P- 1)) ). (3)

Za pomocą klucza stego (hasła) generowana jest pseudolosowa ścieżka przez piksele obrazu. Dla każdego piksela na tej ścieżce jego kolor do π (k) zostaje zastąpione kolorem do π (J) , GdzieJ– indeks k, w którym jego SVB zostaje zastąpiony bitem komunikatu. Ten krok jest powtarzany do momentu osadzenia wszystkich bitów komunikatu lub do osiągnięcia końca pliku obrazu.

1.2 Programy do ukrywania informacji w obrazach komputerowych

Jest ich już całkiem sporo duża liczba programy wykorzystujące steganografię i obrazy komputerowe jako kontenery. Przyjrzyjmy się niektórym z nich, najczęstszym. Wszystkie te programy wykorzystują głównie algorytmy opisane powyżej, polegające na wstrzykiwaniu komunikatu do NBZ kontenera.

Korzystanie z programuS-Tools (narzędzia steganograficzne)(Rysunek 1), posiadający status darmowe , możesz ukryć informacje w pliku graficznym lub dźwiękowym. Co więcej, plik graficzny można następnie łatwo obejrzeć, a plik dźwiękowy można odsłuchać. Narzędzie nie wymaga instalacji, wystarczy rozpakować archiwum i uruchomić plik s-narzędzia. ex . Archiwum programu zajmuje tylko około 280 plików KiB .

Rysunek 1 – Główne okno programuS- Narzędzia

Technologia programu polega na tym, że zaszyfrowane dane są najpierw kompresowane, a dopiero potem bezpośrednio szyfrowane. Program może wykorzystywać kilka różnych algorytmów szyfrowania danych w zależności od potrzeb użytkownika, w tym jedne z najlepszych algorytmów - DES , która dziś nie spełnia już współczesnych wymogów bezpieczeństwa, Potrójne DES i IDEA . Dwa ostatnie algorytmy zapewniają wysoki poziom ochrony danych przed odszyfrowaniem (jak dotąd nie odnotowano ani jednego przypadku odszyfrowania informacji zaszyfrowanych tymi metodami).

Proces szyfrowania informacji jest bardzo prosty: w tym celu wystarczy skorzystać z eksploratora Okna przeciągnij plik graficzny lub dźwiękowy do okna programu. Informacja o wielkości pliku, który można ukryć, pojawi się w prawym dolnym rogu programu. W kolejnym etapie należy przeciągnąć plik z informacjami na obraz, wpisać hasło, wybrać varszyfrowania i określ metodę ukrywania. Po pewnym czasie program wyświetli drugi obrazek z warunkową nazwą ukryte dane

który zawiera już ukryte informacje. Następnie należy zapisać nowe zdjęcie z ikonąnazwa i rozszerzenie siatkówki gif lub bmp wybierając polecenie „ Zapisz jako".

Aby odszyfrować informacje, musisz przeciągnąć obraz z ukrytymi informacjami do okna programu, wybrać z menu kontekstowe wywoływane poprzez naciśnięcie prawego przycisku myszy, polecenie „ Ujawnić ", następnie wprowadź hasło - a na ekranie pojawi się dodatkowe okno z nazwą ukrytego pliku.

Program Steganos Bezpieczeństwo Zestaw (Rysunek 2) jest również dość popularnym programem, najwyższej jakościS- Narzędzia, ale nie za darmo. To oprogramowanie stanowi uniwersalny zestaw narzędzi niezbędnych do ochrony informacji.

Rysunek 2 - Główne okno programuSteganos

Program pozwala organizować wirtualne zaszyfrowane dyski, szyfrować wiadomości e-mail, bezpiecznie usuwać pliki twardy dysk i wiele więcej. Większość dostępnych funkcjiSteganos, wbudowane metody steganograficzne. Na

Podczas szyfrowania pliku możesz dodatkowo wybrać kontener (format obrazu Plik audio BMP, JPEG lub WAV ), który osadzi wstępnie skompresowany i zaszyfrowany plik. Odnośnie formatu BMP program umożliwia wykorzystanie obrazów wyłącznie w formacie Prawdziwy kolor.

Program Zabezpiecz Silnik(Rysunek 3) umożliwia proste szyfrowanie plików metodami kryptograficznymi i osadzanie ich w kontenerach formatów BMP, JPEG, WAV . Istnieje możliwość wyboru jednego z 6 algorytmów szyfrowania, z czego jednym jest krajowy algorytm GOST.

Rysunek 3 – Główne okno programu Bezpieczny silnik

Cały proces ukrywania i szyfrowania odbywa się w formie kreatora. Użytkownik proszony jest o wybranie po kolei plików, które chce ukryć, algorytmu szyfrowania, pliku kontenera, w którym zostaną osadzone dane, oraz nazwy powstałego kontenera z osadzoną wiadomością.

W kolejnej serii wreszcie pojawi się to, co najciekawsze – opis algorytmów steganalizy. Jednak, jak pokazuje teraźniejszość, nie jest tak ciekawie. W tej nauce jest więcej interesujących rzeczy.