본문 바로가기
AI

Reverse-SynthID 완벽 분석 - 구글의 워터마크를 뚫어보자

by IsaacOth 2026. 2. 6.

1. 개요: 보이지 않는 낙인을 찾아서

AI가 만든 이미지를 식별하기 위해 구글(DeepMind)은 SynthID라는 보이지 않는 워터마킹 기술을 사용합니다. 이는 단순히 픽셀을 바꾸는 게 아니라, 이미지의 주파수 영역에 정보를 숨기는 고도화된 기술입니다.

reverse-SynthID 프로젝트는 이 블랙박스를 열어보는 시도입니다. 연구자들은 구글의 워터마크가 어떻게 숨겨져 있는지 역공학(Reverse Engineering)을 통해 밝혀냈고, 이를 탐지하거나 무력화할 수 있는 도구를 공개했습니다.

  • 대상: Google Gemini (SynthID), Nano-150k 데이터셋
  • 핵심 발견: "Spread-spectrum phase encoding" (대역 확산 위상 인코딩) 기법 사용

2. 작동 원리 (Technical Deep Dive)

이 프로젝트가 밝혀낸 SynthID의 비밀은 크게 두 가지입니다.

2.1 주파수 영역의 마술 (FFT)

SynthID는 우리가 보는 RGB 픽셀을 건드리지 않습니다. 대신 이미지를 주파수 영역으로 변환(FFT)한 뒤, 특정 주파수 대역의 위상(Phase)을 미세하게 조작합니다.

  • 사람의 눈: 위상의 변화를 거의 감지하지 못함.
  • 컴퓨터: 위상 정합성(Phase Coherence) 분석을 통해 뚜렷한 패턴 발견 가능.

2.2 코드북 (Codebook) 기반 탐지

연구팀은 수천 장의 순수한 AI 이미지를 분석하여 공통된 패턴(Codebook)을 추출해냈습니다. 이 '정답지'와 의심되는 이미지를 대조하면 워터마크 포함 여부를 84% 이상의 정확도로 판별할 수 있습니다.

3. 설치 및 사용 가이드

직접 내 컴퓨터에서 AI 이미지를 탐지해보는 방법입니다.

3.1 설치 (Installation)

Python 환경이 필요합니다. 리포지토리를 클론하고 의존성 패키지를 설치하세요.

git clone https://github.com/aloshdenny/reverse-SynthID.git
cd reverse-SynthID
pip install -r requirements.txt

3.2 워터마크 탐지 (Detection)

이미지 한 장이 AI로 만들어졌는지 확인하려면 다음 명령어를 사용합니다. (미리 추출된 코드북이 필요합니다)

# 기본 사용법
python src/extraction/synthid_codebook_extractor.py detect "image.png" --codebook "artifacts/codebook/synthid_codebook.pkl"

# 출력 예시:
# Watermarked: True
# Confidence: 0.92

3.3 코드북 추출 (Extraction) - 고급 사용자용

나만의 탐지기를 만들고 싶다면, 순수한 AI 이미지 데이터셋(예: 흰색 배경 등)을 모아서 직접 코드북을 추출할 수 있습니다.

python src/extraction/synthid_codebook_extractor.py extract "data/pure_white/" --output "./my_codebook.pkl"

4. 분석 결과 (Findings)

연구팀은 Nano-150k 데이터셋과 Gemini 생성 이미지를 분석하여 놀라운 결과를 얻었습니다.

  • Nano-150k: 다층(Multi-layer) 워터마크 사용, 99.9%의 탐지율 기록.
  • Gemini (SynthID): 단일 레이어 위상 인코딩 사용, 84%의 탐지율.
  • 결론: 구글의 워터마크는 생각보다 강력하지만, 패턴을 알면 탐지(나아가 제거)가 불가능하지 않다.

5. 윤리적 고려사항 및 주의점

이 도구는 보안 연구 및 교육 목적으로만 사용해야 합니다.

  • 저작권 존중: 워터마크를 무단으로 제거하여 저작권이 있는 이미지를 도용하는 것은 불법입니다.
  • 플랫폼 정책: 구글 등 서비스 제공자의 약관을 위반하지 않도록 주의하세요.

6. 참고 링크