画像を破壊することなく、jpg や gif などの写真ファイル内に情報を書き込むにはどうすればよいですか? もちろん、全体的なアイデアは、写真のファイル内の情報を誰にも検出されずに送信することであるため、写真に表示することはありません (ある程度のセキュリティ/プライバシーを提供するため)。
8 に答える
gif と zip (隠したい情報) を 1 つのファイルに連結できます。GIF はファイルの先頭から読み取られますが、zip はファイルの末尾から読み取られます。
Linux でこのようなファイルを作成するには:
$ cat file1.gif >> outfile.gif
$ cat file2.zip >> outfile.gif
結果のファイルは、file1.gif と file2.zip を合わせたサイズになり、任意の gif ビューアーと zip ファイル ハンドラーで開くことができます。
その方法はステガノグラフィーと呼ばれています。これにより、画像だけでなく、オーディオ、ビデオ、その他の形式でもメッセージを非表示にすることができます。
これは、 steganotoolと呼ばれるオープン ソースのステガノグラフィ ソフトウェアです。このプロジェクトは、ビットマップ イメージとの間でテキストを非表示にしたり抽出したりするために使用できるオープン ソースのステガノグラフィ ツールです。
ステガノグラフィ媒体について
画像のステガノグラフィー
このタイプのステガノグラフィは、発見に対して非常に効果的であり、さまざまな目的に役立ちます。これらの目的には、認証、メッセージの隠蔽、および暗号化キーの送信が含まれます。このタイプのステガノグラフィで最も効果的な方法は、通常、最下位ビットを使用する方法です。これは単に、隠しメッセージが画像のバイトの最後のビットを変更することを意味します。最後のビットを変更しても、キャリア イメージ内のそのピクセルの色はほとんど変化しません。これにより、メッセージが簡単に検出されなくなります。内部に情報を隠すのに最適なイメージ ファイルのタイプは、24 ビット ビットマップです。これは、ファイル サイズが大きく、品質が高いためです。
オーディオのステガノグラフィー
オーディオ ファイルで情報を隠蔽する最も顕著な方法は、低ビット エンコーディング方式です。低ビット エンコーディング方式は、画像ファイルで使用される最下位ビット方式に多少似ています。シークレット情報はファイルの最後に添付されます。低ビット エンコーディングの問題の 1 つは、人間の耳に認識される可能性があることです。誰かが情報を隠蔽しようとしている場合、それは非常に簡単に検出できるため、危険を伴う可能性があります。スペクトラム拡散方式は、オーディオ ファイル内の情報の隠蔽に使用されてきた別の方式です。このメソッドが行うことは、オーディオ ブロードキャストにランダム ノイズを追加することです。この方法により、情報が周波数スペクトル全体に拡散され、ランダムノイズの下に隠されたままであることが可能になります。オーディオ ステガノグラフィで最後に見られる方法は、エコー隠蔽データです。この方法では、サウンド ファイル内で自然に発生するエコーを使用して情報を隠そうとします。次に、これらのエコーに追加のサウンドを追加できます。追加のサウンドは、隠されたメッセージです。これは、場合によっては元のオーディオ ファイルのサウンドを改善することさえあるため、特に情報を隠すには十分な方法です。
ビデオのステガノグラフィー
ビデオのステガノグラフィーは基本的に、ビデオの各フレームに情報を隠します。動画内に隠されている情報はごくわずかで、通常はまったく目立ちませんが、隠されている情報が多ければ多いほど、その情報は目立ちます。この方法も効果的ですが、正しく行う必要があります。
ドキュメントのステガノグラフィー
これは基本的に、ドキュメントの行末に空白とタブを追加することです。このタイプのステガノグラフィーは非常に効果的です。これは、ほとんどのテキスト/ドキュメント エディターで空白やタブの使用が人間の目には見えないためです。
この記事は非常に役立ちます。
一部の情報は画像メタデータに保存できます。実際、これがデジタル カメラが作成した写真に「タグを付ける」方法です (カメラのモデル、日付と時刻、GPS 座標など)。
このデータ形式はEXIF (Exchangeable Image File Format) と呼ばれます。プログラミング言語での使用例はたくさんあります。Java での例を次に示します。
ユーザーがこのデータを読み取れないようにしたい場合は、何らかの方法で暗号化できますが、写真からいつでも削除できます (たとえば、Photoshop で開いて [名前を付けて保存] を使用することにより)。
jpeg ファイル内のデータ (テキスト、別の画像など) を隠したい場合は、ファイルの末尾に追加するだけです。画像を表示すると、元の画像のみが表示され、追加されたデータは無視されます。
データを非表示にする超強力な方法ではありませんが、これは別の jpeg を非表示にする良い方法です。誰かがファイルをメモ帳または 16 進エディターで開いた場合、1 つではなく 2 つの jpeg があることに気付かないでしょう。とにかく、2 番目の画像は最初の画像のように見えます。