요즘 Generation AI 시대로 접어들면서 이미지 생성, Text 생성, 음악, 비디오 등 다양한 분야에서 AI가 생성한 작업물들이 나오기 시작했다.

생성형 AI로 인해 다양한 문제가 발생하였고 다양한 가짜들 사이에서 진짜를 가려내야 하기도 한다.
이제 디지털 콘텐츠 신뢰를 어떻게 보장할 것에 대해 문제가 생겼다.
1. 암호학 - Cryptopraphy : 메시지 내용 보호가 목적
암호화 키와 복호화 키가 있으면 메세지를 암호화하고, 복호화하여 다시 그대로 받을 수 있다.
2. 스테가노그래피 - Steganography : 메시지 존재 은닉이 목적
- 커버 매체 선택(이미지/오디오/비디오/텍스트)
- (선택) 비밀 메시지 암호화
- 임베딩 기법으로 메시지 은닉
- 수정된 스테고 객체 생성·전달
- 수신자는 사용된 임베딩 방식/키로 복원
3. 워터마킹 - Watermarking : 저작권 표식 내재화가 목적. 변환 후에도 작품에 잔존해야 함
비가시성, 용량, 강건성이 중요!
| 구분 | Cryptography(암호학) | Steganography(스테가노그래피) |
| 1차 목표 | 내용을 감추기 | 존재 자체를 감추기 |
| 관찰자 시점 | “암호문이 있다”는 사실은 보임 | 통신/메시지 존재가 티 안 나야 함 |
| 실패 모드 | 키 유출/약한 스킴 → 내용 노출 | 탐지/스테가분석에 걸리면 존재가 발각 |
| 설계 지표 | 기밀성·무결성·인증(수학적 보안성) | 비가시성·탐지저항성·강건성(압축/크롭에도 생존) |
| 적합한 상황 | 일반적 통신 보안, 저장 데이터 보호 | 검열 회피, 비밀 통신, 은밀 표식(워터마킹) |
| 법적/운영 | PKI, 서명, 감사·추적 용이 | 법적 증빙은 약함(별도 서명/증거화 필요) |
| 구분 | 암호 (Cryptography) | 스테가노그래피 (Steganography) | 워터마킹 (Watermarking) |
| 1차 목적 | 내용 보호(읽히지 않게) | 존재 은닉(보이지 않게) | 정체성/출처 표식의 잔존 |
| 관찰자 시점 | 암호문이 보임 | 메시지 존재가 안 보임 | 표식은 보이지 않거나 미약, 존재해도 목적은 소유·출처 증명 |
| 위협 모델 | 키가 없는 공격자에게 해독 불가 | 관찰자가 숨긴 통신을 탐지/차단 | 공격자가 표식 제거/위조/복제 시도 |
| 실패 조건 | 키 유출·약한 스킴 → 내용 노출 | 스테가 분석에 발각 또는 은닉 파괴 | 강건성 부족(압축·크롭 등 후 표식 소실)·위조 |
| 성능 지표 | 기밀성·무결성·인증, 보안증명(IND-CPA/CCA) | 비가시성·탐지저항성·용량 | 강건성(왜곡 생존율)·복원 BER·비가시성 |
| 전형 기법 | AES, RSA/ECC, 해시, 서명, AEAD(TLS 등) | LSB, 주파수/학습기반 은닉, 키드 스테가 | DCT/DWT/학습형 임베딩, 강건/취약(Fragile) 워터마크 |
| 대표 용도 | 저장·전송 보안, 전자서명·부인방지 | 검열 회피, 비밀 채널 | 저작권/출처 추적, 위변조 검출, 생성물 표식 |

