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

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

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

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

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

Категории

Все категории
Loading categories
SwordStamp — Семантический водяной знак с устойчивым к порядку обнаружением на уровне субпредложений | Kitploit
Инструменты/GitHubGitHub/d-diaa/swordstamp
КриптографияСтатьи и ИсследованияОбучение и ОбразованиеПодобранные РесурсыБезопасность ИИ
GitHubd-diaa/swordstamp

SwordStamp

Семантический водяной знак с устойчивым к порядку обнаружением на уровне субпредложений

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

Популярное

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

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

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

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

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

SwordStamp

SwordStamp добавляет устойчивое к порядку обнаружение и семантические единицы-диапазоны к семантическим водяным знакам на основе эмбеддингов. Этот артефакт содержит точную конфигурацию из статьи, код генерации и обнаружения, неизменённый набор атак, оценку качества, а также детерминированное извлечение результатов и построение графиков.

Ключевые результаты

При 5% уровне ложных срабатываний и требовании 90% сохранения контента, специфичная для схемы атака смещения эмбеддингов (EDA-S) достигает:

Водяной знакУровень успеха атаки EDA-S
SemStamp47.9%
k-SemStamp33.3%
PMark46.1%
SAMark32.6%
SwordStamp18.7%
k-SwordStamp10.8%

По сравнению с опубликованными базовыми показателями, SwordStamp и k-SwordStamp снижают успех EDA-S на 29.2 и 22.5 процентных пункта при затратах на чистую точность в 1.8 и 4.4 пункта. Их показатели чистого обнаружения составляют 94.9% и 97.0%. При более строгом стресс-тесте EDA-D с доступом к детектору, максимальный успех с учётом качества составляет 39.7% для k-SwordStamp против 65.5% для k-SemStamp.

Сильнейшая атака без доступа к детектору в зависимости от требований сохранения контента

Чистая точность в сравнении с сильнейшей атакой без доступа к детектору

Эти результаты охватывают продолжения новостей на английском языке, одну модель провайдера, два энкодера провайдера и одну пару парафразер/суррогат EDA.

Построение графиков из скомпилированного пакета

visualization использует только скомпилированный пакет CSV/Parquet. Он завершается ошибкой при отсутствии ячеек из статьи, а не рисует частичный график.

root@kitploit:~
uv sync --frozen --only-group plot --no-install-project
uv run --no-sync python -m visualization extract \
  --bundle results/paper --output results/paper
uv run --no-sync python -m visualization render \
  --bundle results/paper --output results/paper

Это записывает проверяемые таблицы в results/paper/tables/ и семь графиков в форматах PNG и PDF в results/paper/figures/. Ветка анонимного рецензирования включает скомпилированный пакет; полный запуск на ветке релиза создаёт те же файлы с помощью python -m visualization compile.

Атака смещения эмбеддингов (EDA)

Атака смещения эмбеддингов (EDA) — это адаптивная атака парафразирования всего текста. На каждом выходном блоке она выбирает K продолжений и сохраняет кандидата с наибольшим косинусным смещением от исходного якоря под суррогатным энкодером. Поскольку каждый кандидат продолжает полный префикс переписывания, одна целевая функция может перефразировать контент, переупорядочивать его и разделять или объединять единицы детектора.

EDA без доступа к детектору видит размеченный текст и публичный дизайн водяного знака. Она не запрашивает детектор или генератор и не получает секретный ключ, энкодер провайдера или оракул качества.

Для якорения bag в статье используется attack.bag_agg=min: максимизация расстояния от ближайшего исходного якоря. Сообщённые запуски без доступа к детектору используют Qwen/Qwen2.5-3B-Instruct, BAAI/bge-base-en-v1.5, K={1,2,4,8,16,32,64}, температуру 1.0, top-p 0.95, не более 96 токенов на кандидата и не более 512 токенов переписывания.

Другие разработчики водяных знаков могут вызывать EDA напрямую:

root@kitploit:~
from attacks.paraphrasing.adaptive import adaptive_attack_paraphrase

attacked = adaptive_attack_paraphrase(
    texts,
    base_model="Qwen/Qwen2.5-3B-Instruct",
    surrogate_model="BAAI/bge-base-en-v1.5",
    num_candidates=32,
    anchor="positional",       # EDA-P; используйте "bag" для устойчивого к порядку дизайна
    bag_agg="min",
    segmentation_type="sentence",
    segmentation_backend="nltk",
)

Для EDA-S с учётом SwordStamp из статьи установите anchor="bag", segmentation_type="semspan", semcut_max_words=15 и semcut_window=5. Внутри этого репозитория эквивалентный CLI:

