あなたが探しているのはステガノグラフィです。これは、他の点では無害に見えるコンテンツにメッセージを隠す方法です。
Linuxでは、これを行うためのツールが豊富にあるようには見えませんが、1とsteghide 2が期待どおりの結果をもたらすと推測しています。openstegoはもう 1つです(コマンドラインインターフェイスを使用)。
の例outguess
、あなたの質問のテキストをコピー/貼り付けましたQ.txt
:
$ ../src/outguess/outguess -k 'Unix&Linux' -d Q.txt Tux.jpg Tux_steg.jpg
Reading Tux.jpg....
JPEG compression quality set to 75
Extracting usable bits: 10126 bits
Correctable message size: 5008 bits, 49.46%
Encoded 'Q.txt': 4592 bits, 574 bytes
Finding best embedding...
0: 2274(49.2%)[49.5%], bias 2008(0.88), saved: 2, total: 22.46%
3: 2269(49.1%)[49.4%], bias 2007(0.88), saved: 3, total: 22.41%
13: 2268(49.0%)[49.4%], bias 1977(0.87), saved: 3, total: 22.40%
62: 2237(48.4%)[48.7%], bias 1992(0.89), saved: 7, total: 22.09%
78: 2216(47.9%)[48.3%], bias 1964(0.89), saved: 10, total: 21.88%
78, 4180: Embedding data: 4592 in 10126
Bits embedded: 4624, changed: 2216(47.9%)[48.3%], bias: 1964, tot: 10119, skip: 5495
Foiling statistics: corrections: 1437, failed: 746, offset: 198.494881 +- 300.529142
Total bits changed: 4180 (change 2216 + bias 1964)
Storing bitmap into data...
Writing Tux_steg.jpg....
$ ../src/outguess/outguess -k 'Unix&Linux' -r Tux_steg.jpg out.txt
Reading Tux_steg.jpg....
Extracting usable bits: 10126 bits
Steg retrieve: seed: 78, len: 574
$ diff out.txt Q.txt
$ echo $?
0
ソース画像(Tux.svgから):
質問が隠された画像:
よく見ると画像は異なりますが、2番目の画像がより高いJPEG圧縮レベルで生成された場合とほぼ同じです。質問の完全なテキストが混在している(およびパスワードで保護されている)ことは、視覚的にはまったく目立ちません。
非表示のメッセージが小さいほど、画像の視覚的な違いが少なくなります。(「Copyright YOU 2012」が埋め込まれたファイルと元のファイルを視覚的に区別できません。)
1つ古いが、正常にビルドされます。
2は最新のC ++コンパイラーではビルドできません。いくつかのソース修正が必要です。