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の概要フロー)
- 秘密 → AES-SIV暗号化 – プレーンテキストは共有シークレットフレーズから導出された鍵(PBKDF2-HMAC-SHA-256、600kラウンド)で暗号化される。
- 暗号化バイト → LLMトークン選択 – 暗号化されたバイトストリームをローカルLLMに供給し、そのバイナリ表現がバイトをエンコードするトークンを選択する。結果のトークン列は自然な英語としてレンダリングされる(カバー文)。
- カバー文 → メッセージングアプリ – ユーザーはカバー文をコピーし、任意の通常のチャットアプリに貼り付ける。
- カバー文 → LLMデコード – 受信者は受信したカバー文に対して同じモデルを実行し、隠されたトークンエンコードバイトを抽出し、共有鍵で復号して元の秘密メッセージを回復する。
- メッセージチェーン – 各ステップで会話ID、送信者名、メッセージインデックス、およびすべての以前のメッセージのハッシュを署名するため、順序がずれたり改ざんされたメッセージは検出される。
すぐに始める(READMEのクイックスタート手順)
- クローン&ビルド
git clone https://github.com/nethical6/conversation-stenography.git cd conversation-stenography go build -o conversation-stenography ./cmd/conversation-stenography - セットアップウィザードの実行(
./conversation-stenography)– モデルを選択し、ウィザードがモデルをダウンロードし、ローカル設定ファイルを作成する。 - ローカルでテスト(オプション)
./conversation-stenography simulateを使用。 - 本格的なチャット開始 –
./conversation-stenographyを実行し、会話名、ユーザー名、共有シークレットフレーズを入力する。 - 送信 – 秘密メッセージを入力;ツールが生成されたカバー文を出力し、コピーする。
- 受信 –
/paste <sender>を使用して受信したカバー文を貼り付ける;ツールがデコードして隠されたメッセージを表示する。
一般的な使用例
- 2人が対面で会い、シークレットフレーズと会話名を合意する。
- 両者ともツールをインストールし、セットアップウィザードを実行し、同じLLMを選択する。
- 両者は既存のメッセージングプラットフォームを通じてカバー文を交換し、プラットフォームに実際のペイロードを露出させない。
制限と注意事項(作者の注意)
- 概念実証 – LLMベースのステガノグラフィーに対する検出技術は既に存在する;このツールは高度な敵対者に対して検証されていない。
- 正確なコピーが必要 – 自動補正、スマートクォーテーション、フォーマット変更があればデコードが失敗する。
- モデルの同一性 – 両者とも正確に同じモデルバージョンと設定を実行しなければならない;そうでなければデコードに失敗する。
- ローカルリソースの要求 – 3BパラメータのLLMを実行するには、最新のApple Silicon Mac(MLX)またはTorchバックエンド用に十分なGPUが必要。
- 法的・倫理的免責事項 – リポジトリは教育的利用のみを強調しており、悪用は禁止されている。
ライセンス
リポジトリにはLICENSEファイルが含まれており(READMEに具体的なSPDX識別子は記載されていない)、プロジェクトはその中で定義された条件に基づいてオープンソースである。
最後に
Conversation Stenographyは、現代のLLM推論と古典的なAES-SIV暗号化を組み合わせ、通常のチャットテキストの中にメッセージを隠す本物のオープンソース実装である。研究者やプライバシーを重視するユーザー向けに、自己完結型でローカルで実行可能なステガノグラフィックチャネルを提供するが、既知の実用的・セキュリティ上の制約を持つ概念実証に留まっている。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト