Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
reverse-SynthID-text — Rétro-ingénierie de SynthID pour le texte | Kitploit
Outils/GitHubGitHub/aloshdenny/reverse-synthid-text
Rétro-ingénierieStéganographieCryptographieApprentissage AutomatiqueArticles et RechercheApprentissage et ÉducationSécurité de l'IAAttaque Adversariale
GitHubaloshdenny/reverse-synthid-text

reverse-SynthID-text

Rétro-ingénierie de SynthID pour le texte

Voir le dépôt
972442il y a 10 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Ingénierie inverse du filigrane SynthID

Analyse du filigrane SynthID

Aperçu

Ce répertoire contient des outils pour analyser et supprimer les filigranes SynthID des textes générés par l'IA. Le filigrane a été développé par Google DeepMind et publié dans Nature (2024).

Comment fonctionne SynthID

Processus de filigranage

  1. Contexte N-gramme : Pour chaque position de jeton, SynthID considère les ngram_len - 1 jetons précédents (par défaut : 4 jetons) comme contexte.

  2. Calcul du hachage : Il calcule un hachage de :

    • Les jetons de contexte
    • Le jeton candidat suivant
    • Un ensemble de clés secrètes de filigranage (30 par défaut)
  3. Affectation de la valeur g : Le hachage est utilisé pour attribuer une valeur g binaire (0 ou 1) à chaque jeton suivant possible pour chaque couche de clé.

  4. Modification de probabilité : Les probabilités des jetons sont modifiées pour favoriser les jetons avec g-value = 1 :

    new_prob[i] = prob[i] * (1 + g[i] - mean(g * prob))
    
  5. Échantillonnage : Le modèle échantillonne à partir de la distribution modifiée.

Processus de détection

  1. Tokeniser le texte
  2. Pour chaque n-gramme, calculer les valeurs g en utilisant les mêmes clés
  3. Si la valeur g moyenne est significativement > 0,5, le texte est filigrané

Vulnérabilités

1. Attaque par paraphrase (la plus efficace)

Efficacité: 90-100%

Le filigrane est intégré dans la séquence spécifique de jetons, pas dans le sens. Paraphraser avec un modèle non filigrané régénère complètement la séquence de jetons.

from reverse_synthid import ParaphrasingAttack
attack = ParaphrasingAttack(model_name="gpt2")
clean_text = attack.paraphrase(watermarked_text)

2. Attaque par substitution de jetons

Efficacité: 50-70%

Remplacer les jetons par des synonymes brise les motifs n-grammes :

from reverse_synthid import TokenPerturbationAttack
attack = TokenPerturbationAttack()
clean_text = attack.substitute_synonyms(text, rate=0.3)

3. Attaque par homoglyphes

Efficacité: 95-100%

Remplacer les caractères par des caractères Unicode visuellement identiques brise le hachage :

from reverse_synthid import HomoglyphAttack
attack = HomoglyphAttack()
clean_text = attack.apply_homoglyphs(text, rate=0.1)

4. Décalage de limite de n-gramme

Efficacité: 30-50%

Insérer ou supprimer des mots décale toutes les limites suivantes des n-grammes :

from reverse_synthid import TokenPerturbationAttack
attack = TokenPerturbationAttack()
clean_text = attack.insert_fillers(text, rate=0.1)

Fichiers

  • reverse_synthid.py - Ensemble principal d'attaques avec plusieurs méthodes
  • analyze_watermark.py - Outil de détection et d'analyse de filigrane
  • test_removal.py - Script de test démontrant la suppression du filigrane

Utilisation

Analyser le filigrane

python analyze_watermark.py --input text.txt --verbose

Supprimer le filigrane

# Using paraphrasing (most effective, requires model)
python analysis/reverse_synthid.py --input text.txt --output clean.txt --method paraphrase

# Using perturbation (no model needed)
python analysis/reverse_synthid.py --input text.txt --output clean.txt --method perturb

# Using combined attack
python reverse_synthid.py --input text.txt --output clean.txt --method combined

Exécuter le test

python analysis/test_removal.py

Comparaison du texte filigrané SynthID et du texte défiligrané

Comparaison

Détails techniques

Point clé : Le filigrane est fragile

Le filigrane repose sur :

  1. Séquences exactes de jetons - Tout changement de jetons affecte les n-grammes
  2. Fenêtres de contexte - L'insertion de jetons décale tous les contextes
  3. Fonction de hachage - Des octets différents produisent des hachages différents

Pourquoi la paraphrase fonctionne

Lorsque vous paraphrasez un texte :

  1. Le sens sémantique est préservé
  2. Mais les jetons exacts sont complètement différents
  3. Les hachages des n-grammes sont complètement différents
  4. Le motif des valeurs g est détruit

Analyse théorique

Pour un texte de longueur N avec une force de filigrane W :

  • Taux de substitution r réduit le signal d'environ 1 - (1-r)^(ngram_len)
  • Taux d'insertion r décale N*r limites de n-grammes
  • La paraphrase définit essentiellement W → 0 (régénération complète)

Limitations

  1. La paraphrase peut modifier les nuances de sens
  2. Les attaques simples peuvent être détectables
  3. Les futurs filigranes pourraient être plus robustes

Avertissement

Ce code est uniquement à des fins éducatives et de recherche. Il démontre les vulnérabilités des schémas de filigranage pour aider à développer des méthodes plus robustes.

Références

  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
Télécharger l’outil