# AI기본법 제31조 ↔ XMSE 이행 매핑 (v5.9)

> **법령**: 인공지능 발전과 신뢰 기반 조성 등에 관한 기본법 제31조 (2026-01-22~)  
> **짝**: `docs/XMSE-SPEC.md` · `data/registry/xmse-comprehensive-execution-prompt-v3.1-ssot.json`  
> **공개 경로**: `/docs/AI-BASIC-ACT-MAP.md` (c2pa.xenlook.com)

**상태 어휘 (이행 축 · 고정)**: 확인됨 · 연결됨(미검증) · 진행 중 · 계획

**측정 어휘 (T1–T7 매트릭스 · 별도 축)**: 확인 · 미확인 · 해당없음 · **검증 대기** — 이행 상태와 혼용 금지

---

## 31① 고지 의무

| 이행 수단 | 현재 상태 | 근거 경로 | 미달 사항 |
|-----------|-----------|-----------|-----------|
| 서비스 약관·정책에 AI 생성물 고지 | 연결됨(미검증) | `apps/on` 약관 · Companion 정책 | 포털 단독 증빙 아님 — 별도 법무 검토 필요 |
| 발급·진단 UI 사전 고지 문구 | 확인됨 | `/security` · `/xmse-learn` · `ProvenanceDiagnosticPanel` | — |
| 투명성 리포트 운영 고지 | 확인됨 | `/transparency` · `/api/ca/public/transparency` | — |

---

## 31② 표시 의무 (기계 판독 가능)

| 이행 수단 | 현재 상태 | 근거 경로 | 미달 사항 |
|-----------|-----------|-----------|-----------|
| C2PA Content Credentials 삽입·검증 | 연결됨(미검증) | `engine/diagnose.py` · STEP 04 `/security` | Trust List NOT LISTED — 공인 CA 아님 |
| 소프트바인딩·매니페스트 파싱 | 확인됨 | `tools/c2patool` · `scripts/verify-xmse-merkle-proof.py` | — |
| 브라우저 WASM 검증 PoC (서버 미전송) | 확인됨 | `/benchmarks/verify-wasm` | PoC 범위 — 전 제품 표면 미배포 |
| 31② 최소 1회 안내 문구·음성 (예외 무관) | 진행 중 | `/xmse-learn` · `XmseArt312Notice` · 진단 결과 compact | **c2pa 파일럿** — on/Companion 전면 배포 2026-Q4 (`apps/c2pa/src/lib/xmse-art312-notice.ts`) |

---

## 31③ 이용자 인식 가능 표시 · 예술적·창의적 표현물 예외

| 이행 수단 | 현재 상태 | 근거 경로 | 미달 사항 |
|-----------|-----------|-----------|-----------|
| 비가시 워터마크 삽입·디코드 경로 | 연결됨(미검증) | `scripts/lib/xmse_videoseal.py` · sidecar msgs · STEP 02 | v6.1 embed 정합 · T1 게이트 0.85 · 워터마크 열 **검증 대기** |
| `artistic_exception` 선언 입력 (true/false/미선언) | 확인됨 | `POST /api/portal/provenance-diagnose` · `ProvenanceDiagnosticPanel` | 판정 없음 — 기록만 |
| 선언 보관·감사 | 확인됨 | `engine/art31_compliance.py` · **법령 이행 축 · 선언 기록 노드** · `xmse-node-map.json` | 장기 보존 정책 R7 미완 |
| T1–T7 강건성 매트릭스 (v6.1) | 연결됨(미검증) | `engine/robustness_matrix_v54.py` · `/benchmarks/robustness` | **v6.1 · T1 게이트 0.85 · Bonferroni · 음성 n=24 (풀 cap) · 모델 기반 FPR 명시** |
| 재식별 경로 (핑거프린트·C1/C2) | 진행 중 | [`PIPELINE-AXIS-STATUS.md`](/docs/PIPELINE-AXIS-STATUS.md) · [`ANCHOR-SPEC.md`](/docs/ANCHOR-SPEC.md) | 핑거프린트=**보조 재식별** · C1/C2=단일 운영자 |

**예외 고지**: 예술적·창의적 표현물 해당 여부는 **사업자 판단**이며, 엔진은 `artistic_exception` 선언 사실만 기록합니다. **사업자 선언 기록이며 법적 판단이 아님.**

---

## T1–T7 강건성 매트릭스 (v6.1)

