nethical6/conversation-steganography

Use LLMs to hide messages inside normal looking conversations

Conversation Stenography – AI駆動のステガノグラフィックチャット

何であるか – Goで書かれたコマンドラインツールで、WhatsApp、Telegram、Signal、iMessage、メール、Instagram DMなど、あらゆる通常のメッセージアプリを通じて2人が秘密のメッセージを交換できる。秘密のテキストはまずAES-SIVで暗号化され、その後、ローカルで実行されるLLM(例:Llama 3.2、GPT-2)がカバーメッセージを生成し、通常の会話のように見える。受信者は同じプログラムを実行し、LLMのトークン選択から隠されたバイトを抽出して、元の秘密メッセージに復号する。

なぜ重要か – カリアテキストは通常のチャットと区別できないため、暗号化ペイロードをスキャンする受動的監視は、この会話を簡単に検出できない。すべての暗号化処理とモデル推論はユーザーのデバイス上で行われる;クラウドにデータは送信されない。


主な機能(READMEに記載)

機能 詳細
エンドツーエンド暗号化 AES-SIV(認証暗号化)が機密性と整合性を保護する。
メッセージチェーン 各メッセージは前のメッセージを認証し、改ざん、削除、順序の変更を検出する。
ローカルAIモデル デバイス上でカバー文を生成(Apple SiliconではMLX、その他のプラットフォームではPyTorch + Transformers)。
クロスプラットフォームのカリア 生成されたカバー文は任意のチャットアプリにコピー可能;ツールはアプリに直接統合しない。
シミュレーションモード ./conversation-stenography simulateで、1台のマシン上で2人の仮想参加者がテスト用にチャットできる。
カスタマイズ可能なモデル Llama 3.2(1B、3B)、Llama 3.1 8B、GPT-2(base & medium)をサポート。
CLIコマンド /paste/send/show/status/help/quitに加え、セットアップ、会話一覧、スクリプト化されたチェーン送受信のためのトップレベルコマンド。
環境変数オーバーライド シークレットフレーズ、モデルパス、ランタイムなどは環境変数で供給可能で、自動化に利用できる。

動作方法(READMEの概要フロー)

  1. 秘密 → AES-SIV暗号化 – プレーンテキストは共有シークレットフレーズから導出された鍵(PBKDF2-HMAC-SHA-256、600kラウンド)で暗号化される。
  2. 暗号化バイト → LLMトークン選択 – 暗号化されたバイトストリームをローカルLLMに供給し、そのバイナリ表現がバイトをエンコードするトークンを選択する。結果のトークン列は自然な英語としてレンダリングされる(カバー文)。
  3. カバー文 → メッセージングアプリ – ユーザーはカバー文をコピーし、任意の通常のチャットアプリに貼り付ける。
  4. カバー文 → LLMデコード – 受信者は受信したカバー文に対して同じモデルを実行し、隠されたトークンエンコードバイトを抽出し、共有鍵で復号して元の秘密メッセージを回復する。
  5. メッセージチェーン – 各ステップで会話ID、送信者名、メッセージインデックス、およびすべての以前のメッセージのハッシュを署名するため、順序がずれたり改ざんされたメッセージは検出される。

すぐに始める(READMEのクイックスタート手順)

  1. クローン&ビルド
    git clone https://github.com/nethical6/conversation-stenography.git
    cd conversation-stenography
    go build -o conversation-stenography ./cmd/conversation-stenography
    
  2. セットアップウィザードの実行./conversation-stenography)– モデルを選択し、ウィザードがモデルをダウンロードし、ローカル設定ファイルを作成する。
  3. ローカルでテスト(オプション)./conversation-stenography simulateを使用。
  4. 本格的なチャット開始./conversation-stenographyを実行し、会話名、ユーザー名、共有シークレットフレーズを入力する。
  5. 送信 – 秘密メッセージを入力;ツールが生成されたカバー文を出力し、コピーする。
  6. 受信/paste <sender>を使用して受信したカバー文を貼り付ける;ツールがデコードして隠されたメッセージを表示する。

一般的な使用例

  1. 2人が対面で会い、シークレットフレーズと会話名を合意する。
  2. 両者ともツールをインストールし、セットアップウィザードを実行し、同じLLMを選択する。
  3. 両者は既存のメッセージングプラットフォームを通じてカバー文を交換し、プラットフォームに実際のペイロードを露出させない。

制限と注意事項(作者の注意)

  • 概念実証 – LLMベースのステガノグラフィーに対する検出技術は既に存在する;このツールは高度な敵対者に対して検証されていない。
  • 正確なコピーが必要 – 自動補正、スマートクォーテーション、フォーマット変更があればデコードが失敗する。
  • モデルの同一性 – 両者とも正確に同じモデルバージョンと設定を実行しなければならない;そうでなければデコードに失敗する。
  • ローカルリソースの要求 – 3BパラメータのLLMを実行するには、最新のApple Silicon Mac(MLX)またはTorchバックエンド用に十分なGPUが必要。
  • 法的・倫理的免責事項 – リポジトリは教育的利用のみを強調しており、悪用は禁止されている。

ライセンス

リポジトリにはLICENSEファイルが含まれており(READMEに具体的なSPDX識別子は記載されていない)、プロジェクトはその中で定義された条件に基づいてオープンソースである。


最後に

Conversation Stenographyは、現代のLLM推論と古典的なAES-SIV暗号化を組み合わせ、通常のチャットテキストの中にメッセージを隠す本物のオープンソース実装である。研究者やプライバシーを重視するユーザー向けに、自己完結型でローカルで実行可能なステガノグラフィックチャネルを提供するが、既知の実用的・セキュリティ上の制約を持つ概念実証に留まっている。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト