Ochrona danych w systemach i sieciach komputerowych


Ochrona danych w systemach i sieciach komputerowych
Temat: Steganografia
Do zakodowania informacji binarnej w obrazie wykorzystujemy bajty odpowiedzialne za
przechowywanie danych o pikselu. Oznacza to że wpisując szyfrant do obrazu zmieniamy obraz.
Jednak ilość informacji przechowywanej przez plik bitmapy  nawet przy jej dużej modyfikacji 
sprawi ze zmienione bajty pozostaną dla oka nie wychwycone.
Według teorii najbardziej niewidoczne zmiany są wtedy gdy operujemy na najstarszym bicie
bajtu składowej B piksela. Oznacza to, że w typowym obrazie gdzie występuje względnie duża ilość
kolorów (obraz nie jest monochromatyczny) praktycznie nie możliwe jest wychwycenie zmian w
obrazie. Najbardziej widoczne są zmiany wykonywane na składowej R kanałów RGB. W przypadku
zakodowania dużej informacji (duża część informacji na składowych zostanie zmieniona) na obrazie
może pojawić się widoczny szum (mniej lub bardziej zniekształcające kolor względnie losowe w
rozmieszczeniu kropki). Efekt ten jest szczególnie widoczny przy gładkich powierzchniach.
Ćwiczenie 1. Zapisywanie informacji do mapy bitowej za pomocą programu steganograficznego.
Uruchamiamy załączony program
Do uruchomienia tego programu niezbędne jest zainstalowanie Microsoft Framework w
wersji 2.0 lub wyższej.
Otwieramy Nośnik (plik graficzny) // sugeruję (ze względu na używanie w kodzie
wolnychfunkcji GetPixel PutPixel operacje na względnie małych plikach graficznych. (Plik/Otwórz Nośnik)
Oczom naszym powinien ukazać się podobny widok:
Testujemy plik w celu sprawdzenia czy przypadkiem nie nadpiszemy już istniejącej
zaszyfrowanej informacji w obrazie. (Steganografia/Testuj)
W przypadku nowo utworzonego pliku powinniśmy zobaczyć komunikat:
Otwieramy plik binarny który będziemy chcieli zaszyfrować (Plik / Otwórz Binaria)
Dla pliku: Podgląd w edytorze decymalnym wygląda
następująco:
A widok programu następująco:
Widzimy, jakie jest potrzebne miejsce oraz czerwone światło (obok symboli RGB)
sygnalizujące, że dostępne miejsce jest zbyt małe. Zwiększamy więc ilość bitów wymienianych
podczas szyfrowania : w naszym wypadku wystarczy jeden bit na składowej B. Przesuwamy suwak
znajdujący się po lewej stronie symbolu składowej B o jedną pozycję w lewo. Proszę zauważyć, że gdy
program uzna, że wymieniliśmy względnie dużo informacji  zapali się żółte światło sygnalizujące
nam, że zmiany mogą być widoczne gołym okiem.
Przetestujmy pojemność nośnika (wizualizacje  Pojemność Nośnika)
Przykładowy otrzymany efekt:
Widzimy całe dostępne miejsce  miejsce zajęte przez składowe zarówno procentowo
(wykres tort) jak i liczbowo (wykres słupkowy).
Przetestujmy Zajęte Miejsce
Przykładowy uzyskany efekt:
Przystąpmy do zaszyfrowania danych z pliku:
Oryginalne dane wymienione - podglądnięte w Te same tylko że już zmienione informacje w edytorze
edytorze decymalnym wyglądają następująco: decymalnym wyglądają następująco:
Możemy obserwować zmiany w obrazie przed i po szyfrowaniu. W głównym oknie programu.
Zapisujemy obraz i wyłączamy program. Teraz możemy na przykład przesłać mapę bitową z
zaszyfrowaną informacją do kolegi.
Ćwiczenie 2. Odczytywanie informacji za pomocą programu steganograficznego.
Uruchamiamy załączony program
Otwieramy Nośnik (plik graficzny) odebrany od kolegi
Oczom naszym powinien ukazać się podobny widok:
Testujemy plik w celu sprawdzenia czy nie zawiera zaszyfrowanej informacji (Steganografia/
Testuj)
Oczom naszym powinien ukazać się następujący widok:
Widzimy że program przechowuje w pliku niezbędne do odszyfrowania informacje  klucz 
weryfikujący  czy obraz posiada zakodowaną informację, Rozmiar piku szyfrowanego i ustawienia
programu (ustawienia dotyczące wartości suwaków znajdujących się obok symboli składowych
podczas szyfrowania).
Odszyfrowujemy dane (Steganografia// Odszyfruj)  wybieramy plik i format do zapisu i
odczytujmy podgląd z edytora decymalnego :
Oraz otwieramy zapisany przed chwilą plik:
Ćwiczenie nr 3. Analiza obrazu z zaszyfrowaną informacją.
Otwieramy otrzymany plik za pomocą np. programu Paint. Program nie zawiera żadnych
algorytmów haszujących i kodujących  po prostu zapisuje informacje w pliku graficznym  zapisuje je
od góry w dół w kolejnych kolumnach.
Powiększamy obraz:
Pierwszym i najprostszym testem jest  wylanie koloru  Paint zamienia wszystkie identyczne
piksele na kolor którym wylewamy:
Wylałem kolor czarny na swój obrazek i otrzymałem następujący efekt:
Widzimy, że program nie wypełnił całego  rogu obrazu  niektóre piksele mają inny kolor
gdyż przechowują zakodowaną informację.
Spróbujmy zweryfikować jakość zmian używamy polecenia wybierz kolor i wybieramy piksel z
obszaru zakodowanego  tego na który kolor się nie wylał. (Zaznaczam że algorytm programu
zapisuje w rogu obrazu informację do dekodowania na 4 najmniej ważnych bitach składowej R).
Informacje z pliku szyfrowanego są zapisywane od drugiej kolumny w dół. By sprawdzić składowe
wybranego koloru klikamy w paincie na Kolory/edytuj kolory/definiuj kolory niestandardowe 
domyślnie będzie zaznaczony wybrany kolor. Biel ma składowe R255 G255 B255 jeśli któryś z
zaznaczonych pikseli będzie mieć R255 G255 B254 oznacza że został wymieniony ostatni bit
składowej B. Jeśli mamy np. zdjęcie bez  jednolitych obszarów musimy porównać nasz nośnik z
oryginalnym obrazem piksel po pikselu.
Spróbujmy domalować kilka białych kropek na zakodowanym obszarze (proszę uważać na
pierwszą kolumnę w której ukrywają się dane dla dekodera) zapisać zmiany jako inny plik i
odszyfrować jako nośnik.
Widzimy, że zmieniliśmy jakieś przypadkowe dane ale informację dało się odczytać w
większości.
Zadania do samodzielnego wykonania:
1 - Odszyfrować stały klucz, według którego program testuje czy program zawiera zakodowaną
informację. Porównać kilka Nośników by wykryć  co się nie zmienia .
2 -Oszukać program   namalować obraz który nie będzie mieć informacji zapisanej w swoim
 wnętrzu ale program odczyta go jako nośnik ukrytych Binariów.
3  Zapisać różnej długości informacje na różnych składowych lub na kilku składowych z różnymi
parametrami. Przeanalizować pliki np. w Gimpie poprzez zmianę kontrastu czy jasności  w celu
wykrycia czy plik zawiera zaszyfrowaną informację czy nie.
4  Zmieniać informacje w noośniku i sprawdzać w jakim stopniu wpływają na deszyfrację.
Życzę miłej zabawy. Program powstał w celach akademickich  nie jest profesjonalnym
oprogramowaniem, może zawierać błędy i niedociągnięcia (za które przepraszam)  załączam kod
programu. Do stworzenia programu wykorzystałem środowisko Visual Studio Express Edition. A
program powstał w języku C#.
Podpowiedz do zadania 1: (Informacja jest zapisana na pierwszych pikselach w kolumnie pierwszej  na 4 najmniej ważnych bitach
składowej R)  klucz zawiera 5 bajtów => 10 pikseli zawiera tą informację (wynik 1FACC)


Wyszukiwarka

Podobne podstrony:
Prezentacja suplementy i ochrona danych osobowych
Ustawa z dnia 29 sierpnia 1997 r o ochronie danych osobowych
ustawa o ochronie danych osobowych
kołaczek,bezpieczeństwo i ochrona danych, opracowanie wykładu
23 ochrona danych
O ochronie danych osobowych (USTAWA z dnia 29 sierpnia 1997 r )
kołaczek,bezpieczeństwo i ochrona danych, pytania i odpowiedzi
Dane i bezpieczenstwo (ochrona danych)
Prawo ochrony środowiska w systemie prawnym RP, wspólnotowe prawo ochrony środowiska
Ochrona przepięciowa systemów bezawaryjnego zasilania
Gliniecki W Ochrona danych osobowych i informacji niejawnych

więcej podobnych podstron