Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
SwordStamp — 의미론적 워터마킹: 하위 문장 단위에 대한 순서-견고 탐지 | Kitploit
도구/GitHubGitHub/d-diaa/swordstamp
CryptographyPapers & ResearchLearning & EducationCurated ResourcesAI Security
GitHubd-diaa/swordstamp

SwordStamp

의미론적 워터마킹: 하위 문장 단위에 대한 순서-견고 탐지

저장소 보기
3일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

SwordStamp

SwordStamp은 임베딩 기반 시맨틱 워터마크에 순서-강건(robust) 탐지와 의미적 스팬(span) 단위를 추가합니다. 이 아티팩트에는 논문의 정확한 구성, 생성 및 탐지 코드, 변경되지 않은 공격 스위트, 품질 평가, 결정적 결과 추출 및 플로팅이 포함되어 있습니다.

주요 결과

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 스트레스 테스트에서, 최대 품질 게이트 성공률은 k-SemStamp의 65.5% 대비 k-SwordStamp에서 39.7%입니다.

콘텐츠 보존 요구사항별 최강 no-box 공격 성공률

클린 충실도 대비 최강 no-box 공격 성공률

이 결과는 영어 뉴스 연속 생성, 하나의 제공자 모델, 두 개의 제공자 인코더, 하나의 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/ 아래에 감사 가능한 테이블을, results/paper/figures/ 아래에 PNG 및 PDF 형식의 7개 그림을 생성합니다. 익명 리뷰 브랜치에는 컴파일된 번들이 포함되어 있습니다. 릴리스 브랜치에서 전체 실행 시 python -m visualization compile로 동일한 파일이 생성됩니다.

임베딩 변위 공격(EDA)

임베딩 변위 공격(EDA)은 적응형 전체 텍스트 패러프레이징 공격입니다. 각 출력 단위에서 K개의 연속 생성을 샘플링하고, 서로게이트 인코더 하에서 소스 앵커로부터 코사인 변위가 가장 큰 후보를 유지합니다. 모든 후보가 전체 재작성 접두사를 계속하므로, 하나의 목적 함수로 콘텐츠를 재구성하고, 재정렬하며, 탐지기 단위를 분할하거나 병합할 수 있습니다.

No-box EDA는 마킹된 텍스트와 공개 워터마크 설계를 확인합니다. 탐지기나 생성기를 쿼리하지 않으며, 비밀 키, 제공자 인코더, 품질 오라클을 받지 않습니다.

Bag 앵커링의 경우, 논문은 attack.bag_agg=min을 사용합니다: 가장 가까운 소스 앵커로부터의 거리를 최대화합니다. 보고된 no-box 실행은 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",
)

논문의 SwordStamp 인지 EDA-S의 경우, 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개의 제공자 후보로 다음 5단계 가산 사다리를 실행합니다:

  1. 문장에 대한 컨텍스트 의존 거부;
  2. 64개 중 최선 선택;
  3. 고정 유효 집합;
  4. 다양성 인지 랭킹; 및
  5. 최대 15단어, 비교 창 5의 의미적 스팬.

그리드에는 이 10개 셀과 하나의 무워터마크 기준선만 포함됩니다. 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
    # 정확한 DAG 검사 후 DRY_RUN=1 제거.
    
  4. 컴파일, 추출, 렌더링:

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

스케줄러가 CUDA_VISIBLE_DEVICES를 제공합니다. nvidia-smi 프로빙으로 GPU를 선택하지 마세요. 전체 재현은 며칠이 걸리는 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 소프트웨어는 Abdulrahman Diaa가 저작했습니다. 논문 저자는 Abdulrahman Diaa, Jonathan Petit, Florian Kerschbaum입니다. 기계 판독 가능한 인용 메타데이터는 CITATION.cff에 있습니다.

도구 다운로드
변형앵커 및 단위구성
EDA-P위치 기반 문장adaptive, anchor=positional, 공격자 단위 sentence
EDA-S대상의 공개 설계SemStamp, k-SemStamp, PMark용 위치 기반 문장; SAMark용 bag/문장; 두 SwordStamp 변형 모두 bag/semspan
EDA-D제공자 탐지기oracle; 방어자 인코더, 파티션, 세그멘테이션 상속