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

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

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

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

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

Категории

Все категории
Loading categories
reverse-SynthID-text — обратная разработка SynthID для текста | Kitploit
Инструменты/GitHubGitHub/aloshdenny/reverse-synthid-text
Обратная инженерияСтеганографияКриптографияМашинное ОбучениеСтатьи и ИсследованияОбучение и ОбразованиеБезопасность ИИСостязательная Атака
GitHubaloshdenny/reverse-synthid-text

reverse-SynthID-text

обратная разработка SynthID для текста

Репозиторий
972488 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

Обратная разработка водяного знака SynthID

Анализ водяного знака SynthID

Обзор

Этот каталог содержит инструменты для анализа и удаления водяных знаков SynthID из текста, созданного ИИ. Водяной знак был разработан Google DeepMind и опубликован в Nature (2024).

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

Процесс нанесения водяного знака

  1. N-граммный контекст: Для каждой позиции токена SynthID учитывает предыдущие ngram_len - 1 токенов (по умолчанию: 4 токена) в качестве контекста.

  2. Вычисление хеша: Вычисляется хеш от:

    • Токенов контекста
    • Кандидатного следующего токена
    • Набора секретных ключей водяного знака (по умолчанию 30)
  3. Назначение G-значения: Хеш используется для присвоения бинарного g-значения (0 или 1) каждому возможному следующему токену для каждого уровня ключа.

  4. Изменение вероятности: Вероятности токенов изменяются в пользу токенов с g-значением = 1:

    root@kitploit:~
    new_prob[i] = prob[i] * (1 + g[i] - mean(g * prob))
    
  5. Сэмплирование: Модель производит выборку из модифицированного распределения.

Процесс обнаружения

  1. Токенизация текста
  2. Для каждой n-граммы вычисление g-значений с использованием тех же ключей
  3. Если среднее g-значение значительно > 0.5, текст содержит водяной знак

Уязвимости

1. Атака перефразированием (наиболее эффективна)

Эффективность: 90-100%

Водяной знак встроен в конкретную последовательность токенов, а не в смысл. Перефразирование с помощью модели без водяного знака полностью перегенерирует последовательность токенов.

root@kitploit:~
from reverse_synthid import ParaphrasingAttack
attack = ParaphrasingAttack(model_name="gpt2")
clean_text = attack.paraphrase(watermarked_text)

2. Атака заменой токенов

Эффективность: 50-70%

Замена токенов синонимами нарушает n-граммные паттерны:

root@kitploit:~
from reverse_synthid import TokenPerturbationAttack
attack = TokenPerturbationAttack()
clean_text = attack.substitute_synonyms(text, rate=0.3)

3. Атака омоглифами

Эффективность: 95-100%

Замена символов на визуально идентичные символы Unicode нарушает хеш:

root@kitploit:~
from reverse_synthid import HomoglyphAttack
attack = HomoglyphAttack()
clean_text = attack.apply_homoglyphs(text, rate=0.1)

4. Сдвиг границ n-грамм

Эффективность: 30-50%

Вставка или удаление слов сдвигает все последующие границы n-грамм:

root@kitploit:~
from reverse_synthid import TokenPerturbationAttack
attack = TokenPerturbationAttack()
clean_text = attack.insert_fillers(text, rate=0.1)

Файлы

  • reverse_synthid.py — Основной набор инструментов для атак с несколькими методами
  • analyze_watermark.py — Инструмент обнаружения и анализа водяных знаков
  • test_removal.py — Тестовый скрипт, демонстрирующий удаление водяного знака

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

Анализ водяного знака

root@kitploit:~
python analyze_watermark.py --input text.txt --verbose

Удаление водяного знака

root@kitploit:~
# Использование перефразирования (наиболее эффективно, требует модель)
python analysis/reverse_synthid.py --input text.txt --output clean.txt --method paraphrase

# Использование возмущения (не требует модели)
python analysis/reverse_synthid.py --input text.txt --output clean.txt --method perturb

# Использование комбинированной атаки
python reverse_synthid.py --input text.txt --output clean.txt --method combined

Запуск теста

root@kitploit:~
python analysis/test_removal.py

Сравнение текста с водяным знаком SynthID и без него

Сравнение

Технические детали

Ключевое замечание: водяной знак хрупок

Водяной знак основан на:

  1. Точных последовательностях токенов — любое изменение токенов влияет на n-граммы
  2. Окнах контекста — вставка токенов сдвигает все контексты
  3. Хеш-функции — разные байты дают разные хеши

Почему перефразирование работает

При перефразировании текста:

  1. Семантический смысл сохраняется
  2. Но точные токены полностью отличаются
  3. N-граммные хеши полностью отличаются
  4. Паттерн g-значений уничтожается

Теоретический анализ

Для текста длины N с силой водяного знака W:

  • Скорость замены r снижает сигнал примерно на 1 - (1-r)^(ngram_len)
  • Скорость вставки r сдвигает N*r границ n-грамм
  • Перефразирование по существу устанавливает W → 0 (полная регенерация)

Ограничения

  1. Перефразирование может изменить нюансы смысла
  2. Простые атаки могут быть обнаружены
  3. Будущие водяные знаки могут быть более устойчивыми

Отказ от ответственности

Этот код предназначен только для образовательных и исследовательских целей. Он демонстрирует уязвимости схем водяных знаков, чтобы помочь в разработке более устойчивых методов.

Ссылки

  1. Dathathri et al. "Scalable watermarking for identifying large language model outputs." Nature 634, 818-823 (2024).
  2. https://github.com/google-deepmind/synthid-text
Скачать инструмент