Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
HiTMS_steganography — Встраивайте несколько секретных сообщений в выбор токенов чата LLM с помощью арифметических/Discop стеганографических кодеров, с побитово точным декодированием и оценкой стегоанализа. | Kitploit
Инструменты/GitHubGitHub/ryehr/hitms_steganography
Оборонительные ИнструментыЭксфильтрация данныхСтеганографияКриптографияМашинное ОбучениеСтатьи и ИсследованияБезопасность ИИ
GitHubryehr/hitms_steganography

HiTMS_steganography

Встраивайте несколько секретных сообщений в выбор токенов чата LLM с помощью арифметических/Discop стеганографических кодеров, с побитово точным декодированием и оценкой стегоанализа.

Репозиторий
321 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

HiTMS: высокопроизводительный многопотоковый фреймворк лингвистической стеганографии

Исследовательский код для лингвистической стеганографии в диалогах LLM-чатов, с однопотоковым базовым вариантом и пакетным многопотоковым (HiTMS) протоколом, который скрывает сразу несколько независимых секретных сообщений и использует пакетную обработку GPU для гораздо более высокой пропускной способности.

Модель Боба задаёт вопросы; модель Алисы отвечает, скрыто кодируя полезную нагрузку в свой выбор токенов с помощью стеганографического кодера; Боб повторно прогоняет модель на ответе Алисы, чтобы восстановить биты. Кодирование и декодирование побитово точны, поэтому секрет восстанавливается без потерь.

Ключевые особенности

  • Два кодера, оба с побитово идентичным кодированием/декодированием:
    • Арифметическое кодирование (arithmetic*.py)
    • Discop (сохраняющий распределение, discop*.py)
  • Однопотоковый протокол (single_stream.py): без накладных расходов на обрамление — каждый бит канала является полезной нагрузкой (~100% утилизация).
  • Многопотоковый протокол HiTMS (protocol.py): m секретных потоков разбиваются на фрагменты по раундам, управляемое PRF отображение поток→слот, слоты-приманки, 16-битные заголовки длины и заполняющий keystream. Несколько ответов за раунд генерируются за один пакетный прямой проход, поэтому пропускная способность масштабируется с размером батча.
  • Воспроизводимые драйверы экспериментов с детерминированными потоками запросов, контрольной точкой и возобновлением для каждого прогона, а также обработкой сбоев и пересоздания недействительных (void) ответов.
  • Оценка незаметности с помощью LLM-в-роли-судьи (естественность + связность).

Модели, использованные в экспериментах: meta-llama/Llama-3.2-3B-Instruct и google/gemma-3-4b-it. Наборы данных: креативные/открытые подмножества databricks/databricks-dolly-15k и HuggingFaceH4/no_robots.

Структура репозитория

Данные

data/ содержит результаты каждого эксперимента из статьи — ёмкость, пропускную способность, утилизацию, оценки судьи и AUROC детекторов — в виде одного JSON-объекта на прогон. Полную схему см. в data/README.md.

Сам сгенерированный стеготекст не включён: исходные логи содержат вопрос и ответ для каждого фрагмента, из-за чего они занимают ~1 ГБ, поэтому export_data.py удаляет эти поля и сохраняет все измерения (~24 МБ). Во всех драйверах зафиксированы сиды, поэтому повторный запуск перебора воспроизводит текст точно.

Исходные выходные каталоги (sweep_logs/, single_sweep_logs/, scaling_logs/, judge_logs/, cover_logs/, run_logs/, steganalysis_logs/) находятся в .gitignore — они большие (последний содержит обученные контрольные точки детекторов на несколько ГБ) и полностью воспроизводимы.

Установка

root@kitploit:~
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

Для запуска LLM требуется GPU CUDA. Контрольные точки Llama и Gemma ограничены доступом на Hugging Face Hub, поэтому перед первым использованием выполните huggingface-cli login (после предоставления доступа к этим моделям).

Использование

Соберите пулы вопросов (один раз):

root@kitploit:~
python build_question_pool.py        # -> dolly15k_creative_questions.json
python build_norobots_pool.py        # -> norobots_creative_questions.json

Одиночный подробный прогон (проверка корректности):

root@kitploit:~
# 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

Полные эксперименты (с возобновлением — повторный запуск той же команды продолжит выполнение):

root@kitploit:~
# 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

Оценка незаметности (требуется ключ OpenAI в OPENAI_API_KEY или локальный файл OPENAI_API_key.txt, оба в .gitignore):

root@kitploit:~
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

Воспроизводимость

Каждый драйвер фиксирует свои сиды (перемешивание запросов, выборка полезной нагрузки, RNG выборки, torch.manual_seed) и потребляет запросы из детерминированного потока, учитывающего номер прохода, поэтому полный перебор воспроизводим от начала до конца и после прерывания возобновляется ровно с контрольной точки.

Примечания

  • Это исследовательский код, сопровождающий готовящуюся статью; API могут меняться.
  • Никогда не коммитьте секреты — OPENAI_API_key.txt, *.key и .env игнорируются.
Скачать инструмент
PathОписание
arithmetic.py, arithmetic_batch.pyСтего на арифметическом кодировании (одиночный + пакетный кодер/декодер потока).
discop.py, discop_batch.pyСтего-кодер Discop + общий PRG (одиночный + пакетный).
utils.pyОбщие вспомогательные функции (преобразование бит/целых чисел, энтропия, top-k, проверки завершения предложений).
protocol.pyМногопотоковый протокол HiTMS (отображение потоков, приманки, заголовки, заполнитель).
single_stream.pyОднопотоковый протокол (без обрамления; обрезание на L-м бите).
round_trip.py, batch_round_trip.pyМинимальные одноразовые демо/тесты round-trip.
multi_round_demo.pyЗапускатор многопотоковых прогонов (run_trial) + подробное демо одиночного прогона.
single_stream_demo.pyЗапускатор однопотоковых прогонов (run_single_trial) + демо.
run_sweep.pyМногопотоковый перебор по {model}×{pool}×{coder}, с возобновлением.
run_single_sweep.pyОднопотоковый аналог перебора.
run_scaling_sweep.pyПеребор масштабирования по количеству потоков (x ∈ {1,2,4,8,16,32,64}) для любых модель/пул/кодер.
run_x1_shards.py, run_x1_finish.sh, merge_x1_shards.pyАбляция x=1: разбиение одной ячейки на несколько GPU с последующим слиянием и проверками покрытия.
judge_quality.pyСкорер незаметности LLM-в-роли-судьи (один QA на вызов, с возобновлением).
gen_cover.pyГенерация «обложечного» текста (cover) без полезной нагрузки (эталон для стеганализа).
steganalysis_bert.pyДетектор cover-vs-stego (BERT / RoBERTa / DeBERTa-v3 / ELECTRA).
export_data.pyСоздаёт публикуемое зеркало только со сводными данными в data/.
build_question_pool.py, build_norobots_pool.pyСобирают пулы вопросов из наборов данных Hugging Face (HF).
*_creative_questions.jsonГотовые пулы вопросов.
legacy/Более ранние скрипты/пулы, сохранены для справки.