Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
HiTMS_steganography — Betten Sie mehrere geheime Nachrichten in LLM-Chat-Token-Auswahlen ein, mithilfe arithmetischer/Discop-steganografischer Kodierer, mit bitexakter Dekodierung und Steganalyse-Auswertung. | Kitploit
Tools/GitHubGitHub/ryehr/hitms_steganography
DefensivwerkzeugeDatenexfiltrationSteganografieKryptographieMaschinelles LernenPapers & ForschungKI-Sicherheit
GitHubryehr/hitms_steganography

HiTMS_steganography

Betten Sie mehrere geheime Nachrichten in LLM-Chat-Token-Auswahlen ein, mithilfe arithmetischer/Discop-steganografischer Kodierer, mit bitexakter Dekodierung und Steganalyse-Auswertung.

Repository anzeigen
363vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

HiTMS: Ein linguistisches Steganografie-Framework mit hohem Durchsatz und mehreren Streams

Forschungscode für linguistische Steganografie in LLM-Chat-Dialogen, mit einem Einzelstrom-Baseline und einem batch-basierten Mehrfachstrom-Protokoll (HiTMS), das mehrere unabhängige Geheimnachrichten gleichzeitig verbirgt und GPU-Batching für einen deutlich höheren Durchsatz nutzt.

Ein Bob-Modell stellt Fragen; ein Alice-Modell antwortet und kodiert die Nutzlast heimlich über einen steganografischen Kodierer in seine Token-Wahlen; Bob führt das Modell erneut auf Alices Antwort aus, um die Bits wiederherzustellen. Kodierung und Dekodierung sind bitexakt, sodass das Geheimnis verlustfrei wiederhergestellt wird.

Highlights

  • Zwei Kodierer, beide mit bitexakter Kodierung/Dekodierung:
    • Arithmetische Kodierung (arithmetic*.py)
    • Discop (verteilungserhaltend, discop*.py)
  • Einzelstrom-Protokoll (single_stream.py): kein Frame-Overhead – jedes Kanalbit ist Nutzlast (~100 % Auslastung).
  • Mehrfachstrom-HiTMS-Protokoll (protocol.py): m geheime Streams, fragmentiert über Runden, eine PRF-gesteuerte Stream→Slot-Zuordnung, Köder-Slots, 16-Bit-Längen-Header und ein Füller-Keystream. Mehrere Antworten pro Runde werden in einem gebatchten Forward-Pass erzeugt, sodass der Durchsatz mit der Batchgröße skaliert.
  • Reproduzierbare Experiment-Treiber mit deterministischen Prompt-Streams, Checkpoint/Fortsetzen pro Trial sowie Behandlung von Abstürzen/Ungültig-Wiederholungen.
  • LLM-as-a-Judge-Evaluierung der Unauffälligkeit (Natürlichkeit + Kohärenz).

In den Experimenten verwendete Modelle: meta-llama/Llama-3.2-3B-Instruct und google/gemma-3-4b-it. Datensätze: kreative/offene Teilmengen von databricks/databricks-dolly-15k und HuggingFaceH4/no_robots.

Repository layout

PfadBeschreibung
arithmetic.py, arithmetic_batch.pyArithmetikkodierungs-Stego (Einzel- + Batch-Stream-Encoder/-Decoder).
discop.py, discop_batch.pyDiscop-Stego-Kodierer + gemeinsamer PRG (einzeln + gebatcht).
utils.pyGemeinsame Hilfsfunktionen (Bit/Int-Konvertierung, Entropie, Top-k, Satzende-Prüfungen).
protocol.pyMehrfachstrom-HiTMS-Protokoll (Stream-Zuordnung, Köder, Header, Füller).
single_stream.pyEinzelstrom-Protokoll (kein Framing; Abbruch am L-ten Bit).
round_trip.py, batch_round_trip.pyMinimale One-Shot-Roundtrip-Demos/Tests.
multi_round_demo.pyMehrfachstrom-Trial-Runner (run_trial) + ausführliche Einzeltrial-Demo.
single_stream_demo.pyEinzelstrom-Trial-Runner (run_single_trial) + Demo.
run_sweep.pyMehrfachstrom-Sweep über {model}×{pool}×{coder}, fortsetzbar.
run_single_sweep.pyEinzelstrom-Pendant-Sweep.
run_scaling_sweep.pyStream-Anzahl-Skalierungssweep (x ∈ {1,2,4,8,16,32,64}), beliebiges Modell/Pool/Kodierer.
run_x1_shards.py, run_x1_finish.sh, merge_x1_shards.pyx=1-Ablation: eine Zelle über GPUs aufteilen (Sharding), dann mit Abdeckungsprüfungen zusammenführen.
judge_quality.pyLLM-as-a-Judge-Unauffälligkeits-Scorer (ein QA pro Aufruf, fortsetzbar).
gen_cover.pyNutzdatenfreie „Cover“-Texterzeugung (Steganalyse-Referenz).
steganalysis_bert.pyCover-gegen-Stego-Erkenner (BERT / RoBERTa / DeBERTa-v3 / ELECTRA).
export_data.pyErstellt den veröffentlichbaren, nur Zusammenfassungen enthaltenden Spiegel in data/.
build_question_pool.py, build_norobots_pool.pyErstellt die Fragenpools aus HF-Datensätzen.
*_creative_questions.jsonVorgefertigte Fragenpools.
legacy/Frühere Skripte/Pools, zur Referenz aufbewahrt.