<!--art31-robustness-snapshot:v6.1-->
**정본**: `matrix_v54.rows[]` — `audit-xmse-robustness-matrix-v61.py` · 생성 시각 `2026-08-19T12:48:40Z`

**현재 공개 상태**: `watermark_column_status` = **검증 대기**

| ID | 변형 정의 |
|----|-----------|
| T1 | 원본 |
| T2 | 매니페스트 strip (픽셀 재인코딩) |
| T3 | JPEG q70 재저장 |
| T4 | 리사이즈 (50%) |
| T5 | 크롭 (20% · 80% 면적) |
| T6 | 회전 (5°) |
| T7 | 재인코딩 (JPEG q85) |

T6 비고: 5° 회전에서 소실 · 원인 미규명 · scaling_w 스윕 결론: —

**측정 값**: 확인 / 미확인 / 해당없음 / **검증 대기** (점수·등급 없음)

### 디코더 (v6.1)

| 항목 | 값 |
|------|-----|
| 엔진 | VideoSeal (`scripts/lib/xmse_videoseal.py`) |
| detect 전처리 | **원본 해상도** (sidecar embed_long_edge 정합) |
| T1 self-detect 게이트 | `bit_match ≥ 0.85` |
| 잔존 판정 | `bit_match ≥ max(mean+4σ, 0.65)` → **0.650** |
| mean+4σ | 0.611 (독립 음성 n=24) |
| Bonferroni (주 매트릭스) | n=28 · α_corr=0.0018 |
| 검정 계열 | surrogate 4 · cross 6셀 · 음성 8 — 각각 별도 α_corr (`test_families`) |
| 교차 디코드 | 3×3 · low_res 제외 · 동일 wm_id·msgs 셀 게이트 제외 |

### 음성 대조군 (v6.1 · 완료)

독립 WM 미삽입 표본 **n=24** (풀 전체 1161건 중 cap) · mean=0.494 · sd=0.029 · 통과=True

### 표본 확장 (wm_embedded)

번들 `samples/xmse-provenance-9` · n=100 · 융합 판정기 대립분포 추정용 독립 표본

### T1 샘플 (교차 축)

| 샘플 | T1 bit_match | bits | z (null p=0.5) |
|------|--------------|------|----------------|
| 사진 (photo) | 0.87109375 | 223/256 | 11.88 |
| 일러스트 (illustration) | 0.8515625 | 218/256 | 11.25 |
| 저해상도 (low_res) | 0.54296875 | 139/256 | 1.38 |
| 재캡처 · 합성 텍스트 (text_in_image) | 0.859375 | 220/256 | 11.5 |

```bash
python3 scripts/ops/build-xmse-art31-neg-control-pool.py
python3 scripts/audit-xmse-art31-neg-control-pool.py
python3 scripts/ops/export-xmse-art31-r5-robustness-measurement.py
python3 scripts/audit-xmse-robustness-matrix-v61.py
python3 scripts/audit-xmse-art31-act-regression-isolation.py
python3 scripts/ops/sync-art31-robustness-doc-snapshot-v58.py
```

공개 JSON: `apps/c2pa/public/benchmarks/art31-robustness-matrix.json`

회귀 샘플 S8–S11: `samples/act/manifest.json` · `scripts/audit-xmse-art31-act-samples.py` (측정 샘플과 경로·바이트 분리 — S5/S6 regression fixture)
<!--/art31-robustness-snapshot-->

---

## C1/C2 앵커 (STEP 05)

| 레이어 | 역할 | 문서 |
|--------|------|------|
| C1 | Merkle 배치 · permissioned 로그 | [`ANCHOR-SPEC.md`](/docs/ANCHOR-SPEC.md) |
| C2 | 포함 증명 · 오프라인 검증 | [`ANCHOR-VERIFY.md`](/docs/ANCHOR-VERIFY.md) |
| C3 | 시점 앵커 (선택) | 계획 — 외부 체인 미선정 |

「블록체인 Verified」 표현 금지 — C1/C2/C3 분리 라벨만 사용합니다.

---

## 공개 표현 금지

`진짜` · `가짜` · `demo` · `A+` · `등급` · `자체 점수` · `블록체인 Verified` — 감사: `scripts/audit-xmse-v40-forbidden-terms.py`

---

_문서 갱신: 포털 배포 시 `apps/c2pa/public/docs/AI-BASIC-ACT-MAP.md` 동기 복사_
