Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
reverse-SynthID-text — 텍스트용 SynthID 리버스 엔지니어링 | Kitploit
도구/GitHubGitHub/aloshdenny/reverse-synthid-text
Reverse EngineeringSteganographyCryptographyMachine LearningPapers & ResearchLearning & EducationAI SecurityAdversarial Attack
GitHubaloshdenny/reverse-synthid-text

reverse-SynthID-text

텍스트용 SynthID 리버스 엔지니어링

저장소 보기
97244210개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

SynthID 워터마크 리버스 엔지니어링

SynthID 워터마크 분석

개요

이 디렉토리는 AI 생성 텍스트에서 SynthID 워터마크를 분석하고 제거하기 위한 도구를 포함합니다. 이 워터마크는 Google DeepMind가 개발하여 Nature (2024)에 게재되었습니다.

SynthID 작동 방식

워터마킹 과정

  1. N-gram 컨텍스트: 각 토큰 위치에 대해 SynthID는 이전 ngram_len - 1개 토큰(기본값: 4개 토큰)을 컨텍스트로 간주합니다.

  2. 해시 계산: 다음 항목들의 해시를 계산합니다:

    • 컨텍스트 토큰
    • 후보 다음 토큰
    • 비밀 워터마킹 키 세트(기본값 30개)
  3. G-값 할당: 해시는 각 키 레이어에 대해 가능한 각 다음 토큰에 이진 g-값(0 또는 1)을 할당하는 데 사용됩니다.

  4. 확률 수정: g-값이 1인 토큰을 선호하도록 토큰 확률이 수정됩니다:

    new_prob[i] = prob[i] * (1 + g[i] - mean(g * prob))
    
  5. 샘플링: 모델이 수정된 분포에서 샘플링합니다.

탐지 과정

  1. 텍스트를 토큰화합니다.
  2. 각 n-gram에 대해 동일한 키를 사용하여 g-값을 계산합니다.
  3. 평균 g-값이 0.5보다 유의미하게 크면 텍스트에 워터마크가 있는 것입니다.

취약점

1. 패러프레이징 공격 (가장 효과적)

효과성: 90-100%

워터마크는 의미가 아닌 특정 토큰 시퀀스에 포함됩니다. 워터마크가 없는 모델로 패러프레이징하면 토큰 시퀀스가 완전히 재생성됩니다.

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

2. 토큰 대체 공격

효과성: 50-70%

토큰을 동의어로 대체하면 n-gram 패턴이 깨집니다:

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

3. 호모글리프 공격

효과성: 95-100%

문자를 시각적으로 동일한 유니코드 문자로 대체하면 해시가 깨집니다:

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

4. N-gram 경계 이동

효과성: 30-50%

단어를 삽입하거나 제거하면 이후의 모든 n-gram 경계가 이동합니다:

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 - 워터마크 제거를 보여주는 테스트 스크립트

사용법

워터마크 분석

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

워터마크 제거

# 패러프레이징 사용 (가장 효과적, 모델 필요)
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

테스트 실행

python analysis/test_removal.py

SynthID 워터마크 텍스트와 워터마크 제거 텍스트 비교

비교

기술적 세부 사항

핵심 통찰: 워터마크는 취약함

워터마크는 다음에 의존합니다:

  1. 정확한 토큰 시퀀스 - 토큰의 변경은 n-gram에 영향을 미칩니다.
  2. 컨텍스트 윈도우 - 토큰 삽입은 모든 컨텍스트를 이동시킵니다.
  3. 해시 함수 - 다른 바이트는 다른 해시를 생성합니다.

패러프레이징이 효과적인 이유

텍스트를 패러프레이징할 때:

  1. 의미론적 의미는 보존됩니다.
  2. 그러나 정확한 토큰은 완전히 달라집니다.
  3. n-gram 해시는 완전히 달라집니다.
  4. g-값 패턴이 파괴됩니다.

이론적 분석

워터마크 강도 W를 가진 길이 N의 텍스트의 경우:

  • 대체율 r은 신호를 대략 1 - (1-r)^(ngram_len)만큼 감소시킵니다.
  • 삽입율 r은 N*r개의 n-gram 경계를 이동시킵니다.
  • 패러프레이징은 본질적으로 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
도구 다운로드