Tuxia Learn · 約6分で読めます
画像ステガノグラフィー:ピクセルに秘密を隠す
「ステガノグラフィー(steganography)」はギリシャ語で「覆われた文字」を意味します。内容を判読不能な文字列に変える暗号化とは異なり、ステガノグラフィーが目指すのは「何かが隠されている」という事実そのものを隠すこと — 表向きはすべて完璧に普通に見えます。
蔵頭詩からあぶり出しまで
古くからある技芸です:頭文字にメッセージを隠す蔵頭詩、何も書かれていないように見える紙にあぶり出しで書くスパイ、第二次大戦中に1ページを句点サイズに縮小した「マイクロドット」。デジタル時代は新たな「紙」をもたらしました:画像、音声、動画です。
デジタルステガノグラフィーの二大流派
1. LSB(最下位ビット)。画像はピクセルの集まりで、各ピクセルは数値です。その最下位ビットを秘密データで置き換えても、見た目はほとんど変わりません。隠蔽性は高いのですが、容量は小さく(1メガピクセルあたり約100KB強) — 画像が圧縮・変換された瞬間、最下位ビットは書き換えられてデータは消えます。
2. 追記式。Tuxiaが採用している方式です。PNGのデータは公式にはIENDマーカーで終わり(GIFは0x3B) — ビューアはそこで止まり、末尾のバイトを無視します。つまり、その「無人の地帯」にファイルデータをそのまま「書き込む」ことができるのです。容量が大きく実装も単純。その代わり、ファイルサイズが目に見えて膨らみます — 知っている人には「この画像はおかしい」と見抜かれます。
要するに:LSBは深く隠せるが少ししか入らず、追記式はたくさん入るが浅く隠す。Tuxiaが後者を選んだのは、「プロの検出を出し抜く」ためではなく「ファイルを手軽に共有する」ためです。
Tuxiaが実際に行うこと
- 表紙:PNG/GIF/JPG、またはワンクリックのランダム表紙。
- 暗号化(任意):パスワード設定時、PBKDF2で鍵を導出し、AES-256-GCMでファイルを暗号化 — 銀行レベル。パスワードなしでは判読不能な文字列になります。
- パッケージング:暗号化されたファイルとメタデータ(ファイル名、サイズ、チェックサム)を画像終端マーカーの後に追記します。
取り出しはその逆です:終端マーカーを探し、パッケージを読み取り、復号してファイルを復元します。すべてお使いのブラウザ内で — ファイルがサーバーに触れることはありません。
限界:何を守り、何を守らないか
- 守るのは「見えなさ」です:通りすがりの人には普通の画像にしか見えず、何も疑われません。
- 真の安全性はパスワードが担います:ステガノグラフィーは「隠す」、暗号化は「鍵」です。パスワードなしでは、手法を知る人なら誰でもファイルを取り出せます。
- 圧縮には耐えません:WeChatやQQなどが画像を再圧縮すると末尾データは消去されます — 追記式の生まれつきの弱点であり、Tuxiaが「元画像で送って」と言い続ける理由です(詳しくはこちら)。
- プロの検出には耐えません:異常なファイルサイズも末尾のエントロピーも、分析ツールにはフラグが立てられます。検閲やフォレンジック対策になるとは考えないでください。
お断り:ステガノグラフィーは中立的な技術です。合法な範囲でのみご利用ください — 学習、日常のファイル共有、作品への透かし入れ(全文は
利用規約)。
Tuxiaを試す →
次へ:WeChatやQQが隠しファイルを「洗い流す」理由 →
関連:使い方 · よくある質問