Steganografia obrazów: technika LSB
Poznają Państwo steganografię Least Significant Bit (LSB) oraz sposób osadzania tajnych danych w pikselach obrazu.
Steganografia obrazów: technika LSB to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.
Piksele jako trójki RGB
Cyfrowy obraz kolorowy składa się z pikseli. Każdy piksel przechowuje trzy wartości kanałów kolorów: czerwonego, zielonego i niebieskiego, z których każda mieści się w zakresie od 0 do 255 i jest przechowywana w jednym bajcie. Obraz o rozdzielczości 1000x1000 pikseli zawiera zatem trzy miliony pojedynczych bajtów danych o kolorach. Ta duża ilość danych pozwala ukryć niewielkie ilości dodatkowych informacji bez widocznych zmian.
Najmniej znaczący bit
W wartości 8-bitowej najmniej znaczący bit zwiększa wartość tylko o 1, gdy jest ustawiony, podczas gdy najbardziej znaczący bit zwiększa ją o 128. Odwrócenie bitu LSB w kanale kolorów zmienia wartość piksela najwyżej o 1 z 255, co jest całkowicie niezauważalne dla ludzkiego oka. Dzięki temu LSB jest idealnym miejscem do osadzania ukrytych bitów bez pogarszania widocznej jakości obrazu.
Przechowywanie jednego bajtu w ośmiu pikselach
Aby ukryć jeden bajt (8 bitów) tajnych danych, nadpisujemy bit LSB ośmiu kolejnych pikseli w jednym kanale kolorów. Odczytanie tych bitów LSB w odpowiedniej kolejności odtwarza pierwotny ukryty bajt. Jest to najprostszy algorytm steganografii LSB. Modyfikacja obrazu jest tak subtelna, że pary pikseli, takie jak (200, 201), wyglądają identycznie, choć różnica bitu LSB przenosi istotne dane.
Obliczanie pojemności ładunku
Obraz BMP w kolorze 24-bitowym zawierający 1 milion pikseli ma 3 miliony bajtów danych pikseli i 3 miliony pojedynczych wartości kanałów kolorów. Używając jednego bitu LSB na kanał, możemy ukryć 3 miliony bitów, czyli 375 kilobajtów danych. W pliku pełniącym funkcję nośnika o rozdzielczości 10 megapikseli można ukryć około 3,75 megabajta danych. Wystarcza to na tysiące dokumentów tekstowych lub małych plików wykonywalnych.
Niedostrzegalność wizualna
Ludzki system wzrokowy jest znacznie bardziej wrażliwy na odcień i nasycenie kolorów niż na minimalne różnice jasności wynoszące 1 jednostkę. Obraz, w którym każdy bit LSB zastąpiono tajnymi danymi, jest wizualnie nieodróżnialny od oryginału podczas oglądania na zwykłym ekranie. Współczynnik jakości percepcyjnej PSNR (Peak Signal-to-Noise Ratio) dla steganografii LSB zazwyczaj przekracza 50 dB, czyli znajduje się znacznie powyżej progu ludzkiej percepcji.
Sekwencyjne a losowe rozmieszczanie bitów LSB
Najprostsze podejście osadza bity w pikselach kolejno, zaczynając od lewego górnego rogu. Łatwo je zaimplementować i wykryć, ponieważ steganalitycy dokładnie wiedzą, gdzie szukać. Bezpieczniejsze podejście wykorzystuje generator liczb pseudolosowych zainicjalizowany wspólnym kluczem, aby wybrać piksele i kanały kolorów, w których zostaną umieszczone ukryte bity. Analityk nieposiadający klucza nie może ustalić, gdzie osadzono ładunek.
Wybór pikseli na podstawie PRNG
Inicjalizując PRNG tajnym kluczem, nadawca i odbiorca mogą niezależnie wygenerować tę samą pseudolosową sekwencję współrzędnych pikseli. Nadawca osadza bity wyłącznie we wskazanych współrzędnych, a odbiorca odczytuje je z tych samych współrzędnych w tej samej kolejności. Atakujący, który nie zna klucza, staje przed problemem przeszukania kombinatorycznego, nawet jeśli wie, że użyto steganografii.
Narzędzia steganograficzne w praktyce
OpenStego i Steghide to popularne narzędzia open source implementujące steganografię LSB z opcjonalnym szyfrowaniem opartym na haśle. Steghide obsługuje formaty JPEG, BMP, WAV i AU oraz używa frazy hasłowej zarówno do wyboru miejsc osadzania, jak i do szyfrowania ładunku. Użycie frazy hasłowej gwarantuje, że nawet po wykryciu obecności ukrytych danych odzyskanie ich treści będzie wymagało podania tej frazy.
JPEG a BMP w steganografii
Pliki BMP przechowują nieprzetworzone, nieskompresowane dane pikseli, dzięki czemu osadzanie LSB jest proste i bezstratne. JPEG korzysta z kompresji stratnej, która usuwa szczegóły o wysokiej częstotliwości i nieznacznie zmienia wartości pikseli. Dane osadzone za pomocą LSB w pliku JPEG przed jego zapisaniem zostaną zniszczone podczas ponownej kompresji. Steganografia w formacie JPEG musi działać w dziedzinie częstotliwości, na współczynnikach DCT, a nie na wartościach pikseli, co jest bardziej złożone, ale powszechnie stosowane.
Kompromis między pojemnością a wykrywalnością
Osadzanie większej ilości danych zwiększa pojemność ładunku, ale także zwiększa zniekształcenia statystyczne. Użycie dwóch bitów na kanał podwaja pojemność, lecz wzmacnia sygnaturę statystyczną. Narzędzia takie jak StegExpose mogą wykrywać popularne narzędzia LSB, analizując rozkłady par pikseli. Aby uniknąć uruchomienia algorytmów wykrywania, bezpieczny ładunek zazwyczaj ogranicza się do mniej niż 10–15 procent pojemności nośnika.
Steganaliza LSB: analiza par pikseli
Analiza par pikseli wykorzystuje przewidywalny artefakt osadzania LSB. Naturalne obrazy mają charakterystyczny rozkład par wartości pikseli; osadzanie LSB nieznacznie go zaburza, zmieniając wartości nieparzyste na parzyste lub odwrotnie. Mierząc proporcję par pikseli o zbliżonych wartościach, steganalitycy mogą oszacować zarówno to, czy osadzanie miało miejsce, jak i przybliżoną ilość ukrytych danych.
Pojemność LSB
Kolorowy obraz BMP o głębi 24 bitów, zawierający 1 000 000 pikseli, wykorzystuje jeden najmniej znaczący bit (LSB) na kanał koloru. Ile danych można ukryć?
Steganografia LSB: najważniejsze informacje
Steganografia LSB osadza sekretne bity w najmniej znaczących bitach kanałów kolorów pikseli, powodując niezauważalną zmianę obrazu. Ukrycie jednego bajtu danych wymaga ośmiu pikseli. W obrazie o rozdzielczości 1 megapiksela można ukryć około 375 KB, używając jednego bitu LSB na kanał. Wybór pikseli na podstawie PRNG i użycie współdzielonego klucza zwiększa bezpieczeństwo. W przypadku JPEG konieczne jest osadzanie w dziedzinie DCT. Analiza statystyczna za pomocą rozkładów par pikseli może wykryć osadzanie LSB.
Często zadawane pytania
Czy lekcja „Steganografia obrazów: technika LSB” jest bezpłatna?
Tak — pełny tekst „Steganografia obrazów: technika LSB” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Steganografia obrazów: technika LSB”?
Poznają Państwo steganografię Least Significant Bit (LSB) oraz sposób osadzania tajnych danych w pikselach obrazu. Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?
Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Steganografia obrazów: technika LSB”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?
Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Steganografia a kryptografia
- Steganografia obrazów: technika LSB
- Steganografia dźwięku i dokumentów
- Steganaliza: wykrywanie ukrytych wiadomości