Oto, jak można w sprytny sposób odczytać rozpikselowany tekst

Gdzie człowiek nie może, tam pośle algorytm. Tak oto pikselizacja tekstu jako efektywne zabezpieczenie przed oczytaniem odchodzi właśnie do lamusa.

Oto, jak można w sprytny sposób odczytać rozpikselowany tekst
Piotr Urbaniak

08.12.2020 06:29

Pikselizacja, czyli deformacja obrazu rastrowego poprzez widoczne obniżenie szczegółowości, to powszechnie znane narzędzie cenzury. Zwłaszcza w epoce internetu, gdy publikuje się w formacie cyfrowym cały szereg dokumentów wymagających częściowego ukrycia przedstawionych informacji. Ot, choćby danych osobowych.

Jak działa? Obraz wyświetlany na ekranie składa się z milionów pikseli, przez co należy rozumieć najmniejsze i niepodzielne składowe. W wyniku pikselizacji kolor pikseli w obrębie ich kolejnych skupisk zostaje uśredniony, co przy odpowiednio rzadkim rozmieszczeniu tychże skupisk uniemożliwia odczytanie treści. To proste, a wręcz prymitywne rozwiązanie. Ale skoro skuteczne, nie było przecież sensu nad nim debatować.

fot. LinkedIn (Sipke Mellema)
fot. LinkedIn (Sipke Mellema)

Efekt pikselizacji jako narzędzie cenzury ma jednakowoż oczywistą wadę: jest powtarzalny. Jeśli użyjemy klasycznego filtra liniowego i tych samych nastaw precyzji, to dana czcionka w konkretnym rozmiarze i kolorze zawsze zostanie zdeformowana w ten sam sposób.

Nie stanowi to problemu, gdy rozmazany zostaje cały dokument, ale już w przypadku pojedynczych słów sprawy się mają inaczej. Potencjalny napastnik jest bowiem w stanie rozpoznać charakterystykę czcionki. I na ten właśnie aspekt uwagę zwrócił programista Sipke Mellema, który przygotował narzędzie do odczytywania rozpikselowanego tekstu.

fot. LinkedIn (Sipke Mellema)
fot. LinkedIn (Sipke Mellema)

Depix, jak nazwano program, został stworzony w Pythonie i stanowi rodzaj algorytmu porównywania. Z jednej strony przyjmuje zamazany dokument, z drugiej zaś – próbkę oczekiwanej czcionki przedstawionej poprzez cykl de Bruijna. Analizując kolejne grupy pikseli, szuka zgodności pomiędzy stylem rozmycia, a tym jak ewentualnie wyglądałyby kombinacje dwuliterowe po rozmyciu w pliku źródłowym. Ostatecznie zwraca czytelny tekst.

Oczywiście takie rozwiązanie ma swoje niedoskonałości, i to liczne. Nie zadziała na niejednolitych tłach ani w przypadku innych niż pikselizacja rodzajów deformacji, np. rozmycia za pomocą filtru Gaussa. Tak czy inaczej, stanowi pewien postęp w dziedzinie technik OSINT. Więcej informacji o Depiksie, jak również sam program znajdziecie na GitHubie.

Programy

Zobacz więcej
Zobacz także
Komentarze (7)