DFT(이산 푸리에 변환) 기반 주파수-도메인 워터마킹
- 왼쪽(원본 이미지) → DFT를 적용해 주파수 스펙트럼으로 변환합니다. (표시된 중앙이 저주파, 바깥이 고주파. 그림은 보통 fftshift+로그 스케일로 시각화)
- 가운데(스펙트럼) 빨간 박스가 워터마크를 삽입할 대역입니다. 실무에선
- 저주파: 눈에 띄기 쉬우나 강건성↑
- 고주파: 눈엔 덜 띄지만 압축/노이즈에 취약
- → 그래서 중주파 대역에 작은 스케일(α)로 키 기반 PN 시퀀스/비트 패턴을 크기(magnitude)나 위상(phase) 계수에 삽입해 가시성·강건성 균형을 맞춥니다.
- 오른쪽(Inverse DFT) 삽입된 스펙트럼을 역변환하여 워터마크가 내재된 이미지를 얻습니다. 시각적으로는 거의 동일하지만, 주파수 계수에 미세한 흔적이 남아 탐지기(상관/매치드 필터)가 키로 해당 패턴을 복원/검출합니다.
탐지·강건성 포인트
- 검출: 동일 키로 해당 대역 계수들을 모아 상관값/BER로 판단.
- 공격 대비: JPEG(양자화)·노이즈·블러·크롭 등에 대한 생존율이 핵심 지표.
- DFT 크기 스펙트럼은 평행이동(shift)에 비교적 안정적이며, 회전/스케일 공격은 로그-폴라 매핑 등으로 보정해 탐지하기도 합니다.
마지막 한 줄(핵심 저장)
“DFT로 스펙트럼에 들어가 중주파 계수에 키 기반 패턴을 살짝 넣고, IDFT로 되돌려 ‘보기에 동일하지만 검출 가능한’ 강건 워터마크를 만든다.”

이 도식은 DCT(이산 코사인 변환) 기반 주파수-도메인 워터마킹 절차를 보여줍니다. 가운데 격자(계수 맵)에서 좌상단이 저주파 F_low, 우하단이 고주파 F_high, 가운데 띠가 중주파 F_mid이고, 빨간 네모는 워터마크를 삽입할 중주파 영역을 가리킵니다. 이유와 방법을 핵심만 정리하면 다음과 같습니다.
무엇을 보여주나
- 왼쪽: 원본 이미지
- 가운데: 블록 DCT(보통 8×8, JPEG와 동일)로 얻은 주파수 계수 맵
- DC(0,0): 전체 밝기 성분(가장 좌상단)
- 저주파: 큰 구조/밝기 변화
- 고주파: 엣지·세부 텍스처
- 그림의 회색/흰색 톤은 에너지 집중(저주파 쪽이 큼)을 직관적으로 표현
- 오른쪽: Inverse DCT로 복원한, 워터마크가 내재된 이미지(육안으로는 거의 동일)
왜 “중주파 대역”에 넣나
- 저주파: 강건하지만 눈에 띄는 왜곡 위험↑(가시성 문제)
- 고주파: 잘 안 보이지만 JPEG/블러/노이즈에 쉽게 소거
- 중주파: 가시성–강건성의 균형 지점 → 실무 표준
삽입(Embedding) 방법 예시
- QIM(Quantization Index Modulation)
- 선택한 중주파 계수 c를 두 격자 중 하나로 양자화해 비트 b∈{0,1}를 담음
- JPEG 양자화표를 고려해 격자 간격 Δ를 설정(가시성↔복원률 트레이드오프)
- 쌍(페어) 비교 방식
- 두 계수 c_1,c_2를 골라 b=1⇒∣c_1∣>∣c_2∣+T, b=0⇒∣c_2∣>∣c_1∣+T가 되도록 미세 조정
- 블라인드 검출이 쉬워 널리 쓰임
- 확산(Spread Spectrum)
- 키로 만든 PN 시퀀스를 다수 블록의 중주파 계수들에 작게 가산 (c′ = c + αw)하여 상관 검출
실무 팁: YCbCr의 Y(휘도) 채널에서, 지그재그 순서 기준 미드밴드 집합(예: {(2,3),(3,2),(3,3)…})을 정의하고, 키(seed)로 블록·좌표를 의사난수 선택.
검출(Detection)
- QIM: 다시 DCT → 해당 계수가 어느 격자레지드에 속하는지로 비트 판정
- 쌍 비교: 두 계수 크기관계로 판정, 블록 다수결/코딩으로 복원
- 확산: 선택 계수 집합과 키 기반 시퀀스의 상관값으로 존재 유무 판단
- 성능 지표: BER, ROC/PR, JPEG 품질(Q)·가우시안 노이즈·블러·리사이즈 내 생존율
강건성·실무 체크리스트
- 목표 경로(JPEG Q, 리사이즈, 약한 블러) 사전 가정 → α/Δ 튜닝
- PSNR/SSIM으로 비가시성 보장(통상 PSNR>40 dB 목표)
- 키 관리(블록/좌표 선택 시드), 재사용 최소화
- 동기화: 크롭/회전에 취약하므로 다중 블록 중복, 동기화 마커, 다중 해상도 보완
DCT vs DFT 한마디
- DCT(블록 기반)은 JPEG 친화·구현 용이(표준 파이프라인과 합치), 대신 블록 격자 어긋남(크롭/회전)에 민감.
- DFT(전역 스펙트럼)은 전역 변환 특성을 활용해 일부 기하 왜곡 보정이 용이하지만, JPEG 친화성·배치 삽입은 DCT가 더 편리.
마지막 한 줄(핵심 저장)
“DCT로 8×8 블록의 ‘중주파’ 계수에 키 기반(예: QIM·쌍비교·확산)으로 비트를 삽입하고, IDCT로 복원—이후 동일 키로 DCT 영역에서 비가시적으로 숨긴 표식을 안정적으로 검출한다.”