root@kitploit:~
uv run python -m attacks DATA_PATH --config PRESET \
  --set attack.paraphraser=adaptive \
  --set attack.custom_model=Qwen/Qwen2.5-3B-Instruct \
  --set attack.surrogate_model=BAAI/bge-base-en-v1.5 \
  --set attack.num_candidates=32 \
  --set attack.anchor=bag --set attack.bag_agg=min \
  --set segmentation.attacker_type=semspan \
  --set segmentation.attacker_backend=nltk

DATA_PATH — это всегда базовый корпус, а PRESET идентифицирует ячейку с водяным знаком. См. attacks/README.md для всех сохранённых атак и полей конфигурации.

Смещение суррогата в сравнении со смещением энкодера провайдера

Точная матрица из статьи

config/paper.py — единственный источник истины. Для каждого из LSH и k-means scripts/experiments/swordstamp.sh запускает эту пятиступенчатую аддитивную лестницу с 64 кандидатами провайдера:

  1. контекстно-зависимое отклонение по предложениям;
  2. выбор лучшего из 64;
  3. фиксированный допустимый набор;
  4. ранжирование с учётом разнообразия; и
  5. семантические диапазоны с максимум 15 словами и окном сравнения 5.

Сетка содержит только эти десять ячеек и один базовый вариант без водяного знака. PMark работает только онлайн; SAMark использует один шаблон флага на запуск. Бюджеты EDA-D: K={4,8,16,32,64}.

Сравнительные подмодули адаптируют публичные источники оценки PMark и SAMark только на границах наборов данных/результатов и общей калибровке ложных срабатываний; алгоритмы водяных знаков не изменены.

Полный поток эксперимента

Предварительные требования: Git, uv, Python 3.11, CUDA для запуска моделей, доступ к закреплённым ревизиям моделей и временное хранилище.

root@kitploit:~
git clone --recurse-submodules [email protected]:D-Diaa/SwordStamp.git
cd SwordStamp
bash scripts/setup.sh
uv run --frozen python scripts/check_artifact.py
  1. Подготовьте детерминированные, непересекающиеся разделы C4:

    root@kitploit:~
    uv run --frozen python scripts/prepare_c4.py --output-dir data
    
  2. Установите и настройте закреплённый планировщик. Установщик выводит свои побочные эффекты на уровне пользователя перед внесением изменений:

    root@kitploit:~
    bash scripts/install_gpu_scheduler.sh --print-plan
    bash scripts/install_gpu_scheduler.sh --yes
    gpu-scheduler init --gpus 0,1
    gpu-scheduler start
    
  3. Предпросмотрите, затем отправьте каждый физический шард:

    root@kitploit:~
    for shard in c4-val-def-256 c4-val-def-256b c4-val-def-512; do
      BASE="data/$shard" DRY_RUN=1 bash scripts/experiments/swordstamp.sh
      BASE="data/$shard" DRY_RUN=1 bash scripts/experiments/pmark.sh
      BASE="data/$shard" DRY_RUN=1 bash scripts/experiments/samark.sh
    done
    # Удалите DRY_RUN=1 после проверки точных DAG.
    
  4. Скомпилируйте, извлеките и отобразите:

    root@kitploit:~
    uv run --frozen python -m visualization all \
      --bundle results/paper --output results/paper
    

Планировщик предоставляет CUDA_VISIBLE_DEVICES; не выбирайте GPU путём опроса nvidia-smi. Полное воспроизведение — это многодневная GPU-нагрузка. ARTIFACT.md перечисляет оборудование, ревизии моделей, ожидаемые результаты и карту «утверждение-команда». scripts/experiments/README.md документирует поведение возобновления и принудительного выполнения.

Структура и лицензия

  • config/, segmentation/, sampling/, watermarking/: SwordStamp.
  • attacks/: EDA и сохранённый набор атак.
  • quality/: оценка точности и сохранения контента.
  • visualization/: компиляция только для статьи, таблицы и графики Matplotlib.
  • scripts/experiments/: точные рабочие процессы статьи на основе планировщика.
  • external/: закреплённые сравнительные подмодули PMark и SAMark.

Собственный код распространяется под лицензией MIT. Модели, наборы данных, сгенерированный текст и сравнительные подмодули сохраняют свои собственные условия; см. THIRD_PARTY.md.

Цитирование

Программное обеспечение SwordStamp создано Абдулрахманом Диаа. Авторы статьи: Абдулрахман Диаа, Джонатан Пети и Флориан Кершбаум. Машиночитаемые метаданные цитирования находятся в CITATION.cff.

Скачать инструмент
ВариантЯкорь и единицаКонфигурация
EDA-Pпозиционное предложениеadaptive, anchor=positional, единица атакующего sentence
EDA-Sпубличный дизайн целипозиционные предложения для SemStamp, k-SemStamp и PMark; bag/sentence для SAMark; bag/semspan для обоих вариантов SwordStamp
EDA-Dдетектор провайдераoracle; наследует энкодер защиты, разбиение и сегментацию