ステガノグラフィ入門 - 画像に情報を埋め込む技術の仕組みと応用
ステガノグラフィとは - 暗号化との違いと基本概念
ステガノグラフィ (Steganography) は、秘密のメッセージを通常のメディア (画像、音声、動画) の中に隠す技術です。語源はギリシャ語の "steganos" (覆われた) と "graphein" (書く) に由来します。暗号化がメッセージの内容を読めなくする技術であるのに対し、ステガノグラフィはメッセージの存在自体を隠す技術です。
暗号化とステガノグラフィの違い:
- 暗号化 (Cryptography): メッセージが存在することは分かるが、内容が読めない。暗号文を見れば「何か秘密の通信をしている」ことは明白
- ステガノグラフィ: メッセージの存在自体が隠されている。一見普通の画像に見えるため、秘密通信が行われていること自体が検出困難
- 組み合わせ: 実務ではメッセージを暗号化してからステガノグラフィで隠す二重防御が推奨されます。万が一隠しメッセージが発見されても、暗号化により内容は保護されます
画像ステガノグラフィの基本原理:
- デジタル画像は膨大なピクセルデータで構成されており、各ピクセルの値を微小に変更しても人間の目には知覚できません
- 例えば RGB 各 8 ビット (0-255) のピクセル値の最下位ビット (LSB) を変更しても、色の変化は 1/256 = 0.4% 未満であり、視覚的に検出不可能です
- 1,920 × 1,080 px の画像には約 620 万ピクセル (約 1860 万チャンネル) があり、各チャンネルの LSB 1 ビットを使用するだけで約 2.3MB のデータを埋め込めます
LSB (最下位ビット) 法 - 最も基本的な埋め込み手法
LSB (Least Significant Bit) 法は、画像ステガノグラフィの最も基本的かつ広く使用されている手法です。各ピクセルの色値の最下位ビットを秘密メッセージのビットで置き換えることで、視覚的に検出不可能な形で情報を埋め込みます。
LSB 法の仕組み:
- RGB 画像の各ピクセルは 3 つのチャンネル (R, G, B) を持ち、各チャンネルは 8 ビット (0-255) で表現されます
- 最下位ビット (LSB) は値に対する影響が最小 (±1) であるため、変更しても視覚的な差異は生じません
- 例: R=150 (10010110) の LSB を 0→1 に変更すると R=151 (10010111)。色の変化は人間には知覚できません
- 1 ピクセルの RGB 3 チャンネルで 3 ビット、1 バイト (8 ビット) のデータを埋め込むには約 3 ピクセルが必要です
JavaScript での実装例:
function embedMessage(imageData, message) { const bits = textToBits(message); let bitIndex = 0; for (let i = 0; i < imageData.data.length && bitIndex < bits.length; i++) { if (i % 4 === 3) continue; // Alpha チャンネルはスキップ imageData.data[i] = (imageData.data[i] & 0xFE) | bits[bitIndex]; bitIndex++; } return imageData; }
LSB 法の容量計算:
- 1,920 × 1,080 px RGB 画像: 1920 x 1080 x 3 = 6,220,800 ビット = 約 760KB の埋め込み容量
- 実用上は検出リスクを下げるため、容量の 10-20% 程度に抑えることが推奨されます
- 埋め込み率が高いほどステガナリシス (検出分析) で発見されるリスクが上昇します
LSB 法の弱点:
- JPEG 圧縮に弱い: 非可逆圧縮で LSB が変更されるため、埋め込んだデータが破壊されます
- 統計的検出が可能: χ二乗検定や RS 分析で LSB の統計的偏りを検出できます
- 画像処理に脆弱: リサイズ、回転、フィルタ適用で埋め込みデータが失われます
DCT 領域ステガノグラフィ - JPEG 圧縮に耐性のある手法
DCT (離散コサイン変換) 領域でのステガノグラフィは、JPEG 圧縮プロセスの中間段階で情報を埋め込む手法です。LSB 法が空間領域 (ピクセル値) で動作するのに対し、DCT 法は周波数領域で動作するため、JPEG の再圧縮に対する耐性を持ちます。
DCT ステガノグラフィの原理:
- JPEG 圧縮の流れ: 画像 → 8x8 ブロック分割 → DCT 変換 → 量子化 → エントロピー符号化
- 埋め込みポイント: 量子化後の DCT 係数の LSB を変更します。量子化済みの係数は整数値であり、LSB の変更は最終的な画像品質への影響が最小限です
- 中周波数係数の利用: DC 成分 (ブロック平均) や低周波係数は視覚的影響が大きいため避け、中周波数の AC 係数を使用します。高周波係数は量子化で 0 になりやすいため不適切です
代表的な DCT ステガノグラフィ手法:
- JSteg: 量子化 DCT 係数のうち、0 と 1 以外の係数の LSB を置換。最も初期の JPEG ステガノグラフィ手法で、現在は容易に検出可能
- F5: マトリックス符号化を使用し、少ない変更で多くのビットを埋め込む。係数の絶対値を減少させる方向にのみ変更するため、統計的検出が困難
- nsF5: F5 の改良版。シュリンケージ (係数が 0 になる現象) を補正し、さらに検出困難に
- HUGO: 埋め込みによる統計的歪みを最小化する最適化ベースの手法。各係数の変更コストを定義し、総コストが最小になるよう埋め込み位置を選択
DCT 法の利点と制約:
- 利点: JPEG 形式で保存しても埋め込みデータが保持される
- 利点: 空間領域の LSB 法より統計的検出が困難
- 制約: 埋め込み容量が LSB 法より少ない (画像サイズの 5-15% 程度)
- 制約: JPEG 以外のフォーマットには適用できない
電子透かし (Digital Watermarking) との違いと応用
電子透かし (Digital Watermarking) はステガノグラフィと技術的に類似していますが、目的と要件が異なります。ステガノグラフィが「秘密通信」を目的とするのに対し、電子透かしは「著作権保護」や「改ざん検出」を目的とします。
ステガノグラフィと電子透かしの比較:
- 目的: ステガノグラフィ = 秘密通信、電子透かし = 著作権保護・追跡
- 耐性要件: ステガノグラフィ = 検出されないこと (非検出性) が最重要、電子透かし = 画像処理 (リサイズ、圧縮、クロップ) に耐えること (頑健性) が最重要
- 容量: ステガノグラフィ = 大容量 (数 KB-数百 KB)、電子透かし = 少量 (数ビット-数百ビット)
- 可視性: ステガノグラフィ = 完全に不可視、電子透かし = 不可視 (透かし) または可視 (ロゴ重畳)
電子透かしの応用分野:
- 著作権証明: 画像に所有者情報を埋め込み、無断使用時に権利を主張する証拠とする
- トレーシング (フィンガープリンティング): 配布先ごとに異なる識別子を埋め込み、流出元を特定する。映画のスクリーナーコピーや機密文書の追跡に使用
- 改ざん検出 (フラジャイル透かし): 画像が改ざんされると透かしが破壊される設計。改ざんの有無と改ざん箇所を特定可能
- 放送モニタリング: テレビ CM に透かしを埋め込み、放送回数や地域を自動計測する
実用されている電子透かし技術:
- Digimarc: 商用電子透かしの最大手。印刷物、パッケージ、デジタル画像に対応
- Google SynthID: AI 生成画像に不可視の透かしを埋め込む技術。Imagen で生成された画像に自動適用
- Stable Diffusion の invisible watermark: 生成画像に検出可能な透かしを埋め込む (ただし除去ツールも存在)
ステガナリシス - 隠されたメッセージを検出する技術
ステガナリシス (Steganalysis) は、画像にステガノグラフィによる隠しメッセージが含まれているかを検出する技術です。ステガノグラフィの「盾」に対する「矛」として、検出精度の向上と埋め込み技術の高度化がいたちごっこを続けています。
主要なステガナリシス手法:
- χ二乗検定 (Chi-square attack): LSB 埋め込みにより、隣接する値のペア (2k, 2k+1) の出現頻度が均等化される性質を利用。JSteg などの初期手法を高精度で検出可能
- RS 分析 (Regular-Singular analysis): ピクセルグループの「滑らかさ」を測定し、LSB 操作による統計的変化を検出。埋め込み率の推定も可能
- SPA (Sample Pair Analysis): ピクセルペアの統計的関係を分析し、LSB 置換の痕跡を検出。RS 分析より高精度
- 機械学習ベース: 画像から抽出した高次統計量 (共起行列、マルコフ特徴) を特徴量として、SVM や CNN で分類。SRNet、YeNet などの深層学習モデルが最先端
検出を回避するための対策:
- 埋め込み率を低く抑える (容量の 10% 以下)
- ランダムな位置に埋め込む (連続的な埋め込みを避ける)
- 適応的ステガノグラフィ: テクスチャの複雑な領域 (検出が困難) に優先的に埋め込む
- 暗号化したデータを埋め込む (ランダムノイズと区別困難)
ステガナリシスツール:
- StegExpose: Java ベースのオープンソースツール。RS 分析、SPA、χ二乗検定を統合
- Aletheia: Python ベース。機械学習モデルによる高精度検出
- StegDetect: JPEG ステガノグラフィ (JSteg, OutGuess, F5) の検出に特化
ステガノグラフィの実用的な応用と倫理的考慮
ステガノグラフィは学術的な興味だけでなく、実際のセキュリティ、プライバシー保護、デジタル権利管理において重要な役割を果たしています。一方で、悪用のリスクも存在するため、倫理的な考慮が不可欠です。
正当な応用例:
- 機密通信: 検閲が厳しい環境でのジャーナリストや人権活動家による安全な情報伝達。通常の画像共有に見せかけて機密情報を送信
- デジタル著作権管理 (DRM): コンテンツに所有者情報を埋め込み、不正コピーの追跡と権利証明に使用
- データ完全性の検証: 医療画像や法的証拠画像にハッシュ値を埋め込み、改ざんの有無を検証
- 秘密鍵の分散保管: 暗号鍵を複数の画像に分散して埋め込み、物理的な鍵管理のバックアップとする
悪用のリスク:
- マルウェアの C2 (Command and Control) 通信: 画像ファイルに指令を埋め込み、通常の Web トラフィックに偽装してファイアウォールを回避
- データ漏洩: 機密情報を画像に埋め込んで持ち出す内部犯行。DLP (Data Loss Prevention) システムでは検出困難
- テロリストの通信: 公開画像掲示板を介した秘密通信の手段として悪用される可能性
倫理的ガイドライン:
- ステガノグラフィ技術の研究・教育は正当な学術活動として認められています
- 実装・使用にあたっては、所属組織のセキュリティポリシーと各国の法規制を遵守すること
- 検出技術 (ステガナリシス) の研究も同様に重要であり、攻防両面の理解が健全なセキュリティ研究の基盤です