Найти в Дзене
Погружение в бизнес

Как передавать информацию в пикселях изображения?

  • ‌Стеганография - передачи информации таким образом, что никто не будет знать кроме отправителя и получателя.
  • ‌криптография - наука изучающая методы шифрования информации и их использование. В случае если данные будут перехвачены, то ничего кроме набора символов там не будет.

Немного истории.

Так повелось, что криптография изучается больше чем стеганография, несмотря на то, что стеганография появилась раньше.

В древние времена люди писали письма молоком или специальными чернилами; делали татуировки на рабах и отправляли их к адресатам; царапали на дощечках и покрывали их воском; писали на полоске щелка, покрывали воском и проглатывали их.

В настоящее время стеганография делится на три типа:

  • ‌классическая (написание писем специальными чернилами и др.)
  • ‌компьютерная (скрытие информации на самих изображениях)
  • ‌цифровая (скрытие информации с использованием пикселей)

Важно! Для стеганографии можно использовать не только изображения, но и аудио или видео. 📌

Способы применения:

  • ‌скрытая передача данных.
  • ‌цифровые водяные знаки.
  • ‌подтверждение авторского права.
  • ‌подтверждение владения купленным вами продукта (книга).

И др.

Теперь перейдем к самому главному.

Скрытие информации в изображениях.

Начнем с того, что каждое изображение состоит из пикселей, которые в большинстве случаев включают в себя три основных цвета RGB.

Три цвета пикселя можно представить в виде чисел от 0 до 255. Пример: rgb( 255,0,0).

Числа в промежутке определяют оттенок соответствующего цвета (r-red, g-green, b-blue). Именно этим мы и будем пользоваться.

Представим, что мы хотим передать число от 0-7 с помощью изображения, например, 5. Возьмём первый пиксель изображения rgb(255,0,0)🔴.

В двоичном преставлении красный цвет будет:

1111 1111 (r)

0000 0000 (g)

0000 0000 (b)

RGB(255, 0, 0)
RGB(255, 0, 0)

Наши действия:

‌записать число 5 в двоичном виде (101)

‌распределить цифры двоичной записи числа 5 в концы чисел rgb в двоичном представление.

Получится:

*Было -> стало*

1111 1111 -> 1111 1111

0000 0000 -> 0000 0000

0000 0000 -> 0000 0001

RGB(255, 0, 1)
RGB(255, 0, 1)

Преобразуем пиксель в пиксель с новыми значениями. Получится rgb(255, 0, 1).

С помощью этого можно реализовать алгоритм преобразуя спрятанные числа в ASCII - код.

В скором времени я реализую данный алгоритм вот тут: https://t.me/tehnoin

Список литературы:

‌https://bit.mephi.ru/index.php/bit/article/download/1239/1170

‌https://translated.turbopages.org/proxy_u/en-ru.ru.6c8caedb-6625ce54-76e34299-74722d776562/https/www.programiz.com/blog/steganography-hiding-information-inside-pictures/?__ya_mt_enable_static_translations=1