This commit is contained in:
Miloslav Ciz 2025-04-14 21:57:02 +02:00
parent 5604db85d2
commit d8f1711fa8
33 changed files with 2096 additions and 2036 deletions

View file

@ -1,10 +1,10 @@
# Steganography
Steganography means hiding secret [information](information.md) within some unrelated data by embedding it in a way that's very hard to notice; for example it is possible to hide text messages in a digital photograph by slightly modifying the colors of the image pixels -- that photo then looks just like an innocent picture while in fact bearing an extra information for those who know it's there and how to read it. Steganography differs from [encryption](encryption.md) by trying to avoid even suspicion of secret communication, i.e. rather than trying to be indecipherable the effort is on staying undetected, flying under the radar.
Steganography means hiding secret [information](information.md) within some unrelated data by embedding it in a way that's very hard to notice; for example it is possible to conceal text messages in a digital photograph by slightly modifying the [colors](color.md) of the image [pixels](pixel.md) -- the photo looks just like an innocent picture when in fact it bears an extra information for those who know it's there and how to read it. Steganography differs from [encryption](encryption.md) by trying to avoid even the suspicion of secret communication, i.e. rather than trying to be indecipherable the effort is spent on staying undetected, flying under the radar.
There are many uses for steganography, for example for secret communication during war, for bypassing [censorship](censorship.md) or secretly tracking a piece of digital media with an invisible [watermark](watermark.md) (game companies have used steganography to identify which tester's game client was used to leak pre-release footage of their games -- it was for example proven that screenshots from [World of Warcraft](wow.md) contain hidden information about the game client). [Cicada 3301](cicada.md) has famously used steganography in its puzzles.
There are many uses for steganography, for example for secret communication during war, for bypassing [censorship](censorship.md) or secretly tracking a piece of digital media with an invisible [watermark](watermark.md) (game companies have used steganography to identify which tester's game client was used to leak pre-release footage of their games -- it was for example proven that screenshots from [World of Warcraft](wow.md) contain hidden information about the game client). [Cicada 3301](cicada.md) has famously used steganography in its [puzzles](puzzle.md).
Steganography may need to take into account the possibility of the data being slightly modified, for example pictures exchanged on the [Internet](internet.md) lose their quality due to repeating [compression](compression.md), cropping and format conversions. Robust methods may be used to preserve the embedded information even in these cases.
Steganography may need to take into account the possibility of the data being slightly modified, for example pictures exchanged on the [Internet](internet.md) lose their quality due to repeated [compression](compression.md), cropping and format conversions. Robust methods may be used to preserve the embedded information even in these cases.
Some notable methods and practices of steganography include:
@ -14,7 +14,9 @@ Some notable methods and practices of steganography include:
- All kinds of data can be embedded given enough storage capacity of given bearing medium (e.g. it is possible to store an image in text, sound in another sound etc.).
- Information that's present but normally random or unimportant can be used for embedding, e.g. the specific order of items in a list (its [permutation](permutation.md)) can bear information as well as length of time delays in timed data, amount of noise in data etc.
The following two pictures encode text, each picture a different one, written under it. (The method used for the encoding as well as the whole code will be present further below.)
Worthy of mention is the case of embedding certain type of media in the same type of media, i.e. text in text, picture in picture etc. We might for example entertain the idea of abusing steganography to storing illegal text on [git](git.md) hosting websites by modifying the text so that it looks like some kind of innocent code (that can possibly even compile and run).
The following two pictures encode text, each picture a different one, written underneath. (The method used for the encoding as well as the whole code will be presented further below.)
```
-,~.',.