이 도식은 DWT(이산 웨이블릿 변환) 기반 워터마킹 흐름을 보여줍니다. 1-레벨 2D-DWT를 적용하면 이미지가 네 개의 서브밴드로 분해됩니다:
- LL1: 저주파(근사 성분, 전체 윤곽·밝기)
- HL1: 가로(수평) 디테일
- LH1: 세로(수직) 디테일
- HH1: 대각선 디테일
그림의 빨간 박스는 LH1 서브밴드(중주파 영역)에 워터마크를 삽입하는 예시입니다.
왜 DWT인가? (장점)
- 공간–주파수 동시 국소화: 특정 위치/스케일의 특징에만 미세 조정 → 가시성 저하를 최소화.
- 다중해상도: 1–3 레벨로 분해하여 콘텐츠 스케일에 맞게 삽입(예: HL2/LH2 등).
- 로컬 왜곡(크롭·블러·노이즈)에 상대적으로 강함: 여러 서브밴드·여러 블록에 중복 삽입 가능.
- JPEG2000 계열 파이프라인과 친화적(웨이블릿 기반).
어디에 넣나? (대역 선택)
- LL(저주파): 강건성↑ but 가시성 리스크↑ (눈에 띌 수 있음).
- HH(고주파): 비가시성↑ but 압축/블러에 취약.
- 실무는 HL/LH(중주파) 또는 상위 레벨의 LL을 소량 사용해 강건성–비가시성 균형을 맞춥니다.
삽입(Embedding) 예시
- 가산/스케일형(Spread/Scaling)
- 선택 계수 c에 키로 만든 PN 시퀀스 w∈{±1}를 소량 가산/스케일:
c′ = c + αw 또는 c′ = c (1 + αw)
- 선택 계수 c에 키로 만든 PN 시퀀스 w∈{±1}를 소량 가산/스케일:
- QIM(양자화 지수 변조)
- 비트 bb에 따라 c를 서로 다른 양자화 격자로 스냅 → JPEG·리사이즈에 비교적 견고.
- SVD 결합(DWT+SVD)
- 선택 서브밴드를 블록으로 나누어 특이값을 미세 조정해 비트 내재(가시성↑ 제어, 강건성↑).
키는 “패턴 그 자체”라기보다 (i) 서브밴드/블록/계수 선택과 (ii) PN 시퀀스 생성에 쓰이는 시드입니다.
검출(Detection)
- 동일 키로 DWT → 같은 서브밴드/좌표를 수집 →
- 확산형: 상관 값이 임계값 초과인지 확인
- QIM: 양자화 잔차로 0/1 판정
- SVD: 특이값 차이로 판정 → 블록 다수결/ECC로 복원률 향상
강건성·실전 체크리스트
- 목표 왜곡(예: JPEG Q=75, 리사이즈 0.5×, 약블러 σ=1)을 먼저 가정하고 α/격자간격 튜닝
- 다중 서브밴드/다중 블록 중복 삽입 + 간단한 ECC로 크롭·노이즈 생존율↑
- 웨이블릿 선택: Haar(빠름, 경계 뚜렷) ↔ Daubechies/bi-orthogonal(db4, bior4.4 등: 부드러움/가시성↓)
- 색공간: YCbCr에서 Y(휘도)가 검출력↑, 가시성 우려 시 Cb/Cr 분산 삽입
- 기하공격(회전/스케일)엔 동기화 마커, 로그-폴라/푸리에-멜린 또는 DWT+DFT/DCT 하이브리드가 실전적
마지막 한 줄(핵심 저장)
“DWT로 LL/HL/LH/HH로 분해 → 중주파(HL/LH)나 고레벨 LL에 키 기반 패턴(QIM/확산/SVD)을 미세 삽입 → IDWT로 복원; 이후 동일 키로 DWT 영역에서 상관·양자화·특이값 기준으로 블라인드 검출.”