Analiza i Przetwarzanie Obrazów Szyfrowanie Obrazów Autor : Mateusz Nawrot
1. Cel projektu Celem projektu jest zaprezentowanie metod szyfrowania wykorzystujących zmodyfikowane dane obrazów graficznych. Metody te mogą byd realizowane na wiele różnych sposobów, projekt opisuje dwie najprostsze z nich. Projekt został wykonany przy użyciu biblioteki Qt. 2. Opis projektu Metody przedstawione w ramach realizacji projektu są jednymi z najtrudniejszych do złamania metod szyfrowania. Pierwsza przedstawiana metoda (steganograficzna) koduje informacje w taki sposób, że nie jest możliwe stwierdzenie, czy obraz zawiera jakiś ukryty przekaz czy też nie. Ukrytą informację w postaci obrazu czarno-białego kodujemy na najmłodszym bicie kanału czerwonego. W tym celu w obrazie wzorcowym wartośd kanału czerwonego dla kolejnych pikseli zwiększamy o 1 tam, gdzie ukryty obraz ma piksel biały oraz nie zmieniamy tam, gdzie ukryty obraz ma piksel czarny. Odkodowanie polega na odjęciu od kanału czerwonego obrazu kodującego, kanału czerwonego obrazu wzorcowego oraz przemnożeniu różnicy przez 255. Druga z opisywanych metod to metoda kryptograficzna, gdzie wiadomo, że obraz zawiera zakodowaną informację, natomiast nieznany jest sposób odczytywania jej. Kodowanie polega na utworzeniu dwóch obrazów czarno-białych o dwukrotnie większych rozmiarach, w taki sposób, że nałożenie dwóch zakodowanych obrazów pozwoli odkodowad ukryty przekaz. Kodowanie odbywa się poprzez odpowiednie zastępowanie pikseli oryginalnego obrazu dwoma cegiełkami składającymi się z czterech pikseli. Cegiełki mają postad : C1 : C2 : Tam, gdzie oryginalny obraz ma piksel czarny wstawiamy w jednym obrazie kodowanym cegiełkę C1, a w drugim C2. O tym, do którego obrazu trafi C1, a do którego C2 decydujemy losowo. Natomiast tam, gdzie obraz oryginalny ma biały piksel wstawiamy do obydwu obrazów tą samą cegiełkę, również wybraną w sposób losowy. Dekodowanie polega na nałożeniu na siebie obydwu zakodowanych obrazów.
3. Interfejs użytkownika Aplikacja składa się z jednego głównego okna, składającego się z dwóch zakładek, w którym znajdują się wszystkie komponenty wchodzące w skład projektu. Zarówno pierwsza jak i druga zakładka składają się z tych samych elementów : Komponenty typu QGraphicsScene, służące do prezentacji miniatur przetwarzanych obrazów Komponenty typu QPushButton, obsługujące akcje wykonywane przez użytkownika Zakładka nr 1 Funkcje szyfrujące
Zakładka nr 2 Funkcje deszyfrujące
4. Opis procesu szyfrowania i deszyfrowania A. Szyfrowanie metodą steganograficzną Sposób szyfrowania metodą steganograficzną opiera się na Metodzie najmniej znaczących bitów (ang. Least Significant Bit), która polega na podmienieniu jednego lub kilku najmniej znaczących bitów bitami ukrywanymi. Każdy rodzaj multimediów posiada zapis w którym jego elementy składowe posiadają wartości opisywane liczbowo. Obraz może byd zapisany w postaci grafiki rastrowej czyli kolekcji pikseli, z których każdy ma określone położenie na obrazie oraz barwę. W przypadku obrazów czarno-białych barwa piksela zapisana jest na jednym bicie. Wartośd 0 oznacza kolor czarny, a wartośd 1 kolor biały. Zmiana wartości zmienia kolor piksela. W przypadku obrazu kolorowego, mamy do dyspozycji większą ilośd bitów, gdyż każdy kolor reprezentowany jest niezależnie, a jego wartośd zapisywana jest przynajmniej na 8 bitach. Mamy 3 kolory czerwony (R), zielony (G) i niebieski (B). Oko ludzkie wykazuje różną wrażliwośd na zmiany poszczególnych kolorów. Niewielka zmiana wartości spowoduje wprowadzenie niewielkich zmian w odcieniu modyfikowanego piksela, co z reguły pozostanie niezauważalne dla ludzkiego oka. Jako zależy nam na tym, aby wprowadzane zmiany były jak najmniejsze to operacje z nimi związane wykonujemy na najmniej znaczącym bicie, gdyż zmiana jego wartości w najmniejszym stopniu wpływa na zmianę koloru danego piksela. W naszym przypadku zakodowanie informacji w postaci czarno-białego obrazu, w obrazie odniesienia wartośd kanału czerwonego (R) zwiększamy o 1 tam, gdzie obraz przez nas ukrywany ma piksel biały, oraz nie zmieniamy tam, gdzie obraz ma piksel czarny. Poniżej przedstawiona jest w postaci schematu ogólna zasada działania metody LSB
B. Szyfrowanie metodą kryptograficzną Rozważmy obraz czarno-biały składający się z pikseli, które są ułożone w taki sposób, że tworzą zrozumiały dla człowieka obraz (słowo, symbol). Dzielimy go na maleokie kwadraciki (piksele), każdy z nich jest w całości czarny lub biały. Następnie analizując wyjściowy obraz piksel po pikselu, tworzymy komputerowo dwa nowe obrazy, nazwijmy je udziałami. Jeśli dany piksel jest biały, w odpowiadających mu miejscach obydwu udziałów umieszczamy takie same cegiełki, losowo wybrane z dwóch poniższych. C1 : C2 : Dla czarnego piksela w odpowiednich miejscach udziałów umieszczamy różne cegiełki, losowo decydując o tym, która na którym udziale. C. Deszyfrowanie metodą steganograficzną Deszyfrowanie obrazu odbywa się poprzez odjęcie od kanału koloru czerwonego obrazu kodującego, kanału czerwonego obrazu wzorcowego. Piksele uzyskanego obrazu różnicowego przemnażamy przez 255. D. Deszyfrowanie metodą kryptograficzną Dekodowanie obrazu zaszyfrowanego tą metodą polega na nałożeniu na siebie obydwu zakodowanych obrazów. Dodatkowo można jeszcze zmniejszyd rozmiary obrazka po nałożeniu dwukrotnie uśredniając wartości czterech pikseli do jednego.