Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
SwordStamp — Marcatura d'acqua semantica con rilevamento robusto all'ordine su unità sub-frasali | Kitploit
Strumenti/GitHubGitHub/d-diaa/swordstamp
CrittografiaPaper e RicercaApprendimento e FormazioneRisorse CurateSicurezza dell'IA
GitHubd-diaa/swordstamp

SwordStamp

Marcatura d'acqua semantica con rilevamento robusto all'ordine su unità sub-frasali

Vedi Repository
302 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

SwordStamp

SwordStamp aggiunge unità di rilevamento robuste all'ordine e di span semantici ai watermark semantici basati su embedding. Questo artefatto contiene l'esatta configurazione del paper, il codice di generazione e rilevamento, la suite di attacchi invariata, la valutazione della qualità e l'estrazione deterministica dei risultati e la generazione dei grafici.

Paper: Semantic Watermarking with Order-Robust Detection over Sub-sentence Units (arXiv:2608.27666)

Risultati principali

Con un tasso di falsi positivi del 5% e un requisito di conservazione del contenuto del 90%, l'attacco di spostamento dell'embedding specifico per schema (EDA-S) ottiene:

WatermarkTasso di successo dell'attacco EDA-S
SemStamp47.9%
k-SemStamp33.3%
PMark46.1%
SAMark32.6%
SwordStamp18.7%
k-SwordStamp10.8%

Rispetto alle loro baseline pubblicate, SwordStamp e k-SwordStamp riducono il successo di EDA-S di 29.2 e 22.5 punti percentuali, con costi di fedeltà in condizioni pulite di 1.8 e 4.4 punti. I loro tassi di rilevamento in condizioni pulite sono 94.9% e 97.0%. Nel più forte stress test EDA-D con accesso al rilevatore, il successo massimo vincolato dalla qualità è del 39.7% su k-SwordStamp contro il 65.5% su k-SemStamp.

Successo del più forte attacco no-box rispetto ai requisiti di conservazione del contenuto

Fedeltà in condizioni pulite rispetto al successo del più forte attacco no-box

Questi risultati coprono continuazioni di notizie in inglese, un modello provider, due encoder provider e una coppia parafrasatore/surrogato EDA.

Tracciare un bundle compilato

visualization consuma solo il bundle compilato CSV/Parquet. Fallisce in caso di celle del paper mancanti anziché disegnare una figura parziale.

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

Questo scrive tabelle verificabili in results/paper/tables/ e sette figure in PNG e PDF in results/paper/figures/. Il ramo di revisione anonima include il bundle compilato; un'esecuzione completa sul ramo di rilascio crea gli stessi file con python -m visualization compile.

Attacco di spostamento dell'embedding (EDA)

L'attacco di spostamento dell'embedding (EDA) è un attacco adattivo di parafrasi dell'intero testo. A ogni unità di output campiona K continuazioni e mantiene il candidato con il maggiore spostamento coseno dal suo ancoraggio di origine sotto un encoder surrogato. Poiché ogni candidato continua il prefisso di riscrittura completo, un unico obiettivo può riformulare il contenuto, riordinarlo e dividere o unire le unità del rilevatore.

EDA no-box vede il testo marcato e il design pubblico della filigrana. Non interroga il rilevatore o il generatore e non riceve alcuna chiave segreta, encoder del provider, o oracolo di qualità.

VarianteAncoraggio e unitàConfigurazione
EDA-Pfrase posizionaleadaptive, anchor=positional, unità dell'attaccante sentence
EDA-Sdesign pubblico del targetfrasi posizionali per SemStamp, k-SemStamp e PMark; bag/sentence per SAMark; bag/semspan per entrambe le varianti di SwordStamp
EDA-Drilevatore del provideroracle; eredita l'encoder, la partizione e la segmentazione del difensore

Per l'ancoraggio bag, il paper usa attack.bag_agg=min: massimizza la distanza dal più vicino ancoraggio di origine. Le esecuzioni no-box riportate usano Qwen/Qwen2.5-3B-Instruct, BAAI/bge-base-en-v1.5, K={1,2,4,8,16,32,64}, temperatura 1.0, top-p 0.95, al massimo 96 token per candidato e al massimo 512 token di riscrittura.

Altri progettisti di filigrana possono chiamare EDA direttamente:

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; use "bag" for an order-robust design
    bag_agg="min",
    segmentation_type="sentence",
    segmentation_backend="nltk",
)

Per l'EDA-S di SwordStamp descritto nel paper, impostare anchor="bag", segmentation_type="semspan", semcut_max_words=15 e semcut_window=5. All'interno di questo repository la CLI equivalente è:

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 è sempre il corpus di base e PRESET identifica la cella con watermark. Consultare attacks/README.md per tutti gli attacchi mantenuti e i campi di configurazione.

Spostamento surrogato rispetto allo spostamento del codificatore del fornitore

Matrice esatta del paper

config/paper.py è l'unica fonte di verità. Per ciascuno di LSH e k-means, scripts/experiments/swordstamp.sh esegue questa scala additiva a cinque livelli con 64 candidati provider:

  1. rifiuto contesto-dipendente sulle frasi;
  2. selezione best-of-64;
  3. un insieme valido fisso;
  4. ranking consapevole della diversità; e
  5. span semantici con massimo 15 parole e finestra di confronto 5.

La griglia contiene solo queste dieci celle e una baseline senza watermark. PMark è solo online; SAMark usa un pattern di flag per esecuzione. I budget EDA-D sono K={4,8,16,32,64}.

I sottomoduli di confronto adattano le fonti di valutazione pubbliche PMark e SAMark solo ai loro confini di dataset/risultati e alla calibrazione condivisa dei falsi positivi; gli algoritmi di watermarking sono invariati.

Flusso completo dell'esperimento

I prerequisiti sono Git, uv, Python 3.11, CUDA per esecuzioni del modello, accesso alle revisioni dei modelli fissate e storage temporaneo.

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. Preparare le partizioni C4 deterministiche e disgiunte:

    uv run --frozen python scripts/prepare_c4.py --output-dir data
    
  2. Installa e configura lo scheduler bloccato alla versione specificata. L'installer stampa i suoi effetti collaterali a livello utente prima di modificare qualsiasi cosa:

    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. Visualizza l'anteprima, poi invia ogni shard fisico:

Scarica lo strumento