Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
SwordStamp — Filigrane sémantique avec détection robuste à l’ordre sur des unités sous-phrastiques | Kitploit
Outils/GitHubGitHub/d-diaa/swordstamp
CryptographieArticles et RechercheApprentissage et ÉducationRessources OrganiséesSécurité de l'IA
GitHubd-diaa/swordstamp

SwordStamp

Filigrane sémantique avec détection robuste à l’ordre sur des unités sous-phrastiques

Voir le dépôt
1il y a 3 joursPas encore vérifié

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

SwordStamp

SwordStamp ajoute une détection robuste à l'ordre et des unités de portée sémantique aux filigranes sémantiques basés sur les plongements (embeddings). Cet artefact contient la configuration exacte de l'article, le code de génération et de détection, la suite d'attaques inchangée, l'évaluation de la qualité, ainsi que l'extraction et le traçage déterministes des résultats.

Résultats principaux

À un taux de faux positifs de 5 % et une exigence de préservation du contenu de 90 %, l'attaque par déplacement de plongement spécifique au schéma (EDA-S) atteint :

FiligraneTaux de réussite de l'attaque EDA-S
SemStamp47,9 %
k-SemStamp33,3 %
PMark46,1 %
SAMark32,6 %
SwordStamp18,7 %
k-SwordStamp10,8 %

Par rapport à leurs références publiées, SwordStamp et k-SwordStamp réduisent le succès de l'EDA-S de 29,2 et 22,5 points de pourcentage, avec des coûts de fidélité propre de 1,8 et 4,4 points. Leurs taux de détection propre sont de 94,9 % et 97,0 %. Sous le test de stress EDA-D avec accès au détecteur plus puissant, le succès maximal limité par la qualité est de 39,7 % sur k-SwordStamp contre 65,5 % sur k-SemStamp.

Succès de l'attaque sans boîte la plus forte selon les exigences de préservation du contenu

Fidélité propre versus succès de l'attaque sans boîte la plus forte

Ces résultats couvrent les continuations de nouvelles en anglais, un modèle de fournisseur, deux encodeurs de fournisseur et une paire paraphraseur/substitut EDA.

Tracer un bundle compilé

visualization ne consomme que le bundle CSV/Parquet compilé. Il échoue sur les cellules manquantes de l'article plutôt que de dessiner une figure partielle.

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

Cela écrit des tables auditable sous results/paper/tables/ et sept figures en PNG et PDF sous results/paper/figures/. La branche de révision anonyme inclut le bundle compilé ; une exécution complète sur la branche de publication crée les mêmes fichiers avec python -m visualization compile.

Attaque par déplacement de plongement (EDA)

L'attaque par déplacement de plongement (EDA) est une attaque de paraphrase adaptative sur l'ensemble du texte. À chaque unité de sortie, elle échantillonne K continuations et conserve le candidat avec le plus grand déplacement cosinus par rapport à son ancre source sous un encodeur substitut. Comme chaque candidat continue le préfixe de réécriture complet, un seul objectif peut reformuler le contenu, le réorganiser et diviser ou fusionner les unités de détection.

L'EDA sans boîte voit le texte marqué et la conception publique du filigrane. Elle n'interroge pas le détecteur ni le générateur et ne reçoit aucune clé secrète, encodeur de fournisseur ou oracle de qualité.

Pour l'ancrage par sac, l'article utilise attack.bag_agg=min : maximiser la distance par rapport à l'ancre source la plus proche. Les exécutions sans boîte rapportées utilisent Qwen/Qwen2.5-3B-Instruct, BAAI/bge-base-en-v1.5, K={1,2,4,8,16,32,64}, température 1,0, top-p 0,95, au plus 96 jetons par candidat et au plus 512 jetons de réécriture.

Les autres concepteurs de filigranes peuvent appeler EDA directement :

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 ; utilisez "bag" pour une conception robuste à l'ordre
    bag_agg="min",
    segmentation_type="sentence",
    segmentation_backend="nltk",
)

