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

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

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

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

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

Категории

Все категории
Loading categories
RRC_steganography | Kitploit
Инструменты/GitHubGitHub/ryehr/rrc_steganography
СтеганографияКриптографияМашинное ОбучениеСтатьи и ИсследованияОбучение и ОбразованиеБезопасность ИИ
GitHubryehr/rrc_steganography

RRC_steganography

Репозиторий
614 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

RRC-стеганография

Стеганография на основе вращательного диапазонного кодирования (RRC) — эффективный и доказуемо безопасный лингвистический стеганографический метод, который встраивает секретные сообщения в тексты на естественном языке, генерируемые большими языковыми моделями.

Статья: Эффективная доказуемо безопасная лингвистическая стеганография с помощью диапазонного кодирования

Как это работает

ШагОписание
Встраивание (Алгоритм 3)Преобразует секретное сообщение в десятичное значение и итеративно вращает его в сужающемся интервале, направляемом распределением вероятностей LM и смещением, генерируемым PRNG. Каждый шаг вращения порождает один токен.
Извлечение (Алгоритм 4)Повторно запускает LM на стеготексте для восстановления границ интервала, затем выполняет обратное вращение к исходному десятичному значению и бинаризует его.

Механизм вращения решает две проблемы стандартной стеганографии на основе диапазонного кодирования:

  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. Встраивание секретного сообщения

Подготовьте файл промптов 0.Prompts.tsv с колонками idx и text, затем выполните:

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.

Аргументы командной строки

RRC_embed.py

RRC_extract.py

Техническое примечание: операция по модулю в Decimal

Тип Decimal в Python использует усечённое деление для оператора %, что может возвращать отрицательные остатки (например, Decimal('-19672') % Decimal('65536') → -19672 вместо 45864). В данной реализации используется вспомогательная функция decimal_mod, которая гарантирует, что результат всегда находится в [0, m):

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

⚠️ Для надёжного извлечения секрета некоторые операции (sort, cumsum) переносятся на CPU с точностью float64, чтобы избежать недетерминизма CUDA. Это обменивает часть скорости на гарантированную согласованность кодирования и декодирования.

Скачать инструмент
АргументПо умолчаниюОписание
--language_modelmeta-llama/Llama-3.1-8BИдентификатор модели HuggingFace
--bit_length128Длина секретного сообщения в битах
--top_k-1Усечение Top-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-файлу, полученному от кодера