Вирішив, що цього разу покажу практичну реалізацію стеганографії. Звісно, це буде досить проста тестова прога, лише презентаційного характеру.

Саме цікаве у стеганографії – це вибір контейнера, тобто те, що триматиме у собі приховане повідомлення. Це може бути текст, зображення, аудіо, відео тощо.

У підручниках і статтях про стеганографію часто приводять приклад із контейнером-зображенням з котом. Відступлюся трохи від традиції і як зображення-контейнер буде фото лиса. Хто знає мене особисто – зрозуміє чому.

Будь-яке зображення, у тому числі фото – це ціла купа надлишкової інформації. Кожен піксель тримає у собі значення трьох базових кольорів (RGB – червоний, зелений, синій), по байту на кожен. Якщо зображення 1000 на 1000, то це три мегабайта (сам файл може важити менше за рахунок алгоритму стиснення). Це гарна новина, а погана полягає у тому, що всю цю пам’ять ми використати не зможемо, оскільки тоді контейнер буде деформований настільки, що це буде занадто помітно. Тому прийнято у контейнерах зберігати набагато меншу кількість інформації, аніж є сам контейнер. Тобто, алгоритм має містити ключ абощо, що зменшує помітність деформування контейнера або не залишає її взагалі (при деяких умовах це можливо).

Наприклад, нижче Ви можете спробувати приховати інформацію у зображенні, а потім витягнути. Написаний мною простенький алгоритм приховує інформацію у зображенні без ключа, елементарно з певним непостійним кроком вписує у кивот кольору дані, деформуючи деякі пікселі. Тому бажано використовувати унікальне зображення, яке не можна буде порівняти із оригіналом або вже не раз видозмінене зображення, варіацій якого у мережі Інтернет є мільйони, щоб порівняння було досить ускладненим. Я б віддав перевагу останьому.

І як традицію продовжуємо гру. В ілюстрації до поста зображення лиса за адресою http://technocrat.org.ua/wp-content/uploads/2014/11/img_code24652.png . Там є приховане повідомлення! :)

Comments are closed.