Data

data/ enthält die Ergebnisse jedes Experiments des Papers – Kapazität, Durchsatz, Auslastung, Judge-Scores und Detektor-AUROC-Werte – als ein JSON-Objekt pro Trial. Das vollständige Schema finden Sie in data/README.md.

Der erzeugte Stegotext selbst ist nicht enthalten: Die Roh-Logs betten Frage und Antwort für jedes Fragment ein, was sie auf ~1 GB bringt; daher entfernt export_data.py diese Felder und behält alle Messwerte (~24 MB). Alle Treiber sind mit festen Seeds versehen, sodass ein erneuter Sweep den Text exakt neu erzeugt.

Die rohen Ausgabeverzeichnisse (sweep_logs/, single_sweep_logs/, scaling_logs/, judge_logs/, cover_logs/, run_logs/, steganalysis_logs/) sind gitignored – sie sind groß (das letzte enthält mehrere GB große trainierte Detektor-Checkpoints) und vollständig regenerierbar.

Installation

conda create -n ems python=3.10 -y && conda activate ems
pip install torch transformers datasets numpy
pip install openai          # only needed for judge_quality.py

Für den Betrieb der LLMs ist eine CUDA-GPU erforderlich. Die Llama- und Gemma-Checkpoints sind auf dem Hugging-Face-Hub gated; führen Sie daher vor der ersten Verwendung huggingface-cli login aus (mit Zugriff auf diese Modelle).

Verwendung

Erstellen Sie die Fragenpools (einmal):

python build_question_pool.py        # -> dolly15k_creative_questions.json
python build_norobots_pool.py        # -> norobots_creative_questions.json

Einzelner ausführlicher Testlauf (Sanity-Check):

# multi-stream
CUDA_VISIBLE_DEVICES=0 python multi_round_demo.py
# single-stream
CUDA_VISIBLE_DEVICES=0 python single_stream_demo.py
# override model / coder / pool via env
ROUND_TRIP_MODEL=google/gemma-3-4b-it STEGO_ALGORITHM=discop \
  STEGO_QUESTION_POOL=norobots_creative_questions.json \
  CUDA_VISIBLE_DEVICES=0 python multi_round_demo.py

Vollständige Experimente (fortsetzbar – führen Sie denselben Befehl erneut aus, um fortzufahren):

# multi-stream (8 streams x 1024 bits), all model/pool/coder combos, 500 trials
CUDA_VISIBLE_DEVICES=0 python run_sweep.py --trials 500
# single-stream baseline
CUDA_VISIBLE_DEVICES=0 python run_single_sweep.py --trials 500
# stream-count scaling (dolly + Llama + Discop)
CUDA_VISIBLE_DEVICES=0 python run_scaling_sweep.py --x-values 4 8 16 32 64

Evaluierung der Unauffälligkeit (benötigt einen OpenAI-Schlüssel in OPENAI_API_KEY oder eine lokale OPENAI_API_key.txt, beide gitignored):

python judge_quality.py --dry-run        # plan only, no API calls
python judge_quality.py --limit 2        # tiny live smoke test
python judge_quality.py                  # full run (resumable)
python judge_quality.py --aggregate-only # recompute the score table

Reproduzierbarkeit

Jeder Treiber legt seine Seeds fest (Prompts-Mischen, Nutzlast-Sampling, Sampling-RNG, torch.manual_seed) und bezieht Prompts aus einem deterministischen, durchgangsbewussten Prompt-Stream, sodass ein vollständiger Sweep Ende-zu-Ende reproduzierbar ist und nach einer Unterbrechung exakt an seinem Checkpoint fortsetzt.

Hinweise

  • Dies ist Forschungscode zu einem in Arbeit befindlichen Paper; APIs können sich ändern.
  • Committen Sie niemals Geheimnisse – OPENAI_API_key.txt, *.key und .env werden ignoriert.
Tool herunterladen