Szyfr fotograficzny

Ukryj zaszyfrowaną wiadomość w zdjęciu w sposób odporny na umiarkowaną ponowną kompresję w komunikatorach.

Zdjęcie źródłowe

Odporne na umiarkowaną ponowną kompresję JPEG.

Jak to działa

Do czego służy

Szyfr fotograficzny ukrywa zaszyfrowaną wiadomość w zwykłym zdjęciu w sposób zaprojektowany tak, by przetrwał umiarkowaną ponowną kompresję JPEG, której komunikatory i sieci społecznościowe poddają obrazy. Odbiorca otwiera zdjęcie tutaj, podaje to samo hasło i odzyskuje wiadomość.

Jak ukrywana jest wiadomość

Zdjęcie jest dzielone na bloki 8×8 pikseli, czyli tę samą siatkę, na której pracuje JPEG. Każdy blok przenosi jeden bit: jego średnia jasność jest przesuwana do najbliższego parzystego lub nieparzystego stopnia na skali 24 poziomów. Ta technika nazywa się modulacją indeksu kwantyzacji (QIM), a opisali ją Brian Chen i Gregory Wornell około 1998 roku. Kompresja JPEG dość dobrze zachowuje średnią jasność bloku, więc bity zwykle przetrwają. Każdy bit jest zapisywany 7 razy w blokach rozmieszczonych po całym obrazie, a głosowanie większościowe koryguje uszkodzone kopie.

Szyfrowanie i pojemność

Przed ukryciem wiadomość jest szyfrowana algorytmem AES-256-GCM kluczem wyprowadzonym z Twojego hasła za pomocą Argon2id (64 MiB pamięci, 3 przebiegi). Zdjęcie jest skalowane tak, by jego boki miały od 800 do 2048 pikseli. Pojemność jest niewielka: zdjęcie 800×800 mieści około 78 znaków, a większe zdjęcia odpowiednio więcej.

Ograniczenia

Zmiana rozmiaru, kadrowanie, filtry, zmiany jasności czy bardzo silna kompresja niszczą ukryte dane, a niektóre aplikacje automatycznie zmniejszają duże zdjęcia. Jeśli możesz, wysyłaj zdjęcie jako plik i najpierw to przetestuj. Zmiany jasności mogą być widoczne jako delikatna blokowość na gładkich powierzchniach, takich jak niebo. Schemat ukrywania jest publiczny, więc każdy, kto ma to narzędzie, rozpozna, że zdjęcie zawiera dane; chroniona jest tylko treść, i to Twoim hasłem. Wszystko działa w Twojej przeglądarce, a zdjęcie nie jest nigdzie wysyłane.