Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
RRC_steganography | Kitploit
ツール/GitHubGitHub/ryehr/rrc_steganography
ステガノグラフィー暗号化機械学習論文と研究学習と教育AIセキュリティ
GitHubryehr/rrc_steganography

RRC_steganography

リポジトリを見る
614ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

RRC ステガノグラフィー

Rotation Range-Coding (RRC) ステガノグラフィー — 大規模言語モデルが生成する自然言語テキストに秘密メッセージを埋め込む、効率的かつ証明可能な安全性を備えた言語ステガノグラフィー手法です。

論文: Efficient Provably Secure Linguistic Steganography via Range Coding

仕組み

ステップ説明
埋め込み (Algorithm 3)秘密メッセージを10進値に変換し、LM の確率分布と PRNG 生成オフセットに基づいて縮小する区間内で反復的に回転させます。各回転ステップで1トークンが生成されます。
抽出 (Algorithm 4)ステゴテキストに対して LM を再実行して区間の境界を復元し、元の10進値に逆回転させてから2値化します。

この回転メカニズムは、素の範囲コーディングステガノグラフィーの2つの問題を解決します:

  1. 確率分布の保持 — 回転された秘密値は各区間内で一様に分布するため、トークン選択は元の LM 分布に従います。
  2. 新しいランダム性 — 各ステップで新しい PRNG オフセットを使用するため、ランダム性の再利用を防ぎます。

リポジトリ構造

root@kitploit:~
.
├── RRC_embed.py   # Embedding (Algorithm 3) 
├── RRC_extract.py   # Extraction (Algorithm 4) 
├── test_roundtrip.py         # Self-contained end-to-end verification script
├── requirements.txt          # Python dependencies
└── README.md

要件

  • Python ≥ 3.10
  • PyTorch ≥ 2.0
  • Transformers ≥ 4.35

依存関係をインストール:

root@kitploit:~
pip install -r requirements.txt

クイックスタート

1. 正確性の検証

ラウンドトリップテストは、meta-llama/Llama-2-7b-hf を使用し、CPU/CUDA 上で実行されます:

root@kitploit:~
python test_roundtrip.py

期待される出力:

root@kitploit:~
>>> Step 3: Verification
    Original: 10110011001010111010011100101011...
    Extracted: 10110011001010111010011100101011...

    ✅ SUCCESS — extracted message matches perfectly!

2. 秘密メッセージの埋め込み

列 idx と text を含むプロンプトファイル 0.Prompts.tsv を用意し、以下を実行します:

root@kitploit:~
python RRC_embed.py \
    --language_model meta-llama/Llama-3.1-8B \
    --bit_length 128 \
    --key 42 \
    --top_k -1

3. 秘密メッセージの抽出

root@kitploit:~
python RRC_extract.py \
    --language_model meta-llama/Llama-3.1-8B \
    --bit_length 128 \
    --key 42 \
    --input_file 1.RC_decimal_Llama-3.1-8B_bit128.tsv

⚠️ 重要: 正しく抽出するには、送信者と受信者が同じ言語モデル、キー、ビット長、top-k 設定を使用する必要があります。

CLI 引数

RRC_embed.py

RRC_extract.py

技術的注記: Decimal の剰余演算

Python の Decimal 型は % 演算子に切り捨て除算を使用するため、負の剰余を返すことがあります (例: Decimal('-19672') % Decimal('65536') は 45864 ではなく -19672 になります)。この実装では、結果が常に [0, m) に収まることを保証する decimal_mod ヘルパーを使用しています:

root@kitploit:~
def decimal_mod(a, m):
    return a - m * (a / m).to_integral_value(rounding=ROUND_FLOOR)

⚠️ 信頼性の高い秘密抽出のため、一部の操作 (sort、cumsum) は CUDA の非決定性を避けるために float64 精度で CPU にオフロードされます。これにより、保証されたエンコード–デコードの一貫性と引き換えに、ある程度の速度を犠牲にします。

ツールをダウンロード
引数デフォルト説明
--language_modelmeta-llama/Llama-3.1-8BHuggingFace モデル識別子
--bit_length128秘密メッセージのビット長
--top_k-1Top-k の切り詰め; -1 = 全語彙
--key42対称鍵 K (PRNG シード)
--part / --part_max0 / 2大規模なプロンプトセットでの並列実行用
引数デフォルト説明
--language_modelmeta-llama/Llama-3.1-8B埋め込みモデルと一致している必要があります
--bit_length128埋め込み設定と一致している必要があります
--top_k-1埋め込み設定と一致している必要があります
--key42埋め込みキーと一致している必要があります
--input_file(必須)エンコーダーが出力した TSV へのパス