Pour l'EDA-S conscient de SwordStamp de l'article, définissez anchor="bag", segmentation_type="semspan", semcut_max_words=15 et semcut_window=5. Dans ce dépôt, l'équivalent en CLI est :

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 est toujours le corpus de base et PRESET identifie la cellule filigranée. Voir attacks/README.md pour toutes les attaques conservées et les champs de configuration.

Déplacement substitut versus déplacement de l'encodeur du fournisseur

Matrice exacte de l'article

config/paper.py est la source unique de vérité. Pour chacun de LSH et k-means, scripts/experiments/swordstamp.sh exécute cette échelle additive à cinq niveaux avec 64 candidats du fournisseur :

  1. rejet dépendant du contexte sur les phrases ;
  2. sélection du meilleur parmi 64 ;
  3. un ensemble valide fixe ;
  4. classement conscient de la diversité ; et
  5. portées sémantiques avec un maximum de 15 mots et une fenêtre de comparaison de 5.

La grille ne contient que ces dix cellules et une référence sans filigrane. PMark est en ligne uniquement ; SAMark utilise un motif de drapeau par exécution. Les budgets EDA-D sont K={4,8,16,32,64}.

Les sous-modules de comparaison adaptent les sources d'évaluation publiques PMark et SAMark uniquement à leurs frontières de jeu de données/résultats et au calibrage partagé des faux positifs ; les algorithmes de filigrane sont inchangés.

Flux expérimental complet

Les prérequis sont Git, uv, Python 3.11, CUDA pour les exécutions de modèles, l'accès aux révisions de modèles épinglées et un stockage temporaire.

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. Préparez les partitions C4 déterministes et disjointes :

    root@kitploit:~
    uv run --frozen python scripts/prepare_c4.py --output-dir data
    
  2. Installez et configurez le planificateur épinglé. L'installateur imprime ses effets secondaires au niveau utilisateur avant de modifier quoi que ce soit :

    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. Prévisualisez, puis soumettez chaque partition physique :

    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
    # Supprimez DRY_RUN=1 après avoir inspecté les DAG exacts.
    
  4. Compilez, extrayez et rendez :

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

Le planificateur fournit CUDA_VISIBLE_DEVICES ; ne sélectionnez pas les GPU en interrogeant nvidia-smi. La reproduction complète est une charge de travail GPU de plusieurs jours. ARTIFACT.md liste le matériel, les révisions de modèles, les sorties attendues et la carte revendication-commande. scripts/experiments/README.md documente le comportement de reprise et de forçage.

Structure et licence

  • config/, segmentation/, sampling/, watermarking/ : SwordStamp.
  • attacks/ : EDA et la suite d'attaques conservée.
  • quality/ : évaluation de la fidélité et de la préservation du contenu.
  • visualization/ : compilation propre à l'article, tables et figures Matplotlib.
  • scripts/experiments/ : flux de travail exacts de l'article soutenus par le planificateur.
  • external/ : sous-modules de comparaison PMark et SAMark épinglés.

Le code propriétaire est publié sous la licence MIT. Les modèles, jeux de données, textes générés et sous-modules de comparaison conservent leurs propres conditions ; voir THIRD_PARTY.md.

Citation

Le logiciel SwordStamp est écrit par Abdulrahman Diaa. Les auteurs de l'article sont Abdulrahman Diaa, Jonathan Petit et Florian Kerschbaum. Les métadonnées de citation lisibles par machine se trouvent dans CITATION.cff.

Télécharger l’outil
VarianteAncre et unitéConfiguration
EDA-Pphrase positionnelleadaptive, anchor=positional, unité d'attaque sentence
EDA-Sconception publique de la ciblephrases positionnelles pour SemStamp, k-SemStamp et PMark ; sac/phrase pour SAMark ; sac/portée sémantique pour les deux variantes SwordStamp
EDA-Ddétecteur du fournisseuroracle ; hérite de l'encodeur, de la partition et de la segmentation du défenseur