LSB · PNG · 任意の AES-256-GCM
画像を読み込むと容量が表示されます。
機能の説明
画像ステガノグラフィーツールは、普通の PNG 画像の中に秘密のメッセージを隠し、またそれを取り出します。最下位ビット(LSB)エンコードを使用します。各ピクセルの赤・緑・青チャンネルは最後の 1 ビット以外そのままの値を保ち、その最後のビットがメッセージの 1 ビットを格納します。1000 × 1000 の画像ならこの方法で約 375 KB を運べます。チャンネル値の ±1 の変化は目に見えないため、出来上がった画像は元の画像とピクセル単位で同一に見えます。
オプションで、メッセージを事前に AES-256-GCM(パスワードは PBKDF2 で 10 万回の反復から導出)で暗号化できます。画像がデータを運んでいると知っている人でも、パスワードなしでは読めません。ツールは 100% クライアント側で動作します。画像もメッセージもパスワードも、ブラウザーの外に出ることはありません。
使い方
- 左上の Hide / Extract トグルでモードを選びます。
- Hide: 容器となる PNG をドラッグ&ドロップ(またはクリックして選択)します。ツールはサイズと容量を表示します - 「この画像は最大 N 文字を保持できます」。
- 秘密のメッセージを入力し、必要ならパスワード(AES-256-GCM)も入力します。容量の行が使用済みバイト数を追跡します。
- Hide message in image を押します。ステゴ PNG が自動でダウンロードされ、前後比較の表示により 2 つが見た目上同一であることが示されます。
- Extract: モードを切り替え、ステゴ PNG をドロップし、パスワードが使われていた場合は入力して Extract hidden message を押します。メッセージが Copy ボタン付きで表示されます。
例
メッセージを隠す
容器: photo.png(800 × 600)· メッセージ: Meet me at the airlock at 21:00 · パスワードなし
Capacity: 179,996 characters → downloads photo-stego.png
Pixels changed: 244 of 1.44M channels, each by exactly 1
同じメッセージをパスワード付きで隠す
メッセージ: Meet me at the airlock at 21:00 · パスワード: reactor-key
Extract without a password →
"This image contains an encrypted message - a password is required"
Extract with reactor-key → "Meet me at the airlock at 21:00"
Extract with wrong-key →
"Decryption failed - wrong password or corrupted data"
何も隠されていない画像から取り出す
隠しデータを持たない PNG をドロップします:
"No hidden message found in this image"
補足事項
- PNG を使う理由: ステガノグラフィーには可逆形式が必要です。PNG は正確なピクセル値を保存するため、LSB は保存・コピー・再アップロードを経ても生き残ります。JPEG は非可逆です - 再圧縮がピクセルデータを書き換え、隠されたメッセージを破壊します。ステゴ画像は必ず PNG のまま共有してください。
- 容量: floor(width × height × 3 / 8) バイトから、4 バイトのヘッダー(パスワード使用時はさらにソルト + IV + GCM タグの 44 バイト)を差し引いた値です。写真やノイズの多い画像は、平坦なグラフィックよりも説得力をもってデータを隠せます。平坦な画像では LSB ノイズが統計的に検出され得ます。
- 暗号化は認証付き: AES-GCM は、間違ったパスワードと改ざんされたピクセルを、ゴミを返すのではなく検出します。
- 暗号化単独の代用にはならない: LSB ステガノグラフィーはメッセージの存在を隠します。統計解析は、それでも不審な画像を検出できます。強い秘匿性が必要ならパスワードを使ってください - そうすれば発見されたペイロードでさえ読めません。
- プライベート: 100% クライアント側で動作します - 機密にも安全です。
- 関連ツール: Text Encryptor(平文メッセージの暗号化)、File Encryptor(ファイル全体の AES-256-GCM)、EXIF Stripper。