- Стеганография - передачи информации таким образом, что никто не будет знать кроме отправителя и получателя.
- криптография - наука изучающая методы шифрования информации и их использование. В случае если данные будут перехвачены, то ничего кроме набора символов там не будет.
Немного истории.
Так повелось, что криптография изучается больше чем стеганография, несмотря на то, что стеганография появилась раньше.
В древние времена люди писали письма молоком или специальными чернилами; делали татуировки на рабах и отправляли их к адресатам; царапали на дощечках и покрывали их воском; писали на полоске щелка, покрывали воском и проглатывали их.
В настоящее время стеганография делится на три типа:
- классическая (написание писем специальными чернилами и др.)
- компьютерная (скрытие информации на самих изображениях)
- цифровая (скрытие информации с использованием пикселей)
Важно! Для стеганографии можно использовать не только изображения, но и аудио или видео. 📌
Способы применения:
- скрытая передача данных.
- цифровые водяные знаки.
- подтверждение авторского права.
- подтверждение владения купленным вами продукта (книга).
И др.
Теперь перейдем к самому главному.
Скрытие информации в изображениях.
Начнем с того, что каждое изображение состоит из пикселей, которые в большинстве случаев включают в себя три основных цвета 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)
Наши действия:
записать число 5 в двоичном виде (101)
распределить цифры двоичной записи числа 5 в концы чисел rgb в двоичном представление.
Получится:
*Было -> стало*
1111 1111 -> 1111 1111
0000 0000 -> 0000 0000
0000 0000 -> 0000 0001
Преобразуем пиксель в пиксель с новыми значениями. Получится 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